因在工作中遇到以前的代码读取聚英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
|