S7-1200 通过Modbus RTU如何读取地址范围9999到65535的输入字?
STEP 7 V14 (TIA Portal)及以上版本中的"Modbus_Master"指令版本V2.4及以上,开始为SIMATIC S7-1200/S7-1500提供了读取Modbus从站输入字(功能代码04)扩展地址范围(9999-65535)的选项。
要求
下表列出了读取扩展输入地址范围的最低要求:S7-1200 S7-1500 / ET 200SP CPU CPU 固件版本 V4.1.1 及以上 V1.7 及以上通信板 CB 1241 RS485 -通信模块 CM 1241 RS422/485 (V2.1 及以上) CM PtP RS422/485 HF (V1.0 及以上) CM 1241 RS232 (V2.1 及以上) CM PtP RS232 HF (V1.0及以上) ET 200SP CM PtP (V1.0 及以上) STEP 7 (TIA Portal) V13 SP1 及以上 V14 及以上 MODBUS ( RTU )指令 V3.0 及以上 V3.1 及以上 Modbus_Master指令 V2.2 及以上 V2.4 及以上表01指令
除了"Modbus_Master"指令以外,还需要"Modbus_Comm_Load"指令才能建立通讯。两个程序块都在STEP 7 (TIA Portal)中,"Instructions>Communication>Communication processor>MODBUS ( RTU )"。
Modbus_Comm_LoadModbus_Comm_Load程序块是用来选择通讯模块的,设置通讯参数并用主站(或从站)的参数将连接参数化
在第一次调用Modbus_Master (or Modbus_Slave)之前, Modbus_Comm_Load 必须运行一次(仅触发一次即可)并且运行完成(DONE为1)。 Modbus_Comm_Load 可以在程序的第一个循环中(通过在硬件组态中启用系统存储器位M1.0)调用。
在硬件组态中插入通讯模块之后,就可以在PORT参数传输通讯模块的硬件标识符或则其符号名。通讯参数BAUD (波特率)和PARITY (奇偶校验) 必须要与从站地址相匹配。
在参数MB_DB传输Modbus_Master (或者 Modbus_Slave)背景数据的数据结构MB_DB,这样就可以定义通讯模块(通过PORT参数识别) 为MODBUS主站(或从站)。
除此之外,必须改变 Modbus_Comm_Load的背景数据块中的静态参数以便进行双工操作模式,通过初始值设定(0 = 全双工(RS232), 1 = 全双工(RS422)四线制模式,4 = 半双工(RS485) 两线制模式)。
Modbus_Master使用Modbus_Master功能块来定义通讯模块,并将Modbus_Comm_Load组态块选择为MODBUS主站。
Modbus_Master块用来选择需要与之通讯相匹配的MODBUS从站,指定功能代码并定义本地数据的存储区。下面表格介绍了参数。