CN105630581A - 一种任务处理方法、设备及计算机存储介质 - Google Patents
一种任务处理方法、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN105630581A CN105630581A CN201410626094.3A CN201410626094A CN105630581A CN 105630581 A CN105630581 A CN 105630581A CN 201410626094 A CN201410626094 A CN 201410626094A CN 105630581 A CN105630581 A CN 105630581A
- Authority
- CN
- China
- Prior art keywords
- task
- function
- configuration file
- signal
- data structure
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Programmable Controllers (AREA)
Abstract
本发明实施例公开了一种任务处理方法、设备及计算机存储介质;其中,所述任务处理方法包括:配置任务流程信息,根据所述任务流程信息生成通过脚本语言表征的任务配置文件;扫描所述任务配置文件,根据所述任务配置文件生成数据结构,基于所述数据结构生成至少一个任务;分别根据所述至少一个任务发出至少一个动作信号,分别执行所述至少一个动作信号表征的动作。
Description
技术领域
本发明涉及电力电子领域,具体涉及一种任务处理方法、设备及计算机存储介质。
背景技术
近年来,随着电网建设的空前增长,带动电力***内二次设备的快速增长。保护测控设备的广泛应用,也对图形搭建、脚本控制机制提出了更为广泛、更为灵活的要求。传统的保护测控任务采用固件的方式,根据所需功能特性进行硬编码,当应用需求发生变化时,需要重新编码固件,烧写程序困难,灵活性和可操作性均较差,且需要耗费大量的人力和物力资源。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种任务处理方法、设备及计算机存储介质,能够解决传统顺序流程控制硬编码、烧写程序困难的问题。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种任务处理方法,所述方法包括:
配置任务流程信息,根据所述任务流程信息生成通过脚本语言表征的任务配置文件;
扫描所述任务配置文件,根据所述任务配置文件生成数据结构,基于所述数据结构生成至少一个任务;
分别根据所述至少一个任务发出至少一个动作信号,分别执行所述至少一个动作信号表征的动作。
上述方案中,所述基于所述数据结构生成至少一个任务之后,所述方法还包括:
根据所述至少一个任务的属性参数将所述至少一个任务分配到至少两个队列中;
其中,所述至少两个队列至少包括:需要人机交互的开环队列和无需人机交互的闭环队列。
上述方案中,所述基于所述至少一个任务的属性参数将所述至少一个任务分配到至少两个队列中,包括:
当所述至少一个任务中任一任务的属性参数存在特定参数时,将所述任务分配到需要人机交互的开环队列中;
当所述至少一个任务中任一任务的属性参数不存在所述特定参数时,将所述任务分配到无需人机交互的闭环队列中。
上述方案中,所述根据所述流程信息生成脚本语言表征的任务配置文件之后,所述方法还包括:
将所述任务配置文件存储在共享内存中;
相应的,所述扫描所述任务配置文件,根据所述任务配置文件生成数据结构,包括:
从所述共享内存中读取所述任务配置文件,将所述任务配置文件加载至***内存;
在所述***内存中按预设解析方式解析所述任务配置文件,生成至少包括符号表、语法树和解释器的数据结构。
上述方案中,所述配置任务流程信息,包括:
配置预设逻辑规则;所述预设逻辑规则至少包括:四则运算、逻辑运算、条件语句、跳转语句、循环语句和函数功能块;其中,所述函数功能块至少包括以下函数功能块的至少之一:开关分功能/合功能、档位升功能/降功能/停功能、软压板投功能/退功能、定值修改功能;
根据所述预设逻辑规则生成通过流程图表征的任务流程信息。
上述方案中,所述数据结构至少包括:符号表、语法树和解释器;所述分别根据所述至少一个任务发出动作信号,包括:
根据任务中的解释器的逻辑结果和所述任务中的功能调用属性参数所表征的功能触发回调函数,基于所述回调函数发出动作信号;
所述动作信号至少包括以下动作信号的至少之一:开关分信号/合信号、档位升信号/降信号/停信号、软压板投信号/退信号、定值修改信号。
上述方案中,所述分别执行所述至少一个动作信号表征的动作,所述动作至少包括以下动作的至少之一:开关分/合、档位升/降/停、软压板投/退、定值修改。
本发明实施例还提供了一种设备,所述设备包括:配置单元、第一生成单元、第二生成单元和执行单元;其中,
所述配置单元,用于配置任务流程信息;
所述第一生成单元,用于根据所述配置单元配置的所述任务流程信息生成通过脚本语言表征的任务配置文件;
所述第二生成单元,用于扫描所述第一生成单元生成的所述任务配置文件,根据所述任务配置文件生成数据结构,基于所述数据结构生成至少一个任务;
所述执行单元,用于分别根据所述第二生成单元生成的所述至少一个任务发出至少一个动作信号,分别执行所述至少一个动作信号表征的动作。
上述方案中,所述设备还包括分配单元,用于所述第二生成单元基于所述数据结构生成至少一个任务之后,根据所述至少一个任务的属性参数将所述至少一个任务分配到至少两个队列中;其中,所述至少两个队列至少包括:需要人机交互的开环队列和无需人机交互的闭环队列。
上述方案中,所述分配单元,用于当所述至少一个任务中任一任务的属性参数存在特定参数时,将所述任务分配到需要人机交互的开环队列中;当所述至少一个任务中任一任务的属性参数不存在所述特定参数时,将所述任务分配到无需人机交互的闭环队列中。
上述方案中,所述设备还包括第一存储单元和第二存储单元;
所述第一存储单元,用于所述第一生成单元生成所述任务配置文件后,存储所述任务配置文件;
所述第二生成单元,用于从所述第一存储单元中读取所述任务配置文件,将所述任务配置文件加载至所述第二存储单元,在所述第二存储单元中按预设解析方式解析所述任务配置文件,生成至少包括符号表、语法树和解释器的数据结构。
上述方案中,所述配置单元,用于配置预设逻辑规则;根据所述预设逻辑规则生成通过流程图表征的任务流程信息;所述预设逻辑规则至少包括:四则运算、逻辑运算、条件语句、跳转语句、循环语句和函数功能块;其中,所述函数功能块至少包括以下函数功能块的至少之一:开关分功能/合功能、档位升功能/降功能/停功能、软压板投功能/退功能、定值修改功能。
上述方案中,所述数据结构至少包括:符号表、语法树和解释器;
所述执行单元,用于根据任务中的解释器的逻辑结果和所述任务中的功能调用属性参数所表征的功能触发回调函数,基于所述回调函数发出动作信号;所述动作信号至少包括以下动作信号的至少之一:开关分信号/合信号、档位升信号/降信号/停信号、软压板投信号/退信号、定值修改信号。
上述方案中,所述执行单元,用于分别执行所述至少一个动作信号表征的动作,所述动作至少包括以下动作的至少之一:开关分/合、档位升/降/停、软压板投/退、定值修改。
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行本发明实施例所述的任务处理方法。
本发明实施例提供的任务处理方法、设备及计算机存储介质,通过配置任务流程信息,根据所述任务流程信息生成通过脚本语言表征的任务配置文件;扫描所述任务配置文件,根据所述任务配置文件生成数据结构,基于所述数据结构生成至少一个任务;分别根据所述至少一个任务发出至少一个动作信号,分别执行所述至少一个动作信号表征的动作。如此,采用本发明实施例的技术方案,提高了嵌入式***顺序流程控制的独立性和灵活性,解决了传统顺序流程控制硬编码、烧写程序困难,以及灵活性和可操作性不强的弊端,大大降低了人力和物力资源的消耗。
附图说明
图1为本发明实施例的任务处理方法的流程示意图;
图2为本发明实施例中任务处理的示意图;
图3为本发明实施例的设备的组成结构示意图;
图4为本发明实施例的任务处理方法的详细流程示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步详细的说明。
本发明实施例提供了一种任务处理方法。图1为本发明实施例的任务处理方法的流程示意图;如图1所示,所述任务处理方法包括:
步骤101:配置任务流程信息。
这里,所述配置任务流程信息,包括:
配置预设逻辑规则;所述预设逻辑规则至少包括:四则运算、逻辑运算、条件语句、跳转语句、循环语句和函数功能块;其中,所述函数功能块至少包括以下函数功能块的至少之一:开关分功能/合功能、档位升功能/降功能/停功能、软压板投功能/退功能、定值修改功能;
根据所述预设逻辑规则生成通过流程图表征的任务流程信息。
具体的,所述配置预设逻辑规则按照脚本语言要求进行配置,即:按照脚本语言要求配置基本语言要素,所述基本语言要素至少包括:四则运算、逻辑运算、条件语句(语句关键字段如if/else)、跳转语句(语句关键字段如goto)、循环语句(语句关键字段如dowhile),并且按照脚本语言要求配置函数功能块,所述函数功能块至少包括以下函数功能块的至少之一:开关分/合(关键字段相应如cbOpen或cbClose)、档位升/降/停(关键字段相应如tapeUp、tapeDown、tapeStop)、软压板投/退、定值修改;其中,所述四则运算包括:加(+)运算、减(-)运算、乘(*)运算和除(/)运算;所述逻辑运算包括:逻辑与(&&)运算、逻辑或(||)运算、逻辑非(!)运算、逻辑异或(^)运算;所述预设逻辑规则配置完成后,基于所述预设逻辑规则按照应用需求配置生成流程图表征的任务流程信息,不同的应用需求可配置生成不同的任务流程信息;因此,本发明实施例中,用户可按不同的应用需求配置生成不同的任务流程信息,从而无需重新编码固件及烧写全部的应用程序。
步骤102:根据所述任务流程信息生成通过脚本语言表征的任务配置文件。
这里,所述任务配置文件至少包括以下关键字段:
文件概要字段(GENERAL),所述GENERAL字段描述了文件格式版本、生成时间、智能设备名称(IEDname)、智能设备描述(IEDDesc)等属性,用于配置文本的管理;
文件尺寸字段(SIZE),所述SIZE字段描述了输入数量、输出数量、公式数量及脚本数量,为建立语法关系做概要说明;
输入变量字段(INPUT_x),所述INPUT_x字段描述输入的属性,包括:信号特征、信号来源、数据引用(DataRef)、短地址、描述等;
输出变量字段(OUTPUT_x),所述OUTPUT_x字段描述输出的属性,包括:行为特征,信号虚实特征、短地址、描述、参数等;
公式(FORMULA_x)字段,所述FORMULA_x字段描述公式表达式,将输入与输出关联起来;
脚本(SCRIPT_x)字段,所述SCRIPT_x字段描述脚本规则,采用所述OUTPUT_x字段等结果作为变量参与脚本,完成顺序流程控制。
文件校验(FILE_CHECK)字段,所述FILE_CHECK字段描述文件校验和,防止文件损坏或者被篡改。
步骤103:扫描所述任务配置文件,根据所述任务配置文件生成数据结构,基于所述数据结构生成至少一个任务。
本实施例中所述的任务处理方法可应用于具有共享内存和***内存的设备中;所述共享内存可以是所述设备中主要针对操作***的存储空间;所述***内存可以是所述设备中主要针对实时性操作的存储空间;则步骤102所述的根据所述任务流程信息生成通过脚本语言表征的任务配置文件之后,所述方法还包括:
将所述任务配置文件存储在共享内存中;
相应的,本步骤中所述的扫描所述任务配置文件,根据所述任务配置文件生成数据结构,包括:从所述共享内存中读取所述任务配置文件,将所述任务配置文件加载至***内存;在所述***内存中按预设解析方式解析所述任务配置文件,生成至少包括符号表、语法树和解释器的数据结构。
具体的,将所述任务配置文件加载至***内存,解析所述任务配置文件,所述解析方式包括词法扫描、语法扫描、语义分析等过程,基于所述任务配置文件中的各个字段,具体为:根据输入变量字段(INPUT_x)、输出变量字段(OUTPUT_x)、公式(FORMULA_x)字段和脚本(SCRIPT_x)字段形成关联关系,基于所述关联关系生成符号表、表达树和解释器等数据结构。
依据本发明实施例的另一实施例中,所述基于所述数据结构生成至少一个任务之后,所述方法还包括:根据所述至少一个任务的属性参数将所述至少一个任务分配到至少两个队列中;其中,所述至少两个队列至少包括:需要人机交互的开环队列和无需人机交互的闭环队列。
所述基于所述至少一个任务的属性参数将所述至少一个任务分配到至少两个队列中,包括:当所述至少一个任务中任一任务的属性参数存在特定参数时,将所述任务分配到需要人机交互的开环队列中;当所述至少一个任务中任一任务的属性参数不存在所述特定参数时,将所述任务分配到无需人机交互的闭环队列中。
具体的,本实施例中所述的任务通过数据结构生成,因此所述任务也通过所述数据结构表征;这里,所述任务的属性参数具体可以是所述数据结构中语法树中提取的语言特征参数,当所述语言特征参数中包括如发送报告(sendReport)、等待用户确认令(waitForUserCmd)等表征人机交互接口的特定参数时,将所述任务分配至需要人机交互的开环队列中,设备中提供开环运行模式,需要人机交互操作决定相应任务之后的行为;当所述语言特征参数中不包括上述特定参数时,将所述任务分配到无需人机交互的闭环队列中,设备中提供闭环运行模式,无需人机交互操作,为相应的应用提供独立出口。
本实施例中,所述至少一个任务形成至少一个独立进程,或者形成一个独立进程下的若干个线程。
步骤104:分别根据所述至少一个任务发出至少一个动作信号,分别执行所述至少一个动作信号表征的动作。
这里,所述分别根据所述至少一个任务发出动作信号,包括:根据任务中的解释器的逻辑结果和所述任务中的功能调用属性参数所表征的功能触发回调函数,基于所述回调函数发出动作信号;其中,所述动作信号至少包括以下动作信号的至少之一:开关分信号/合信号、档位升信号/降信号/停信号、软压板投信号/退信号、定值修改信号。
基于上述回调函数发出动作信号分别执行所述至少一个动作信号表征的动作,所述动作至少包括以下动作的至少之一:开关分/合、档位升/降/停、软压板投/退、定值修改。
其中,所述“开关分/合”表征开关的分闸/合闸(即线路的断开/连通),所述开关分/合可用于变电站的开关设备,当所述动作为“开关分”时,表征所述开关分闸操作,即输电线路断开;相应的,当所述动作为“开关合”时,表征所述开关合闸操作,即输电线路连通。
所述“档位升/降/停”可用于变电站的变压器中,当输电电压出现抖动(即输电电压升高或降低)时,变压器需调节输电电压,根据所述输电电压的抖动情况,相应的降低或升高输电电压,则“档位升”表征升高输电电压;“档位降”表征降低输电电压;“档位停”表征停止对输电电压的调整。
所述“软压板投/退”可以是变电站的任意功能开关,所述“软压板投”表征所述功能开关的开启;所述“软压板退”表征所述功能开关的关闭。具体的,所述功能开关为通过软件程序编写的开关,即虚拟开关。所述功能开关可通过赋值“0”或“1”表征所述功能开关的关闭或开启。
所述“定值修改”可以是变电站中的任意可设定的数值,例如分闸脉宽500毫秒。
具体的,当所述至少一个任务形成至少一个独立进程,或者形成一个独立进程下的若干个线程时,根据所述进程或线程中的解释器的逻辑结果和所述任务中的功能调用属性参数所表征的功能触发回调函数,基于所述回调函数发出动作信号,从而触发相应的触发表,执行所述触发表表征的动作。这里,所述至少一个任务实例化为至少一个任务实体,所述任务实体用语法树等数据结构表征,这些数据结构的执行依赖于解释器;***中提供独立的解释器库,所述解释器库为动态库模式,为所有任务提供独立的代码空间和部分***数据空间;各任务通过库调用解释执行所述任务,最终获得一系列的动作,例如开关的开/合。
本实施例中采用并行机制,将开环队列和闭环队列实例化为至少一个任务实体,各任务实体之间互不交互,独立执行;图2为本发明实施例中任务处理的示意图;如图2所示,任务集合中实例化为N个任务,如图中所示的任务1、任务2至任务N;各任务实体由解释器解释执行;根据所述解释器的逻辑结果和所述任务中的功能调用属性参数所表征的功能触发回调函数,同步触发回调函数,从而触发相应的触发表,向***总线发出动作信号,引起控制、顺序控制(SC,SequenceControl)、自动电压控制(AVR,AutoVoltageRegular)、自动发电控制(AGC,AutoGenerationControl)等动作行为。
依据本发明实施例的另一实施例中,每个任务的数据结构中都包括动作执行的次数,所述动作执行的次数表征相应任务的生命周期;当任务的动作执行了相应的次数后,说明所述任务的生命周期结束;当所述任务的生命周期结束时,自动析构所述任务相应的资源。
采用本发明实施例的技术方案,提高了嵌入式***顺序流程控制的独立性和灵活性,解决了传统顺序流程控制硬编码、烧写程序困难,以及灵活性和可操作性不强的弊端,大大降低了人力和物力资源的消耗。
本发明实施例还提供了一种设备。图3为本发明实施例的设备的组成结构示意图;如图3所示,所述设备包括:配置单元31、第一生成单元32、第二生成单元33和执行单元34;其中,
所述配置单元31,用于配置任务流程信息;
所述第一生成单元32,用于根据所述配置单元31配置的所述任务流程信息生成通过脚本语言表征的任务配置文件;
所述第二生成单元33,用于扫描所述第一生成单元32生成的所述任务配置文件,根据所述任务配置文件生成数据结构,基于所述数据结构生成至少一个任务;
所述执行单元34,用于分别根据所述第二生成单元33生成的所述至少一个任务发出至少一个动作信号,分别执行所述至少一个动作信号表征的动作。
本实施例中,所述配置单元31配置任务流程信息具体包括:配置预设逻辑规则;根据所述预设逻辑规则生成通过流程图表征的任务流程信息;其中,所述预设逻辑规则至少包括:四则运算、逻辑运算、条件语句、跳转语句、循环语句和函数功能块;其中,所述函数功能块至少包括以下函数功能块的至少之一:开关分功能/合功能、档位升功能/降功能/停功能、软压板投功能/退功能、定值修改功能。
具体的,所述配置单元31配置预设逻辑规则按照脚本语言要求进行配置,即:按照脚本语言要求配置基本语言要素,所述基本语言要素至少包括:四则运算、逻辑运算、条件语句(语句关键字段如if/else)、跳转语句(语句关键字段如goto)、循环语句(语句关键字段如dowhile),并且按照脚本语言要求配置函数功能块,所述函数功能块至少包括以下函数功能块的至少之一:开关分/合(关键字段相应如cbOpen或cbClose)、档位升/降/停(关键字段相应如tapeUp、tapeDown、tapeStop)、软压板投/退、定值修改;其中,所述四则运算包括:加(+)运算、减(-)运算、乘(*)运算和除(/)运算;所述逻辑运算包括:逻辑与(&&)运算、逻辑或(||)运算、逻辑非(!)运算、逻辑异或(^)运算;所述预设逻辑规则配置完成后,基于所述预设逻辑规则按照应用需求配置生成流程图表征的任务流程信息,不同的应用需求可配置生成不同的任务流程信息;因此,本发明实施例中,用户可按不同的应用需求配置生成不同的任务流程信息,从而无需重新编码固件及烧写全部的应用程序。
这里,所述任务配置文件至少包括以下关键字段:
文件概要字段(GENERAL),所述GENERAL字段描述了文件格式版本、生成时间、智能设备名称(IEDname)、智能设备描述(IEDDesc)等属性,用于配置文本的管理;
文件尺寸字段(SIZE),所述SIZE字段描述了输入数量、输出数量、公式数量及脚本数量,为建立语法关系做概要说明;
输入变量字段(INPUT_x),所述INPUT_x字段描述输入的属性,包括:信号特征、信号来源、DataRef、短地址、描述等;
输出变量字段(OUTPUT_x),所述OUTPUT_x字段描述输出的属性,包括:行为特征,信号虚实特征、短地址、描述、参数等;
公式(FORMULA_x)字段,所述FORMULA_x字段描述公式表达式,将输入与输出关联起来;
脚本(SCRIPT_x)字段,所述SCRIPT_x字段描述脚本规则,采用所述OUTPUT_x字段等结果作为变量参与脚本,完成顺序流程控制。
文件校验(FILE_CHECK)字段,所述FILE_CHECK字段描述文件校验和,防止文件损坏或者被篡改。
在另一实施例中,所述设备还包括分配单元35,用于所述第二生成单元33基于所述数据结构生成至少一个任务之后,根据所述至少一个任务的属性参数将所述至少一个任务分配到至少两个队列中;其中,所述至少两个队列至少包括:需要人机交互的开环队列和无需人机交互的闭环队列。
其中,所述分配单元35,用于当所述至少一个任务中任一任务的属性参数存在特定参数时,将所述任务分配到需要人机交互的开环队列中;当所述至少一个任务中任一任务的属性参数不存在所述特定参数时,将所述任务分配到无需人机交互的闭环队列中。
具体的,本实施例中所述的任务通过数据结构生成,因此所述任务也通过所述数据结构表征;这里,所述任务的属性参数具体可以是所述数据结构中语法树中提取的语言特征参数,当所述语言特征参数中包括如发送报告(sendReport)、等待用户确认令(waitForUserCmd)等表征人机交互接口的特定参数时,将所述任务分配至分配到需要人机交互的开环队列中,设备中提供开环运行模式,需要人机交互操作决定相应任务之后的行为;当所述语言特征参数中不包括上述特定参数时,将所述任务分配到无需人机交互的闭环队列中,设备中提供闭环运行模式,无需人机交互操作,为相应的应用提供独立出口。
在另一实施例中,所述设备还包括第一存储单元36和第二存储单元37;
所述第一存储单元36,用于所述第一生成单元32生成所述任务配置文件后,存储所述任务配置文件;
所述第二生成单元33,用于从所述第一存储单元36中读取所述任务配置文件,将所述任务配置文件加载至所述第二存储单元37,在所述第二存储单元37中按预设解析方式解析所述任务配置文件,生成至少包括符号表、语法树和解释器的数据结构。
本实施例中所述设备还具有共享内存和***内存中;所述共享内存可以是所述设备中主要针对操作***的存储空间;所述***内存可以是所述设备中主要针对实时性操作的存储空间;则所述第一生成单元32根据所述任务流程信息生成通过脚本语言表征的任务配置文件之后,将所述任务配置文件存储在共享内存中;
相应的,所述第二生成单元33扫描所述任务配置文件,根据所述任务配置文件生成数据结构,包括:从所述共享内存中读取所述任务配置文件,将所述任务配置文件加载至***内存;在所述***内存中按预设解析方式解析所述任务配置文件,生成至少包括符号表、语法树和解释器的数据结构。
具体的,所述第二生成单元33将所述任务配置文件加载至***内存,解析所述任务配置文件,所述解析方式包括词法扫描、语法扫描、语义分析等过程,基于所述任务配置文件中的各个字段,具体为:根据输入变量字段(INPUT_x)、输出变量字段(OUTPUT_x)、公式(FORMULA_x)字段和脚本(SCRIPT_x)字段形成关联关系,基于所述关联关系生成符号表、表达树和解释器等数据结构。
在另一具体实施例中,所述配置单元31,用于配置预设逻辑规则;根据所述预设逻辑规则生成通过流程图表征的任务流程信息;所述预设逻辑规则至少包括:四则运算、逻辑运算、条件语句、跳转语句、循环语句和函数功能块;其中,所述函数功能块至少包括:开关分/合、档位升/降/停、软压板投/退、定值修改。
基于上述实施例中,所述数据结构至少包括:符号表、语法树和解释器;
所述执行单元34,用于根据任务中的解释器的逻辑结果和所述任务中的功能调用属性参数所表征的功能触发回调函数,基于所述回调函数发出动作信号;所述动作信号至少包括以下动作信号的至少之一:开关分信号/合信号、档位升信号/降信号/停信号、软压板投信号/退信号、定值修改信号。
相应的,所述执行单元34,用于分别执行所述至少一个动作信号表征的动作,所述动作至少包括以下动作的至少之一:开关分/合、档位升/降/停、软压板投/退、定值修改。
具体的,所述至少一个任务形成至少一个独立进程,或者形成一个独立进程下的若干个线程,根据所述进程或线程中的解释器的逻辑结果和所述任务中的功能调用属性参数所表征的功能触发回调函数,基于所述回调函数发出动作信号,从而触发相应的触发表,执行所述触发表表征的动作。
在本实施例中,所述配置单元31、第一生成单元32、第二生成单元33和执行单元34、分配单元35在实际应用中,可由所述设备中的中央处理器(CPU,CentralProcessingUnit)、数字信号处理器(DSP,DigitalSignalProcessor)或可编程门阵列(FPGA,Field-ProgrammableGateArray)实现。
本发明实施例还提供了一种任务处理方法;图4为本发明实施例的任务处理方法的详细流程示意图;如图4所示,所述任务处理方法包括:
步骤401:配置任务流程信息。
本实施例中,所述任务流程信息具体可通过任务流程控制图表示;则本步骤首先配置预设逻辑规则;根据所述预设逻辑规则生成通过流程图表征的任务流程信息;其中,所述预设逻辑规则至少包括:四则运算、逻辑运算、条件语句、跳转语句、循环语句和函数功能块;其中,所述函数功能块至少包括以下函数功能块的至少之一:开关分功能/合功能、档位升功能/降功能/停功能、软压板投功能/退功能、定值修改功能。
具体的,所述配置预设逻辑规则按照脚本语言要求进行配置,即:按照脚本语言要求配置基本语言要素,所述基本语言要素至少包括:四则运算、逻辑运算、条件语句(语句关键字段如if/else)、跳转语句(语句关键字段如goto)、循环语句(语句关键字段如dowhile),并且按照脚本语言要求配置函数功能块,所述函数功能块至少包括以下函数功能块的至少之一:开关分/合(关键字段相应如cbOpen或cbClose)、档位升/降/停(关键字段相应如tapeUp、tapeDown、tapeStop)、软压板投/退、定值修改;其中,所述四则运算包括:加(+)运算、减(-)运算、乘(*)运算和除(/)运算;所述逻辑运算包括:逻辑与(&&)运算、逻辑或(||)运算、逻辑非(!)运算、逻辑异或(^)运算;所述预设逻辑规则配置完成后,基于所述预设逻辑规则按照应用需求配置生成流程图表征的任务流程信息,不同的应用需求可配置生成不同的任务流程信息;因此,本发明实施例中,用户可按不同的应用需求配置生成不同的任务流程信息,从而无需重新编码固件及烧写全部的应用程序。
步骤402:根据所述任务流程信息生成任务配置文件。
这里,所述任务配置文件至少包括以下关键字段:
文件概要字段(GENERAL),所述GENERAL字段描述了文件格式版本、生成时间、智能设备名称(IEDname)、智能设备描述(IEDDesc)等属性,用于配置文本的管理;
文件尺寸字段(SIZE),所述SIZE字段描述了输入数量、输出数量、公式数量及脚本数量,为建立语法关系做概要说明;
输入变量字段(INPUT_x),所述INPUT_x字段描述输入的属性,包括:信号特征、信号来源、DataRef、短地址、描述等;
输出变量字段(OUTPUT_x),所述OUTPUT_x字段描述输出的属性,包括:行为特征,信号虚实特征、短地址、描述、参数等;
公式(FORMULA_x)字段,所述FORMULA_x字段描述公式表达式,将输入与输出关联起来;
脚本(SCRIPT_x)字段,所述SCRIPT_x字段描述脚本规则,采用OUTPUT_x字段等结果作为变量参与脚本,完成顺序流程控制。
文件校验(FILE_CHECK)字段,所述FILE_CHECK字段描述文件校验和,防止文件损坏或者被篡改。
步骤403:操作***将所述任务配置文件加载到共享内存。
本实施例中所述的任务处理方法可应用于具有共享内存和***内存的设备中;所述共享内存可以是所述设备中主要针对操作***的存储空间;所述***内存可以是所述设备中主要针对实时性操作的存储空间
步骤404:处理器从所述共享内存中读取所述任务配置文件,对所述任务配置文件进行循环冗余校验码(CRC,CyclicRedundancyCheck)校验。
这里,所述任务配置文件中的预设字段设置有校验码,所述预设字段如所述任务配置文件中的最后四个字节;所述处理器从所述任务配置文件的文件头中读取二进制信息校验码,按预设算法对所述二进制校验码进行计算,当计算后的二进制校验码与所述任务配置文件中的校验码匹配一致时,说明CRC校验成功,文件未被篡改或破坏,继续执行后续操作流程;当计算后的二进制校验码与所述任务配置文件中的校验码匹配不一致时,说明文件被篡改或破坏,则不执行后续操作流程。
步骤405:根据所述任务配置文件依次建立概要表项、输入表项、输出表项、公式表项、脚本表项。
其中,可根据所述任务配置文件中的GENERAL字段和SIZE字段建立概要表项;可根据所述任务配置文件中的INPUT_x字段建立输入表项;可根据所述任务配置文件中的OUTPUT_x字段建立输出表项;可根据所述任务配置文件中的FORMULA_x字段建立公式表项;可根据所述任务配置文件中的SCRIPT_x字段建立脚本表项。
步骤406:根据输入表项、输出表项、公式表项、脚本表项等要素,经过词法扫描、语法扫描、语义分析建立符号表、语法树及解释器等数据结构。
步骤407:将至少一个任务分配到至少两个队列,并行处理所述至少一个任务。
本步骤中,所述至少两个队列至少包括:需要人机交互的开环队列和无需人机交互的闭环队列。当所述至少一个任务中任一任务的属性参数存在特定参数时,将所述任务分配到需要人机交互的开环队列中;当所述至少一个任务中任一任务的属性参数不存在所述特定参数时,将所述任务分配到无需人机交互的闭环队列中。
具体的,本实施例中所述的任务通过数据结构生成,因此所述任务也通过所述数据结构表征;这里,所述任务的属性参数具体可以是所述数据结构中语法树中提取的语言特征参数,当所述语言特征参数中包括如发送报告(sendReport)、等待用户确认令(waitForUserCmd)等表征人机交互接口的特定参数时,将所述任务分配至分配到需要人机交互的开环队列中,设备中提供开环运行模式,需要人机交互操作决定相应任务之后的行为;当所述语言特征参数中不包括上述特定参数时,将所述任务分配到无需人机交互的闭环队列中,设备中提供闭环运行模式,无需人机交互操作,为相应的应用提供独立出口。无需人为配置所述特定参数。
本实施例中,所述至少一个任务形成至少一个独立进程,或者形成一个独立进程下的若干个线程;并且,将开环队列和闭环队列实例化为至少一个任务实体,各任务实体之间互不交互,独立执行。
步骤408:通过库调用,解释执行所述至少一个任务。
这里,所述至少一个任务实例化为至少一个任务实体,所述任务实体用语法树等数据结构表征,这些数据结构的执行依赖于解释器;***中提供独立的解释器库,所述解释器库为动态库模式,为所有任务提供独立的代码空间和部分***数据空间;各任务通过库调用解释执行所述任务。
步骤409:从触发表项中提取触发行为,触发回调函数,向***总线发出动作信号;所述动作信号至少包括以下动作信号的至少之一:开关分信号/合信号、档位升信号/降信号/停信号、软压板投信号/退信号、定值修改信号。
这里,当所述至少一个任务形成至少一个独立进程,或者形成一个独立进程下的若干个线程时,根据所述进程或线程中的解释器的逻辑结果和所述任务中的功能调用属性参数所表征的功能触发回调函数,基于所述回调函数发出动作信号,从而触发相应的触发表,执行所述触发表表征的动作,从而向***总线发出动作信号,引起控制、顺序控制(SC,SequenceControl)、自动电压控制(AVR,AutoVoltageRegular)、自动发电控制(AGC,AutoGenerationControl)等动作行为。
基于上述动作信号,分别执行所述至少一个动作信号表征的动作,所述动作至少包括以下动作的至少之一:开关分/合、档位升/降/停、软压板投/退、定值修改。
其中,所述“开关分/合”表征开关的分闸/合闸(即线路的断开/连通),所述开关分/合可用于变电站的开关设备,当所述动作为“开关分”时,表征所述开关分闸操作,即输电线路断开;相应的,当所述动作为“开关合”时,表征所述开关合闸操作,即输电线路连通。
所述“档位升/降/停”可用于变电站的变压器中,当输电电压出现抖动(即输电电压升高或降低)时,变压器需调节输电电压,根据所述输电电压的抖动情况,相应的降低或升高输电电压,则“档位升”表征升高输电电压;“档位降”表征降低输电电压;“档位停”表征停止对输电电压的调整。
所述“软压板投/退”可以是变电站的任意功能开关,所述“软压板投”表征所述功能开关的开启;所述“软压板退”表征所述功能开关的关闭。具体的,所述功能开关为通过软件程序编写的开关,即虚拟开关。所述功能开关可通过赋值“0”或“1”表征所述功能开关的关闭或开启。
所述“定值修改”可以是变电站中的任意可设定的数值,例如分闸脉宽500毫秒。
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行如图1或图4所示的本发明实施例所述的任务处理方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (15)
1.一种任务处理方法,其特征在于,所述方法包括:
配置任务流程信息,根据所述任务流程信息生成通过脚本语言表征的任务配置文件;
扫描所述任务配置文件,根据所述任务配置文件生成数据结构,基于所述数据结构生成至少一个任务;
分别根据所述至少一个任务发出至少一个动作信号,分别执行所述至少一个动作信号表征的动作。
2.根据权利要求1所述的方法,其特征在于,所述基于所述数据结构生成至少一个任务之后,所述方法还包括:
根据所述至少一个任务的属性参数将所述至少一个任务分配到至少两个队列中;
其中,所述至少两个队列至少包括:需要人机交互的开环队列和无需人机交互的闭环队列。
3.根据权利要求2所述的方法,其特征在于,所述基于所述至少一个任务的属性参数将所述至少一个任务分配到至少两个队列中,包括:
当所述至少一个任务中任一任务的属性参数存在特定参数时,将所述任务分配到需要人机交互的开环队列中;
当所述至少一个任务中任一任务的属性参数不存在所述特定参数时,将所述任务分配到无需人机交互的闭环队列中。
4.根据权利要求1所述的方法,其特征在于,所述根据所述流程信息生成脚本语言表征的任务配置文件之后,所述方法还包括:
将所述任务配置文件存储在共享内存中;
相应的,所述扫描所述任务配置文件,根据所述任务配置文件生成数据结构,包括:
从所述共享内存中读取所述任务配置文件,将所述任务配置文件加载至***内存;
在所述***内存中按预设解析方式解析所述任务配置文件,生成至少包括符号表、语法树和解释器的数据结构。
5.根据权利要求1所述的方法,其特征在于,所述配置任务流程信息,包括:
配置预设逻辑规则;所述预设逻辑规则至少包括:四则运算、逻辑运算、条件语句、跳转语句、循环语句和函数功能块;其中,所述函数功能块至少包括以下函数功能块的至少之一:开关分功能/合功能、档位升功能/降功能/停功能、软压板投功能/退功能、定值修改功能;
根据所述预设逻辑规则生成通过流程图表征的任务流程信息。
6.根据权利要求5所述的方法,其特征在于,所述数据结构至少包括:符号表、语法树和解释器;所述分别根据所述至少一个任务发出动作信号,包括:
根据任务中的解释器的逻辑结果和所述任务中的功能调用属性参数所表征的功能触发回调函数,基于所述回调函数发出动作信号;
所述动作信号至少包括以下动作信号的至少之一:开关分信号/合信号、档位升信号/降信号/停信号、软压板投信号/退信号、定值修改信号。
7.根据权利要求6所述的方法,其特征在于,所述分别执行所述至少一个动作信号表征的动作,所述动作至少包括以下动作的至少之一:开关分/合、档位升/降/停、软压板投/退、定值修改。
8.一种设备,其特征在于,所述设备包括:配置单元、第一生成单元、第二生成单元和执行单元;其中,
所述配置单元,用于配置任务流程信息;
所述第一生成单元,用于根据所述配置单元配置的所述任务流程信息生成通过脚本语言表征的任务配置文件;
所述第二生成单元,用于扫描所述第一生成单元生成的所述任务配置文件,根据所述任务配置文件生成数据结构,基于所述数据结构生成至少一个任务;
所述执行单元,用于分别根据所述第二生成单元生成的所述至少一个任务发出至少一个动作信号,分别执行所述至少一个动作信号表征的动作。
9.根据权利要求8所述的设备,其特征在于,所述设备还包括分配单元,用于所述第二生成单元基于所述数据结构生成至少一个任务之后,根据所述至少一个任务的属性参数将所述至少一个任务分配到至少两个队列中;其中,所述至少两个队列至少包括:需要人机交互的开环队列和无需人机交互的闭环队列。
10.根据权利要求9所述的设备,其特征在于,所述分配单元,用于当所述至少一个任务中任一任务的属性参数存在特定参数时,将所述任务分配到需要人机交互的开环队列中;当所述至少一个任务中任一任务的属性参数不存在所述特定参数时,将所述任务分配到无需人机交互的闭环队列中。
11.根据权利要求8所述的设备,其特征在于,所述设备还包括第一存储单元和第二存储单元;
所述第一存储单元,用于所述第一生成单元生成所述任务配置文件后,存储所述任务配置文件;
所述第二生成单元,用于从所述第一存储单元中读取所述任务配置文件,将所述任务配置文件加载至所述第二存储单元,在所述第二存储单元中按预设解析方式解析所述任务配置文件,生成至少包括符号表、语法树和解释器的数据结构。
12.根据权利要求8所述的设备,其特征在于,所述配置单元,用于配置预设逻辑规则;根据所述预设逻辑规则生成通过流程图表征的任务流程信息;所述预设逻辑规则至少包括:四则运算、逻辑运算、条件语句、跳转语句、循环语句和函数功能块;其中,所述函数功能块至少包括以下函数功能块的至少之一:开关分功能/合功能、档位升功能/降功能/停功能、软压板投功能/退功能、定值修改功能。
13.根据权利要求12所述的设备,其特征在于,所述数据结构至少包括:符号表、语法树和解释器;
所述执行单元,用于根据任务中的解释器的逻辑结果和所述任务中的功能调用属性参数所表征的功能触发回调函数,基于所述回调函数发出动作信号;所述动作信号至少包括以下动作信号的至少之一:开关分信号/合信号、档位升信号/降信号/停信号、软压板投信号/退信号、定值修改信号。
14.根据权利要求13所述的设备,其特征在于,所述执行单元,用于分别执行所述至少一个动作信号表征的动作,所述动作至少包括以下动作的至少之一:开关分/合、档位升/降/停、软压板投/退、定值修改。
15.一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1至7任一项所述的任务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410626094.3A CN105630581A (zh) | 2014-11-07 | 2014-11-07 | 一种任务处理方法、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410626094.3A CN105630581A (zh) | 2014-11-07 | 2014-11-07 | 一种任务处理方法、设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105630581A true CN105630581A (zh) | 2016-06-01 |
Family
ID=56045560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410626094.3A Pending CN105630581A (zh) | 2014-11-07 | 2014-11-07 | 一种任务处理方法、设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105630581A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107632819A (zh) * | 2016-07-14 | 2018-01-26 | 南京南瑞继保电气有限公司 | 一种基于符号表的可编程逻辑调试的方法和*** |
CN108762824A (zh) * | 2018-04-18 | 2018-11-06 | 青岛海尔科技有限公司 | 一种基于配置文件的设备逻辑处理方法及装置 |
CN110061861A (zh) * | 2019-03-21 | 2019-07-26 | 广东瑞恩科技有限公司 | 互联网协议配置方法、装置、设备及计算机可读存储介质 |
CN110597611A (zh) * | 2019-09-19 | 2019-12-20 | 中国银行股份有限公司 | 任务调度方法及装置 |
CN113947071A (zh) * | 2021-10-21 | 2022-01-18 | 北京四方继保工程技术有限公司 | 一种变电站五防文件的解析执行***及方法 |
CN114816349A (zh) * | 2022-04-22 | 2022-07-29 | 珠海市奥德维科技有限公司 | 一种自动化设备控制软件开发方法、***和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090276274A1 (en) * | 2007-03-15 | 2009-11-05 | Fujitsu Limited | Program and apparatus for workflow analysis |
CN101630275A (zh) * | 2009-07-31 | 2010-01-20 | 清华大学 | 一种实现生成循环任务配置信息的方法和装置 |
CN102751785A (zh) * | 2012-05-21 | 2012-10-24 | 中国电力科学研究院 | 一种模块化顺序控制***及其实现方法 |
CN102799515A (zh) * | 2011-05-24 | 2012-11-28 | 腾讯科技(深圳)有限公司 | 应用程序测试方法及装置 |
CN103177045A (zh) * | 2011-12-26 | 2013-06-26 | ***通信集团广东有限公司 | 文本解析方法及装置 |
-
2014
- 2014-11-07 CN CN201410626094.3A patent/CN105630581A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090276274A1 (en) * | 2007-03-15 | 2009-11-05 | Fujitsu Limited | Program and apparatus for workflow analysis |
CN101630275A (zh) * | 2009-07-31 | 2010-01-20 | 清华大学 | 一种实现生成循环任务配置信息的方法和装置 |
CN102799515A (zh) * | 2011-05-24 | 2012-11-28 | 腾讯科技(深圳)有限公司 | 应用程序测试方法及装置 |
CN103177045A (zh) * | 2011-12-26 | 2013-06-26 | ***通信集团广东有限公司 | 文本解析方法及装置 |
CN102751785A (zh) * | 2012-05-21 | 2012-10-24 | 中国电力科学研究院 | 一种模块化顺序控制***及其实现方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107632819A (zh) * | 2016-07-14 | 2018-01-26 | 南京南瑞继保电气有限公司 | 一种基于符号表的可编程逻辑调试的方法和*** |
CN108762824A (zh) * | 2018-04-18 | 2018-11-06 | 青岛海尔科技有限公司 | 一种基于配置文件的设备逻辑处理方法及装置 |
CN110061861A (zh) * | 2019-03-21 | 2019-07-26 | 广东瑞恩科技有限公司 | 互联网协议配置方法、装置、设备及计算机可读存储介质 |
CN110597611A (zh) * | 2019-09-19 | 2019-12-20 | 中国银行股份有限公司 | 任务调度方法及装置 |
CN113947071A (zh) * | 2021-10-21 | 2022-01-18 | 北京四方继保工程技术有限公司 | 一种变电站五防文件的解析执行***及方法 |
CN114816349A (zh) * | 2022-04-22 | 2022-07-29 | 珠海市奥德维科技有限公司 | 一种自动化设备控制软件开发方法、***和存储介质 |
CN114816349B (zh) * | 2022-04-22 | 2023-09-29 | 珠海市奥德维科技有限公司 | 一种自动化设备控制软件开发方法、***和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105630581A (zh) | 一种任务处理方法、设备及计算机存储介质 | |
US11215960B2 (en) | Engineering apparatus, control method of engineering apparatus, and program for generating executable code for controlling target hardware | |
CN108959068A (zh) | 软件界面测试方法、设备及存储介质 | |
CN106156165A (zh) | 异构数据源之间的数据同步方法和装置 | |
CN103984612A (zh) | 一种基于hpl工具的无人值守压力测试的方法 | |
CN104331294A (zh) | 一种可视化程序生成方法和装置 | |
CN106547522B (zh) | 一种流应用优化的方法及装置 | |
CN109614093B (zh) | 可视化智能合约***以及智能合约的处理方法 | |
CN103020310A (zh) | 一种基于脚本实现电力监控***功能扩展和定制的方法 | |
CN105183547A (zh) | 一种用户界面的任务调度方法和装置 | |
CN102346670A (zh) | 变电站图形化逻辑组态工具模块智能排序*** | |
CN107179910A (zh) | 一种在线编辑即时生效的逻辑组态方法 | |
CN109359038A (zh) | 一种基于Qt和Lua组合实现组态测试***、实现方法及设备 | |
CN102779091A (zh) | 测试转化方法及装置 | |
CN110705891A (zh) | 一种基于高可配可变更的数据处理方法 | |
CN107577521A (zh) | 一种虚拟资源管理方法及装置 | |
CN1329818C (zh) | 基于纯文本的命令脚本文件的人机命令实现方法 | |
CN106547606B (zh) | 堆栈自检方法及装置 | |
CN113609101A (zh) | 实时数据任务的发布方法、装置、电子设备及存储介质 | |
CN110908994B (zh) | 数据模型处理方法、***、电子设备及可读介质 | |
CN104102529A (zh) | 一种基于有限状态机的存储虚拟化管理***及方法 | |
CN102306109A (zh) | 一种实现通讯管理机内部逻辑可编程方法 | |
CN104091225A (zh) | 面向对象的电力***调度操作票*** | |
CN108614694A (zh) | 一种优化代码的方法和装置 | |
CN104731900A (zh) | 一种Hive调度方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160601 |