MQTT协议在PLC远程二次开发的案例 点击:2039 | 回复:14



HJ华杰智控

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 124回
  • 年度积分:0
  • 历史总积分:605
  • 注册:2017年2月15日
发表于:2018-07-02 16:16:55
楼主

IOT物联网爆发, MQTT变成了网红,IBM十几年的努力终于到了收获期,基于MQTT协议的数据采集将成为IOT领域的趋势。华杰智控提供MQTT网关,帮助用户快速实现MQTT功能。

a55cb76a5f7245bc979317e9dab06732.jpeg

HJ8300MQTT工业级网关是一款带SDK二次开发工业级4G路由器,利用移动网络为终端设备提供无线数据传输功能。 支持SDK二次开发,ROOT权限,集成交叉编译器,集成了GCC、GDB、GLIBC库,支持C/C++,Python,PHP,支持MQTT,SSH、FTP、MySQL。用户可以直接通过SSH在HJ8300里编译自己软件,直接运行。HJ8300MQTT4G路由器支持4G全网通、WIFI、以太网、交换机、路由器DTU、RS232、RS485。支持远程控制终端设备,如PLC、触摸屏、仪表仪器远程上下载程序、远程调试。

下面是MQTT协议案例:

HJ8300的MQTT使用

安装软件mosquitto-1.4.15 和 json-c-0.12

Mosquitto提供了Windows、Linux以及qnx系统的版本,HJ8000系列安装的linux操作系统,所以选择了mosquitto的linux版本源码安装。

HJ8000系列的MQTT的demo采用json编码,网关模式作为MQTT的客服端,可以发布和订阅MQTT消息,程序部分使用C语言编写。

demo程序的文件说明:

main.c 主程序文件

base.h 头文件

Makefile 编译的Make文件

poll_rftcm_s.txt 配置文件,包含MQTT的服务器的地址和端口等配置信息

MQTT的消息格式:

网关发布消息的TOPIC:/ge/MQTT帐号/网关MAC/采集设备地址

网关订阅消息的TOPIC:/gc/MQTT帐号/网关MAC/采集设备地址

比如服务器发布一个时间消息给网关的82号设备格式如下:

/ge/bluegw/C2-48-00-00-32-47/82

{ "h":{/* message header */

"T":85,

"ID:1

},

"b":{/* message body */

"cf":3,

"cc":1,/* message command */

"dl":{/* message parameter list */

"week":1,

"hour":12,

"minites":35,

"second":21,

}

}

}

网关订阅一个MQTT消息:/ge/bluegw/C2-48-00-00-32-47/82,这样服务器或者其他客户端只要发送这个消息主题的内容,网关都会收到,然后网关根据实际实际情况处理。

华杰智控HJ8200MQTT demo说明

HJ8200系列有很多接口,比如RS232/RS485/ETH/RF433M等,HJ8200的软件管理了这些接口,如果用户需要使用这些接口,可以发送一个接管命令给HJ8000的软件,HJ8000就会把这些接口的数据直接发送到linux的命名pipe里面,这样就可以直接从这些命名pipe里面读取数据,或者写入数据到命名pipe,HJ8000软件就会直接写到实际的端口。

MQTT的demo使用的RF433M接口,RF433M接口的命名pipe如下

读取的pipe名称: /var/vspp/WR_RF4;

写入的pipe名称: /var/vspp/RD_RF4;

MQTTdemo的框架示意图(由PIPE线程和MQTT线程组成)

11de2d28b0b74efaa3822081083fd59b.png

1. MQTT订阅的消息处理回调函数解析命令,把命令挂在在PIPE线程的rf_cmmd_list队列,由PIPE线程负责发送

2. PIPE线程的定时器负责检查超时的数据处理。

3. PIPE线程接收函数负责处理从RF433M的管道来的数据,同时发送rf_cmmd_list队列的数据到RF433M的管道。





courage__sky

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 130回
  • 年度积分:0
  • 历史总积分:158
  • 注册:2016年5月16日
发表于:2018-07-02 17:37:38
1楼

非常感谢楼主无私分享,我也想要一份

HJ华杰智控

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 124回
  • 年度积分:0
  • 历史总积分:605
  • 注册:2017年2月15日
发表于:2018-08-01 09:58:44
2楼

顶!d=====( ̄▽ ̄*)b

HJ华杰智控

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 124回
  • 年度积分:0
  • 历史总积分:605
  • 注册:2017年2月15日
发表于:2018-08-01 09:59:51
3楼


回复内容:

对: courage__sky 非常感谢楼主无私分享,我也想要一份 内容的回复!

-------------------------

 http://www.blueone.cn

 13088880809微信同号


华杰智控HJ

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 124回
  • 年度积分:0
  • 历史总积分:605
  • 注册:2017年2月15日
发表于:2018-08-01 10:08:27
4楼

顶!d=====( ̄▽ ̄*)b

华杰智控HJ

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 124回
  • 年度积分:0
  • 历史总积分:605
  • 注册:2017年2月15日
发表于:2018-08-01 11:00:11
5楼

学习了...........

华杰智控HJ

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 124回
  • 年度积分:0
  • 历史总积分:605
  • 注册:2017年2月15日
发表于:2018-08-02 14:51:31
6楼

顶一下......

华杰智控HJ

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 124回
  • 年度积分:0
  • 历史总积分:605
  • 注册:2017年2月15日
发表于:2018-08-03 09:15:06
7楼

学习一下.......

华杰智控HJ

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 124回
  • 年度积分:0
  • 历史总积分:605
  • 注册:2017年2月15日
发表于:2018-08-03 10:18:23
8楼

http://www.blueone.cn

 13088880809微信同号


华杰智控HJ

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 124回
  • 年度积分:0
  • 历史总积分:605
  • 注册:2017年2月15日
发表于:2018-08-03 17:27:14
9楼

效果不错.....

sunnysky

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 116回
  • 年度积分:0
  • 历史总积分:129
  • 注册:2018年9月03日
发表于:2018-09-13 11:45:16
10楼
下来看看,谢谢楼主,学习了


AutoCtrl888

  • 精华:0帖
  • 求助:0帖
  • 帖子:57帖 | 465回
  • 年度积分:48
  • 历史总积分:2394
  • 注册:2007年3月04日
发表于:2019-07-23 17:52:01
11楼

这个不错:

不用二次开发,直接配置变量即可实现MQTT协议的JSON字符方式发布订阅;

还支持数据直接写入MYSQL数据库:

http://blog.sina.com.cn/s/blog_16d7d3ecb0102x33a.html

screen.png

相关案例:https://blog.csdn.net/AutoCtrl666/article/details/103287296

长空123

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 135回
  • 年度积分:65
  • 历史总积分:118
  • 注册:2012年12月14日
发表于:2019-09-04 19:09:18
12楼

顶一下......


liuyingqing139

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1496回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2019-11-08 21:01:04
13楼

下来看看,谢谢楼主,学习了



热门招聘
相关主题

官方公众号

智造工程师