技术论坛

 PLC——腾讯云物联网——PLC PLC间通过Internet物联网通信

返回主题列表
作者 主题
pingcruise
游士

经验值:222
发帖数:11
精华帖:1
楼主    2020-06-27 09:32:36
主题:PLC——腾讯云物联网——PLC PLC间通过Internet物联网通信 精华帖 

帖子开始前先感谢论坛中的shine,在刚开始做西门子物联网通信时受其启发。走了不少弯路,同时也向其咨询了些问题,但最终问题点是博图软件15.1升级到16后网络端口定义跟原来有区别,论坛中有篇 “1200和1500 MQTT CLIENT轻松实现连接MQTT 消息服务器“  的贴文,写的很好,但只实现了本地的MQTT服务器,也没真正实现1200跟1500的通信,本帖实现真正的1500——腾讯云物联网——1500通信。

原理:PLC1发布消息至腾讯云物联网经规则引擎SQL转发,PLC2负责订阅物联网消息,最终实现两个PLC间的通信。


PLC1发布消息至腾讯云物联网:


腾讯云规则引擎SQL:实现的目标是将PLC1发布的Topic :RDNYJ0AEFM/PLC1/data 经SQL条件筛选house="myhome"后内容转发至PLC2(我定义为SubDev)的Topic:RDNYJ0AEFM/SubDev/data


当前数据已经转发至云端的SubDev中,现在只需要在PLC2 端订阅云端中RDNYJ0AEFM/SubDev/data中的内容即可

这里还有个需要注意的事项,PLC1往云端发布的消息质量是Qos1,但经过云端转发下来的却是Qos0

下面是云端的日志,可以很直观的看到整个流程,PLC1,PLC2连接,PLC1发布消息,云端转发,PLC2订阅。同样的,反过来PLC2发布,云端转发,PLC1订阅也是没问题的,这里我就没做了。


至于具体的MQTT连接,参数设置等http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1623906&b_id=66&s_id=85&num=38#anch

这篇帖子写的挺详细,可参考,这里补充一些没提到,但容易碰到的问题。

  1. 因为用的是QDN需要域名解析,需要设置DNS,如114.114.114.114或8.8.8.8等(项目属性-高级组态-DNS组态)

  2. 域名必须要以句点“.”结束。

  3. 博图15.1升级到16版本后,hwIdentifier默认都是0即第一个网络端口,这是最大的坑,因为前不久刚做完CPU间的TCP的连接用的15.1版本,hwIdentifier用的是64

  4. 同一个项目中多次调用库文件的话每次调用的connectionID必须唯一

  5. 参考贴文中有个地方说是要改库文件代码,经过测试我认为是没必要的,这里最大的可能还是第三点提到的hwIdentifier问题

    原贴:

    我的库文件只对接口的数据长度做调整,其他的代码没更改。





您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。