一 、软硬件描述
1. 西门子PLC S7-1215
2. 钡铼BL102网关
3. mosquitto MQTT服务器(腾讯云上搭建)
4. 可以上网的路由器一套
二、需要使用的软件。
1. 西门子Portal v15.1 (西门子PLC编程软件)
2. 钡铼BL102调试软件及说明书。
说明书下载链接: http://rtu-m2m.com/Download/Manual/ 中文 /BL102_ 中文说明书 _V1.0.zip
调试软件下载链接: http://rtu-m2m.com/Download/Software/ 中文 /BL10x_ 中文配置软件 .zip
1. Mqtt.fx MQTT服务器调试工具
2. 腾讯云服务器(各种云服务器都可以,不限腾讯云)
三、网络构架及需实现功能描述

1.BL102网关将S7-1200 PLC中的数据上传入云服务器中的mosquitto MQTT服务器,云上的后台软件可以截取相关数据。然后发送给前端显示。
后台软件如何截取,见B 站视频 "Django 物联网后台开发 " `https://www.bilibili.com/video/BV1qL4y1b7nU?spm_id_from=333.337.search-card.all.click `
2.前端接受到信息后,将信息传送给后台软件,后台软件通过mosquitto服务器将信息发送到BL102上,BL102网关修改PLC中是数据。
四、在腾讯云上安装mosquitto MQTT服务器以及MQTT mqtt.fx软件的使用。
具体操作详见我的博客:
https://www.cnblogs.com/zhangming82/p/16122210.html
五、BL102连接西门子S7-1200 PLC。
1 . 将 24 V 直流电源接入 BL102 网关以及 PLC 的供电端子。
2 . 将网线一端插入 BL102 WAN 网口,一端插入 PLC 网口。
3 . 取另外一根网线,一端插入 BL102 LAN 网口,一端插入电脑网口。并且将电脑 IP 设置成 192 . 168 . 3 .**( 除 192 . 168 . 3 . 1 以外的 IP )
4 . 打开 BL102 调试软件,点击软件上的 " 设备搜索 " 。开始搜索到设备。搜索到设备后进入主界面。
5 . 鼠标双击界面上的 “WAN” ,在弹出界面中,将 WAN 口改成与 PLC 同一个域的 IP (例如目前我设置的PLC IP 为 192 . 168 . 1 . 250 ,而BL102 WAN 口 IP 改为了 192 . 168 . 1 . 254 )。子网掩码和网关同样填写,DNS 不做要求。填写后,点击 “ 写入配置 ” 将信息写入 BL102 网关。
6 . 拔下 BL102 LAN 口网线,将网线插到路由器上,使电脑和路由器连接。将电脑和路由器 IP 改为同一个域。(比如我的电脑 IP 改为 192 . 168 . 1 . 22 // 路由器 IP 改为 192.168.1.20 )。
7 . 再取第三根网线,一段插在路由器上,一段插在 PLC 的网口上。
8 . 打开西门子 PORTAL V15. 1 软件,在硬件组态中设置好PLC 的属性。特别要注意的是因为 BL102 可以通过 S7 通讯协议直接读取PLC 中的数据,因此必须在 PORTAL 软件中 “ 连接机制 ” 里的 “ 允许来自远程对象的 PUT/ GET 通讯访问” 打开。否则 BL102 将无法与 PLC 进行通讯。然后将改好的配置程序下载到 PLC 中。

9 .打开BL102调试软件,在界面“WAN”点击鼠标右键后,选择添加。在弹出的设备信息上,填写西门子PLC的 IP 端口号等。填写后点击确定。(端口号为 102 )

10 .点击确定后,在界面右侧灰色区域点击鼠标右键,选择添加。加入需要监控的PLC数据。然后将修改好的配置下载入BL102网关中。(注意,可以对PLC的 I/Q/M/ DB 等进行监控,但是如果要监控 DB 块的内容。必须在PORTAL软件中选择 DB 块的属性,取消“优化块的访问”)。


11
.进入
BL102
调试界面,当界面上“WAN”
红灯亮起,表示已经与PLC
连接。

六、BL102网关连接mosquitto MQTT服务器。
1. 打开BL102 网关调试界面,双击云平台 -->MQTT Client One ,进入界面。在界面中设置好 IP, 端,用户名,密码口等信息,并且数据模板选择 “KingPigeon” ,以及填写好订阅主题和发布主题,以及上传周期。 ( 之所以选择 KingPiageon 是因为这个模板比较简单,说明书写的内容也比较多一点)
2 . 在右侧灰色界面中,点击鼠标右键,选择添加。加入需要通讯的 PLC 变量点( PLC 变量点如何设置见上面),选择完毕后,将数据下载到 BL102 中。

特此强调:订阅主题,必须在主题内容的后面,增加 "/+" 。
3. 进入BL102 调试界面,当界面上 “MQTT Client One 上线状态” 红灯亮起,表示已经与 MQTT 服务器连接正常。

4 . 将修改的配置下载如 BL102 中后,可以通过 MQTT.fx 软件对 BL102 进行 MQTT 发布,订阅信息的验证。
七、BL102网关订阅、发布信息格式---KingPigeon模板
1.BL102网关订阅格式
{ "sensorDatas" : [{
// 布尔量 "flag" : "Y0" , // 读写标识 "switcher" : 1 // 数据类型及值 },{
// 数值型 "flag" : "VW0" , // 读写标识 "value" : 8 // 数据类型及值 }],}
2.BL102网关发布格式
注意 1 :BL102 网关发布 必须增加/ 传感器 ID. 如果是自己建立的 MQTT 服务器,传感器 ID 可以写随意的值 ( 例如发布主题为 "topic" ,传感器ID 为 100 . 发布主题必须写成 topic/ 100 )
注意 2 :“value” 以及 "switch" 值必须加引号。
{ "sensorDatas" :[{ "sensorsId" : 100 , // 平台传感器 ID (必须 "value" : 74.3 , // 数据类型及值 "flag" : "VW0" // 读写标识 }], "down" : "down" // 平台下行报文标识 }
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70014306/viewspace-2886581/ ,如需转载,请注明出处,否则将追究法律责任。