民用物联网端的开发和工业物联网端的开发还是有很大区别的,民用物联网端产品是厂家直接基于芯片进行产品开发。是典型的硬件开发了。而工业物联网端的开发,往往是在第三方厂家的产品基础上进行二次开发,也就是更多的是做集成类的开发工作。
我们所做的工业物联网的端设备就是供其他工业物联网集成商进行二次开发的。当然我们也会基于我们的软硬件产品进行工业物联网项目的集成开发。
这里着重介绍的就是在现有的工业物联网产品基础上进行的项目开发。
目前工业领域常见的 IO 接口如下:
RS485:两线制,差分信号传输,半双工通信,最大通信距离千米以上。
RS232:三线制,全双工通信,一般通信距离小于 10 米。
CAN:两线制,多主通信,高性能,高可靠性,每次最多传输 8 个字节的数据。通信距离千米以上。
以太网:4 线或 8 线,多主通信,高性能。普通网线通信距离 100 米以内。
Zigbee:基于 IEEE802.15.4 标准的低功耗无线通信协议,低功率一般传输距离 100 米以内,高功率的 1000 米左右。
LoRa:基于扩频技术的超远距离无线传输方案。低功耗,多节点。
GPRS:通用分组无线服务技术,广域网通信。
NB-IoT:IoT 领域一个新兴的技术,支持低功耗设备在广域网的蜂窝数据连接,亦称低功耗广域网(LPWA)。
模拟量输入:0~20mA/0~5V/0~20V
开关量输入:0~24V
继电器输出:0~220V/2A
Modbus RTU: 施耐德公司制定的基于 RS485/RS232 的串行通信总线协议。
Modbus TCP: 施耐德公司制定的基于以太网的通信总线协议。
PPI:西门子公司专为 S7-200 系列 PLC 开发的通讯协议。
Profibus:是一种国际化、开放式、不依赖于设备生产商的现场总线标准。
CANopen:是一种架构在 CAN 上的高层通信协协议,包括通信子协议及设备子协议。
常见的智能模块其实种类比较多的,比如智能电表,智能水表,各种 PLC 及其配套的扩展模块等等。我们这里主要介绍的就是凌霄物联网智能网关、智能终端、智能 IO 模块和综合采集模块。
图 1 物联网智能网关 智能终端 综合采集器
网关除具备网口、USB、SD 卡及扩展两路智能模组(无线通信、RTC、存储等板卡)外,还可以配置各种不同通信接口板(当然也可以直接对接智能终端或智能 IO 上的输入输出子板)。
综合通信:1 路 RS485,2 路 RS232,1 路 CAN
RS485-CAN:3 路 RS485,1 路 CAN
RS485:4 路 RS485
智能终端和智能 IO 模块的主要区别有,一是通信接口,智能终端有三种接口可选,以太网、RS485 和 CAN;而智能 IO 模块仅具备 CAN 接口。二就是智能终端支持二次开发,能独立运行,也可以作为智能网关的扩展模块,而智能 IO 仅作为智能网关的扩展模块存在。
智能终端和智能 IO 模块,根据对外接口不同,主要有如下种类的模块:
综合输入输出模块:2 路模拟量入,2 路开关量入,2 路继电器输出
综合模拟量模块:4 路模拟量输入,2 路模拟量输出
综合开关量模块:4 路开关量输入,4 路开关量输出
模拟量采集模块:4 路模拟量输入
开关量输入模块:8 路开关量输入
继电器输出模块:8 路开关量输出
热电偶采集模块:4 路热电偶采集
综合采集器,是一个九合一的传感器集成模块,可以说是国内外集成度最高的一款产品。一次可以采集的传感器数据有 3 路温度,1 路湿度、1 路氧气、1 路氨气、1 路二氧化碳、1 路光照、1 路 PM2.5。该模块可以通过 RS485 直接和网关相连,标准 Modbus RTU 通信协议。
图 2 YFIOs 系统架构
图 2 是 YFIOs 数据组态系统的架构图,其包含三部分:驱动层,核心层(驱动引擎及实时数据库)和策略层。
所谓的二次开发大部分就是开发和具体业务联系密切相关的策略程序,此外就是少部分的驱动程序开发(除了对接特殊设备,大部分情况下无需用户开发驱动程序)。
下面我们用一个简单示例来介绍一下 YFIOs 组态开发。
我们需要准备如下设备:1 台物联网智能网关,1 台物联网智能终端(或智能 IO),1 台综合采集器,1 条 USB 线及附属电源及连接线等。设备及辅材准备好后,按如下方式进行接线:
图 3 设备连接
图 4 新建 YFIOs 设备
如图 4 所示,根据设备的类型,对应的网关接口,新建综合采集器和输入输出智能终端对应的用户设备。
设备创建后,对应的设备变量也会自动创建。
无需任何编程,只要把相关的驱动和配置信息部署到网关,就可以直接监控设备的通信状态、IO 输入状态和连接的传感器数据。如果有 IO 继电器输出,也可以在 IO 监控界面,直接修改对应的值以改变继电器的开闭状态。
图 5 IO 数据监控
如果仅仅实现数据从端到云的传输,那么无需写用户策略。当然对大部分的工业物联网现场应用来说,还是需要一定的业务逻辑进行处理的。比如检测到设备电机过热,则要求网关立即停止电机运行或者对外发出报警信号。这里我们写一个最简单的用户策略,就是当一路开关量输入为高电平的时候,让一路继电器闭合,低电平的时候则继电器释放。
开发用户策略,可以采用微软 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);
}
1
2
3
4
5
以上代码的意思是,从 YFIOs 实时数据库中读取 QI44:I1 通道值,如果和继电器的输出状态不同,则继电器的状态和输入通道保持一致。
用户策略编写完毕后,则可以用 YFIOsManager 工具进行加载和调试了(如图 7 和图 8 所示)。
图 7 新建策略
图 8 策略调试
从图 8 中我们可以看出,当 I1 输入状态被改变的时候,继电器的输出状态也被改变了,调试窗口中也输出了对应的调试信息。
如果不和云端通信,也就不需要添加 QCPB 云端通信策略了,但是如果没有这部分也称之不上为物联网项目了,只是一个典型的小自动化项目而已。
和添加用户策略一样,我们添加上 QCPB 云端通信策略,除了设置运行间隔外,我们还需要设定相关的参数,如图 9 所示。
图 9 添加云端通信策略
IP 地址是指云端服务器端地址,端口号默认为 12000,项目 ID 是指云端创建对应项目时的 ID 号(这个后文会有介绍)。由于 QCPB 协议支持变化上传数据,所以针对浮点数,需要设置数据变化的阈值。
“IO 配置”面板中有一个导出按钮,可以单击导出,保存后的 XML 文件在创建云端项目及云端组态画面的时候会用到。
————————————————
免责申明:
本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!