目 錄
C#跨平臺物聯(lián)網(wǎng)通訊框架ServerSuperIO(SSIO)正式開源... 1
1. SSIO的特點
2. SSIO概述
3. SSIO與SIO的區(qū)別
4. 控制模式
5. 跨平臺Windows和Linux
一.SSIO的特點
輕型高性能通信框架,適用于多種應(yīng)用場,輪詢模式、自控模式、并發(fā)模式和單例模式。
設(shè)備驅(qū)動、IO通道、控制模式場景協(xié)調(diào)統(tǒng)一。
設(shè)備驅(qū)動內(nèi)軒命令驅(qū)動器、命令緩存器、自定義參數(shù)和實時數(shù)據(jù)元素。
框架平臺支持按設(shè)備命令優(yōu)先級別進行調(diào)度,保證高級別命令及時發(fā)送。
一個設(shè)備驅(qū)動同時支持串口和網(wǎng)絡(luò)兩種通訊方式,可以監(jiān)視IO通道數(shù)據(jù)。
一個設(shè)備驅(qū)動,在網(wǎng)絡(luò)通訊時可以支持TCP Server和TCP Client兩種工作模式。
內(nèi)置顯示視圖接口,滿足不同顯示需求。
內(nèi)置服務(wù)組件接口,可以自定義完成OPC服務(wù)、4-20mA輸出、LED大屏顯示、短信服務(wù)、以及多功能網(wǎng)關(guān)服務(wù)。
可以創(chuàng)建多服務(wù)實例,完成不同業(yè)務(wù)的拆分。
支持跨平臺部署,可以運行在Linux和Windows系統(tǒng)。
二.SSIO概述
SSIO通信框架的設(shè)計思想是在SuperIO(SIO)基礎(chǔ)上發(fā)展而來,并沒有高大上的技術(shù),主要是工作經(jīng)驗的積累,適合于不同應(yīng)用場景的物聯(lián)網(wǎng)的數(shù)據(jù)采集與交互。SSIO和SIO并不是簡單的對IO高性能的操作,而是設(shè)備驅(qū)動、IO通道、控制模式和實際硬件設(shè)備之間的協(xié)調(diào)機制,各方面之間無縫銜接和運行,也是為了解決現(xiàn)實工作和應(yīng)用場景的一些痛點。
軟硬件之間的數(shù)據(jù)交互,并且面臨著復雜的現(xiàn)場環(huán)境:
(1)復雜的、多樣的通訊協(xié)議。有標準的協(xié)議,例如:Modbus等,也有很多根據(jù)標準協(xié)議修改的協(xié)議格式、以及自定義協(xié)議格式,并且千差萬別。對于不好的軟件架構(gòu),疲于應(yīng)對,增加設(shè)備或協(xié)議要對整個軟件進行梳理,往往在此過程中出現(xiàn)新的問題或BUG。
(2)針對不同用戶對軟件界面或功能的要求有很大不同,使之滿足不同用戶的顯示要求,可以自定義數(shù)據(jù)顯示界面。那么就需要提供顯示視圖接口,與設(shè)備驅(qū)動進行交互。
(3)既然現(xiàn)場設(shè)備的數(shù)據(jù)被采集上來,那么就需要對其進行處理,不僅僅是保存、查詢、報表等,還有:數(shù)據(jù)轉(zhuǎn)發(fā)、數(shù)據(jù)輸出(OPC、模擬量、大屏等)等。那么就需要提供服務(wù)性的接口,與設(shè)備驅(qū)動進行交互。
(4)通訊鏈路的多種性,對于同一個設(shè)備可能要支持RS232/RS485/RS422、RJ45、3G/4G等通訊方式,所以對于一個設(shè)備要對應(yīng)多種通訊方式(串口和網(wǎng)絡(luò)),也給我們的開發(fā)造成很大的障礙。
(5)設(shè)備驅(qū)動、IO通道和實際的現(xiàn)場硬件終端之間鏈路復雜,有可能:一個設(shè)備驅(qū)動對應(yīng)一個IO通道、一個設(shè)備驅(qū)動對應(yīng)多個IO通道、多個設(shè)備驅(qū)動對應(yīng)一個IO通道等情況。
(6)既然設(shè)備與服務(wù)端進行數(shù)據(jù)交互,那么就應(yīng)該對設(shè)備的通訊狀態(tài)、IO狀態(tài)、以及設(shè)備本身的狀態(tài)進行監(jiān)控,這樣設(shè)備才處于可維護狀態(tài)。
(7)軟件各版本、以及軟件與硬件之間的兼容性很差,管理起來錯綜復雜。在框架平臺穩(wěn)定的情況下,只需要更新設(shè)備驅(qū)動。
為了解決以上諸多問題,開發(fā)一個軟件框架,支持二次開發(fā)。在不對軟件框架改動的情況下,能夠很方便的接入設(shè)備、維護設(shè)備、集成設(shè)備、處理設(shè)備業(yè)務(wù)數(shù)據(jù)等。軟件框架相對穩(wěn)定,把容易變化的部分進行靈活設(shè)計。
三.SSIO與SIO的區(qū)別
序號屬性SSIOSIO
1應(yīng)用場景適用于高頻的數(shù)據(jù)采集與控制,可以部署在服務(wù)器端。適用于一般性的上位機數(shù)據(jù)采集,例如:局域網(wǎng)內(nèi)的廠級服務(wù)端應(yīng)用。
2控制模式輪詢模式、自控模式、并發(fā)模式、單例模式輪詢模式、自控模式、并發(fā)模式、
3性能高性能性能不如SSIO
4服務(wù)實例一個進程可以創(chuàng)建多個服務(wù)實例一個進程只能創(chuàng)建一個服務(wù)實例
5跨平臺支持Linux和Windows只支持Windows各版本操作系統(tǒng)
6二次開發(fā)方便(不包括界面)只需要繼承就可以創(chuàng)建一個完整的應(yīng)用程序
7代碼結(jié)構(gòu)更合適使用的單例模式較多
8串口組件SerialPortPCOMM
9網(wǎng)絡(luò)組件SocketAsyncEventArgsSocket
10開源開源沒有開源
11OPC不支持支持
12模擬量不支持支持
13插件需要自己二次開發(fā)完全支持插件化部署
四.控制模式
(1 )輪詢模式: 當串口和網(wǎng)絡(luò)通訊時都可以使用這種控制模式。當有多個設(shè)備連接到通訊平臺時,通訊平臺會輪詢調(diào)度設(shè)備進行通訊任務(wù)。某一時刻只能有一個設(shè)備發(fā)送請求命令、等待接收返回數(shù)據(jù),這個設(shè)備完成發(fā)送、接收(如果遇到超時情況,則自動返回)后,下一個設(shè)備才進行通訊任務(wù),依次輪詢設(shè)備。如下圖: