「烟雨003」基于西门子PLC的Socket通信深度剖析( 二 )
本文插图
二、PLC作为TCP客户端的实战应用
(1)PLC编程
1.1:创建一个TCPClient的子程序 , 拖拽一个TCP_CONNECT的库指令 , 与服务器程序不同的是 , 这里需要把Active设置为ON , 同时IP地址和端口号需要根据上位机实际情况填写 , 程序段1编写如下图所示:
本文插图
1.2:拖拽一个TCP_SEND的库指令 , 对于该指令的每个引脚填写 , ConnID为2 , Req为触发条件 , 必须为沿信号 , 这里为了方便 , 直接使用1秒的脉冲信号 , DataLen及DataPtr为发送的起始字节指针及发送的字节长度 , 程序段2如下图所示:
本文插图
1.3:拖拽一个TCP_RECV的库指令 , 对于该指令的每个引脚填写 , ConnID统一为2 , MaxLen为接收的最大程度 , DataPtr表示接收字节存放的起始位置 , 程序段3如下图所示:
本文插图
1.4:最后需要编译 , 如果已经编写过服务器程序 , 这里就不需要分配地址了 , 直接在MAIN主程序中调用TCPClient这个子程序 , 并下载到PLC中 , PLC编程部分结束 。
(2)TCP调试助手测试
如果PLC程序编写没问题 , 打开一个网络调试助手 , 设置模式为TCP Server , 输入端口号为2000 , 即可开启服务器 。
服务器开启后 , PLC端会自动连接服务器 , 并且每隔一秒发送100个字节数据过来 , 这100个字节即对应VB500-VB599的值 。
本文插图
(3)上位机服务器软件开发
本文插图
通过与状态图表进行对比 , 验证可以正常读取和写入PLC数据 。
本文插图
三、整体总结
【「烟雨003」基于西门子PLC的Socket通信深度剖析】后续通过进一步测试 , 验证PLC可以同时作为服务器和客户端与上位机进行通信 。 本次主要针对西门子PLC的开放式TCP通信作了较为详细地阐述 , 由于篇幅有限 , 无法将上位机部分的具体编程代码进行展示分析 。
- 烟雨红尘梦中人微信占用空间太大怎么办?这才是微信内存的正确清理方法!
- 一蓑烟雨任平生2012教师成长书籍摘记1
- 数码八叔魅族基于Android 10的Flyme 8.1稳定版发布,10款机型尊享首升权
- 电气技术基于分布式控制原理的电池储能系统二次调频控制
- 趣头条基于 WiTricity 技术,中国将引入无线充电标准
- 央视累计10032例,塞尔维亚新增89例新冠肺炎确诊病例
- 云南天文台云南天文台发表基于NVST观测数据的研究进展综述
- 信驰达深度分析Nordic基于nRF52840的Dongle有何改进之处
- 数码狂人基于海为云数据中心蔬菜生产物联网管理系统解决方案
- 港股挖掘机投资开发旅游度假和房地产项目,香港中旅(00308)收购于中国金堂县三幅地块的土地使用权