一款工業物聯網高性能通訊中間件-架構篇


在與遠控操作台、自動化作業指令、人機交互、設備實時監控等工業物聯網領域專家深入交流后,我了解到數據通訊方面的特殊要求。

請教了一些同事,我熟悉了工業標准協議。

經過三個版本的迭代,四個月的設計、編碼、測試,上生產驗證,一款由我獨立研發的工業物聯網高性能通訊中間件交付了。

本着交流合作,共同進步的精神,我決定把中間件的研發分享出來。由於內容較多,篇幅較長,將分三篇文章全面介紹這款中間件。

《一款工業物聯網高性能通訊中間件-架構篇》:介紹中間件設計思想,技術方案,協議與標准,風險與應對

《一款工業物聯網高性能通訊中間件-服務端實現篇》:介紹中間件服務端項目結構,開源組件,自封組件,PLC測點配置,數據采集,數據交互,OpcUa斷線重連,常見問題及解決

《一款工業物聯網高性能通訊中間件-客戶端實現及封裝篇》:內容待定

本次分享的是開篇《一款工業物聯網高性能通訊中間件-架構篇》。

1 設計思想

這款中間件主要是解決底層PLC數據采集,清洗,交互,傳輸,上層應用調用問題。介紹時,中間件與數據中心等同。

1.1 概述

中間件/數據中心特點如下:

  • 一次編寫,到處應用
  • 采用服務端/客戶端模式。客戶端打包,便於安裝與接入
  • 異步,事件驅動架構設計保障高性能、高並發
  • 為應用客戶端提供統一的PLC數據通訊,交互的IEC標准/Node接口
  • 數據采集,清洗,調用集中維護
  • PLC數據解析采用業界流行的Opc UA通訊協議
  • 解決PLC客戶端接入連接數的限制
  • 滿足遠控操作台、自動化作業指令、人機交互、設備實時監控毫秒級響應時延要求
  • 同時支持多PLC
  • 同時支持多應用客戶端接入,取決於服務端內存,理論上2G內存支持2000個客戶端接入
  • 支持實時數據/歷史數據轉發
  • 服務端單機支持60000測點/秒並發
  • 服務端支持集群部署,可擴展
  • 客戶端的封裝支持斷線重連,如PLC程序更新,網絡斷開,手動關閉服務端,穩定性強
  • 分級分類的日志功能,便於排查修復問題,可維護性高
  • 模塊化設計,組件化編碼,可移植,可重用

1.2 應用

 

Portal :人機交互HMI

ACCS:自動化作業指令

數據中心:工業物聯網高性能通訊中間件

【...】:其他應用,比如設備實時監控系統等

1.3 數據流

2 技術方案

2.1 技術選型

開發語言:C#(工業軟件很多由C#編寫,無歷史包袱)

開發工具:Visual Studio 2019(號稱宇宙最強IDE)

開源框架:Opc Ua基金會開源代碼,OpcUaClientHelper開源代碼,HpSocket開源代碼

自封組件:Log4net日志組件,OpcUaClient組件,RabbitMQ組件,Socket客戶端異步組件,並發緩存組件,數據服務組件,多協議解析組件

接口協議:IEC,接近Opc Ua原生Node數據交互統一接口

2.2 架構圖

 2.3 實時數據/歷史數據

 

2.4 論證

2.4.1 測試論證

2.4.2 項目論證

在某上市公司的工業物聯網項目上線后,中間件服務穩定運行超過5個月,滿足數據通訊的各項指標,為應用系統在數據通訊方面提供了很好的底層技術支撐,獲得了較好的評價

2.5 專利與著作權

該中間件申請了1項著作權(涉及敏感信息不方便透露),2項發明專利(進入國家專利局實審階段)

3 協議與標准

參考了IEC61850/IEC61131.3協議,制定了關於數據集、指令集和任務集的統一接口規范標准。

IEC名稱由配置工具生成,管理員統一分發,各應用系統根據公開的配置,解析報文含義。

IEC示例:吊具移動水平位移是Spreader.Pos.YC.F30.X

報文格式如下:

4 風險與應對

 4.1 風險

僅支持Opc Ua協議

PLC硬件性能限制,不同廠商不同型號硬件可能需要微調批量查詢,修改,訂閱的數量

4.2 應對

盡量采用業界通用的Opc Ua協議,如有需要,再進行Modbus,TCP/IP等協議集成

批量數值做成可配置以兼顧軟硬件性能


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM