Modbus TCP 西门子PLC与 多个设备进行通讯 使用Modbus Slave模拟多个设备ID_modbusslave怎么模拟多个从机
目录
1前言
2相同地址不同ID
1创建连接数据
2创建连接程序
3模块参数设置
4Modbus Slave设置
5成果展示
3结语
1前言
本篇文章讲了PLC如何与同一地址的多个ID设备进行通讯,如果看不懂这篇文章就去看一下这篇博客学一下基础。
Modbus TCP 西门子PLC指令以太口地址配置以及 Poll Slave调试软件地址配置_西门子modbus tcp-CSDN博客
关于Poll Slave的设置和PLC的通讯指令还有数据这边就不多讲解了详细可以看我刚刚的这篇博客。
2相同地址不同ID
1创建连接数据
首先要先创建两个TCON_IP_v4的数据
通讯地址IP都为192.168.0.100我电脑主机的地址也就是Modbus Slave的地址
这边的连接ID的意思应该是我连接不同设备,PLC自己的一个排序作为区分,只要不重复就行。
这边建议改成和设备的ID相同。
2创建连接程序
如图是一个TCP轮询指令,
而TCP指令并一定不需要使用轮询指令!!!
只要REQ一直得电就行。
这里主要是复习一下前面的RTU的轮询方式。
西门子PLC中Modbus通讯DATA_ADDR通讯起始地址设置以及RTU轮询程序设计。_西门子modbus地址-CSDN博客
想要与两个不同的ID通讯,那么CLIENT指令的背景数据块和CONNECT连接数据都要不同。
3模块参数设置
下面这个是最重要的一步!!!
在PLC中找到\"系统块\"→\"程序资源\"中的找到CLIENT指令对应的背景数据块,更改MD_Unit_ID的值,如果这个值不更改是默认的话是无法与多个ID连接的会冲突。
MD_Unit_ID的值就对应着Slave的ID。
如图我选择设备ID为2,21两个
4Modbus Slave设置
打开Modbus Slave软件
打开\"Connection\"→\"Connect\"中设置通讯模式和地址
这边如图选择 192.168.0.100是我电脑的地址,大概意思是192.168.0.100设置为被通讯的设备IP
下面两个不勾选。
然后\"NEW\" 新建一个窗口,在\"Setup\"中找到
新建一个窗口,选中窗口后点击\"Setup\"→\"Slave Defintion\"
修改ID编号和PLC中MD_Unit_ID值相同。
到这边就设置完成了
5成果展示
这边因为我前面设置的是\"CLIENT_DB\"中的\"MD_Unit_ID\"为2
\"CLIENT_DB_1\"中的\"MD_Unit_ID\"为21
而Slave 设置的是 2和1
所以\"CLIENT_DB_1\"\"MD_Unit_ID\"地址为21的收不到来自Modbus Slave ID为1的值
\"CLIENT_DB\"\"MD_Unit_ID\"为2就能收到来自Modbus Slave ID为2的值
所以ID一定要对应!!!
将Slave中的ID改为21PLC就能和Slave通讯了
这边的5号接收不到是因为我PLC只接收0-4号数据
3结语
以上就是关于西门子TCP通讯多个设备的配置
因为条件有限没有测试Slave与不同的IP地址的通讯,但肯定大差不差的。
然后 Advanced 仿真的PLC是无法与Modbus Slave进行通讯的!!!
如果有人知道的话麻烦请教一下。
本篇文章为个人学习总结,如有不足请及时指出,多多包涵QwQ。
觉得有用的话就点个赞吧ღ( ´・ᴗ・` )。