Modbus 指令 "MB_SERVER" V4.2 以及更高版本和 "Modbus_Slave" V3.0 及更高版本允许你参数化可用的输出点地址范围,来预防 Modbus master (通过功能码 5 或 15) 未授权的访问过程映像输出区.
描述 在 STEP 7 V14 SP1 你能够使用下列的 Modbus 指令来定义 SIMATIC S7-1500, S7-1200 和 ET200SP 支持的接口作为 Modbus 从站或者 Modbus TCP 服务器:
- Modbus TCP 指令 "MB_SERVER" V4.2 给支持的接口
- Modbus (RTU) 指令 "Modbus_Slave" V3.0 及更高版给支持的接口
Modbus TCP 指令 "MB_SERVER" V4.2 在 STEP 7 V14 SP1 库 "MODBUS TCP" V4.2 下. 库 "MODBUS TCP" 在 "Instructions > Communication > Other" 下.
Modbus (RTU) 指令 "Modbus_Slave" V3.0 在 STEP 7 V14 SP1 库 "MODBUS (RTU)" V3.1下. 库 "MODBUS (RTU)" 在 "Instructions > Communication > Communications Processor" 下.
图. 01 注意 你的项目必须升级到至少 TIA Portal V14 SP1.
在你的项目中调用这些块并且定义实例,在打开 "MB_SERVER" V4.2 和更高及 "Modbus_Slave" V3.0 和更高的实例数据前。
图. 02 通过下面静态变量的 start values 你可以为输出地址定义允许的写操作地址范围
Variable | Data type | Default value | Description |
---|---|---|---|
QB_Start | Word | 0 | 有效输出地址的起始地址(字节 0 到 65535) |
QB_Count | Word | 0xFFFF | 能被 Modbus 主站或 Modbus TCP 客户端写操作的输出字节数量 |
举例 使 "QB_Start" = 0 "QB_Count" = 10, 输出字节地址0-9 可以被 Modbus 主站或 Modbus TCP 客户端写操作. 选择 "QB_Count" = 0 会阻止所有的输出被 Modbus 主站或 Modbus TCP 客户端写操作。
注意 如果写操作访问的是被禁止的输出地址, the指令 "Modbus_Slave" 和 "MB_SERVER" 返回错误代码 ("STATUS") 16#8383: "请求数据帧包含无效的数据地址". 指令 "Modbus_Master" 和 "MB_CLIENT" 也会在主站侧返回错误代码.
更多信息 关于以下指令的详细信息可见 manual "STEP 7 Professional V14 SP1":
- MODBUS (RTU) (S7-1200, S7-1500)
- MODBUS (TCP) for library versions V4.0 and higher of the S7-1200 CPUs and V3.x and higher of the S7-1500 CPUs (S7-1200, S7-1500)
创建环境 FAQ 截图在 STEP 7 V14 SP1 (TIA Portal) 下创建.