ServerSuperIO Designer IDE 發(fā)布,打造物聯(lián)網(wǎng)通訊大腦,隨心而聯(lián)。附:C#驅(qū)動(dòng)源代碼。
1.概況
注:ServerSuperIO Designer IDE 同行業(yè)網(wǎng)友隨便使用,不涉及到軟件使用限制的問(wèn)題。
從2015年到現(xiàn)在的將近兩年的時(shí)間,一直在開(kāi)發(fā)、完善ServerSuperIO(SSIO)的基礎(chǔ)框架,包括:多通訊機(jī)制、穩(wěn)定性、擴(kuò)展性等,沒(méi)有太多時(shí)間把工作放在UI的設(shè)計(jì)與開(kāi)發(fā)上,從二次開(kāi)發(fā)者角度來(lái)講易用性是短板。為了增補(bǔ)短板,在SSIO核心框架的基礎(chǔ)上開(kāi)發(fā)ServerSuperIO Designer IDE工具,希望能夠幫助二次開(kāi)發(fā)者快速上手。另外,從框架的健壯性和擴(kuò)展性來(lái)講,在Designer IDE的基礎(chǔ)上開(kāi)發(fā)HMI交互也是很容易的事,但是后期不會(huì)以這個(gè)方案開(kāi)發(fā)C/S結(jié)構(gòu)的人機(jī)對(duì)話組態(tài)界面,取而代之的是SSIO與SuperView的Web組態(tài)無(wú)縫對(duì)接。
對(duì)于物聯(lián)網(wǎng)體系建設(shè),通訊始終是核心部分,涉及到多種設(shè)備、多種協(xié)議、多種通訊機(jī)制、多種數(shù)據(jù),加之5G標(biāo)準(zhǔn)的實(shí)施,通訊層需要進(jìn)行改造與完善。有的組態(tài)或scada的相關(guān)產(chǎn)品已經(jīng)不能適應(yīng)日益變化的市場(chǎng)需求、場(chǎng)景需求,例如:把IO通訊的讀寫(xiě)操作放到設(shè)備驅(qū)動(dòng)或插件內(nèi)部,一是本身框架的執(zhí)行效率受到影響,二是不能支持多種通訊場(chǎng)景以及高并發(fā)的要求,三是不能進(jìn)行多設(shè)備復(fù)用同一IO資源,四是底層通訊層的擴(kuò)展性受到制約。SSIO充分考慮到應(yīng)用場(chǎng)景,進(jìn)行頂層框架設(shè)計(jì),實(shí)現(xiàn)接口的解耦而達(dá)到整體融合,目標(biāo)是實(shí)現(xiàn)物聯(lián)網(wǎng)通訊層的大腦。
我們談物聯(lián)網(wǎng)、大數(shù)據(jù)、云平臺(tái)等,首先就是實(shí)現(xiàn)節(jié)點(diǎn)之間互聯(lián)以及解決數(shù)據(jù)的實(shí)時(shí)流通,在每個(gè)節(jié)點(diǎn)上逐步加入業(yè)務(wù)功能,從而實(shí)現(xiàn)整個(gè)系統(tǒng)有續(xù)擴(kuò)展。流通的數(shù)據(jù)好比身體流淌的血液,業(yè)務(wù)功能好比身體的肌肉。
2.ServerSuperIO及Designer IDE的特點(diǎn)
- 輕型高性能通信框架,適用多種應(yīng)用場(chǎng):輪詢模式、自控模式、并發(fā)模式和單例模式。
- 支持協(xié)議驅(qū)動(dòng)器,可以按規(guī)范寫(xiě)標(biāo)準(zhǔn)協(xié)議和自定義協(xié)議。
- 支持發(fā)送數(shù)據(jù)緩存器,支持命令緩存重發(fā)和按優(yōu)先級(jí)別發(fā)送。
- 支持協(xié)議過(guò)濾器,按規(guī)則篩選數(shù)據(jù),并且可以承繼接口,自定義過(guò)濾方式。
- 支持接收數(shù)據(jù)緩存器,可以緩存不符合過(guò)濾器的數(shù)據(jù),和下次接收數(shù)據(jù)進(jìn)行拼接。
- 支持按設(shè)備命令優(yōu)先級(jí)別進(jìn)行調(diào)度設(shè)備,保證有高級(jí)別命令的驅(qū)動(dòng)及時(shí)發(fā)送。
- 支持一個(gè)設(shè)備驅(qū)動(dòng),同時(shí)適配串口和網(wǎng)絡(luò)兩種通訊方式,可以監(jiān)視IO通道數(shù)據(jù)。
- 支持一個(gè)設(shè)備驅(qū)動(dòng),在網(wǎng)絡(luò)通訊時(shí)適配TCP Server和TCP Client兩種工作模式。
- 支持WebSocket,進(jìn)行數(shù)據(jù)采集與轉(zhuǎn)發(fā)。
- 支持多設(shè)備共享同一個(gè)IO通道進(jìn)行通訊。
- 支持定時(shí)清理超時(shí)的網(wǎng)絡(luò)IO通道。
- 支持顯示視圖接口,滿足不同人機(jī)對(duì)話的需求。
- 支持服務(wù)組件接口,例如:4-20mA輸出、LED大屏顯示、短信服務(wù)、以及多功能網(wǎng)關(guān)服務(wù)。
- 設(shè)備驅(qū)動(dòng)與設(shè)備驅(qū)動(dòng),設(shè)備驅(qū)動(dòng)與服務(wù)器(云端)可以實(shí)時(shí)雙向交互,上傳數(shù)據(jù)和指令下發(fā)。
- 支持OPC Server和OPC Client。
- 支持創(chuàng)建多服務(wù)實(shí)例,完成不同業(yè)務(wù)的拆分。
- 支持跨平臺(tái)部署,可以運(yùn)行在Linux和Windows系統(tǒng)。
- 支持SuperRTDB、eDna和CoreRT實(shí)時(shí)數(shù)據(jù)庫(kù)。
- 支持mysql、oracle、sqlserver和sqlite數(shù)據(jù)庫(kù)。
Designer IDE是在ServerSuperIO基礎(chǔ)開(kāi)發(fā)的,支持掛載設(shè)備驅(qū)動(dòng)和服務(wù)驅(qū)動(dòng)、OPC Server/Client、數(shù)據(jù)轉(zhuǎn)發(fā)客戶端/服務(wù)端、支持標(biāo)準(zhǔn)的Modbus協(xié)議驅(qū)動(dòng)等。Designer IDE使整個(gè)框架操作更簡(jiǎn)單、易用。基于ServerSuperIO開(kāi)發(fā)的設(shè)備驅(qū)動(dòng)或服務(wù)驅(qū)動(dòng),可以掛載到IDE下運(yùn)行。

3.軟件部署
ServerSuperIO 4.0以前版本采用文件方式存儲(chǔ)配置信息,ServerSuperIO 4.0及以后版本采用mysql存儲(chǔ)數(shù)據(jù),以后開(kāi)發(fā)Web管理系統(tǒng)方便行進(jìn)在線管理。部署說(shuō)明,如下:
(1)在mysql中創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例,例如數(shù)據(jù)庫(kù)名稱(chēng)為:ServerSuperIO
(2) 在數(shù)據(jù)庫(kù)實(shí)例中運(yùn)行“數(shù)據(jù)庫(kù)腳本\serversuperio 4.0.sql”,初始化數(shù)據(jù)表。
(3) 在“ServerSuperIO Designer IDE 4.0\ServerSuperIO\ SourceConfig.cfg”配置mysql的數(shù)據(jù)庫(kù)實(shí)例信息。
(4) 運(yùn)行“ServerSuperIO.Designer.exe“應(yīng)用程序即可。
4.管理設(shè)備驅(qū)動(dòng)和服務(wù)驅(qū)動(dòng)
基于SSIO 4.0版本開(kāi)發(fā)的設(shè)備驅(qū)動(dòng)和服務(wù)驅(qū)動(dòng),可以在IDE下進(jìn)行管理和運(yùn)行。
設(shè)備驅(qū)動(dòng)源代碼:
https://github.com/wxzz/ServerSuperIO.Driver
服務(wù)驅(qū)動(dòng)源代碼:
https://github.com/wxzz/ServerSuperIO.Service
Modbus 操作類(lèi)庫(kù)源代碼:
https://github.com/wxzz/ServerSuperIO.Modbus
測(cè)試驅(qū)動(dòng)源代碼:
https://github.com/wxzz/TestDeviceDriver
模擬終端源代碼:
https://github.com/wxzz/TestDevice
操作界面,如下圖:


服務(wù)驅(qū)動(dòng)加載類(lèi)型分為GlobalServer(全局服務(wù))和InternalServer(內(nèi)部服務(wù)),全局服務(wù)面向所有服務(wù)實(shí)例的設(shè)備驅(qū)動(dòng),以及之間進(jìn)行數(shù)據(jù)交互;內(nèi)部服務(wù)只面向同一服務(wù)實(shí)例內(nèi)部的服務(wù),以及之間進(jìn)行數(shù)據(jù)交互。
5.服務(wù)實(shí)例
服務(wù)實(shí)例相當(dāng)于容器,可以在一個(gè)服務(wù)實(shí)例中運(yùn)行串口設(shè)備驅(qū)動(dòng)、網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)、服務(wù)驅(qū)動(dòng)以及視圖驅(qū)動(dòng)(IDE還沒(méi)有集成視圖部分)。并且在一個(gè)服務(wù)實(shí)例中支持四大通訊機(jī)制:(1)輪詢模式,隊(duì)列方式向設(shè)備發(fā)送請(qǐng)求數(shù)據(jù)命令,并且等待設(shè)備返回?cái)?shù)據(jù);(2)自控模式,驅(qū)動(dòng)可以周期定時(shí)向設(shè)備發(fā)送請(qǐng)求數(shù)據(jù)命令,也可以不主動(dòng)請(qǐng)求,被動(dòng)接收數(shù)據(jù);(3)并發(fā)模式,集中異步向所有設(shè)備發(fā)送請(qǐng)求數(shù)據(jù)命令,異步等待所有設(shè)備返回的數(shù)據(jù)。(4)單例模式,一個(gè)設(shè)備驅(qū)動(dòng)對(duì)應(yīng)所有物理設(shè)備,相當(dāng)于一個(gè)單純的通訊框架。增加服務(wù)實(shí)例,如下圖:

6.增加設(shè)備驅(qū)動(dòng)
在一個(gè)服務(wù)實(shí)例中可以增加N個(gè)串口設(shè)備驅(qū)動(dòng)和網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng),SSIO負(fù)責(zé)整體管理與調(diào)度,以保證在通訊IO和通訊機(jī)制方面穩(wěn)定運(yùn)行。控制分組,當(dāng)網(wǎng)絡(luò)通訊模式下,每個(gè)設(shè)備驅(qū)動(dòng)設(shè)置不同的分組,相當(dāng)于每個(gè)設(shè)備驅(qū)動(dòng)在獨(dú)立的容器中運(yùn)行,以到達(dá)到高效運(yùn)行。增加設(shè)備驅(qū)動(dòng),如下圖: 
7.增加設(shè)備驅(qū)動(dòng)的數(shù)據(jù)監(jiān)測(cè)點(diǎn)
每個(gè)設(shè)備驅(qū)動(dòng)可以增加N個(gè)監(jiān)測(cè)點(diǎn)標(biāo)簽(Tag),支持Modbus RTU/ASCII/TCP協(xié)議,以保證監(jiān)測(cè)數(shù)據(jù)在SSIO框架內(nèi)的流程與交互,后期會(huì)增加對(duì)監(jiān)測(cè)點(diǎn)的管理工具。增加標(biāo)簽,如下圖:

8.OPC客戶端
OPC客戶端僅支持DA模式,可以讀取遠(yuǎn)程O(píng)PC Server的數(shù)據(jù)信息,并保存到本地以及現(xiàn)次通過(guò)數(shù)據(jù)轉(zhuǎn)發(fā)服務(wù)傳遞給其他節(jié)點(diǎn)。如下圖:
9.OPC服務(wù)端
把設(shè)備驅(qū)動(dòng)或OPC Client讀上來(lái)的數(shù)據(jù),通過(guò)OPC Server為其他系統(tǒng)提供可訪問(wèn)的接口,可以選擇輸出數(shù)據(jù)的設(shè)備點(diǎn)表或OPC Client點(diǎn)表。如下圖: 
10.數(shù)據(jù)轉(zhuǎn)發(fā)(客戶端)
可以增加轉(zhuǎn)發(fā)任務(wù),主動(dòng)連接其他服務(wù)器端,并且根據(jù)設(shè)備點(diǎn)表和OPC Client點(diǎn)表配置要轉(zhuǎn)發(fā)的數(shù)據(jù),可以實(shí)現(xiàn)物聯(lián)網(wǎng)建設(shè)的級(jí)聯(lián)以及直接連接云端。可以填寫(xiě)“站點(diǎn)編號(hào)”,把本機(jī)當(dāng)作站點(diǎn),方便云端進(jìn)行管理。如下圖: 
11.數(shù)據(jù)轉(zhuǎn)發(fā)(服務(wù)端)
支持遠(yuǎn)程客戶端主動(dòng)連接ServerSuperIO,并針對(duì)已經(jīng)連接的終端設(shè)備(PC機(jī)、手機(jī)、Web(Socket)業(yè)務(wù)系統(tǒng)等)轉(zhuǎn)發(fā)設(shè)備點(diǎn)表和OPC Client點(diǎn)表的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)向終端的分發(fā)。如下圖: 
12.展望
下一篇文章已經(jīng)寫(xiě)好《助力中小企業(yè)級(jí)連云端,促進(jìn)工業(yè)互聯(lián)網(wǎng)平臺(tái)蓬勃發(fā)展,全套解決方案》,將來(lái)一體化智能網(wǎng)關(guān)、ServerSuperIO 4.0、實(shí)時(shí)數(shù)據(jù)庫(kù)、Web組態(tài)整體進(jìn)行方案介紹,實(shí)現(xiàn)基礎(chǔ)技術(shù)體系化應(yīng)用。
物聯(lián)網(wǎng)&集成技術(shù)(.NET) QQ群:54256083
ServerSuperIO 3.0 開(kāi)源地址:https://github.com/wxzz/ServerSuperIO

浙公網(wǎng)安備 33010602011771號(hào)