工控機上位機軟體的開發歷程(四)
上位機架構
上位機使用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裡都是一些虛類、基類,定義了流程類需要呼叫的函式。而各種裝置協議類則完成採集和傳輸的拼裝和解析工作。