SCADA简介
SCADA是Supervisory Control And Data Acquisition的英文缩写,国内流行叫法为监控组态软件。从字面上讲,它不是完整的控制系统,而是位于控制设备之上,侧重于管理的纯软件。SCADA所接的控制设备通常是PLC(可编程控制器),也可以是智能表,板卡等。
早期的SCADA运行与DOS,UNIX,VMS。现在多数运行在Windows操作系统中,有的可以运行在Linux系统。
SCADA不只是应用于工业领域,如钢铁、电力、化工,还广泛用于食品,医药、建筑、科研等行业。其连接的I/O通道数从几十到几万不等。下面就其结构、功能、接口、开发工具等方面予以介绍。
SCADA体系结构
1.1 硬件结构
通常SCADA系统分为两个层面,即客户/服务器体系结构。服务器与硬件设备通信,进行数据处理何运算。而客户用于人机交互,如用文字、动画显示现场的状态,并可以对现场的开关、阀门进行操作。近年来又出现一个层面,通过Web发布在Internat上进行监控,可以认为这是一种“超远程客户”。
硬件设备(如PLC)一般既可以通过点到点方式连接,也可以以总线方式连接到服务器上。点到点连接一般通过串口(RS232),总线方式可以是RS485,以太网等连接方式。总线方式与点到点方式区别主要在于:点到点是一对一,而总线方式是一对多,或多对多。
在一个系统中可以只有一个服务器,也可以有多个,客户也可以一个或多个。只有一个服务器和一个客户的,并且二者运行在同一台机器上的就是通常所说的单机版。服务器之间,服务器与客户之间一般通过以太网互连,有些场合(如安全性考虑或距离较远)也通过串口、电话拨号或GPRS方式相连。典型的硬件配置图如下:
1.2 软件体系结构
SCADA有很多任务组成,每个任务完成特定的功能。位于一个或多个机器上的服务器负责数据采集,数据处理(如量程转换、滤波、报警检查、计算、事件记录、历史存储、执行用户脚本等)。服务器间可以相互通讯。有些系统将服务器进一步单独划分成若干专门服务器,如报警服务器,记录服务器,历史服务器,登录服务器等。各服务器逻辑上作为统一整体,但物理上可能放置在不同的机器上。分类划分的好处是可以将多个服务器的各种数据统一管理、分工协作,缺点是效率低,局部故障可能影响整个系统。
典型的硬件配置图如下:
1.3 通信
1.3.1内部通信
客户与服务器间以及服务器与服务器间一般有三种通信形式,请求式,订阅式与广播式。请求式:客户周期性向服务器发出请求,然后服务器为客户准备数据,传送给客户。
订阅式:客户向服务器注册所关心数据,服务器记录每个用户关心的数据。当数据变化通知相应的用户。
广播式:当数据的变化时,服务器向所有客户发出通知。
1.3.2与I/O设备通信
1) 通信模式
设备驱动程序与I/O设备通讯一般采用请求式,大多数设备都支持这种通讯方式,当然也有的设备支持主动发送方式。主动发送方式即I/O设备在数据改变时主动向外界报告数据。有的设备也支持订阅式通信。设备驱动程序应该能够支持各种通信模式。
2) 通信协议
通信协议即与设备间的会话格式,可以理解为一种简单的交流语言。这些语言有一定的地方性,尤其是国产的PLC,智能仪表。常见的协议有Modbus, Profibus等。设备驱动程序必须为每种协议编制相应的代码。开发一设备驱动一般为1~5周,这要根据协议的复杂程度决定。软件商一般将该部分做成标准开发包,用户可以自己开发。
服务器可同时带有多个不同种类的驱动程序,这样服务器就可以同时跟多种设备进行通信。
1.3.3与外界通信
为了效率,服务器上的实时数据和历史数据一般都以私有格式存放,实时数据驻留在内存中,而历史数据保存在磁盘中,事件记录也可能以私有格式保存在磁盘中,但有些软件可以将其直接存放到关系数据库(如Ms SQL Server,ORACLE)中。由于无论采用直接方式还是ODBC与关系数据库通讯,速度都是比较慢的,所以不可能将快速变化的数据都存放到关系数据库中。那么服务器内这些私有格式的数据是如何与外界联系的呢,下面简要说明。
SCADA通过多种方式与外界通信。如OPC,一般都会提供OPC客户端,用来与设备厂家提供的OPC服务器进行通讯。因为OPC有微软内定的标准,所以OPC客户端无需修改就可以与各家提供的OPC服务器进行通讯。现在国外的硬件厂商大多都能提供OPC服务器,而国内的硬件厂商确很少。SCADA供应商一般也会提供自己的OPC服务器,以便别人通过OPC访问自己,这样也实现了不同SCADA间的互联。此外还有其他的一些通讯手段,如:
l ODBC,第三方程序通过ODBC访问历史数据,事件记录等。
l API接口:可以在编程环境(如VB,VC)中使用该接口。
l OLE控件:可以在各种编程环境下使用,也可以嵌入到支持OLE包容器的程序中,如Ms Word。
l DDE:微软的动态数据交换协议。
2.整体构架
由服务器,客户端构成了SCADA C/S结构,由服务器,Web服务器,Web客户构成了SCADA B/S结构。服务器配置在不同的机器上,甚至不同的操作系统平台上,彼此分工协作,形成统一整体,构成了SCADA的分布式体系结构。
为了增加系统的可靠性,服务器端允许双机热备,重要场合可以一机多备。服务器双机热备一般是将两台机器配置相同,一台作为主站,另一台机器作为副站,主站完成服务器的正常工作,另一台与其同步。当主站故障时,副站接替主站的工作。主站与副站是相对的,可互换的。双机热备包含I/O通道的热备。 由于多个客户可以同时访问一个服务器端,所以客户端本来就是多重的。
一个系统
3.内部组织概述
3.1 服务器内部组织
服务器包括过程数据库,I/O驱动,Web服务器等。服务器的核心是过程数据库,下面对其内部组织加以介绍。
过程数据库是由完成各种特定功能的算法块组成,这些算法块也被称为“内部仪表”或“虚拟仪表”,更常用的称呼是“点”。
点是组成过程数据库的基本单位,点分为很多类型,每种类型的点完成一定的功能,如模拟I/O点,专门用于对模拟I/O进行处理,PID点完成PID控制运算等。点由各种参数组成,不同的点有不同的参数,如模拟I/O点有NAME,PV,LO,HI等参数。可以想象点类型相当于关系数据库中的表结构,参数相当于字段。与表结构不同的是,每种点类型有特定的内部处理算法,参数间存在内定的联系,如LO是PV的低限报警值,PV低于LO将产生低限报警,报警检查是点的内置功能,不需要编写另外的程序来实现。
参数是组成数据库的最小单位。一般地,一个点只有一个参数与外界相连,通常称其为测量值(PV)。其他参数作为PV的辅助参数,如LO为PV的低限报警限值,HI为PV的高限报警限值,SP为PV的目标值等。有的系统允许一个点有多个参数与外界相连。
点的测量值(PV)通常与控制器(如PLC)的输入/输出通道相连。PV值代表I/O量的大小或状态。
按照装置或场地可以将点逻辑的划分为区域或单元。一般区域包括单元。
3.2 人机界面内部组织
人机界面由很多窗口组成,窗口包含图形和文字。文字和图形可动态变化。如文字可显示现场I/O量的大小,图形的颜色变化表示现场状态量的改变等。
同时显示的窗口一般只有一个,窗口间可以互相连接、跳转,也可以设立菜单或专门的窗口负责窗口间的切换。
人机界面开发环境中提供了各种绘画工具,如画矩形、椭圆、文字、位图等工具。同时提供了动画连接手段,使图形、文字等与现场的数据相关联。现场数据变化则画面上图形颜色、位置等也相应改变,通过观察画面上的图形文字就可以知晓现场的状态,并称这种图形文字与数据之间的联系为“动画链接”。
可以手工的绘制各种工艺对象,如罐、阀门、泵等。为了方便使用人机界面开发环境都提供了现成的小图形,称之为“子图”。在子图中可以找到各种现成的图形,如各种形状的阀门。有的子图还与特定的动画连接捆绑,更加方便使用。
趋势图人机界面不可缺少的组成部分。趋势图以曲线的形式显示过程数据库中实时数据或历史数据。一般实时数据和历史数据分别在不同的趋势图中显示。一幅趋势图中通常最多显示八条曲线,曲线可以放大、滚动。趋势笔可以在开发环境中定义,也可以在运行时动态指定。
报表是人机界面的重要组成部分。开发环境提供专门的报表生成工具,方便的形成各种报表。报表中的数据可以有瞬时值、历史值、统计值。还可以让报表定时打印。另外还可以利用SCADA的Excel插件,用Ms Excel生成报表。
此外,在人机界面中还有许多其它种类的组件,如XY曲线、报警浏览、总貌等。另外人机界面几乎都是OLE容器,可以嵌入OLE对象,或ActiveX控件。
4.重要功能
过程报警
过程报警是过程数据库的基本功能。报警是对测量值的范围、变化速度的预警。报警包括限值报警,变化率报警,偏差报警,异常报警等。更复杂的报警可以通过对测量值进行数学运算,然后对运算结果进行报警检查而产生。发生报警后,操作员可以通过报警画面对报警进行“确认”,“确认”就是告诉系统我知道了发生的事,以免系统再次提醒。报警信息,报警确认信息,报警恢复(报警消除)等信息都可以被系统自动记录下来。报警按照重要程度可分为多个优先级,如低级、高级、紧急。
报警发生时系统可以通过多种方式通知用户,如弹出报警窗、发出声响,甚至可以发送短信或电子邮件。至于使用哪种方式,用户可以自由指定。
历史存储
对实时数据可以进行历史存储。历史数据对于生产状况分析、实现先进/优化控制、以及生产事故分析非常重要,所以将重要的工艺数据都会进行长期历史保存。为了节省存储介质空间,对保存的数据使用压缩保存。常用的保存方式有周期性保存和变化保存(数据只有变化到一定程度才保存)。
脚本语言
除了固定格式的功能,如点内部处理(能够完成几种固定形式的功能,如量程转换
脚本与一般编程语言类似,在脚本中提供多种运算操作(如赋值、数学运算、逻辑运算),控制语句(如条件判断,循环,分支),以及内置函数等。有的SCADA还支持自定义函数。
脚本的触发方式有多种:一次性执行(如进入窗口时执行);周期执行;事件触发执行(如数据改变时执行,按键触发)。
脚本也能产生多种输出动作:如向过程数据库写数据;发送短信;调用窗口;产生声响等。
5. SCADA的益处
使用SCADA软件能够带来的好处可列举如下:
l 提高效率。SCADA的开发一般需要20~100人年,并且不断的采用新技术,吸取用户的经验,在使用中不断提高。SCADA综合用户的需求,将工程中共性东西提炼出来,制成相应的模式或模块,以帮助用户快速实现自己的工程。因此使用SCADA可以跟上时代的发展,并能提高自己的工作效率。
l 一致性。SCADA的提供固定的格式,让用户实现自己的工程,有的是填表式的,有的是向导式的。无论是谁来组态,同样的工程要求,形成的组态结果都是相同的,或者差异很小。
l 可维护性。SCADA内部功能强大,组织复杂,但是对用户是透明的,所以用户的组态工作量不大,或者只是重复性较大。因此工程易于维护。
l 使用SCADA能够得到有效的技术支持。技术支持不但包括使用SCADA上的,也可能包括你工程上的。因为SCADA技术支持人员经常与各行业的人员交流,所以可以将你的同行经验介绍给你。
(转载)