首页 > 代码库 > 从研发人的角度评判怎样设计一个好的DCS系统
从研发人的角度评判怎样设计一个好的DCS系统
相信从事自动化或控制系统的同仁,应该了解Distributed Control System(简称DCS)的基本功能及其在工控行业的作用。从工程应用的角度,一个完整的DCS系统主要包括三个部分:HMI人机交互层、控制站层、仪表与执行机构层。
HMI主要包括工程师站、监控站、历史站等,主要在具有较高稳定的PC上安装相应的软件构成。控制站层,主要实现相应的控制算法与逻辑,并通过相应的IO卡件采集数据和发送指令。仪表与执行机构,主要由各个厂家的智能变送器、电动机等组成。
由于仪表与执行机构,厂家众多,并且可替换性、可选择性很强,因此不在本文的讨论范围。本文所要讲述的DCS系统,主要表现在HMI和控制站两个部分。从硬件的角度来看,HMI主要在PC端实现,控制站则一般采用相应的工业级的小型嵌入式主板上实现。如果以产品研发为目标,DCS系统的主要核心在于软件,其软件主要包括以下方面:基础的通信架构、组态工具、SCADA以及控制器的内核(runtime)。
首先来讲通信架构。任何一个厂家的DCS系统,其都有一套自身的、标准化的、底层的通信基础架构。无论是控制站之间的通信,还是SCADA与控制站之间的通信,还是组态下载过程中的通信,均需要基于一套完整的通信体系。本人目前也接触过两套DCS产品,据我看来,其通信架构往往决定了该DCS所具备的功能与性能。举个例子来讲,我们通常说的网络变量(网络变量,相对于本控制站中的内部变量,其可以被另一个控制站访问),其实现基础与方式就往往由通信的基础架构决定。因此在设计一个DCS的架构之前,首先应明确该系统需要具备哪些功能,然后才能全局上对通信架构进行底层设计。
组态工具。组态,在这里既指监控画面组态、网络结构组态,也包括控制逻辑的组态。老的DCS系统,以前一般采用VC开发,近年来,随着.NET技术后兴起,C#在开发界面应用上具有很高的效率优势,也逐渐进入了人们的视野。一般,组态工具,是做DCS项目的工程人员直接接触的窗口,其用户体验如何,直接决定了该产品的第一印象,因此需要采用软件工程的方式对其操作流程与操作方式进行优化设计。然而从各个模块的开发难度上来讲,组态工具的开发,其技术门槛并不高。
SCADA。对于SCADA来讲,并不是很有的DCS厂商都会自己去开发一个SCADA,而市面上,也有一些通用的SCADA软件,如国产的三维力控、外资的Wonderware Intouch等。然而本文还是对其进行考虑,因为DCS系统绝对不能排除SCADA而独立运行,而SCADA也往往是体现DCS系统性能的一个重要方面。与此同时,在进行通信架构设计时,也应考虑SCADA,并对其预留相应的接口,明确SCADA的通信方式,确定SCADA的容量规模与速度要求。
控制器内核(runtime)。该部分往往是一个控制器的核心,一般来讲,控制器的内核主要做两件事情:一是算法逻辑执行;二是通信。对于控制来讲,实时性是一个需要满足的要求,而对于不同的行业,其实时性要求也存在一定的差别。因此从宏观上来讲,对于算法逻辑执行与通信这两个方面,需要对其进行协调,优化调度其执行时间与执行的频次。与此同时,控制器的内核,需要对下载的逻辑组态进行解析,并生成相应的任务指令,完成相应的操作。
从上述四个部分来看,好的DCS系统,我觉得从产品经理的角度 ,我觉得应该具备以下功能:
1. 通信架构具有统一的通信API函数接口;
2. 控制器内核及通信架构具有跨平台的能力,能运行于多种不同类型的实时操作系统;
3. 易于集成各种通信协议;
4. 易于实现网络变量功能;
5. 高并发下数据访问的快速性;
6. 组态工具操作简单、易学易用;
7. 具备二次开发的接口;
8. 软件结构清晰,易于升级维护。
以上仅仅是罗列了DCS系统所应具备的各种功能,后续笔者将针对每一个功能的具体实现,进行一个详细的设计说明,以期与各位从事DCS产品研发的同仁分享。