C++用snap7库对PLC数据块进行读写
目录
必须读懂的PLC
进行读写
16进制HEX和10进制DEC转换
参考
必须读懂的PLC
DBg_s7Client.DBRead(nDBNum, nVarAddr, nSize, byData); //块号,变量地址,字节数,写入数据块指针/读取缓存数据块指针;
在下图中,对于变量cold,我们分别获得的信息是:nDBNum = 10(DB10), nVarAddr = 4 (偏移量), nSize = 2(6-4);
byData是我们自己定义的字节类型的变量。
进行读写
16进制HEX和10进制DEC转换
PLC存储的数据是16进制, C++程序是10进制,所以读或写都要做转换,下面是往PLC写入
void sendSpeed(double num)
{byte l_byData[4] = { 0 };float l_fSpeed = (float)num;l_byData[3] = *((byte*)&l_fSpeed + 0);l_byData[2] = *((byte*)&l_fSpeed + 1);l_byData[1] = *((byte*)&l_fSpeed + 2);l_byData[0] = *((byte*)&l_fSpeed + 3);//将数据写入PLCg_s7Client.DBWrite(30, 22, 4, &l_byData);//测试是否将数据写入到PLC中,所以对PLC进行读取byte l_byData1[20] = { 0 };float l_fSpeed1 = { 0 };if (g_s7Client.DBRead(30, 22, 4, &l_byData1) == 0){*((byte*)&l_fSpeed1 + 0) = l_byData1[3];*((byte*)&l_fSpeed1 + 1) = l_byData1[2];*((byte*)&l_fSpeed1 + 2) = l_byData1[1];*((byte*)&l_fSpeed1 + 3) = l_byData1[0];}//写入txt文本ofstream outfile("SpeedTest.txt", ios::app);outfile << getTime() << " " << l_fSpeed1 << " " << endl;outfile.close();
}
参考
- snap7-c++/MFC开发笔记_不约的小翔的博客-CSDN博客_mfc snap7
- 采用snap7实现对PLC1200的I、Q、M、DB区域进行读写_weixin_41320090的博客-CSDN博客_snap7读不到plc数据区
- 待补充
C++用snap7库对PLC数据块进行读写相关推荐
- s7300的db块详细说明_西门子S7-300400系列PLC数据块DB的作用
数据块( Data Blocks ,简称 DB )是用来存放执行用户程序时所需的数据与 存储程序执行结果的数据存储区, 其作用与标志寄存器类似, 但数量更多. 数据 块 DB 按不同的用途可以分为即时 ...
- java与plc 西门子 通讯,进行读写操作 采用TCP 直接连接
java与plc 西门子 通讯,进行读写操作 采用TCP 直接连接 0x0 阅读本文章你能会使用java与西门子plc 进行通信 所有环境都为仿真模拟环境, 本测试使用的是西门子plc(s ...
- 西门子300 PLC 功能块及背景数据块的说明
S i e me n s S T E P ' / 语言是 S i e me n s s 7-3 0 0 . 4 0 0系列 P L C程序设计语言.s 7系列 P L C 是 S 5系列 P ...
- s7 200 java_java android 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC...
本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 gi ...
- plc通讯块FC5、FC6
FC5(AG--SEND)块既可以用于PROFIBUS FDL(现场总线数据链路层通信协议)(发送数据到PROFIBUS,用于在一个已经组态的FDL连接上进行数据传输),也可以将数据传送到以太网CP上 ...
- 基于WMS/WCS与PLC数据交互的立体仓库控制系统案例分析
写在面前 上次分享了文章: TIA Portal实现动态加密的高阶玩法-分级催款密钥授权管理 然后很快就有朋友根据里面的思路实现了,很赞,不过提醒大家的是,我们分享的只是一些思路,不是让大家跟做某件事 ...
- C#读写三菱PLC数据 使用TCP/IP 协议
本文将使用一个Github开源的组件库技术来读写三菱PLC和西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能 ...
- python三菱_python 读写三菱PLC数据,使用以太网读写Q系列,L系列,Fx系列的PLC数据...
本文将使用一个gitHub开源的组件技术来读写三菱的plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 里面 ...
- C#读写三菱PLC和西门子PLC数据 使用TCP/IP 协议
本文将使用一个Github开源的组件库技术来读写三菱PLC和西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能 ...
最新文章
- 电话连线(最小生成树)
- fastjson总结
- processing文本可视化_推荐7个数据可视化工具,让你的信息快速生成可视化
- nginx+tomcat+resin+jdk一键自动化安装脚本(4--resin安装脚本)
- python zipfile_python zipfile - 刘江的python教程
- 【公开课预告】:六款开源LL-HLS/LL-DASH播放器评测
- 真格量化-持仓量第n档卖方主力跟随策略
- (二)混合边缘AI人脸检测
- java的mwcellarray_Java 数组
- 第二:Pycharm设置配置(非常详细)
- 主板检测卡c5_主板检测卡代码(常见)及解决方法
- 紧急通知!限招100人:免费培训海外抖音TikTok视频搬运赚钱技能,0基础轻松月入2万+!...
- 【ORM】TypeORM 与 Prisma 的详细对比
- 嵌入式linux:通过qemu模拟mini2440开发环境
- 智能农场 阳光温湿度 检测 远程控制开关 机智云
- 电脑服务器能插无线网卡吗,windows的server版本2016,2019等添加开启无线网卡
- 【论文笔记】Disentangled Graph Collaborative Filtering --- SIGIR2020
- java outer的使用
- Scratch如何学习?少儿编程网站如何入手?
- MPLAB常见问题及解决方法
热门文章
- 深度学习总结:深层神经网络(tensorflow实战)
- 从多个维度说说产品经理的分类与发展方向
- 机器学习笔记 - 关于Contrastive Loss对比损失
- 持续集成(CI)工具-----jenkins
- 京东优惠券平行式考试
- 计算机系统配置有哪些内容,组装电脑主要配置有哪些丨组装电脑主要配置图解...
- 7-29 喊山 (30 point(s))
- 八点钟学院软件测试,急求普通话测试题,如果哪位同学有请转发好吗?
- 哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级) 小乐乐的组合数+
- [Android]打开eclipse报错:发现了以元素 'd:skin' 开头的无效内容。此处不应含有子元素。