一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

遥控遥调方法、装置及系统与流程

2021-10-29 22:57:00 来源:中国专利 TAG:电力系统 遥控 装置 控制 方法


1.本发明涉及电力系统控制技术领域,尤其涉及一种遥控遥调方法、装置及系统。


背景技术:

2.iec104规约由国际电工委员会制定,为远动信息的网络传输提供通信规约依据,在电力系统实时数据采集控制系统中应用非常广泛。iec104规约规定了四遥信息的报文传输规则,四遥包括遥信、遥测、遥控、遥调。其中,遥测和遥信由远动侧对设备层进行数据采集后,统一上传至主站侧;遥控和遥调由主站侧下发至远动侧,再由远动侧下发给设备层执行。四遥上传下发功能通常由实时数据采集控制系统的前置模块实现。
3.随着电力系统的发展,出现了通过多种渠道远程下发遥控遥调命令的需求。现有的前置模块通常使用c 语言编写,提供c 接口供应用使用,如果希望使用其他编程语言下发控制命令,那么针对每种编程语言都需要额外的开发工作,不能灵活的满足多语言在不同场景远程下发控制命令的需求。


技术实现要素:

4.针对现有技术存在的问题,本发明提供一种遥控遥调方法、装置及系统。
5.第一方面,本发明提供一种遥控遥调方法,应用于实时数据采集控制系统中的redis,所述redis分别与所述实时数据采集控制系统中的外部应用和前置模块建立通信连接,所述方法包括:
6.接收所述前置模块订阅的控制命令主题;
7.确定所述外部应用发布所述控制命令主题后,通知所述前置模块有所述控制命令主题发布,以使得所述前置模块从所述redis中获取所述控制命令主题附带的控制参数,并基于所述控制参数,发送控制命令至远动侧以控制目标控制点;
8.接收并存储所述前置模块发送的key

value键值对;其中,所述key用于标识所述目标控制点在所述redis中的唯一索引,所述value的值用于标识所述控制命令的执行状态。
9.可选地,所述控制参数包括用于遥控选择或遥调选择的第一控制参数,所述控制命令包括用于遥控选择或遥调选择的第一控制命令;
10.所述接收并存储所述前置模块发送的key

value键值对,包括:
11.接收并存储所述前置模块在获取所述第一控制参数后发送的第一key

value键值对,所述第一key

value键值对中的第一value值用于标识控制命令的执行状态为选择中;
12.接收并存储所述前置模块在收到所述远动侧回复的选择成功的消息后发送的第二key

value键值对,所述第二key

value键值对中的第二value值用于标识控制命令的执行状态为选择成功。
13.可选地,所述控制参数还包括用于遥控执行或遥调执行的第二控制参数,所述控制命令还包括用于遥控执行或遥调执行的第二控制命令;
14.所述接收并存储所述前置模块发送的key

value键值对,还包括:
15.接收并存储所述前置模块在获取所述第二控制参数后发送的第三key

value键值对,所述第三key

value键值对中的第三value值用于标识控制命令的执行状态为执行中;
16.接收并存储所述前置模块在收到所述远动侧回复的执行成功的消息后发送的第四key

value键值对,所述第四key

value键值对中的第四value值用于标识控制命令的执行状态为执行成功。
17.可选地,所述控制参数包括用于遥控选择或遥调选择的第一控制参数,所述控制命令包括用于遥控选择或遥调选择的第一控制命令;
18.所述接收并存储所述前置模块发送的key

value键值对,包括:
19.接收并存储所述前置模块在获取所述第一控制参数后发送的第一key

value键值对,所述第一key

value键值对中的第一value值用于标识控制命令的执行状态为选择中;
20.接收并存储所述前置模块在收到所述远动侧回复的选择失败的消息后发送的第五key

value键值对,所述第五key

value键值对中的第五value值用于标识控制命令的执行状态为选择失败。
21.第二方面,本发明还提供一种遥控遥调方法,应用于实时数据采集控制系统中的前置模块,所述前置模块分别与所述实时数据采集控制系统中的redis和远动侧建立通信连接,所述方法包括:
22.向所述redis订阅控制命令主题;
23.接收到所述redis的通知确定有外部应用在所述redis中发布所述控制命令主题,则从所述redis中获取所述控制命令主题附带的控制参数,并基于所述控制参数,发送控制命令至所述远动侧以控制目标控制点;
24.向所述redis发送key

value键值对;其中,所述key用于标识所述目标控制点在所述redis中的唯一索引,所述value的值用于标识所述控制命令的执行状态。
25.可选地,所述控制参数包括用于遥控选择或遥调选择的第一控制参数,所述控制命令包括用于遥控选择或遥调选择的第一控制命令;
26.所述向所述redis发送key

value键值对,包括:
27.在获取所述第一控制参数后向所述redis发送第一key

value键值对,所述第一key

value键值对中的第一value值用于标识控制命令的执行状态为选择中;
28.在收到所述远动侧回复的选择成功的消息后向所述redis发送第二key

value键值对,所述第二key

value键值对中的第二value值用于标识控制命令的执行状态为选择成功。
29.可选地,所述控制参数还包括用于遥控执行或遥调执行的第二控制参数,所述控制命令还包括用于遥控执行或遥调执行的第二控制命令;
30.所述向所述redis发送key

value键值对,还包括:
31.在获取所述第二控制参数后向所述redis发送第三key

value键值对,所述第三key

value键值对中的第三value值用于标识控制命令的执行状态为执行中;
32.在收到所述远动侧回复的执行成功的消息后向所述redis发送第四key

value键值对,所述第四key

value键值对中的第四value值用于标识控制命令的执行状态为执行成功。
33.可选地,所述控制参数包括用于遥控选择或遥调选择的第一控制参数,所述控制命令包括用于遥控选择或遥调选择的第一控制命令;
34.所述向所述redis发送key

value键值对,包括:
35.在获取所述第一控制参数后向所述redis发送第一key

value键值对,所述第一key

value键值对中的第一value值用于标识控制命令的执行状态为选择中;
36.在收到所述远动侧回复的选择失败的消息后向所述redis发送第五key

value键值对,所述第五key

value键值对中的第五value值用于标识控制命令的执行状态为选择失败。
37.第三方面,本发明还提供一种遥控遥调装置,应用于实时数据采集控制系统中的redis,所述redis分别与所述实时数据采集控制系统中的外部应用和前置模块建立通信连接,所述装置包括:
38.接收模块,用于接收所述前置模块订阅的控制命令主题;
39.通知模块,用于确定所述外部应用发布所述控制命令主题后,通知所述前置模块有所述控制命令主题发布,以使得所述前置模块从所述redis中获取所述控制命令主题附带的控制参数,并基于所述控制参数,发送控制命令至远动侧以控制目标控制点;
40.存储模块,用于接收并存储所述前置模块发送的key

value键值对;其中,所述key用于标识所述目标控制点在所述redis中的唯一索引,所述value的值用于标识所述控制命令的执行状态。
41.第四方面,本发明还提供一种遥控遥调装置,应用于实时数据采集控制系统中的前置模块,所述前置模块分别与所述实时数据采集控制系统中的redis和远动侧建立通信连接,所述装置包括:
42.订阅模块,用于向所述redis订阅控制命令主题;
43.获取模块,用于接收到所述redis的通知确定有外部应用在所述redis中发布所述控制命令主题,则从所述redis中获取所述控制命令主题附带的控制参数,并基于所述控制参数,发送控制命令至所述远动侧以控制目标控制点;
44.发送模块,用于向所述redis发送key

value键值对;其中,所述key用于标识所述目标控制点在所述redis中的唯一索引,所述value的值用于标识所述控制命令的执行状态。
45.第五方面,本发明还提供一种实时数据采集控制系统,包括:
46.外部应用、redis、前置模块和远动侧;
47.所述外部应用与所述redis建立通信连接,用于在所述redis中发布控制命令主题,所述控制命令主题附带控制参数;
48.所述redis与所述前置模块建立通信连接,用于执行如上所述第一方面所述的遥控遥调方法的步骤;
49.所述前置模块与所述远动侧建立通信连接,用于执行如上所述第二方面所述的遥控遥调方法的步骤。
50.本发明提供的遥控遥调方法、装置及系统,通过使用redis作为中间件,利用redis的基础功能和发布订阅特性,形成了前置模块接收遥控遥调远程命令的一套通用接口,所有redis支持的客户端语言都可访问这套接口,极大地丰富了外部应用的使用方式,提高了
二次开发的效率,增强了产品的易用性。
附图说明
51.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
52.图1是本发明提供的遥控遥调方法的流程示意图之一;
53.图2是本发明提供的实时数据采集控制系统的框架图;
54.图3是本发明提供的遥控命令远程下发的流程示意图之一;
55.图4是本发明提供的遥控命令远程下发的流程示意图之二;
56.图5是本发明提供的遥控遥调方法的流程示意图之二;
57.图6是本发明提供的遥控遥调装置的结构示意图之一;
58.图7是本发明提供的遥控遥调装置的结构示意图之二。
具体实施方式
59.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
60.前置模块是电力系统实时数据采集控制系统中最重要且复杂的模块之一,前置模块的运行需要消耗较多的cpu(central processing unit,中央处理器)资源、内存资源和网络资源,通常使用c 语言编写,在服务器后台运行。
61.人机交互界面也是实时数据采集控制系统的重要组成模块之一,通过人机交互界面,用户可以直观的监视实时数据的变化,并下发遥控遥调命令。pc(personal computer,个人计算机)端的人机交互界面分为两种模式:c/s模式和b/s模式。c/s模式即client

server模式,实现方式通常是一个独立运行操作的应用界面;b/s模式即browser

server模式,实现方式是通过网页监视和操作。这两种不同的人机交互界面模式与前置模块的数据交互方式有所不同。
62.c/s模式下的应用界面通常使用c 语言开发,可直接调用前置模块的接口进行数据监视和控制,而b/s模式通常使用java语言开发,与前置模块存在跨语言数据交互问题,需要前置模块为其提供单独的访问接口,例如目前比较常用的http(hyper text transfer protocol,超文本传输协议)接口或jna(java native access,java本地访问)方式。近年来,python语言兴起,与传统c 模式下的后台服务进程数据交互也存在类似的问题。
63.另外,现有流程控制命令的下发和执行都耦合在前置模块内部,一旦出现问题,不方便定位原因。并且c 接口的调用通常为阻塞式,可能使软件处于无响应状态的时间过长,影响用户体验。
64.针对上述问题,本发明提供一种解决方案,引入redis(remote dictionary server,远程字典服务器)作为中间件,解决实时数据采集控制系统中前置模块与其他需要
远程下发控制命令的模块之间的数据交互问题,并定义了控制命令下发的参数及整体交互流程。由于redis支持丰富多样的客户端语言,用户可以根据实际场景的需求来选择方便自己使用的编程语言,按照接口要求发布redis控制主题,并查询命令状态决定下一步操作流程即可,非常灵活。前置模块提供的不再是针对每种编程语言的单一接口,而是一套基于redis的通用接口,达到了前置模块和外部应用整体解耦的目的,双方都只需要和redis产生交互,不必关注对方的实现逻辑,交互流程也由阻塞式转变为非阻塞,更加灵活,用户体验更好,更能适应当前的业务需求。
65.图1为本发明提供的遥控遥调方法的流程示意图之一,该方法应用于实时数据采集控制系统中的redis,redis分别与实时数据采集控制系统中的外部应用和前置模块建立通信连接,如图1所示,该方法包括如下步骤:
66.步骤100、接收前置模块订阅的控制命令主题;
67.具体地,redis是一个使用c语言编写的、开源的、支持网络交互的、可基于内存也可持久化的、高性能的键值对(key

value)数据库。
68.实时数据采集控制系统中的外部应用即可以远程下发控制命令的模块,用户可通过外部应用的人机交互界面直观地监视实时数据的变化,并下发遥控遥调命令。不同的外部应用可能根据实际应用场景的不同选择不同的语言进行编写,例如这些语言包括但不限于:java、c 、python等等。
69.实时数据采集控制系统中的前置模块与远动侧连接,可以在接收到外部应用下发的控制参数后,将控制命令通过iec104通道下发至远动侧以控制目标遥控点或遥调点。前置模块通常使用c 语言编写。
70.本发明实施例中,为了解决实时数据采集控制系统中前置模块与外部应用之间因为编写语言的差异导致的数据交互问题,在电力系统的实时数据采集控制系统中引入redis,分别与实时数据采集控制系统中的外部应用和前置模块建立通信连接。
71.图2为本发明提供的实时数据采集控制系统的框架图,如图2所示,基于redis的发布订阅特性和基础功能,不仅可以在redis的发布订阅区通过遥控遥调命令主题的订阅和发布实现外部应用和前置模块之间针对遥控遥调控制参数的下发和获取,还可以在redis的命令状态区通过key

value值实现外部应用和前置模块针对遥控遥调命令状态的查询和管理,从而外部应用和前置模块都只需要和redis产生交互,而不必关注对方的实现逻辑,前置模块不再需要针对每种编程语言都提供单一接口,而只需要一套基于redis的通用接口即可。
72.具体地,外部应用和前置模块中均安装redis服务并启动后,前置模块可以首先向redis订阅一个主题,该主题用于外部应用和前置模块之间针对遥控遥调控制参数的下发和获取,可称为控制命令主题。redis接收到前置模块订阅的控制命令主题(例如主题名称可以是“ykyt”)后,即开始持续监测是否有外部应用发布该控制命令主题。
73.步骤101、确定外部应用发布控制命令主题后,通知前置模块有控制命令主题发布,以使得前置模块从redis中获取控制命令主题附带的控制参数,并基于控制参数,发送控制命令至远动侧以控制目标控制点;
74.具体地,外部应用需要远程下发遥控遥调命令时,可以通过ip(internet protocol,网际互连协议)地址和端口号确定与前置模块订阅控制命令主题相同的redis服
务,并直接访问,在redis中发布前置模块已订阅的控制命令主题,控制命令主题同时附带控制参数。控制参数可以使用json格式描述,例如可以包含如下信息:
[0075][0076]
redis确定有外部应用发布前置模块订阅的控制命令主题后,可以通知前置模块,从而前置模块收到redis的通知后及时从redis中获取控制命令主题附带的控制参数,并基于控制参数,将遥控或遥调的相关控制命令下发至远动侧以控制目标控制点,目标控制点即控制参数中所包含的遥控点id(identifier,标识)或遥调点id对应的遥控点或遥调点。
[0077]
步骤102、接收并存储前置模块发送的key

value键值对;其中,key用于标识目标控制点在redis中的唯一索引,value的值用于标识控制命令的执行状态。
[0078]
具体地,为了使外部应用能够及时获得控制命令的执行状态以执行下一步操作,前置模块可以向redis发送key

value键值对,其中,key用于标识目标控制点在redis中的唯一索引,并通过不同的value值来标识控制命令的执行状态。
[0079]
例如,key可以采用如下命名规则:
[0080]
控制类型key命名规则举例遥控yk_遥控点idyk_1遥调yt_遥调点idyt_1
[0081]
value值的含义可以采用如下枚举类型说明:
[0082]
value值含义1选择中2选择成功3选择失败4执行中5执行成功6执行失败7超时
[0083]
redis可以在接收到前置模块根据控制命令的执行状态发送的key

value键值对
后,存储key

value键值对,以供外部应用查询获得控制命令的执行状态,来决定下一步的操作。
[0084]
可选地,为了避免过多的key占用redis空间,同时也为外部应用预留足够的访问时间,本发明实施例中,redis可以为key设置一定时长的有效期,例如30分钟,超出有效期后redis将该key删除。
[0085]
本发明实施例提供的遥控遥调方法,通过使用redis作为中间件,利用redis的基础功能和发布订阅特性,形成了前置模块接收遥控遥调远程命令的一套通用接口,所有redis支持的客户端语言都可访问这套接口,极大地丰富了外部应用的使用方式,提高了二次开发的效率,增强了产品的易用性。
[0086]
可选地,所述控制参数包括用于遥控选择或遥调选择的第一控制参数,所述控制命令包括用于遥控选择或遥调选择的第一控制命令;
[0087]
所述接收并存储前置模块发送的key

value键值对,包括:
[0088]
接收并存储前置模块在获取第一控制参数后发送的第一key

value键值对,第一key

value键值对中的第一value值用于标识控制命令的执行状态为选择中;
[0089]
接收并存储前置模块在收到远动侧回复的选择成功的消息后发送的第二key

value键值对,第二key

value键值对中的第二value值用于标识控制命令的执行状态为选择成功。
[0090]
具体地,本发明实施例中,若外部应用发布控制命令主题时附带的控制参数包括用于遥控选择或遥调选择的第一控制参数,则前置模块获取到该第一控制参数后,可以根据该第一控制参数将用于遥控选择或遥调选择的第一控制命令下发至相应的远动侧以控制相应的目标控制点,并向redis发送第一key

value键值对,第一key

value键值对中的key用于标识该目标控制点在redis中的唯一索引,第一key

value键值对中的第一value值用于标识控制命令的执行状态为选择中,例如可以将该第一value值设置为1来表示控制命令的执行状态为选择中。
[0091]
之后,若前置模块收到远动侧回复的选择成功的消息,则前置模块可以向redis发送第二key

value键值对,以向redis中写入第二value值来更新上述key对应的value值,该第二value值用于标识控制命令的执行状态为选择成功,例如可以将该第二value值设置为2来表示控制命令的执行状态为选择成功。
[0092]
可选地,所述控制参数还包括用于遥控执行或遥调执行的第二控制参数,所述控制命令还包括用于遥控执行或遥调执行的第二控制命令;
[0093]
所述接收并存储前置模块发送的key

value键值对,还包括:
[0094]
接收并存储前置模块在获取第二控制参数后发送的第三key

value键值对,第三key

value键值对中的第三value值用于标识控制命令的执行状态为执行中;
[0095]
接收并存储前置模块在收到远动侧回复的执行成功的消息后发送的第四key

value键值对,第四key

value键值对中的第四value值用于标识控制命令的执行状态为执行成功。
[0096]
具体地,本发明实施例中,外部应用通过redis查询到上述key的value值更新为标识控制命令的执行状态为选择成功的第二value值后,外部应用可以继续发布控制命令主题,并在控制命令主题中附带用于遥控执行或遥调执行的第二控制参数,前置模块获取到
该第二控制参数后,可以根据该第二控制参数将用于遥控执行或遥调执行的第二控制命令下发至相应的远动侧以控制相应的目标控制点,并向redis发送第三key

value键值对,以向redis中写入第三value值来更新上述key对应的value值,该第三value值用于标识控制命令的执行状态为执行中,例如可以将该第三value值设置为4来表示控制命令的执行状态为执行中。
[0097]
之后,若前置模块收到远动侧回复的执行成功的消息,则前置模块可以向redis发送第四key

value键值对,以向redis中写入第四value值来更新上述key对应的value值,该第四value值用于标识控制命令的执行状态为执行成功,例如可以将该第四value值设置为5来表示控制命令的执行状态为执行成功。
[0098]
外部应用通过redis查询到上述key的value值更新为标识控制命令的执行状态为执行成功的第四value值后,确定遥控或遥调命令执行成功,遥控或遥调流程结束。
[0099]
可选地,所述控制参数包括用于遥控选择或遥调选择的第一控制参数,所述控制命令包括用于遥控选择或遥调选择的第一控制命令;
[0100]
所述接收并存储前置模块发送的key

value键值对,包括:
[0101]
接收并存储前置模块在获取第一控制参数后发送的第一key

value键值对,第一key

value键值对中的第一value值用于标识控制命令的执行状态为选择中;
[0102]
接收并存储前置模块在收到远动侧回复的选择失败的消息后发送的第五key

value键值对,第五key

value键值对中的第五value值用于标识控制命令的执行状态为选择失败。
[0103]
具体地,本发明实施例中,若外部应用发布控制命令主题时附带的控制参数包括用于遥控选择或遥调选择的第一控制参数,则前置模块获取到该第一控制参数后,可以根据该第一控制参数将用于遥控选择或遥调选择的第一控制命令下发至相应的远动侧以控制相应的目标控制点,并向redis发送第一key

value键值对,第一key

value键值对中的key用于标识该目标控制点在redis中的唯一索引,第一key

value键值对中的第一value值用于标识控制命令的执行状态为选择中,例如可以将该第一value值设置为1来表示控制命令的执行状态为选择中。
[0104]
之后,若前置模块收到远动侧回复的选择失败的消息,则前置模块可以向redis发送第五key

value键值对,以向redis中写入第五value值来更新上述key对应的value值,该第五value值用于标识控制命令的执行状态为选择失败,例如可以将该第五value值设置为3来表示控制命令的执行状态为选择失败。
[0105]
外部应用通过redis查询到上述key的value值更新为标识控制命令的执行状态为选择失败的第五value值后,则外部应用不再继续发布控制命令主题,遥控或遥调流程结束。
[0106]
下面通过具体实施例来对本发明提供的遥控遥调方法进行举例说明,由于遥控和遥调命令远程下发的整体流程完全一致,区别仅在于下发的目标值类型不同:遥控命令下发值为整型,遥调命令下发值为浮点型,因此以下实施例仅以遥控命令远程下发为例进行说明。
[0107]
图3为本发明提供的遥控命令远程下发的流程示意图之一,如图3所示,以web侧使用java语言下发远程遥控命令,遥控点id为1,目标为控合,命令执行成功为例,整个流程包
括如下步骤:
[0108]
步骤300、前置模块订阅“ykyt”主题;
[0109]
具体地,外部应用和前置模块均安装redis服务并启动后,部署实时数据采集控制系统,启动前置服务,前置模块向redis订阅控制命令主题“ykyt”,开启循环持续监测是否有相关主题发布。
[0110]
步骤301、外部应用带参发布“ykyt”主题(遥控选择);
[0111]
具体地,web侧使用java语言访问相同的redis服务,发布“ykyt”主题,同时附带控制参数。控制参数如下:
[0112][0113]
同时web侧开始循环监测key:“yk_1”的值以获得命令执行状态。
[0114]
步骤302、redis通知前置模块有主题发布;
[0115]
具体地,外部应用带参发布“ykyt”主题后,redis即通知前置模块有“ykyt”主题发布。
[0116]
步骤303、前置模块新建命令状态为选择中;
[0117]
具体地,前置模块收到通知有“ykyt”主题发布,即可从redis中得到控制参数,基于该控制参数,前置模块首先向redis写入一条字符串类型的信息,用于标识当前命令的状态,key=“yk_1”,value=“1”,此时web侧可以使用java语言访问“yk_1”,得到命令状态。
[0118]
步骤304、前置模块下发遥控选择报文请求;
[0119]
具体地,前置模块得到控制参数后,根据遥控点id定位到所属rtu(remote terminal unit,远动终端)及点号(即距遥控首地址的偏移量),通过iec104通道下发遥控选择命令至远动侧。
[0120]
上述步骤303和步骤304不分先后,可以并行执行。
[0121]
步骤305、远动侧回复遥控选择请求成功;
[0122]
具体地,远动侧若选择遥控点成功,则向前置模块回复遥控选择请求成功。
[0123]
步骤306、前置模块更新命令状态为选择成功;
[0124]
具体地,前置模块收到选择成功的报文,将“yk_1”的value重置为“2”。
[0125]
步骤307、外部应用带参发布“ykyt”主题(遥控执行);
[0126]
具体地,web侧监测到遥控选择命令成功,继续发布“ykyt”主题,同时附带控制参数。控制参数如下:
[0127][0128]
步骤308、redis通知前置模块有主题发布;
[0129]
具体地,外部应用带参发布“ykyt”主题后,redis即通知前置模块有“ykyt”主题发布。
[0130]
步骤309、前置模块更新命令状态为执行中;
[0131]
具体地,前置模块收到通知有“ykyt”主题发布,即可从redis中得到控制参数,知晓需要执行控制命令,同时确认命令状态为选择成功,则前置模块将“yk_1”的value重置为“4”。
[0132]
步骤310、前置模块下发遥控执行报文请求;
[0133]
具体地,前置模块得到控制参数后,知晓需要执行控制命令,同时确认命令状态为选择成功,则根据遥控点id定位到所属rtu及点号,通过iec104通道下发遥控执行命令至远动侧。
[0134]
上述步骤309和步骤310不分先后,可以并行执行。
[0135]
步骤311、远动侧回复遥控执行请求成功;
[0136]
具体地,远动侧若遥控执行成功,则向前置模块回复遥控执行请求成功。
[0137]
步骤312、前置模块更新命令状态为执行成功;
[0138]
具体地,前置模块收到执行成功的报文,将“yk_1”的value重置为“5”。
[0139]
步骤313、外部应用读取状态,流程结束;
[0140]
具体地,web侧监测到命令执行成功,流程结束。
[0141]
图4为本发明提供的遥控命令远程下发的流程示意图之二,如图4所示,以web侧使用java语言下发远程遥控命令,选择失败为例,整个流程包括如下步骤:
[0142]
步骤400、前置模块订阅“ykyt”主题;
[0143]
具体地,外部应用和前置模块均安装redis服务并启动后,部署实时数据采集控制系统,启动前置服务,前置模块向redis订阅控制命令主题“ykyt”,开启循环持续监测是否有相关主题发布。
[0144]
步骤401、外部应用带参发布“ykyt”主题(遥控选择);
[0145]
具体地,web侧使用java语言访问相同的redis服务,发布“ykyt”主题,同时附带控制参数。控制参数如下:
[0146][0147]
同时web侧开始循环监测key:“yk_1”的值以获得命令执行状态。
[0148]
步骤402、redis通知前置模块有主题发布;
[0149]
具体地,外部应用带参发布“ykyt”主题后,redis即通知前置模块有“ykyt”主题发布。
[0150]
步骤403、前置模块新建命令状态为选择中;
[0151]
具体地,前置模块收到通知有“ykyt”主题发布,即可从redis中得到控制参数,基于该控制参数,前置模块首先向redis写入一条字符串类型的信息,用于标识当前命令的状态,key=“yk_1”,value=“1”,此时web侧可以使用java语言访问“yk_1”,得到命令状态。
[0152]
步骤404、前置模块下发遥控选择报文请求;
[0153]
具体地,前置模块得到控制参数后,根据遥控点id定位到所属rtu及点号(即距遥控首地址的偏移量),通过iec104通道下发遥控选择命令至远动侧。
[0154]
上述步骤403和步骤404不分先后,可以并行执行。
[0155]
步骤405、远动侧回复遥控选择请求失败;
[0156]
具体地,远动侧若选择遥控点失败,则向前置模块回复遥控选择请求失败,目标不可控。
[0157]
步骤406、前置模块更新命令状态为选择失败;
[0158]
具体地,前置模块收到选择失败的报文,将“yk_1”的value重置为“3”。
[0159]
步骤407、外部应用读取状态,流程结束;
[0160]
具体地,web侧监测到命令选择失败,流程结束。
[0161]
图5为本发明提供的遥控遥调方法的流程示意图之二,该方法应用于实时数据采集控制系统中的前置模块,前置模块分别与实时数据采集控制系统中的redis和远动侧建立通信连接,如图5所示,该方法包括如下步骤:
[0162]
步骤500、向redis订阅控制命令主题;
[0163]
具体地,本发明实施例中,为了解决实时数据采集控制系统中前置模块与外部应用之间因为编写语言的差异导致的数据交互问题,在电力系统的实时数据采集控制系统中引入redis,分别与实时数据采集控制系统中的外部应用和前置模块建立通信连接,从而外部应用和前置模块都只需要和redis产生交互,而不必关注对方的实现逻辑,前置模块不再需要针对每种编程语言都提供单一接口,而只需要一套基于redis的通用接口即可。
[0164]
具体地,外部应用和前置模块中均安装redis服务并启动后,前置模块可以首先向redis订阅一个主题,该主题用于外部应用和前置模块之间针对遥控遥调控制参数的下发和获取,可称为控制命令主题。
[0165]
步骤501、接收到redis的通知确定有外部应用在redis中发布控制命令主题,则从redis中获取控制命令主题附带的控制参数,并基于控制参数,发送控制命令至远动侧以控制目标控制点;
[0166]
具体地,外部应用需要远程下发遥控遥调命令时,可以通过ip地址和端口号确定与前置模块订阅控制命令主题相同的redis服务,并直接访问,在redis中发布前置模块已订阅的控制命令主题,控制命令主题同时附带控制参数。
[0167]
redis确定有外部应用发布前置模块订阅的控制命令主题后,可以通知前置模块,从而前置模块接收到redis的通知确定有外部应用在redis中发布控制命令主题,则从redis中获取控制命令主题附带的控制参数,并基于控制参数,将遥控或遥调的相关控制命令下发至远动侧以控制目标控制点,目标控制点即控制参数中所包含的遥控点id或遥调点id对应的遥控点或遥调点。
[0168]
步骤502、向redis发送key

value键值对;其中,key用于标识目标控制点在redis中的唯一索引,value的值用于标识控制命令的执行状态。
[0169]
具体地,为了使外部应用能够及时获得控制命令的执行状态以执行下一步操作,前置模块可以向redis发送key

value键值对,其中,key用于标识目标控制点在redis中的唯一索引,并通过不同的value值来标识控制命令的执行状态。
[0170]
本发明实施例提供的遥控遥调方法,通过使用redis作为中间件,利用redis的基础功能和发布订阅特性,形成了前置模块接收遥控遥调远程命令的一套通用接口,所有redis支持的客户端语言都可访问这套接口,极大地丰富了外部应用的使用方式,提高了二次开发的效率,增强了产品的易用性。
[0171]
可选地,所述控制参数包括用于遥控选择或遥调选择的第一控制参数,所述控制命令包括用于遥控选择或遥调选择的第一控制命令;
[0172]
所述向redis发送key

value键值对,包括:
[0173]
在获取第一控制参数后向redis发送第一key

value键值对,第一key

value键值对中的第一value值用于标识控制命令的执行状态为选择中;
[0174]
在收到远动侧回复的选择成功的消息后向redis发送第二key

value键值对,第二key

value键值对中的第二value值用于标识控制命令的执行状态为选择成功。
[0175]
具体地,本发明实施例中,若外部应用发布控制命令主题时附带的控制参数包括用于遥控选择或遥调选择的第一控制参数,则前置模块获取到该第一控制参数后,可以根据该第一控制参数将用于遥控选择或遥调选择的第一控制命令下发至相应的远动侧以控制相应的目标控制点,并向redis发送第一key

value键值对,第一key

value键值对中的key用于标识该目标控制点在redis中的唯一索引,第一key

value键值对中的第一value值用于标识控制命令的执行状态为选择中。
[0176]
之后,若前置模块收到远动侧回复的选择成功的消息,则前置模块可以向redis发送第二key

value键值对,以向redis中写入第二value值来更新上述key对应的value值,该第二value值用于标识控制命令的执行状态为选择成功。
[0177]
可选地,所述控制参数还包括用于遥控执行或遥调执行的第二控制参数,所述控制命令还包括用于遥控执行或遥调执行的第二控制命令;
[0178]
所述向redis发送key

value键值对,还包括:
[0179]
在获取第二控制参数后向redis发送第三key

value键值对,第三key

value键值对中的第三value值用于标识控制命令的执行状态为执行中;
[0180]
在收到远动侧回复的执行成功的消息后向redis发送第四key

value键值对,第四key

value键值对中的第四value值用于标识控制命令的执行状态为执行成功。
[0181]
具体地,本发明实施例中,外部应用通过redis查询到上述key的value值更新为标识控制命令的执行状态为选择成功的第二value值后,外部应用可以继续发布控制命令主题,并在控制命令主题中附带用于遥控执行或遥调执行的第二控制参数,前置模块获取到该第二控制参数后,可以根据该第二控制参数将用于遥控执行或遥调执行的第二控制命令下发至相应的远动侧以控制相应的目标控制点,并向redis发送第三key

value键值对,以向redis中写入第三value值来更新上述key对应的value值,该第三value值用于标识控制命令的执行状态为执行中。
[0182]
之后,若前置模块收到远动侧回复的执行成功的消息,则前置模块可以向redis发送第四key

value键值对,以向redis中写入第四value值来更新上述key对应的value值,该第四value值用于标识控制命令的执行状态为执行成功。
[0183]
外部应用通过redis查询到上述key的value值更新为标识控制命令的执行状态为执行成功的第四value值后,确定遥控或遥调命令执行成功,遥控或遥调流程结束。
[0184]
可选地,所述控制参数包括用于遥控选择或遥调选择的第一控制参数,所述控制命令包括用于遥控选择或遥调选择的第一控制命令;
[0185]
所述向redis发送key

value键值对,包括:
[0186]
在获取第一控制参数后向redis发送第一key

value键值对,第一key

value键值对中的第一value值用于标识控制命令的执行状态为选择中;
[0187]
在收到远动侧回复的选择失败的消息后向redis发送第五key

value键值对,第五key

value键值对中的第五value值用于标识控制命令的执行状态为选择失败。
[0188]
具体地,本发明实施例中,若外部应用发布控制命令主题时附带的控制参数包括用于遥控选择或遥调选择的第一控制参数,则前置模块获取到该第一控制参数后,可以根据该第一控制参数将用于遥控选择或遥调选择的第一控制命令下发至相应的远动侧以控制相应的目标控制点,并向redis发送第一key

value键值对,第一key

value键值对中的key用于标识该目标控制点在redis中的唯一索引,第一key

value键值对中的第一value值用于标识控制命令的执行状态为选择中。
[0189]
之后,若前置模块收到远动侧回复的选择失败的消息,则前置模块可以向redis发送第五key

value键值对,以向redis中写入第五value值来更新上述key对应的value值,该第五value值用于标识控制命令的执行状态为选择失败。
[0190]
外部应用通过redis查询到上述key的value值更新为标识控制命令的执行状态为选择失败的第五value值后,则外部应用不再继续发布控制命令主题,遥控或遥调流程结束。
[0191]
下面对本发明提供的遥控遥调装置进行描述,下文描述的遥控遥调装置与上文描述的遥控遥调方法可相互对应参照。
[0192]
图6为本发明提供的遥控遥调装置的结构示意图之一,该装置应用于实时数据采集控制系统中的redis,redis分别与实时数据采集控制系统中的外部应用和前置模块建立
通信连接,如图6所示,该装置包括:
[0193]
接收模块600,用于接收前置模块订阅的控制命令主题;
[0194]
通知模块610,用于确定外部应用发布控制命令主题后,通知前置模块有控制命令主题发布,以使得前置模块从redis中获取控制命令主题附带的控制参数,并基于控制参数,发送控制命令至远动侧以控制目标控制点;
[0195]
存储模块620,用于接收并存储前置模块发送的key

value键值对;其中,key用于标识目标控制点在redis中的唯一索引,value的值用于标识控制命令的执行状态。
[0196]
可选地,所述控制参数包括用于遥控选择或遥调选择的第一控制参数,所述控制命令包括用于遥控选择或遥调选择的第一控制命令;
[0197]
所述存储模块620,用于:接收并存储前置模块在获取第一控制参数后发送的第一key

value键值对,第一key

value键值对中的第一value值用于标识控制命令的执行状态为选择中;接收并存储前置模块在收到远动侧回复的选择成功的消息后发送的第二key

value键值对,第二key

value键值对中的第二value值用于标识控制命令的执行状态为选择成功。
[0198]
可选地,所述控制参数还包括用于遥控执行或遥调执行的第二控制参数,所述控制命令还包括用于遥控执行或遥调执行的第二控制命令;
[0199]
所述存储模块620,还用于:接收并存储前置模块在获取第二控制参数后发送的第三key

value键值对,第三key

value键值对中的第三value值用于标识控制命令的执行状态为执行中;接收并存储前置模块在收到远动侧回复的执行成功的消息后发送的第四key

value键值对,第四key

value键值对中的第四value值用于标识控制命令的执行状态为执行成功。
[0200]
可选地,所述控制参数包括用于遥控选择或遥调选择的第一控制参数,所述控制命令包括用于遥控选择或遥调选择的第一控制命令;
[0201]
所述存储模块620,用于:接收并存储前置模块在获取第一控制参数后发送的第一key

value键值对,第一key

value键值对中的第一value值用于标识控制命令的执行状态为选择中;接收并存储前置模块在收到远动侧回复的选择失败的消息后发送的第五key

value键值对,第五key

value键值对中的第五value值用于标识控制命令的执行状态为选择失败。
[0202]
图7为本发明提供的遥控遥调装置的结构示意图之二,该装置应用于实时数据采集控制系统中的前置模块,前置模块分别与实时数据采集控制系统中的redis和远动侧建立通信连接,如图7所示,该装置包括:
[0203]
订阅模块700,用于向redis订阅控制命令主题;
[0204]
获取模块710,用于接收到redis的通知确定有外部应用在redis中发布控制命令主题,则从redis中获取控制命令主题附带的控制参数,并基于控制参数,发送控制命令至远动侧以控制目标控制点;
[0205]
发送模块720,用于向redis发送key

value键值对;其中,key用于标识目标控制点在redis中的唯一索引,value的值用于标识控制命令的执行状态。
[0206]
可选地,所述控制参数包括用于遥控选择或遥调选择的第一控制参数,所述控制命令包括用于遥控选择或遥调选择的第一控制命令;
[0207]
所述发送模块720,用于:在获取第一控制参数后向redis发送第一key

value键值对,第一key

value键值对中的第一value值用于标识控制命令的执行状态为选择中;在收到远动侧回复的选择成功的消息后向redis发送第二key

value键值对,第二key

value键值对中的第二value值用于标识控制命令的执行状态为选择成功。
[0208]
可选地,所述控制参数还包括用于遥控执行或遥调执行的第二控制参数,所述控制命令还包括用于遥控执行或遥调执行的第二控制命令;
[0209]
所述发送模块720,还用于:在获取第二控制参数后向redis发送第三key

value键值对,第三key

value键值对中的第三value值用于标识控制命令的执行状态为执行中;在收到远动侧回复的执行成功的消息后向redis发送第四key

value键值对,第四key

value键值对中的第四value值用于标识控制命令的执行状态为执行成功。
[0210]
可选地,所述控制参数包括用于遥控选择或遥调选择的第一控制参数,所述控制命令包括用于遥控选择或遥调选择的第一控制命令;
[0211]
所述发送模块720,用于:在获取第一控制参数后向redis发送第一key

value键值对,第一key

value键值对中的第一value值用于标识控制命令的执行状态为选择中;在收到远动侧回复的选择失败的消息后向redis发送第五key

value键值对,第五key

value键值对中的第五value值用于标识控制命令的执行状态为选择失败。
[0212]
在此需要说明的是,本发明提供的上述装置,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
[0213]
另一方面,本发明还提供一种实时数据采集控制系统,包括:
[0214]
外部应用、redis、前置模块和远动侧;
[0215]
外部应用与redis建立通信连接,用于在redis中发布控制命令主题,控制命令主题附带控制参数;
[0216]
redis与前置模块建立通信连接,用于执行上述各实施例提供的任一所述遥控遥调方法的步骤,例如:接收前置模块订阅的控制命令主题;确定外部应用发布控制命令主题后,通知前置模块有控制命令主题发布,以使得前置模块从redis中获取控制命令主题附带的控制参数,并基于控制参数,发送控制命令至远动侧以控制目标控制点;接收并存储前置模块发送的key

value键值对;其中,key用于标识目标控制点在redis中的唯一索引,value的值用于标识控制命令的执行状态;
[0217]
前置模块与远动侧建立通信连接,用于上述各实施例提供的任一所述遥控遥调方法的步骤,例如:向redis订阅控制命令主题;接收到redis的通知确定有外部应用在redis中发布控制命令主题,则从redis中获取控制命令主题附带的控制参数,并基于控制参数,发送控制命令至远动侧以控制目标控制点;向redis发送key

value键值对;其中,key用于标识目标控制点在redis中的唯一索引,value的值用于标识控制命令的执行状态。
[0218]
在此需要说明的是,本发明提供的上述系统,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
[0219]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单
元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0220]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0221]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜