首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >怎样预防对你的 Modbus slave (S7-1500 /1200) 输出点的写访问?

怎样预防对你的 Modbus slave (S7-1500 /1200) 输出点的写访问?

作者头像
科控物联
发布2022-03-29 20:44:46
发布2022-03-29 20:44:46
9110
举报
文章被收录于专栏:科控自动化科控自动化

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

补充知识:

Modbus TCP通信概述

MODBUS/TCP是简单的、中立厂商的用于管理和控制自动化设备的MODBUS系列通讯协议的派生产品,显而易见,它覆盖了使用TCP/IP协议的“Intranet”和“Internet”环境中MODBUS报文的用途。协议的最通用用途是为诸如PLC’s,I/O模块,以及连接其它简单域总线或I/O模块的网关服务的。

MODBUS/TCP 使MODBUS_RTU协议运行于以太网,MODBUS TCP使用TCP/IP和以太网在站点间传送MODBUS报文,MODBUS TCP结合了以太网物理网络和网络标准TCP/IP以及以MODBUS作为应用协议标准的数据表示方法。MODBUS TCP通信报文被封装于以太网TCP/IP数据包中。与传统的串口方式,MODBUS TCP插入一个标准的MODBUS报文到TCP报文中,不再带有数据校验和地址。

1. 通讯所使用的以太网参考模型

Modbus TCP传输过程中使用了TCP/IP以太网参考模型的5层:

第一层:物理层,提供设备物理接口,与市售介质/网络适配器相兼容

第二层:数据链路层,格式化信号到源/目硬件址数据帧

第三层:网络层,实现带有32位IP址IP报文包

第四层:传输层,实现可靠性连接、传输、查错、重发、端口服务、传输调度

第五层:应用层,Modbus协议报文

2. Modbus TCP数据帧

Modbus数据在TCP/IP以太网上传输,支持Ethernet II和802.3两种帧格式,Modbus TCP数据帧包含报文头、功能代码和数据3部分,MBAP报文头(MBAP、Modbus Application Protocol、Modbus应用协议)分4个域,共7个字节,如图1所示:

图1: MODBUS TCP报文

由于使用以太网TCP/IP数据链路层的校验机制而保证了数据的完整性,MODBUS TCP 报文中不再带有数据校验”CHECKSUM”,原有报文中的“ADDRESS”也被“UNIT ID”替代而加在MODBUS应用协议报文头中。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科控物联 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Modbus TCP通信概述
    • 1. 通讯所使用的以太网参考模型
    • 2. Modbus TCP数据帧
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档