从端到云——工业物联网项目全栈快速开发
机过热,则要求网关立即停止电机运行或者对外发出报警信号。这里我们写一个最简单的用户策略,就是当一路开关量输入为高电平的时候,让一路继电器闭合,低电平的时候则继电器释放。
开发用户策略,可以采用微软Visual Studio IDE开发工具进行开发,我们也提供了对应的模板程序,可以直接填入必要的业务代码即可。如图6所示,标准的用户策略其实只需要实现3个接口函数即可:OnLoad、OnRun和OnUnload。
图6 策略开发
OnLoad在用户策略开始加载的时候执行,只执行一次。OnRun按设定的间隔,循环被YFIOs的驱动引擎调用。OnUnload是策略被卸载前执行一次。
图6中在OnRun添加的代码如下:
if?(op.IOReadInt("QI44:I1")?!=?op.IOReadInt("QI44:Q1"))??????{?????????op.Extern_IOWrite("QI44:Q1",?op.IOReadInt("QI44:I1").ToString());?????????op.Print(MessageType.Debug,?"I1="?+?op.IOReadInt("QI44:I1").ToString(),?Name);??????}以上代码的意思是,从YFIOs实时数据库中读取QI44:I1通道值,如果和继电器的输出状态不同,则继电器的状态和输入通道保持一致。
用户策略编写完毕后,则可以用YFIOsManager工具进行加载和调试了(如图7和图8所示)。
图7 新建策略
图8 策略调试
从图8中我们可以看出,当I1输入状态被改变的时候,继电器的输出状态也被改变了,调试窗口中也输出了对应的调试信息。
2.4.5 添加QCPB云端通信策略
如果不和云端通信,也就不需要添加QCPB云端通信策略了,但是如果没有这部分也称之不上为物联网项目了,只是一个典型的小自动化项目而已。
和添加用户策略一样,我们添加上QCPB云端通信策略,除了设置运行间隔外,我们还需要设定相关的参数,如图9所示。
图9 添加云端通信策略
IP地址是指云端服务器端地址,端口号默认为12000,项目ID是指云端创建对应项目时的ID号(这个后文会有介绍)。由于QCPB协议支持变化上传数据,所以针对浮点数,需要设置数据变化的阈值。
“IO配置”面板中有一个导出按钮,可以单击导出,保存后的XML文件在创建云端项目及云端组态画面的时候会用到。
三、云端通信协议
3.1 MQTT通信协议
MQTT是Message Queuing Telemetry Transport的缩写,中文意思是消息队列遥测传输,它是IBM开发的一个即时通讯协议,目前已经成为物联网主流的通信协议,微软云、百度云、阿里云等都支持该通信协议。这意味着设备只要支持了该通信协议,就可以和当前主流的云进行云端通信。凌霄物联网网关也支持该协议,在一个消防相关的项目中,就是通过该协议把采集到的数据上传到的微软Azure IoT Hub中。
3.2 WebSocket通信协议
WebSocket协议是HTML5标准里,基于TCP的一种新的网络协议,2011年被IETF定为标准RFC 6455。它实现了浏览器与服务器全双工(full-duplex)通信,服务器可随时向客户端发送信息,不仅通信数据量变小,同时也大大改善了网页动画的实时性能。我们的YFHMI组态动画,就是基于WebSocket通信协议和服务器中间件YFCloud进行通信的。
3.3 QCPB通信协议
这是我们自行开发的一个基于二进制格式的云端通信协议,其优点是通信数据量小,支持数据变化上传。除了支持数据通信外,还支持设备的远程诊断、远程参数下载和远程升级等功能。支持TCP/IP以太网和GPRS双链路自动切换通信模式。本篇文章中所介绍的云端通信就是基于该协议来实现的。
四、云服务YFCloud开发
云端YFCloud有三部分组成:Web后台、Web前台和YFIOs云端中间件。Web后台和前台采用ASP.NET进行开发,YFIOs云端中间件也是采用.NET技术进行开发,是一个标准的Windows服务程序。
4.1 云端项目构建
首先登录YFCloud物联网中间件通用监控平台就可以开始创建云端项目了。YFCloud的构建思想是,先有项目模板,然后再基于项目模板创建应用。这样的好处就是,基于一个项目模板可以创建若干应用。
4.1.1 创建项目模板
图10 创建项目模板
先添加一个项目模板,然后比较重要的一步就是导入【2.4.5】章节所导出的IO配置文件,从而构建云端IO实时数据库(如图11所示)。
图11 云端IO列表
4.1.2 创建项目应用
基于我们刚刚创建的“工业物联网演示”模板创建一个项目应用。创建一个项目应用后,系统会自动生成一个项目ID号,把这个ID号填入【2.4.5】章节中所示的云端通信策略中的IO配置面板中,填入后部署到物联网智能网关即可。
4.2 YFIOs云端中间件
YFIOs云端中间件脱胎于嵌入式YFIOs,从图12的架构图上就可以看出,嵌入式YFIOs是一个“单机版”的数据组态平台,而云端中间件YFIOs是一个“网络版”数据组态平台。
图12 YFIOs中间件架构
工业物联网 相关文章:
- 针对工业 IoT 应用的主要无线要求(02-15)
- 打造面向工业物联网的创新应用平台(10-04)
- 工业物联网设计面临的挑战(02-05)
- 工业物联网设备安全不可忽略的六个问题(02-10)
- 工业物联网智能网关解决方案及应用案例(05-12)
- 如何为现有工厂提供IIoT解决方案(07-18)