天天看點

[更新]跨平台物聯網通訊架構 ServerSuperIO v1.2(SSIO),增加資料分發控制模式

1. 【開源】C#跨平台物聯網通訊架構ServerSuperIO(SSIO) 2. 應用SuperIO(SIO)和開源跨平台物聯網架構ServerSuperIO(SSIO)建構系統的整體方案 3. C#工業物聯網和內建系統解決方案的技術路線(資料源、資料采集、資料上傳與接收、ActiveMQ、Mongodb、WebApi、手機App) 4.開源位址: https://github.com/wxzz/ServerSuperIO

1.SSIO更新内容:

    增加資料分發模式(DeliveryMode),在網絡通訊異步通訊時,接收到資料後,可以按裝置IP或裝置位址把資料分發給該裝置,進而驅動裝置運作。

    原來隻能按裝置IP進行資料分發,但是考慮到裝置終端有可能是GPRS子產品等,IP本身不固定,是以增加了按裝置位址把資料分發給裝置。

/// <summary>
    /// 分發資料模式
    /// </summary>
    public enum DeliveryMode
    {
        [EnumDescription("裝置IP分發資料")]
        DeviceIP,
        [EnumDescription("裝置位址分發資料")]
        DeviceAddress
    }
      

 2.SSIO特點:

1)   輕型高性能通信架構,适用于多種應用場,輪詢模式、自控模式、并發模式和單例模式。

2)   裝置驅動、IO通道、控制模式場景協調統一。

3)   裝置驅動内軒指令驅動器、指令緩存器、自定義參數和實時資料元素。

4)   架構平台支援按裝置指令優先級别進行排程,保證進階别指令及時發送。

5)   一個裝置驅動同時支援序列槽和網絡兩種通訊方式,可以監視IO通道資料。

6)   一個裝置驅動,在網絡通訊時可以支援TCP Server和TCP Client兩種工作模式。

7)   内置顯示視圖接口,滿足不同顯示需求。

8)   内置服務元件接口,可以自定義完成OPC服務、4-20mA輸出、LED大屏顯示、短信服務、以及多功能網關服務。

9)   可以建立多服務執行個體,完成不同業務的拆分。

10) 支援跨平台部署,可以運作在Linux和Windows系統。

3.SSIO概述

    SSIO通信架構的設計思想是在SuperIO(SIO)基礎上發展而來,并沒有高大上的技術,主要是工作經驗的積累,适合于不同應用場景的物聯網的資料 采集與互動。SSIO和SIO并不是簡單的對IO高性能的操作,而是裝置驅動、IO通道、控制模式和實際硬體裝置之間的協調機制,各方面之間無縫銜接和運 行,也是為了解決現實工作和應用場景的一些痛點。

  軟硬體之間的資料互動,并且面臨着複雜的現場環境:

(1)複雜的、多樣的通訊協定。有标準的協定,例如:Modbus等,也有很多根據标準協定修改的協定格式、以及自定義協定格式,并且千差萬别。對于不好的軟體架構,疲于應對,增加裝置或協定要對整個軟體進行梳理,往往在此過程中出現新的問題或BUG。

(2)針對不同使用者對軟體界面或功能的要求有很大不同,使之滿足不同使用者的顯示要求,可以自定義資料顯示界面。那麼就需要提供顯示視圖接口,與裝置驅動進行互動。

(3)既然現場裝置的資料被采集上來,那麼就需要對其進行處理,不僅僅是儲存、查詢、報表等,還有:資料轉發、資料輸出(OPC、模拟量、大屏等)等。那麼就需要提供服務性的接口,與裝置驅動進行互動。

(4)通訊鍊路的多種性,對于同一個裝置可能要支援RS232/RS485/RS422、RJ45、3G/4G等通訊方式,是以對于一個裝置要對應多種通訊方式(序列槽和網絡),也給我們的開發造成很大的障礙。

(5)裝置驅動、IO通道和實際的現場硬體終端之間鍊路複雜,有可能:一個裝置驅動對應一個IO通道、一個裝置驅動對應多個IO通道、多個裝置驅動對應一個IO通道等情況。

(6)既然裝置與服務端進行資料互動,那麼就應該對裝置的通訊狀态、IO狀态、以及裝置本身的狀态進行監控,這樣裝置才處于可維護狀态。

(7)軟體各版本、以及軟體與硬體之間的相容性很差,管理起來錯綜複雜。在架構平台穩定的情況下,隻需要更新裝置驅動。

   為了解決以上諸多問題,開發一個軟體架構,支援二次開發。在不對軟體架構改動的情況下,能夠很友善的接入裝置、維護裝置、內建裝置、處理裝置業務資料等。軟體架構相對穩定,把容易變化的部分進行靈活設計。

[更新]跨平台物聯網通訊架構 ServerSuperIO v1.2(SSIO),增加資料分發控制模式

繼續閱讀