[西门子]预防对你的 Modbus slave输出点的 未授权的访问?

2022-03-29 19:20:31 浏览数 (2)

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) 下创建.

0 人点赞