本文主要是介绍西门子S7-smart200 Modbus TCP Client 通讯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.Modbus TCP 轮询
参考官网网址的历程
Modbus_TCP_通信例程 (siemens.com.cn)
https://www.ad.siemens.com.cn/productportal/prods/s7-200-smart-portal/200smarttop/communication/Ethernet/MODBUS_TCP/modbus_tcp_sample.htm
2.S7-200 SMART作为客户端轮询,此次是用S7-200 SMART与MIR小车用网线通讯
本例程中使用done位做轮询,相比于用定时器做轮询,不会因为定时触发时间设置的过小导致两个指令冲突,或者定时触发时间设置过大增加通信时间的问题。
01. 该例程使用 STEP 7-Micro/WIN SMART V2.4 编写,使用硬件是ST60:6ES7288-1ST60-0AA0 固件:V2.4 版本,IP地址:192.168.12.20
02. 该例程仅访问一个服务器,两个MBUS_CLIENT指令轮询执行写和读,写入和读取服务器寄存器类型地址:40001-40002共2个字,将需要写入服务器的数据放在VB700-VB703区域中,从服务器中读取的数据存储在本地的VB704-VB707区域中。
3.下面是我自己再测试过程中按照官方历程修改的,我用特殊继电器SM0.5作为触发轮询的触发源,这个寄存器是0.5s触发一次,下面是做为客户端写得指令
下面是客户端读的指令,差别就是RW为0还是1,上面注释有写0或1是什么意思,其实这个程序刚开始不是这么用,就是Req触发这里,刚开始用正常轮询方法去读写寄存器造成了寄存器读写太快卡死,后来我就改了触发条件,发现也可以正常使用,此方法可以参考。
4.下面我截图一下官网轮询历程。
这篇关于西门子S7-smart200 Modbus TCP Client 通讯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!