一种继电保护装置功能模块的调度方法及系统与流程

文档序号:28808285发布日期:2022-02-09 03:10阅读:104来源:国知局
一种继电保护装置功能模块的调度方法及系统与流程

1.本发明涉及继电保护技术领域,特别涉及一种继电保护装置功能模块的调度方法及系统。


背景技术:

2.继电保护装置的应用软件程序由多个软件功能模块组成,每个功能模块各自完成一定的功能,所有功能模块组合在一起构成整个装置的保护功能。
3.继电保护装置的应用软件程序通常需要经过编译、链接等过程最终生成目标程序,才能在装置中运行。生成目标程序后,装置的保护功能是确定的,功能模块无法增减。如果想要修改装置的保护功能、增加或减少功能模块、修改功能模块间的数据交互信息时,就必须修改装置的源程序或者逻辑组态图,并需要重新经过编译、链接等过程生成目标程序。在这个过程中装置应用软件的目标程序的校验码会发生改变,需要重新进行全面的测试才能够发布程序。整个过程流程繁琐且耗时较多,开发效率较低,灵活性较差,不利于工程定制和快速开发。


技术实现要素:

4.有鉴于此,本发明实施例的目的在于提供一种继电保护装置功能模块的调度方法及系统,能够显著提高开发效率,适应复杂功能定制需求。
5.第一方面,本发明实施例提供了一种继电保护装置功能模块的调度方法,其中,包括:
6.s1,使用配置脚本文件描述继电保护装置的功能模块配置信息。
7.s2,继电保护装置上电初始化,解析配置的脚本文件。
8.s3,继电保护装置依据配置脚本中的信息执行各功能模块。
9.结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,s1中,所述使用配置脚本文件描述继电保护装置的配置信息,包括:
10.s11,配置功能模块的实例化信息,包括功能模块所属cpu号、功能模块类名称和功能模块所属调度任务的id。
11.s12,配置功能模块所属的调度任务,包括功能模块的基准时间,使能状态和任务的调度周期。
12.s13,配置功能模块的调度顺序,属于同一调度任务的功能模块实例的先后顺序为功能模块调度执行时的先后顺序。
13.s14,配置功能模块间的连接关系,确定功能模块之间数据的起始端、数据流向和数据的目的端。
14.结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,s2中,所述继电保护装置上电初始化,解析配置的脚本文件,包括:
15.s21,根据功能模块的配置信息,动态创建功能模块的实例模型。
16.s22,根据功能模块之间的连接关系,初始化连线关系。
17.s23,根据调度任务配置信息,初始化功能模块的调度任务。
18.s24,将功能模块实例节点的指针添加到所属调度任务的功能模块实例节点的指针列表中。
19.s25,各任务根据功能模块实例节点指针列表中的内容,依次调度各功能模块实例节点的初始化函数。
20.结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,s3中,所述继电保护装置执行各功能模块,包括:
21.s31,按照脚本中设定的各任务的周期间隔调度任务。
22.s32,任务被唤醒后,按照装置初始化时生成的功能模块实例节点指针列表中的先后顺序,依次执行各个功能模块实例的运行函数。
23.结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,还包括:
24.s4,通过对脚本文件的内容进行调整达到修改继电保护装置的功能且不改变目标程序校验码的目的,包括对功能模块进行增加或删除、修改功能模块之间的连线关系、调整各功能模块的所属任务及调度顺序和修改各任务的调度周期。
25.第二方面,本发明实施例还提供了一种继电保护装置功能模块的调度系统,其中,包括:
26.配置模块,用于使用配置脚本文件描述继电保护装置的功能模块配置信息。
27.解析模块,用于继电保护装置上电初始化,解析配置的脚本文件。
28.执行模块,用于继电保护装置依据配置脚本中的信息执行各功能模块。
29.结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述配置模块包括:
30.实例化单元,用于配置功能模块的实例化信息,包括功能模块所属cpu号、功能模块类名称和功能模块所属调度任务的id。
31.任务调度单元,用于配置功能模块所属的调度任务,包括功能模块的基准时间,使能状态和任务的调度周期。
32.顺序调度单元,用于配置功能模块的调度顺序,属于同一调度任务的功能模块实例的先后顺序为功能模块调度执行时的先后顺序。
33.连接单元,用于配置功能模块间的连接关系,确定功能模块之间数据的起始端、数据流向和数据的目的端。
34.结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述解析模块包括:
35.模型创建单元,用于根据功能模块的配置信息,动态创建功能模块的实例模型。
36.初始化连线单元,用于根据功能模块之间的连接关系,初始化连线关系。
37.任务调度单元,用于根据调度任务配置信息,初始化功能模块的调度任务。
38.指针添加单元,用于将功能模块实例节点的指针添加到所属调度任务的功能模块实例节点的指针列表中。
39.函数调度单元,用于各任务根据功能模块实例节点指针列表中的内容,依次调度
各功能模块实例节点的初始化函数。
40.结合第二方面,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述执行模块包括:
41.周期调度单元,用于按照脚本中设定的各任务的周期间隔调度任务。
42.函数执行单元,用于当任务被唤醒后,按照装置初始化时生成的功能模块实例节点链表中的先后顺序,依次执行各个功能模块实例的运行函数。
43.结合第二方面,本发明实施例提供了第二方面的第四种可能的实施方式,其中,还包括:
44.修改模块,通过对脚本文件的内容进行调整达到修改继电保护装置的功能且不改变目标程序校验码的目的,包括对功能模块进行增加或删除、修改功能模块之间的连线关系、调整各功能模块的所属任务及调度顺序和修改各任务的调度周期。
45.本发明实施例的有益效果是:
46.本发明提供了一种继电保护装置功能模块的调度方法及系统,能够通过脚本实现装置功能模块的增减、各功能块数据交互信息的修改、功能块调度顺序修改等功能,而且无需修改应用软件源程序,也不会改变装置应用软件目标程序的校验码,可以保证功能的正确性,能够显著提高开发效率,适应复杂功能定制需求。
附图说明
47.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
48.图1为本发明继电保护装置功能模块的调度方法的流程图;
49.图2为本发明继电保护装置功能模块的调度方法的脚本文件示意图;
50.图3为本发明继电保护装置功能模块的调度方法的功能模块类的数据结构模型示意图;
51.图4为本发明继电保护装置功能模块的调度方法的脚本初始化流程示意图;
52.图5为本发明继电保护装置功能模块的调度系统结构示意图。
具体实施方式
53.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件能够以各种不同的配置来布置和设计。
54.请参照图1至图4,本发明的第一个实施例提供一种继电保护装置功能模块的调度方法,其中,包括:
55.s1,使用配置脚本文件描述继电保护装置的功能模块配置信息。
56.s2,继电保护装置上电初始化,解析配置的脚本文件。
57.s3,继电保护装置依据配置脚本中的信息执行各功能模块。
58.其中,s1中,所述使用配置脚本文件描述继电保护装置的配置信息,包括:
59.s11,配置功能模块的实例化信息,包括功能模块所属cpu号、功能模块类名称和功能模块所属调度任务的id。
60.fb_inst小节为功能模块实例化信息,格式为:“bxx.yyyy classname taskid”,其中xx表示功能模块所属cpu号,classname为功能模块类名称,taskid为功能模块所属调度任务的id;该小节中,属于同一调度任务的功能模块实例的先后顺序即为功能模块调度执行时的先后顺序。
61.s12,配置功能模块所属的调度任务,包括功能模块的基准时间,使能状态和任务的调度周期。
62.task_config小节为调度任务配置信息,格式为:“bxx.tn=en n”。其中t0为基准时间;t1~t5位周期调度任务,对应的任务id分别为201~205;en为任务使能标志,1表示使能,0表示非使能;n为基准时间的倍数,n*基准时间为所属任务的调度周期。
63.本发明将继电保护装置应用软件中的各类功能模块抽象为不同功能块类。功能块类描述了功能模块的输入变量、输出变量、可整定参数、量值、内部数据等各类数据模型,同时还包括功能模块的初始化函数和运行函数,功能块类的所有变量共同组成功能块变量结构体。
64.s13,配置功能模块的调度顺序,属于同一调度任务的功能模块实例的先后顺序为功能模块调度执行时的先后顺序。
65.s14,配置功能模块间的连接关系,确定功能模块之间数据的起始端、数据流向和数据的目的端。
66.fbvar_link小节为功能块变量间连线关系,格式为:“bxx1.yyyy1.var1-》bxx2.yyyy2.var2”,其中
“‑
》”为连线分隔符,表示数据的流向,其左端为数据的起始端,右侧为数据的目的端。
67.其中,s2中,所述继电保护装置上电初始化,解析配置的脚本文件,包括:
68.s21,根据功能模块的配置信息,动态创建功能模块的实例模型,生成各cpu模块内的功能模块实例节点链表。
69.s22,根据功能模块之间的连接关系,初始化连线关系,将连线右端功能模块输入变量指向的连线左端功能模块输出变量地址。
70.s23,根据调度任务配置信息,初始化功能模块的调度任务。
71.s24,将功能模块实例节点的指针添加到所属调度任务的功能模块实例节点的指针列表中。
72.扫描功能模块实例节点链表,统计各个任务中功能模块实例节点的个数,动态申请各任务的功能模块实例节点指针列表的缓存空间,将功能模块实例节点的指针添加到所属调度任务的功能模块实例节点的指针列表中。
73.s25,各任务根据功能模块实例节点指针列表中的内容,依次调度各功能模块实例节点的初始化函数。
74.其中,s3中,所述继电保护装置执行各功能模块,包括:
75.s31,按照脚本中设定的各任务的周期间隔调度任务。
76.s32,任务被唤醒后,按照装置初始化时生成的功能模块实例节点指针列表中的先
后顺序,依次执行各个功能模块实例的运行函数。
77.其中,还包括:
78.s4,通过对脚本文件的内容进行调整达到修改继电保护装置的功能且不改变目标程序校验码的目的,包括对功能模块进行增加或删除、修改功能模块之间的连线关系、调整各功能模块的所属任务及调度顺序和修改各任务的调度周期。
79.请参照图5,本发明的第二个实施例提供一种继电保护装置功能模块的调度系统,其中,包括:
80.配置模块,用于使用配置脚本文件描述继电保护装置的功能模块配置信息。
81.解析模块,用于继电保护装置上电初始化,解析配置的脚本文件。
82.执行模块,用于继电保护装置依据配置脚本中的信息执行各功能模块。
83.其中,所述配置模块包括:
84.实例化单元,用于配置功能模块的实例化信息,包括功能模块所属cpu号、功能模块类名称和功能模块所属调度任务的id。
85.任务调度单元,用于配置功能模块所属的调度任务,包括功能模块的基准时间,使能状态和任务的调度周期。
86.顺序调度单元,用于配置功能模块的调度顺序,属于同一调度任务的功能模块实例的先后顺序为功能模块调度执行时的先后顺序。
87.连接单元,用于配置功能模块间的连接关系,确定功能模块之间数据的起始端、数据流向和数据的目的端。
88.其中,所述解析模块包括:
89.模型创建单元,用于根据功能模块的配置信息,动态创建功能模块的实例模型,生成各cpu模块内的功能模块实例节点链表。
90.初始化连线单元,用于根据功能模块之间的连接关系,初始化连线关系,将连线右端功能模块输入变量指向的连线左端功能模块输出变量地址。
91.任务调度单元,用于根据调度任务配置信息,初始化功能模块的调度任务。
92.指针添加单元,用于将功能模块实例节点的指针添加到所属调度任务的功能模块实例节点的指针列表中。
93.函数调度单元,用于各任务根据功能模块实例节点指针列表中的内容,依次调度各功能模块实例节点的初始化函数。
94.其中,所述执行模块包括:
95.周期调度单元,用于按照脚本中设定的各任务的周期间隔调度任务。
96.函数执行单元,用于当任务被唤醒后,按照装置初始化时生成的功能模块实例节点链表中的先后顺序,依次执行各个功能模块实例的运行函数。
97.其中,还包括:
98.修改模块,通过对脚本文件的内容进行调整达到修改继电保护装置的功能且不改变目标程序校验码的目的,包括对功能模块进行增加或删除、修改功能模块之间的连线关系、调整各功能模块的所属任务及调度顺序和修改各任务的调度周期。
99.本发明实施例旨在保护一种继电保护装置功能模块的调度方法及系统,具备如下效果:
100.为了实现修改脚本配置文件后,无需重新编译生成目标文件的目的,本发明使用的方法是目标程序功能最大化的方案。具体来说,就是针对具体型号的继电保护装置,将该装置支持的、工程中可能使用的所有功能模块,在装置应用程序的厂内开发设计期,都放入应用程序项目中,进行编译、链接生成目标程序,以保证功能的最大化,同时固定应用程序的校验码方便管理。
101.功能块组态工具会将应用程序项目的逻辑图中所有的功能块类的初始化函数代码和运行函数代码整合在一起,并生成功能块类信息列表。在软件平台引导应用软件模块时,应用模块会根据功能块类列表信息,将各功能块类依次注册到软件平台中统一管理。
102.在具体的工程应用中,调试人员可以根据实际需求,使用功能块组态二次开发工具对应用软件项目中的逻辑图进行修改调整,包括对功能模块的增加或删除、修改功能模块之间的连线关系、调整各功能模块的所属任务及调度顺序、修改各任务的调度周期等。修改完成后,只需生成脚本配置文件重新下载到装置中即可,无需重新编译、链接生成目标程序。
103.软件平台在解析脚本配置文件执行初始化时,会根据功能块实例化信息中具体的功能块类名称,去查找该功能块类是否注册。若功能块类已经注册过,软件平台则会根据注册的功能块类的信息,动态申请相应的功能块结构体实例化空间,创建该功能块实例化模型。根据功能块所属任务信息,将功能块实例化节点的指针添加到相应任务的实例化功能块节点指针列表中,用以初始化阶段和运行阶段调度执行。
104.通过以上方案,实现了基于脚本控制的继电保护装置功能模块的调度执行,并实现了通过脚本免编译的目的。基于本发明的方法,可以显著提高继电保护装置应用软件的开发效率,方便实现保护功能的定制开发,适应继电保护装置不同应用场景的个性化需求。
105.本发明实施例所提供的继电保护装置功能模块的调度方法及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
106.具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述继电保护装置功能模块的调度方法,从而能够显著提高开发效率,适应复杂功能定制需求。
107.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
108.最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻
易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1