为了效率,服务器上的实时数据和历史数据一般都以私有格式存放,实时数据驻留在内存中,而历史数据保存在磁盘中,事件记录也可能以私有格式保存在磁盘中,但有些软件可以将其直接存放到关系数据库(如Ms SQL Server,ORACLE)中。由于无论采用直接方式还是ODBC与关系数据库通讯,速度都是比较慢的,所以不可能将快速变化的数据都存放到关系数据库中。那么服务器内这些私有格式的数据是如何与外界联系的呢,下面简要说明。
SCADA通过多种方式与外界通信。如OPC,一般都会提供OPC客户端,用来与设备厂家提供的OPC服务器进行通讯。因为OPC有微软内定的标准,所以OPC客户端无需修改就可以与各家提供的OPC服务器进行通讯。现在国外的硬件厂商大多都能提供OPC服务器,而国内的硬件厂商确很少。SCADA供应商一般也会提供自己的OPC服务器,以便别人通过OPC访问自己,这样也实现了不同SCADA间的互联。此外还有其他的一些通讯手段,如:
ODBC,第三方程序通过ODBC访问历史数据,事件记录等。
API接口:可以在编程环境(如VB,VC)中使用该接口。
OLE控件:可以在各种编程环境下使用,也可以嵌入到支持OLE包容器的程序中,如Ms Word。
DDE:微软的动态数据交换协议。
2.整体构架
由服务器,客户端构成了SCADA C/S结构,由服务器,Web服务器,Web客户构成了SCADA B/S结构。服务器配置在不同的机器上,甚至不同的操作系统平台上,彼此分工协作,形成统一整体,构成了SCADA的分布式体系结构。
为了增加系统的可靠性,服务器端允许双机热备,重要场合可以一机多备。服务器双机热备一般是将两台机器配置相同,一台作为主站,另一台机器作为副站,主站完成服务器的正常工作,另一台与其同步。当主站故障时,副站接替主站的工作。主站与副站是相对的,可互换的。双机热备包含I/O通道的热备。 由于多个客户可以同时访问一个服务器端,所以客户端本来就是多重的。
一个系统中,可以有多个服务器,每个服务器可带有多个I/O设备。客户端可以访问一台或多台服务器。Web服务器可以作为多个服务器的代理,将Web客户与各服务器连接起来。
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.重要功能
过程报警
过程报警是过程数据库的基本功能。报警是对测量值的范围、变化速度的预警。报警包括限值报警,变化率报警,偏差报警,异常报警等。更复杂的报警可以通过对测量值进行数学运算,然后对运算结果进行报警检查而产生。发生报警后,操作员可以通过报警画面对报警进行“确认”,“确认”就是告诉系统我知道了发生的事,以免系统再次提醒。报警信息,报警确认信息,报警恢复(报警消除)等信息都可以被系统自动记录下来。报警按照重要程度可分为多个优先级,如低级、高级、紧急。
报警发生时系统可以通过多种方式通知用户,如弹出报警窗、发出声响,甚至可以发送短信或电子邮件。至于使用哪种方式,用户可以自由指定。
历史存储
对实时数据可以进行历史存储。历史数据对于生产状况分析、实现先进/优化控制、以及生产事故分析非常重要,所以将重要的工艺数据都会进行长期历史保存。为了节省存储介质空间,对保存的数据使用压缩保存。常用的保存方式有周期性保存和变化保存(数据只有变化到一定程度才保存)。
脚本语言
除了固定格式的功能,如点内部处理(能够完成几种固定形式的功能,如量程转换、报警检查、PID运算),动画连接(能够完成几种固定形式的动画,如颜色、位置改变)等,SCADA还允许用户定义特殊的逻辑、运算,这是通过SCADA的内置编程语言实现的。SCADA的提供的编程环境有的是内嵌VBA编译器,有的是自定义的类似BASIC或类似C语言的编译器。无论是哪种编程环境SCADA都要提供很多访问自身数据的属性、方法,以便在编程环境中与SCADA系统交互。这种内置的编程语言经常称作“动作”,现在更多的称呼是“脚本”。这里的脚本与Excel中的“宏”类似。通过脚本用户可以自由扩展系统功能。
脚本与一般编程语言类似,在脚本中提供多种运算操作(如赋值、数学运算、逻辑运算),控制语句(如条件判断,循环,分支),以及内置函数等。有的SCADA还支持自定义函数。
脚本的触发方式有多种:一次性执行(如进入窗口时执行);周期执行;事件触发执行(如数据改变时执行,按键触发)。
脚本也能产生多种输出动作:如向过程数据库写数据;发送短信;调用窗口;产生声响等。
5. SCADA的益处
使用SCADA软件能够带来的好处可列举如下:
提高效率。SCADA的开发一般需要20~100人年,并且不断的采用新技术,吸取用户的经验,在使用中不断提高。SCADA综合用户的需求,将工程中共性东西提炼出来,制成相应的模式或模块,以帮助用户快速实现自己的工程。因此使用SCADA可以跟上时代的发展,并能提高自己的工作效率。
一致性。SCADA的提供固定的格式,让用户实现自己的工程,有的是填表式的,有的是向导式的。无论是谁来组态,同样的工程要求,形成的组态结果都是相同的,或者差异很小。
可维护性。SCADA内部功能强大,组织复杂,但是对用户是透明的,所以用户的组态工作量不大,或者只是重复性较大。因此工程易于维护。