工厂设备数据上云:西门子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天,完全满足工业场景断网续传需求。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分