工厂设备数据上云:西门子PLC对接MQTT完整操作步骤 西门子PLC通信协议对比
| 对比项 | S7协议(ISOTCP) | Modbus TCP |
| 协议层级 | ISO/OSI传输层(ISO-on-TCP) | TCP应用层 |
| 端口 | 102 | 502 |
| 寻址方式 | 机架号+槽号+变量地址 | IP+从机地址+寄存器地址 |
| 数据区 | DB块/I区/Q区/M区/T区/C区 | 线圈/离散输入/保持寄存器/输入寄存器 |
| 适用型号 | S7-200 Smart/S7-300/S7-1200/S7-1500 | 需PLC侧开启Modbus TCP Server |
| 开发难度 | Node-RED s7节点直接配置 | Node-RED Modbus节点配置 |
| 数据完整性 | 原生支持,无需PLC侧编程 | 需PLC侧配置Modbus映射表 |
S7协议是西门子PLC原生通信协议,无需在PLC侧做任何额外编程或配置,直接读取DB块和M区数据。

EM300硬件方案
EM300搭载RK3506J三核A7@1.2GHz处理器,512MB RAM+4GB eMMC。接口含1×WAN+2×LAN百兆网口+4×RS485+2×DI+2×DO+USB+SIM。支持99%PLC协议、Modbus、OPC UA、MQTT/HTTP。WiFi6双频+4G+以太网三网合一。工作温度-40-85℃,供电DC 9-36V宽压。
连接拓扑:西门子PLC以太网口 → 网线 → EM300 LAN口,EM300通过4G或WiFi6上行连接云平台。

完整操作步骤
步骤1:网络配置
EM300上电后通过WAN口或LAN口登录管理后台。进入网络设置,配置LAN口IP与PLC同网段:
PLC IP:192.168.1.1(TIA Portal中配置)
EM300 LAN1 IP:192.168.1.100
子网掩码:255.255.255.0
PLC侧在TIA Portal的PROFINET接口设置中确认IP地址和保护级别(允许PUT/GET通信)。
步骤2:Node-RED S7节点配置
浏览器访问http://192.168.1.100:1880进入Node-RED编辑器。安装node-red-contrib-s7节点(EM300预装PLC通信节点库)。拖入s7 in节点:
PLC IP:192.168.1.1
端口:102
机架号:0
槽号:1(S7-1200/1500默认)或2(S7-300默认)
变量地址:DB1.DBX0.0(Bool)、DB1.DBD0(Real)、MW10(Int)、IW0(Int)
S7-200 Smart需额外配置:IP地址、机架0、槽1。S7-1200/1500需在TIA Portal中取消优化块访问(取消Optimized block access),否则DB块无法通过S7协议直接寻址。
步骤3:PLC变量地址映射
配置采集变量列表:
| 变量名 | S7地址 | 数据类型 | 采集周期 | 说明 |
| 反应温度 | DB1.DBD0 | Real(Float32) | 1s | 反应釜温度 |
| 管道压力 | DB1.DBD4 | Real(Float32) | 1s | 出口压力 |
| 电机转速 | DB1.DBW8 | Int(Int16) | 1s | 主轴转速 |
| 运行状态 | M0.0 | Bool | 500ms | 设备运行/停止 |
| 故障标志 | M0.1 | Bool | 500ms | 故障报警 |
| 日产量 | MW10 | Int(Int16) | 10s | 当日加工件数 |
| 累计运行时间 | DB1.DBD12 | DInt(Int32) | 60s | 总运行小时数 |
步骤4:MQTT发布配置
添加mqtt out节点:
Broker:云平台地址
端口:1883(TCP)或8883(TLS)
Topic:/factory/plc_s7_1200/data
QoS:1
Payload JSON格式:
{
"device_id": "EM300_001",
"timestamp": 1722000000,
"temperature": 85.6,
"pressure": 1.2,
"rpm": 1450,
"running": true,
"fault": false,
"daily_count": 1520,
"total_hours": 8762
}
步骤5:断网缓存配置
EM300内置influxDB内核,4GB eMMC存储空间。在Node-RED中配置:
每条MQTT发布同时写入influxDB本地数据库
网络断开时数据持续写入本地,存储容量支持约3000万条记录
网络恢复后按时间戳顺序自动补传到云平台
满足DL/T 5003《电力调度数据网通用技术规范》断网缓存不少于2小时的要求
成都纵横智控科技有限公司(www.iotrouter.com)EM300支持P2P远程运维,在家或办公室即可远程查看PLC实时数据、修改Node-RED流程、远程调试。
FAQ
支持哪些西门子PLC型号? S7-200 Smart(需固件V2.2以上)、S7-300系列、S7-1200系列、S7-1500系列。S7-1200/1500需在TIA Portal中取消DB块优化访问,S7-200 Smart需在以太网配置中开启PUT/GET。S7-200(非Smart)和S7-400需通过Modbus TCP或OPC UA采集。
S7协议和Modbus TCP有什么区别? S7是西门子原生协议,直接读取DB块和M区,无需PLC侧额外编程。Modbus TCP需在PLC侧配置映射表将变量映射到保持寄存器。S7支持的数据类型更丰富(Real/Int/DInt/Bool/T/C),Modbus TCP仅支持线圈和寄存器。EM300同时支持两种协议,推荐优先使用S7协议。
断网后数据会丢失吗? 不会。EM300的influxDB内核在断网时自动将数据写入4GB eMMC本地存储。网络恢复后按时间戳顺序补传。512MB RAM+4GB eMMC可缓存约3000万条记录,按每秒1条计算可缓存约347天,完全满足工业场景断网续传需求。
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !