工控机上位机软件的开发历程(四)

上位机架构

上位机使用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

短信发送模块

各部分间的逻辑关系如下图所示:

工控机上位机软件的开发历程(四)_第1张图片

上位机是分层设计的,但并不严格按照书本上定义的层去做。EQMS.Module下面的都是一些包含界面的模块,这些模块可能是固定加载的,也可能是动态加载的,以适应不同的站点需要不同的功能的需要。在内存里的数据是核心数据,包括设备数据和平台数据。这些数据会经采集系统进行更新,经传输系统发送到平台。同时,数据会定时保存到数据库,经过DAL层,可能保存到SQL Server,也可能保存到SQLite。

上位机最核心的是EQMS.Services、EQMS.ProtocolInterface和各种设备协议。EQMS.Services控制整个站点的流程运行,什么时候做采集,什么时候做传输,都有它去完成。EQMS.ProtocolInterface里都是一些虚类、基类,定义了流程类需要调用的函数。而各种设备协议类则完成采集和传输的拼装和解析工作。

你可能感兴趣的:(工控软件)