设备控制方法、装置及电子设备与流程

文档序号:32788517发布日期:2023-01-03 20:13阅读:36来源:国知局
设备控制方法、装置及电子设备与流程

1.本发明涉及计算机控制技术领域,具体而言,涉及一种设备控制方法、装置及电子设备。


背景技术:

2.目前的设备控制往往只能支持对单一设备的数据进行控制。
3.当需要批量对设备进行控制时,通常需要操作人员逐条发下控制设备数据。这种控制方式可能导致控制参数填写错误,控制步骤顺序出错,控制等待超时,控制执行流程过快或者过慢等问题,使得生产环境中可能出现不可逆的生产事故。


技术实现要素:

4.本发明的目的在于,针对上述现有技术中的不足,提供一种设备控制方法、装置及电子设备,以便基于动作状态实现对设备的联动控制。
5.为实现上述目的,本技术实施例采用的技术方案如下:
6.第一方面,本技术实施例提供了一种设备控制方法,包括:
7.判断预设联动配置是否满足预设联动触发条件,其中,所述预设联动配置包括:至少一个联动动作组的动作配置参数,每个动作配置参数包括:动作执行参数、动作设备参数、动作约束参数;
8.若所述预设联动配置满足所述预设联动触发条件,则根据所述至少一个联动动作组中的动作约束参数,并行判断所述至少一个联动动作组的动作是否达到执行条件;
9.若至少一个目标动作达到执行条件,则根据所述至少一个目标动作的动作执行参数,并行控制所述至少一个目标动作的动作设备参数所指示的设备执行对应的动作,其中,所述至少一个目标动作分别为所述至少一个联动动作组中的任一动作。
10.可选的,所述根据所述至少一个联动动作组中的动作约束参数,并行判断所述至少一个联动动作组的动作是否达到执行条件,包括:
11.若每个联动动作组的动作状态为预设正常状态,根据所述每个联动动作组中各动作的动作约束参数,判断所述各动作在所述联动动作组中是否存在前置动作;
12.若第一目标动作在所述每个联动动作组中不存在前置动作,则确定所述第一目标动作达到执行条件。
13.可选的,所述方法还包括:
14.开始执行所述第一目标动作时,设置所述第一目标动作的动作状态为动作执行中状态;
15.若所述每个联动动作组中所述第一目标动作的动作状态为动作执行中状态,则获取所述第一目标动作的执行结果;
16.若获取到所述第一目标动作的执行结果,则确定所述第一目标动作执行完毕,并设置所述第一目标动作的动作状态为动作执行结束状态;
17.若所述每个联动动作组中所述第一目标动作的动作状态为动作执行结束状态,则根据所述第一目标动作的执行结果,判断所述第一目标动作是否执行成功;
18.若所述第一目标动作执行成功,则为所述第一目标动作设置执行标记,以指示执行成功。
19.可选的,所述根据所述至少一个联动动作组中的动作约束参数,并行判断所述至少一个联动动作组的动作是否达到执行条件,还包括:
20.若第二目标动作在所述每个联动动作组中存在前置动作,根据所述第二目标动作的前置动作的执行结果,确定所述第二目标动作是否达到执行条件。
21.可选的,所述根据所述第二目标动作的前置动作的执行结果,确定所述第二目标动作是否达到执行条件,包括:
22.若所述第二目标动作的前置动作执行成功,则确定所述第二目标动作达到执行条件;或者,
23.若所述第二目标动作的前置动作执行失败,且,所述第二目标动作的前置动作的失败处理规则指示继续处理下一动作,确定所述第二目标动作达到执行条件。
24.可选的,所述方法还包括:
25.若所述至少一个目标动作中第三目标动作执行失败,则终止所述第三目标动作所在的目标联动动作组的动作执行,并设置在所述目标联动动作组中所述第三目标动作的后续动作的动作状态为:动作未参与状态;或者,
26.暂停所述目标联动动作组的动作执行,并设置在所述目标联动动作组中所述第三目标动作的下一个动作的动作状态为:动作暂停状态。
27.可选的,所述判断预设联动配置是否满足预设联动触发条件,包括:
28.采用预设的触发线程,判断所述预设联动配置是否满足所述预设联动触发条件;
29.若所述预设联动配置满足所述预设联动触发条件,则采用所述触发线程,将所述预设联动配置放入预设执行线程的执行队列中;
30.所述根据所述至少一个联动动作组中的动作约束参数,并行判断所述至少一个联动动作组的动作是否达到执行条件,包括:
31.采用所述执行线程,根据所述至少一个联动动作组中的动作约束参数,并行判断所述至少一个联动动作组的动作是否达到执行条件。
32.可选的,所述方法还包括:
33.采用所述执行线程,将所述至少一个联动动作组的执行结果插入预设的历史线程的数据队列中;
34.采用所述历史线程,将所述数据队列中的数据存储至预设的历史数据库中。
35.第二方面,本技术实施例还提供了一种设备控制装置,包括:触发判断模块、执行判断模块、执行模块;
36.所述触发判断模块,用于判断预设联动配置是否满足预设联动触发条件,其中,所述预设联动配置包括:至少一个联动动作组的动作配置参数,每个动作配置参数包括:动作执行参数、动作设备参数、动作约束参数;
37.所述执行判断模块,用于若所述预设联动配置满足所述预设联动触发条件,则根据所述至少一个联动动作组中的动作约束参数,并行判断所述至少一个联动动作组的动作
是否达到执行条件;
38.所述执行模块,用于若至少一个目标动作达到执行条件,则根据所述至少一个目标动作的动作执行参数,并行控制所述至少一个目标动作的动作设备参数所指示的设备执行对应的动作,其中,所述至少一个目标动作分别为所述至少一个联动动作组中的任一动作。
39.第三方面,本技术实施例提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行时执行如第一方面任一所述的设备控制方法的步骤。
40.本技术的有益效果是:本技术实施例提供一种设备控制方法,首先判断预设联动配置是否满足预设联动触发条件;若预设联动配置满足预设联动触发条件,则根据至少一个联动动作组中的动作约束参数,并行判断至少一个联动动作组的动作是否达到执行条件;若至少一个目标动作达到执行条件,则根据至少一个目标动作的动作执行参数,并行控制至少一个目标动作的动作设备参数所指示的设备执行对应的动作。本技术根据预先配置的预设联动配置以及预设联动触发条件,在预设联动配置满足预设联动触发条件后,对预设联动配置内所有联动动作组中动作的动作约束参数进行判断,并行确认动作组中每个动作的是否达到执行条件,之后,通过并行控制每个联动动作组中目标动作对应的设备执行对应的动作,串行控制每个联动动作组中的动作的执行,大大提高的系统资源的利用率。除此之外,通过预设联动配置,可以对需要控制的设备数据进行前期配置,从而形成设备对应的动作,对每个动作可以根据执行顺序进行分组,得到至少一个联动动作组。前期配置动作组,可大大降低控制参数填写出错,控制步骤顺序出错等问题。在此基础上,本技术动作执行中,联动动作组间动作并行执行控制,联动动作组内动作执行串行控制。并行和串行两种控制模式交叉,可以满足大部分设备控制业务场景的需要,为用户提供了可靠,稳定的批量控制设备的途径。
附图说明
41.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
42.图1为本技术一实施例提供的一种设备控制方法的流程图;
43.图2为本技术又一实施例提供的一种设备控制方法的流程图;
44.图3为本技术另一实施例提供的一种设备控制方法的流程图;
45.图4为本技术再一实施例提供的一种设备控制方法的流程图;
46.图5为本技术再二实施例提供的一种设备控制方法的流程图;
47.图6为本技术一实施例提供的一种设备控制方法架构图;
48.图7为本技术一实施例提供的一种设备控制装置的示意图;
49.图8为本技术实施例提供的一种电子设备的示意图。
具体实施方式
50.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
51.在本技术中,除非另有明确的规定和限定,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包含至少一个特征。在本发明中的描述中,“多个”的含义是至少两个,例如两个、三个,除非另有明确具体的限定。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
52.目前在数据接入平台上实现的设备,对设备数据的控制还处在初级阶段,往往只能支持对单一设备的数据进行控制,即使存在多设备控制,也是通过同时、批量控制的方式实现的。对于上述设备控制的系统,如果需要在特殊业务场景下批量控制设备时,通常需要操作人员逐条发下控制设备数据,这种方式存在:控制参数填写错误,控制步骤顺序出错,控制等待超时,控制执行流程过快或者过慢等问题,可能导致生产环境出现不可逆的生产事故。此外,目前支持多设备控制的系统,在控制时存在明显的先后顺序,无法做到串行执行控制,同时控制系统占用系统资源多,在控制中也无法判断当前动作状态,无法对执行中的批量控制做有效的应急处理。
53.针对目前存在的上述问题,本技术实施例提供了多种可能的实现方式,以基于动作状态实现对设备的联动控制。如下结合附图通过多个示例进行解释说明。图1为本技术一实施例提供的一种设备控制方法的流程图,该方法可由运行有上述设备控制方法的电子设备实现,该电子设备例如可以为终端设备,也可以为服务器。如图1所示,该方法包括:
54.步骤101:判断预设联动配置是否满足预设联动触发条件,其中,预设联动配置包括:至少一个联动动作组的动作配置参数,每个动作配置参数包括:动作执行参数、动作设备参数、动作约束参数。
55.需要说明的是,预设联动配置即为预先设置好的联动配置。所谓联动配置指的是流程控制集合的配置,联动配置中可以包括至少一个联动动作组的动作配置参数。其中,每个动作组中包括至少一个动作,同一动作组中的多个动作串行执行;所谓动作指的是动作组内单一设备数据控制,即最小的控制单元。
56.每个动作配置参数中包括:动作执行参数、动作设备参数和动作约束参数。其中,动作执行参数是联动动作组中每个动作对应设备的执行控制参数,例如可以包括设备启动参数、设备关闭参数、设备调节参数等,本技术对此不做限定;动作设备参数是具体设备(例如开关、风机、信号机等)的抽象数据访问对象,例如可以由设备id表示,通过设备id可以获取动作设备参数;动作设备参数指示该动作对应设备的参数,通过设备动作参数可以确定该动作对应的执行设备;动作约束参数是动作的执行条件,例如前置动作、动作状态条件等。上述参数可以由用户根据具体使用场景进行扩展,本技术对此不做限定。
57.还需要说明的是,预设联动触发条件是预先设置的联动触发条件,其中,联动触发条件是联动配置的执行条件,在本技术中,每个预设联动触发条件可以对应一个或多个预设联动配置,本技术对此不做限定。只有满足预设联动触发条件,才能进行联动配置的执行触发,从而开始执行预设联动配置。
58.在一种可能的实现方式中,预设联动触发条件例如可以为时间触发条件(例如在具体的时间触发、间隔预设时间后触发等),周期触发条件(例如根据预设的周期重复触发等),手动触发(例如根据用户通过按钮、显示屏等控制装置输入的控制指令触发)和条件触发(在满足预设条件后触发,该条件例如可以为环境参数等)。上述仅为示例说明,在实际实现中,还可以有其他的条件设定方式,本技术对此不做限定。
59.为了便于说明,本技术提供一种示例实现场景,在此实现场景中需要控制的设备有:风机系统设备:f1,f2,f3;照明系统设备:z1,z2,z3。其中,在控制中需要对风机系统设备按照f1-》f2-》f3的顺序串行执行动作,对照明系统设备按照z1-》z2-》z3的顺序串行执行动作。预设联动触发条件为条件触发,条件为:mode=1,其中mode可以为表征设备属性,或者设备所在场景属性的预设参数。需要说明的是,上述示例实现场景仅为示例说明,而非本技术唯一的实现场景。
60.根据上述示例实现场景,其预设联动配置中可以包括两个联动动作组,例如将其命名为风机控制动作组(group1)和照明系统动作组(group2)。其中风机控制动作组(group1)的动作设备参数为f1,f2,f3;动作执行参数(例如设置执行参数为布尔量,当值为真(true)时表示风机正处于运行状态,值为假(false)时表示风机正处于停运状态)为f1:true;f2:true;f3:false(即按照开启f1、开启f2、关闭f3的顺序依次执行);动作约束参数为前置动作控制成功(第一个动作不约束)。
61.与group1类似,照明系统动作组(group2)的动作设备参数为z1,z2,z3;动作执行参数(例如设置执行参数为布尔量,当值为真(true)时表示照明灯正处于运行状态,值为假(false)时表示照明灯正处于停运状态)为z1:true;z2:true;z3:false(即按照开启z1、开启z2、关闭z3的顺序依次执行);动作约束参数为前置动作控制成功(第一个动作不约束)。
62.在上述实现方式的基础上,可以将预设联动配置以轻量级的数据交换格式(json结构)存储,例如对group1:
63.{"groupname":"group1","acitons":[{"device":"f1","control":true},{"device":"f2","control":true},{"device":"f3","control":false}]}。
[0064]
对group2:
[0065]
{"groupname":"group2","acitons":[{"device":"z1","control":true},{"device":"z1","control":true},{"device":"z1","control":false}]}。
[0066]
在此基础上,还可以增加执行后反馈,例如使用timeout参数设定控制超时时间,单位秒,若控制下发超过控制超时时间的设定值则认为该动作控制失败。在本技术的示例实现场景中,若控制失败则无法执行同一动作组的后续动作。由此,以json结构存储的预设联动配置中group1为:
[0067]
{"groupname":"group1","acitons":[{"device":"f1","control":true,"timeout":"5"},{"device":"f2","control":true,"timeout":"10"},{"device":"f3","control":false,"timeout":"10"}]}。
[0068]
group2为:
[0069]
{"groupname":"group2","acitons":[{"device":"z1","control":true,"timeout":"5"},{"device":"z1","control":true,"timeout":"10"},{"device":"z1","control":false,"timeout":"10"}]}。
[0070]
同样地,预设联动触发条件也可以以json结构存储:
[0071]
{"mode":"1","condition":{"device":"c1","state":"p1","value":"1"}}。表示触发条件为设备c1属性点p1值为1时触发联动。属性点p1值例如可以通过设备内传感器或者设备所在场景中设置的传感器获取,本技术对此不做限定。
[0072]
在进行设备控制时,首先需要判断预设联动配置是否满足预设联动触发条件。在一种可能的实现方式中,预先设置好预设联动触发条件和预设联动配置后,判断(例如循环判断)联动配置是否达到预设联动触发条件。需要说明的是,为了进一步减少控制系统占用系统资源多的问题,同时提高设备控制速度,可以使用触发加载预设联动配置,并对联动配置是否达到预设联动触发条件进行判断。
[0073]
例如在上述示例实现场景中,根据预设联动触发条件,若设备c1的p1值为1时判断为预设联动配置满足预设联动触发条件,执行下述步骤102;若设备c1的p1值为除1以外的其他数值时,判断预设联动配置不满足预设联动触发条件,则无法触发联动配置。
[0074]
步骤102:若预设联动配置满足预设联动触发条件,则根据至少一个联动动作组中的动作约束参数,并行判断至少一个联动动作组的动作是否达到执行条件。
[0075]
如果预设联动配置满足预设联动触发条件,则执行联动配置中的至少一个联动动作组,在执行联动动作组之前,由于每个联动动作组中都可能包括一个或一个以上需要串行执行的动作,因此,还需要根据联动动作组中的动作约束参数,并行对每个联动动作组中的动作进行判断,判断其中的动作是否达到了执行条件。例如,对于每个联动动作组中首个动作(首个动作表示的是根据预设执行顺序第一个执行的动作,其可以是联动动作组中的任一动作),其执行条件可以为无条件执行,即预设联动配置满足预设联动触发条件后,立即执行每个联动动作组中的首个动作;对每个联动动作组中除了首个动作之外的其他动作,其执行条件可以为前置动作结束、前置动作成功完成(前置动作结束且执行结果为成功)等,本技术对此不做限定,在实际实现中,用户可以根据实际需要灵活设定每个动作的执行条件。
[0076]
通过设置每个动作的执行条件,例如通过设置控制超时时间和等待时间配置的执行条件,可以消除控制流程等待超时和控制流程的速度问题;通过设置动作执行结果的判断条件,可以对当前动作的执行结果判断,随时接入联动执行,暂停执行或终止执行。
[0077]
步骤103:若至少一个目标动作达到执行条件,则根据至少一个目标动作的动作执行参数,并行控制至少一个目标动作的动作设备参数所指示的设备执行对应的动作,其中,至少一个目标动作分别为至少一个联动动作组中的任一动作。
[0078]
若至少一个目标动作(一般地,目标动作的数量与预设联动配置中联动动作组的数量相同)达到执行条件,则根据每个目标动作的动作设备参数确定每个目标动作对应的设备,并根据每个目标动作的动作执行参数,并行控制每个目标动作对应的设备执行对应的动作。
[0079]
综上,本技术实施例提供一种设备控制方法,首先判断预设联动配置是否满足预
设联动触发条件;若预设联动配置满足预设联动触发条件,则根据至少一个联动动作组中的动作约束参数,并行判断至少一个联动动作组的动作是否达到执行条件;若至少一个目标动作达到执行条件,则根据至少一个目标动作的动作执行参数,并行控制至少一个目标动作的动作设备参数所指示的设备执行对应的动作。本技术根据预先配置的预设联动配置以及预设联动触发条件,在预设联动配置满足预设联动触发条件后,对预设联动配置内所有联动动作组中动作的动作约束参数进行判断,并行确认动作组中每个动作的是否达到执行条件,之后,通过并行控制每个联动动作组中目标动作对应的设备执行对应的动作,串行控制每个联动动作组中的动作的执行,大大提高的系统资源的利用率。除此之外,通过预设联动配置,可以对需要控制的设备数据进行前期配置,从而形成设备对应的动作,对每个动作可以根据执行顺序进行分组,得到至少一个联动动作组。前期配置动作组,可大大降低控制参数填写出错,控制步骤顺序出错等问题。在此基础上,本技术动作执行中,联动动作组间动作并行执行控制,联动动作组内动作执行串行控制。并行和串行两种控制模式交叉,可以满足大部分设备控制业务场景的需要,为用户提供了可靠,稳定的批量控制设备的途径。
[0080]
可选的,在上述图1的基础上,本技术还提供一种设备控制方法的可能实现方式,图2为本技术又一实施例提供的一种设备控制方法的流程图;如图2所示,根据至少一个联动动作组中的动作约束参数,并行判断至少一个联动动作组的动作是否达到执行条件,包括:
[0081]
步骤201:若每个联动动作组的动作状态为预设正常状态,根据每个联动动作组中各动作的动作约束参数,判断各动作在联动动作组中是否存在前置动作。
[0082]
步骤202:若第一目标动作在每个联动动作组中不存在前置动作,则确定第一目标动作达到执行条件。
[0083]
需要说明的是,本技术中每个动作都具有一个指示动作执行情况的参数,即动作状态,每个动作的动作状态在执行过程中都可能发生变化,根据动作状态,可以获取动作的是否执行、执行结果等信息。例如,在本技术中,动作状态可以包括:预设正常状态(actionnormal)、动作执行中状态(actionrunning)、动作执行结束状态(actionrunend)、动作未参与状态(actionnopart)、动作暂停状态(actionpause)、动作执行前等待状态(actionstartwait)等,本技术对此不做限定。
[0084]
判断每个联动动作组的动作是否达到执行条件时,可以通过如下方式判断:
[0085]
首先,若每个联动动作组的动作状态为预设正常状态,则根据每个联动动作组中各动作的动作约束参数,判断每个联动动作组中各动作是否存在前置动作。在一种可能的实现方式中,确定预设联动配置满足预设联动触发条件后,将预设联动配置的至少一个联动动作组中每个动作的状态设置(或者初始化)为预设正常状态。其后,判断处于预设正常状态的动作是否存在前置动作(由于同一联动动作组中的动作是串行执行的,前置动作即为一个动作在其所在联动动作组中需要在前执行的动作)。
[0086]
根据上述判断,若第一目标动作(第一目标动作为每个联动动作组中任一动作)在每个联动动作组中不存在前置动作,则确定第一目标动作达到执行条件。
[0087]
可选的,在上述图2的基础上,本技术还提供一种设备控制方法的可能实现方式,图3为本技术另一实施例提供的一种设备控制方法的流程图;如图3所示,该方法包括:
[0088]
步骤301:开始执行第一目标动作时,设置第一目标动作的动作状态为动作执行中
状态。
[0089]
若第一目标动作在联动动作组中不存在前置动作,则第一目标动作达到执行条件,可以开始执行。在开始执行第一目标动作时,为了便于通过动作状态判断动作的执行情况,同时避免执行时出现重复执行等异常情况,可以改变第一目标动作的动作状态,将第一目标动作的动作状态设置为动作执行中状态。
[0090]
步骤302:若每个联动动作组中第一目标动作的动作状态为动作执行中状态,则获取第一目标动作的执行结果。
[0091]
在并行执行每个联动动作组后,对于处于动作执行中状态的每个联动动作组中的第一目标动作,获取其第一目标动作的执行结果。需要说明的是,获取第一目标动作的执行结果可以在第一目标动作开始执行预设时间后获取(例如可以为每个动作设置一个预设时间,这个预设时间例如可以为动作执行完成的平均时间等),本技术对此不做限定。
[0092]
步骤303:若获取到第一目标动作的执行结果,则确定第一目标动作执行完毕,并设置第一目标动作的动作状态为动作执行结束状态。
[0093]
若成功获取到第一目标动作的执行结果,则确定第一目标动作执行完毕,并设置第一目标动作的动作状态为动作执行结束状态。需要说明的是,获取到的第一目标动作的执行结果可以是执行成功,也可以是执行失败等,本技术对此不做限定。
[0094]
步骤304:若每个联动动作组中第一目标动作的动作状态为动作执行结束状态,则根据第一目标动作的执行结果,判断第一目标动作是否执行成功。
[0095]
步骤305:若第一目标动作执行成功,则为第一目标动作设置执行标记,以指示执行成功。
[0096]
对每个联动动作组中动作状态为动作执行结束状态的第一目标动作,根据第一目标动作的执行结果,判断第一目标动作是否执行成功,若第一目标动作执行成功,通过为第一目标动作设置执行标记的方式,指示动作执行成功。
[0097]
可选的,在上述图1的基础上,本技术还提供一种设备控制方法的可能实现方式,根据至少一个联动动作组中的动作约束参数,并行判断至少一个联动动作组的动作是否达到执行条件,还包括:
[0098]
若第二目标动作在每个联动动作组中存在前置动作,根据第二目标动作的前置动作的执行结果,确定第二目标动作是否达到执行条件。
[0099]
根据上述判断,若第二目标动作(第二目标动作为每个联动动作组中任一存在前置动作的动作)在每个联动动作组中存在前置动作,则根据第二目标动作的前置动作的执行结果,确定第二目标动作是否达到执行条件。
[0100]
可选的,在上述实施例的基础上,本技术还提供一种设备控制方法的可能实现方式,根据第二目标动作的前置动作的执行结果,确定第二目标动作是否达到执行条件,包括:
[0101]
若第二目标动作的前置动作执行成功,则确定第二目标动作达到执行条件;
[0102]
或者,若第二目标动作的前置动作执行失败,且,第二目标动作的前置动作的失败处理规则指示继续处理下一动作,确定第二目标动作达到执行条件。
[0103]
根据第二目标动作的前置动作的执行结果以及失败处理规则,可以通过如下方式确定第二目标动作是否达到执行条件:
[0104]
一方面,如果第二目标动作的前置动作执行成功,则确定第二目标动作达到执行条件,即可以开始执行第二目标动作;
[0105]
另一方面,如果第二目标动作的前置动作执行失败,则需要根据失败处理规则确定后续处理:如果失败处理规则指示的是前置动作执行失败后继续处理,则第二目标动作达到执行条件;如果失败处理规则指示的是前置动作执行失败暂停处理或者停止处理,则第二目标动作未达到执行条件。上述仅为示例说明,在实际实现中,还可以有其他对前置动作执行失败的处理方式,本技术对此不做限定。
[0106]
需要说明的是,失败处理规则可以在预设联动配置中配置,也可以通过其他配置手段进行配置,本技术对此不做限定。
[0107]
可选的,在上述图1的基础上,本技术还提供一种设备控制方法的可能实现方式,该方法还包括:
[0108]
若至少一个目标动作中第三目标动作执行失败,则终止第三目标动作所在的目标联动动作组的动作执行,并设置在目标联动动作组中第三目标动作的后续动作的动作状态为:动作未参与状态;
[0109]
或者,暂停目标联动动作组的动作执行,并设置在目标联动动作组中第三目标动作的下一个动作的动作状态为:动作暂停状态。
[0110]
若第三目标动作(第三目标动作为每个联动动作组中任一动作)执行失败,对第三目标动作的处理方式可以有以下选择:
[0111]
一方面,可以终止执行失败的第三目标动作所在的联动动作组的动作执行,并将第三目标动作所在的目标联动动作组中所有未执行的动作(即第三目标动作的后续动作)的动作状态修改为:动作未参与状态。
[0112]
在一种可能的实现方式中,可以根据失败处理规则,将前置动作执行失败的动作,或者前置动作的动作状态为动作未参与状态的动作的动作状态修改为动作未参与状态。
[0113]
另一方面,可以暂停执行失败的第三目标动作所在的联动动作组的动作执行,并将第三目标动作所在的目标联动动作组中第三目标动作的下一个动作的动作状态修改为:动作暂停状态。
[0114]
在一种可能的实现方式中,对于处于动作暂停状态的动作,暂停执行当前动作以及目标联动动作组后续所有动作。
[0115]
综上,本技术通过有限的动作状态判断,采用单线程的执行流程,最大化的利用系统资源。基于有限的状态判断解决了控制下发后对动作执行结果处理单一问题,可以对实现对设备重复控制或终止控制等操作,支持多种业务场景。
[0116]
可选的,在上述图1的基础上,本技术还提供一种设备控制方法的可能实现方式,图4为本技术再一实施例提供的一种设备控制方法的流程图;如图4所示,判断预设联动配置是否满足预设联动触发条件,包括:
[0117]
步骤401:采用预设的触发线程,判断预设联动配置是否满足预设联动触发条件。
[0118]
步骤402:若预设联动配置满足预设联动触发条件,则采用触发线程,将预设联动配置放入预设执行线程的执行队列中。
[0119]
为了提高了本技术方法的运行稳定性,保证联动配置正常执行,在本技术的实现当中,可以采取不同的线程执行不同的功能,其中线程是操作系统能够进行运算调度的最
小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
[0120]
例如,可以采取预设的触发线程,判断预设联动配置是否满足预设联动触发条件,并执行上述实施例中步骤101的方法步骤,本技术在此不再赘述。除此之外,若预设联动配置满足预设联动触发条件,还可以采用触发线程,将预设联动配置放入预设执行线程的执行队列中,由此,执行线程可以执行执行队列中的预设联动配置。在一种可能的实现方式中,若预设联动配置满足预设联动触发条件,则采用触发线程,将预先存储的(例如存储在内存中的)预设联动配置复制到预设执行线程的执行队列中。在一种具体的实现方式中,若预设联动配置满足预设联动触发条件,例如可以采用触发线程,复制存储在内存中的预设联动配置,并初始化预设联动配置中每个动作的动作状态为预设正常状态,并将复制的预设联动配置的数据压入预设执行线程的执行队列中。
[0121]
需要说明的是,可以采用循环判断的方式采用触发线程,将预设联动配置放入预设执行线程的执行队列中;即循环判断预设联动配置中的联动动作组是否已经执行,如果已经执行则不再重复触发(从而实现每个联动动作组只压入执行队列一次)。
[0122]
根据至少一个联动动作组中的动作约束参数,并行判断至少一个联动动作组的动作是否达到执行条件,包括:
[0123]
步骤403:采用执行线程,根据至少一个联动动作组中的动作约束参数,并行判断至少一个联动动作组的动作是否达到执行条件。
[0124]
采用执行线程,执行上述实施例中步骤102及各下位实施例的步骤,本技术在此不再赘述。
[0125]
可选的,在上述图4的基础上,本技术还提供一种设备控制方法的可能实现方式,图5为本技术再二实施例提供的一种设备控制方法的流程图;如图5所示,该方法还包括:
[0126]
步骤501:采用执行线程,将至少一个联动动作组的执行结果插入预设的历史线程的数据队列中。
[0127]
步骤502:采用历史线程,将数据队列中的数据存储至预设的历史数据库中。
[0128]
为了存储联动配置的执行情况,可以采用执行线程,将至少一个联动动作组的执行结果插入预设的历史线程的数据队列中。并采用历史线程,将数据队列中的数据存储至预设的历史数据库中。后续用户可以采用预设的历史数据库中的数据对动作的执行情况(执行进展、执行结果等)进行分析处理。
[0129]
需要说明的是,上述历史线程、执行线程、触发线程为相互独立的线程,各线程之间可以通过数据队列通信(例如历史线程与执行线程可以通过数据队列通信,执行线程与触发线程可以通过执行队列通信等),各流程执行过程中互不干扰,可并发执行大量的联动,提高了程序的稳定性,保证联动正常执行。
[0130]
在一种具体的实现方式中,本技术还提供了一种设备控制方法架构图,图6为本技术一实施例提供的一种设备控制方法架构图,如图6所示,
[0131]
设备控制方法架构中包括:配置线程,触发线程,执行线程,历史线程,执行队列、历史队列、postgres数据库和实时数据库;其中,触发线程,执行线程,历史线程的具体实现方式参见上述实施例,本技术在此不再赘述。历史队列即上述数据队列,本技术在此不再赘述。postgres数据库为预设的历史数据库,本技术在此不再赘述。
[0132]
配置线程可以通过配置接口获取配置设备的预设联动配置、预设联动触发条件的设置,将获取的预设联动配置、预设联动触发条件可以存储在内部存储当中。其中配置设备例如可以为终端设备、服务器等电子设备,本技术对此不做限定。用户在配置设备上可以输入预设联动配置、预设联动触发条件。
[0133]
实时数据库(rtdb,real time database)是数据库系统发展的一个分支,是数据库技术结合实时处理技术产生的。主要用于现代工业监控系统中的数据采集和存储。实时数据库是能够获取设备或者设备所在环境实时状态的数据库,通过获取实时数据库中的数据,可以判断预设联动配置是否满足预设联动触发条件,或者判断至少一个联动动作组的动作是否达到执行条件等,本技术对此不做限定。
[0134]
在一种可能的实现方式中,配置接口与配置线程之间、执行线程或者触发线程获取实时数据库数据时,均可以基于超文本传输协议(hypertext transfer protocol,http)实现数据通信,http协议是一种用于分布式、协作式和超媒体信息系统的应用层协议,是一种w3c协会定义的请求和应答标准的协议,http是万维网数据通信的基础。
[0135]
此外,如本技术提供的示例实现场景的说明,使用http协议通信时,可以使用json文本为载体,使得众多http客户端得以快速接入,并访问联动,获取动作执行状态。甚至移动设备可以直接通过浏览器配置联动执行和触发数据,降低了调试施工成本。其中,json:javascript object notation,是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。
[0136]
本发明主要解决了控制设备(有启示物联网平台控制设备)只能单点控制的痛点问题,用户只需要在通过配置接口配置好联动配置,设置联动配置中每个联动动作组的每个动作的动作执行参数、动作设备参数、动作约束参数(即控制设备数据,执行失败后处理方式,以及控制等待时间等动作执行的关键信息),通过对联动动作组中动作的动作状态进行判断,确认动作是否需要执行,重试,或者终止联动动作组后续动作。通过有限状态的流程控制方法,执行批量设备的批量控制,解决了批量控制的问题,大大减少了业主控制操作的时间。此外,通过http接口,可以对当前执行的联动配置的执行状态进行监控,使执行动作更加透明化,精准化,提高了工作效率。采用http标准协议,以json为载体,降低了第三方客户端接入的学习成本,可以使用浏览器直接调试数据,降低了点对点调试复杂度。
[0137]
综上,本技术通过前期配置(预设联动配置、预设联动触发条件),使批量动作控制标准化,动作执行准确化,形成高效,稳定批量控制体系。整个动作执行过程透明化,用户还可以在配置设备上通过配置接口得到联动中每个动作的执行结果和执行状态,异常时还可以人为的随时暂停或终止执行联动,实现突发情况时用户快速响应。
[0138]
下述对用以执行本技术所提供的设备控制装置、电子设备及存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
[0139]
本技术实施例提供一种设备控制装置的可能实现示例,能够执行上述实施例提供的设备控制方法。图7为本技术一实施例提供的一种设备控制装置的示意图。如图7所示,上述设备控制装置100,包括:触发判断模块71、执行判断模块73、执行模块75;
[0140]
触发判断模块71,用于判断预设联动配置是否满足预设联动触发条件,其中,预设联动配置包括:至少一个联动动作组的动作配置参数,每个动作配置参数包括:动作执行参数、动作设备参数、动作约束参数;
[0141]
执行判断模块73,用于若预设联动配置满足预设联动触发条件,则根据至少一个联动动作组中的动作约束参数,并行判断至少一个联动动作组的动作是否达到执行条件;
[0142]
执行模块75,用于若至少一个目标动作达到执行条件,则根据至少一个目标动作的动作执行参数,并行控制至少一个目标动作的动作设备参数所指示的设备执行对应的动作,其中,至少一个目标动作分别为至少一个联动动作组中的任一动作。
[0143]
可选的,执行判断模块73,用于若每个联动动作组的动作状态为预设正常状态,根据每个联动动作组中各动作的动作约束参数,判断各动作在联动动作组中是否存在前置动作;若第一目标动作在每个联动动作组中不存在前置动作,则确定第一目标动作达到执行条件。
[0144]
可选的,执行判断模块73,用于开始执行第一目标动作时,设置第一目标动作的动作状态为动作执行中状态;若每个联动动作组中第一目标动作的动作状态为动作执行中状态,则获取第一目标动作的执行结果;若获取到第一目标动作的执行结果,则确定第一目标动作执行完毕,并设置第一目标动作的动作状态为动作执行结束状态;若每个联动动作组中第一目标动作的动作状态为动作执行结束状态,则根据第一目标动作的执行结果,判断第一目标动作是否执行成功;若第一目标动作执行成功,则为第一目标动作设置执行标记,以指示执行成功。
[0145]
可选的,执行判断模块73,用于若第二目标动作在每个联动动作组中存在前置动作,根据第二目标动作的前置动作的执行结果,确定第二目标动作是否达到执行条件。
[0146]
可选的,执行判断模块73,用于若第二目标动作的前置动作执行成功,则确定第二目标动作达到执行条件;或者,若第二目标动作的前置动作执行失败,且,第二目标动作的前置动作的失败处理规则指示继续处理下一动作,确定第二目标动作达到执行条件。
[0147]
可选的,设备控制装置100,还包括:失败处理模块,用于若至少一个目标动作中第三目标动作执行失败,则终止第三目标动作所在的目标联动动作组的动作执行,并设置在目标联动动作组中第三目标动作的后续动作的动作状态为:动作未参与状态;或者,暂停目标联动动作组的动作执行,并设置在目标联动动作组中第三目标动作的下一个动作的动作状态为:动作暂停状态。
[0148]
可选的,触发判断模块71,用于采用预设的触发线程,判断预设联动配置是否满足预设联动触发条件;若预设联动配置满足预设联动触发条件,则采用触发线程,将预设联动配置放入预设执行线程的执行队列中;
[0149]
执行判断模块73,用于采用执行线程,根据至少一个联动动作组中的动作约束参数,并行判断至少一个联动动作组的动作是否达到执行条件。
[0150]
可选的,设备控制装置100,还包括:存储模块,用于采用执行线程,将至少一个联动动作组的执行结果插入预设的历史线程的数据队列中;采用历史线程,将数据队列中的数据存储至预设的历史数据库中。
[0151]
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
[0152]
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,简称asic),或,一个或多个微处理器(digital singnal processor,简称dsp),或,一个或者多个现场可编程门
阵列(field programmable gate array,简称fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,简称cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。
[0153]
本技术实施例提供一种电子设备的可能实现示例,能够执行上述实施例提供的设备控制方法。图8为本技术实施例提供的一种电子设备的示意图,该设备可以集成于终端设备或者终端设备的芯片,该终端可以是具备数据处理功能的计算设备。
[0154]
该电子设备包括:处理器801、存储介质802和总线,存储介质存储有处理器可执行的程序指令,当控制设备运行时,处理器与存储介质之间通过总线通信,处理器执行程序指令,以执行时执行上述设备控制方法的步骤。具体实现方式和技术效果类似,这里不再赘述。
[0155]
本技术实施例提供一种计算机可读存储介质的可能实现示例,能够执行上述实施例提供的设备控制方法,存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述设备控制方法的步骤。
[0156]
存储在一个存储介质中的计算机程序,可以包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文:read-only memory,简称:rom)、随机存取存储器(英文:random access memory,简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0157]
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0158]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0159]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0160]
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文:read-only memory,简称:rom)、随机存取存储器(英文:random access memory,简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0161]
以上仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在
本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1