1前言
本篇文章讲了 Modbus TCP通讯中的一些以太网端口配置和遇到的一些问题,
都是肝货自己测试的QAQ。
2西门子 SERVER 指令
该指令是让外界设备主动连接此PLC被动连接,
所以这里应该填 外界设备的IP地址。
这边 我因为是电脑的Modbus Poll 主机来进行通讯的所以填的是电脑的IP地址,
我这边电脑IP是192.168.0.100
如果是连接的实物就应该填写实物主机的IP地址。
主机地址假设是192.168.0.2 那就是192.168.0.2。
而Modbus Poll中的地址是从机地址192.168.0.1就是现在我实物连接的PLC的地址。
如果设置都没问题的话就连接上了。
如果出现 Modbus Poll出现Write Error的报错可能是PLC中SERVER指令的地址和电脑的不一致导致的。
如果SERVER指令中报错16#80A4可能是SERVER指令的地址和PLC的地址冲突了
(自己和自己的地址冲突了)。CLIENT同理
修改完SERVER指令记得重新RUN一下。
3西门子 CLIENT 指令
该指令是让此PLC主动连接外界设备被动连接,所以调试软件要用Modbus Slave。
指令用法和软件操作就不过多解释了。
这边因为是PLC主动连接从机,而我的从机是Modbus Slave,
所以地址是我的电脑IP:192.168.0.100
Modbus Slave上的地址设置的就有点绕了,
之前 PLC指令和Poll设置的都是 通讯的对象设置的是对面的地址。
而Modbus Slave上的地址是设置的自己当前从机的地址,
也就是我电脑的IP地址:192.168.0.100
下面勾选的是无视ID号,
这边我暂时搞清楚CLIENT指令和Slave的关系所以就不做解释了以免误解,
(可能是因为虚拟Slave的ID和PLC指令ID好像匹配不上,导致PLC无法与多个Slave的ID通讯,
忽略ID能收到值但是是广播,不勾选能建立连接但收不到值 ID对不上)(请无视此条)
我这边必须勾选不然连接不上QAQ
然后设置没问题的话就通讯上了。
3.1发送
我这边CLIENT中的MODE设的是1
就是PLC通过这个模块发送数据给从机,从机接收数据。
如图:
3.2接收
我这边CLIENT中的MODE设的是0
就是从机发送数据给PLC,PLC模块接收数据。
注意!!!
CLIENT指令是建立连接主从中的主机指令
和数据传输的发送接收关系不一样,一个是建立连接还有一个是进行收发数据
这边不要搞混
如图:
这边我们看到
5号和6号地址的值并没有写入到PLC中,
这是因为PLC中的DATA_LEN只接收5个地址(Slave 0-4开始)
因为PLC是从1开始算的所以每次给Slave的地址要多加一位。
如指令中:
从PIR"M2000"中的ADDR"1"开始(为什么是40001具体可以看这篇文章)
西门子PLC中Modbus通讯DATA_ADDR通讯起始地址设置以及RTU轮询程序设计。-CSDN博客
也就是 M2000开始读取LEN"5"位数据,
所以后面几位数据PLC不接收。
这边扯远了,讲到CLIENT指令用法中去了不过没事。
4结语
以上就是西门子PLC Modbus TCP通讯地址的配置了,
本篇文章为个人学习总结,如有不足请及时支持,多多包涵QwQ.
觉得有用的话就点个赞吧ღ( ´・ᴗ・` )。