跳到主要内容

Siemens S7

读取 Siemens S7 PLC 的 I、Q、M 或 DB 区。先向 PLC 工程人员确认 IP、CPU 型号、机架与槽号,以及一个允许读取的地址和类型。

先读一个 DB 变量

以下以 DB1 字节偏移 0 的 Int16 变量为例。DB 块与变量必须已经存在,不能照抄地址后期待 PLC 自动创建它。

  1. 打开“开发配置 → 采集配置”,新建 TCP 客户端通道,远程地址填 PLC的IP:102 并保存。
  2. 在通道下新增设备,采集插件选择“Siemens S7”。
  3. “PLC类型”选择实际型号,不要把默认的 S200 留给 S1200 或 S1500 使用。
  4. 填写项目要求的 RackSlotLocalTSAP 没有特殊连接要求时先保持默认。执行间隔先用 1000 毫秒,保存并启用设备。
  5. 新增变量,名称填 TestValue,寄存器地址填 DB1.0,数据类型选 Int16,保存并启用。
  6. 在变量列表查看在线状态和当前值,与 PLC 在线监视值对比。读到正确值后再添加其余地址。

S7-1200/1500 的 PLC 侧还需要允许相应的远程访问,按绝对地址读取的 DB 不能使用优化块访问。请 PLC 工程人员按实际 CPU 和 TIA 版本检查,不要为联调直接关闭所有保护。参见 Siemens 远程访问设置DB 访问限制

常见地址怎么填

PLC 点位网关地址数据类型
DB1 第 0 字节起的有符号 16 位整数DB1.0Int16
DB1 第 2 字节起的 32 位浮点数DB1.2Float
DB1 第 6 字节第 0 位DB1.6.0Boolean
M 区第 0 字节第 1 位M0.1Boolean

地址指定起点,数据类型决定读多少字节。DB1.2 中的 2 是字节偏移,不是“第 2 个变量”。

支持的通道和数据类型

通道类型配置前检查
TCP 客户端确认设备 IP、端口和网关到设备的网络可达性。

可选数据类型: Boolean、Byte、Int16、UInt16、Int32、UInt32、Int64、UInt64、Float、Double、String、Decimal

插件参数

Siemens S7 只使用 TCP 客户端通道,不填写串口参数。连接超时、重试和并发先保持默认,公共设置见采集配置

协议参数

参数说明
PLC类型选择实际 CPU 型号。默认 S200 不适用于所有 S7 PLC。
RackCPU 所在的机架号,默认 0;按 PLC 项目填写。
SlotCPU 模块所在的槽位号,默认 0;按 PLC 项目填写,不是网口编号。
LocalTSAP本地 TSAP 连接标识,默认 0。有专用连接要求时按 PLC 连接资源配置填写。

“PLC类型”选项为 S200S200SmartS300S400S1200S1500RackSlotLocalTSAP 会参与重新建立 S7 会话,修改后需重新启用设备。

地址规则

  • S7协议寄存器地址格式
  • Txxxxx Timer寄存器,例如T100/T100.1
  • Cxxxxx,Counter寄存器,例如C100/C100.1
  • AIxxxxx,AI寄存器,例如AI100/AI100.1
  • AQxxxxx,AQ寄存器,例如AQ100/AQ100.1
  • Ixxxxx,I寄存器,例如I100/I100.1
  • Qxxxxx,Q寄存器,例如Q100/Q100.1
  • Mxxxxx,M寄存器,例如M100/M100.1
  • DBxxxxx,DB寄存器,例如DB100.1/DB100.1.1
  • 宽字符串在地址前加 W=true;,例如 W=true;DB1.0;不加时按普通字符串解析。

DB 地址中的第一个数字是 DB 块号,后面的数字是字节偏移;最后再写 .0.7 才表示位号,例如 DB100.1 为 DB100 的第 1 字节,DB100.1.1 为该字节的第 1 位。V 区等价于 DB1。

特殊方法

方法用途参数
ReadWriteDateAsync读取或写入 S7 日期值。address,可选 value
ReadWriteDateTimeAsync读取或写入 S7 日期时间值。address,可选 value

读取时不填写值;写入时只使用现场允许的安全点位。

设备调试

进入“开发配置 → 采集配置”,选择当前设备后点击“更多功能”并打开“调试”。

功能作用
读写按 S7 地址读取或写入测试值。写入前确认 DB/存储区和现场安全。
消息查看 S7 会话、请求、响应和错误状态,用于核对机架、插槽、地址和数据长度。

读写

Siemens S7 读写

  1. 打开“读写”,填入已确认存在的地址,例如 DB1.0
  2. 选择与 PLC 一致的数据类型,本例为 Int16,读取数量填 1
  3. 点击“读取”,核对返回值;失败时查看错误消息和“消息”页签。

不要点击“写入”来验证读取配置。写入会修改 PLC 数据,必须另行确认地址和现场安全。

消息

Siemens S7 消息

查看设备收发消息和协议日志,定位报文格式、连接和解析问题。

没读到正确值时

现象先检查
无法连接IP、102 端口、PLC 型号、Rack/Slot 及 PLC 连接资源
能连接但 DB 读取失败DB 是否存在、偏移是否越界、访问权限及优化块设置
值不正确字节偏移、数据类型和字节序,不要按变量序号填写地址
宽字符串乱码地址是否带 W=true;,类型、数组长度与 PLC 字符串布局是否一致
特殊方法失败参数、用户权限及 PLC 是否允许当前操作;不要反复尝试写入或控制

相关操作

  • 采集配置:查看通道、设备和公共变量配置。
  • 插件索引:查找其它采集或数据转发插件。