1.本发明涉及电力二次系统信息通信技术领域,特别是一种跨安全区闭环控制方法及系统。
背景技术:2.随着经济社会高速发展,能源和环境问题日益凸显,成为制约经济社会发展的重要因素。借助能源生产、消费技术及计算机和网络通信技术的快速发展,为能源高效生产和利用提供了可能。为提升企业能效、优化用能结构,各企业单位建设了种类繁多、功能各异的客户侧用能控制系统(简称为cps);国家电网公司为推进用能设备泛在接入、实时感知,提高电网设备利用率和全社会用能效率,开展了省级智慧能源服务平台建设。为满足安全防护要求,省级智慧能源服务平台部署于电力公司信息内网环境,而cps主站大多部署于互联网环境,要实现省级智慧能源平台主站对cps用能设备的闭环控制,目前还难以满足安全防护要求。
技术实现要素:3.本发明的目的是提供一种跨安全区闭环控制系统及方法,能够在满足安全防护要求的前提下,实现部署于电力信息内网的scada(supervisory control and data acquisition,数据采集与监视)系统对互联网环境中用能设备的闭环控制。本发明采用的技术方案如下。
4.一方面,本发明提供一种跨安全区闭环控制系统,包括:部署于电力信息内网的scada系统、指令接收子系统和中间数据库,部署于互联网大区的指令转发子系统,以及部署于互联网公网环境中的客户侧用能控制系统cps;所述指令转发子系统分别通过网络隔离装置访问所述中间数据库和通过防火墙与各cps通信连接;所述指令接收子系统用于接收所述scada系统下发的控制指令数据,并对所述控制指令数据进行处理,且将处理后的控制指令数据写入至所述中间数据库,以及,用于从所述中间数据库读取cps响应数据并转发至所述scada系统;所述指令转发子系统用于从所述中间数据库读取所述处理后的控制指令数据,根据所述处理后的控制指令数据访问对应的cps设备控制接口,向相应的cps发送设备控制请求,以及接收cps反馈的所述cps响应数据,并对所述cps响应数据进行处理,且将处理后的cps响应数据通过网络隔离装置写入中间数据库;所述cps用于根据接收到的所述设备控制请求执行客户侧用能控制,以及输出所述cps响应数据,并将所述cps响应数据发送至所述指令转发子系统。
5.可选的,所述指令转发子系统被配置为利用sql语言通过所述网络隔离装置访问所述中间数据库;不允许http(或https)请求及消息队列通过;所述指令转发子系统对所述cps响应数据进行处理包括:所述指令转发子系统将所述cps响应数据转换为指定格式的sql语句,然后再通过网络隔离装置写入中间数据库。
进一步实现安全防护。
6.可选的,所述指令接收子系统对所述cps控制指令数据进行处理包括:所述指令接收子系统按照预设的核验规则对所述控制指令数据进行核验,将核验通过的数据转换为指定格式的sql语句;和/或,所述scada系统通过消息总线向所述指令接收子系统发送cps控制指令数据;对于核验不通过的数据,所述指令接收子系统通过消息总线向所述scada系统反馈核验失败信息。
7.以上实施方式,scada系统通过指令转发子系统可直接访问中间数据库,通过数据核验机制可保障控制指令数据的可靠安全性。
8.可选的,所述指令接收子系统还用于:以设定的频率清理已发送至所述scada系统的历史cps响应数据,以及将相应的历史cps响应数据写入至中间数据库。写入中间数据库的历史数据可用于后期追溯。
9.以上实施方式中,写入中间数据库的历史数据可用于后期追溯。
10.可选的,所述指令接收子系统还用于:在向所述中间数据库写入所述处理后的控制指令数据时,写入对应各控制指令数据的数据状态标志和尝试次数信息;所述指令转发子系统从所述中间数据库读取所述处理后的控制指令数据,根据cps控制指令数据访问对应的cps设备控制接口,向相应的cps发送设备控制请求,包括:轮询所述中间数据库,根据数据状态标志读取待下发的控制指令数据,写入预设的第二缓存库的待下发控制指令数据集中;轮询所述待下发控制指令数据集,取出待下发控制指令数据,根据尝试次数信息判断该数据对应的尝试次数是否小于预设的最大尝试次数:若不满足,则将取出的待下发控制指令数据写入第二缓存库的历史控制指令数据集;若满足,则从待下发控制指令数据中获取该数据对应的指令下发接口地址,通过http或https方式访问相应的指令下发接口地址,向相应的cps发送cps控制请求;在发送cps控制请求后,接收相应cps反馈的cps响应数据,根据cps响应数据判断是否请求成功,若成功则将相应的控制指令数据写入第二缓存库的历史控制指令数据集,否则记录相应控制指令数据的尝试次数加1,并将其写入所述待下发控制指令数据集中。
11.通过以上数据处理方式,可使得各控制指令仅能在允许的尝试次数内实现面向cps设备的控制请求,避免指令本身缺陷或cps设备故障情况下对相应控制指令的多次重复处理。
12.第二方面,本发明提供一种跨安全区闭环控制方法,方法适用的跨安全区闭环控制系统包括:部署于电力信息内网的scada系统、指令接收子系统和中间数据库,部署于互联网大区的指令转发子系统,以及部署于互联网公网环境中的客户侧用能控制系统cps;所述指令转发子系统分别通过网络隔离装置访问所述中间数据库和通过防火墙与各cps通信连接;方法可由上述指令接收子系统执行,包括:接收所述scada系统下发的所述控制指令数据;对所述控制指令数据进行处理,将处理后的控制指令数据写入所述中间数据库;
以及,以设定的频率读取所述中间数据库中的cps响应数据,并将cps响应数据转发至所述scada系统;其中,所述中间数据库被写入的所述处理后的控制指令数据用于:由所述指令转发子系统读取,并根据控制指令数据向相应的cps发送设备控制请求,使得cps能够根据设备控制请求执行客户侧用能控制,并向指令转发子系统反馈cps响应数据;再由所述指令转发子系统对所述cps响应数据进行处理以及将处理后的cps响应数据写入所述中间数据库。
13.可选的,所述对所述控制指令数据进行处理包括:按照预设的核验规则对所述控制指令数据进行核验,将核验成功的所述控制指令数据转换为设定的格式;其中,所述设定的格式包括sql格式。
14.可选的,所述以设定的频率读取所述中间数据库中的cps响应数据,转发至scada系统,包括:轮询所述中间数据库得到cps响应数据;将得到的cps响应数据写入预设的第一缓存库的响应数据集;轮询所述第一缓存库的响应数据集,将其中的cps响应数据发送至所述scada系统;将已发送至所述scada系统的cps响应数据写入所述第一缓存库中预设的历史数据集。
15.以上技术方案中,通过在中间数据库中预设多个不同的数据集,可实现不同阶段数据的分类存储,以及分被与指令转发子系统和指令接收子系统之间的数据交互。
16.可选的,所述以设定的频率读取所述中间数据库中的cps响应数据,转发至所述scada系统,还包括:在所述第一缓存库的响应数据集中的cps响应数据发送至scada系统后,删除中间数据库中相应的cps响应数据;以及,以设定的频率将所述第一缓存库的历史数据集数据进行清理,转存至中间数据库。
17.将历史数据清理后再转存至中间数据库可方便后续追溯。
18.第三方面,本发明提供一种跨安全区闭环控制方法,方法适用的跨安全区闭环控制系统包括:部署于电力信息内网的scada系统、指令接收子系统和中间数据库,部署于互联网大区的指令转发子系统,以及部署于互联网公网环境中的客户侧用能控制系统cps;所述指令转发子系统分别通过网络隔离装置访问所述中间数据库和通过防火墙与各cps通信连接;方法可由上述的指令转发系统执行,其包括:从所述中间数据库读取控制指令数据,根据所述控制指令数据访问对应的cps设备控制接口,向相应的cps发送设备控制请求;以及,接收cps反馈的cps响应数据,对所述cps响应数据进行处理,并将处理后的cps响应数据通过所述网络隔离装置写入所述中间数据库;其中,所述中间数据库被写入的cps响应数据用于,由指令接收系统读取后转发至scada系统;所述中间数据库中的控制指令数据由指令接收系统自scada系统接收并进行处理后写入中间数据库。
19.可选的,所述指令接收子系统向所述中间数据库写入处理后的控制指令数据时,还写入对应各控制指令数据的数据状态标志和尝试次数信息;所述从所述中间数据库读取控制指令数据,根据控制指令数据访问对应的cps设备控制接口,向相应的cps发送设备控制请求,包括:轮询所述中间数据库,根据数据状态标志读取待下发控制指令数据,写入预设的第二缓存库的待下发控制指令数据集中;轮询所述待下发控制指令数据集,取出待下发控制指令数据,根据尝试次数信息判断该数据对应的尝试次数是否小于预设的最大尝试次数:若不满足,则将取出的cps控制指令数据写入所述第二缓存库中预设的历史控制指令数据集;若满足,则从cps控制指令数据中获取该数据对应的指令下发接口地址,通过http或https方式访问相应的指令下发接口地址,向相应的cps发送cps控制请求;在发送cps控制请求后,接收cps反馈的cps响应数据,根据cps响应数据判断是否请求成功,若成功则将相应的cps控制指令数据写入所述第二缓存库的历史控制指令数据集,否则记录相应控制指令数据的尝试次数加1,并将其写入所述待下发控制指令数据集中。
20.以上技术方案中,数据状态标志可用于区分数据的类型,如在中间数据库中是否为历史数据还是新写入的数据,又如在指令转发子系统的第二缓存库中,是否为已向cps请求成功的控制指令数据。尝试次数标识可实现特殊情形下请求不成功时的控制指令重发,尝试次数信息对应的最大尝试次数可根据实际需要设置,当尝试超过一定次数则考虑发生了非重复发送可解决的故障,放弃相应cps控制指令的重发,scada可通过cps响应数据获知相应情形。
21.可选的,所述指令接收子系统向所述中间数据库写入的对应各控制指令数据的数据状态标识为“插入”,尝试次数为“1”;所述跨安全区闭环控制方法中,在接收到cps响应数据后,若根据cps响应数据判断为请求成功,则将相应控制指令数据的数据状态表示为“请求成功”,否则将相应cps控制指令数据的数据状态表示为“请求失败”。
22.可选的,所述从所述中间数据库读取控制指令数据,根据控制指令数据访问对应的cps设备控制接口,向相应的cps发送设备控制请求,包括:在从所述中间数据库读取到控制指令数据后,删除所述中间数据库中相应的控制指令数据;以及,以设定的频率将所述第二缓存库的历史控制指令数据集进行清理,转存至所述中间数据库。
23.第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如第二方面所述的跨安全区闭环控制方法。
24.第五方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如第三方面所述的跨安全区闭环控制方法。
25.有益效果本发明通过指令接收子系统、指令转发子系统与网络隔离装置和防火墙的系统架构及工作过程的配合设计,使得scada系统通过指令转发子系统可直接访问中间数据库,发
送控制指令以及读取cps响应数据。客户侧用能控制系统cps客户侧用能控制系统cps则可通过网络隔离装置访问中间数据库,以读取用于cps设备控制的控制指令以及将执行用能侧设备控制所得的cps响应数据写入中间数据库,即可使部署在电力信息内网的scada主站穿透内网完成互联网环境中用能设备的闭环控制,在满足电力系统安全防护要求前提下,降低不同网络环境下用能设备闭环控制的难度和成本。
附图说明
26.图1所示为本发明跨安全区闭环控制系统的一种实施例架构示意图;图2所示为本发明跨安全区闭环控制系统在一种实施例中指令接收子系统的实现流程示意图;图3所示为本发明跨安全区闭环控制系统在一种实施例中指令接收子系统执行cps响应数据转发的流程示意图;图4所示为本发明跨安全区闭环控制系统在一种实施例中指令转发子系统的实现流程示意图;图5所示为本发明跨安全区闭环控制系统在一种实施例中指令转发子系统的cps控制指令数据处理流程示意图。
具体实施方式
27.以下结合附图和具体实施例进一步描述。
28.实施例1本实施例介绍一种跨安全区闭环控制系统,参考图1所示,系统包括:部署于电力信息内网的scada系统、指令接收子系统和中间数据库,部署于互联网大区的指令转发子系统,以及部署于互联网公网环境中的多个客户侧用能控制系统cps;指令转发子系统通过网络隔离装置访问所述中间数据库,通过防火墙与各cps通信连接;在电力信息内网中,scada系统通过消息总线向指令接收子系统发送控制指令数据的消息队列,该控制指令数据可为cps控制指令数据,或者包括cps控制指令数据;参考图2所示,指令接收子系统接收cps控制指令数据后,对cps控制指令数据进行处理,按照预设的核验规则对cps控制指令数据进行核验,将核验通过的数据转换为指定格式的sql语句,然后写入至中间数据库。对于核验不通过的数据,通过消息总线反馈至scada系统。
29.至此,scada系统通过指令转发子系统可直接访问中间数据库,数据核验机制保障了控制指令数据的可靠安全性。
30.在互联网大区中,参考图4所示,指令转发子系统经网络隔离装置从中间数据库读取sql格式的cps控制指令数据,根据cps控制指令数据访问对应的cps设备控制接口,向相应的cps发送设备控制请求。指令转发子系统可以以一定的频率访问cps主站提供的设备控制接口,实现指令转发子系统与cps主站的交互,从而实现通过代理的方式完成信息内网。同时,指令转发子系统仅被允许通过网络隔离装置以sql形式访问所述中间数据库;不允许http(或https)请求及消息队列通过,由此进一步保障电力信息内网的安全性。
31.cps根据接收到的设备控制请求执行客户侧用能控制,并向指令转发子系统返回cps响应数据,如是否正常执行响应的控制指令及响应的执行结果数据等。指令转发子系统
接收cps响应数据后,将cps响应数据转换为指定格式的sql语句,然后再通过网络隔离装置写入中间数据库。
32.此处结合图2,指令接收子系统以设定的频率读取中间数据库中的cps响应数据,转发至scada系统,指令接收子系统包括第一缓存库,具体实现过程可参考图3所示,包括:轮询中间数据库得到cps响应数据;将得到的cps响应数据写入第一缓存库的响应数据集,可用键名cps-up-response存储;轮询第一缓存库的响应数据集,即键名cps-up-response下的数据,将其中的cps响应数据发送至scada系统;将已发送至scada系统的cps响应数据写入第一缓存库的历史数据集,可用键名cps-up-response-his存储。
33.指令接收子系统在将第一缓存库响应数据集中的cps响应数据,即键名cps-up-response-his下的数据,发送至scada系统后,删除中间数据库中相应的cps响应数据。
34.为便于后期对cps相关数据的追溯,本实施例中,如图2所示,指令接收子系统以设定的频率清理历史cps响应数据;指令接收子系统以设定的频率清理历史cps响应数据前,还可以将待清理的历史cps响应数据写入至中间数据库;指令转发子系统以设定的频率清理历史cps控制指令数据;指令转发子系统以设定的频率清理历史cps控制指令数据前,还可将待清理的历史cps控制指令数据写入至中间数据库。数据在中间数据库中以及其它位置中的类型可通过数据状态标识进行区分。
35.如参考图5所示,指令接收子系统写入中间数据库的cps控制指令数据包括数据状态标志和尝试次数信息,中间数据库中待下发的cps控制指令数据的尝试次数初始可设置为1,其状态可标识为“插入”状态。
36.指令转发子系统从中间数据库读取cps控制指令数据,根据cps控制指令数据访问对应的cps设备控制接口,向相应的cps发送设备控制请求,指令转发子系统包括第二缓存库,具体包括:轮询中间数据库,根据数据状态标志读取待下发的cps控制指令数据,写入第二缓存库的待下发控制指令数据集中,可用键名cps-down-request存储;轮询第二缓存库的待下发控制指令数据集,即键名cps-down-request下的数据,取出待下发cps控制指令数据,判断该数据对应的尝试次数是否小于最大尝试次数:若不满足,则将取出的cps控制指令数据写入第二缓存库的历史控制指令数据集,可用键名cps-down-request-his存储;若满足,则从cps控制指令数据中获取该数据对应的指令下发接口地址,通过http或https方式访问相应的指令下发接口地址,向相应的cps发送cps控制请求;在发送cps控制请求后,接收cps反馈的cps响应数据,根据cps响应数据判断是否请求成功,若成功则将相应的cps控制指令数据写入第二缓存库的历史控制指令数据集,即键名cps-down-request-his下,否则记录相应cps控制指令数据的尝试次数加1,并将其写入第二缓存库的待下发控制指令数据集中,即键名cps-down-request下。
37.以上,指令转发子系统轮询中间库的频率、最大尝试次数、轮询缓存库频率,以及指令接收子系统轮询中间库的频率、轮询缓存库频率等可按实际需要进行配置,以满足不
同数据接入场景需求。
38.实施例2与实施例1基于相同的发明构思,本实施例介绍实施例1跨安全区闭环控制系统中由指令接收子系统执行的跨安全区闭环控制方法,结合图2和图3,本实施例方法包括:指令接收子系统接收scada系统下发的cps控制指令数据;按照预设核验规则对cps控制指令数据进行核验,将核验成功的数据转换为设定的格式,写入中间数据库;以及,以设定的频率读取中间数据库中的cps响应数据,并将cps响应数据转发至scada系统;其中,中间数据库被写入的cps控制指令数据用于,由指令转发子系统读取,并根据cps控制指令数据向相应的cps发送设备控制请求,使得cps能够根据设备控制请求执行客户侧用能控制,并向指令转发子系统反馈cps响应数据;所述中间数据库中的cps响应数据由指令转发子系统写入。
39.本实施例中,指令接收子系统通过消息总线接收cps控制指令数据,在进行核验后,若核验失败,则向scada反馈核验失败信息,对于核验成功的数据,指令接收子系统将数据转换为sql格式,写入中间数据库。
40.参考图3,指令接收子系统对中间数据库中cps响应数据的访问过程包括:以设定的频率轮询中间数据库得到cps响应数据,将得到的cps响应数据写入第一缓存库的响应数据集,用键名cps-up-response存储;轮询第一缓存库的键名cps-up-response下的数据,将其中的cps响应数据发送至scada系统,同时删除中间数据库中相应的cps响应数据;将已发送至scada系统的cps响应数据写入第一缓存库的历史数据集,用键名cps-up-response-his存储;以设定的频率将第一缓存库中键名cps-up-response-his下的数据进行清理,转存至中间数据库。
41.至此,能够实现scada系统通过指令转发子系统直接访问中间数据库,向cps发送指令或获取cps响应数据,保证安全防护的前提下能够实现闭环控制中指令的可靠发送和反馈信号的可靠获取。
42.实施例3与实施例1基于相同的发明构思,本实施例介绍实施例1跨安全区闭环控制系统中由指令转发子系统执行的跨安全区闭环控制方法,结合图4和图5,本实施例方法包括:指令转发子系统从中间数据库读取cps控制指令数据,根据cps控制指令数据访问对应的cps设备控制接口,向相应的cps发送设备控制请求;以及,接收cps反馈的cps响应数据,进行处理后通过网络隔离装置写入中间数据库;其中,中间数据库被写入的cps响应数据用于,由指令接收系统读取后转发至scada系统;所述中间数据库中的cps控制指令数据由指令接收系统自scada系统接收并进行处理后写入中间数据库。
43.为了更好的区分数据类型,本实施例在不同阶段对数据状态进行标识,如,指令接
收子系统写入中间数据库的cps控制指令数据包括数据状态标志和尝试次数信息,此时数据状态标识可为“插入”,尝试此处可为“1”。
44.如图5所示,指令转发子系统从中间数据库读取cps控制指令数据,根据cps控制指令数据访问对应的cps设备控制接口,向相应的cps发送设备控制请求,包括:轮询中间数据库,根据数据状态标志读取待下发的cps控制指令数据,写入第二缓存库的待下发控制指令数据集中,可用键名cps-down-request存储;轮询第二缓存库的待下发控制指令数据集,即键名cps-down-request下的数据,取出待下发cps控制指令数据,判断该数据对应的尝试次数是否小于最大尝试次数:若不满足,则将取出的cps控制指令数据写入第二缓存库的历史控制指令数据集,可用键名cps-down-request-his存储;若满足,则从cps控制指令数据中获取该数据对应的指令下发接口地址,通过http或https方式访问相应的指令下发接口地址,向相应的cps发送cps控制请求;在发送cps控制请求后,接收cps反馈的cps响应数据,根据cps响应数据判断是否请求成功,若成功则将相应的cps控制指令数据写入第二缓存库的历史控制指令数据集,即键名cps-down-request-his下,否则记录相应cps控制指令数据的尝试次数加1,并将其写入第二缓存库的待下发控制指令数据集中,即写入键名cps-down-request下;指令转发子系统在接收到cps响应数据后,若根据cps响应数据判断为请求成功,则将相应cps控制指令数据的数据状态表示为“请求成功”,否则将相应cps控制指令数据的数据状态表示为“请求失败”。
45.指令转发子系统可以设定的频率将第二缓存库的历史控制指令数据集,即键名cps-down-request下的数据进行清理,转存至中间数据库。
46.实施例4本实施例介绍一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如实施例2所介绍的跨安全区闭环控制方法。
47.实施例5本实施例介绍一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如实施例3所介绍的跨安全区闭环控制方法。
48.综上实施例,本发明可以使部署在电力信息内网的scada主站穿透内网完成互联网环境中用能设备的闭环控制,在满足电力系统安全防护要求前提下,降低不同网络环境下用能设备闭环控制的难度和成本。
49.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
50.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
51.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
52.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
53.以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。