Modbus RTU通信概述Modbus 是公开的通信协议,是一种单主站的主/从通信模式。
Modbus 通信标准协议可以通过各种方式传播,如 RS232C、RS485、光纤、无线电等。
Modbus基于串行传输时有两种模式,ASCII和RTU,两种模式针对数据打包、解码方式的定义不同,支持Modbus协议的设备一般都支持 RTU 模式。
S7-200SMART CPU通过硬件自带的RS485通信端口或扩展的通信信号板,和软件上开发的Modbus RTU通信标准指令库,可以帮助客户快速便捷的实现设备间的Modbus RTU通信。
Modbus RTU通信标准指令库标准指令库-主站:主站初始化MBUS_CTRL指令&主站读写MBUS_MSG指令EN:使能参数,必须保证每个扫描周期都能开启(SM0.0)。
Mode:模式参数,为1时使能Modbus协议功能。
Baud:波特率参数,根据通讯两侧的协议和速度要求需设定为一致。
Parity:校验方式参数,0=无校验,1=奇校验,2=偶校验。
Port:端口号参数,0=使用集成的通讯口,1=CM01信号板。
Timeout:超时时间参数,主站等待从站响应的时间,以ms为单位。
Done:初始化完成位。
Error:初始化错误代码(详见系统手册指令说明)。
EN:使能参数,必须保证同一时刻只有一个读写功能处于使能状态。
First:读写请求位,每一个新的读写请求需要用脉冲触发。
Slave :从站地址参数,可选择的范围1-247。
RW:读写参数,0=读,1=写。
Addr:读写从站对应连续地址区域的起始地址。
Count:读写从站对应连续地址的个数。
DataPtr:读写操作对应主站连续地址区域的起始地址,用于存储准备写入的数据或要读回的数据。
Done:读写功能完成位。
Error:读写指令错误代码(详见系统手册指令说明)。
标准指令库-从站:从站初始化MBUS_INIT指令&从站响应请求MBUS_SLAVE指令EN:调用使能位,一般使用SM0.1。
Mode:模式参数,启动停止Modbus,0=停止,1=启动。
Addr:从站地址,Modbus从站地址,取值1-247。
Baud :波特率参数,根据通讯两侧的协议和速度要求需设定为一致。
Parity:校验方式参数,0=无校验,1=奇校验,2=偶校验。
Port:端口号参数,0=使用集成的通讯口,1=CM01信号板。
Delay:附加字符间延时,缺省值为0。
MaxIQ:参与通信的最大IO点数,一般设为256。
MaxAI:参与通信的最大AI通道数,最多56个。
MaxHold:最大保持寄存器区,参与通讯的V区大小。
HoldStart:保持寄存器区起始地址,以指针方式指定。
Done:初始化完成位。
Error:初始化错误代码(详见系统手册指令说明)。
EN:调用使能位,一般使用SM0.0。
Done:通讯完成位。
Error:通讯错误代码(详见系统手册指令说明)。
应用实例通过Modbus标准指令库,实现主从站CPU之间的数据交换,其中主站IP地址为192.168.2.1,从站IP地址为192.168.2.2,主站Modbus地址为0,从站Modbus地址为1,将从站VB1000-VB1004中的数据读取至主站VB100-VB104中,数据交换区将主站中VB200-VB204的数据写入从站VB2000-VB2004。
主站程序:从站程序:执行结果: