標籤:
在SSIO上增加了UDP通訊方式,可以到Github上下載原始碼。在原來的項目中,遠端的裝置與中心站的資料互動並沒有使用過UDP方式。這種短串連的通訊鏈路,不容易維護,主要體現在:(1)持續的資料互動能力。(2)對現場裝置進行長時間的維護和校準。(3)SSIO要協調裝置、IO和控制方式之間的運作關係,無法即時反應裝置的IO狀態。等等。
但是,對於一個平台來講,UDP的通訊方式是應該具有的,根據現場情況選擇是否應用。例如:遠端的裝置定時發送裝置狀態資訊等,可以使用UDP的通訊方式,在SSIO裡單獨建立一個狀態服務執行個體。
SIO和SSIO的設計思想是相似的,但是還是有一定的區別,請參見《C#跨平台物聯網通訊架構ServerSuperIO(SSIO)》。
根據應用情境,SIO和SSIO可以相互配合部署到不同的地方。SIO可以部署在工業現場或工作網站,採集地區範圍的硬體裝置或感應器的資料,然後打包上傳資料;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工作模式。因為現場環境比較複雜,又是防火牆、路由之類的。有時候做項目,找個熟悉環境的人都困難,所以當前找了一個最簡單的解決方案,就是反向串連,也一直延續至今。
開源地址:https://github.com/wxzz/ServerSuperIO
QQ:504547114
QQ群:54256083
應用SuperIO(SIO)和開源跨平台物聯網架構ServerSuperIO(SSIO)構建系統的整體方案