SCADA应用子系统培训讲义
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DF8003 PEMS系统培训讲义S C A D A应用子系统
烟台东方电子信息产业股份有限公司
目录
1 概述 (1)
2 SCADA应用子系统数据流 (1)
3 SCADA应用子系统数据库 (2)
3.1 厂站类 (2)
3.2 RTU类 (2)
3.3 零死区类 (2)
3.4 点类 (2)
3.4.1 模拟量点 (2)
3.4.2 数字量点 (3)
3.4.3 电能量点 (3)
3.5 其它类 (3)
4 SCADA数据处理子系统 (4)
4.1 数据处理服务器(SCADA_Server) (4)
4.1.1 组成 (4)
4.1.2 功能 (4)
4.2 数据下载和复制服务器(SCADA_Rep) (7)
4.3 历史数据保存服务器(SCADA_Save) (7)
4.4 追忆处理服务器 (8)
4.5 限值加载服务器(limit) (8)
4.6 关系库数据更新服务器(udb) (9)
5 控制子系统 (9)
5.1 控制 (9)
5.2 调度员操作 (10)
6 SCADA命令语言 (10)
1概述
SCADA是数据采集与监视控制的意思,包括数据采集、数据处理、控制、人机交互等几个部分。
这里只讲SCADA的数据处理和控制部分,主要从模块的设计、实现的功能以及在系统中的配置等方面进行介绍。
2SCADA应用子系统数据流
SCADA应用子系统数据流图
注:图中实线部分为SCADA应用子系统,虚线部分为其它应用。
3SCADA应用子系统数据库
数据库是一切应用的基础。
为了满足SCADA应用的需求,SCADA数据库包含关系库和内存库两部分。
关系库中包含了SCADA应用所需要的各种参数,但为了保证数据访问和处理的实时响应性,还创建了一个内存数据库。
SCADA数据库的设计按照面向对象的模型设计。
根据SCADA数据模型,每个对象类在SCADA数据库中定义必需的专用信息。
例如,点类定义了与点有关的所有信息,而厂站、RTU类分别定义了与厂站、RTU有关的所有信息。
下面对SCADA数据模型对象类做简要的描述。
3.1厂站类
该类用于表示一个系统实际的厂站。
厂站对象用于定义厂站的专用信息,是用于对点进行逻辑划分的一种分组。
这些厂站可由一个或多个RTU采集, 或属于某中间站的一个子集。
其中系统站存放代表整个电网的信息,它的厂站名固定为SysStation。
3.2RTU类
该类用于表示RTU。
RTU类定义了RTU名、点的范围等信息。
RTU类与点类相关。
RTU类信息必须在定义相应的RTU点信息之前定义。
3.3零死区类
该对象类用于表示零死区。
零死区类与一个模拟量输入点相关并且定义了一个范围,如果模拟量的值在这个范围之内,则将会被强制为0。
如果一个模拟量点不设置相应的零死区,那么模拟量的值为原来的值。
3.4点类
点对象是SCADA数据库中的主要实体,用于表示从RTU采集的信息、由操作员手动维护的非测量信息或者由计算软件包自动生成的信息。
由于点用于各种不同的目的,被分成不同的信息集合。
点的这些差别,通过根据点的值及用法将点定义为具有多种子类的一个点类来维护。
点的子类分成模拟量点、数字量点和电能量点。
3.4.1模拟量点
模拟量点子类描述SCADA数据库模拟量点的所有公共信息。
点的这种类型用于表示诸如电流、电压、功率、变压器档位等。
另外,根据获得点值的方式不同定义模拟量点子类。
模拟量点子类分为:采集模拟量、非采集模拟量和计算模拟量点。
1)非采集模拟量
该模拟量点子类描述了定义SCADA遥测模拟量点必需的所有属性。
非遥测模拟量点不存储来自RTU或其它计算机系统的值,而是存储操作员手动设置的值或者SCADA
应用存放的值。
2)采集模拟量
该模拟量子类定义了SCADA采集模拟量点必需的所有属性。
采集模拟量点存储从RTU采集的值或者来自其它计算机系统的消息。
3)计算模拟量
该模拟量点子类描述了定义SCADA计算模拟量点必需的所有属性。
计算点存储用其它点的值和状态做输入(或操作数)通过数学函数计算得到的值。
3.4.2数字量点
数字量点子类描述SCADA数据库中所有数字量点的公共属性。
这种类型的点用于表示设备的状态。
另外,根据采集点值的方式不同为数字量点定义了子类。
数字点子类有采集数字量点、非采集数字量点和计算数字量点。
1)非采集数字量
该数字量点子类描述了定义SCADA非采集的数字量点需要的所有属性。
非采集数字量点不存储来自RTU或者其它计算机系统的值,只存储由操作员手动设置或者由SCADA应用存放的值。
2)采集数字量
该数字量点子类描述了定义SCADA遥测的数字量点需要的所有属性。
采集数字量点存储从RTU采集的值或者从其它计算机系统接收的消息。
3)计算数字量
该数字量点子类描述了定义SCADA数据库中计算数字量点需要的所有属性。
计算数字量点存储用其它点的值和状态做输入(或操作数)通过数学函数计算得到的值。
3.4.3电能量点
电能量点子类描述SCADA数据库中所有电能量点的公共属性。
这种类型的点用于表示电能量。
另外,根据采集点值的方式不同为电能量点定义了子类。
电能量点子类有采集电能量点和计算电能量点。
1)采集电能量
该电度量点子类描述了定义SCADA采集的电度量点需要的所有属性。
采集电度量点存储从RTU采集的值或者从其它计算机系统接收的消息。
2)计算电能量
该电能量点子类描述了定义SCADA数据库中计算电能量点需要的所有属性。
计算电能量点存储用其它点的值和状态做输入(或操作数)通过数学函数计算得到的值。
3.5其它类
除了上面介绍的各种对象类外,SCADA系统还定义了一些其它的类。
比如,对数字量点状态的描述,对设备挂牌标志的描述等。
4SCADA数据处理子系统
SCADA数据处理子系统包含:数据处理服务器(SCADA_Server)、数据下载和复制服务器(SCADA_Rep)、历史数据保存服务器(SCADA_Save)、追忆处理服务器(SCADA_Pdr)、限值加载服务器(limit)和关系库数据更新服务器(udb)等几个进程。
根据各进程的功能和实现方式的不同,它们被配置到系统中的相应节点上。
DF8003系统的节点可以分为前置通信节点、SCADA应用节点、人机交互节点、系统节点、PAS应用节点和DTS节点等。
下面分别将每个服务器进程的功能和在系统中的配置进行介绍。
4.1数据处理服务器(SCADA_Server)
数据处理服务器是完成SCADA实时数据处理功能的主要进程,它配置在SCADA应用节点上。
4.1.1组成
数据处理服务器进程由多个软件功能模块组成:
1.数据处理模块
2.数据下载和复制模块
3.通知模块
4.统计数据初始化模块
5.报警模块
6.快照服务模块
这些软件模块是由事件驱动(ED)来实现的。
4.1.2功能
下面根据组成SCADA数据处理服务器的功能模块,分别描述其实现的功能。
4.1.2.1数据处理模块
SCADA数据处理是SCADA应用的重要组成部分。
这部分对前置机发送的RTU扫描消息或者其它数据源发送来的数据进行实时处理,对虚拟计算点进行计算,根据处理情况进行报警并将最终结果写入内存数据库中。
对于不同的数据类型,不同的来源,分别由相应的程序进行处理。
来自前置通信服务器的信息主要有RTU上报的遥测数据、遥信数据、电能脉冲计数数据以及SOE等,这是SCADA 应用处理的最基本的信息类型。
1)模拟量点
对于RTU传送来的模拟量点的信息,进行如下的处理:
a. 工程值转换
将RTU采集的生数据值,经过线行变换,转换为实际的工程值。
还可以对模拟量的工程值进行符号取反和取绝对值的操作。
线性变换,采用公式:y=kx+b;
也支持带一个断点的。
b. 越死区处理
模拟量死区,是为了减少频繁的、不必要的数据传送而设置的。
当模拟量点值的改变小于死区值范围时,模拟量点的值应该不变。
c. 零飘处理
零飘处理主要是处理变送器残差。
当模拟量点的工程值在零死区范围内时,将其强制设置为0。
d. 合理性检查
每个模拟量点都可以设置其合理范围。
当模拟量点的工程值在合理范围内时,则认为该值有效;而一旦模拟量的工程值超出合理范围,则被认为该值无效。
不将无效的值放入内存数据库中,而是将该模拟量的质量标志为不合理,并生成一条警告信息。
e. 跳变滤波
跳变滤波是对跳变干扰进行过滤。
跳变率限值就是滤波系数,它是前后两个采样数据变化的比率的限值,为一百分数。
当前后两个采样数据的变化率超过跳变率限值时,只把新来的生数据值进行保存,而不将它转换为工程值,并且产生一个跳变率越限的警告。
f. 模拟量越限检测
可以对模拟量进行上下各三级越限检测。
对于每级限值,可以根据时段类型的不同(峰/谷/平)定义不同的值。
可以设置报警死区,防止模拟量值在限值边缘抖动产生过多的不必要警告信息。
也可以设置报警延时时间,待越限时间达到所设定的延迟时间后,才产生越限告警信息。
对越限次数和时间进行日累计。
g. 匹配检查
当某个开关状态为断开,而且未发生旁路替代的情况下,如果与该开关相应的模拟量的值超过零死区,不为0时,则认为模拟量与开关状态不匹配。
生成一条告警信息。
j. 死数检查
当超过一定时间没有收到某个采集的模拟量点的信息,而该点的值不是人工设置时,该点被认为是死数。
如果该点设置有缺省值,则此时采用缺省值。
2)数字量点
a. 状态取反
对于RTU采集的数字量状态,可以进行取反操作。
b.双位数字量处理
有时为了防止状态抖动,在现场将数字量的两种状态都进行采集。
数据处理程序考虑了这种情况,可以对用两位表示的数字量的状态进行处理。
c.变位处理
当数字量的状态发生改变时,可以产生数字量变位的告警信息。
对变位次数、日变位次数、日开/合时间进行统计。
当变位次数超过一定的次数(由参数“变位次数限”设置)产生告警提示信息。
d.SOE
可以接收RTU上报的SOE,并产生一条告警信息。
e.事故判定
对于开关状态由闭合变成断开的变位操作,可以判定出是一般操作还是事故跳闸。
判断的依据有事故总信号、事故总与保护信号、事故总或者保护信号等。
对事故跳闸次数、日事故跳闸次数进行统计。
当事故跳闸次数超过一定的次数(由
参数“事故次数限”设置)产生告警提示信息。
3)采集的电能量点
采集的类型可以是脉冲计数量或者电能表窗口值。
通过设置参数标度和倍率,可以将采集值转换为电能量。
具有脉冲计数值或者电能表窗口值回零的处理。
对电能量进行日累计、分时段累计。
4)RTU状态
处理前置通信服务器发送的RTU状态,并对RTU的运行、停运时间进行统计。
5)虚拟计算点
虚拟计算点的操作数,可以是采集的模拟量点、数字量点、电能量点、其它计算点的计算结果以及常数等。
计算类型有:
a. 自动计算:当计算的操作数发生变化时,置重计算标志。
等待定时器周期到,重计
算这些点,周期很短,是程序中固定的,一般为100ms。
b. 周期计算:以秒为单位。
每个点可以设置自己的计算周期。
用于一般的公式计算。
c. 按需计算:在需要计算时才进行。
只有两种计算:报警许可和控制许可。
计算方式有:
a. 公式计算
包含操作数的定义、各种常数、各种操作符、各种函数定义。
支持算术运算、关系运算、逻辑运算、位操作。
函数包括数学函数(平方/开方,取模等)、统计函数(最大/最小/平均)、位操作函数(左/右移、循环左/右移、SETBIT)、三角函数(SIN、COS)、时间函数、逻辑函数、许可函数、用户函数。
逻辑函数:CONDIT( expr1, expr2, expr3)。
许可函数:用于报警许可和控制许可计算。
b. 专用计算
变压器档位的计算:分为位方式、BCD码方式和二进制方式。
电能量积分
电能量累加
4.1.2.2数据下载和复制模块
SCADA 应用是整个EMS/DMS 系统的基础,它的地位和重要性要求其具备强大的处理能力和高安全性和可用性。
因此,SCADA应用子系统节点(任务)均采用冗余配置。
对于处于备用状态的SCADA应用数据处理服务器,在启动时,数据下载和复制模块首先要下载当前主服务器上的实时数据,然后,等待接收主服务器发送的变化数据,写入本地内存库中。
对于当前的主服务器,该模块则完成向其它节点发送变化数据的任务。
4.1.2.3通知模块
SCADA数据处理服务器或者SCADA数据复制服务器都包含有此软件模块。
该模块的任务是,当点的实时数据(包括值和质量代码)发生变化时,通知本节点上需要该信息的其它服务。
通知模块还提供了一套接口函数,需要得到通知信息的服务只要调用这些接口函数就可以了。
4.1.2.4统计数据初始化模块
当日累计数据,如实时日最大值、日最小值、日平均值、开关日跳/合闸次数和时间、日越限次数和时间等信息,在每日的存盘时间到来时,由历史数据保存服务器完成向历史数据库中写入。
当历史数据保存过后,要将新的统计数据进行初始化。
在SCADA数据处理服务器中,专门有一个统计数据初始化模块进行这种初始化工作。
该模块提供了一些分布式接口函数,供历史数据保存服务器调用。
4.1.2.5报警模块
SCADA数据处理服务器要求各种处理都具有高效率,以保证SCADA应用的实时性。
在SCADA应用中,有许多的报警和提示信息,几乎每个功能都要产生至少一种报警信息。
而为了对整个系统的报警有统一的管理,DF8003系统专门设计了报警管理模块,并将其放在SCADA数据处理服务器内。
4.1.2.6快照服务模块
随着PAS高级应用模块的实用化,需要越来越多的电网实时运行断面数据。
为此,在SCADA数据处理服务器中,设计了一个快照服务模块,用于保存和加载断面数据。
并为快照管理服务器保存或者加载SCADA断面数据,提供了一套分布式函数。
4.2数据下载和复制服务器(SCADA_Rep)
数据下载和复制服务器,是运行在非SCADA应用节点上的服务器进程。
由于其它节点上有可能需要SCADA 实时数据,而为了快速高效,在本节点上存放SCADA数据库的副本。
数据下载和复制服务器,负责接收SCADA主服务器发送的实时数据变化信息,将新数据写入本地内存库中。
数据下载和复制服务器中也包含有通知模块和快照服务模块。
4.3历史数据保存服务器(SCADA_Save)
SCADA历史数据保存服务器,是运行在SCADA应用节点上的服务器进程。
该服务器的任务就是在适当的时候,把要保存的数据写入历史数据库中,并调用SCADA数据处理服务器提供的分布式函数,对内存库进行初始化。
SCADA历史数据保存服务器与SCADA数据处理服务器是配置在一起的,它的主、备与SCADA数据处理服务器保持一致。
由于历史数据存储处理的数据量大,而且要与关系库
打交道,考虑到SCADA应用实时处理的效率,将它单独编写成一个独立进程。
保存的数据类型主要有:
1.保存整点数据
每个模拟量点或者电能量都可以设置自己的存盘周期,以分钟计。
对于模拟量点,可以保存瞬时值或者间隔内的平均值,最大值、最小值等。
对于电能量点,可以保存
2.保存趋势数据
对于个别的特殊数据,可以按照1秒的间隔进行保存。
3.保存日实时统计信息
包括日实时最大值、最小值、平均值;模拟量日越限次数和时间;电能量日累计和分时段累计;RTU日运行/停运时间;开关日跳/合闸次数和时间;日事故跳闸次数等。
4.4追忆处理服务器
SCADA追忆处理服务器,是运行在SCADA应用节点上的服务器进程。
该服务器专门完成对追忆断面的获取和保存,使调度员可以在特定事件发生后,重新显示事故前后系统运行的情况,为分析事故提供数据支持。
追忆处理服务器是一个远程分布式服务器,提供了一套分布式函数接口。
其它的应用可以通过调用分布式接口函数来启动追忆。
例如,SCADA数据处理服务器在进行事故判别后,如果需要启动追忆,则调用这些接口函数就可以了。
HMI界面可以通过调用接口函数,实现人工启动追忆的目的。
系统存储和记录以下数据:。
触发事故追忆的追忆启动源。
采集数据的多个快照断面。
状态或值发生变化的数据
追忆数据的时间可以根据具体的工程进行定义,最大为事故前后共12小时。
要保存的追忆数据也可以在设置数据库时,进行指定,避免保存对事故分析无意义的数据。
调度员可以在任何一台工作站上进行事故重演。
4.5限值加载服务器(limit)
限值加载服务器是一个可以运行在任何节点上的远程分布式服务器进程。
一般配置在SCADA应用节点上。
在实际应用中,许多用户要求模拟量的限值可以分时段设置。
例如一些母线电压的限值,在峰、谷、平等不同的时段内,值是不同的。
对于在不同时段采用不同限值的模拟量,在参数设置时,要设置一个“限值分时段”标志,并分别设置好各个时段的限值。
在时段类型发生改变的时刻,限值加载服务器将所有设置了该标志的模拟量的当前限值从关系库加载到内存库中。
限值加载服务器的另一个功能是在时段类型发生改变的时刻,将当前新的时段类型加载到SCADA内存库中。
由于有对关系库的操作,为保证SCADA数据处理的实时性,该服务器设计成为一个独立进程。
4.6关系库数据更新服务器(udb)
关系库数据更新服务器是一个可以运行在任何节点上的远程分布式服务器进程。
一般配置在系统节点上。
SCADA应用的有些动态信息必须是可延续的,最简单的例子就是刀闸状态的设置。
在实际应用中,刀闸的状态一般是不采集的,而要靠调度员在接线图上人工设置。
如果不能将调度员设置的状态进行保存,大量的重复工作是用户无法忍受的。
DF8003系统是这样处理此类问题的:SCADA内存库对应着一个磁盘映像文件,内存库与磁盘映像文件是周期进行同步的。
这样,如果系统的数据库不改造或者升级,数据是不会丢失的。
但如果数据库修改或者升级,重新生成的内存库就会丢失原有的信息,给用户造成不便。
关系库数据更新服务器就是解决这一问题的。
它周期性地将一些重要的动态数据写回到关系库中。
这样,在重新生成内存库时,保证动态数据是最近的。
由于有对关系库的操作,为保证SCADA数据处理的实时性,该服务器设计成为一个独立进程。
5控制子系统
控制是EMS系统的一项重要功能。
SCADA应用、PAS高级应用软件模块、AGC应用以及DTS等都涉及到控制。
为此,将控制子系统设计为一个独立的分布式服务器进程。
所有应用的控制都在此服务器进程中实现。
控制服务器可以配置在任何节点上,一般配置在SCADA应用节点上。
控制服务器提供了一套分布式函数接口,每个控制或者调度员的操作命令都是由一个分布式函数实现的。
下面介绍控制服务器实现的SCADA应用中的控制和调度员操作功能。
5.1控制
控制的类型分为:遥控、升降控制、脉冲控制、脉冲序列控制和模拟量控制。
在SCADA 应用中主要是遥控和升降控制两种。
1)遥控:输出是一个状态,用于控制设备状态,如开关的合/分,机组的投/退等。
2)升降控制:输出是一个状态,用于控制变压器的档位。
在实现上,这两种控制是非常相似的。
为了安全、准确地进行控制,控制过程有权限检测、并支持双席监督、RTU返校信息检查等,还可以进行防误操作检查,并且具有防误闭锁和互锁功能。
对于可以进行遥控的数字量点,在参数设置时,需要将“是否可控”标志选择为“是”,设置相应的RTU和控制输出点的点号,并设置“返校时间限”、“发令时间限”、“动作时间限”等几个限值。
对于变压器档位的控制,在参数设置时,需要将“是否可控”标志选择为“是”,选择控制输出点的RTU,分别设置控升、控降和急停操作相应的输出点的点号和控制命令,并设置“返校时间限”、“发令时间限”、“动作时间限”等几个限值。
5.2调度员操作
除了控制外,SCADA应用还有许多调度员操作,这些操作也是由控制服务器提供的分布式函数实现的。
目前提供的调度员操作包括:
1)人工置数
可以设置模拟量点的值、数字量点的状态等。
2)挂牌操作
可以给设备进行挂牌。
3)禁止/解禁点的报警
可以禁止/解禁单点的报警,也可以按厂站或者间隔对点的报警进行禁止/解禁。
4)禁止/解禁点的刷新
可以禁止/解禁单点的刷新,也可以按厂站或者间隔对点的刷新进行禁止/解禁。
5)旁路替代
可以人工操作实现替代。
6)调度员注释
调度员可以为设备增加注释信息,也可以对注释进行修改和删除。
6SCADA命令语言
不论我们现在的应用程序功能如何全面,也无法包容用户未来所有的需求。
随着用户需求的扩展,用户需要在原有的系统上增加新的功能,而不影响原有系统的运行。
因此,我们提供面向用户的高级计算处理环境——SCADA命令语言。
不用考虑运行环境、应用程序之间的关系,只需增加新功能。
SCADA命令语言包含如下主要功能:。
支持各种运算
算术运算:如+、-、*、/等。
关系运算:如>、<、==等。
逻辑运算:如AND、OR、NOT等。
位操作运算:如&、|等。
支持各种函数
数学函数:如求幂、开方、取模等。
统计函数:如最大值、最小值、平均值等。
位操作函数:如左/右移、循环左/右移、SETBIT等。
三角函数:如SIN、COS等。
时间函数
逻辑函数
许可函数。
支持各种语句
如赋值语句、返回语句等。
支持各种命令
如遥控命令、人工置数命令等。