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:参与通信的zui大IO点数,一般设为256。
● MaxAI:参与通信的zui大AI通道数,zui多56个。
● MaxHold:zui大保持寄存器区,参与通讯的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。
主站程序:
从站程序:
本文摘自:网络