1. 为什么要在车间里玩转MQTT?从“信息孤岛”到“数据桥梁”
干了这么多年自动化,我见过太多车间里的“信息孤岛”。一台台西门子PLC,比如咱们今天要聊的S7-1200和S7-1500,在产线上兢兢业业地控制着电机、阀门、传感器,数据就在它们内部打转。生产主管想知道实时产量,得让人去HMI上抄数;设备维护人员想预判故障,得等报警灯亮了才知道。这效率,在现在这个讲究“工业物联网”的时代,确实有点跟不上趟了。
那怎么把这些宝贵的数据“捞”出来,送到更高级的系统中去分析、展示、预警呢?这就需要一座“数据桥梁”。MQTT协议,就是这座桥的绝佳建材。它特别适合咱们工业现场这种网络环境可能不稳定、设备资源有限的场景。你可以把它想象成一个高效的“邮差系统”:PLC作为“发布者”,把数据(比如一个温度值、一个设备状态)打包成“信件”(消息),贴上“地址标签”(主题),投递到“邮局”(MQTT代理服务器,也叫Broker)。而任何关心这个“地址”的系统,比如云平台、上位机、或者另一台PLC,作为“订阅者”,只要告诉“邮局”我关心哪些“地址”,就能自动收到所有相关的“信件”。整个过程轻量、省流量,而且支持一对多、多对多的灵活通讯。
所以,今天这篇实战指南,就是给各位自动化工程师和技术学习者准备的。无论你是想把车间数据上传到公司自建的物联网平台,还是想实现两台不同产线的PLC之间直接“对话”交换数据,基于S7-1200/1500的MQTT通讯都是你必须掌握的技能。我会手把手带你,从硬件接线开始,到TIA Portal里一步步配置,最后让数据成功跑起来,把踩过的坑和总结的窍门都分享给你。
2. 动手前的准备:硬件、软件与网络环境全梳理
别急着打开TIA Portal,磨刀不误砍柴工。咱们先把“战场”环境布置好,后面操作才能顺风顺水。我刚开始搞这个的时候,就因为网络没配通,白白折腾了大半天。
硬件清单:核心设备当然是西门子S7-1200或S7-1500系列PLC一台(作为MQTT客户端)。我用一台1215C DC/DC/DC和一台1516-3 PN/DP都测试过,完全没问题。你还需要一台电脑,安装TIA Portal(V16或更高版本,我用的V17)用于编程和下载。最关键的是MQTT代理服务器(Broker)。这个服务器是消息的中转站,你有几个选择:第一,使用公共的测试服务器,比如 test.mosquitto.org(端口1883),方便快速验证,但生产环境千万别用。第二,在本地电脑上自己搭建一个,比如用开源的Mosquitto或者EMQX,这样网络延迟最低,调试最方便。第三,也是工业场景最常见的,使用公司部署的私有物联网平台内置的MQTT Broker,或者购买阿里云、华为云等公有云平台的物联网服务,它们都会提供Broker地址和接入认证。
软件与网络配置:
- TIA Portal安装:确保你的TIA Portal版本支持你手上的PLC型号,并且已经安装了对应的设备支持包。这个不用多说。
- PLC网络配置:这是第一个容易踩坑的地方。你的PLC和运行MQTT Broker的服务器(无论是本机还是云服务器)必须在同一个局域网内,或者网络路由可达。给PLC设置一个固定的IP地址,比如
192.168.0.10。同时,你的编程电脑的IP也要设在同一个网段,比如192.168.0.100,这样才能通过TIA Portal连接到PLC。 - 防火墙!防火墙!防火墙!:重要的事情说三遍。我敢说,至少一半的MQTT连接失败问题都出在防火墙上。如果你在本地电脑上运行Broker(比如Mosquitto),那么电脑的防火墙必须放行Broker所使用的端口(默认是1883用于非加密连接,8883用于SSL加密连接)。同样,如果PLC端有防火墙功能(某些高端型号或通过外部防火墙设备),也需要配置规则允许向Broker的IP和端口发起出站连接。最直接的测试方法,就是在确保物理连接正常后,临时关闭电脑的Windows防火墙进行连接测试,如果通了,就说明是防火墙规则的问题,再去配置具体的入站规则。
注意:生产环境中,不建议直接关闭防火墙,而应通过添加精确的防火墙规则来开放必要的端口,这是基本的安全规范。
1019




被折叠的 条评论
为什么被折叠?



