天天看點

工控機上位機軟體的開發曆程(四)上位機架構

上位機架構

上位機使用C#、WPF技術開發。軟體并不是一個exe了事,這樣維護和協作都很難去做。

整個系統主要包括以下子產品:

主程式 EQMSClient 負責将各子產品組裝在一起
基礎類庫 EQMS.DAL 部分資料通路層,實作通路資料庫的功能
EQMS.Model 各種結構體的定義
EQMS.ProtocolInterface 通訊協定和子產品的接口
EQMS.Services 系統流程
EQMS.Tools 各種輔助方法
通訊協定 WQMSClassLib 水質裝置通訊協定
AQMSClassLib 空氣裝置通訊協定
EQMSClassLib 其他裝置通訊協定
子產品庫 EQMS.Module.DeviceConfig 裝置配置子產品
EQMS.Module.Licence 軟體認證子產品
EQMS.Module.Platform 平台功能子產品
EQMS.Module.WaterQuery 水質報表子產品
EQMS.Module.FlowMap 流程圖子產品
動态子產品 EQMS.Module.ImportData 導入資料子產品
EQMS.Module.QualityControl 運作模式子產品
EQMS.Module.SMS 短信發送子產品

各部分間的邏輯關系如下圖所示:

工控機上位機軟體的開發曆程(四)上位機架構

上位機是分層設計的,但并不嚴格按照書本上定義的層去做。EQMS.Module下面的都是一些包含界面的子產品,這些子產品可能是固定加載的,也可能是動态加載的,以适應不同的站點需要不同的功能的需要。在記憶體裡的資料是核心資料,包括裝置資料和平台資料。這些資料會經采集系統進行更新,經傳輸系統發送到平台。同時,資料會定時儲存到資料庫,經過DAL層,可能儲存到SQL Server,也可能儲存到SQLite。

上位機最核心的是EQMS.Services、EQMS.ProtocolInterface和各種裝置協定。EQMS.Services控制整個站點的流程運作,什麼時候做采集,什麼時候做傳輸,都有它去完成。EQMS.ProtocolInterface裡都是一些虛類、基類,定義了流程類需要調用的函數。而各種裝置協定類則完成采集和傳輸的拼裝和解析工作。

繼續閱讀