一种基于对象的定值区顺序切换程控方法
【技术领域】
[0001]本发明涉及SCADA分布式平台自动化工业控制行业,尤其涉及一种基于对象的定值区顺序切换程控方法。
【背景技术】
[0002]在电力综合监控系统中,使用了众多的保护、测控等装置,保护装置的数据一般通过104规约上传至后台监控系统,后台监控系统也可以通过104规约对保护装置发送控制命令。一般而言,后台监控系统有单独对每个保护装置进行定值区切换、召唤的功能,但很少有能够顺序批量切换多个装置定值区的功能,而在实际工程应用中,这种简单的单装置控制方式已远远不能满足实际需要,越来越多的应用需要将多个装置连在一起进行顺序控制(或者更为复杂的带逻辑的控制)。如何使用户能够根据需求在SCADA系统中方便灵活的配置多装置定值区顺序切换的任务,并以此为基础实现定值区顺序切换控制的完整功能,是现阶段所需解决的问题。
【发明内容】
[0003]针对现有技术中存在的问题,本申请提出一种基于对象的定值区顺序切换程控方法,在工程中的实际使用将极大地提高操作的效率和有效性。本申请的SCADA监控系统平台数据组织的基本单元是对象,系统中所有的数据以及数据之间的关系均以对象或对象属性的形式分布于各种对象类型的实例中,每个对象实例都由一个唯一的ObjectId进行编号。平台系统辅以图形化工具,将数据以符合实际拓扑结构的形式展示给用户,此种方式大大提高了大型SCADA系统的数据管理能力。
[0004]SCADA(Supervisory Control And Data Acquisit1n)系统即数据米集与监视控制系统。可广泛应用于电力系统、水利监控系统、石油、化工、轨道交通等行业的数据采集与监视控制以及过程控制等诸多领域。SCADA系统是以计算机为基础的生产过程控制与调度自动化系统。它可以对各类运行环境、多种运行设备进行监视和控制,以实现数据采集、设备控制、测量、参数调节、各类信号报警、历史数据存储等各项功能。
[0005]为解决上述技术问题,本发明的具体技术方案如下:
[0006]—种基于对象的定值区顺序切换程控方法,定值区顺序切换程控服务运行于系统后台,读取程控卡片配置内容,依据配置顺序切换装置定值区,将执行过程中产生的信息写到相应对象的相应属性中,定值区顺序切换程序监听各个卡片配置文件中触发该卡片执行的遥信信息保存对象的点属性,当该属性值由O变成I时,开始执行该卡片的内容;其特征在于:
[0007]S1:检查遥信信息保存对象的点属性,若值为I表明被锁住,20秒内循环检测若仍被锁住则视为失败,停止该站内的后续操作;若为O表明未被锁住,则将其锁住,即写遥信信息保存对象的点属性值为I,并同时写AlarmModeReason属性为“顺序写定值区操作中”;
[0008]S2:将所有装置定值区保存对象的数据值属性初始化为-1 ;
[0009]S3:将设备编号‘I’写在定值区操作对象的地址属性,定值组号‘2’写在定值区操作对象的当前操作的保护装置即将写入的定值区属性;触发选择定值区象的选择定值区命令,等待监听Status属性的结果;
[0010]S4:Status属性值若为Normal (O),则继续;超时或者为非Normal (O)则认为失败,写数据量信息保存对象的数据值属性为-1,停止该站内的后续操作;
[0011]S5:检查对象遥信信息保存对象的点属性,若值为I表明被锁住,20秒内循环检测若仍被锁住则视为失败,写数据量信息保存对象的数据值属性为-1,停止该站内的后续操作;若为O表明未被锁住,则将其锁住,即写对象遥信信息保存对象的点属性值为I ;
[0012]S6:执行定值区写入命令,等待监听Status属性的结果;
[0013]S7:Status属性值若为Normal (O),则继续;超时或者为非Normal (O)则认为失败,写数据量信息保存对象的数据值属性为-1,停止该站内的后续操作;
[0014]S8:检查遥信信息保存对象的点属性,若值为I表明被锁住,20秒内循环检测若仍被锁住则视为失败,写数据量信息保存对象的数据值属性为-1,停止该站内的后续操作;若为O表明未被锁住,则将其锁住,即写对象遥信信息保存对象的点属性值为I ;
[0015]S9:定值区操作对象执行定值区读出命令,等待监听Status属性的结果;
[0016]SlO:Status属性值若为Normal (0),则继续;超时或者为非Normal (0)则认为失败,写数据量信息保存对象的数据值属性为-1,停止该站内的后续操作;
[0017]Sll:读取定值区操作对象的当前操作的保护装置即将写入的定值区属性,将该属性的值写在数据量信息保存对象的数据值属性;完成该装置的定值区写入操作,继续循环进行下一个装置的操作;
[0018]S12:当站内顺序完成所有装置的定值区切换后写该站的StateStorage Locker的AlarmModeReason属性值为“顺序写定值区成功”;并写触发该卡片执行的遥信信息保存对象的AlarmModeReason为“全部执行完成”;
[0019]S13:若上述操作中存在操作失败,则写对象StateStorage Locker的AlarmModeReason属性值为“顺序写定值区失败”,并退出当前站的处理线程。
[0020]本发明有益效果:作为对传统单装置单一定值区切换操作的重大改进,本发明首次在电力监控平台中引入了多装置定值区批量顺序切换的方法。一条线上的多个站内的保护装置之间并不相互影响,各个站内定值区切换处理任务使用多线程同时进行,实现了全线站内装置定值区的批量切换,可以极大地提高操作时间。该方法基于对象建模,合理地设计了数据结构及其组织方式,其简便直观的配置方式大大降低了配置工作,也降低了用户使用该程控功能的门槛,提高了用户的工作效率,同时也节省了维护成本。平台系统辅以图形化工具,将数据以符合实际拓扑结构的形式展示给用户,此种方式大大提高了大型SCADA系统的数据管理能力。
【附图说明】
[0021]图1为本申请实施例UNIC0N1.0监控平台数据导航器界面图。
[0022]图2为本申请实施例类型间层次关系设计图。
[0023]图3为本申请实施例UNIC0N1.0监控平台中的配置。
[0024]图4为程控卡片内容示例。
[0025]图5为定值区顺序切换程控服务执行流程图。
【具体实施方式】
[0026]以下结合附图对本发明作进一步详细说明。
[0027](一 )基于对象的程控数据定义及结构设计。
[0028]设计良好的数据组织方式可以为定值区顺序切换程控功能模块提供更好的支持,而且数据组织作为程控功能的基本接口,其逻辑的设计合理性也增强了程控功能的可扩展性。基于对象的定值区顺序切换程控功能数据组织设计包括对象类型设计(仅给出与本申请相关的属性定义,格式为:对象_>属性)和类型间层次关系设计。
[0029]图1为本申请实施例UNIC0N1.0监控平台数据导航器界面图,对象类型设计如下:
[0030]l)IEC870Device对象:站对象,包含该站内的各种数据点对象,如遥控、遥测、遥调、遥脉等数据点。IEC870Device_>Name:站名称;IEC870Device_>Address:站地址。
[0031]2)Protect1nValueCommand对象:定值区操作对象,用于保存定值区信息,以及下发选择、执行、读取定值区的控制命令。104规约通过注册该对象属性的事件,从而操控指定编号的保护装置。
[0032]Protect1nValueCommand->Name:点名称;
[0033]Protect1nValueCommand->Address:当前操作的保护装置地址;
[0034]Protect1nValueCommand->Descript1n:当前操作的保护装置即将写入的定值区;
[0035]Protect1nValueCommand->Command:选择定值区命令;
[0036]Protect1nValueCommand->ExecuteTrigger:执行定值区写入命令;
[0037]Protect1nValueCommand->ReadTrigger:执行定值区读出命令;
[0038]Protect1nValueCommand->Status:执行定值区命令后的状态(值为 Normal (O)表示执行成功,否则为失败)。
[0039]3) StateStorage对象:遥?目?目息保存对象,用于保存遥?目?目息,例如是否锁定,是否触发操作等等;StateStorage_>Name:点名称;StateStorage_>State:点状态(也可以通过画面改变该状态,从而实现触发某种功能)。
[0040]4) ValueStorage对象:数据量信息保存对象,用于保存数据信息,例如保存读取到的定值区;ValueStorage->Name:点名称;ValueStorage->Value:数据值;ValueStorage->AlarmModeReason:保存辅助信息。
[0041]以一个站为例,类型间层次关系设计如下图2所示(各个站内的设计相同),其在UNIC0N1.0中的配置如图3所示。
[0042]每个站建立一个IEC870Device对象;在IEC870Device对象下新建一个Protect1nValueCommand对象PAC,用于执行定值操作任务;IEC870Device对象下再新建一个StateStorage对象PAC_Locker (该对象全局共享,其它进程也可以读写其State属性),用于表示当前是否存在其它的进程在进行定值操作;根据该站内保护装置的个数建立对应个数的ValueStorage对象PAC_ValueKeeper,用于保存对应装置中前一次的定值区号。
[0043]根据所配置的程控卡片数量配置对应数量的StateStorage对象PAC_Card_Trigger,对象State属性变化后触发执行对应的程控卡片。
[0044]( 二 )程控卡片配置文件设计。
[0045]—般而言,每个保护装置至少有两组定值区,每个定值区的参数在不同情况下的值也不一样,为了方便同时进行批量的定值切换,而且各站内各装置的定值区也不尽相同,所以需要设计配置文件来保存每个装置即将切换到的定值区,配置卡片格式如下。
[0046]第一行包括本卡片将要操作的站的总数,即IEC870DeviCe总数,以及触发该卡片的 StateStorage 的 Objectld,格式为:
[0047]IEC870Device 总数,StateStorageObId for Trigger0
[0048]如下例所示:
[0049]3,63438848。
[0050]从第二行开始为各个站内设备的具体信息配置,格式为:
[0051]IEC870Device Common Address, Protect1nValueCommandObld, StateStorageObId for Locker,保护装置总数量N,设备编号;定值组号:ValueStorageObld。
[0052]如下例