CN112783617A - 一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法 - Google Patents
一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法 Download PDFInfo
- Publication number
- CN112783617A CN112783617A CN202011434453.7A CN202011434453A CN112783617A CN 112783617 A CN112783617 A CN 112783617A CN 202011434453 A CN202011434453 A CN 202011434453A CN 112783617 A CN112783617 A CN 112783617A
- Authority
- CN
- China
- Prior art keywords
- sequence control
- executed
- control process
- sequence
- control
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 256
- 238000012544 monitoring process Methods 0.000 title claims abstract description 31
- 230000011664 signaling Effects 0.000 claims description 14
- 238000011084 recovery Methods 0.000 abstract description 6
- 238000004891 communication Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Selective Calling Equipment (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明公开了一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法,包括加载所有顺控相关配置对象数据并对其有效性进行自检;若自检失败,则无法执行顺控,顺控过程失败,反之,则虚拟执行顺控过程;在虚拟执行顺控过程时,如果顺控过程虚拟执行失败,则判断顺控过程失败,禁止真实执行顺控过程,反之,如果虚拟执行成功,进行真实执行顺控过程;在真实执行顺控过程中,任意一个包含遥控的顺控步骤真实执行失败,则虚拟执行其后的所有遥控,通过虚拟执行剩余的顺控过程来判断此时顺控过程是否必然失败,若必然失败,则立刻停止顺控过程,顺控过程失败,反之,则继续真实执行顺控过程,直至完成。从而减少多余的手工逐个单控恢复的工作,降低误操作风险。
Description
技术领域
本发明涉及轨道交通自动化技术领域,尤其涉及一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法。
背景技术
随着监控系统从传统的小型桌面系统向现代的复杂分布式系统发展,简单的一次只针对单个目标的遥控操作即单控已经难以满足监控应用的需求,应用中也希望能够按照预先指定的逻辑序列一次性的执行一系列遥控操作,即所谓的顺序控制,简称顺控。随着轨道交通领域从传统的分立监控系统模式逐渐转向综合监控系统模式,顺序控制应用的需求也越趋复杂。传统的严格串行执行模式已经不能满足应用需求,为此,专利ZL201210372612.4提出了多节点顺序控制方案,有效的支持复杂顺控过程多样的逻辑顺序和依赖关系,从而满足轨道交通现代应用的灵活需求。
但是,专利ZL201210372612.4的方案在顺控过程执行失败时,通常会执行了一些多余的遥控操作,并且需要通过多个手工单控将其恢复到顺控执行前的状态。这一方面会增加不必要的时间等资源开销,且不利于分析导致顺控过程失败的原因;更重要的是,通过手工单控逐个恢复的过程存在因误操作而引发事故的风险。
发明内容
本发明的目的是提供一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法,节省时间,并减少多余的手工逐个单控恢复的工作,降低由此带来的不必要的误操作风险。
本发明为实现上述发明目的采用如下技术方案:
本发明提供了一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法,包括:
加载所有顺控相关的配置对象数据并对其有效性进行自检;
若自检失败,则无法执行顺控,顺控过程失败,反之,则虚拟执行顺控过程;
在虚拟执行顺控过程时,如果顺控过程虚拟执行失败,则判断顺控过程失败,禁止真实执行顺控过程,反之,如果虚拟执行成功,进行真实执行顺控过程;
在真实执行顺控过程中,任意一个包含遥控的顺控步骤真实执行失败,则虚拟执行其后的所有遥控,通过虚拟执行剩余的顺控过程来判断此时顺控过程是否必然失败,若必然失败,则立刻停止顺控过程,顺控过程失败,反之,则继续真实执行顺控过程,直至完成。
进一步地,在虚拟执行顺控过程时,如果顺控过程虚拟执行失败,则判断顺控过程必然失败,禁止真实执行顺控过程,反之,如果虚拟执行成功,进行真实执行顺控过程的方法包括:
将所有顺控步骤涉及的遥控的操作方式设为顺控方式;
将所有顺控步骤对应的SA对象依序加入顺控步骤队列;
依次取出队列中的每一个SA对象并依序执行相应每一个顺控步骤;
判断顺控步骤的类型,并置相应SA的Status为1或0;
在所有顺控步骤执行完成后,判断整个顺控过程是否虚拟执行成功,如果整个顺控过程虚拟执行失败,将所有顺控步骤涉及的遥控的操作方式恢复为单控方式,显示顺控相关信息,并中止顺控过程执行,顺控过程失败,反之,如果顺控过程虚拟执行成功,则进行真实执行顺控过程,在所有顺控步骤全部真实执行完成时,将所有顺控步骤涉及的遥控的操作方式恢复为单控方式,显示顺控相关信息,并判断顺控过程成功或失败。
进一步地,判断顺控步骤的类型,并置相应SA的Status为1或0的方法包括:
若顺控步骤类型为条件类型,则判断条件是否满足并置相应SA的Status为1或0;
若顺控步骤类型为结果类型,则解析表达式并依据其结果为真或假置相应SA的Status为1或0;若顺控步骤类型为遥控类型,检查对应遥信状态与遥控目标是否一致:
若一致则无需执行遥控,顺控步骤成功并置相应SA的Status为1,若不一致则需要执行遥控:
解析前置表达式,如其值为假,该遥控不可执行,顺控步骤失败并置相应SA的Status为0;
否则判断当前遥控是否被闭锁,若被闭锁,则该遥控无法执行,顺控步骤失败并置相应SA的Status为0;否则,对遥控操作直接虚拟其已执行完成并产生执行成功的结果,顺控步骤成功并置相应SA的Status为1。
进一步地,在真实执行顺控过程中,一旦任一个包含遥控的顺控步骤真实执行失败,则虚拟执行其后的所有遥控的方法包括:
将所有顺控步骤对应的SA对象再次依序加入已取空的顺控步骤队列;
依次取出队列中的每一个SA对象并依序执行相应每一个顺控步骤;
判断顺控步骤的类型,并置相应SA的Status为1或0;
若包含遥控的顺控步骤成功,继续下一顺控步骤;反之,先虚拟执行顺控过程中剩余的顺控步骤。
进一步地,判断顺控步骤的类型,并置相应SA的Status为1或0的方法包括:
若顺控步骤类型为条件类型,则判断条件是否满足并置相应SA的Status为1或0;
若顺控步骤类型为结果类型,则解析表达式并依据其结果为真或假置相应SA的Status为1或0;
若顺控步骤类型为遥控类型,检查对应遥信状态与遥控目标是否一致,若一致则无需执行遥控,顺控步骤成功并置相应SA的Status为1,若不一致则需要执行遥控:
解析前置表达式,如其值为假,该遥控不可执行,顺控步骤失败并置相应SA的Status为0;
否则判断当前遥控是否被闭锁,若被闭锁,则该遥控无法执行,顺控步骤失败并置相应SA的Status为0,否则真实执行遥控,在真实执行过程中真实执行遥控动作,并在失败或超时的情况下重试,在完成遥控过程后,依据其成败判断顺控步骤的成败并置相应SA的Status为1或0。
进一步地,所述遥控动作依次包括下发选择、监听对应遥控的执行状态、下发执行、监听对应遥控的执行状态以及监听对应遥信状态。
进一步地,通过虚拟执行剩余的顺控过程来判断此时顺控过程是否必然失败,若必然失败,则立刻停止顺控过程,顺控过程失败,反之,则继续真实执行顺控过程,直至完成的方法包括:
保存包含剩余SA对象的顺控步骤队列及顺控状态信息;
依次取出队列中的每一个剩余的SA对象并依序执行相应每一个顺控步骤;
判断顺控步骤的类型,并置相应SA的Status为1或0;
在所有顺控步骤执行完成后,判断顺控过程是否虚拟执行成功,如果顺控过程虚拟执行失败,将所有顺控步骤涉及的遥控的操作方式恢复为单控方式,显示顺控相关信息,并中止顺控过程执行,顺控过程失败,反之,如果顺控过程虚拟执行成功,恢复保存的包含剩余SA对象的顺控步骤队列及顺控状态信息并接续真实执行失败的顺控步骤,继续真实执行后续的顺控步骤。
进一步地,判断顺控步骤的类型,并置相应SA的Status为1或0的方法包括:
若顺控步骤类型为条件类型,则判断条件是否满足并置相应SA的Status为1或0;
若顺控步骤类型为结果类型,则解析表达式并依据其结果为真或假置相应SA的Status为1或0;若顺控步骤类型为遥控类型,检查对应遥信状态与遥控目标是否一致,若一致则无需执行遥控,顺控步骤成功并置相应SA的Status为1;若不一致则需要执行遥控:
解析前置表达式,如其值为假,该遥控不可执行,顺控步骤失败并置相应SA的Status为0;
否则判断当前遥控是否被闭锁,若被闭锁,则该遥控无法执行,顺控步骤失败并置相应SA的Status为0;否则,对遥控操作直接虚拟其已执行完成并产生执行成功的结果,顺控步骤成功并置相应SA的Status为1。
本发明的有益效果如下:
本发明可以在确定顺控过程必然失败时,尽可能避免继续执行多余的顺控步骤,从而在不显著增加资源开销的前提下,尽早停止顺控过程,节省时间,并减少多余的手工逐个单控恢复的工作,降低由此带来的不必要的误操作风险。
附图说明
图1为根据本发明实施例提供的真实执行顺控步骤中遥控操作的局部流程图;
图2为根据本发明实施例提供的虚拟执行顺控步骤中遥控操作的局部流程图;
图3为根据本发明实施例提供的带虚拟执行的顺序控制方法流程示意图。
具体实施方式
下面结合具体实施例对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
为了解决上述问题,避免执行多余的顺控步骤,需要在顺控步骤失败时确定是否会导致整个顺控过程必然失败以尽早停止执行必然会失败的顺控过程。然而由于复杂的应用导致了复杂的顺控过程及逻辑依赖关系,并没有简单、一致、高效的策略在一个顺控步骤失败后立刻判断是否会导致整个顺控过程必然失败,必须要等到整个顺控过程执行完成后才能判断顺控过程是否失败。既然如此,那么在一个顺控步骤失败后,就继续执行完全部顺控过程,只是在继续执行顺控过程中,并不真实执行遥控操作,真的远程操作遥控目标,而是用本地的虚拟执行遥控操作代替远程的真实执行遥控操作,即本地直接虚拟顺控过程剩余的所有遥控操作均直接成功,从而继续虚拟执行完成整个顺控过程,如果此时顺控过程失败,就说明即使剩余的所有包含遥控操作的顺控步骤都真实执行成功,顺控过程也依然失败,因此可以判断顺控过程此时必然失败,停止该步骤之后的剩余顺控过程的执行,以避免执行多余的顺控步骤。
在专利ZL201210372612.4的方法中,开始使用树状嵌套结构,在优化后的最终方案中则使用前置逻辑表达式,来表征顺控步骤间的逻辑顺序和依赖关系,在执行每一包含遥控的顺控步骤前按照依赖关系考查之前的相关已执行顺控步骤的状态以判断当前步骤是否可以执行,可以则执行遥控过程,否则不执行并判定当前顺控步骤失败。图1是专利ZL201210372612.4中包含遥控的顺控步骤中遥控过程的局部流程。从图1中可以看出,如果细化顺控步骤中的遥控过程的真实执行过程,又分为两个部分:首先验证该遥控操作本身是否允许执行,例如当前遥控目标处于就地还是远方操作方式,即是否处于遥控操作方式;或者是否通讯畅通处于遥控有效状态;或者是否因为挂牌等原因处于禁止遥控状态等等,这些信息由监控系统实时采集到本地计算机,并在无法遥控时会通过将相关DoubleCommand对象的PointOperationMode属性实时更新为对应的值从而将目标遥控闭锁以禁止其执行。因此如果目标遥控闭锁,将无法执行遥控操作,顺控步骤失败。反之,目标遥控未闭锁,才依次执行下发选择、监听对应遥控的执行状态、下发执行、监听对应遥控的执行状态以及监听对应遥信状态各个遥控动作,同时相应更新相关的DoubleCommand和DoublePoint对象数据,并且依据相应的遥控动作结果判断顺控步骤成功或失败,置SA的Status为1或0。真实执行遥控过程通常涉及数次本地计算机与现场被控设备的通讯交互和操作,其绝大部分时间资源开销主要在本地计算机与现场设备的通讯时间以及现场设备的控制动作时间,相比之下本地计算机上的时间资源开销几可忽略。
在定制顺控过程时,一般都预期其中的遥控操作会成功,也就是说,对于合理的顺控过程,在其中所有的遥控操作都成功执行的情况下会成功完成,成功执行的遥控操作不会导致顺控过程失败,而执行失败的遥控操作则有可能导致顺控过程失败。
假如顺控过程执行前,就有一些顺控步骤包含的遥控被闭锁,例如当前遥控目标处于就地而非远方操作方式,即不处于遥控操作方式;或者通讯中断无法遥控;或者因挂牌等原因处于禁止遥控状态等等,那么如果在这种情况下执行顺控过程,则这些遥控操作将因闭锁而无法执行,相应顺控步骤失败,进而有可能导致即使其它顺控步骤中的未被闭锁遥控全部执行成功,整个顺控过程依旧失败,也就是这种情况下顺控过程必然失败。为了避免在这种情况下,真实执行可预料的必然失败的顺控过程而执行多余的遥控操作,在顺控过程失败后又必须手工单控逐个恢复到原先状态,在真实执行顺控过程前,先虚拟执行顺控过程,首先保存顺控过程和所有顺控步骤的状态,然后,依旧如专利ZL201210372612.4中执行顺控过程,只是对于顺控过程中顺控步骤包含的所有遥控操作,原本真实执行过程如图1所示。但是,在虚拟执行时,如果遥控未被闭锁,那么对遥控操作直接虚拟其已执行完成并产生执行成功的结果。因为目标是考查在当前情况下是否即使所有未被闭锁的遥控都成功,但整个顺控过程依旧必然失败,因此,直接虚拟遥控操作成功以考查相应顺控步骤以及最终整个顺控过程虚拟执行的结果是成功还是失败,而不真实执行下发选择、监听对应遥控的执行状态、下发执行、监听对应遥控的执行状态以及监听对应遥信状态这些遥控动作,也不修改相关的DoubleCommand和DoublePoint对象数据以免触发对应的遥控动作的真实执行——当然也无需保存并在将来恢复相关DoubleCommand和DoublePoint对象数据。因此,在虚拟执行时,如图2所示,如果遥控未被闭锁,那么只是对遥控操作直接虚拟其已执行完成并产生执行成功的结果,置SA的Status为1;而遥控被闭锁则遥控操作无法执行当然顺控步骤失败,置SA的Status为0。从而虚拟执行完顺控过程中的所有遥控,并产生整个顺控过程虚拟执行的结果。若所有遥控操作都虚拟执行成功时整个顺控过程成功,那么就表明顺控过程是合理定制的。如果顺控过程虚拟执行成功,则表明当前情况下真实执行顺控过程存在成功的可能,因此将顺控过程以及顺控步骤的状态恢复为虚拟执行前保存的状态,并允许真实执行顺控过程。如果整个顺控过程虚拟执行失败,那么表明当前情况下,即使所有未被闭锁的遥控操作在真实执行时都成功,顺控过程依然必定失败,为避免多余的遥控操作,不允许真实执行顺控过程,并显示各顺控步骤的相关信息,例如步骤包含的遥控是否闭锁及其原因等等,以帮助用户在必定会失败的顺控过程执行前就查找其原因并提前处理,从而避免执行可预料的失败顺控过程以及由此导致的手工逐个单控恢复到原状态的不必要工作和带来的误操作风险。
如前所述,如果顺控过程整体虚拟执行成功,说明存在成功的可能,就可以真实执行顺控过程。在合理的顺控过程的真实执行中,对于包含遥控的顺控步骤,如果执行成功,由于其不会导致顺控过程失败,因此继续执行接下来的顺控步骤。反之,如果执行失败,那么有可能导致顺控过程失败。为了有效的判断是否导致顺控过程必然失败,以期尽早停止必然失败的顺控过程,避免继续执行多余的顺控步骤。与前述过程类似,在一包含遥控的顺控步骤真实执行失败时,首先,保存当前顺控过程的状态以及所有尚未执行的顺控步骤的状态,然后对该失败步骤后所有步骤中包含的遥控操作如前述虚拟执行,即不真实执行任何遥控动作,对遥控操作直接虚拟其已执行完成并产生成功的结果。并且在虚拟执行完剩余的顺控过程后检查顺控过程是否成功,如果顺控过程失败,则表明即使在真实执行顺控过程中接下来的所有遥控操作都成功,顺控过程依旧必然失败,即此时已经可以确定顺控过程必然失败。所以停止执行顺控过程,判断其失败,并显示所有已经真实执行完成的顺控步骤的信息,以方便操作员聚焦导致顺控过程失败的原因并处理,从而避免继续执行多余的遥控,导致必须手工逐个单控恢复到原状态的不必要的工作以及由此带来的误操作风险。反之,如果顺控过程成功,则表明继续真实执行顺控过程仍有可能成功。此时,恢复保存的顺控过程的状态和剩余顺控步骤的状态,并接续刚才最后真实执行失败的顺控步骤,继续真实执行剩余的顺控过程。如果再遇到包含遥控的顺控步骤真实执行失败的情况就不断重复上述的过程,直至失败或者顺控过程完成。
基于本文前述内容,下面简单考查带虚拟执行的顺序控制方法的整体流程。需要注意的是,由于本文中的方法采用的数据对象和属性与专利ZL201210372612.4中一致。并且由于本文主要关注通过虚拟执行顺控步骤中的遥控来帮助避免执行多余的不必要的顺控步骤,所以对于顺控过程中的数据加载、检测,状态信息显示、不包含遥控的其它类型的顺控步骤,以及顺控步骤中遥控过程的真实执行等方面的处理方式均和专利ZL201210372612.4中一致,因此本文中不再赘诉,详情可参考专利ZL201210372612.4。图3是对于专利ZL201210372612.4中优化后的最终方案,采用本文中方法改进后的带虚拟执行的顺序控制方法的整体流程的示意图。
如图所示,首先加载所有顺控相关配置对象数据并对其有效性进行自检。若自检失败,则无法执行顺控,因此顺控过程失败。反之,则先虚拟执行整个顺控过程:
首先,将所有顺控步骤涉及的遥控的操作方式设为顺控方式,以避免在顺控过程中涉及的遥控目标被不知情的操作员同时单控误操作。将所有顺控步骤对应的SA对象依序加入顺控步骤队列,然后依次取出队列中的每一个SA对象并依序执行相应每一个顺控步骤:若顺控步骤类型为条件类型,则判断条件是否满足并置相应SA的Status为1或0。若顺控步骤类型为结果类型,则解析表达式并依据其结果为真或假置相应SA的Status为1或0。若顺控步骤类型为遥控类型,即该顺控步骤包含遥控,则首先检查对应遥信状态与遥控目标是否一致,若一致则无需执行遥控,顺控步骤成功并置相应SA的Status为1;若不一致则需要执行遥控。此时首先解析前置表达式,如其值为假,则表示由于顺控步骤间相互依赖关系及当前状态,该遥控不可执行,顺控步骤失败并置相应SA的Status为0;否则进一步判断当前遥控是否被闭锁,若被闭锁,则该遥控无法执行,顺控步骤失败并置相应SA的Status为0;否则,遥控未被闭锁,但是此时在虚拟执行过程中,于是对遥控操作直接虚拟其已执行完成并产生执行成功的结果,因此顺控步骤成功并置相应SA的Status为1。在所有顺控步骤执行完成后,判断整个顺控过程是否虚拟执行成功,如果整个顺控过程虚拟执行失败,那么表明当前情况下,即使所有未被闭锁的遥控操作在真实执行时都成功,顺控过程依然必定失败,为避免多余的遥控操作,不允许真实执行顺控过程,将所有顺控步骤涉及的遥控的操作方式恢复为单控方式,显示顺控相关信息,并中止顺控过程执行,顺控过程失败。反之,如果顺控过程虚拟执行成功,则表明当前情况下真实执行顺控过程存在成功的可能,因此接着真实执行顺控过程:
首先将所有顺控步骤对应的SA对象再次依序加入已取空的顺控步骤队列,然后依次取出队列中的每一个SA对象并依序执行相应每一个顺控步骤:若顺控步骤类型为条件类型,则判断条件是否满足并置相应SA的Status为1或0,然后继续下一顺控步骤。若顺控步骤类型为结果类型,则解析表达式并依据其结果为真或假置相应SA的Status为1或0,然后继续下一顺控步骤。若顺控步骤类型为遥控类型,即该顺控步骤包含遥控,则首先检查对应遥信状态与遥控目标是否一致,若一致则无需执行遥控,顺控步骤成功并置相应SA的Status为1;若不一致则需要执行遥控。此时首先解析前置表达式,如其值为假,则表示由于顺控步骤间相互依赖关系及当前状态,该遥控不可执行,顺控步骤失败并置相应SA的Status为0;否则进一步判断当前遥控是否被闭锁,若被闭锁,则该遥控无法执行,顺控步骤失败并置相应SA的Status为0;否则真实执行遥控,此时在真实执行过程中按专利ZL201210372612.4中依次真实执行下发选择、监听对应遥控的执行状态、下发执行、监听对应遥控的执行状态以及监听对应遥信状态各个遥控动作,并在失败或超时的情况下重试3次,在完成遥控过程后,依据其成败判断顺控步骤的成败并置相应SA的Status为1或0。若包含遥控的顺控步骤成功即相应SA的Status为1,由于其不会导致顺控过程失败,因此继续下一顺控步骤;反之,如果失败,那么存在导致顺控过程失败的可能,为了有效的判断是否导致顺控过程必然失败,以期尽早停止必然失败的顺控过程,避免继续执行多余的顺控步骤,先虚拟执行顺控过程中剩余的顺控步骤:
首先,保存包含剩余SA对象的顺控步骤队列及顺控状态这些信息,然后依次取出队列中的每一个剩余的SA对象并依序执行相应每一个顺控步骤:若顺控步骤类型为条件类型,则判断条件是否满足并置相应SA的Status为1或0。若顺控步骤类型为结果类型,则解析表达式并依据其结果为真或假置相应SA的Status为1或0。若顺控步骤类型为遥控类型,即该顺控步骤包含遥控,则首先检查对应遥信状态与遥控目标是否一致,若一致则无需执行遥控,顺控步骤成功并置相应SA的Status为1;若不一致则需要执行遥控。此时首先解析前置表达式,如其值为假,则表示由于顺控步骤间相互依赖关系及当前状态,该遥控不可执行,顺控步骤失败并置相应SA的Status为0;否则判断当前遥控是否被闭锁,若被闭锁,则该遥控无法执行,顺控步骤失败并置相应SA的Status为0;否则,遥控未被闭锁,但是此时在虚拟执行过程中,于是对遥控操作直接虚拟其已执行完成并产生执行成功的结果,因此顺控步骤成功并置相应SA的Status为1。在所有顺控步骤执行完成后,判断顺控过程是否虚拟执行成功,如果顺控过程虚拟执行失败,那么表明当前情况下,即使所有剩余的未被闭锁的遥控操作在真实执行时都成功,顺控过程依然必定失败,为避免多余的遥控操作,不允许继续真实执行顺控过程,将所有顺控步骤涉及的遥控的操作方式恢复为单控方式,显示顺控相关信息,并中止顺控过程执行,顺控过程失败。反之,如果顺控过程虚拟执行成功,则表明当前情况下继续真实执行剩余顺控过程存在成功的可能,因此恢复保存的包含剩余SA对象的顺控步骤队列及顺控状态这些信息并接续刚才最后真实执行失败的顺控步骤,继续真实执行接下来的顺控步骤。如果再遇到包含遥控的顺控步骤真实执行失败的情况就不断重复该过程。
如果整个顺控过程中的所有顺控步骤依序真实执行完成,所有的虚拟执行时都没有出现因确定顺控过程必然失败而中止顺控过程的情况,那么在整个顺控过程真实执行完成后,将所有顺控步骤涉及的遥控的操作方式恢复为单控方式,显示顺控相关信息,并最终判断顺控过程成功或失败。
需要注意的是,无论是在真实执行顺控过程之前或是之中增加虚拟执行都会导致时间资源开销的增加,但是因为在虚拟执行过程中对遥控操作直接虚拟其已执行完成并产生成功的结果,即不进行真实的遥控(远程控制)操作,完全是在计算机本地实现。因为在顺控过程中的遥控操作的真实执行中,时间资源的主要开销,一方面来自与被控目标的远程通讯交互的时间,另一方面来自被控目标自身的控制动作耗时,相比之下,其余在控制方计算机上的本地耗时几乎可以忽略。由于虚拟执行的过程中对遥控操作的虚拟执行完全在计算机本地实现,因此不会导致显著的时间资源开销增加。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (8)
1.一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法,其特征在于,包括:
加载所有顺控相关的配置对象数据并对其有效性进行自检;
若自检失败,则无法执行顺控,顺控过程失败,反之,则虚拟执行顺控过程;
在虚拟执行顺控过程时,如果顺控过程虚拟执行失败,则判断顺控过程失败,禁止真实执行顺控过程,反之,如果虚拟执行成功,进行真实执行顺控过程;
在真实执行顺控过程中,任意一个包含遥控的顺控步骤真实执行失败,则虚拟执行其后的所有遥控,通过虚拟执行剩余的顺控过程来判断此时顺控过程是否必然失败,若必然失败,则立刻停止顺控过程,顺控过程失败,反之,则继续真实执行顺控过程,直至完成。
2.根据权利要求1所述的一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法,其特征在于,在虚拟执行顺控过程时,如果顺控过程虚拟执行失败,则判断顺控过程必然失败,禁止真实执行顺控过程,反之,如果虚拟执行成功,进行真实执行顺控过程的方法包括:
将所有顺控步骤涉及的遥控的操作方式设为顺控方式;
将所有顺控步骤对应的SA对象依序加入顺控步骤队列;
依次取出队列中的每一个SA对象并依序执行相应每一个顺控步骤;
判断顺控步骤的类型,并置相应SA的Status为1或0;
在所有顺控步骤执行完成后,判断整个顺控过程是否虚拟执行成功,如果整个顺控过程虚拟执行失败,将所有顺控步骤涉及的遥控的操作方式恢复为单控方式,显示顺控相关信息,并中止顺控过程执行,顺控过程失败,反之,如果顺控过程虚拟执行成功,则进行真实执行顺控过程,在所有顺控步骤全部真实执行完成时,将所有顺控步骤涉及的遥控的操作方式恢复为单控方式,显示顺控相关信息,并判断顺控过程成功或失败。
3.根据权利要求2所述的一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法,其特征在于,判断顺控步骤的类型,并置相应SA的Status为1或0的方法包括:
若顺控步骤类型为条件类型,则判断条件是否满足并置相应SA的Status为1或0;
若顺控步骤类型为结果类型,则解析表达式并依据其结果为真或假置相应SA的Status为1或0;
若顺控步骤类型为遥控类型,检查对应遥信状态与遥控目标是否一致:
若一致则无需执行遥控,顺控步骤成功并置相应SA的Status为1,若不一致则需要执行遥控:
解析前置表达式,如其值为假,该遥控不可执行,顺控步骤失败并置相应SA的Status为0;
否则判断当前遥控是否被闭锁,若被闭锁,则该遥控无法执行,顺控步骤失败并置相应SA的Status为0;否则,对遥控操作直接虚拟其已执行完成并产生执行成功的结果,顺控步骤成功并置相应SA的Status为1。
4.根据权利要求1所述的一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法,其特征在于,在真实执行顺控过程中,一旦任一个包含遥控的顺控步骤真实执行失败,则虚拟执行其后的所有遥控的方法包括:
将所有顺控步骤对应的SA对象再次依序加入已取空的顺控步骤队列;
依次取出队列中的每一个SA对象并依序执行相应每一个顺控步骤;
判断顺控步骤的类型,并置相应SA的Status为1或0;
若包含遥控的顺控步骤成功,继续下一顺控步骤;反之,先虚拟执行顺控过程中剩余的顺控步骤。
5.根据权利要求4所述的一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法,其特征在于,判断顺控步骤的类型,并置相应SA的Status为1或0的方法包括:
若顺控步骤类型为条件类型,则判断条件是否满足并置相应SA的Status为1或0;
若顺控步骤类型为结果类型,则解析表达式并依据其结果为真或假置相应SA的Status为1或0;
若顺控步骤类型为遥控类型,检查对应遥信状态与遥控目标是否一致,若一致则无需执行遥控,顺控步骤成功并置相应SA的Status为1,若不一致则需要执行遥控:
解析前置表达式,如其值为假,该遥控不可执行,顺控步骤失败并置相应SA的Status为0;
否则判断当前遥控是否被闭锁,若被闭锁,则该遥控无法执行,顺控步骤失败并置相应SA的Status为0,否则真实执行遥控,在真实执行过程中真实执行遥控动作,并在失败或超时的情况下重试,在完成遥控过程后,依据其成败判断顺控步骤的成败并置相应SA的Status为1或0。
6.根据权利要求5所述的一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法,其特征在于,所述遥控动作依次包括下发选择、监听对应遥控的执行状态、下发执行、监听对应遥控的执行状态以及监听对应遥信状态。
7.根据权利要求4或5或6所述的一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法,其特征在于,通过虚拟执行剩余的顺控过程来判断此时顺控过程是否必然失败,若必然失败,则立刻停止顺控过程,顺控过程失败,反之,则继续真实执行顺控过程,直至完成的方法包括:
保存包含剩余SA对象的顺控步骤队列及顺控状态信息;
依次取出队列中的每一个剩余的SA对象并依序执行相应每一个顺控步骤;
判断顺控步骤的类型,并置相应SA的Status为1或0;
在所有顺控步骤执行完成后,判断顺控过程是否虚拟执行成功,如果顺控过程虚拟执行失败,将所有顺控步骤涉及的遥控的操作方式恢复为单控方式,显示顺控相关信息,并中止顺控过程执行,顺控过程失败,反之,如果顺控过程虚拟执行成功,恢复保存的包含剩余SA对象的顺控步骤队列及顺控状态信息并接续真实执行失败的顺控步骤,继续真实执行后续的顺控步骤。
8.根据权利要求7所述的一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法,其特征在于,判断顺控步骤的类型,并置相应SA的Status为1或0的方法包括:
若顺控步骤类型为条件类型,则判断条件是否满足并置相应SA的Status为1或0;
若顺控步骤类型为结果类型,则解析表达式并依据其结果为真或假置相应SA的Status为1或0;
若顺控步骤类型为遥控类型,检查对应遥信状态与遥控目标是否一致,若一致则无需执行遥控,顺控步骤成功并置相应SA的Status为1;若不一致则需要执行遥控:
解析前置表达式,如其值为假,该遥控不可执行,顺控步骤失败并置相应SA的Status为0;
否则判断当前遥控是否被闭锁,若被闭锁,则该遥控无法执行,顺控步骤失败并置相应SA的Status为0;否则,对遥控操作直接虚拟其已执行完成并产生执行成功的结果,顺控步骤成功并置相应SA的Status为1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011434453.7A CN112783617B (zh) | 2020-12-10 | 2020-12-10 | 一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011434453.7A CN112783617B (zh) | 2020-12-10 | 2020-12-10 | 一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112783617A true CN112783617A (zh) | 2021-05-11 |
CN112783617B CN112783617B (zh) | 2024-03-29 |
Family
ID=75750807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011434453.7A Active CN112783617B (zh) | 2020-12-10 | 2020-12-10 | 一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112783617B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020178349A1 (en) * | 2001-05-23 | 2002-11-28 | Nec Corporation | Processor, multiprocessor system and method for data dependence speculative execution |
JP2003177804A (ja) * | 2001-09-28 | 2003-06-27 | Nippon Koei Power Systems Co Ltd | シーケンス制御プログラム生成方法、その方法をコンピュータに実行させるプログラムおよびシーケンス制御プログラム生成装置 |
CN101004692A (zh) * | 2007-01-18 | 2007-07-25 | 华为技术有限公司 | 一种软件安装的虚拟执行方法及系统 |
CN102412624A (zh) * | 2011-11-08 | 2012-04-11 | 湖北省电力公司电力试验研究院 | 变电站顺序控制的虚监控方法 |
US20130124184A1 (en) * | 2010-03-15 | 2013-05-16 | Omron Corporation | Controller support device, simulation method of control program, support program for a controller, and computer readable storage medium for storing the support program of the controller |
CN103279333A (zh) * | 2012-09-29 | 2013-09-04 | 南京国电南自轨道交通工程有限公司 | 一种基于scada系统的多节点顺序控制的方法 |
KR20150076593A (ko) * | 2013-12-27 | 2015-07-07 | 정종재 | 교통 신호등 제어 시스템 |
CN109617241A (zh) * | 2018-12-29 | 2019-04-12 | 北京四方继保自动化股份有限公司 | 一种基于变电站内全景数据的智能顺控系统和方法 |
CN109933030A (zh) * | 2019-03-22 | 2019-06-25 | 江西蓝星星火有机硅有限公司 | 一种化学工艺的顺序控制方法、化学设备及存储介质 |
CN111443653A (zh) * | 2020-03-27 | 2020-07-24 | 长江三峡通航管理局 | 一种适用于连续多级船闸的集控双控操作装置及方法 |
CN111614157A (zh) * | 2019-02-26 | 2020-09-01 | 南京南瑞继保电气有限公司 | 一种变电站倒闸操作的顺序控制系统和方法 |
CN111934429A (zh) * | 2020-08-04 | 2020-11-13 | 国网河北省电力有限公司邯郸供电分公司 | 调控主站调用站端顺序控制方法 |
-
2020
- 2020-12-10 CN CN202011434453.7A patent/CN112783617B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020178349A1 (en) * | 2001-05-23 | 2002-11-28 | Nec Corporation | Processor, multiprocessor system and method for data dependence speculative execution |
JP2003177804A (ja) * | 2001-09-28 | 2003-06-27 | Nippon Koei Power Systems Co Ltd | シーケンス制御プログラム生成方法、その方法をコンピュータに実行させるプログラムおよびシーケンス制御プログラム生成装置 |
CN101004692A (zh) * | 2007-01-18 | 2007-07-25 | 华为技术有限公司 | 一种软件安装的虚拟执行方法及系统 |
US20130124184A1 (en) * | 2010-03-15 | 2013-05-16 | Omron Corporation | Controller support device, simulation method of control program, support program for a controller, and computer readable storage medium for storing the support program of the controller |
CN102412624A (zh) * | 2011-11-08 | 2012-04-11 | 湖北省电力公司电力试验研究院 | 变电站顺序控制的虚监控方法 |
CN103279333A (zh) * | 2012-09-29 | 2013-09-04 | 南京国电南自轨道交通工程有限公司 | 一种基于scada系统的多节点顺序控制的方法 |
KR20150076593A (ko) * | 2013-12-27 | 2015-07-07 | 정종재 | 교통 신호등 제어 시스템 |
CN109617241A (zh) * | 2018-12-29 | 2019-04-12 | 北京四方继保自动化股份有限公司 | 一种基于变电站内全景数据的智能顺控系统和方法 |
CN111614157A (zh) * | 2019-02-26 | 2020-09-01 | 南京南瑞继保电气有限公司 | 一种变电站倒闸操作的顺序控制系统和方法 |
CN109933030A (zh) * | 2019-03-22 | 2019-06-25 | 江西蓝星星火有机硅有限公司 | 一种化学工艺的顺序控制方法、化学设备及存储介质 |
CN111443653A (zh) * | 2020-03-27 | 2020-07-24 | 长江三峡通航管理局 | 一种适用于连续多级船闸的集控双控操作装置及方法 |
CN111934429A (zh) * | 2020-08-04 | 2020-11-13 | 国网河北省电力有限公司邯郸供电分公司 | 调控主站调用站端顺序控制方法 |
Non-Patent Citations (1)
Title |
---|
高昕;赵鑫;: "城市轨道交通综合监控系统顺控功能的设计与实现", 城市轨道交通研究, no. 06, pages 139 - 142 * |
Also Published As
Publication number | Publication date |
---|---|
CN112783617B (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2246270C (en) | Debugging multiple related processes simultaneously | |
US5664088A (en) | Method for deadlock recovery using consistent global checkpoints | |
US7853934B2 (en) | Hot-swapping a dynamic code generator | |
EP0483038A2 (en) | Systems and methods for providing recovery capabilities | |
US9158606B2 (en) | Failure repetition avoidance in data processing | |
CN110673936B (zh) | 编排业务的断点续作方法、装置、存储介质及电子设备 | |
JPH05108391A (ja) | プログラムの実行を続行する方法 | |
US4045661A (en) | Apparatus for detecting and processing errors | |
US5826078A (en) | Job re-execution system and controlling method thereof | |
JPH03134709A (ja) | 命令リストプログラムがリレーはしご形線図として表現できるかどうかを判定する方法 | |
US20040073836A1 (en) | Predecessor and successor type multiplex system | |
US5835698A (en) | Unilaterally-controlled, time-insensitive, data-link recovery apparatus and method | |
CN112559496B (zh) | 一种分布式数据库事务原子性实现方法及装置 | |
CN114416284A (zh) | 分布式作业系统控制方法、装置、设备、介质及程序产品 | |
US20040044930A1 (en) | System and method for controlling activity of temporary files in a computer system | |
CN112783617A (zh) | 一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法 | |
CN111371582B (zh) | 一种pcie链路故障的处理方法及装置 | |
EP1117043A1 (en) | Uniform configuration controller for replicated components systems | |
JPH11175369A (ja) | プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援プログラムを記録した媒体 | |
CN113254482A (zh) | 一种业务数据异步存储的方法、系统及介质 | |
CN110119267B (zh) | 一种对关系编程的性能提高方法及装置 | |
JP5497210B1 (ja) | ジョブ再実行支援システム | |
JPH0922369A (ja) | マルチタスキング方式のカーネルにおける不正動作検出方法 | |
JPS6376028A (ja) | 仮想計算機システムにおける命令ステツプ実行制御方式 | |
EP1113358A2 (en) | A graphical user interface for providing component relational information for a uniform configuration controller for replicated component systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |