1.从站响应时间RESP_TO 如图1所示,V2.x版本的MB_COMM_LOAD初始化块可设置从站响应时间RESP_TO参数: 设置单次连接从站的可响应时间,范围为5ms到65535ms(默认值为1000ms);即如从站在此时间段内未作出响应,则MB_MASTER将在发送指定次数的重试请求后终止请求并提示错误信息80C8。 图1. RESP_TO参数设置 注意:...
Modbus_Master 指令可通过由 Modbus_Comm_Load 指令组态的端口作为 Modbus 主站进行通信, Modbus_Comm_Load 指令的 MB_DB 参数必须连接到 Modbus_Master 指令的(静态)MB_DB 参数。
调用MB_SLAVE指令,S7-1200做从站。MB_ADDR为从站地址(0-255),MB_HOLD_REG为通讯数据存放的数据块,可自行定义。 二、当S7-1200作为modbus主站,即modbusMaster,程序编写如下(以通讯台达VFD-M变频器为例) 作为modbus主站读取从站数据,当数据量超过1时,需要进行modbus轮询,所以在编程之前,建立一个DB块用来存放通讯...
2)、为使端口一启动就被设置 Modbus RTU 通信模式 , 可在程序中调用“MB_COMM_LOAD”指令。调用“MB_COMM_LOAD”指令时会自动弹出创建相应背景数据块,点击确定即可,创建背景数据块后,为各输入/输出引脚分配地址。尤其需注意MB_DB 输入引脚需指向“MB_MASTER” 指令的背景数据块 该指令块的各个管脚定义如下: 3...
Modbus RTU 指令版本 V2 将参数 “REQ” 和 “DONE” 添加到 “MB_COMM_LOAD” 指令。而且,“MB_MASTER” 和 “MB_SLAVE” 指令的 “MB_ADDR” 参数现在允许一个 UInt 值以进行扩展寻址。同一 CPU 程序中是否可以同时使用两个不同版本的 Modbus RTU 指令?不能在同一 CPU 程序中同时使用不同版本指令。
通过编程调用“MB_MASTER”指令,S7-1200 通信模块CM1241可作为Modbus RTU主站,或调用“MB_SLAVE”指令,S7-1200 通信模块CM1241可作为Modbus RTU从站。注意:无论S7-1200 通信模块CM1241作为Modbus RTU主站还是从站,都需要调用“MB_COMM_LOAD”指令进行编程。(5)S7-1200CM1241/CB1241 Modbus RTU 通信是否支持两位...
如图1所示,V2.x版本的MB_COMM_LOAD初始化块可设置从站响应时间RESP_TO参数: 设置单次连接从站的可响应时间,范围为5ms到65535ms(默认值为1000ms);即如从站在此时间段内未作出响应,则MB_MASTER将在发送指定次数的重试请求后终止请求并提示错误信息80C8。
注意:“MB_MASTER”指令的输入位“REQ”必须使用上升沿触发。 以下以S7-1200作为Modbus RTU主站,用F03功能码读取Modbus RTU从站2,从Modbus地址40001开始的五个字,接收的数据存放在缓冲区DB3.DBW0开始区域为例。设置如下所示:MB_ADDR=2,MODE=0,DATA_ADDR=40001,DATA_LEN=5。
在OB1中调用“MB_MASTER”指令,调用该指令时会自动弹出创建相应背景数据块的界面,如下图8所示: 图8 调用MB_MASTER指令 点击“确认”为该指令创建背景数据块后,并为各输入/输出引脚分配地址,如下图9所示: 注意:“MB_MASTER”指令的输入位“REQ”必须使用上升沿触发。
③ 在主站Master的FB块中调用MB_COMM_LOAD、MB_MASTER指令 1. 新建FB块并在块中调用MB_COMM_LOAD指令,选多重示例背景数据块 主站初始化指令 2. 将主站DB1.DBD0开始的连续10个实数数据类型写入到从站DB1.DBD0开始的连续10个实数数据类型地址中。