掌握这些,让你轻松玩转钡铼PLC网关与西门子S7-1200的MQTT通信

news2024/11/23 11:17:49

一、软硬件描述

  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.将24V直流电源接入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" //平台下行报文标识

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1003493.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Map集合案例-统计投票人数

需求: 某个班级80名学生,现在需要组成秋游活动,班长提供了四个景点依次是(A、B、C、D),每个学生只能选择一个景点,请统计出最终哪个景点想去的人数最多。 利用Map集合进行统计 //A06_HashMapDemo2.java package dail…

【报错】bash: curl: command not found

(1)报错😱😱😱 bash: curl: command not found (2)分析🐰🐰🐰 安装对应的工具包 curl即可。 (3)解决方法💉&#x1f4…

分库分表知识点

分库分表专题 1.概述 1.1 分库分表是什么 小明是一家初创电商平台的开发人员,他负责卖家模块的功能开发,其中涉及了店铺、商品的相关业务,设计如下数据库: 通过以下SQL能够获取到商品相关的店铺信息、地理区域信息 SELECT p.*…

SQL常用脚本整理(上)

点击关注公众号,SQL干货及时获取 后台回复:1024,获取海量学习资源 SQL刷题专栏 SQL145题系列 大家注意: 因为微信改了推送机制,会有小伙伴刷不到当天的文章, 一些比较实用的知识和信息,错过了就…

若依框架i18n国际化

需求背景 项目需求要做国际化,结果网上找了好几篇文章,没有一个可以一次性搞定,现在这里总结一下。首先,我们分为两部分处理,一个是前端页面的静态文字,这个由前端vue.json自行处理。第二部分就是后端的错…

Windows 11 安装Boost 库

Boost 库下载和安装 Boost 官网地址:https://www.boost.org/ ,首先进入官网下载对应版本的 Boost 库文件。点击下图所示绿框中的 Download 进入下载页面。 进入下载页面,下载所需要的版本,我现在下载的版本为1.83.0,下载的是win…

IGBT和碳化硅SiC模块,全球市场总体规模,前二十大厂商排名及市场份额

IGBT模块与碳化硅SiC模块全球市场总体规模 2023年全球IGBT模块市场规模大约为67亿美元,预计2029年将达到145亿美元,未来几年年复合增长率CAGR为13.6%。 2023年全球碳化硅SiC模块市场规模大约为16.9亿美元,预计2029年将达到92亿美元&#xff…

MySQL内连接和外连接及七种SQL JOINS的实现

1. 内连接 2.外连接左外连接:右外连接:满外连接: 3. SQL99语法实现多表查询 3.1 SQL99实现内连接 3.2 SQL99语法实现外连接 3.2.1 左外连接3.2.2 右外连接 3.2.3 满外连接 4.总结:七种SQL JOINS的实现 4.1 内连接 4.2 左…

【开发者工具中$0的作用】

在开发者工具中每当我们选中元素的时候 最右侧都会出现一个 $0 不知道大家有没有注意到 以下图为例 我选中最新排序的input框 输入$0 它就默认选中这个元素 我们可以在这里进行一些赋值等操作

OpenHarmony社区运营报告(2023年8月)

本月快讯 2023年8月3日,OpenAtom OpenHarmony(以下简称“OpenHarmony”)发布了Beta2版本。OpenHarmony 4.0 Beta2在系统能力、应用框架、分布式通信、媒体功能、安全性等方面进行了全面升级。其中,ArkUI增强了界面组件能力&#x…

Linux基础命令(示例代码 + 解释)

查看目录下文件 ls [-a -l -h] [路径] -a(全部) -l(细节) -h(大小) ls ls / ls -a ls -l ls -h ls -alh ls -l -h -a ls -lah /切换目录 cd [路径] change di…

kafka增加磁盘或者分区,topic重分区

场景:kafka配置文件log.dirs增加了几个目录,但是新目录没有分区数据写入,所以打算进行重分区一下。 1.生成迁移计划 进入kafka/bin目录 新建 topic-reassign.json,把要重分区的topic按下面格式写。 { "topics": [{ …

NotionAI使用指南

一、NotionAI是什么 NotionAI是一款基于人工智能技术的知识管理工具,具有以下功能: 智能提醒: NotionAI可以根据用户的使用习惯和工作流程,智能提醒用户需要完成的任务和事项,帮助用户更好地规划和安排工作时间。智能分类: Noti…

洗鞋软件开发,洗鞋店小程序功能介绍;

洗鞋小程序开发搭建; 作为一个技术出身的设计人,今天我想跟大家一起来聊一聊目前市面上的洗鞋小程序,截止目前,我们闪站侠洗护软件已经累计服务用户2000 可以总结一下,目前市面上只要是宣称自己做互联网洗鞋的&#x…

MyBatis的使用

一.在创建Spring项目时引入MyBatis Framework和MySQL Driver; 二.下载插件:MyBatisX插件。 三.配置文件: 四.根据MyBatis写法完成数据库的操作 常规写法,包括两个文件: 1.接口:方法的声明(给其他层调用&…

CAN/CANFD转WIFI设备解决近距离无线通讯问题

在现场应用中,各种情况都会出现,一些运动设备进行维护、下载、测试工作时,需要近距离无线收发CAN/CANFD报文。 港口应用中,控制室与吊机一没有办法通过有线连接,这时候就可以用无线来实现数据抓取。 例如某AGV小车厂…

java.lang.ClassCastException: android.os.BinderProxy cannot be cast to ...

项目开发遇到下面这个报错了! 直接说原因,就是因为进程间不能直接传递对象,应该传递该Binder对象的映射(代理对象),所以类型转换就出错了。如果在同一个进程中,直接传递对象没有关系&#xff0c…

手撕代码是程序员的基本功吗?

前言: 现在众多企业都要求在面试中用“手撕代码”来考验应聘者的代码能力,你觉得手敲代码是否可以体现真实的基础实力? 本期话题: 1、你觉得手撕代码是程序员的基本功吗? 2、为什么会用“手撕代码”来考验程序员能力&a…

vue3中v-html的使用时,出现<后面的字符串展示不出来

话不多说&#xff0c;直接上代码&#xff1a; 把<替换一下用&lt &#xff0c;这样就完美的解决问题了

神经网络 01(介绍)

一、神经网络 人工神经网络 (Artificial Neural Network&#xff0c;简写为ANN)也简称为神经网络 (NN)&#xff0c;是一种模仿生物神经网络结构和功能的 计算模型。人脑可以看做是一个生物神经网络&#xff0c;由众多的神经元连接而成。各个神经元传递复杂的电信号&#xff0c…