一、软硬件描述

  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" //平台下行报文标识
}

使用钡铼BL102网关连接西门子S7-1200PLC 以及mosquitto服务器方法的更多相关文章

  1. 钡铼BL102分布式IO系统如何应用于锂电池行业

    近年来,全球新能源汽车的蓬勃发展促进了锂电池行业的发展.随着锂电池标准化程度的提高,电池和模块规格的标准化是未来的发展趋势,也促进了自动化模块生产线的发展. 锂电池模块生产线通过涂胶-电池堆叠-组装- ...

  2. 开源纯C#工控网关+组态软件(三)加入一个新驱动:西门子S7

    一.   引子 首先感谢博客园:第一篇文章.第一个开源项目,算是旗开得胜.可以看到,项目大部分流量来自于博客园,码农乐园,名不虚传^^. 园友给了我很多支持,并提出了很好的改进意见.现加入屏幕分辨率自 ...

  3. 汽车锂电池行业为啥会选择钡铼BL200系列Profinet分布式IO

    近年来,全球新能源汽车的蓬勃发展促进了锂电池行业的发展.随着锂电池标准化程度的提高,电池和模块规格的标准化是未来的发展趋势,也促进了自动化模块生产线的发展. 锂电池模块生产线通过涂胶-电池堆叠-组装- ...

  4. 西门子S7系列PLC的主要种类及应用软件

    德国西门子(SIEMENS)公司生产的可编程序控制器在我国的应用也相当广泛,在冶金.化工.印刷生产线等领域都有应用.西门子(SIEMENS)公司的PLC产品包括LOGO,S7-200,S7-300,S ...

  5. c3p0连接池获得的Connection执行close方法后是否真的销毁Connection对象?

    问题描述: jfinal做的api系统中,在正常调用接口一段时间后,突然再调用接口的时候,该请求无响应api系统后台也无错误信息 (就是刚开始接口调用是正常的,突然就无响应了) 于是啊,就开始找错误. ...

  6. Java连接MySQL数据库增删改查通用方法

    版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...

  7. TOAD连接ORACLE而不装ORACLE 客户端的方法

    TOAD连接ORACLE而不装ORACLE 客户端的方法 原来连接ORACLE总是要装ORACLE客户端,挺麻烦得,一方面要带ORACLE得盘,另一方面,装这么大得东西也让人很不爽. ORACLE好像 ...

  8. plsql无法连接64位oracle数据库的解决方法

    今儿个重装了个系统,win8 64位.接着装了个64位的oracle11g,oracle11g下载页面:http://www.oracle.com/technetwork/database/enter ...

  9. 详细说明phpmyadmin连接,管理多个mysql服务器

    用phpmyadimn来连接管理多个数据库要修改配置文件,挺不爽的,并且连接远程数据库,速度不行.可以使用其他数据库管理工具,请参考,navicat 结合快捷键 非常好用,开源,好用mysql 管理工 ...

随机推荐

  1. 各种环境下反弹shell

    0x00 NC命令详解 在介绍如何反弹shell之前,先了解相关知识要点. nc全称为netcat,所做的就是在两台电脑之间建立链接,并返回两个数据流 可运行在TCP或者UDP模式,添加参数 -u 则 ...

  2. 磁盘管理--如何在VMware上给centos7增加一块磁盘

    一. 实验环境 VMware Workstaion + Centos7 二.实验步骤 1.关闭虚拟机,添加磁盘 2.添加硬件向导 硬件类型 你要安装哪类硬件? 点击完成观察到已经成功添加磁盘 3.开启 ...

  3. 开源电调blheli / blheli_s分析

    一. 启动阶段分析 启动阶段需完成24次换相,超过24次之后进入初始运行阶段,该阶段持续12次换相周期(每个周期6次换相),完成后进入正常运转阶段 二. 换相时间分析 总体思想是根据电机运行状态计算前 ...

  4. idea导入gitee下载的项目文件

    前一段时间在学习javaWeb时想要把gitee中的下载的项目在本地环境中跑一遍,然后根据效果再自己做出来. 但是当导入到IDEA中,配置完tomcat后一直报404错误.404是学习javaweb阶 ...

  5. grafana初级入门

    grafana初级入门 预备知识 Metrics.Tracing和Logging的区别 监控.链路追踪及日志作为实时监测系统运行状况,这三个领域都有对应的工具和解决方案. Metrics 监控指标的定 ...

  6. VUE开发--环境配置(一)(转)

    无剑_君关注 0.312019.05.09 11:53:43字数 1,073阅读 19,627        https://www.jianshu.com/p/a494417def99?utm_so ...

  7. java 基础知识(三)

    Arraylist与Vector的区别 清浅池塘 程序员,专栏:Java那些事儿唯一作者,咨询前请先点详细资料   162 人赞同了该文章 这几天工作有点忙,有很多代码需要写,更新文章有点慢,说声抱歉 ...

  8. 详细描述一下 Elasticsearch 搜索的过程?

    想了解 ES 搜索的底层原理,不再只关注业务层面了. 解答: 搜索拆解为"query then fetch" 两个阶段. query 阶段的目的:定位到位置,但不取. 步骤拆解如下 ...

  9. Java 中,受检查异常 和 不受检查异常的区别?

    受检查异常编译器在编译期间检查.对于这种异常,方法强制处理或者通过 throws 子句声明.其中一种情况是 Exception 的子类但不是 RuntimeException 的子类.非受检查是 Ru ...

  10. 哪些浏览器支持HTML 5?

    几乎所有的浏览器都支持HTML 5,例如Safari,Chrome,火狐,Opera,IE等.