工业协议网关协议转化开发案例,工业网关细节全公布

2024-08-12 14:49:08 admin 20



某化工厂需要通过SG500网关采集各种设备的能耗数据,主要包括:


1. 10台电磁流量计,用于测量各生产环节的水流量,型号为LDCK-25,支持Modbus RTU协议,RS485接口,波特率9600bps,数据位8位,无校验位,停止位1位。Modbus寄存器信息如下:

   流量计地址 寄存器地址 数据类型 读写属性 备注

   1 0x0000 float 只读 瞬时流量

   1 0x0002 float 只读 正累积流量

   1 0x0004 float 只读 负累积流量

   ...

   10 0x0000 float 只读 瞬时流量

   10 0x0002 float 只读 正累积流量

   10 0x0004 float 只读 负累积流量

5g/4g工业路由网关

2. 5台电能质量仪表,用于测量各车间的电能质量数据,型号为CSPEM-96,支持Modbus RTU协议,RS485接口,波特率19200bps,数据位8位,偶校验,停止位1位。Modbus寄存器信息如下:

   仪表地址 寄存器地址 数据类型 读写属性 备注  

   1 0x0000 float 只读 A相电压

   1 0x0002 float 只读 B相电压

   1 0x0004 float 只读 C相电压

   1 0x0006 float 只读 A相电流

   ...

   5 0x0000 float 只读 A相电压

   5 0x0002 float 只读 B相电压

   5 0x0004 float 只读 C相电压

   5 0x0006 float 只读 A相电流


3. 1台天然气流量计,用于测量总进气量,型号为FLOWSIC600-XT,支持Modbus TCP协议,以太网接口,Modbus TCP端口502。Modbus寄存器信息如下:

   寄存器地址 数据类型 读写属性 备注

   0x0000 float 只读 瞬时流量

   0x0002 float 只读 累积流量

   0x0004 int 只读 工作状态字


数据中心使用的是MQTT协议,接入OneNET平台。要求每5分钟上传一次数据。


基于以上需求,使用SG500网关的开发步骤如下:

Industrial IoT Gateway(SG500)

1. 将10台LDCK-25电磁流量计和5台CSPEM-96电能质量仪表的RS485接口,通过RS485总线全部连接到SG500的RS485接口。注意要接120欧姆终端电阻。将FLOWSIC600-XT天然气流量计的以太网口接到SG500的LAN口。


2. 在SG500上安装Modbus RTU主站程序mbrtu,用于轮询流量计和电表的数据。配置轮询周期为5分钟,从站等待响应超时时间1秒,重发3次。配置Modbus TCP主站程序mbtcp,用于轮询天然气流量计数据。


3. 编写数据解析程序parse_data,对轮询回来的Modbus数据进行解析,提取出各个测点的实际数值和单位。比如流量计的数据解析如下:

   def parse_flow_data(data):

       flow = struct.unpack('>f', data[0:4])[0]

       pos_total = struct.unpack('>f', data[4:8])[0]  

       neg_total = struct.unpack('>f', data[8:12])[0]

       return {

           'flow': round(flow, 2), 

           'flow_unit': 'm3/h',

           'pos_total': round(pos_total, 2),

           'neg_total': round(neg_total, 2),

           'total_unit': 'm3'

       }

5g/4g工业路由网关

4. 编写数据封装程序pack_data,将解析后的数据封装成统一的JSON格式。设备编号、时间戳、测点等信息都要包含在内。例如:

   {

       'gateway_id': 'SG500_1',

       'timestamp': 1634227200,

       'devices': [

           {

               'device_id': 'LDCK-25-1',

               'data': [

                   {'flow': 23.61, 'flow_unit': 'm3/h'},

                   {'pos_total': 1638.22, 'total_unit': 'm3'},

                   {'neg_total': 0.11, 'total_unit': 'm3'}

               ]

           },

           {

               'device_id': 'CSPEM-96-1',

               'data': [

                   {'ua': 380.5, 'ua_unit': 'V'},

                   {'ub': 378.1, 'ub_unit': 'V'},

                   {'uc': 379.6, 'uc_unit': 'V'},

                   {'ia': 62.5, 'ia_unit': 'A'}

               ]  

           },

           {

               'device_id': 'FLOWSIC600',

               'data': [

                   {'flow': 899.32, 'flow_unit': 'm3/h'},

                   {'total': 123838.63, 'total_unit': 'm3'},

                   {'status': 1}

               ]

           }

       ]

   }


5. 在SG500上安装MQTT客户端程序mosquitto,使用4G网络连接到OneNET的MQTT服务器。按照OneNET的设备接入要求,配置MQTT参数:

   - 服务器地址: iot-mqtts.heclouds.com

   - 端口: 8883

   - 证书文件: iot-mqtts-certificate.pem

   - 用户名: 设备ID

   - 密码: 鉴权信息


6. 编写MQTT发布程序pub_data,将封装好的JSON数据,以5分钟为周期,通过MQTT发布到OneNET平台的设备数据流主题。


7. 使用SG500的RS485 DTU功能,将Modbus RTU数据透明传输到数据中心,作为数据校验。配置RS485的TCP服务器模式,本地端口号为502。这样数据中心也可以直接通过Modbus TCP读取设备的原始数据。


8. 考虑到工业环境的复杂性,在SG500本地使用SQLite数据库,对采集到的数据进行本地存储,并记录上传状态。每次存储数据前,先检查磁盘使用率,超过90%时,删除最早的数据。MQTT发布失败时,存储发布失败的数据,等待网络恢复后补发。


9. 配置SG500的看门狗功能,监控Modbus采集程序mbrtu、mbtcp和MQTT发布程序pub_data。如果进程异常退出,看门狗会自动重启进程。同时通过MQTT发布一条异常告警信息到数据中心。


10. 对SG500的系统日志进行配置,将系统日志发送到数据中心的日志服务器。日志等级为INFO,采用rsyslog格式,通过TCP协议发送。

Industrial IoT Gateway(SG500)

11. 使用SG500提供的"星云"网管平台,对网关进行批量配置、升级、监控。比如修改轮询周期、更新Modbus寄存器地址等参数,都可以通过网管平台远程操作。


12. 将以上开发的程序打包成SG500的固件,通过网管平台进行批量升级。升级时先将新固件上传到SG500的TF卡中,再通过网管平台下发升级指令,SG500本地完成固件更新和程序替换,实现零宕机升级。


以上就是一个比较完整的工业网关协议转换项目的开发流程。涉及了多种工业协议解析、数据库存储、边缘计算、网络传输、网管平台等方面的内容。充分利用了SG500网关提供的软硬件资源,可以高效地实现工业设备数据采集和上云。


本案例重点展示了SG500在工业协议转换和边缘计算方面的应用。通过二次开发,可以将SG500打造成一个功能强大的工业物联网关,适用于各种工业场景。


当然,实际项目中还需要考虑更多的细节,如数据安全、设备冗余、应用集成等。这需要根据具体需求进行定制化开发。SG500提供了完善的二次开发环境和技术支持,用户可以基于此进行深度定制,开发出满足自己需求的应用。


希望通过本案例,让您对SG500能耗网关有一个更加直观和深入的了解。如果您有任何问题或需求,欢迎随时联系我们,我们将竭诚为您服务!


标签: 工业网关
相关文章推荐:
网站首页
解决方案
产品中心
在线咨询