MQTT中文站
  • 首页
  • MQTT 学习
    • MQTT 入门
    • MQTT 进阶
    • MQTT 编程
    • MQTT 实例
    • MQTT 要点
    • MQTT5 要点
    • MQTT 工具
    • MQTT 客户端库
    • MQTT 服务器
    • Zigbee2MQTT
    • Sparkplug
    • Home Assistant
    • Node-RED
      • Node-RED 安装部署
      • Node-RED 用户指南
      • Node-RED 创建节点
      • Node-RED 示例教程
      • Node-RED 开发流程
      • Node-RED 接口参考
      • Node-RED 配置模板
      • Node-RED 常见问题
  • MQTT 规范
    • MQTT 5 规范
    • MQTT 3.1.1 规范
    • MQTT 3.1 规范
    • MQTT-SN v1.2规范
    • Sparkplug® v3.0.0规范
  • 产品中心
  • 解决方案
    • 环境监测
    • 工业制造
    • 智慧水利
    • 水利管网
    • 积水监测
    • 综合管廊
    • 档案库房
    • 交通物流
    • 智慧城市
    • 智慧农业
    • 智慧养殖
    • 能源电力
    • 石油石化
    • 智能家居
    • 物联网
    • 汽车与出行
  • 使用文档
  • MQTT 云平台
  • 登录
  • 注册

西门子 S7 PLC 交互的 Node-RED 节点

2 年前 • Node-RED 示例教程

该节点是作为 ST-One 项目的一部分创建的。

安装

您可以直接从 Node-RED 界面中的 “管理面板” 菜单安装此节点。

或者,在 Node-RED 用户目录中运行以下命令 - 通常在 Linux 上是 ~/.node-red 或在 Windows 上是 %HOMEPATH%\.nodered

npm install node-red-contrib-s7

需要 NodeJS 版本 10 或更高版本以及 Node-RED 版本 1.0 或更高版本。

用法

每个与 PLC 的连接都由 S7 端点配置节点表示。您可以配置 PLC 的地址、可用变量及其地址以及读取变量的循环时间。

S7 In 节点使变量的值在流中以三种不同的模式可用:

  1. 单个变量:可以从配置的变量中选择单个变量,并且每个周期发送一条消息,或者如果检查了 diff 则仅当它发生变化时发送消息。msg.payload 包含变量的值,msg.topic 具有变量的名称。
  2. 所有变量,每条消息一个:与单变量模式类似,但适用于配置的所有变量。如果选中 diff,则每次任何变量更改时都会发送一条消息。如果未选中 diff,则在每个周期中为每个变量发送一条消息。必须注意此模式下每秒的消息数。
  3. 所有变量:在此模式下,msg.payload 包含一个包含所有配置变量及其值的对象。如果选中 diff,则当至少一个变量更改其值时,将发送一条消息。

变量寻址

S7 Endpoint 上配置的变量及其地址遵循的方案与 Step 7 或 TIA Portal 上使用的方案略有不同。以下是一些可以指导您处理变量的示例:

地址相当于 Step7JS 数据类型描述
DB5,X0.1DB5.DBX0.1布尔值DB 5 字节 0 的位 1
DB23,B1 或 DB23,BYTE1DB23.DBB1数字DB 23 的字节 1 (0-255)
DB100,C2 或 DB100,CHAR2DB100.DBB2字符串DB 100 的字节 2 作为字符
DB42,I3 或 DB42,INT3DB42.DBW3数字DB 42 的字节 3 处有符号 16 位数字
DB57,WORD4DB57.DBW4数字DB 57 字节 4 处的无符号 16 位数字
DB13,DI5 或 DB13,DINT5DB13.DBD5数字DB 13 的字节 5 处有符号 32 位数字
DB19,DW6 或 DB19,DWORD6DB19.DBD6数字DB 19 的字节 6 处的无符号 32 位数字
DB21,R7 或 DB21,REAL7DB21.DBD7数字DB 21 的字节 7 处的浮点 32 位数字
DB2,S7.10*-字符串从 DB 2 的字节 7 开始的长度为 10 的字符串
I1.0 或 E1.0I1.0 或 E1.0布尔值输入区域字节 1 的位 0
Q2.1 或 A2.1Q2.1 或 A2.1布尔值输出区域字节 2 的位 1
M3.2M3.2布尔值内存区域字节 3 的位 2
IB4 或 EB4IB4 或 EB4数字输入区域的字节 4 (0 -255)
QB5 或 AB5QB5 或 AB5数字输出区域的字节 5 (0 -255)
MB6MB6数字内存区域的字节 6 (0 -255)
IC7 或 EC7IB7 或 EB7字符串输入区域的字节 7 作为字符
QC8 或 AC8QB8 或 AB8字符串输出区域的字节 8 作为字符
MC9MB9字符串内存区域的字节 9 作为字符
II10 或 EI10IW10 或 EW10数字输入区域字节 10 处的有符号 16 位数字
QI12 或 AI12QW12 或 AW12数字输出区域字节 12 处的有符号 16 位数字
MI14MW14数字内存区域字节 14 处的有符号 16 位数字
IW16 或 EW16IW16 或 EW16数字输入区域字节 16 处的无符号 16 位数字
QW18 或 AW18QW18 或 AW18数字输出区域字节 18 处的无符号 16 位数字
MW20MW20数字内存区域字节 20 处的无符号 16 位数字
IDI22 或 EDI22ID22 或 ED22数字输入区域字节 22 处的有符号 32 位数字
QDI24 或 ADI24QD24 或 AD24数字输出区域字节 24 处的有符号 32 位数字
MDI26MD26数字内存区域字节 26 处的有符号 32 位数字
ID28 或 ED28ID28 或 ED28数字输入区域字节 28 处的无符号 32 位数字
QD30 或 AD30QD30 或 AD30数字输出区域字节 30 处的无符号 32 位数字
MD32MD32数字内存区域字节 32 处的无符号 32 位数字
IR34 或 ER34IR34 或 ER34数字输入区域字节 34 处的浮点 32 位数字
QR36 或 AR36QR36 或 AR36数字输出区域字节 36 处的浮点 32 位数字
MR38MR38数字内存区域字节 38 处的浮点 32 位数字
DB1,DT0-日期**DATE_AND_TIME 格式的时间戳
DB1,DTZ10-日期**DATE_AND_TIME 格式的时间戳(UTC)
DB2,DTL2-日期**DTL 格式的时间戳
DB2,DTLZ12-日期**DTL 格式的时间戳(UTC 格式)
DB57,RWORD4DB57.DBW4数字DB 57 字节 4 处的无符号 16 位数字,解释为 Little-Endian
DB13,RDI5 或 DB13,RDINT5DB13.DBD5数字DB 13 的字节 5 处的有符号 32 位数字,解释为 Little-Endian
MRW20MW20数字内存区域字节 20 处的无符号 16 位数字,解释为 Little-Endian

备注:

  • 布尔值 表示是非类型的值,例如开或关。
  • 数字 表示可以是整数或浮点数的值。
  • 字符串 表示文本类型的值。
  • 日期 表示时间戳类型的值。

*) 请注意,PLC 上的字符串在开头使用 2 个额外字节来表示字符串的大小/长度
**) 请注意,javascriptDate始终以UTC 表示。请使用其他节点(例如node-red-contrib-moment)来正确处理类型转换

关于 S7-1200/1500 的注意事项

这些较新的 PLC 提供 S7 协议的 “扩展” 版本,而我们只有 “基本” 版本。

因此,需要对 PLC 进行一些额外的配置步骤:

  • 对于我们想要访问的数据库,必须禁用 “优化块访问”。
  • 在 CPU 属性的 “保护” 部分中,启用 “允许使用 PUT/GET 访问” 复选框。

标志注意事项!

最新的标志!8.FS4(可能还有 0BA8)逻辑模块无需再将模式设置为 TSAP,而是使用默认的机架/插槽值 0/2 即可正常工作。

下表显示无需在控制器程序中进行额外设置即可访问的存储区域:

标志块标志 VM 范围示例 Node-RED 地址描述
I1024 - 1031DB1,BYTE1024 或 DB1,X1024.5 或 DB1,WORD1024读取输入端子 1...8 或 6 或 1...16
AI1032 - 1063DB1,WORD1032读取模拟输入端子 1。始终为字大小。
Q1064 - 1071DB1,BYTE1064 或 DB1,X1064.5 或 DB1,WORD1064读取输出端子 1...8 或 6 或 1...16
AQ1072 - 1103DB1,WORD1072读取模拟输出端子 1。始终为字大小。
M1104 - 1117DB1,BYTE1104 或 DB1,X1104.5 或 DB1,WORD1104读取位标志 M1...M8 或 M6 或 M1...16
AM1118 - 1245DB1,WORD1118读取模拟标志 1。始终为字大小。
NI1246 - 1061DB1,BYTE1246 或 DB1,X1246.5 或 DB1,WORD1246读取网络输入 1...8 或 6 或 1...16
NAI1262 - 1389DB1,WORD1262读取模拟网络输入 1。始终为字大小。
NQ1390 - 1405DB1,BYTE1390 或 DB1,X1390.5 或 DB1,WORD1390读取网络输出 1...8 或 6 或 1...16
NAQ1406 - 1469DB1,WORD1406读取网络输出 1。始终为字大小。

这个表格描述了在 Siemens Logo! 控制器中可访问的不同存储区域,并提供了如何在 Node-RED 中使用这些区域的实际示例。每个区域都有特定的范围和功能,例如读取输入端子、模拟输入或输出端子等。

另一方面,Logo 内存区域 VM 0-849 从控制器外部是可变的,但需要将它们映射到 Logo 程序中。如果没有映射,写入这些地址的数据将不会影响程序的执行。上述范围内使用的VM地址可以使用“网络”功能块在Logo程序中读取/写入(在功能块设置中使用“本地变量存储器(VM)”选项将VM映射到功能堵塞)。

一些寻址示例:

标志虚拟机示例 Node-RED 地址描述
0DB1,BYTE0读/写访问
1DB1,X1.3读/写访问 注意:使用布尔值
2..3DB1,WORD2读/写访问
4..7DB1,DWORD4读/写访问

这个表格描述了在 Siemens Logo! 控制器中可变的虚拟机存储区域,以及如何在 Node-RED 中访问这些区域。每个区域都提供了读写访问权限,不同的地址范围表示不同的数据类型和大小。例如,BYTE、WORD、DWORD 分别表示不同大小的数据单位。

打赏赞(2)微海报分享
node-red plc 变量 时间戳 西门子plc

物联网五层架构:感知层、网络层、数据层、应用层和业务层

利用 MQTT 实现物联网设备接入:Node.js 在阿里云平台的应用

猜你喜欢

MQTT 赋能工业 PLC 数据采集与应用

MQTT 赋能工业 PLC 数据采集与应用

06/30
2024
在工业物联网(IIoT)消息传递中MQTT Sparkplug有效负载结构的挑战及其解决方法

在工业物联网(IIoT)消息传递中MQTT Sparkplug有效负载结构的挑战及其解决方法

11/22
2023
相对于2.2版本,Sparkplug规范版本3.0更新了什么?

相对于2.2版本,Sparkplug规范版本3.0更新了什么?

10/31
2023

回复

抢沙发咯
  • 解决方案
    • 智能家居
    • 汽车与出行
    • 工业制造
    • 能源电力
    • 石油石化
    • 交通物流
    • 零售
  • 学习
    • MQTT 规范
    • MQTT 教程
    • MQTT 软件
    • MQTT 客户端库
    • MQTT 服务器
    • 工具和应用程序
  • 关于我们
    • 了解创科慧仁
    • 加入创科慧仁
    • 投资者关系
    • 新闻动态
    • 合作伙伴
    • 联系我们
  • 友情链接
    • Modbus中文网
    • 跳动符号官网
    • 物联网世界
    • RFID世界网
    • 深圳物联网协会
    • isoftstone软通动力
    • 中国发展战略学研究会
    • B.P商业伙伴
  • 在线客服
  • 全国客户服务热线
    4006909885
  • 官方公众号
  • 联系邮箱
    contact@mqtt.cn
Copyright © 2025 MQTT中文站. All rights reserved.Designed by nicetheme. 京ICP备20029519号
在线客服

微信咨询

微信咨询

4006909885

服务热线 7*24小时

电话咨询
  • 首页
  • MQTT 学习
    • MQTT 入门
    • MQTT 进阶
    • MQTT 编程
    • MQTT 实例
    • MQTT 要点
    • MQTT5 要点
    • MQTT 工具
    • MQTT 客户端库
    • MQTT 服务器
    • Zigbee2MQTT
    • Sparkplug
    • Home Assistant
    • Node-RED
  • MQTT 规范
    • MQTT 5 规范
    • MQTT 3.1.1 规范
    • MQTT 3.1 规范
    • MQTT-SN v1.2规范
    • Sparkplug® v3.0.0规范
  • 产品中心
  • 解决方案
    • 环境监测
    • 工业制造
    • 智慧水利
    • 水利管网
    • 积水监测
    • 综合管廊
    • 档案库房
    • 交通物流
    • 智慧城市
    • 智慧农业
    • 智慧养殖
    • 能源电力
    • 石油石化
    • 智能家居
    • 物联网
    • 汽车与出行
  • 使用文档
  • MQTT 云平台
  • 登录
  • 注册
string(5) "2.0.0"