-
您的位置:
- 網(wǎng)站首頁
- > 物聯(lián)百科
- > 產(chǎn)品百科
您的位置:
1. 10臺電磁流量計,用于測量各生產(chǎn)環(huán)節(jié)的水流量,型號為LDCK-25,支持Modbus RTU協(xié)議,RS485接口,波特率9600bps,數(shù)據(jù)位8位,無校驗位,停止位1位。Modbus寄存器信息如下:
流量計地址 寄存器地址 數(shù)據(jù)類型 讀寫屬性 備注
1 0x0000 float 只讀 瞬時流量
1 0x0002 float 只讀 正累積流量
1 0x0004 float 只讀 負(fù)累積流量
...
10 0x0000 float 只讀 瞬時流量
10 0x0002 float 只讀 正累積流量
10 0x0004 float 只讀 負(fù)累積流量

2. 5臺電能質(zhì)量儀表,用于測量各車間的電能質(zhì)量數(shù)據(jù),型號為CSPEM-96,支持Modbus RTU協(xié)議,RS485接口,波特率19200bps,數(shù)據(jù)位8位,偶校驗,停止位1位。Modbus寄存器信息如下:
儀表地址 寄存器地址 數(shù)據(jù)類型 讀寫屬性 備注
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臺天然氣流量計,用于測量總進(jìn)氣量,型號為FLOWSIC600-XT,支持Modbus TCP協(xié)議,以太網(wǎng)接口,Modbus TCP端口502。Modbus寄存器信息如下:
寄存器地址 數(shù)據(jù)類型 讀寫屬性 備注
0x0000 float 只讀 瞬時流量
0x0002 float 只讀 累積流量
0x0004 int 只讀 工作狀態(tài)字
數(shù)據(jù)中心使用的是MQTT協(xié)議,接入OneNET平臺。要求每5分鐘上傳一次數(shù)據(jù)。

1. 將10臺LDCK-25電磁流量計和5臺CSPEM-96電能質(zhì)量儀表的RS485接口,通過RS485總線全部連接到SG500的RS485接口。注意要接120歐姆終端電阻。將FLOWSIC600-XT天然氣流量計的以太網(wǎng)口接到SG500的LAN口。
2. 在SG500上安裝Modbus RTU主站程序mbrtu,用于輪詢流量計和電表的數(shù)據(jù)。配置輪詢周期為5分鐘,從站等待響應(yīng)超時時間1秒,重發(fā)3次。配置Modbus TCP主站程序mbtcp,用于輪詢天然氣流量計數(shù)據(jù)。
3. 編寫數(shù)據(jù)解析程序parse_data,對輪詢回來的Modbus數(shù)據(jù)進(jìn)行解析,提取出各個測點(diǎn)的實際數(shù)值和單位。比如流量計的數(shù)據(jù)解析如下:
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'
}

4. 編寫數(shù)據(jù)封裝程序pack_data,將解析后的數(shù)據(jù)封裝成統(tǒng)一的JSON格式。設(shè)備編號、時間戳、測點(diǎn)等信息都要包含在內(nèi)。例如:
{
'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網(wǎng)絡(luò)連接到OneNET的MQTT服務(wù)器。按照OneNET的設(shè)備接入要求,配置MQTT參數(shù):
- 服務(wù)器地址: iot-mqtts.heclouds.com
- 端口: 8883
- 證書文件: iot-mqtts-certificate.pem
- 用戶名: 設(shè)備ID
- 密碼: 鑒權(quán)信息
6. 編寫MQTT發(fā)布程序pub_data,將封裝好的JSON數(shù)據(jù),以5分鐘為周期,通過MQTT發(fā)布到OneNET平臺的設(shè)備數(shù)據(jù)流主題。
7. 使用SG500的RS485 DTU功能,將Modbus RTU數(shù)據(jù)透明傳輸?shù)綌?shù)據(jù)中心,作為數(shù)據(jù)校驗。配置RS485的TCP服務(wù)器模式,本地端口號為502。這樣數(shù)據(jù)中心也可以直接通過Modbus TCP讀取設(shè)備的原始數(shù)據(jù)。
8. 考慮到工業(yè)環(huán)境的復(fù)雜性,在SG500本地使用SQLite數(shù)據(jù)庫,對采集到的數(shù)據(jù)進(jìn)行本地存儲,并記錄上傳狀態(tài)。每次存儲數(shù)據(jù)前,先檢查磁盤使用率,超過90%時,刪除最早的數(shù)據(jù)。MQTT發(fā)布失敗時,存儲發(fā)布失敗的數(shù)據(jù),等待網(wǎng)絡(luò)恢復(fù)后補(bǔ)發(fā)。
9. 配置SG500的看門狗功能,監(jiān)控Modbus采集程序mbrtu、mbtcp和MQTT發(fā)布程序pub_data。如果進(jìn)程異常退出,看門狗會自動重啟進(jìn)程。同時通過MQTT發(fā)布一條異常告警信息到數(shù)據(jù)中心。
10. 對SG500的系統(tǒng)日志進(jìn)行配置,將系統(tǒng)日志發(fā)送到數(shù)據(jù)中心的日志服務(wù)器。日志等級為INFO,采用rsyslog格式,通過TCP協(xié)議發(fā)送。

11. 使用SG500提供的"星云"網(wǎng)管平臺,對網(wǎng)關(guān)進(jìn)行批量配置、升級、監(jiān)控。比如修改輪詢周期、更新Modbus寄存器地址等參數(shù),都可以通過網(wǎng)管平臺遠(yuǎn)程操作。
12. 將以上開發(fā)的程序打包成SG500的固件,通過網(wǎng)管平臺進(jìn)行批量升級。升級時先將新固件上傳到SG500的TF卡中,再通過網(wǎng)管平臺下發(fā)升級指令,SG500本地完成固件更新和程序替換,實現(xiàn)零宕機(jī)升級。
以上就是一個比較完整的工業(yè)網(wǎng)關(guān)協(xié)議轉(zhuǎn)換項目的開發(fā)流程。涉及了多種工業(yè)協(xié)議解析、數(shù)據(jù)庫存儲、邊緣計算、網(wǎng)絡(luò)傳輸、網(wǎng)管平臺等方面的內(nèi)容。充分利用了SG500網(wǎng)關(guān)提供的軟硬件資源,可以高效地實現(xiàn)工業(yè)設(shè)備數(shù)據(jù)采集和上云。
本案例重點(diǎn)展示了SG500在工業(yè)協(xié)議轉(zhuǎn)換和邊緣計算方面的應(yīng)用。通過二次開發(fā),可以將SG500打造成一個功能強(qiáng)大的工業(yè)物聯(lián)網(wǎng)關(guān),適用于各種工業(yè)場景。
當(dāng)然,實際項目中還需要考慮更多的細(xì)節(jié),如數(shù)據(jù)安全、設(shè)備冗余、應(yīng)用集成等。這需要根據(jù)具體需求進(jìn)行定制化開發(fā)。SG500提供了完善的二次開發(fā)環(huán)境和技術(shù)支持,用戶可以基于此進(jìn)行深度定制,開發(fā)出滿足自己需求的應(yīng)用。
希望通過本案例,讓您對SG500能耗網(wǎng)關(guān)有一個更加直觀和深入的了解。如果您有任何問題或需求,歡迎隨時聯(lián)系我們,我們將竭誠為您服務(wù)!