目录
1. 所需软件
SMART 200软件、Modbus Slave(实现Modbus从站模拟)
2. 配置过程
2.1 PLC梯形图
由于本案例将PLC作为Modbus TCP客户端,即发送查询指令的一方,因此,PLC需要使用Modbus客户端库,电脑使用Modbus Slave作为服务器端(可理解为从站)发送查询指令。
图1 Modbus TCP Client库
图2 Modbus TCP Client 库地址分配
IPAddr1——IPAddr4为服务器IP地址;
IP_Port为服务器端口;
RW为分配请求类型(读取或写入),其中 0 = 读取,1 = 写入;
Addr为Modbus 起始地址:分配要通过 MBUS_CLIENT 进行访问的数据的起始地址;
Count为Modbus 数据长度:此请求中要访问的位或保持寄存器的数量;
DataPtr指向 Modbus 数据寄存器的指针:DataPtr 指向与读取或写入请求关联的数据的 V 存储位置。对于读取请求,此位置是存储从 Modbus 服务器读取的数据的第一个存储位置。对于写入请求,此位置是要写入 Modbus 服务器的数据的第一个存储位置。
2.2 Modbus Slave配置
需按照离散输入寄存器、线圈寄存器、保持寄存器、输入寄存器分别设置寄存器及其地址信息。如图3所示,如果不指定服务器地址,需要勾选Ignore Unit ID。否则,可设置从机号,或者在PLC的符号表中找到Client的mModbusUnitID,更改所需查询的从机号。
图3 Modbus Slave配置页面
3. 试验结果
该案例,通过对PLC保持寄存器的数值进行更改,状态表中对VB20进行监控,可以看到数值已经产生了变化。
图4 试验结果
当RW为1,Addr为1,Count为7时,Slave设置为01,则可以控制服务器端的Q区;
当RW为0,Addr为1,Count为7时,Slave设置为01,则可以读取服务器端的Q区;类似的控制如下图所示。