教程:S7协议采集数据后通过MQTT+json上报及反控

  • 时间 :2026-08-04
  • 作者 :佰马科技
  • 浏览数 :1311

S7 是西门子 PLC 专属通信协议,基于 ISO‑TSAP 实现,多用于西门子 S7‑200/300/400/1200/1500 系列设备,广泛应用于智能制造、产线自动化、水务、暖通等工业现场,实现 PLC 寄存器、DB 块数据读写。


将 S7 协议采集的 PLC 数据,转换为 JSON 格式经 MQTT 协议上报云端,同时下发 MQTT 指令实现设备反控,这样方案的优势包括:MQTT 轻量省流量,适配 4G/5G 工业网络;JSON 格式数据解析简单易对接平台;可实现远程采集、下发控制指令,打通本地 PLC 与云平台,降低多设备接入部署成本,方便统一监控与远程运维。


本文以佰马工业数采网关为例,使用S7协议采集下位机数据及MQTT协议上传,在本文中使用软件模拟下位机,提前写入寄存器DB1.208数据值100,M100数据值20。(使用软件模拟时只适用于网口模式)


软件模拟


一、接线说明


1.网口连接:将电脑和西门子PLC的网线都连接到佰马网关的LAN口,电脑网卡设置为自动获取地址。

2.串口连接:将电脑的网线连接到佰马网的LAN口,脑网卡设置为自动获取地址。PLC的485接口A连接佰马网关串口A,PLC的485接口A连接佰马串口B


自动获取地址


二、网关配置


1.查看电脑网卡获取到的默认网关,使用默认网关登录到佰马网关管理页面(佰马网关默认ip通常为192.168.1.1)。


网关配置


网关后台


2.登录后点击数据采集-基础设置,启用数据采集并配置想要的采集周期和上报周期,点击保存&应用。

采集周期:每过一次采集周期,发起一次数据采集。

上报周期:每过一次上报周期,向上位机上报一次数据。


网关基础设置


3.点击数据采集-接口设置,使用串口连接时配置com口,使用网线连接时配置TCP设备配置,如下图


数据采集设置


数据采集设置


4.点击数据采集-S7规则设置参数说明如下:

序号:自定义; 设备名:自定义,可以以设备用途命名;

接口:选中第三步中配置的具体连接;

寄存器名称:与平台端配置的对应,采集到数据后佰马网关将会把数据与该寄存器名称绑定发送给上位机;

寄存器类型:根据PLC点表选择;寄存器地址:根据PLC点表选择;

个数:根据PLC点表选择; 数据类型:根据PLC点表选择;

上报中心:采集到的数据上报到的中心端,1到5对应服务端1-5。要上报到多中心时用“-”隔开。如上报服务端1和服务端2时填:1-2  


此处图片读取DB1.208和M100的数值。


数据读取


可于数据采集-数据查询查看数值是否被采集到了网关


数据读取查看


5.点击数据采集-服务端配置,填写对应的参数

协议选择mqtt,封装类型选择JSON,服务器地址填写MQTT broke的地址,端口填写MQTT broke的端口,MQTT发布主题为网关发给MQTT 服务端的主题,MQTT注册主题为服务端发送给网关的主题。根据服务端创建的mqtt用户名,密码,客户端ID填入对应框。成功连接后连接状态处会显示:已连接


服务端配置


三、数据查看与反控


1.通过mqtt工具订阅MQTT发布主题查看网关上报的数据:


数据查看


3.使用mqtt工具下发网关上的MQTT注册主题,进行数据反控。例如修改a2的数值为30,下发命令格式为:

{

 "method": "sendTelemeter",

  "params": {

    "a2":30

  }


}

网关响应:

{"status":"OK"}


数采网关响应


可看到a2对应的寄存器M100的值已被修改为30


数据反控

联系我们
联系我们

佰马Baimatech,集M2M产品研发、IoT平台服务、国际化运营于一体,让我们联接,共创未来