KepOPC是支持OPC、S7等工业标准协议设备数据采集与交换的中间件软件,本文主要介绍如何实现Linux系统(ubuntu、Raspbian)上的OPCDA+UA数据采集与交换到阿里云物联网平台,实现OPC跨平台数据采集和交换。
首先,让我们了解一下阿里云物联网平台的数据流程,阿里云物联网平台提供设备管理、设备认证、物模型的功能,接入网关边缘主流支持MQTT消息队列技术,除此之外阿里云物联网平台还支持标准OPCUA协议接入,本文主要介绍如何采用MQTT方式接入,如需采用OPCUA接入请参考KepOPC系列的DA转UA中间件功能。具体操作步骤如下:
第一步,创建阿里云的产品和物模型,物联网平台创建一个新产品,通过自定义功能方式添加自定义的物模型标识符,标识符等同于OPC节点,具有值类型、取值范围、描述等字段。创建好的物模型可以导出实例,也可以修改导入到其他产品。
第二步,创建一个设备,关联到已经创建的产品,通过Topic列表可以看到我们自定义的物模型的通信topic即为MQTT发布或订阅的主题,一般包括属性、事件、服务三大类。
第三步,准备好OPCDA和UA服务器,需要特殊说明的是OPCDA服务器运行在Windows系统下,需要在Windows系统中安装openopcservice服务,打开中间件选择OPEN的连接方式,测试连接成功;ua模式可以选择查询和订阅两种模式,选择对应模式测试连接,显示连接状态。
第四步,记录设备三元组参数(ProductKey、DeviceName、DeviceSecret),记录属性上报和事件上报的topic,打开KepOPC中间件,在阿里云MQTT参数设置界面,输入阿里云分配的产品host、port、三元组参数、签名验证方式、点击MQTT测试连接测试与阿里云的连接状态,连接状态为成功后会显示mqtt用户名和密码,否则提示连接失败,请检查网络和三元组参数,在opc分组参数设置的分组发布主题填上对应属性或事件的发布topic。
第五步,如果需要存储数据到时序数据库,请配置InfluxDB参数,点击保存设置后,主界面显示opc节点、阿里云标识符、标识符类型、标识符备注等信息,点击开始运行,程序开始运行,可以观察到各组OPC、MQTT、InfluxDB的连接和发布状态和运行过程中的数据及日志。
第六步,提示数据发布成功后,打开阿里云平台的设备运行监测界面,能够看到各标识符实时值、历史数据及曲线、事件报警信息等。
第七步,在阿里云的IoT Studio应用开发界面,通过推拽组件的方式讲物模型上的设备标识符添加到页面,实现基本的图形、数据展示和分析功能。构建好的web页面发布形成系统,同理也可搭建基于阿里云的移动应用APP。
总结,通过KepOPC中间件能够便捷实现从Linux平台连接OPCDA和UA服务器,实现跨平台数据采集和数据交换到阿里云物联网平台,目前已经移植成功的Linux系统分支有ubuntu16.04和树莓派Raspbian操作系统,目的是为了适应低功耗、订制化物联网设备的跨平台数据采集需求,物联网设备具有丰富的IO及外设,可以轻松实现工业数据模型与外设的联动,提高物联网设备的边缘计算能力。