目录

必须读懂的PLC

进行读写

16进制HEX和10进制DEC转换

参考


必须读懂的PLC

  1. DBg_s7Client.DBRead(nDBNum, nVarAddr, nSize, byData);  //块号,变量地址,字节数,写入数据块指针/读取缓存数据块指针;

  2. 在下图中,对于变量cold,我们分别获得的信息是:nDBNum = 10(DB10), nVarAddr = 4 (偏移量), nSize = 2(6-4);

  3. 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();
}

参考

  1. snap7-c++/MFC开发笔记_不约的小翔的博客-CSDN博客_mfc snap7
  2. 采用snap7实现对PLC1200的I、Q、M、DB区域进行读写_weixin_41320090的博客-CSDN博客_snap7读不到plc数据区
  3. 待补充

C++用snap7库对PLC数据块进行读写相关推荐

  1. s7300的db块详细说明_西门子S7-300400系列PLC数据块DB的作用

    数据块( Data Blocks ,简称 DB )是用来存放执行用户程序时所需的数据与 存储程序执行结果的数据存储区, 其作用与标志寄存器类似, 但数量更多. 数据 块 DB 按不同的用途可以分为即时 ...

  2. java与plc 西门子 通讯,进行读写操作 采用TCP 直接连接

    java与plc 西门子 通讯,进行读写操作 采用TCP 直接连接 0x0 ​ 阅读本文章你能会使用java与西门子plc 进行通信 ​ 所有环境都为仿真模拟环境, ​ 本测试使用的是西门子plc(s ...

  3. 西门子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 ...

  4. s7 200 java_java android 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC...

    本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 gi ...

  5. plc通讯块FC5、FC6

    FC5(AG--SEND)块既可以用于PROFIBUS FDL(现场总线数据链路层通信协议)(发送数据到PROFIBUS,用于在一个已经组态的FDL连接上进行数据传输),也可以将数据传送到以太网CP上 ...

  6. 基于WMS/WCS与PLC数据交互的立体仓库控制系统案例分析

    写在面前 上次分享了文章: TIA Portal实现动态加密的高阶玩法-分级催款密钥授权管理 然后很快就有朋友根据里面的思路实现了,很赞,不过提醒大家的是,我们分享的只是一些思路,不是让大家跟做某件事 ...

  7. C#读写三菱PLC数据 使用TCP/IP 协议

    本文将使用一个Github开源的组件库技术来读写三菱PLC和西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能 ...

  8. python三菱_python 读写三菱PLC数据,使用以太网读写Q系列,L系列,Fx系列的PLC数据...

    本文将使用一个gitHub开源的组件技术来读写三菱的plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 里面 ...

  9. C#读写三菱PLC和西门子PLC数据 使用TCP/IP 协议

    本文将使用一个Github开源的组件库技术来读写三菱PLC和西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能 ...

最新文章

  1. 电话连线(最小生成树)
  2. fastjson总结
  3. processing文本可视化_推荐7个数据可视化工具,让你的信息快速生成可视化
  4. nginx+tomcat+resin+jdk一键自动化安装脚本(4--resin安装脚本)
  5. python zipfile_python zipfile - 刘江的python教程
  6. 【公开课预告】:六款开源LL-HLS/LL-DASH播放器评测
  7. 真格量化-持仓量第n档卖方主力跟随策略
  8. (二)混合边缘AI人脸检测
  9. java的mwcellarray_Java 数组
  10. 第二:Pycharm设置配置(非常详细)
  11. 主板检测卡c5_主板检测卡代码(常见)及解决方法
  12. 紧急通知!限招100人:免费培训海外抖音TikTok视频搬运赚钱技能,0基础轻松月入2万+!...
  13. 【ORM】TypeORM 与 Prisma 的详细对比
  14. 嵌入式linux:通过qemu模拟mini2440开发环境
  15. 智能农场 阳光温湿度 检测 远程控制开关 机智云
  16. 电脑服务器能插无线网卡吗,windows的server版本2016,2019等添加开启无线网卡
  17. 【论文笔记】Disentangled Graph Collaborative Filtering --- SIGIR2020
  18. java outer的使用
  19. Scratch如何学习?少儿编程网站如何入手?
  20. MPLAB常见问题及解决方法

热门文章

  1. 深度学习总结:深层神经网络(tensorflow实战)
  2. 从多个维度说说产品经理的分类与发展方向
  3. 机器学习笔记 - 关于Contrastive Loss对比损失
  4. 持续集成(CI)工具-----jenkins
  5. 京东优惠券平行式考试
  6. 计算机系统配置有哪些内容,组装电脑主要配置有哪些丨组装电脑主要配置图解...
  7. 7-29 喊山 (30 point(s))
  8. 八点钟学院软件测试,急求普通话测试题,如果哪位同学有请转发好吗?
  9. 哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级) 小乐乐的组合数+
  10. [Android]打开eclipse报错:发现了以元素 'd:skin' 开头的无效内容。此处不应含有子元素。