上篇关于西门子S7-1200的文章中我们学习了1200的变量如何使用以及局部变量、全局变量、临时变量、静态变量的区别。本篇我们来学习西门子S7-1200的MODBUS通信如何组态,通信装载指令、主站设置指令、从站设置指令各参数的含义是什么。
MODBUS通信协议广泛应用于工业控制领域,并且已经成为一种通用的行业标准,不同厂商提供的控制设备可以通过MODBUS协议连成通信网络,从而实现集中控制。这里我们只介绍西门子S7-1200中MODBUS通信的相关指令。MODBUS协议库指令包括MODBUS通信装载指令、MODBUS主站设置指令和MODBUS从站设置指令。
MODBUS通信装载指令MB_COMM_LOAD用于组态点对点、RS485或RS232模块上的端口以进行MODBUS-RTU协议通信,各参数含义如下:
PORT为通信端口标识符;BAUD为波特率选择;PARITY为奇偶校验选择;FLOW_CTRL为流控制选择;RTS_ON_DLY为接通延时选择;RTS_OFF_DLY为关断延时选择;TESP_TO为响应超时;MB_DB为MB_MASTER或MB_SLAVE指令所使用背景数据块的地址;ERROR为错误指示;STATUS用于组态端口错误代码。
MODBUS主站设置指令MB_MASTER允许程序做为MODBUS主站使用RS485或RS232模块上的端口进行通信,可访问一个或多个MODBUS从站设备中的数据。部分参数含义如下:
REQ为请求输入;MB_ADDR为MODBUS-RTU站地址,有效地址范围为0-247;MODE为模式选择,请求类型包括读取、写入或诊断;DATA_ADDR为从站中的起始地址,指定要在MODBUS从站中访问数据的起始地址;DATA_LEN为数据长度,指定请求中要访问的位数或字数;DATA_PTR为数据指针,指向要写入或读取数据的本地数据块地址,该数据块必须为非#号访问类型;BUSY为忙状态;其它参数与以上介绍的MODBUS通信指令类似。
MODBUS从站设置指令MB_SLAVE允许程序做为MODBUS从站使用RS485或RS232模块上的端口进行通信,MODBUS-RTU主站可以发出请求,然后程序通过执行MB_SLAVE来响应。部分参数含义如下:
MB_ADDR为MODBUS-RTU从站的地址,有效地址范围为1-247;MB_HOLD_REG为MODBUS保持寄存器数据块地址;NDR表示新数据就绪;DR为读数据标志位,0表示无数据读取,1表示MODBUS主站已读取数据;其它参数与以上介绍的MODBUS通信指令类似。
以上,我们学习了西门子S7-1200的MODBUS通信如何组态,通信装载指令、主站设置指令、从站设置指令各参数的含义。想要了解更多关于西门子PLC编程的知识,请持续关注本号!