因在工作中遇到以前的代码读取聚英PLC设备开关状态失败问题,所以就好好研究了一下ModBus协议,其中Modbus Poll发挥了重要作用,在此记录一下Modbus Poll的使用方式
测试说明
软件版本

设备信息
施耐德、聚英且支持ModBus TCP/IP协议
功能使用方式
连接
-
点击【Connection】菜单,在弹出框中选择【Connect…】
-
选择连接类型【TCP/IP】
-
输入设备IP,端口
-
点击ok

-
没有警告提示,连接成功

操作设备
准备工作
-
显示通信信息

-
点击【SetUp】,选择【Read/Write Deinition…】进入读写功能页面

3.准备工作完成

读取Coils状态
- 在读写功能区中,Function选择【01 ReadCoils】
- Address输入Coils起始地址(聚英从0开始,施耐德从600开始,不对的话可以问设备厂商)
- Quantity输入Coils个数(不确定写1)
- 点击【Read/Write Once】
- 可以在【通讯信息】中看到发给PLC的指令,及PLC的响应;在【结果展示】中显示状态

写Coils状态
- 在读写功能区中,Function选择【05 Write Single Coil】
- Address输入Coils起始地址(聚英从0开始,施耐德从600开始,不对的话可以问设备厂商)
- Quantity输入个数1
- 点击【Read/Write Once】
- 可以在【通讯信息】中看到发给PLC的指令,及PLC的响应;在【结果展示】中显示状态
注意:该功能只能关闭,不能打开,下面会介绍打开关闭方式

写Coils状态之打开关闭
- 点击【Functions】,选择【05:Write Single Coil…】进入写单个Coil功能页面
- Address输入Coils起始地址(聚英从0开始,施耐德从600开始,不对的话可以问设备厂商)
- Value选择On(打开)/Off(关闭)
- 点击【send】
- 可以在【通讯信息】中看到发给PLC的指令

读取Holding Registers状态(施耐德PLC的IN口读取方式)
- 在读写功能区中,Function选择【03 Read Holding Registers】
- Address输入Holding Registers起始地址(聚英从0开始,施耐德从0开始,不对的话可以问设备厂商)
- Quantity输入Holding Registers个数(不确定写1)
- 点击【Read/Write Once】
- 可以在【通讯信息】中看到发给PLC的指令,及PLC的响应;在【结果展示】中显示状态

读取Discrete Inputs状态(聚英PLC的IN口读取方式)
- 在读写功能区中,Function选择【02 Read Discrete Inputs】
- Address输入Discrete Inputs起始地址(聚英从0开始,施耐德从0开始,不对的话可以问设备厂商)
- Quantity输入Discrete Inputs个数(不确定写1)
- 点击【Read/Write Once】
- 可以在【通讯信息】中看到发给PLC的指令,及PLC的响应;在【结果展示】中显示状态

额外说明
选中【 Read/Write Enabled】点击【Apply】后,会自动持续执行指令

总结
因工作需要只测试了读取Coils,读取Discrete Inputs,读取Holding Registers,写单个Coil功能,其他功能未测试,如需其他功能可以参考上面的操作,自行摸索
ModBus TCP/IP协议参考:https://blog.csdn.net/dhbfjh/article/details/119005572

本文详细介绍了如何使用ModBusPoll软件连接和操作支持ModBusTCP/IP协议的施耐德和聚英PLC设备。内容包括连接设备、读取Coils和HoldingRegisters状态、写入Coils状态以及读取DiscreteInputs状态等操作步骤,是进行工业自动化控制编程的实用指南。
1万+

被折叠的 条评论
为什么被折叠?



