天天看點

跨平台物聯網通訊架構 ServerSuperIO v1.1(SSIO)

ssio的更新

在ssio上增加了udp通訊方式,可以到git上 下載下傳源代碼。在原來的項目中,遠端的裝置與中心站的資料互動并沒有使用過udp方式。這種短連接配接的通訊鍊路,不容易維護,主要展現在:(1)持續的資料交 互能力。(2)對現場裝置進行長時間的維護和校準。(3)ssio要協調裝置、io和控制方式之間的運作關系,無法即時反應裝置的io狀态。等等。

但是,對于一個平台來講,udp的通訊方式是應該具有的,根據現場情況選擇是否應用。例如:遠端的裝置定時發送裝置狀态資訊等,可以使用udp的通訊方式,在ssio裡單獨建立一個狀态服務執行個體。

sio和ssio應用方案

sio和ssio的設計思想是相似的,但是還是有一定的差別,請參見《c#跨平台物聯網通訊架構serversuperio(ssio)》。

根據應用場景,sio和ssio可以互相配合部署到不同的地方。sio可以部署在工業現場或工作站點,采集區域範圍的硬體裝置或傳感器的資料,然後打包上傳資料;ssio可以部署在伺服器端,接收上傳的資料,并與現場進行資料或指令互動。結合圖如下:

跨平台物聯網通訊架構 ServerSuperIO v1.1(SSIO)

sio本身就是一個winform應用程式,隻需要繼承mainform就能夠很快的建構自己的圖形化的通訊平台,把開發好的裝置驅動、圖形顯示、服務等 以插件的方式挂載到平台,就可以運作了,可以參見二次開發手冊。一般現場工控機都是windows作業系統,盡管sio不支援跨平台(開發sio的時候, 還沒有mono呢),但是支援windows xp sp3所有以上版本的作業系統。

ssio本身是一個支援多服務執行個體的指令行程式,更适合部署在伺服器端,負責與sio或現場裝置、傳感器進行資料互動。并且ssio的各方面的性能更優于sio,以及支援4種控制模式的應用場景,輪詢模式、自控模式、并發模式和單例模式。

使用sio和ssio二次形式發時不需要關心對裝置、io和控制方式的排程,隻需要繼承接口開發裝置驅動和設定相應的參數就可以了。另外,sio和ssio可以作為組态軟體的核心通訊元件。

嵌入式智能裝置

ssio可以支援跨平台運作,如果智能裝置内嵌裁剪後的linux作業系統,ssio可以跑在智能裝置中,唯一的缺點就是缺少強大的web監控服務,現在asp.net core支援跨平台部署了,到是一個發展的方向。

ssio也可以作為嵌入式智能網關服務,對采集的資料進行協定轉換、打包、轉發。

其他說明

sio和ssio的裝置驅動,當網絡通訊時,都支援tcp client工作模式。因為現場環境比較複雜,又是防火牆、路由之類的。有時候做項目,找個熟悉環境的人都困難,是以目前找了一個最簡單的解決方法,就是反向連接配接,也一直延續至今。

====================================分割線================================

繼續閱讀