CN110632878A - 一种异构嵌入式表格化处理及执行动作流程的方法和装置 - Google Patents
一种异构嵌入式表格化处理及执行动作流程的方法和装置 Download PDFInfo
- Publication number
- CN110632878A CN110632878A CN201910949220.1A CN201910949220A CN110632878A CN 110632878 A CN110632878 A CN 110632878A CN 201910949220 A CN201910949220 A CN 201910949220A CN 110632878 A CN110632878 A CN 110632878A
- Authority
- CN
- China
- Prior art keywords
- action flow
- flow table
- action
- branch
- table row
- 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 193
- 230000007717 exclusion Effects 0.000 claims abstract description 5
- 238000004590 computer program Methods 0.000 claims description 9
- 125000004122 cyclic group Chemical group 0.000 claims description 8
- 230000000875 corresponding effect Effects 0.000 description 118
- 230000001681 protective effect Effects 0.000 description 26
- 238000003754 machining Methods 0.000 description 12
- 238000005111 flow chemistry technique Methods 0.000 description 6
- 230000000977 initiatory effect Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 230000002349 favourable effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007373 indentation Methods 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23146—Programmable, reconfigurable via microprocessor or coding switches
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
Abstract
本发明提供了一种异构嵌入式表格化处理动作流程的方法和装置,用于根据动作流程创建动作流程表,添加动作流程表行,设置条件单元、指令单元和循环执行属性,以及针对互斥的条件分支动作流程设置动作流程表行的互斥关系,以及针对子级条件分支动作流程设置动作流程表并层级地嵌入在包含父级条件分支动作流程执行条件的动作流程表行之下;以及针对切换分支动作流程创建分支动作流程表,并将分支动作流程表层级地嵌入在包含所述分支切换指令的动作流程表行之下;本发明同时提供了一种根据所述动作流程表和分支动作流程表执行动作流程的方法和装置。通过本发明方案对动作流程的处理,使复杂动作流程的编辑、处理和执行更加简洁和高效。
Description
技术领域
本发明涉及自动控制领域,具体地的涉及一种异构嵌入式表格化处理以及执行动作流程的方法和装置。
背景技术
在自动控制领域,通常采用基于文本的程序代码,例如Basic、Pascal、C语言程序等,来编制和执行动作流程,实现自动控制。
然而针对复杂的动作流程,程序代码量往往十分庞大,程序结构非常复杂,可读性较差;此外传统的基于文本的程序不仅编制时输入工作量大,而且在程序的解析或执行时需要首先对大量基于文本的语法指令进行解析处理,例如:IF、THEN、ELSIF、ELSE、END_IF等;这个过程会耗费计算机的资源从而影响了动作流程解析或执行的性能。
发明内容
针对现有基于文本的程序在编制和/或处理复杂的动作流程时复杂、低效,以及程序可读性差的问题,本发明方案目的在于使复杂的动作流程的编制和/或处理更加简洁和高效;
为了实现上述目的,采用如下的技术方案。
本发明提供了一种表格化处理动作流程的方法,所述动作流程包括多个流程步骤,所述流程步骤可以是动作指令和/或条件分支动作流程,所述条件分支动作流程包括判断条件,第一分支动作流程和/或第二分支动作流程,如果判断条件的结果为true执行所述的第一分支动作流程,否则执行所述的第二分支动作流程,所述方法包括:
步骤1:创建动作流程表;所述动作流程表包括条件列和指令列;
步骤2:为所述的动作流程表添加一条动作流程表行,所述的动作流程表行包括与所述的动作流程表的条件列和指令列对应的条件单元和指令单元;
步骤3:顺序地获取所述动作流程的流程步骤,并判断所述流程步骤的类型,
A.如果所述的流程步骤是一个条件分支动作流程,则将所述的条件分支动作流程的判断条件添加到所述动作流程表行的条件单元中;然后顺序获取所述的条件分支动作流程的第一分支动作流程中的流程步骤并判断:
a)如果后续流程步骤是动作指令,则顺序将后续的动作指令添加到所述动作流程表行的指令单元中;
b)如果后续流程步骤是条件分支动作流程,则从步骤1开始处理所述条件分支动作流程,将步骤1中针对所述条件分支动作流程所创建的动作流程表作为第二动作流程表,并将所创建的第二动作流程表层级地嵌入在所述动作流程表行之下;在完成所述条件分支动作流程的处理后从步骤2开始继续处理第一分支动作流程中的后续流程步骤;
获取所述的条件分支动作流程的第二分支动作流程中的流程步骤并针对所述的第二分支动作流程执行步骤2,并设置所述动作流程表行和针对所述的第二分支动作流程在步骤2中所添加的动作流程表行为互斥关系;然后返回步骤2继续处理后续流程步骤;
进一步地,所述方法还包括针对为互斥关系的两个动作流程表行,在格式上对两者或两者之一进行相应地设置,以反映二者的互斥关系的步骤。在本发明的一些实施例中,针对为互斥关系的两个动作流程表行的条件单元通过绘制连接线段以反映二者的互斥关系;
B.如果所述的流程步骤是一个动作指令,则将所述动作流程表行的条件单元设置为表示一个永远为true的条件,并将所述的一个永远为true的条件作为后续动作指令的判断条件;并顺序将后续动作指令添加到所述动作流程表行的指令单元中;直到后续流程步骤是条件分支动作流程时,返回步骤2继续处理后续流程步骤。
在本发明的一些实施例中,所述动作流程表行的条件单元通过设置为空或设置为一个表示true的常量用于表示一个永远为true的条件。进一步地,针对所述第二分支动作流程,如果所述第二分支动作流程的第一个流程步骤是动作指令而不是条件分支动作流程时,将所述第二分支动作流程对应的动作流程表行的条件单元设置为表示永远为true的条件的“else”。
采用一个永远表示true的条件来作为所述动作流程表行条件单元的内容和后续动作指令的第一执行条件,可以使动作流程表的结构保持整齐,并与原动作流程逻辑的一致性。
进一步地,设置所述的第二动作流程表与上层动作流程表按列对齐。
进一步地,所述方法还包括针对所述第二动作流程表在格式上进行相应地设置以反映第二动作流程表与所述的第一执行条件的动作流程表行的层级关系;在本发明的一些实施例中,针对所述第二动作流程表的动作流程表行的条件单元,根据所述的第二动作流程表的层级相应地设置缩进宽度。
根据本发明所述的一种表格化处理动作流程的方法的另一个方面,所述动作流程还包括循环动作流程,所述循环动作流程在满足执行条件时按照设定的模式循环地执行,所述方法的特征在于:所述的动作流程表行还包括循环执行属性;所述方法还包括判断当所述动作流程表行对应的动作流程为循环动作流程时,根据所述动作流程的循环模式设置所述动作流程表行循环执行属性值的步骤。
进一步地,所述的循环执行属性值中包括是否循环执行、循环执行的周期和/或循环执行任务调度优先级参数。
进一步地,所述方法还包括针对所述对应于循环动作流程的动作流程表行在格式上进行相应地设置以反映所述动作流程表行的循环执行属性的步骤。
根据本发明所述的一种表格化处理动作流程的方法的另一个方面,所述动作流程还包括切换分支动作流程,所述的切换分支动作流程包含分支切换指令和分支动作流程,所述的分支切换指令中包括目标索引变量,所述的分支动作流程包含至少一个分支索引值,所述的分支切换指令是用于对所述的目标索引变量的值进行判断并切换执行分支索引值与所述目标索引变量的值相匹配的分支动作流程的动作指令;所述方法的特征在于所述步骤3中还包括:判断如果所述流程步骤是切换分支动作流程,则将所述切换分支动作流程的分支切换指令添加到所述动作流程表行的指令单元中,并针对所述切换分支动作流程创建分支动作流程表,将所述分支动作流程表层级地嵌入在所述动作流程表行之下;所述分支动作流程表包含分支索引列,针对切换分支动作流程所包含的每一个分支动作流程为所述分支动作流程表添加分支动作流程表行,所述的分支动作流程表行包含与所述的分支动作流程表的索引列对应的索引单元;所述方法还包括将所述切换分支动作流程的分支索引值添加到所述的分支动作流程表行的分支索引值单元中;然后依次针对切换分支动作流程所包含的每一个分支动作流程从所述步骤1开始执行,并将步骤1中所创建的动作流程表层级地嵌入在所述分支动作流程对应的分支动作流程表行之下。
在本发明的一些实施例中,分支切换指令对应于一组互斥的比较分支索引值与目标索引变量的值判断条件,这组互斥的条件分支动作流程可以作为一个对目标索引变量的值进行判断并切换执行分支索引值与所述目标索引变量的值相匹配的分支切换动作流程进行处理。
进一步地,所述的分支动作流程表还包含注释列,所述的分支动作流程表行包含与所述的注释列对应的注释单元,所述方法还包括根据切换分支动作流程所包含的每一个分支动作流程的含义设置所述注释单元内容的步骤。
进一步地,嵌入在分支流程表行下的动作流程表与包含所述分支流程表的上层动作流程表按列对齐。
根据本发明所述的一种表格化处理动作流程的方法的另一个方面,所述的动作流程的动作指令中还包括设置目标索引变量值的指令,所述方法的特征在于:所述动作流程表还包括切换目标列,所述动作流程表行对应地还包括切换目标单元,所述步骤3中,在将动作指令添加到指令单元中之前还包括判断如果所述动作指令是设置目标索引变量值的指令,则根据所述的设置目标索引变量值的指令设置所述切换目标单元的内容,并且所述的设置目标索引变量值的指令不再添加到所述动作流程表行的指令单元中的步骤。
优选地,设置所述动作流程表的切换目标列位于所述指令列的右侧。
通过设置所述动作流程表的切换目标列,使动作流程表中切换目标分支动作流程的指令独立于其他动作指令,提升了不同类型的流程步骤的分离度;并能够更加清晰地比较针对不同分支动作流程切换目标的差异,有助于及时发现和避免程序错误。
根据本发明所述的一种表格化处理动作流程的方法的另一个方面,所述的切换分支动作流程还包括状态变量,所述状态变量的值是根据所述切换分支动作流程的分支动作流程确定的,所述方法的特征在于:所述的分支动作流程表还包括分支状态列,所述分支动作流程表行对应地包括分支状态单元,所述方法还包括获取所述切换分支动作流程中的状态变量并根据所述切换分支动作流程的分支动作流程所确定的状态变量的值设置所述分支动作流程对应的分支动作流程表行的分支状态单元的内容的步骤。
通过为所述的分支动作流程表设置分支状态列,能够更加清晰地比较针对不同分支动作流程的差异,有助于及时发现和避免程序错误和快速和准确地配置分支动作流程的流程步骤;以及有助于提升流程步骤的分离度,从而减少动作流程表的行数,提高屏幕的利用率。
本发明还提供了一种根据所述的动作流程表执行动作流程的方法,所述方法包括:
步骤11. 顺序地获取所述动作流程表的动作流程表行;
步骤12. 判断所述动作流程表行的条件单元的执行条件是否满足;
如果所述动作流程表行的条件单元的执行条件不满足则继续获取下一动作流程表行;并返回步骤12开始执行;
如果所述动作流程表行的条件单元的执行条件满足则执行以下步骤;
步骤13. 获取并执行所述动作流程表行指令单元中的动作指令;
步骤14. 判断所述动作流程表行下是否是有嵌入的第二动作流程表,如果有则针对所述的第二动作流程表从步骤11开始执行直到所述的第二动作流程表被处理完成;
步骤15. 获取与所述动作流程表行的执行条件为非互斥关系的下一条动作流程表行;然后返回步骤12重复执行。
根据本发明所述的一种根据所述的动作流程表执行动作流程的方法的另一个方面,所述方法的步骤12中还包括判断所述动作流程表行是否设置有循环执行属性,如果有则在所述动作流程表行条件单元中的执行条件满足时根据所述循环执行属性值所设置的循环模式重复执行所述步骤12的步骤。
根据本发明所述的一种根据所述的动作流程表执行动作流程的方法的另一个方面,所述方法的步骤13中还包括当判断所述动作指令是分支切换指令时,获取嵌入在包含所述分支切换指令的动作流程表行下方的分支动作流程表,并查找所述分支动作流程表中索引单元内容与所述分支切换指令的目标索引变量的值相匹配的分支动作流程表行,并获取嵌入在所述分支动作流程表行下方的动作流程表,并从所述步骤11开始处理所述的动作流程表的步骤。
根据本发明所述的一种根据所述的动作流程表执行动作流程的方法的另一个方面,所述方法的步骤13中还包括获取所述动作流程表行切换目标单元的内容,并执行所述切换目标单元中的设置目标索引变量的值的指令的步骤。
优选地,处理切换目标单元中设置目标索引变量的值的指令是在指令单元中的动作指令处理之后执行的。
根据本发明所述的一种根据所述的动作流程表执行动作流程的方法的另一个方面,所述方法还包括判断所述分支动作流程表行的分支状态单元是否被设置,如果是则获取分支动作流程表行的分支状态单元的内容,并根据所述的分支状态单元的内容设置所述分支动作流程状态变量值的步骤。
本发明还提供了一种表格化处理动作流程的装置,所述动作流程的流程步骤包括动作指令和条件分支动作流程,所述条件分支动作流程包括判断条件,第一分支动作流程和/或第二分支动作流程,如果判断条件的结果为true执行所述的第一分支动作流程,否则执行所述的第二分支动作流程,所述装置包括:
动作流程表创建部:用于创建动作流程表,所述动作流程表包括条件列和指令列;所创建的动作流程表用于供动作流程表行创建部继续处理;
动作流程表行创建部:用于为所述的动作流程表添加动作流程表行并调用流程步骤处理部处理,所述的动作流程表行包括与所述的动作流程表的条件列和指令列对应的条件单元和指令单元;所创建的动作流程表行用于供流程步骤处理部继续处理;
流程步骤处理部:用于顺序地获取所述动作流程的流程步骤,并进行判断:
A.如果所述的流程步骤是一个条件分支动作流程,则将所述的条件分支动作流程的判断条件添加到所述动作流程表行的条件单元中;然后顺序获取所述的条件分支动作流程的第一分支动作流程中的流程步骤并判断:
a)如果后续流程步骤是动作指令,则顺序将后续的动作指令添加到所述动作流程表行的指令单元中;
b)如果后续流程步骤是条件分支动作流程,则通过所述动作流程表创建部处理所述条件分支动作流程,将所述动作流程表创建部针对所述条件分支动作流程所创建的动作流程表作为第二动作流程表,并将所创建的第二动作流程表层级地嵌入在所述动作流程表行之下;在完成所述条件分支动作流程的处理后通过所述动作流程表行创建部继续处理第一分支动作流程中的后续流程步骤;
获取所述的条件分支动作流程的第二分支动作流程中的流程步骤并针对所述的第二分支动作流程通过所述动作流程表行创建部进行处理,并设置所述动作流程表行和针对所述的第二分支动作流程通过所述动作流程表行创建部所添加的动作流程表行为互斥关系;然后通过所述动作流程表行创建部继续处理后续流程步骤;
B.如果所述的流程步骤是一个动作指令,则将所述动作流程表行的条件单元设置为表示一个永远为true的条件,并将所述的一个永远为true的条件作为后续动作指令的判断条件;并将后续动作指令添加到所述动作流程表行的指令单元中;直到后续流程步骤是条件分支动作流程时,通过所述动作流程表行创建部继续处理后续流程步骤。
根据本发明所述的一种表格化处理动作流程的装置的另一个方面,所述动作流程还包括循环动作流程,所述循环动作流程在满足执行条件时按照设定的模式循环地执行,所述装置的特征在于:所述的动作流程表行还包括循环执行属性;所述装置还包括循环执行属性设置部,用于判断当所述动作流程表行对应的动作流程为循环动作流程时,根据所述动作流程的循环模式设置所述动作流程表行循环执行属性值。
根据本发明所述的一种表格化处理动作流程的装置的另一个方面,所述动作流程还包括切换分支动作流程,所述的切换分支动作流程包含分支切换指令和分支动作流程,所述的分支切换指令中包括目标索引变量,所述的分支动作流程包含至少一个分支索引值,所述的分支切换指令是用于对所述的目标索引变量的值进行判断并切换执行分支索引值与所述目标索引变量的值相匹配的分支动作流程的动作指令;所述装置的特征在于所述的装置还包括:
分支动作流程表创建部:用于针对所述的切换分支动作流程创建分支动作流程表,所述分支动作流程表包含分支索引列;所创建的分支动作流程表用于供分支动作流程表行创建部继续处理;
分支动作流程表行创建部:用于针对所述的切换分支动作流程所包含的每一个分支动作流程为所述分支动作流程表添加分支动作流程表行,所述的分支动作流程表行包含与所述的分支动作流程表的索引列对应的索引单元;所述分支动作流程表行创建部还用于将所述切换分支动作流程的分支索引值添加到所述的分支动作流程表行的分支索引值单元中;然后通过所述的动作流程表创建部依次处理切换分支动作流程所包含的每一个分支动作流程,并将动作流程表创建部中所创建的动作流程表层级地嵌入在所述分支动作流程对应的分支动作流程表行之下;
所述的流程步骤处理部还用于判断如果所述流程步骤是切换分支动作流程,则将所述切换分支动作流程的分支切换指令添加到所述动作流程表行的指令单元中,以及通过分支动作流程表创建部处理所述所述切换分支动作流程,并将所述分支动作流程表创建部所创建的分支动作流程表层级地嵌入在包含所述分支切换指令的动作流程表行之下。
根据本发明所述的一种表格化处理动作流程的装置的另一个方面,所述的动作流程的动作指令中还包括设置目标索引变量值的指令;所述装置的特征在于:所述动作流程表还包括切换目标列,所述动作流程表行对应地还包括切换目标单元,所述的动作流程指令处理部在将动作指令添加到指令单元中之前还判断如果所述动作指令是设置目标索引变量值的指令,则根据所述的设置目标索引变量值的指令设置所述切换目标单元的内容,并且所述的设置目标索引变量值的指令不再添加到所述动作流程表行的指令单元中。
根据本发明所述的一种表格化处理动作流程的装置的另一个方面,所述的切换分支动作流程还包括状态变量,所述状态变量的值是根据所述切换分支动作流程的分支动作流程确定的,所述装置的特征在于:所述的分支动作流程表还包括分支状态列,所述分支动作流程表行对应地包括分支状态单元,所述的分支动作流程表行创建部还用于获取所述切换分支动作流程的状态变量并根据所述切换分支动作流程的分支动作流程所确定的状态变量的值设置所述的分支动作流程表行的分支状态单元的内容的步骤。
本发明还提供了一种根据所述的动作流程表执行动作流程的装置,所述装置包括:
动作流程表行获取部,用于顺序地获取所述动作流程表的动作流程表行,并通过动作流程表行判断部继续处理所获取的动作流程表行;
动作流程表行判断部,用于判断所获取的动作流程表行的条件单元的执行条件是否满足;
如果所述动作流程表行的条件单元的执行条件不满足则通过所述动作流程表行获取部继续获取下一动作流程表行,然后由动作流程表行执行部进行处理;
如果所述动作流程表行的条件单元的执行条件满足,则通过动作指令执行部继续处理:
动作指令执行部,用于获取并执行所述动作流程表行指令单元中的动作指令;
第二动作流程表处理部,用于判断所述动作流程表行下是否是有嵌入的第二动作流程表,如果有则针对所述第二动作流程表通过动作流程表行获取部继续处理,直到所述的第二动作流程表被处理完成,然后通过非互斥动作流程表行获取部继续处理;
非互斥动作流程表行获取部,用于获取与所述动作流程表行的执行条件为非互斥关系的下一条动作流程表行,然后通过动作流程表行判断部继续处理。
根据本发明所述的一种根据所述的动作流程表执行动作流程的装置的另一个方面,所述的动作流程表行判断部还用于判断所述动作流程表行是否包含循环执行属性,如果有则在所述动作流程表行条件单元中的执行条件满足时根据所述循环执行属性值所设置的循环模式通过动作流程表行判断部重复执行所述动作流程表行。
根据本发明所述的一种根据所述的动作流程表执行动作流程的装置的另一个方面,所述的动作指令执行部还用于判断当所述动作指令是分支切换指令时,获取嵌入在包含所述分支切换指令的动作流程表行下方的分支动作流程表,并查找所述分支动作流程表中索引单元内容与所述分支切换指令的目标索引变量的值相匹配的分支动作流程表行,然后通过所述的分支动作流程表行处理部对所述的分支动作流程表行进行处理;所述的分支动作流程表行处理部用于获取嵌入在所述分支动作流程表行下方的动作流程表,并通过所述动作流程表行获取部处理所述的动作流程表。
根据本发明所述的一种根据所述的动作流程表执行动作流程的装置的另一个方面,所述的动作指令执行部还用于获取所述动作流程表行切换目标单元的内容,并根据所述切换目标单元的内容对应地设置目标索引变量的值。
根据本发明所述的一种根据所述的动作流程表执行动作流程的装置的另一个方面,当所述的动作指令执行部执行分支切换指令时,针对所述索引单元内容与所述分支切换指令的目标索引变量的值相匹配的分支动作流程表行,还判断所述分支动作流程表行的分支状态单元是否被设置,如果是则获取分支动作流程表行的分支状态单元的内容,并根据所述的分支状态单元的内容设置所述分支动作流程状态变量值的步骤。
本发明还提供了一种表格化处理动作流程的装置,所述装置包括存储器和处理器:
所述存储器用于存储计算机程序;
所述处理器用于当执行所述计算机程序时,实现如上所述的表格化处理动作流程的方法。
本发明还提供了一种根据所述的动作流程表执行动作流程的装置,所述装置包括存储器和处理器:
所述存储器用于存储计算机程序;
所述处理器用于当执行所述计算机程序时,实现如上所述的根据所述的动作流程表执行动作流程的方法。
从上述技术方案可以看出,本发明实施例具有以下优点:
1.本发明方案中由于不再需要像基于文本的高级语言那样对IF、THEN、ELSIF、ELSE、END_IF等冗繁的语法指令进行处理,减少了程序输入的工作量和程序文件的尺寸,而对于计算机而言对数据表的检索和处理要比文本程序的解析更加快捷,因而提升了计算机处理动作流程的效率。
2.本发明方案中,通过对动作流程的表格化,并使动作流程的按条件、指令以及切换目标分为多列,因而使程序长度大幅缩短,使程序内容更加简洁,提升了屏幕显示空间的利用率,使复杂动作流程更便于浏览和编辑;同时通过多列表格的布局使不同类型的流程步骤的分离度更高,便于发现动作流程之间的细节差异,及时发现程序错误。
3.本发明方案中,通过动作流程表与分支动作流程表的层级地嵌入,能够用于精确定义复杂的动作流程,并使得动作流程的结构更加清晰,改善了复杂动作流程的可读性。
4.本发明方案通过对复杂动作流程的表格化处理,所生成的动作流程表保留了原有动作流程的细节,因而动作流程表在编辑之后能够被执行,能够实现复杂的动作流程的控制,用于操控实体设备的动作;并减少了程序编译处理文本指令的中间步骤,提升了编译执行的速度。
5.采用本发明方案,动作流程表便于利用电子表格编辑工具进行处理,能够发挥和利用电子表格编辑工具的便利功能对动作流程进行编制和处理;并能够直接利用已有的电子表格数据作为输入,减少了人工输入和转换的步骤。
6.本发明方案中,动作流程表以表、行、列和单元格为单位,相比文本指令,更容易设置和承载丰富的格式以及注释信息,并进行显示呈现以及存储,以更加清晰地反映动作流程的编辑和执行状态和程序的意图。
附图说明
所包括的附图用来提供对本发明实施例的进一步的理解,其构成了说明书的一部分。下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中的一条自动化生产系统机械手抓取状态的剖面示意图。
图2是本发明实施例中的一条自动化生产系统机床加工状态的剖面示意图。
图3是本发明实施例中主流程的流程图。
图4是本发明实施例中机械手子流程的流程图。
图5是本发明实施例中机床子流程的流程图。
图6是本发明实施例中主流程的动作流程表。
图7是本发明实施例中机械手子流程的动作流程表。
图8是本发明实施例中机床子流程的动作流程表。
图9是本发明实施例中主流程的动作流程表。
图10是本发明实施例中机械手子流程的动作流程表。
图11是本发明实施例中机床子流程的动作流程表。
图12是本发明实施例中机床子流程的动作流程表。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分的实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
附图1~2所示的是一个典型的自动化生产系统,包括一台机床200和一台机械手300,所述机床200包括防护门201,防护门201在机床加工的时候关闭,并在加工完成之后开启。防护门201的开启位置和关闭位置动作设置有传感器用于检测防护门201的开启或关闭是否到位。所述机床还包括一个输出区202,用于承接加工完成的工件400,工件400在加工完成后滑落到输出区202,输出区202设置有传感器用于检测输出区202是否有工件400。机械手300通过夹爪301从输出区抓取工件400,并放置到工件码放区500。机械手的夹爪301上设置有传感器用于检测工件400是否已被抓取。当机械手300在准备抓取工件时机床的防护门201没有开启到位或者输出区202中没有工件,则提示“机械手工件抓取错误报警”;当机械手300将工件放置到码垛区之后夹爪301上检测有工件,则提示“机械手工件放置错误报警”。机械手300上还设置有红黄绿三色指示灯202,当机械手300在抓取或放置工件时三色指示灯202的绿灯亮;当机械手300在等待或停止状态时三色指示灯202的黄灯亮;当机械手300在错误状态时三色指示灯202的红灯亮,用于提示错误状态。
下面参考附图3~5说明这个自动化生产系统的详细动作流程:
系统的初始状态设定为:机床的防护门201已经关闭到位,机床输出区202没有工件;机械手300没有抓取工件,三色指示灯202的黄灯亮;变量“机床状态”的初始值等于100,表示“机床停止中”;变量“机械手状态”的初始值等于100,表示“机械手停止中”。此时设置“机床启动”信号为true,“机械手停止”信号为false,“机床停止”信号为false;并开始执行下面的流程步骤。
流程步骤1是一个条件分支动作流程,用于判断系统是否开机;如果是则执行流程步骤3、78、153。并且这些步骤在系统开机的条件下是循环执行的。
流程步骤3是一个条件分支动作流程,用于判断“机械手停止”信号是否为true;如果是则执行流程步骤5、6、7,否则执行流程步骤14。
流程步骤5是一个动作指令,用于复位“机械手停止”信号为false。
流程步骤6是一个动作指令,用于设置“机械手状态”等于100,即“机械手停止中”。
流程步骤7是一个条件分支动作流程,用于判断变量“机械手状态”是否等于400或500;如果是则执行流程步骤9,否则执行流程步骤78。
流程步骤9是一个动作指令,用于暂停机械手的动作。
流程步骤14是一个调用机械手子流程的动作指令。机械手子流程用于根据机械手状态切换执行相应的动作流程。机械手子流程中的第一个被执行的流程步骤是流程步骤16。
流程步骤16是一个条件分支动作流程,用于判断变量“机械手状态”是否等于100,即“机械手停止中”;如果是则执行流程步骤18、19,否则执行流程步骤33。
流程步骤18是一个用于设置变量“指示灯状态”的值为“黄灯亮”赋值的动作指令。
流程步骤19是一个条件分支动作流程,用于判断“机械手启动”信号是否为true;如果是则执行流程步骤21、22。
流程步骤21是一个动作指令,用于复位“机械手启动”信号为false。
流程步骤22是一个条件分支动作流程,用于判断机械手的夹爪301中是否检测到有工件400;如果是则执行流程步骤23,否则执行流程步骤24。
流程步骤23是一个动作指令,用于启动机械手放置工件的动作。
流程步骤24是一个条件分支动作流程,用于判断是否机床防护门201开启到位而且机床输出区202中检测到有工件400;如果是则执行流程步骤26、27,否则执行流程步骤30。
流程步骤26是一个动作指令,用于启动机械手抓取工件的动作。
流程步骤27是一个动作指令,用于设置“机械手状态”等于400,即“机械手工件抓取中”。
流程步骤30是一个动作指令,用于设置“机械手状态”等于300,即“机械手工件抓取错误报警”。
流程步骤33是一个条件分支动作流程,用于判断变量“机械手状态”是否等于200,即“机械手工件抓取等待中”;如果是则执行流程步骤35、36,否则执行流程步骤49。
流程步骤35是一个用于设置变量“指示灯状态”的值为“黄灯亮”赋值的动作指令。
流程步骤36是一个条件分支动作流程,用于判断“机械手启动”信号是否为true;如果是则执行流程步骤38、39。
流程步骤38是一个动作指令,用于复位“机械手启动”信号为false。
流程步骤39是一个条件分支动作流程,用于判断是否机床防护门201开启到位而且机床输出区202中检测到有工件400;如果是则执行流程步骤41、42,否则执行流程步骤45。
流程步骤41是一个动作指令,用于启动机械手抓取工件的动作。
流程步骤42是一个动作指令,用于设置“机械手状态”等于400,即“机械手工件抓取中”。
流程步骤45是一个动作指令,用于设置“机械手状态”等于300,即“机械手工件抓取错误报警”。
流程步骤49是一个条件分支动作流程,用于判断变量“机械手状态”是否等于300,即“机械手工件抓取错误报警”;如果是则执行流程步骤51,否则执行流程步骤53。
流程步骤51是一个用于设置变量“指示灯状态”的值为“红灯亮”赋值的动作指令。
流程步骤53是一个条件分支动作流程,用于判断变量“机械手状态”是否等于400,即“机械手工件抓取中”;如果是则执行流程步骤55、56,否则执行流程步骤62。
流程步骤55是一个用于设置变量“指示灯状态”的值为“绿灯亮”赋值的动作指令。
流程步骤56是一个条件分支动作流程,用于判断机械手抓取工件动作是否执行完成;如果是则执行流程步骤58、59。
流程步骤58是一个动作指令,用于启动机械手放置工件的动作。
流程步骤59是一个动作指令,用于设置“机械手状态”等于500,即“机械手工件放置中”。
流程步骤62是一个条件分支动作流程,用于判断变量“机械手状态”是否等于500,即“机械手工件放置中”;如果是则执行流程步骤64、65,否则执行流程步骤73。
流程步骤64是一个用于设置变量“指示灯状态”的值为“绿灯亮”赋值的动作指令。
流程步骤65是一个条件分支动作流程,用于判断机械手放置工件动作是否执行完成;如果是则执行流程步骤67。
流程步骤67个条件分支动作流程,用于判断机械手的夹爪301中是否检测到有工件400,果是则执行流程步骤68,否则执行流程步骤70。
流程步骤68是一个动作指令,用于设置“机械手状态”等于600,即“机械手工件放置错误报警”。
流程步骤70是一个动作指令,用于设置“机械手状态”等于200,即“机械手工件抓取等待中”。
流程步骤73是一个条件分支动作流程,用于判断变量“机械手状态”是否等于600,即“机械手工件放置错误报警”;如果是则执行流程步骤74。
流程步骤74是一个用于设置变量“指示灯状态”的值为“红灯亮”赋值的动作指令。
流程步骤78是一个条件分支动作流程,用于判断“机床停止”信号是否为true;如果是则执行流程步骤80、81、82,否则执行流程步骤87。
流程步骤80是一个动作指令,用于复位““机床停止”信号为false。
流程步骤81是一个动作指令,用于设置“机床状态”等于100,即“机床停止中”。
流程步骤82是一个条件分支动作流程,用于判断变量“机床状态”是否等于300,即“机床加工中”;如果是则执行流程步骤83。
流程步骤83是一个动作指令,用于暂停机床的动作。
流程步骤87是一个调用机床子流程的动作指令,用于根据机床状态切换执行相应的动作流程。机床子流程中的第一个被执行的流程步骤是流程步骤89。
流程步骤89是一个条件分支动作流程,用于判断变量“机床状态”是否等于100,即“机床停止中”;如果是则执行流程步骤91,否则执行流程步骤119。
流程步骤91是一个条件分支动作流程,用于判断“机床启动”信号是否为true;如果是则执行流程步骤93、94。
流程步骤93是一个动作指令,用于复位“机床启动”信号为false。
流程步骤94是一个条件分支动作流程,用于判断机床输出区202中是否有工件400,如果有则执行流程步骤96;否则执行流程步骤107。
流程步骤96是一个条件分支动作流程,用于判断机床的防护门201是否未开启到位,如果是则执行流程步骤98、99;否则执行流程步骤103、104。
流程步骤98是一个动作指令,用于开启机床的防护门。
流程步骤99是一个动作指令,用于设置“机床状态”等于400,即“机床防护门开启中”。
流程步骤103是一个动作指令,用于启动机械手300的抓取动作。
流程步骤104是一个动作指令,用于设置“机床状态”等于500,即“机床工件抓取等待中”。
流程步骤107是一个条件分支动作流程,用于判断机床的防护门201是否未关闭到位,如果是则执行流程步骤109、110;否则执行流程步骤114、115。
流程步骤109是一个动作指令,用于关闭机床的防护门201。
流程步骤110是一个动作指令,用于设置“机床状态”等于200,即“机床防护门关闭中”。
流程步骤114是一个动作指令,用于启动机床加工。
流程步骤115是一个动作指令,用于设置“机床状态”等于300,即“机床加工中”。
流程步骤119是一个条件分支动作流程,用于判断变量“机床状态”是否等于200,即“机床防护门关闭中”;如果是则执行流程步骤121,否则执行流程步骤127。
流程步骤121是一个条件分支动作流程,用于判断机床到防护门201是否关闭到位,如果是则执行流程步骤123、124。
流程步骤123是一个动作指令,用于启动机床加工。
流程步骤124是一个动作指令,用于设置“机床状态”等于300,即“机床加工中”。
流程步骤127是一个条件分支动作流程,用于判断变量“机床状态”是否等于300,即“机床加工中”;如果是则执行流程步骤129,否则执行流程步骤135。
流程步骤129是一个条件分支动作流程,用于判断机床加工是否已完成,如果是则执行流程步骤131、132。
流程步骤131是一个动作指令,用于开启机床的防护门。
流程步骤132是一个动作指令,用于设置“机床状态”等于400,即“机床防护门开启中”。
流程步骤135是一个条件分支动作流程,用于判断变量“机床状态”是否等于400,即“机床防护门开启中”;如果是则执行流程步骤137,否则执行流程步骤143。
流程步骤137是一个条件分支动作流程,用于判断机床到防护门201是否开启到位,如果是则执行流程步骤139、140。
流程步骤139是一个动作指令,用于启动机械手300的抓取动作。
流程步骤140是一个动作指令,用于设置“机床状态”等于500,即“机床工件抓取等待中”。
流程步骤143是一个条件分支动作流程,用于判断变量“机床状态”是否等于500,即“机床工件抓取等待中”;如果是则执行流程步骤145。
流程步骤145是一个条件分支动作流程,用于判断是否机械手抓取动作已经执行完成且机床输出区202中没有工件400,如果是则执行流程步骤147、148。
流程步骤147是一个动作指令,用于关闭机床的防护门201。
流程步骤148是一个动作指令,用于设置“机床状态”等于200,即“机床防护门关闭中”。
流程步骤153是一个动作指令,用于使动作流程停顿100毫秒。
基于文本的编程语言是更为普遍的一种用于定义动作流程的方式。下面提供了用C语言程序所描述的上述动作流程。C语言程序可以作为本发明方案动作流程的输入形式。上述的动作流程的流程步骤号可以与下面的C语言程序代码的行号相对应。
1: while (系统开机)
2: {
3: if (机械手停止)
4: {
5: 机械手停止 = false;
6: 机械手状态 = 100;
7: if ((机械手状态 == 400) || (机械手状态 == 500))
8: {
9: 机械手暂停();
10: }
11: }
12: else
13: {
14: // 机械手子流程
15: // 分支动作流程
16: if (机械手状态 == 100) //机械手停止中
17: {
18: 指示灯状态 = 黄灯亮;
19: if (机械手启动)
20: {
21: 机械手启动 = false;
22: if (机械手夹爪中有工件)
23: 机械手放置开始();
24: else if (机床防护门开启到位 && 机床输出区中有工件)
25: {
26: 机械手抓取开始();
27: 机械手状态 = 400;
28: }
29: else
30: 机械手状态 = 300;
31: }
32: }
33: else if (机械手状态 == 200) //机械手工件抓取等待中
34: {
35: 指示灯状态 = 黄灯亮;
36: if (机械手启动)
37: {
38: 机械手启动 = false;
39: if (机床防护门开启到位 && 机床输出区中有工件)
40: {
41: 机械手抓取开始();
42: 机械手状态 = 400;
43: }
44: else
45: 机械手状态 = 300;
46: }
47: }
48: }
49: else if (机械手状态 == 300) //机械手工件抓取错误报警
50: {
51: 指示灯状态 = 红灯亮;
52: }
53: else if (机械手状态 == 400) //机械手工件抓取中
54: {
55: 指示灯状态 = 绿灯亮;
56: if (机械手抓取完成)
57: {
58: 机械手放置开始();
59: 机械手状态 = 500;
60: }
61: }
62: else if (机械手状态 == 500) //机械手工件放置中
63: {
64: 指示灯状态 = 绿灯亮;
65: if (机械手放置完成)
66: {
67: if (机械手夹爪中有工件)
68: 机械手状态 = 600;
69: else
70: 机械手状态 = 200;
71: }
72: }
73: else if (机械手状态 == 600) //机械手工件放置错误报警
74: 指示灯状态 = 红灯亮;
75: //
76: //
77: }
78: if (机床停止)
79: {
80: 机床停止 = false;
81: 机床状态 = 100;
82: if (机床状态 == 300)
83: 机床暂停();
84: }
85: else
86: {
87: // 机床子流程
88: // 分支动作流程
89: if (机床状态 == 100) //机床停止中
90: {
91: if (机床启动)
92: {
93: 机床启动 = false;
94: if (机床输出区中有工件)
95: {
96: if (!机床防护门开启到位)
97: {
98: 机床防护门开启 = true;
99: 机床状态 = 400;
100: }
101: else
102: {
103: 机械手启动 = true;
104: 机床状态 = 500;
105: }
106: }
107: else if (!机床防护门关闭到位)
108: {
109: 机床防护门开启 = false;
110: 机床状态 = 200;
111: }
112: else
113: {
114: 机床加工开始();
115: 机床状态 = 300;
116: }
117: }
118: }
119: else if (机床状态 == 200) //机床防护门关闭中
120: {
121: if (机床防护门关闭到位)
122: {
123: 机床加工开始();
124: 机床状态 = 300;
125: }
126: }
127: else if (机床状态 == 300) //机床加工中
128: {
129: if (机床加工完成)
130: {
131: 机床防护门开启 = true;
132: 机床状态 = 400;
133: }
134: }
135: else if (机床状态 == 400) //机床防护门开启中
136: {
137: if (机床防护门开启到位)
138: {
139: 机械手启动 = true;
140: 机床状态 = 500;
141: }
142: }
143: else if (机床状态 == 500) //机床工件抓取等待中
144: {
145: if (机械手抓取完成 && !机床输出区中有工件)
146: {
147: 机床防护门开启 = false;
148: 机床状态 = 200;
149: }
150: }
151: //
152: }
153: ThreadSleep(100);
154: }
本发明的一个实施例针对上述动作流程进行表格化处理,下面参考附图6~8对流程步骤的处理过程进行说明:
步骤1. 针对主流程创建一个动作流程表10000,动作流程表10000包括条件列601和指令列602;为动作流程表10000添加一条动作流程表行10001,动作流程表行10001包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;获取上述的流程步骤1,由于流程步骤1是一个条件分支动作流程,将流程步骤1的判断条件“系统开机”添加到动作流程表行10001的条件单元中;
进一步地,由于流程步骤1表示在满足其判断条件的前提下循环执行后续指令,因此设置动作流程表行10001循环执行属性值为循环执行;并在动作流程表行10001条件单元内容的左侧对应地设置一个圆形的内部为旋转箭头的标志610,这是根据动作流程表行10001所设置的循环执行属性在单元格的格式上所进行的相应设置,用于反映流程步骤1的执行执行方式;
为了更清楚地描述本实施例,动作流程表中的流程步骤对应地在内容前添加了流程步骤的编号,这不代表在实际的实施例中也包含此标注;
然后从步骤2开始针对流程步骤1判断结果为true的分支动作流程进行处理。
步骤2. 由于流程步骤3为条件分支动作流程,为流程步骤3创建新的动作流程表11000,并将动作流程表11000层级地嵌入在动作流程表行10001之下。动作流程表11000包括条件列601和指令列602。为动作流程表11000创建动作流程表行11001,动作流程表行11001包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤3的判断条件“机械手停止”添加到动作流程表行11001的条件单元中,并将后续的动作指令即流程步骤5“机械手停止 = false;”和流程步骤6“机械手状态 = 100;”的内容添加到动作流程表行11001的指令单元中;
进一步地,根据动作流程表10000与动作流程表11000的层级关系对动作流程表行11001的条件单元的单元格式进行的相应设置,使动作流程表行11001的条件单元的中的内容相比动作流程表行10001的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系;
然后从步骤3开始继续针对流程步骤3判断结果为true的分支动作流程中的其他流程步骤进行处理;以及从步骤4开始针对流程步骤3判断结果为false的分支动作流程进行处理。
步骤3. 由于流程步骤7为条件分支动作流程,为流程步骤7创建新的动作流程表11100,并将动作流程表11100层级地嵌入在动作流程表行11001之下。动作流程表11100包括条件列601和指令列602。为动作流程表11100创建动作流程表行11101,动作流程表行11101包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤7的判断条件添加到动作流程表行11101的条件单元中,并将后续的动作指令即流程步骤9的内容添加到动作流程表行11101的指令单元中;
进一步地,根据动作流程表11000与动作流程表11100的层级关系对动作流程表行11101的条件单元的单元格式进行的相应设置,使动作流程表行11101的条件单元的中的内容相比动作流程表行11001的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系。
步骤4. 由于流程步骤14是调用机械手子流程的动作指令,在动作流程表行11001之后创建新的动作流程表行11002,并将一个表示true的常量“ELSE”添加为动作流程表行11002条件单元的内容;并将流程步骤14的内容添加到动作流程表行11002的指令单元中;
进一步地,由于动作流程表行11001和动作流程表行11002属于条件分支动作流程的两个互斥的分支动作流程,因此设置动作流程表行11001与动作流程表行11002的互斥关系,并相应地在两个动作流程表行条件单元的左侧设置圆形标志并用竖线连接,用于在格式上反映二者的互斥的关系。
步骤5. 继续获取后续动作流程,为流程步骤78创建新的动作流程表行11003,动作流程表行11003包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;由于流程步骤78为条件分支动作流程,将流程步骤78的判断条件添加到动作流程表行11003的条件单元中,并将后续的动作指令即流程步骤80和流程步骤81的内容添加到动作流程表行11003的指令单元中;
然后从步骤6开始继续针对流程步骤78判断结果为true的分支动作流程中的其他流程步骤进行处理;以及从步骤7开始针对流程步骤78判断结果为false的分支动作流程进行处理。
步骤6. 由于流程步骤82为条件分支动作流程,为流程步骤82创建新的动作流程表11200,并将动作流程表11200层级地嵌入在动作流程表行11003之下。动作流程表11200包括条件列601和指令列602。为动作流程表11200创建动作流程表行11201,动作流程表行11201包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤82的判断条件添加到动作流程表行11201的条件单元中,并将后续的动作指令即流程步骤83的内容添加到动作流程表行11201的指令单元中;
进一步地,根据动作流程表11000与动作流程表11200的层级关系对动作流程表行11201的条件单元的单元格式进行的相应设置,使动作流程表行11201的条件单元的中的内容相比动作流程表行11003的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系。
步骤7. 由于流程步骤87是调用机床子流程的动作指令,在动作流程表行11003之后创建新的动作流程表行11004,并将一个表示true的常量“ELSE”添加为动作流程表行11004条件单元的内容;并将流程步骤87的内容添加到动作流程表行11004的指令单元中;
进一步地,由于动作流程表行11003和动作流程表行11004属于条件分支动作流程的两个互斥的分支动作流程,因此设置动作流程表行11003与动作流程表行11004的互斥关系,并相应地在两个动作流程表行条件单元的左侧设置圆形标志并用竖线连接,用于在格式上反映二者的互斥的关系。
步骤8. 由于流程步骤153为动作指令,在动作流程表行11004之后创建新的动作流程表行11005,并将一个表示true的常量“TRUE”添加为动作流程表行11005条件单元的内容;并将流程步骤153的内容添加到动作流程表行11005的指令单元中。
步骤9. 获取机械手子流程中的第一个流程步骤,由于流程步骤16为条件分支动作流程,为流程步骤16创建新的动作流程表20000。动作流程表20000包括条件列601和指令列602。为动作流程表20000创建动作流程表行20001,动作流程表行20001包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤16的判断条件添加到动作流程表行20001的条件单元中,并将后续的动作指令即流程步骤18的内容添加到动作流程表行20001的指令单元中;
然后从步骤10开始继续针对流程步骤16判断结果为true的分支动作流程中的其他流程步骤进行处理;
以及从步骤14开始针对流程步骤16判断结果为false的分支动作流程进行处理。
步骤10.由于流程步骤19为条件分支动作流程,为流程步骤19创建新的动作流程表21000,并将动作流程表21000层级地嵌入在动作流程表行20000之下。动作流程表21000包括条件列601和指令列602。为动作流程表21000创建动作流程表行21001,动作流程表行21001包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤19的判断条件添加到动作流程表行21001的条件单元中,并将后续的动作指令即流程步骤21的内容添加到动作流程表行21001的指令单元中;
进一步地,根据动作流程表20000与动作流程表21000的层级关系对动作流程表行21001的条件单元的单元格式进行的相应设置,使动作流程表行21001的条件单元的中的内容相比动作流程表行20001的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系;
然后从步骤11开始继续针对流程步骤19判断结果为true的分支动作流程中的其他流程步骤进行处理。
步骤11. 由于流程步骤22为条件分支动作流程,为流程步骤22创建新的动作流程表21100,并将动作流程表21100层级地嵌入在动作流程表行21000之下。动作流程表21100包括条件列601和指令列602。为动作流程表21100创建动作流程表行21101,动作流程表行21101包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤22的判断条件添加到动作流程表行21101的条件单元中,并将后续的动作指令即流程步骤23的内容添加到动作流程表行21101的指令单元中;
进一步地,根据动作流程表21000与动作流程表21100的层级关系对动作流程表行21101的条件单元的单元格式进行的相应设置,使动作流程表行21101的条件单元的中的内容相比动作流程表行21001的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系。
步骤12.继续获取后续动作流程,为流程步骤24创建新的动作流程表行21102,动作流程表行21102包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;由于流程步骤24为条件分支动作流程,将流程步骤24的判断条件添加到动作流程表行21102的条件单元中,并将后续的动作指令即流程步骤26、27的内容添加到动作流程表行21102的指令单元中。
步骤13.由于流程步骤30为动作指令,在动作流程表行21102之后创建新的动作流程表行21103,并将一个表示true的常量“ELSE”添加为动作流程表行21103条件单元的内容;并将流程步骤30的内容添加到动作流程表行21103的指令单元中;
进一步地,由于动作流程表行21102和动作流程表行21103属于条件分支动作流程的两个互斥的分支动作流程,因此设置动作流程表行21102与动作流程表行21103的互斥关系,并相应地在两个动作流程表行条件单元的左侧设置圆形标志并用竖线连接,用于在格式上反映二者的互斥的关系。
步骤14.继续获取后续动作流程,为流程步骤33创建新的动作流程表行20002,动作流程表行20002包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;由于流程步骤33为条件分支动作流程,将流程步骤33的判断条件添加到动作流程表行20002的条件单元中,并将后续的动作指令即流程步骤35的内容添加到动作流程表行20002的指令单元中;
然后从步骤15开始继续针对流程步骤33判断结果为true的分支动作流程中的其他流程步骤进行处理;
以及从步骤18开始针对流程步骤33判断结果为false的分支动作流程进行处理。
步骤15.由于流程步骤36为条件分支动作流程,为流程步骤36创建新的动作流程表22000,并将动作流程表22000层级地嵌入在动作流程表行20000之下。动作流程表22000包括条件列601和指令列602。为动作流程表22000创建动作流程表行22001,动作流程表行22001包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤36的判断条件添加到动作流程表行22001的条件单元中,并将后续的动作指令即流程步骤38的内容添加到动作流程表行22001的指令单元中;
进一步地,根据动作流程表20000与动作流程表22000的层级关系对动作流程表行22001的条件单元的单元格式进行的相应设置,使动作流程表行22001的条件单元的中的内容相比动作流程表行20002的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系;
然后从步骤16开始继续针对流程步骤36判断结果为true的分支动作流程中的其他流程步骤进行处理。
步骤16.由于流程步骤39为条件分支动作流程,为流程步骤39创建新的动作流程表22100,并将动作流程表22100层级地嵌入在动作流程表行22000之下。动作流程表22100包括条件列601和指令列602。为动作流程表22100创建动作流程表行22101,动作流程表行22101包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤39的判断条件添加到动作流程表行22101的条件单元中,并将后续的动作指令即流程步骤41、42的内容添加到动作流程表行22101的指令单元中;
进一步地,根据动作流程表22000与动作流程表22100的层级关系对动作流程表行22101的条件单元的单元格式进行的相应设置,使动作流程表行22101的条件单元的中的内容相比动作流程表行22001的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系。
步骤17.由于流程步骤45为动作指令,在动作流程表行22101之后创建新的动作流程表行22102,并将一个表示true的常量“ELSE”添加为动作流程表行22102条件单元的内容;并将流程步骤45的内容添加到动作流程表行22102的指令单元中;
进一步地,由于动作流程表行22101和动作流程表行22102属于条件分支动作流程的两个互斥的分支动作流程,因此设置动作流程表行22101与动作流程表行22102的互斥关系,并相应地在两个动作流程表行条件单元的左侧设置圆形标志并用竖线连接,用于在格式上反映二者的互斥的关系。
步骤18.继续获取后续动作流程,为流程步骤49创建新的动作流程表行20003,动作流程表行20003包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;由于流程步骤49为条件分支动作流程,将流程步骤49的判断条件添加到动作流程表行20003的条件单元中,并将后续的动作指令即流程步骤51的内容添加到动作流程表行20003的指令单元中。
步骤19.继续获取后续动作流程,为流程步骤53创建新的动作流程表行20004,动作流程表行20004包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;由于流程步骤53为条件分支动作流程,将流程步骤53的判断条件添加到动作流程表行20004的条件单元中,并将后续的动作指令即流程步骤、59的内容添加到动作流程表行20004的指令单元中;
然后从步骤20开始继续针对流程步骤53判断结果为true的分支动作流程中的其他流程步骤进行处理;
以及从步骤21开始针对流程步骤53判断结果为false的分支动作流程进行处理。
步骤20.由于流程步骤56为条件分支动作流程,为流程步骤56创建新的动作流程表24000,并将动作流程表24000层级地嵌入在动作流程表行20000之下。动作流程表24000包括条件列601和指令列602。为动作流程表24000创建动作流程表行24001,动作流程表行24001包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤56的判断条件添加到动作流程表行24001的条件单元中,并将后续的动作指令即流程步骤58、59的内容添加到动作流程表行24001的指令单元中;
进一步地,根据动作流程表20000与动作流程表24000的层级关系对动作流程表行24001的条件单元的单元格式进行的相应设置,使动作流程表行24001的条件单元的中的内容相比动作流程表行20004的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系。
步骤21.继续获取后续动作流程,为流程步骤62创建新的动作流程表行20005,动作流程表行20005包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;由于流程步骤62为条件分支动作流程,将流程步骤62的判断条件添加到动作流程表行20005的条件单元中,并将后续的动作指令即流程步骤64的内容添加到动作流程表行20005的指令单元中;
然后从步骤22开始继续针对流程步骤62判断结果为true的分支动作流程中的其他流程步骤进行处理;
以及从步骤25开始针对流程步骤62判断结果为false的分支动作流程进行处理。
步骤22.由于流程步骤65为条件分支动作流程,为流程步骤65创建新的动作流程表25000,并将动作流程表25000层级地嵌入在动作流程表行20000之下。动作流程表25000包括条件列601和指令列602。为动作流程表25000创建动作流程表行25001,动作流程表行25001包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤65的判断条件添加到动作流程表行25001的条件单元中;
进一步地,根据动作流程表20000与动作流程表25000的层级关系对动作流程表行25001的条件单元的单元格式进行的相应设置,使动作流程表行25001的条件单元的中的内容相比动作流程表行20005的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系;
然后从步骤23开始继续针对流程步骤65判断结果为true的分支动作流程中的其他流程步骤进行处理。
步骤23.由于流程步骤67为条件分支动作流程,为流程步骤67创建新的动作流程表25100,并将动作流程表25100层级地嵌入在动作流程表行25000之下。动作流程表25100包括条件列601和指令列602。为动作流程表25100创建动作流程表行25101,动作流程表行25101包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤67的判断条件添加到动作流程表行25101的条件单元中,并将后续的动作指令即流程步骤68的内容添加到动作流程表行25101的指令单元中;
进一步地,根据动作流程表25000与动作流程表25100的层级关系对动作流程表行25101的条件单元的单元格式进行的相应设置,使动作流程表行25101的条件单元的中的内容相比动作流程表行25001的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系;
然后从步骤24开始针对流程步骤67判断结果为false的分支动作流程进行处理。
步骤24.由于流程步骤70为动作指令,在动作流程表行25101之后创建新的动作流程表行25102,并将一个表示true的常量“ELSE”添加为动作流程表行25102条件单元的内容;并将流程步骤70的内容添加到动作流程表行25102的指令单元中;
进一步地,由于动作流程表行25101和动作流程表行25102属于条件分支动作流程的两个互斥的分支动作流程,因此设置动作流程表行25101与动作流程表行25102的互斥关系,并相应地在两个动作流程表行条件单元的左侧设置圆形标志并用竖线连接,用于在格式上反映二者的互斥的关系。
步骤25.继续获取后续动作流程,为流程步骤73创建新的动作流程表行20006,动作流程表行20006包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;由于流程步骤73为条件分支动作流程,将流程步骤73的判断条件添加到动作流程表行20006的条件单元中,并将后续的动作指令即流程步骤74的内容添加到动作流程表行20006的指令单元中。
步骤26.获取机床子流程中的第一个流程步骤,由于流程步骤89为条件分支动作流程,为流程步骤89创建新的动作流程表30000。动作流程表30000包括条件列601和指令列602。为动作流程表30000创建动作流程表行30001,动作流程表行30001包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤89的判断条件添加到动作流程表行30001的条件单元中;
然后从步骤27开始继续针对流程步骤89判断结果为true的分支动作流程中的其他流程步骤进行处理;
以及从步骤33开始针对流程步骤89判断结果为false的分支动作流程进行处理。
步骤27.由于流程步骤91为条件分支动作流程,为流程步骤91创建新的动作流程表31000,并将动作流程表31000层级地嵌入在动作流程表行30000之下。动作流程表31000包括条件列601和指令列602。为动作流程表31000创建动作流程表行31001,动作流程表行31001包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤91的判断条件添加到动作流程表行31001的条件单元中,并将后续的动作指令即流程步骤93的内容添加到动作流程表行31001的指令单元中;
进一步地,根据动作流程表30000与动作流程表31000的层级关系对动作流程表行31001的条件单元的单元格式进行的相应设置,使动作流程表行31001的条件单元的中的内容相比动作流程表行30001的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系;
然后从步骤28开始继续针对流程步骤91判断结果为true的分支动作流程中的其他流程步骤进行处理。
步骤28.由于流程步骤94为条件分支动作流程,为流程步骤94创建新的动作流程表31100,并将动作流程表31100层级地嵌入在动作流程表行31000之下。动作流程表31100包括条件列601和指令列602。为动作流程表31100创建动作流程表行31101,动作流程表行31101包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤94的判断条件添加到动作流程表行31101的条件单元中;
进一步地,根据动作流程表31000与动作流程表31100的层级关系对动作流程表行31101的条件单元的单元格式进行的相应设置,使动作流程表行31101的条件单元的中的内容相比动作流程表行31001的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系;
然后从步骤29开始继续针对流程步骤94判断结果为true的分支动作流程中的其他流程步骤进行处理;
以及从步骤31开始针对流程步骤94判断结果为false的分支动作流程进行处理。
步骤29.由于流程步骤96为条件分支动作流程,为流程步骤96创建新的动作流程表31110,并将动作流程表31110层级地嵌入在动作流程表行31100之下。动作流程表31110包括条件列601和指令列602。为动作流程表31110创建动作流程表行31111,动作流程表行31111包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤96的判断条件添加到动作流程表行31111的条件单元中,并将后续的动作指令即流程步骤98、99的内容添加到动作流程表行31111的指令单元中;
进一步地,根据动作流程表31100与动作流程表31110的层级关系对动作流程表行31111的条件单元的单元格式进行的相应设置,使动作流程表行31111的条件单元的中的内容相比动作流程表行31101的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系。
步骤30.由于流程步骤103、104为动作指令,在动作流程表行31111之后创建新的动作流程表行31112,并将一个表示true的常量“ELSE”添加为动作流程表行31112条件单元的内容;并将流程步骤103、104的内容添加到动作流程表行31112的指令单元中;
进一步地,由于动作流程表行31111和动作流程表行31112属于条件分支动作流程的两个互斥的分支动作流程,因此设置动作流程表行31111与动作流程表行31112的互斥关系,并相应地在两个动作流程表行条件单元的左侧设置圆形标志并用竖线连接,用于在格式上反映二者的互斥的关系。
步骤31.继续获取后续动作流程,为流程步骤107创建新的动作流程表行31102,动作流程表行31102包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;由于流程步骤107为条件分支动作流程,将流程步骤107的判断条件添加到动作流程表行31102的条件单元中,并将后续的动作指令即流程步骤109、110的内容添加到动作流程表行31102的指令单元中;
从步骤32开始针对流程步骤107判断结果为false的分支动作流程进行处理。
步骤32.由于流程步骤114、115为动作指令,在动作流程表行31102之后创建新的动作流程表行31103,并将一个表示true的常量“ELSE”添加为动作流程表行31103条件单元的内容;并将流程步骤114、115的内容添加到动作流程表行31103的指令单元中;
进一步地,由于动作流程表行31102和动作流程表行31103属于条件分支动作流程的两个互斥的分支动作流程,因此设置动作流程表行31102与动作流程表行31103的互斥关系,并相应地在两个动作流程表行条件单元的左侧设置圆形标志并用竖线连接,用于在格式上反映二者的互斥的关系。
步骤33.继续获取后续动作流程,为流程步骤119创建新的动作流程表行30002,动作流程表行30002包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;由于流程步骤119为条件分支动作流程,将流程步骤119的判断条件添加到动作流程表行30002的条件单元中;
然后从步骤34开始继续针对流程步骤119判断结果为true的分支动作流程中的其他流程步骤进行处理;
以及从步骤35开始针对流程步骤119判断结果为false的分支动作流程进行处理。
步骤34.由于流程步骤121为条件分支动作流程,为流程步骤121创建新的动作流程表32000,并将动作流程表32000层级地嵌入在动作流程表行30000之下。动作流程表32000包括条件列601和指令列602。为动作流程表32000创建动作流程表行32001,动作流程表行32001包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤121的判断条件添加到动作流程表行32001的条件单元中,并将后续的动作指令即流程步骤123、124的内容添加到动作流程表行32001的指令单元中;
进一步地,根据动作流程表30000与动作流程表32000的层级关系对动作流程表行32001的条件单元的单元格式进行的相应设置,使动作流程表行32001的条件单元的中的内容相比动作流程表行30002的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系。
步骤35.继续获取后续动作流程,为流程步骤127创建新的动作流程表行30003,动作流程表行30003包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;由于流程步骤127为条件分支动作流程,将流程步骤127的判断条件添加到动作流程表行30003的条件单元中;
然后从步骤36开始继续针对流程步骤127判断结果为true的分支动作流程中的其他流程步骤进行处理;
以及从步骤37开始针对流程步骤127判断结果为false的分支动作流程进行处理。
步骤36.由于流程步骤129为条件分支动作流程,为流程步骤129创建新的动作流程表33000,并将动作流程表33000层级地嵌入在动作流程表行30000之下。动作流程表33000包括条件列601和指令列602。为动作流程表33000创建动作流程表行33001,动作流程表行33001包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤129的判断条件添加到动作流程表行33001的条件单元中,并将后续的动作指令即流程步骤131、132的内容添加到动作流程表行33001的指令单元中;
进一步地,根据动作流程表30000与动作流程表33000的层级关系对动作流程表行33001的条件单元的单元格式进行的相应设置,使动作流程表行33001的条件单元的中的内容相比动作流程表行30003的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系。
步骤37.继续获取后续动作流程,为流程步骤135创建新的动作流程表行30004,动作流程表行30004包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;由于流程步骤135为条件分支动作流程,将流程步骤135的判断条件添加到动作流程表行30004的条件单元中;
然后从步骤38开始继续针对流程步骤135判断结果为true的分支动作流程中的其他流程步骤进行处理;
以及从步骤39开始针对流程步骤135判断结果为false的分支动作流程进行处理。
步骤38.由于流程步骤137为条件分支动作流程,为流程步骤137创建新的动作流程表34000,并将动作流程表34000层级地嵌入在动作流程表行30000之下。动作流程表34000包括条件列601和指令列602。为动作流程表34000创建动作流程表行34001,动作流程表行34001包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤137的判断条件添加到动作流程表行34001的条件单元中,并将后续的动作指令即流程步骤139、140的内容添加到动作流程表行34001的指令单元中;
进一步地,根据动作流程表30000与动作流程表34000的层级关系对动作流程表行34001的条件单元的单元格式进行的相应设置,使动作流程表行34001的条件单元的中的内容相比动作流程表行30004的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系。
步骤39.继续获取后续动作流程,为流程步骤143创建新的动作流程表行30005,动作流程表行30005包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;由于流程步骤143为条件分支动作流程,将流程步骤143的判断条件添加到动作流程表行30005的条件单元中;
然后从步骤40开始继续针对流程步骤143判断结果为true的分支动作流程中的其他流程步骤进行处理。
步骤40.由于流程步骤145为条件分支动作流程,为流程步骤145创建新的动作流程表35000,并将动作流程表35000层级地嵌入在动作流程表行30000之下。动作流程表35000包括条件列601和指令列602。为动作流程表35000创建动作流程表行35001,动作流程表行35001包括与所述的动作流程表的条件列601和指令列602对应的条件单元和指令单元;将流程步骤145的判断条件添加到动作流程表行35001的条件单元中,并将后续的动作指令即流程步骤147、148的内容添加到动作流程表行35001的指令单元中;
进一步地,根据动作流程表30000与动作流程表35000的层级关系对动作流程表行35001的条件单元的单元格式进行的相应设置,使动作流程表行35001的条件单元的中的内容相比动作流程表行30005的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系。
本发明的一个实施例根据上述动作流程表10000执行动作流程,具体步骤如下:
步骤1. 获取动作流程表10000的第一个动作流程表行10001,判断动作流程表行10001条件单元的执行条件“系统开机”是否为true;如果是则进一步获取动作流程表行10001内嵌的下级动作流程表11000。并执行下一步。
步骤2. 获取动作流程表11000的第一个动作流程表行11001,判断动作流程表行11001条件单元的执行条件“机械手停止”是否为true;
如果是则获取并执行动作流程表行11001指令单元中的内容“机械手停止 = false;”和“机械手状态 = 100;”,然后进一步获取动作流程表行11001内嵌的下级动作流程表11100。并执行步骤3;然后获取与动作流程表行11001的执行条件为非互斥关系的下一条动作流程表行11003,并执行步骤5;
否则获取下一个动作流程表行11002并执行步骤4。
步骤3. 获取动作流程表11100的第一个动作流程表行11101,判断动作流程表行11101条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行11101指令单元中的内容。
步骤4. 由于动作流程表行11002条件单元的执行条件为true;因此获取并执行动作流程表行11001指令单元中的内容。由于动作流程表行11001指令单元中的动作指令是调用机械手子流程,因此从步骤9开始执行机械手子流程。由于动作流程表行11002没有内嵌的下级动作流程表,因此在机械手子流程执行完成后立即执行步骤5。
步骤5. 判断动作流程表行11003条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行11003指令单元中的内容,然后进一步获取动作流程表行11003内嵌的下级动作流程表11200。并执行步骤6;然后获取与动作流程表行11003的执行条件为非互斥关系的下一条动作流程表行11005,并执行步骤8;
否则获取下一个动作流程表行11004并执行步骤7。
步骤6. 获取动作流程表11200的第一个动作流程表行11201,判断动作流程表行11201条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行11201指令单元中的内容。
步骤7. 由于动作流程表行11004条件单元的执行条件为true;因此获取并执行动作流程表行11004指令单元中的内容。由于动作流程表行11004指令单元中的动作指令是调用机床子流程,因此从步骤26开始执行机床子流程。由于动作流程表行11004没有内嵌的下级动作流程表,因此在机床子流程执行完成后立即执行步骤8。
步骤8. 由于动作流程表行11005条件单元的执行条件为true;因此获取并执行动作流程表行11005指令单元中的内容。由于这是主动作流程表的最后一个流程表行,且动作流程表行10001的循环执行属性值为循环执行,因此返回步骤1继续执行。
步骤9. 获取动作流程表20000的第一个动作流程表行20001,判断动作流程表行20001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行20001指令单元中的内容,然后进一步获取动作流程表行20001内嵌的下级动作流程表21000。并执行步骤10;
否则获取下一个动作流程表行20002并执行步骤14。
步骤10.获取动作流程表21000的第一个动作流程表行21001,判断动作流程表行21001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行21001指令单元中的内容,然后进一步获取动作流程表行21001内嵌的下级动作流程表21100。并执行步骤11。
步骤11. 获取动作流程表21100的第一个动作流程表行21101,判断动作流程表行21101条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行21101指令单元中的内容;
否则获取下一个动作流程表行21102并执行步骤12。
步骤12.判断动作流程表行21102条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行21102指令单元中的内容;
否则获取下一个动作流程表行21103并执行步骤13。
步骤13.判断动作流程表行21103条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行21103指令单元中的内容。
步骤14.判断动作流程表行20002条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行20002指令单元中的内容,然后进一步获取动作流程表行20002内嵌的下级动作流程表22000。并执行步骤15;
否则获取下一个动作流程表行20003并执行步骤18。
步骤15.获取动作流程表22000的第一个动作流程表行22001,判断动作流程表行22001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行22001指令单元中的内容,然后进一步获取动作流程表行22001内嵌的下级动作流程表22100。并执行步骤16。
步骤16.获取动作流程表22100的第一个动作流程表行22101,判断动作流程表行22101条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行22101指令单元中的内容;
否则获取下一个动作流程表行22102并执行步骤17。
步骤17.判断动作流程表行22102条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行22102指令单元中的内容。
步骤18.判断动作流程表行20003条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行20003指令单元中的内容;
否则获取下一个动作流程表行20004,并执行步骤19。
步骤19.判断动作流程表行20004条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行20004指令单元中的内容,然后进一步获取动作流程表行20004内嵌的下级动作流程表24000。并执行步骤20;
否则获取下一个动作流程表行20004并执行步骤21。
步骤20.判断动作流程表行24001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行24001指令单元中的内容。
步骤21.判断动作流程表行20005条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行20005指令单元中的内容,然后进一步获取动作流程表行20005内嵌的下级动作流程表25000。并执行步骤22;
否则获取下一个动作流程表行20006并执行步骤25。
步骤22.获取动作流程表25000的第一个动作流程表行25001,判断动作流程表行25001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行25001指令单元中的内容,然后进一步获取动作流程表行25001内嵌的下级动作流程表25100。并执行步骤16。
步骤23.获取动作流程表25100的第一个动作流程表行25101,判断动作流程表行25101条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行25101指令单元中的内容;
否则获取下一个动作流程表行25102并执行步骤17。
步骤24.判断动作流程表行25102条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行25102指令单元中的内容。
步骤25.判断动作流程表行20006条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行20006指令单元中的内容。
步骤26.获取动作流程表30000的第一个动作流程表行30001,判断动作流程表行30001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行30001指令单元中的内容,然后进一步获取动作流程表行30001内嵌的下级动作流程表31000。并执行步骤27;
否则获取下一个动作流程表行30002并执行步骤33。
步骤27.获取动作流程表31000的第一个动作流程表行31001,判断动作流程表行31001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行31001指令单元中的内容,然后进一步获取动作流程表行31001内嵌的下级动作流程表31100。并执行步骤28。
步骤28.获取动作流程表31100的第一个动作流程表行31101,判断动作流程表行21101条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行31101指令单元中的内容,然后进一步获取动作流程表行31101内嵌的下级动作流程表31110。并执行步骤29;
否则获取下一个动作流程表行31102并执行步骤31。
步骤29.获取动作流程表31110的第一个动作流程表行31111,判断动作流程表行31111条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行31111指令单元中的内容;
否则获取下一个动作流程表行31112并执行步骤13。
步骤30.判断动作流程表行31112条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行31112指令单元中的内容。
步骤31.判断动作流程表行31102条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行31102指令单元中的内容;
否则获取下一个动作流程表行31103并执行步骤32。
步骤32.判断动作流程表行31103条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行31103指令单元中的内容。
步骤33.判断动作流程表行30002条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行30002指令单元中的内容,然后进一步获取动作流程表行30002内嵌的下级动作流程表32000。并执行步骤34;
否则获取下一个动作流程表行30003并执行步骤35。
步骤34.获取动作流程表32000的第一个动作流程表行32001,判断动作流程表行32001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行32001指令单元中的内容。
步骤35.判断动作流程表行30003条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行30003指令单元中的内容,然后进一步获取动作流程表行30003内嵌的下级动作流程表33000。并执行步骤36;
否则获取下一个动作流程表行30004并执行步骤37。
步骤36.获取动作流程表33000的第一个动作流程表行33001,判断动作流程表行33001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行33001指令单元中的内容。
步骤37.判断动作流程表行30004条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行30004指令单元中的内容,然后进一步获取动作流程表行30004内嵌的下级动作流程表34000。并执行步骤38;
否则获取下一个动作流程表行30005并执行步骤39。
步骤38.获取动作流程表34000的第一个动作流程表行34001,判断动作流程表行34001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行34001指令单元中的内容。
步骤39.判断动作流程表行30005条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行30005指令单元中的内容,然后进一步获取动作流程表行30005内嵌的下级动作流程表35000。并执行步骤40。
步骤40.获取动作流程表35000的第一个动作流程表行35001,判断动作流程表行35001条件单元的执行条件是否为true;如果是则获取并执行动作流程表行35001指令单元中的内容。
上述实施例中,机械手子流程和机床子流程中包括多个串联的条件分支动作流程用于对机械手状态和机床状态进行判断,并选择执行其中与目标状态相一致的分支动作流程;因此这可以看做是一个切换分支动作流程,机械手状态和机床状态的即为目标索引变量,每个分支动作流程的目标状态即为此分支动作流程的分支索引值,当目标索引变量的值与分支动作流程的分支索引值相匹配时,所述分支动作流程即被执行。在C语言中分支动作流程也可以用switch..case语句描述,可以等价地将if..else if表示的多个互斥的判断语句改写为switch..case语句。下面的程序中用switch..case语句改写了上文中的C语言程序中对应的指令行。前后两个程序的动作流程是一致的。上述的动作流程的流程步骤号可以与下面的C语言程序代码的行号相对应。
1: while (系统开机)
2: {
3: if (机械手停止)
4: {
5: 机械手停止 = false;
6: 机械手状态 = 100;
7: if ((机械手状态 == 400) || (机械手状态 == 500))
8: {
9: 机械手暂停();
10: }
11: }
12: else
13: {
14: switch (机械手状态) // 机械手子流程
15: {// 分支动作流程
16: case 100:
17: //机械手停止中
18: 指示灯状态 = 黄灯亮;
19: if (机械手启动)
20: {
21: 机械手启动 = false;
22: if (机械手夹爪中有工件)
23: 机械手放置开始();
24: else if (机床防护门开启到位 && 机床输出区中有工件)
25: {
26: 机械手抓取开始();
27: 机械手状态 = 400;
28: }
29: else
30: 机械手状态 = 300;
31: }
32: break;
33: case 200:
34: //机械手工件抓取等待中
35: 指示灯状态 = 黄灯亮;
36: if (机械手启动)
37: {
38: 机械手启动 = false;
39: if (机床防护门开启到位 && 机床输出区中有工件)
40: {
41: 机械手抓取开始();
42: 机械手状态 = 400;
43: }
44: else
45: 机械手状态 = 300; //机械手工件抓取错误报警
46: }
47: break;
48: //
49: case 300:
50: //机械手工件抓取错误报警
51: 指示灯状态 = 红灯亮;
52: break;
53: case 400:
54: //机械手工件抓取中
55: 指示灯状态 = 绿灯亮;
56: if (机械手抓取完成)
57: {
58: 机械手放置开始();
59: 机械手状态 = 500;
60: }
61: break;
62: case 500:
63: //机械手工件放置中
64: 指示灯状态 = 绿灯亮;
65: if (机械手放置完成)
66: {
67: if (机械手夹爪中有工件)
68: 机械手状态 = 600;
69: else
70: 机械手状态 = 200;
71: }
72: break;
73: case 600: //机械手工件放置错误报警
74: 指示灯状态 = 红灯亮;
75: break;
76: }
77: }
78: if (机床停止)
79: {
80: 机床停止 = false;
81: 机床状态 = 100;
82: if (机床状态 == 300)
83: 机床暂停();
84: }
85: else
86: {
87: switch (机床状态) // 机床子流程
88: {// 分支动作流程
89: case 100:
90: //机床停止中
91: if (机床启动)
92: {
93: 机床启动 = false;
94: if (机床输出区中有工件)
95: {
96: if (!机床防护门开启到位)
97: {
98: 机床防护门开启 = true;
99: 机床状态 = 400;
100: }
101: else
102: {
103: 机械手启动 = true;
104: 机床状态 = 500;
105: }
106: }
107: else if (!机床防护门关闭到位)
108: {
109: 机床防护门开启 = false;
110: 机床状态 = 200;
111: }
112: else
113: {
114: 机床加工开始();
115: 机床状态 = 300;
116: }
117: }
118: break;
119: case 200:
120: //机床防护门关闭中
121: if (机床防护门关闭到位)
122: {
123: 机床加工开始();
124: 机床状态 = 300;
125: }
126: break;
127: case 300:
128: //机床加工中
129: if (机床加工完成)
130: {
131: 机床防护门开启 = true;
132: 机床状态 = 400;
133: }
134: break;
135: case 400:
136: //机床防护门开启中
137: if (机床防护门开启到位)
138: {
139: 机械手启动 = true;
140: 机床状态 = 500;
141: }
142: break;
143: case 500:
144: //机床工件抓取等待中
145: if (机械手抓取完成 && !机床输出区中有工件)
146: {
147: 机床防护门开启 = false;
148: 机床状态 = 200;
149: }
150: break;
151: }
152: }
153: ThreadSleep(100);
154: }
本发明的另一个实施例针对上述的动作流程进行表格化处理,下面参考附图9~11对流程步骤的处理过程进行说明:
步骤1. 针对主流程创建一个动作流程表10000,动作流程表10000包括条件列601、指令列602和切换目标列603;分别为这三列对应地为设置列标题“条件”、“指令”和“切换目标”;为动作流程表10000添加一条动作流程表行10001,动作流程表行10001包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;获取上述的流程步骤1,由于流程步骤1是一个条件分支动作流程,将流程步骤1的判断条件“系统开机”添加到动作流程表行10001的条件单元中;
进一步地,由于流程步骤1表示在满足其判断条件的前提下循环执行后续指令,因此设置动作流程表行10001循环执行属性值为循环执行;并在动作流程表行10001条件单元内容的左侧对应地设置一个圆形的内部为旋转箭头的标志610,这是根据动作流程表行10001所设置的循环执行属性在单元格的格式上所进行的相应设置,用于反映流程步骤1的执行执行方式;
然后从步骤2开始针对流程步骤1判断结果为true的分支动作流程进行处理。
步骤2. 由于流程步骤3为条件分支动作流程,为流程步骤3创建新的动作流程表11000,并将动作流程表11000层级地嵌入在动作流程表行10001之下。动作流程表11000包括条件列601、指令列602和切换目标列603。为动作流程表11000创建动作流程表行11001,动作流程表行11001包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;将流程步骤3的判断条件“机械手停止”添加到动作流程表行11001的条件单元中,并将后续的动作指令即流程步骤5的内容添加到动作流程表行11001的指令单元中;由于流程步骤6是设置目标索引变量“机械手状态”的值的指令,因此将流程步骤6的内容添加到动作流程表行11001的切换目标单元中,而不再添加到动作流程表行11001的指令单元中;
进一步地,根据动作流程表10000与动作流程表11000的层级关系对动作流程表行11001的条件单元的单元格式进行的相应设置,使动作流程表行11001的条件单元的中的内容相比动作流程表行10001的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系;
然后从步骤3开始继续针对流程步骤3判断结果为true的分支动作流程中的其他流程步骤进行处理;以及从步骤4开始针对流程步骤3判断结果为false的分支动作流程进行处理。
步骤3. 由于流程步骤7为条件分支动作流程,为流程步骤7创建新的动作流程表11100,并将动作流程表11100层级地嵌入在动作流程表行11001之下。动作流程表11100包括条件列601、指令列602和切换目标列603。为动作流程表11100创建动作流程表行11101,动作流程表行11101包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;将流程步骤7的判断条件添加到动作流程表行11101的条件单元中,并将后续的动作指令即流程步骤9的内容添加到动作流程表行11101的指令单元中;
进一步地,根据动作流程表11000与动作流程表11100的层级关系对动作流程表行11101的条件单元的单元格式进行的相应设置,使动作流程表行11101的条件单元的中的内容相比动作流程表行11001的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系。
步骤4. 由于流程步骤14是调用机械手子流程的动作指令,在动作流程表行11001之后创建新的动作流程表行11002,并将一个表示true的常量“ELSE”添加为动作流程表行11002条件单元的内容;并将流程步骤14的内容添加到动作流程表行11002的指令单元中;
进一步地,由于动作流程表行11001和动作流程表行11002属于条件分支动作流程的两个互斥的分支动作流程,因此设置动作流程表行11001与动作流程表行11002的互斥关系,并相应地在两个动作流程表行条件单元的左侧设置圆形标志并用竖线连接,用于在格式上反映二者的互斥的关系。
步骤5. 继续获取后续动作流程,为流程步骤78创建新的动作流程表行11003,动作流程表行11003包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;由于流程步骤78为条件分支动作流程,将流程步骤78的判断条件添加到动作流程表行11003的条件单元中,并将后续的动作指令即流程步骤80的内容添加到动作流程表行11003的指令单元中;由于流程步骤81是设置目标索引变量“机床状态”的值的指令,因此将流程步骤81的内容添加到动作流程表行11003的切换目标单元中,而不再添加到动作流程表行11003的指令单元中;
然后从步骤6开始继续针对流程步骤78判断结果为true的分支动作流程中的其他流程步骤进行处理;以及从步骤7开始针对流程步骤78判断结果为false的分支动作流程进行处理。
步骤6. 由于流程步骤82为条件分支动作流程,为流程步骤82创建新的动作流程表11200,并将动作流程表11200层级地嵌入在动作流程表行11003之下。动作流程表11200包括条件列601、指令列602和切换目标列603。为动作流程表11200创建动作流程表行11201,动作流程表行11201包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;将流程步骤82的判断条件添加到动作流程表行11201的条件单元中,并将后续的动作指令即流程步骤83的内容添加到动作流程表行11201的指令单元中;
进一步地,根据动作流程表11000与动作流程表11200的层级关系对动作流程表行11201的条件单元的单元格式进行的相应设置,使动作流程表行11201的条件单元的中的内容相比动作流程表行11003的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系。
步骤7. 由于流程步骤87是调用机床子流程的动作指令,在动作流程表行11003之后创建新的动作流程表行11004,并将一个表示true的常量“ELSE”添加为动作流程表行11004条件单元的内容;并将流程步骤87的内容添加到动作流程表行11004的指令单元中;
进一步地,由于动作流程表行11003和动作流程表行11004属于条件分支动作流程的两个互斥的分支动作流程,因此设置动作流程表行11003与动作流程表行11004的互斥关系,并相应地在两个动作流程表行条件单元的左侧设置圆形标志并用竖线连接,用于在格式上反映二者的互斥的关系。
步骤8. 由于流程步骤153为动作指令,在动作流程表行11004之后创建新的动作流程表行11005,并将一个表示true的常量“TRUE”添加为动作流程表行11005条件单元的内容;并将流程步骤153的内容添加到动作流程表行11005的指令单元中。
步骤9. 由于机械手子流程是一个切换分支动作流程,针对这个切换分支动作流程创建一个动作流程表40000,为动作流程表40000添加一个动作流程表行40001,将一个表示true的常量“TRUE”添加为动作流程表行40001条件单元的内容,而将针对目标索引变量“机械手状态”进行判断的多个互斥的判断条件作为一个分支切换指令“switch (机械手状态)”添加到动作流程表行40001的指令单元中;
获取机械手子流程中的第一个流程步骤,由于流程步骤16是切换分支动作流程中的一个分支动作流程,为流程步骤16创建一个分支动作流程表41000,将分支动作流程表21000层级地嵌入在动作流程表行40001之下;分支动作流程表41000包括索引列611和注释列612;为分支动作流程表41000添加分支动作流程表行41001,分支动作流程表行41001与索引列611和注释列612对应的包括索引单元6211和注释单元6212;
流程步骤16中的机械手状态的目标值100是这个分支动作流程的分支索引值,因此将这个分支索引值添加到索引单元6211中。将流程步骤16中的机械手状态的目标值100所表示的含义添加到注释单元6212中;
针对这个分支动作流程中的流程步骤创建动作流程表21000。动作流程表21000包括条件列601、指令列602和切换目标列603。将动作流程表21000层级地嵌入在分支动作流程表行41001之下;并进一步地设置动作流程表21000与动作流程表40000按列对齐;
为动作流程表21000创建动作流程表行21001,动作流程表行21001包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;
在机械手子流程中,每一个分支动作流程中都通过一个针对指示灯状态变量赋值的动作指令确定了指示灯的状态变量的值,因而指示灯状态变量是一个状态变量。在本发明的一些实施例中,动作流程表41000还包括对应于指示灯状态变量的分支状态列613,分支动作流程表行41001还包括对应于分支状态列613的分支状态单元6213。流程步骤18是针对指示灯状态变量赋值的动作指令,因此将这个赋值指令的目标值设置为分支状态单元6213的内容;
然后从步骤10开始继续针对流程步骤16对应的分支动作流程中的其他流程步骤进行处理;
然后从步骤14开始继续针对机械手子流程中的下一个分支动作流程进行处理。
步骤10.由于流程步骤19为条件分支动作流程,将流程步骤19的判断条件添加到动作流程表行21001的条件单元中,并将后续的动作指令即流程步骤21的内容添加到动作流程表行21001的指令单元中;
然后从步骤11开始继续针对流程步骤19判断结果为true的分支动作流程中的其他流程步骤进行处理。
步骤11.由于流程步骤22为条件分支动作流程,为流程步骤22创建新的动作流程表21100,并将动作流程表21100层级地嵌入在动作流程表行21000之下。动作流程表21100包括条件列601、指令列602和切换目标列603。为动作流程表21100创建动作流程表行21101,动作流程表行21101包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;将流程步骤22的判断条件添加到动作流程表行21101的条件单元中,并将后续的动作指令即流程步骤23的内容添加到动作流程表行21101的指令单元中;
进一步地,根据动作流程表21000与动作流程表21100的层级关系对动作流程表行21101的条件单元的单元格式进行的相应设置,使动作流程表行21101的条件单元的中的内容相比动作流程表行21001的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系。
步骤12.继续获取后续动作流程,为流程步骤24创建新的动作流程表行21102,动作流程表行21102包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;由于流程步骤24为条件分支动作流程,将流程步骤24的判断条件添加到动作流程表行21102的条件单元中,并将后续的动作指令即流程步骤26的内容添加到动作流程表行21102的指令单元中;由于流程步骤27是设置目标索引变量“机械手状态”的值的指令,因此将流程步骤27的内容添加到动作流程表行21102的切换目标单元中,而不再添加到动作流程表行21102的指令单元中。
步骤13.由于流程步骤30为动作指令,在动作流程表行21102之后创建新的动作流程表行21103,动作流程表行21103包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;将一个表示true的常量“ELSE”添加为动作流程表行21103条件单元的内容;由于流程步骤30是设置目标索引变量“机械手状态”的值的指令,因此将流程步骤30的内容添加到动作流程表行21103的切换目标单元中,而不再添加到动作流程表行21103的指令单元中。
步骤14.由于流程步骤33是切换分支动作流程中的一个分支动作流程,为分支动作流程表41000添加分支动作流程表行41002,分支动作流程表行41002与索引列611和注释列612对应的包括索引单元6221和注释单元6222;
流程步骤33中的机械手状态的目标值200是这个分支动作流程的分支索引值,因此将这个分支索引值添加到索引单元6221中。将流程步骤33中的机械手状态的目标值200所表示的含义添加到注释单元6222中;
针对这个分支动作流程中的流程步骤创建动作流程表22000。动作流程表22000包括条件列601、指令列602和切换目标列603。将动作流程表22000层级地嵌入在分支动作流程表行41002之下;并进一步地设置动作流程表22000与动作流程表40000按列对齐;
为动作流程表22000创建动作流程表行22001,动作流程表行22001包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;
在本发明的一些实施例中,分支动作流程表行41002还包括对应于分支状态列613的分支状态单元6223。流程步骤35是针对指示灯状态变量赋值的动作指令,因此将这个赋值指令的目标值设置为分支状态单元6223的内容;
然后从步骤15开始继续针对流程步骤33对应的分支动作流程中的其他流程步骤进行处理;
然后从步骤18开始继续针对机械手子流程中的下一个分支动作流程进行处理。
步骤15.由于流程步骤36为条件分支动作流程,将流程步骤36的判断条件添加到动作流程表行21001的条件单元中,并将后续的动作指令即流程步骤38的内容添加到动作流程表行21001的指令单元中;
然后从步骤16开始继续针对流程步骤36判断结果为true的分支动作流程中的其他流程步骤进行处理。
步骤16.由于流程步骤39为条件分支动作流程,为流程步骤39创建新的动作流程表22100,并将动作流程表22100层级地嵌入在动作流程表行22000之下。动作流程表22100包括条件列601、指令列602和切换目标列603。为动作流程表22100创建动作流程表行22101,动作流程表行22101包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;将流程步骤39的判断条件添加到动作流程表行22101的条件单元中,并将后续的动作指令即流程步骤41的内容添加到动作流程表行22101的指令单元中;由于流程步骤42是设置目标索引变量“机床状态”的值的指令,因此将流程步骤42的内容添加到动作流程表行22101的切换目标单元中,而不再添加到动作流程表行22101的指令单元中;
进一步地,根据动作流程表22000与动作流程表22100的层级关系对动作流程表行22101的条件单元的单元格式进行的相应设置,使动作流程表行22101的条件单元的中的内容相比动作流程表行22001的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系。
步骤17.由于流程步骤45为动作指令,在动作流程表行22101之后创建新的动作流程表行22102,并将一个表示true的常量“ELSE”添加为动作流程表行22102条件单元的内容;由于流程步骤45是设置目标索引变量“机床状态”的值的指令,因此将流程步骤45的内容添加到动作流程表行22102的切换目标单元中,而不再添加到动作流程表行22102的指令单元中;
进一步地,由于动作流程表行22101和动作流程表行22102属于条件分支动作流程的两个互斥的分支动作流程,因此设置动作流程表行22101与动作流程表行22102的互斥关系,并相应地在两个动作流程表行条件单元的左侧设置圆形标志并用竖线连接,用于在格式上反映二者的互斥的关系。
步骤18.由于流程步骤49是切换分支动作流程中的一个分支动作流程,为分支动作流程表41000添加分支动作流程表行41003,分支动作流程表行41003与索引列611和注释列612对应的包括索引单元6231和注释单元6232;
流程步骤49中的机械手状态的目标值300是这个分支动作流程的分支索引值,因此将这个分支索引值添加到索引单元6231中。将流程步骤49中的机械手状态的目标值300所表示的含义添加到注释单元6232中;
针对这个分支动作流程中的流程步骤创建动作流程表23000。动作流程表23000包括条件列601、指令列602和切换目标列603。将动作流程表23000层级地嵌入在分支动作流程表行41003之下;并进一步地设置动作流程表23000与动作流程表40000按列对齐;
为动作流程表23000创建动作流程表行23001,动作流程表行23001包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;
在本发明的一些实施例中,分支动作流程表行41003还包括对应于分支状态列613的分支状态单元6233。流程步骤51是针对指示灯状态变量赋值的动作指令,因此将这个赋值指令的目标值设置为分支状态单元6233的内容;
然后从步骤19开始继续针对机械手子流程中的下一个分支动作流程进行处理。
步骤19.由于流程步骤53是切换分支动作流程中的一个分支动作流程,为分支动作流程表41000添加分支动作流程表行41004,分支动作流程表行41004与索引列611和注释列612对应的包括索引单元6241和注释单元6242;
流程步骤53中的机械手状态的目标值400是这个分支动作流程的分支索引值,因此将这个分支索引值添加到索引单元6241中。将流程步骤53中的机械手状态的目标值400所表示的含义添加到注释单元6242中;
针对这个分支动作流程中的流程步骤创建动作流程表24000。动作流程表24000包括条件列601、指令列602和切换目标列603。将动作流程表24000层级地嵌入在分支动作流程表行41004之下;并进一步地设置动作流程表24000与动作流程表40000按列对齐;
为动作流程表24000创建动作流程表行24001,动作流程表行24001包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;
在本发明的一些实施例中,分支动作流程表行41004还包括对应于分支状态列613的分支状态单元6243。流程步骤55是针对指示灯状态变量赋值的动作指令,因此将这个赋值指令的目标值设置为分支状态单元6243的内容;
然后从步骤20开始继续针对流程步骤53对应的分支动作流程中的其他流程步骤进行处理;
然后从步骤21开始继续针对机械手子流程中的下一个分支动作流程进行处理。
步骤20.由于流程步骤56为条件分支动作流程,将流程步骤56的判断条件添加到动作流程表行24001的条件单元中,并将后续的动作指令即流程步骤58的内容添加到动作流程表行24001的指令单元中;由于流程步骤59是设置目标索引变量“机床状态”的值的指令,因此将流程步骤59的内容添加到动作流程表行24001的切换目标单元中,而不再添加到动作流程表行24001的指令单元中。
步骤21.由于流程步骤62是切换分支动作流程中的一个分支动作流程,为分支动作流程表41000添加分支动作流程表行41005,分支动作流程表行41005与索引列611和注释列612对应的包括索引单元6251和注释单元6252;
流程步骤62中的机械手状态的目标值500是这个分支动作流程的分支索引值,因此将这个分支索引值添加到索引单元6251中。将流程步骤62中的机械手状态的目标值500所表示的含义添加到注释单元6252中;
针对这个分支动作流程中的流程步骤创建动作流程表25000。动作流程表25000包括条件列601、指令列602和切换目标列603。将动作流程表25000层级地嵌入在分支动作流程表行41005之下;并进一步地设置动作流程表25000与动作流程表40000按列对齐;
为动作流程表25000创建动作流程表行25001,动作流程表行25001包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;
在本发明的一些实施例中,分支动作流程表行41005还包括对应于分支状态列613的分支状态单元6253。流程步骤64是针对指示灯状态变量赋值的动作指令,因此将这个赋值指令的目标值设置为分支状态单元6253的内容;
然后从步骤22开始继续针对流程步骤62对应的分支动作流程中的其他流程步骤进行处理;
然后从步骤25开始继续针对机械手子流程中的下一个分支动作流程进行处理。
步骤22.由于流程步骤65为条件分支动作流程,将流程步骤65的判断条件添加到动作流程表行25001的条件单元中;然后从步骤23开始继续针对流程步骤65判断结果为true的分支动作流程中的其他流程步骤进行处理。
步骤23.由于流程步骤67为条件分支动作流程,为流程步骤67创建新的动作流程表25100,并将动作流程表25100层级地嵌入在动作流程表行25000之下。动作流程表25100包括条件列601、指令列602和切换目标列603。为动作流程表25100创建动作流程表行25101,动作流程表行25101包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;将流程步骤67的判断条件添加到动作流程表行25101的条件单元中;由于流程步骤68是设置目标索引变量“机床状态”的值的指令,因此将流程步骤68的内容添加到动作流程表行25101的切换目标单元中,而不再添加到动作流程表行25101的指令单元中;
进一步地,根据动作流程表25000与动作流程表25100的层级关系对动作流程表行25101的条件单元的单元格式进行的相应设置,使动作流程表行25101的条件单元的中的内容相比动作流程表行25001的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系;
从步骤24开始针对流程步骤67判断结果为false的分支动作流程进行处理。
步骤24.由于流程步骤70为动作指令,在动作流程表行25101之后创建新的动作流程表行25102,并将一个表示true的常量“ELSE”添加为动作流程表行25102条件单元的内容;由于流程步骤70是设置目标索引变量“机床状态”的值的指令,因此将流程步骤70的内容添加到动作流程表行25102的切换目标单元中,而不再添加到动作流程表行25102的指令单元中;
进一步地,由于动作流程表行25101和动作流程表行25102属于条件分支动作流程的两个互斥的分支动作流程,因此设置动作流程表行25101与动作流程表行25102的互斥关系,并相应地在两个动作流程表行条件单元的左侧设置圆形标志并用竖线连接,用于在格式上反映二者的互斥的关系。
步骤25.由于流程步骤73是切换分支动作流程中的一个分支动作流程,为分支动作流程表41000添加分支动作流程表行41006,分支动作流程表行41006与索引列611和注释列612对应的包括索引单元6261和注释单元6262;
流程步骤73中的机械手状态的目标值600是这个分支动作流程的分支索引值,因此将这个分支索引值添加到索引单元6261中。将流程步骤73中的机械手状态的目标值600所表示的含义添加到注释单元6262中;
针对这个分支动作流程中的流程步骤创建动作流程表26000。动作流程表26000包括条件列601、指令列602和切换目标列603。将动作流程表26000层级地嵌入在分支动作流程表行41006之下;并进一步地设置动作流程表26000与动作流程表40000按列对齐;
为动作流程表26000创建动作流程表行26001,动作流程表行26001包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;
在本发明的一些实施例中,分支动作流程表行41006还包括对应于分支状态列613的分支状态单元6263。流程步骤74是针对指示灯状态变量赋值的动作指令,因此将这个赋值指令的目标值设置为分支状态单元6263的内容。
步骤26.由于机床子流程是一个切换分支动作流程,针对这个切换分支动作流程创建一个动作流程表50000,为动作流程表50000添加一个动作流程表行50001,将一个表示true的常量“TRUE”添加为动作流程表行50001条件单元的内容,而将针对目标索引变量“机床状态”进行判断的多个互斥的判断条件作为一个分支切换指令“switch (机床状态)”添加到动作流程表行50001的指令单元中;
获取机床子流程中的第一个流程步骤,由于流程步骤89是切换分支动作流程中的一个分支动作流程,为流程步骤89创建一个分支动作流程表51000,将分支动作流程表51000层级地嵌入在动作流程表行50001之下;分支动作流程表51000包括索引列611和注释列612;为分支动作流程表51000添加分支动作流程表行51001,分支动作流程表行51001与索引列611和注释列612对应的包括索引单元6311和注释单元6312;
流程步骤89中的机床状态的目标值100是这个分支动作流程的分支索引值,因此将这个分支索引值添加到索引单元6311中。将流程步骤89中的机床状态的目标值100所表示的含义添加到注释单元6312中;
针对这个分支动作流程中的流程步骤创建动作流程表31000。动作流程表31000包括条件列601、指令列602和切换目标列603。将动作流程表31000层级地嵌入在分支动作流程表行51001之下;并进一步地设置动作流程表31000与动作流程表50000按列对齐;
为动作流程表31000创建动作流程表行31001,动作流程表行31001包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;
在机床子流程中,“机床防护门开启”的动作指令通常是在机床状态被改变的同时执行的,以及“机床防护门开启到位”以及“机床防护门关闭到位”信号通常是改变机床状态的前置条件,因此机床防护门的状态是由特定的机床状态确定的,因而机床防护门状态可以看做是一个状态变量。在本发明的一些实施例中,动作流程表51000还包括对应于机床防护门状态变量的分支状态列613,分支动作流程表行51001还包括对应于分支状态列613的分支状态单元6313。但是在设置“机床停止中”状态时,无法通过“机床防护门开启”动作指令以及“机床防护门开启到位”和“机床防护门关闭到位”信号确定机床防护门的状态,因此针对分支动作流程表行51001不设置分支状态单元6313的内容;
然后从步骤27开始继续针对流程步骤89对应的分支动作流程中的其他流程步骤进行处理;
然后从步骤33开始继续针对机床子流程中的下一个分支动作流程进行处理。
步骤27.由于流程步骤91为条件分支动作流程,将流程步骤91的判断条件添加到动作流程表行31001的条件单元中,并将后续的动作指令即流程步骤93的内容添加到动作流程表行31001的指令单元中;
然后从步骤28开始继续针对流程步骤91判断结果为true的分支动作流程中的其他流程步骤进行处理。
步骤28.由于流程步骤94为条件分支动作流程,为流程步骤94创建新的动作流程表31100,并将动作流程表31100层级地嵌入在动作流程表行31000之下。动作流程表31100包括条件列601、指令列602和切换目标列603。为动作流程表31100创建动作流程表行31101,动作流程表行31101包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;将流程步骤94的判断条件添加到动作流程表行31101的条件单元中;
进一步地,根据动作流程表31000与动作流程表31100的层级关系对动作流程表行31101的条件单元的单元格式进行的相应设置,使动作流程表行31101的条件单元的中的内容相比动作流程表行31001的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系;
然后从步骤29开始继续针对流程步骤94判断结果为true的分支动作流程中的其他流程步骤进行处理;
以及从步骤31开始针对流程步骤94判断结果为false的分支动作流程进行处理。
步骤29.由于流程步骤96为条件分支动作流程,为流程步骤96创建新的动作流程表31110,并将动作流程表31110层级地嵌入在动作流程表行31100之下。动作流程表31110包括条件列601、指令列602和切换目标列603。为动作流程表31110创建动作流程表行31111,动作流程表行31111包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;将流程步骤96的判断条件添加到动作流程表行31111的条件单元中,并将后续的动作指令即流程步骤98的内容添加到动作流程表行31111的指令单元中;由于流程步骤99是设置目标索引变量“机床状态”的值的指令,因此将流程步骤99的内容添加到动作流程表行31111的切换目标单元中,而不再添加到动作流程表行31111的指令单元中;
进一步地,根据动作流程表31100与动作流程表31110的层级关系对动作流程表行31111的条件单元的单元格式进行的相应设置,使动作流程表行31111的条件单元的中的内容相比动作流程表行31101的条件单元的内容缩进了一个设定的宽度,用于反映二者的层级关系。
步骤30.由于流程步骤103、104为动作指令,在动作流程表行31111之后创建新的动作流程表行31112,并将一个表示true的常量“ELSE”添加为动作流程表行31112条件单元的内容;并将流程步骤103的内容添加到动作流程表行31112的指令单元中。由于流程步骤104是设置目标索引变量“机床状态”的值的指令,因此将流程步骤104的内容添加到动作流程表行31112的切换目标单元中,而不再添加到动作流程表行31112的指令单元中;
进一步地,由于动作流程表行31111和动作流程表行31112属于条件分支动作流程的两个互斥的分支动作流程,因此设置动作流程表行31111与动作流程表行31112的互斥关系,并相应地在两个动作流程表行条件单元的左侧设置圆形标志并用竖线连接,用于在格式上反映二者的互斥的关系。
步骤31.继续获取后续动作流程,为流程步骤107创建新的动作流程表行31102,动作流程表行31102包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;由于流程步骤107为条件分支动作流程,将流程步骤107的判断条件添加到动作流程表行31102的条件单元中,并将后续的动作指令即流程步骤109的内容添加到动作流程表行31102的指令单元中;由于流程步骤110是设置目标索引变量“机床状态”的值的指令,因此将流程步骤110的内容添加到动作流程表行31102的切换目标单元中,而不再添加到动作流程表行31102的指令单元中;
从步骤32开始针对流程步骤107判断结果为false的分支动作流程进行处理。
步骤32.由于流程步骤114、115为动作指令,在动作流程表行31102之后创建新的动作流程表行31103,并将一个表示true的常量“ELSE”添加为动作流程表行31103条件单元的内容;并将流程步骤114的内容添加到动作流程表行31103的指令单元中。由于流程步骤115是设置目标索引变量“机床状态”的值的指令,因此将流程步骤115的内容添加到动作流程表行31103的切换目标单元中,而不再添加到动作流程表行31103的指令单元中;
进一步地,由于动作流程表行31102和动作流程表行31103属于条件分支动作流程的两个互斥的分支动作流程,因此设置动作流程表行31102与动作流程表行31103的互斥关系,并相应地在两个动作流程表行条件单元的左侧设置圆形标志并用竖线连接,用于在格式上反映二者的互斥的关系。
步骤33.由于流程步骤119是切换分支动作流程中的一个分支动作流程,为分支动作流程表51000添加分支动作流程表行51002,分支动作流程表行51002与索引列611和注释列612对应的包括索引单元6321和注释单元6322;
流程步骤119中的机床状态的目标值200是这个分支动作流程的分支索引值,因此将这个分支索引值添加到索引单元6321中。将流程步骤119中的机床状态的目标值200所表示的含义添加到注释单元6322中;
针对这个分支动作流程中的流程步骤创建动作流程表32000。动作流程表32000包括条件列601、指令列602和切换目标列603。将动作流程表32000层级地嵌入在分支动作流程表行51002之下;并进一步地设置动作流程表32000与动作流程表50000按列对齐;
为动作流程表32000创建动作流程表行32001,动作流程表行32001包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;
在本发明的一些实施例中,动作流程表51000还包括对应于机床防护门状态变量的分支状态列613,分支动作流程表行51002还包括对应于分支状态列613的分支状态单元6323。由于在流程步骤109或流程步骤147执行“机床防护门关闭”的动作指令之后立即将机床状态设置为200,因此在机床状态等于200时机床防护门的状态可以确定为“机床防护门关闭中”,因此针对分支动作流程表行51002设置分支状态单元6323的内容为“机床防护门关闭中”;
然后从步骤34开始继续针对流程步骤119对应的分支动作流程中的其他流程步骤进行处理;
然后从步骤35开始继续针对机床子流程中的下一个分支动作流程进行处理。
步骤34.由于流程步骤121为条件分支动作流程,将流程步骤121的判断条件添加到动作流程表行32001的条件单元中,并将后续的动作指令即流程步骤123的内容添加到动作流程表行32001的指令单元中;由于流程步骤124是设置目标索引变量“机床状态”的值的指令,因此将流程步骤124的内容添加到动作流程表行32001的切换目标单元中,而不再添加到动作流程表行32001的指令单元中。
步骤35.由于流程步骤127是切换分支动作流程中的一个分支动作流程,为分支动作流程表51000添加分支动作流程表行51003,分支动作流程表行51003与索引列611和注释列612对应的包括索引单元6331和注释单元6332;
流程步骤127中的机床状态的目标值300是这个分支动作流程的分支索引值,因此将这个分支索引值添加到索引单元6321中。将流程步骤127中的机床状态的目标值300所表示的含义添加到注释单元6322中;
针对这个分支动作流程中的流程步骤创建动作流程表33000。动作流程表33000包括条件列601、指令列602和切换目标列603。将动作流程表33000层级地嵌入在分支动作流程表行51003之下;并进一步地设置动作流程表33000与动作流程表50000按列对齐;
为动作流程表33000创建动作流程表行33001,动作流程表行33001包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;
在本发明的一些实施例中,动作流程表51000还包括对应于机床防护门状态变量的分支状态列613,分支动作流程表行51003还包括对应于分支状态列613的分支状态单元6333。由于在流程步骤121是在判断“机床防护门关闭到位”为true的条件下将机床状态设置为300,因此在机床状态等于300时机床防护门的状态可以确定为“机床防护门已关闭”,因此针对分支动作流程表行51003设置分支状态单元6333的内容为“机床防护门已关闭”;
然后从步骤36开始继续针对流程步骤127对应的分支动作流程中的其他流程步骤进行处理;
然后从步骤37开始继续针对机床子流程中的下一个分支动作流程进行处理。
步骤36.由于流程步骤129为条件分支动作流程,将流程步骤129的判断条件添加到动作流程表行33001的条件单元中,并将后续的动作指令即流程步骤131的内容添加到动作流程表行33001的指令单元中;由于流程步骤132是设置目标索引变量“机床状态”的值的指令,因此将流程步骤132的内容添加到动作流程表行33001的切换目标单元中,而不再添加到动作流程表行33001的指令单元中。
步骤37.由于流程步骤135是切换分支动作流程中的一个分支动作流程,为分支动作流程表51000添加分支动作流程表行51004,分支动作流程表行51004与索引列611和注释列612对应的包括索引单元6341和注释单元6342;
流程步骤135中的机床状态的目标值400是这个分支动作流程的分支索引值,因此将这个分支索引值添加到索引单元6341中。将流程步骤135中的机床状态的目标值400所表示的含义添加到注释单元6342中;
针对这个分支动作流程中的流程步骤创建动作流程表34000。动作流程表34000包括条件列601、指令列602和切换目标列603。将动作流程表34000层级地嵌入在分支动作流程表行51004之下;并进一步地设置动作流程表34000与动作流程表50000按列对齐;
为动作流程表34000创建动作流程表行34001,动作流程表行34001包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;
在本发明的一些实施例中,动作流程表51000还包括对应于机床防护门状态变量的分支状态列613,分支动作流程表行51004还包括对应于分支状态列613的分支状态单元6343。由于在流程步骤98或流程步骤131执行“机床防护门开启”的动作指令之后立即将机床状态设置为400,因此在机床状态等于400时机床防护门的状态可以确定为“机床防护门开启中”,因此针对分支动作流程表行51004设置分支状态单元6343的内容为“机床防护门开启中”;
然后从步骤38开始继续针对流程步骤135对应的分支动作流程中的其他流程步骤进行处理;
然后从步骤39开始继续针对机床子流程中的下一个分支动作流程进行处理。
步骤38.由于流程步骤137为条件分支动作流程,将流程步骤137的判断条件添加到动作流程表行34001的条件单元中,并将后续的动作指令即流程步骤139的内容添加到动作流程表行34001的指令单元中;由于流程步骤140是设置目标索引变量“机床状态”的值的指令,因此将流程步骤140的内容添加到动作流程表行34001的切换目标单元中,而不再添加到动作流程表行34001的指令单元中。
步骤39.由于流程步骤143是切换分支动作流程中的一个分支动作流程,为分支动作流程表51000添加分支动作流程表行51005,分支动作流程表行51005与索引列611和注释列612对应的包括索引单元6351和注释单元6352;
流程步骤143中的机床状态的目标值500是这个分支动作流程的分支索引值,因此将这个分支索引值添加到索引单元6351中。将流程步骤143中的机床状态的目标值300所表示的含义添加到注释单元6352中;
针对这个分支动作流程中的流程步骤创建动作流程表35000。动作流程表35000包括条件列601、指令列602和切换目标列603。将动作流程表35000层级地嵌入在分支动作流程表行51005之下;并进一步地设置动作流程表35000与动作流程表50000按列对齐;
为动作流程表35000创建动作流程表行35001,动作流程表行35001包括与所述的动作流程表的条件列601、指令列602和切换目标列603对应的条件单元、指令单元和切换目标单元;
在本发明的一些实施例中,动作流程表51000还包括对应于机床防护门状态变量的分支状态列613,分支动作流程表行51005还包括对应于分支状态列613的分支状态单元6353。由于在流程步骤137是在判断“机床防护门开启到位”为true的条件下将机床状态设置为500,因此在机床状态等于500时机床防护门的状态可以确定为“机床防护门已开启”,因此针对分支动作流程表行51005设置分支状态单元6353的内容为“机床防护门已开启”;
然后从步骤40开始继续针对流程步骤143对应的分支动作流程中的其他流程步骤进行处理。
步骤40.由于流程步骤145为条件分支动作流程,将流程步骤145的判断条件添加到动作流程表行35001的条件单元中,并将后续的动作指令即流程步骤147的内容添加到动作流程表行35001的指令单元中;由于流程步骤148是设置目标索引变量“机床状态”的值的指令,因此将流程步骤148的内容添加到动作流程表行35001的切换目标单元中,而不再添加到动作流程表行35001的指令单元中。
本发明的一个实施例根据上述动作流程表10000执行动作流程,具体步骤如下:
步骤1.获取动作流程表10000的第一个动作流程表行10001,判断动作流程表行10001条件单元的执行条件“系统开机”是否为true;如果是则进一步获取动作流程表行10001内嵌的下级动作流程表11000。并执行下一步。
步骤2.获取动作流程表11000的第一个动作流程表行11001,判断动作流程表行11001条件单元的执行条件“机械手停止”是否为true;
如果是则获取并执行动作流程表行11001指令单元中的内容“机械手停止 = false;”和切换目标单元中的内容“机械手状态 = 100;”,然后进一步获取动作流程表行11001内嵌的下级动作流程表11100。并执行步骤3;然后获取与动作流程表行11001的执行条件为非互斥关系的下一条动作流程表行11003,并执行步骤5;
否则获取下一个动作流程表行11002并执行步骤4。
步骤3.获取动作流程表11100的第一个动作流程表行11101,判断动作流程表行11101条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行11101指令单元中的内容。
步骤4.由于动作流程表行11002条件单元的执行条件为true;因此获取并执行动作流程表行11001指令单元中的内容。由于动作流程表行11001指令单元中的动作指令是调用机械手子流程,因此从步骤9开始执行机械手子流程。由于动作流程表行11002没有内嵌的下级动作流程表,因此在机械手子流程执行完成后立即执行步骤5。
步骤5.判断动作流程表行11003条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行11003指令单元中的内容和切换目标单元中的内容,然后进一步获取动作流程表行11003内嵌的下级动作流程表11200。并执行步骤6;然后获取与动作流程表行11003的执行条件为非互斥关系的下一条动作流程表行11005,并执行步骤8;
否则获取下一个动作流程表行11004并执行步骤7。
步骤6.获取动作流程表11200的第一个动作流程表行11201,判断动作流程表行11201条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行11201指令单元中的内容。
步骤7.由于动作流程表行11004条件单元的执行条件为true;因此获取并执行动作流程表行11004指令单元中的内容。由于动作流程表行11004指令单元中的动作指令是调用机床子流程,因此从步骤26开始执行机床子流程。由于动作流程表行11004没有内嵌的下级动作流程表,因此在机床子流程执行完成后立即执行步骤8。
步骤8.由于动作流程表行11005条件单元的执行条件为true;因此获取并执行动作流程表行11005指令单元中的内容。由于这是主动作流程表的最后一个流程表行,且动作流程表行10001的循环执行属性值为循环执行,因此返回步骤1继续执行。
步骤9.获取动作流程表40000的第一个动作流程表行40001,因为动作流程表行40001条件单元的执行条件总为true,所以立即执行动作流程表行40001指令单元中的内容;40001指令单元中是分支切换指令,于是获取嵌入在动作流程表行40001下方的分支动作流程表41000,并判断目标索引变量“机械手状态”的值与分支动作流程表行41001的索引单元6211的内容是否匹配:
如果匹配则首先获取分支状态单元6213中的内容,并根据分支状态单元6213中的内容设置指示灯状态;然后获取嵌入在分支动作流程表行41001下方的动作流程表21000,并执行步骤10;
否则执行步骤14。
步骤10.获取动作流程表21000的第一个动作流程表行21001,判断动作流程表行21001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行21001指令单元中的内容,然后进一步获取动作流程表行21001内嵌的下级动作流程表21100。并执行步骤11。
步骤11.获取动作流程表21100的第一个动作流程表行21101,判断动作流程表行21101条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行21101指令单元中的内容;
否则获取下一个动作流程表行21102并执行步骤12。
步骤12.判断动作流程表行21102条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行21102指令单元中的内容;
否则获取下一个动作流程表行21103并执行步骤13。
步骤13.判断动作流程表行21103条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行21103指令单元中的内容。
步骤14.判断目标索引变量“机械手状态”的值与分支动作流程表行41002的索引单元6221的内容是否匹配:
如果匹配则首先获取分支状态单元6223中的内容,并根据分支状态单元6223中的内容设置指示灯状态;然后获取嵌入在分支动作流程表行41002下方的动作流程表22000,并执行步骤15;
否则执行步骤18。
步骤15.获取动作流程表22000的第一个动作流程表行22001,判断动作流程表行22001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行22001指令单元中的内容,然后进一步获取动作流程表行22001内嵌的下级动作流程表22100。并执行步骤16。
步骤16.获取动作流程表22100的第一个动作流程表行22101,判断动作流程表行22101条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行22101指令单元中的内容;
否则获取下一个动作流程表行22102并执行步骤17。
步骤17.判断动作流程表行22102条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行22102指令单元中的内容。
步骤18.判断目标索引变量“机械手状态”的值与分支动作流程表行41003的索引单元6231的内容是否匹配:如果匹配则获取分支状态单元6233中的内容,并根据分支状态单元6233中的内容设置指示灯状态;否则执行步骤19。
步骤19.判断目标索引变量“机械手状态”的值与分支动作流程表行41004的索引单元6241的内容是否匹配:
如果匹配则首先获取分支状态单元6243中的内容,并根据分支状态单元6243中的内容设置指示灯状态;然后获取嵌入在分支动作流程表行41004下方的动作流程表24000,并执行步骤20;
否则执行步骤21。
步骤20.判断动作流程表行24001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行24001指令单元中的内容。
步骤21.判断目标索引变量“机械手状态”的值与分支动作流程表行41005的索引单元6251的内容是否匹配:
如果匹配则首先获取分支状态单元6253中的内容,并根据分支状态单元6253中的内容设置指示灯状态;然后获取嵌入在分支动作流程表行41005下方的动作流程表25000,并执行步骤22;
否则执行步骤25。
步骤22.获取动作流程表25000的第一个动作流程表行25001,判断动作流程表行25001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行25001指令单元中的内容,然后进一步获取动作流程表行25001内嵌的下级动作流程表25100。并执行步骤16。
步骤23.获取动作流程表25100的第一个动作流程表行25101,判断动作流程表行25101条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行25101指令单元中的内容;
否则获取下一个动作流程表行25102并执行步骤17。
步骤24.判断动作流程表行25102条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行25102指令单元中的内容。
步骤25.判断目标索引变量“机械手状态”的值与分支动作流程表行41006的索引单元6261的内容是否匹配:如果匹配则获取分支状态单元6263中的内容,并根据分支状态单元6263中的内容设置指示灯状态。
步骤26.获取动作流程表50000的第一个动作流程表行50001,因为动作流程表行50001条件单元的执行条件总为true,所以立即执行动作流程表行50001指令单元中的内容;50001指令单元中是分支切换指令,于是获取嵌入在动作流程表行50001下方的分支动作流程表51000,并判断目标索引变量“机床状态”的值与分支动作流程表行51001的索引单元6311的内容是否匹配:如果匹配则获取嵌入在分支动作流程表行51001下方的动作流程表31000,并执行步骤27;否则执行步骤33。
步骤27.获取动作流程表31000的第一个动作流程表行31001,判断动作流程表行31001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行31001指令单元中的内容,然后进一步获取动作流程表行31001内嵌的下级动作流程表31100。并执行步骤28。
步骤28.获取动作流程表31100的第一个动作流程表行31101,判断动作流程表行21101条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行31101指令单元中的内容,然后进一步获取动作流程表行31101内嵌的下级动作流程表31110。并执行步骤29;
否则获取下一个动作流程表行31102并执行步骤31。
步骤29.获取动作流程表31110的第一个动作流程表行31111,判断动作流程表行31111条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行31111指令单元中的内容;
否则获取下一个动作流程表行31112并执行步骤13。
步骤30.判断动作流程表行31112条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行31112指令单元中的内容。
步骤31.判断动作流程表行31102条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行31102指令单元中的内容;
否则获取下一个动作流程表行31103并执行步骤32。
步骤32.判断动作流程表行31103条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行31103指令单元中的内容。
步骤33.判断目标索引变量“机床状态”的值与分支动作流程表行51002的索引单元6321的内容是否匹配:如果匹配则获取嵌入在分支动作流程表行51002下方的动作流程表32000,并执行步骤34;否则执行步骤35。
步骤34.获取动作流程表32000的第一个动作流程表行32001,判断动作流程表行32001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行32001指令单元中的内容。
步骤35.判断目标索引变量“机床状态”的值与分支动作流程表行51003的索引单元6331的内容是否匹配:如果匹配则获取嵌入在分支动作流程表行51003下方的动作流程表33000,并执行步骤36;否则执行步骤37。
步骤36.获取动作流程表33000的第一个动作流程表行33001,判断动作流程表行33001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行33001指令单元中的内容。
步骤37.判断目标索引变量“机床状态”的值与分支动作流程表行51004的索引单元6341的内容是否匹配:如果匹配则获取嵌入在分支动作流程表行51004下方的动作流程表34000,并执行步骤38;否则执行步骤39。
步骤38.获取动作流程表34000的第一个动作流程表行34001,判断动作流程表行34001条件单元的执行条件是否为true;
如果是则获取并执行动作流程表行34001指令单元中的内容。
步骤39.判断目标索引变量“机床状态”的值与分支动作流程表行51005的索引单元6351的内容是否匹配:如果匹配则获取嵌入在分支动作流程表行51005下方的动作流程表35000,并执行步骤40。
步骤40.获取动作流程表35000的第一个动作流程表行35001,判断动作流程表行35001条件单元的执行条件是否为true;如果是则获取并执行动作流程表行35001指令单元中的内容。
本发明中的动作流程表与分支动作流程表可以采用数据库的形式进行存储和检索,这些数据库包括但不限于关系型数据库、XML数据库和面向对象的数据库;以及可以通过类如HTML网页和ExcelTM的电子表格按照本发明方案进行呈现和/或设置。进一步地,可以通过在包含存储器、处理器的计算机系统上执行按照本发明方案实现的计算机程序对存储在所述的数据库中的动作流程表与分支动作流程表进行访问以呈现、设置和/或执行动作流程的流程步骤。在另一些实施例中,这个计算机系统还包括I/O端口,用于连接外部的传感器和致动器,以操纵类如机床和机械手的实体设备。上述数据库、电子表格、计算机系统、传感器和致动器的构成是已知的,因此不用进行进一步的描述。
本发明中所述的分支动作流程表行与动作流程表上下层级地嵌入的关系的呈现形式并不局限于附图10~11的形式。在本发明的另一个实施例中,参考附图12,分支动作流程表51000可以设置在动作流程表50000的左侧,分支动作流程表51000的每一个分支动作流程表行与右侧关联的动作流程表按行对齐。虽然分支动作流程表行位于动作流程表的左侧而不是上方,但是二者的关系仍然是上下级关系。也就是说:附图11与附图12所描述的动作流程表与分支动作流程表在逻辑上是一致的。因此,附图11与附图12这两种不同的视图形式可以根据需要相互切换,比如当屏幕的可视显示较窄或屏幕竖直摆放时采用附图11的形式,反之采用附图12的形式。这样可以更加高效地利用屏幕的显示空间,使复杂动作流程更便于浏览和编辑,以及使不同类型的流程步骤的分离度更高,便于发现动作流程之间的细节差异,及时发现程序错误。
参考附图12,对于连续的多个互斥的分支动作流程,可以在首个分支动作流程对应的动作流程表行的条件单元内容的左侧设置实心的圆形符号,而在互斥的其他分支动作流程对应的动作流程表行的条件单元内容的左侧设置空心的圆形符号,用于在格式上反映这些分支动作流程的互斥的关系。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此。任何熟悉本技术领域的技术人员在本发明揭露的技术范围内可轻易想到的变化或替换,都应该涵盖在本发明权利要求的保护范围之内。
Claims (22)
1.一种表格化处理动作流程的方法,所述动作流程包括多个流程步骤,所述流程步骤可以是动作指令和/或条件分支动作流程,所述条件分支动作流程包括执行条件,第一分支动作流程和/或第二分支动作流程,如果执行条件为true则执行所述的第一分支动作流程,否则执行所述的第二分支动作流程,所述方法包括:
步骤1:创建动作流程表;所述动作流程表包括条件列和指令列;
步骤2:为所述的动作流程表添加一条动作流程表行,所述的动作流程表行包括与所述的动作流程表的条件列和指令列对应的条件单元和指令单元;
步骤3:顺序地获取所述动作流程的流程步骤,并判断所述流程步骤的类型,
A.如果所述的流程步骤是一个条件分支动作流程,则将所述的条件分支动作流程的执行条件添加到所述动作流程表行的条件单元中;然后顺序获取所述的条件分支动作流程的第一分支动作流程中的流程步骤并判断:
a)如果后续流程步骤是动作指令,则顺序将后续的动作指令添加到所述动作流程表行的指令单元中;
b)如果后续流程步骤是条件分支动作流程,则从步骤1开始处理所述条件分支动作流程,将步骤1中针对所述条件分支动作流程所创建的动作流程表作为第二动作流程表,并将所创建的第二动作流程表层级地嵌入在所述动作流程表行之下;在完成所述条件分支动作流程的处理后从步骤2开始继续处理第一分支动作流程中的后续流程步骤;
获取所述的条件分支动作流程的第二分支动作流程中的流程步骤并针对所述的第二分支动作流程执行步骤2,并设置所述动作流程表行和针对所述的第二分支动作流程在步骤2中所添加的动作流程表行为互斥关系;然后返回步骤2继续处理后续流程步骤;
B.如果所述的流程步骤是一个动作指令,则将所述动作流程表行的条件单元设置为表示一个永远为true的条件,并将所述的一个永远为true的条件作为后续动作指令的执行条件;并顺序将后续动作指令添加到所述动作流程表行的指令单元中;直到后续流程步骤是条件分支动作流程时,返回步骤2继续处理后续流程步骤。
2.根据权利要求1所述的一种表格化处理动作流程的方法,所述动作流程还包括循环动作流程,所述循环动作流程在满足执行条件时按照设定的模式循环地执行,所述方法的特征在于:所述的动作流程表行还包括循环执行属性;所述方法还包括判断当所述动作流程表行对应的动作流程为循环动作流程时,根据所述动作流程的循环模式设置所述动作流程表行循环执行属性值的步骤。
3.根据权利要求1所述的一种表格化处理动作流程的方法,所述动作流程还包括切换分支动作流程,所述的切换分支动作流程包含分支切换指令和分支动作流程,所述的分支切换指令中包括目标索引变量,所述的分支动作流程包含至少一个分支索引值,所述的分支切换指令是用于对所述的目标索引变量的值进行判断并切换执行分支索引值与所述目标索引变量的值相匹配的分支动作流程的动作指令;所述方法的特征在于所述步骤3中还包括:判断如果所述流程步骤是切换分支动作流程,则将所述切换分支动作流程的分支切换指令添加到所述动作流程表行的指令单元中,并针对所述切换分支动作流程创建分支动作流程表,将所述分支动作流程表层级地嵌入在所述动作流程表行之下;所述分支动作流程表包含分支索引列,针对切换分支动作流程所包含的每一个分支动作流程为所述分支动作流程表添加分支动作流程表行,所述的分支动作流程表行包含与所述的分支动作流程表的索引列对应的索引单元;所述方法还包括将所述切换分支动作流程的分支索引值添加到所述的分支动作流程表行的分支索引值单元中;然后依次针对切换分支动作流程所包含的每一个分支动作流程从所述步骤1开始执行,并将步骤1中所创建的动作流程表层级地嵌入在所述分支动作流程对应的分支动作流程表行之下。
4.根据权利要求3所述的一种表格化处理动作流程的方法,所述的动作流程的动作指令中还包括设置目标索引变量值的指令,所述方法的特征在于:所述动作流程表还包括切换目标列,所述动作流程表行对应地还包括切换目标单元,所述步骤3中,在将动作指令添加到指令单元中之前还包括判断如果所述动作指令是设置目标索引变量值的指令,则根据所述的设置目标索引变量值的指令设置所述切换目标单元的内容,并且所述的设置目标索引变量值的指令不再添加到所述动作流程表行的指令单元中的步骤。
5.根据权利要求3所述的一种表格化处理动作流程的方法,所述的切换分支动作流程还包括状态变量,所述状态变量的值是根据所述切换分支动作流程的分支动作流程确定的,所述方法的特征在于:所述的分支动作流程表还包括分支状态列,所述分支动作流程表行对应地包括分支状态单元,所述方法还包括获取所述切换分支动作流程中的状态变量并根据所述切换分支动作流程的分支动作流程所确定的状态变量的值设置所述分支动作流程对应的分支动作流程表行的分支状态单元的内容的步骤。
6.一种根据权利要求1至5中任一项所述的动作流程表执行动作流程的方法,所述方法包括:
步骤11.顺序地获取所述动作流程表的动作流程表行;
步骤12.判断所述动作流程表行的条件单元的执行条件是否为true;如果是则执行以下步骤;否则继续获取下一动作流程表行;并返回步骤12开始执行;
步骤13.获取并执行所述动作流程表行指令单元中的动作指令;
步骤14.判断所述动作流程表行下是否是有嵌入的第二动作流程表,如果有则针对所述的第二动作流程表从步骤11开始执行直到所述的第二动作流程表被处理完成;
步骤15.获取与所述动作流程表行为非互斥关系的下一条动作流程表行;然后返回步骤12重复执行。
7.根据权利要求6所述的一种根据所述的动作流程表执行动作流程的方法,其特征在于:所述方法的步骤12中还包括判断所述动作流程表行是否设置有循环执行属性,如果有则在所述动作流程表行条件单元中的执行条件为true时根据所述循环执行属性值所设置的循环模式通过步骤12重复执行所述动作流程表行的步骤。
8.根据权利要求6所述的一种根据所述的动作流程表执行动作流程的方法,其特征在于:所述方法的步骤13中还包括当判断所述动作指令是分支切换指令时,获取嵌入在包含所述分支切换指令的动作流程表行下方的分支动作流程表,并查找所述分支动作流程表中索引单元内容与所述分支切换指令的目标索引变量的值相匹配的分支动作流程表行,并获取嵌入在所述分支动作流程表行下方的动作流程表,并从所述步骤11开始处理所述的动作流程表的步骤。
9.根据权利要求6所述的一种根据所述的动作流程表执行动作流程的方法,其特征在于:所述方法的步骤13中还包括获取所述动作流程表行切换目标单元的内容,并执行所述切换目标单元中的设置目标索引变量的值的指令的步骤。
10.根据权利要求8所述的一种根据所述的动作流程表执行动作流程的方法,其特征在于:所述方法还包括执行分支切换指令时,针对所述索引单元内容与所述分支切换指令的目标索引变量的值相匹配的分支动作流程表行,判断所述的分支动作流程表行的分支状态单元是否被设置,如果是则获取分支动作流程表行的分支状态单元的内容,并根据所述的分支状态单元的内容设置所述分支动作流程状态变量值的步骤。
11.一种表格化处理动作流程的装置,所述动作流程的流程步骤包括动作指令和条件分支动作流程,所述条件分支动作流程包括执行条件,第一分支动作流程和/或第二分支动作流程,如果执行条件为true则执行所述的第一分支动作流程,否则执行所述的第二分支动作流程,所述装置包括:
动作流程表创建部:用于创建动作流程表,所述动作流程表包括条件列和指令列;所创建的动作流程表用于供动作流程表行创建部继续处理;
动作流程表行创建部:用于为所述的动作流程表添加动作流程表行并调用流程步骤处理部处理,所述的动作流程表行包括与所述的动作流程表的条件列和指令列对应的条件单元和指令单元;所创建的动作流程表行用于供流程步骤处理部继续处理;
流程步骤处理部:用于顺序地获取所述动作流程的流程步骤,并进行判断
A.如果所述的流程步骤是一个条件分支动作流程,则将所述的条件分支动作流程的执行条件添加到所述动作流程表行的条件单元中;然后顺序获取所述的条件分支动作流程的第一分支动作流程中的流程步骤并判断:
a)如果后续流程步骤是动作指令,则顺序将后续的动作指令添加到所述动作流程表行的指令单元中;
b)如果后续流程步骤是条件分支动作流程,则通过所述动作流程表创建部处理所述条件分支动作流程,将所述动作流程表创建部针对所述条件分支动作流程所创建的动作流程表作为第二动作流程表,并将所创建的第二动作流程表层级地嵌入在所述动作流程表行之下;在完成所述条件分支动作流程的处理后通过所述动作流程表行创建部继续处理第一分支动作流程中的后续流程步骤;
获取所述的条件分支动作流程的第二分支动作流程中的流程步骤并针对所述的第二分支动作流程通过所述动作流程表行创建部进行处理,并设置所述动作流程表行和针对所述的第二分支动作流程通过所述动作流程表行创建部所添加的动作流程表行为互斥关系;然后通过所述动作流程表行创建部继续处理后续流程步骤;
B.如果所述的流程步骤是一个动作指令,则将所述动作流程表行的条件单元设置为表示一个永远为true的条件,并将所述的一个永远为true的条件作为后续动作指令的执行条件;并将后续动作指令添加到所述动作流程表行的指令单元中;直到后续流程步骤是条件分支动作流程时,通过所述动作流程表行创建部继续处理后续流程步骤。
12.根据权利要求11所述的一种表格化处理动作流程的装置,所述动作流程还包括循环动作流程,所述循环动作流程在满足执行条件时按照设定的模式循环地执行,所述装置的特征在于:所述的动作流程表行还包括循环执行属性;所述装置还包括循环执行属性设置部,用于判断当所述动作流程表行对应的动作流程为循环动作流程时,根据所述动作流程的循环模式设置所述动作流程表行循环执行属性值。
13.根据权利要求11所述的一种表格化处理动作流程的装置,所述动作流程还包括切换分支动作流程,所述的切换分支动作流程包含分支切换指令和分支动作流程,所述的分支切换指令中包括目标索引变量,所述的分支动作流程包含至少一个分支索引值,所述的分支切换指令是用于对所述的目标索引变量的值进行判断并切换执行分支索引值与所述目标索引变量的值相匹配的分支动作流程的动作指令;所述装置的特征在于所述的装置还包括:
分支动作流程表创建部:用于针对所述的切换分支动作流程创建分支动作流程表,所述分支动作流程表包含分支索引列;所创建的分支动作流程表用于供分支动作流程表行创建部继续处理;
分支动作流程表行创建部:用于针对所述的切换分支动作流程所包含的每一个分支动作流程为所述分支动作流程表添加分支动作流程表行,所述的分支动作流程表行包含与所述的分支动作流程表的索引列对应的索引单元;所述分支动作流程表行创建部还用于将所述切换分支动作流程的分支索引值添加到所述的分支动作流程表行的分支索引值单元中;然后通过所述的动作流程表创建部依次处理切换分支动作流程所包含的每一个分支动作流程,并将动作流程表创建部中所创建的动作流程表层级地嵌入在所述分支动作流程对应的分支动作流程表行之下;
所述的流程步骤处理部还用于判断如果所述流程步骤是切换分支动作流程,则将所述切换分支动作流程的分支切换指令添加到所述动作流程表行的指令单元中,以及通过分支动作流程表创建部处理所述所述切换分支动作流程,并将所述分支动作流程表创建部所创建的分支动作流程表层级地嵌入在包含所述分支切换指令的动作流程表行之下。
14.根据权利要求13所述的一种表格化处理动作流程的装置,所述的动作流程的动作指令中还包括设置目标索引变量值的指令;所述装置的特征在于:所述动作流程表还包括切换目标列,所述动作流程表行对应地还包括切换目标单元,所述的动作流程指令处理部在将动作指令添加到指令单元中之前还判断如果所述动作指令是设置目标索引变量值的指令,则根据所述的设置目标索引变量值的指令设置所述切换目标单元的内容,并且所述的设置目标索引变量值的指令不再添加到所述动作流程表行的指令单元中。
15.根据权利要求13所述的一种表格化处理动作流程的装置,所述的切换分支动作流程还包括状态变量,所述状态变量的值是根据所述切换分支动作流程的分支动作流程确定的,所述装置的特征在于:所述的分支动作流程表还包括分支状态列,所述分支动作流程表行对应地包括分支状态单元,所述的分支动作流程表行创建部还用于获取所述切换分支动作流程的状态变量并根据所述切换分支动作流程的分支动作流程所确定的状态变量的值设置所述的分支动作流程表行的分支状态单元的内容。
16.一种根据如权利要求1至5中任一项所述的动作流程表执行动作流程的装置,其特征在于所述装置包括:
动作流程表行获取部,用于顺序地获取所述动作流程表的动作流程表行,并通过动作流程表行判断部继续处理所获取的动作流程表行;
动作流程表行判断部,用于判断所获取的动作流程表行的条件单元的执行条件是否为true;如果是则通过动作指令执行部继续处理;否则通过所述动作流程表行获取部继续获取下一动作流程表行,然后由动作流程表行判断部进行处理;
动作指令执行部,用于获取并执行所述动作流程表行指令单元中的动作指令,然后通过第二动作流程表处理部继续处理;
第二动作流程表处理部,用于判断所述动作流程表行下是否是有嵌入的第二动作流程表,如果有则针对所述第二动作流程表通过动作流程表行获取部继续处理,直到所述的第二动作流程表被处理完成,然后通过非互斥动作流程表行获取部继续处理;
非互斥动作流程表行获取部,用于获取与所述动作流程表行为非互斥关系的下一条动作流程表行,然后通过动作流程表行判断部继续处理。
17.根据权利要求16所述的根据动作流程表执行动作流程的装置,其特征在于:所述的动作流程表行判断部还用于判断所述动作流程表行是否包含循环执行属性,如果有则在所述动作流程表行条件单元中的执行条件为true时根据所述循环执行属性值所设置的循环模式通过动作流程表行判断部重复执行所述动作流程表行。
18.根据权利要求16所述的根据动作流程表执行动作流程的装置,其特征在于:所述的动作指令执行部还用于判断当所述动作指令是分支切换指令时,获取嵌入在包含所述分支切换指令的动作流程表行下方的分支动作流程表,并查找所述分支动作流程表中索引单元内容与所述分支切换指令的目标索引变量的值相匹配的分支动作流程表行,然后通过所述的分支动作流程表行处理部对所述的分支动作流程表行进行处理;所述的分支动作流程表行处理部用于获取嵌入在所述分支动作流程表行下方的动作流程表,并通过所述动作流程表行获取部处理所述的动作流程表。
19.根据权利要求16所述的根据动作流程表执行动作流程的装置,其特征在于:所述的动作指令执行部还用于获取所述动作流程表行切换目标单元的内容,并根据所述切换目标单元的内容对应地设置目标索引变量的值。
20.根据权利要求18所述的根据动作流程表执行动作流程的装置,其特征在于:当所述的动作指令执行部执行分支切换指令时,针对所述索引单元内容与所述分支切换指令的目标索引变量的值相匹配的分支动作流程表行,还用于判断所述分支动作流程表行的分支状态单元是否被设置,如果是则获取分支动作流程表行的分支状态单元的内容,并根据所述的分支状态单元的内容设置所述分支动作流程状态变量值。
21.一种表格化处理动作流程的装置,其特征在于所述装置包括存储器和处理器:
所述存储器用于存储计算机程序;
所述处理器用于当执行所述计算机程序时,实现如权利要求1至5任一项所述的表格化处理动作流程的方法。
22.一种根据如权利要求1至5中任一项所述的动作流程表执行动作流程的装置,其特征在于所述装置包括存储器和处理器:
所述存储器用于存储计算机程序;
所述处理器用于当执行所述计算机程序时,实现如权利要求6至10任一项所述的根据所述的动作流程表执行动作流程的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910949220.1A CN110632878B (zh) | 2019-10-08 | 2019-10-08 | 一种异构嵌入式表格化处理及执行动作流程的方法和装置 |
DE112020004835.7T DE112020004835T5 (de) | 2019-10-08 | 2020-09-30 | Heterogenes eingebettetes Verfahren und Vorrichtung zur tabellarischen Verarbeitung und Ausführung eines Operationsflusses |
US17/764,534 US11960890B2 (en) | 2019-10-08 | 2020-09-30 | Heterogeneous embedded method and device for tabular processing and execution of operation flow |
PCT/CN2020/119383 WO2021068840A1 (zh) | 2019-10-08 | 2020-09-30 | 一种异构嵌入式表格化处理及执行动作流程的方法和装置 |
JP2022520532A JP7338922B2 (ja) | 2019-10-08 | 2020-09-30 | 異種埋め込み型の表形式化動作プロセスの処理および実行方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910949220.1A CN110632878B (zh) | 2019-10-08 | 2019-10-08 | 一种异构嵌入式表格化处理及执行动作流程的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110632878A true CN110632878A (zh) | 2019-12-31 |
CN110632878B CN110632878B (zh) | 2022-06-28 |
Family
ID=68975681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910949220.1A Active CN110632878B (zh) | 2019-10-08 | 2019-10-08 | 一种异构嵌入式表格化处理及执行动作流程的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11960890B2 (zh) |
JP (1) | JP7338922B2 (zh) |
CN (1) | CN110632878B (zh) |
DE (1) | DE112020004835T5 (zh) |
WO (1) | WO2021068840A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021068840A1 (zh) * | 2019-10-08 | 2021-04-15 | 上海宝阶智能科技有限公司 | 一种异构嵌入式表格化处理及执行动作流程的方法和装置 |
Citations (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN87105339A (zh) * | 1986-06-03 | 1988-03-02 | 费希尔·佩凯尔有限公司 | 具有调试能力的可编程序控制器 |
US5386464A (en) * | 1991-12-19 | 1995-01-31 | Telefonaktiebolaget L M Ericsson | Feature control system utilizing design oriented state table language |
US6708144B1 (en) * | 1997-01-27 | 2004-03-16 | Unisys Corporation | Spreadsheet driven I/O buffer synthesis process |
CN1834962A (zh) * | 2005-03-15 | 2006-09-20 | 微软公司 | 提供电子表格驱动的关键性能指标的方法和计算机可读介质 |
US20060217818A1 (en) * | 2002-10-18 | 2006-09-28 | Yuzuru Fujiwara | Learning/thinking machine and learning/thinking method based on structured knowledge, computer system, and information generation method |
CN1870028A (zh) * | 2005-05-26 | 2006-11-29 | 株式会社理光 | 工作流程系统、工作流程处理方法和工作流程处理程序 |
CN101180604A (zh) * | 2005-02-17 | 2008-05-14 | 蒙哥耐特 | 通过计算机网络传输协议传送文档的数字化表示的方法和系统 |
CN101213560A (zh) * | 2005-06-28 | 2008-07-02 | 松下电器产业株式会社 | 验证方法、信息处理装置、记录介质、验证系统、证明程序以及验证程序 |
US20080256014A1 (en) * | 2007-04-10 | 2008-10-16 | Joel Gould | Editing and Compiling Business Rules |
US20090013259A1 (en) * | 2007-07-06 | 2009-01-08 | International Business Machines Corporation | Server consolidation using tabular data driven processes filled at least in part using automatically generated inferred data |
US20090113388A1 (en) * | 2007-10-26 | 2009-04-30 | Microsoft Corporation | Model Based Spreadsheet Scripting Language |
CN101482819A (zh) * | 2008-12-30 | 2009-07-15 | 西安交通大学 | 一种表格驱动的普适计算环境编程方法 |
CN101551654A (zh) * | 2009-04-29 | 2009-10-07 | 深圳市众为兴数控技术有限公司 | 一种基于表格编程的开放式机器人控制方法及其系统 |
CN101846983A (zh) * | 2009-03-24 | 2010-09-29 | 株式会社自动网络技术研究所 | 进行负载的动作控制的控制装置及控制方法 |
US20100268676A1 (en) * | 2006-07-24 | 2010-10-21 | Discovery Machine, Inc. | Reflective processing of computer hierarchies |
CN102224491A (zh) * | 2008-09-22 | 2011-10-19 | Mts系统公司 | 具有基于工作流程的测试过程的测试机 |
CN102222110A (zh) * | 2011-06-28 | 2011-10-19 | 用友软件股份有限公司 | 数据处理装置和数据处理方法 |
CN102270127A (zh) * | 2011-05-30 | 2011-12-07 | 桂林欧博仪器技术有限公司 | 分析仪器流程编程和控制的方法 |
CN102541730A (zh) * | 2011-12-08 | 2012-07-04 | 北京空间飞行器总体设计部 | 一种航天器测试脚本语义识别与自动生成方法 |
CN102999816A (zh) * | 2012-12-05 | 2013-03-27 | 福建邮科通信技术有限公司 | 可个性化定制业务流程的工作流引擎 |
CN103049494A (zh) * | 2012-12-07 | 2013-04-17 | 华为技术有限公司 | 一种xml文档的表格存储方法及装置 |
US20130268258A1 (en) * | 2012-04-04 | 2013-10-10 | Pilla Gurumurty Patrudu | Mechanism and system for representing and processing activity models |
CN103823680A (zh) * | 2014-02-24 | 2014-05-28 | 广州精攻网络科技有限公司 | 一种游戏业务逻辑引擎的开发方法及装置 |
TW201428632A (zh) * | 2012-12-29 | 2014-07-16 | Intel Corp | 表格驅動之多重被動跳脫平台被動熱管理技術 |
CN104267654A (zh) * | 2014-08-01 | 2015-01-07 | 中南大学 | 梯形图程序转换成指令表程序及其编译的方法与系统 |
US20150074673A1 (en) * | 2013-09-12 | 2015-03-12 | Kabushiki Kaisha Toshiba | Control apparatus, control system and control method |
CN104662513A (zh) * | 2012-07-10 | 2015-05-27 | 洛林·克雷默 | 自动改进程序编译中的并行处理的方法及其系统 |
CN104823158A (zh) * | 2012-09-20 | 2015-08-05 | 伊夫维泽德公司 | 用于简化的知识工程的方法与系统 |
CN104850729A (zh) * | 2014-02-19 | 2015-08-19 | 德尔格医疗有限责任公司 | 在脓毒症监控中电子监控传感器信号的监控器单元及方法 |
CN105814568A (zh) * | 2013-12-12 | 2016-07-27 | 国立大学法人东京工业大学 | 逻辑电路生成装置以及方法 |
CN106202025A (zh) * | 2016-07-21 | 2016-12-07 | 深圳艾派网络科技股份有限公司 | 一种oa工作流程表单定制方法 |
CN107291606A (zh) * | 2016-03-31 | 2017-10-24 | 四川大学 | 演绎最弱前置条件的模型和算法 |
CN107679238A (zh) * | 2017-10-27 | 2018-02-09 | 杭州迪普科技股份有限公司 | 一种新建对象方法及装置 |
CN108073395A (zh) * | 2016-11-09 | 2018-05-25 | 于丙超 | 一种生成式编程方法 |
US20180253455A1 (en) * | 2015-11-25 | 2018-09-06 | Hitachi, Ltd. | Data processing system and data processing method |
US20190012308A1 (en) * | 2017-07-10 | 2019-01-10 | Adaptam Inc. | Methods and systems for providing selective multi-way replication and atomization of cell blocks and other elements in spreadsheets and presentations |
CN109447406A (zh) * | 2018-09-20 | 2019-03-08 | 武汉达梦数据库有限公司 | 一种创建流程的方法以及创建流程的装置 |
CN109472541A (zh) * | 2018-09-03 | 2019-03-15 | 中新网络信息安全股份有限公司 | 一种适用于企业级oa的工作流引擎设计方法 |
CN109542556A (zh) * | 2018-10-30 | 2019-03-29 | 珠海伟诚科技股份有限公司 | 一种基于Activiti的流程与表单交互方法及系统 |
US20190213245A1 (en) * | 2017-12-21 | 2019-07-11 | Battelle Energy Alliance, Llc | Method to convert a written procedure to structured data, and related systems and methods |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10207698A (ja) * | 1997-01-23 | 1998-08-07 | Toshiba Corp | ソフトウェア自動生成装置 |
DE10054196A1 (de) * | 2000-11-02 | 2002-05-29 | Siemens Ag | Programmierwerkzeug |
US7342942B1 (en) * | 2001-02-07 | 2008-03-11 | Cortina Systems, Inc. | Multi-service segmentation and reassembly device that maintains only one reassembly context per active output port |
US7266088B1 (en) * | 2004-03-24 | 2007-09-04 | The United States Of America As Represented By The National Security Agency | Method of monitoring and formatting computer network data |
JP4247264B2 (ja) * | 2006-10-06 | 2009-04-02 | ファナック株式会社 | 工作機械の制御装置 |
US20100031137A1 (en) * | 2008-02-13 | 2010-02-04 | Rule Dynamics Inc. | Method and system for authoring, publishing and rendering a dynamic interactive web page |
ITUA20162301A1 (it) * | 2016-04-05 | 2017-10-05 | Consorzio Naz Interuniversitario Per Le Telecomunicazioni | Metodo per trattare pacchetti dati attraverso una tabella di transizione di stato condizionale ed apparato che lo utilizza |
CN105867294B (zh) * | 2016-06-01 | 2018-09-11 | 华自科技股份有限公司 | Plc中顺序控制方法与系统 |
JP6794829B2 (ja) * | 2016-12-28 | 2020-12-02 | 富士通株式会社 | 集約支援装置、集約支援方法及び集約支援プログラム |
CN108256716B (zh) * | 2016-12-29 | 2020-10-16 | 同方威视技术股份有限公司 | 基于表来配置/执行流程和/或原子流程的方法和设备 |
CN107015491B (zh) * | 2017-04-13 | 2019-05-14 | 北京机械设备研究所 | 一种顺序控制方法 |
CN107368055A (zh) * | 2017-08-23 | 2017-11-21 | 苏州宏软信息技术有限公司 | 一种用于多零件装置的装配线配方控制系统及其方法 |
JP7265929B2 (ja) * | 2019-05-20 | 2023-04-27 | 株式会社日立製作所 | 保守工程フロー生成装置及び保守工程フローの生成方法 |
CN110632878B (zh) * | 2019-10-08 | 2022-06-28 | 上海宝阶智能科技有限公司 | 一种异构嵌入式表格化处理及执行动作流程的方法和装置 |
-
2019
- 2019-10-08 CN CN201910949220.1A patent/CN110632878B/zh active Active
-
2020
- 2020-09-30 WO PCT/CN2020/119383 patent/WO2021068840A1/zh active Application Filing
- 2020-09-30 DE DE112020004835.7T patent/DE112020004835T5/de not_active Withdrawn
- 2020-09-30 US US17/764,534 patent/US11960890B2/en active Active
- 2020-09-30 JP JP2022520532A patent/JP7338922B2/ja active Active
Patent Citations (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN87105339A (zh) * | 1986-06-03 | 1988-03-02 | 费希尔·佩凯尔有限公司 | 具有调试能力的可编程序控制器 |
US5386464A (en) * | 1991-12-19 | 1995-01-31 | Telefonaktiebolaget L M Ericsson | Feature control system utilizing design oriented state table language |
US6708144B1 (en) * | 1997-01-27 | 2004-03-16 | Unisys Corporation | Spreadsheet driven I/O buffer synthesis process |
US20060217818A1 (en) * | 2002-10-18 | 2006-09-28 | Yuzuru Fujiwara | Learning/thinking machine and learning/thinking method based on structured knowledge, computer system, and information generation method |
CN101180604A (zh) * | 2005-02-17 | 2008-05-14 | 蒙哥耐特 | 通过计算机网络传输协议传送文档的数字化表示的方法和系统 |
CN1834962A (zh) * | 2005-03-15 | 2006-09-20 | 微软公司 | 提供电子表格驱动的关键性能指标的方法和计算机可读介质 |
CN1870028A (zh) * | 2005-05-26 | 2006-11-29 | 株式会社理光 | 工作流程系统、工作流程处理方法和工作流程处理程序 |
CN101213560A (zh) * | 2005-06-28 | 2008-07-02 | 松下电器产业株式会社 | 验证方法、信息处理装置、记录介质、验证系统、证明程序以及验证程序 |
US20100268676A1 (en) * | 2006-07-24 | 2010-10-21 | Discovery Machine, Inc. | Reflective processing of computer hierarchies |
US20080256014A1 (en) * | 2007-04-10 | 2008-10-16 | Joel Gould | Editing and Compiling Business Rules |
US20090013259A1 (en) * | 2007-07-06 | 2009-01-08 | International Business Machines Corporation | Server consolidation using tabular data driven processes filled at least in part using automatically generated inferred data |
US20090113388A1 (en) * | 2007-10-26 | 2009-04-30 | Microsoft Corporation | Model Based Spreadsheet Scripting Language |
CN102224491A (zh) * | 2008-09-22 | 2011-10-19 | Mts系统公司 | 具有基于工作流程的测试过程的测试机 |
CN101482819A (zh) * | 2008-12-30 | 2009-07-15 | 西安交通大学 | 一种表格驱动的普适计算环境编程方法 |
CN101846983A (zh) * | 2009-03-24 | 2010-09-29 | 株式会社自动网络技术研究所 | 进行负载的动作控制的控制装置及控制方法 |
CN101551654A (zh) * | 2009-04-29 | 2009-10-07 | 深圳市众为兴数控技术有限公司 | 一种基于表格编程的开放式机器人控制方法及其系统 |
CN102270127A (zh) * | 2011-05-30 | 2011-12-07 | 桂林欧博仪器技术有限公司 | 分析仪器流程编程和控制的方法 |
CN102222110A (zh) * | 2011-06-28 | 2011-10-19 | 用友软件股份有限公司 | 数据处理装置和数据处理方法 |
CN102541730A (zh) * | 2011-12-08 | 2012-07-04 | 北京空间飞行器总体设计部 | 一种航天器测试脚本语义识别与自动生成方法 |
US20130268258A1 (en) * | 2012-04-04 | 2013-10-10 | Pilla Gurumurty Patrudu | Mechanism and system for representing and processing activity models |
CN104662513A (zh) * | 2012-07-10 | 2015-05-27 | 洛林·克雷默 | 自动改进程序编译中的并行处理的方法及其系统 |
CN109583591A (zh) * | 2012-09-20 | 2019-04-05 | 伊夫维泽德公司 | 用于简化的知识工程的方法与系统 |
CN104823158A (zh) * | 2012-09-20 | 2015-08-05 | 伊夫维泽德公司 | 用于简化的知识工程的方法与系统 |
CN102999816A (zh) * | 2012-12-05 | 2013-03-27 | 福建邮科通信技术有限公司 | 可个性化定制业务流程的工作流引擎 |
CN103049494A (zh) * | 2012-12-07 | 2013-04-17 | 华为技术有限公司 | 一种xml文档的表格存储方法及装置 |
TW201428632A (zh) * | 2012-12-29 | 2014-07-16 | Intel Corp | 表格驅動之多重被動跳脫平台被動熱管理技術 |
US20150074673A1 (en) * | 2013-09-12 | 2015-03-12 | Kabushiki Kaisha Toshiba | Control apparatus, control system and control method |
CN105814568A (zh) * | 2013-12-12 | 2016-07-27 | 国立大学法人东京工业大学 | 逻辑电路生成装置以及方法 |
CN104850729A (zh) * | 2014-02-19 | 2015-08-19 | 德尔格医疗有限责任公司 | 在脓毒症监控中电子监控传感器信号的监控器单元及方法 |
CN103823680A (zh) * | 2014-02-24 | 2014-05-28 | 广州精攻网络科技有限公司 | 一种游戏业务逻辑引擎的开发方法及装置 |
CN104267654A (zh) * | 2014-08-01 | 2015-01-07 | 中南大学 | 梯形图程序转换成指令表程序及其编译的方法与系统 |
US20180253455A1 (en) * | 2015-11-25 | 2018-09-06 | Hitachi, Ltd. | Data processing system and data processing method |
CN107291606A (zh) * | 2016-03-31 | 2017-10-24 | 四川大学 | 演绎最弱前置条件的模型和算法 |
CN106202025A (zh) * | 2016-07-21 | 2016-12-07 | 深圳艾派网络科技股份有限公司 | 一种oa工作流程表单定制方法 |
CN108073395A (zh) * | 2016-11-09 | 2018-05-25 | 于丙超 | 一种生成式编程方法 |
US20190012308A1 (en) * | 2017-07-10 | 2019-01-10 | Adaptam Inc. | Methods and systems for providing selective multi-way replication and atomization of cell blocks and other elements in spreadsheets and presentations |
CN107679238A (zh) * | 2017-10-27 | 2018-02-09 | 杭州迪普科技股份有限公司 | 一种新建对象方法及装置 |
US20190213245A1 (en) * | 2017-12-21 | 2019-07-11 | Battelle Energy Alliance, Llc | Method to convert a written procedure to structured data, and related systems and methods |
CN109472541A (zh) * | 2018-09-03 | 2019-03-15 | 中新网络信息安全股份有限公司 | 一种适用于企业级oa的工作流引擎设计方法 |
CN109447406A (zh) * | 2018-09-20 | 2019-03-08 | 武汉达梦数据库有限公司 | 一种创建流程的方法以及创建流程的装置 |
CN109542556A (zh) * | 2018-10-30 | 2019-03-29 | 珠海伟诚科技股份有限公司 | 一种基于Activiti的流程与表单交互方法及系统 |
Non-Patent Citations (5)
Title |
---|
周鹏等: "可微分抽象机混合编程系统", 《软件学报》 * |
柴大勇等: "一种基于功能表的可视化器件编程方案的探索与实现", 《测控技术》 * |
章晴等: "基于Internet的工作流平台的设计与实现", 《科技广场》 * |
赵芳等: "表格驱动码业务试验系统设计与实现", 《气象科技》 * |
高艳丽: "大数据驱动的SOC设计平台IC-ONE", 《中国集成电路》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021068840A1 (zh) * | 2019-10-08 | 2021-04-15 | 上海宝阶智能科技有限公司 | 一种异构嵌入式表格化处理及执行动作流程的方法和装置 |
US11960890B2 (en) | 2019-10-08 | 2024-04-16 | Shanghai Baojie Intelligent Technology Co., Ltd. | Heterogeneous embedded method and device for tabular processing and execution of operation flow |
Also Published As
Publication number | Publication date |
---|---|
CN110632878B (zh) | 2022-06-28 |
US11960890B2 (en) | 2024-04-16 |
JP7338922B2 (ja) | 2023-09-05 |
WO2021068840A1 (zh) | 2021-04-15 |
US20220350601A1 (en) | 2022-11-03 |
JP2022542488A (ja) | 2022-10-03 |
DE112020004835T5 (de) | 2022-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7515993B2 (en) | Robot control apparatus | |
US6154684A (en) | Template language for industrial controller programming | |
CN1113279C (zh) | 自动诊断故障情况的方法 | |
CN102581850B (zh) | 基于GSK-Link总线的模块化机器人控制装置及控制方法 | |
EP1624352B1 (en) | Manual restart learning process and manual restart process for an automated system | |
CN107710086B (zh) | 平移模块、处理模块及控制系统 | |
CN110632878B (zh) | 一种异构嵌入式表格化处理及执行动作流程的方法和装置 | |
EP2417498A1 (en) | Method for automatically partitioning a part program into fundamental operations | |
US20080086724A1 (en) | Controller for machine tool | |
KR101566358B1 (ko) | 자동화 공정 이상상태 알림 시스템 및 방법 | |
CN108681503A (zh) | 可编程控制器程序的安全检查方法、装置和设备 | |
US5940293A (en) | Bar chart editor for industrial controller | |
CN106886198A (zh) | 一种多通道式数控系统加工进度指令控制系统及方法 | |
CN102495583B (zh) | 多维激光切割设备的数控系统及其控制方法 | |
CN114029931B (zh) | 机器人编程控制的方法、装置和机器人系统 | |
CN113135498B (zh) | 多个操作台的共享操作方法及系统、存储介质及电子设备 | |
Shi et al. | Design of Multi-station Bar Code Scanning System Based on NJ Controller | |
US20040049622A1 (en) | Programming tool | |
KR102036964B1 (ko) | 물류센터내의 자동 입출고 시스템(as/rs)의 통합 운용 소프트웨어 구현 방법 | |
Sekerinski | Production cell | |
Carayannis et al. | An integrated programming environment for a generic robotic workcell | |
JPS6376002A (ja) | 数値制御装置 | |
CN114454154A (zh) | 图形化机械手臂学习系统及其学习方法 | |
Yin et al. | Design of virtual instrument software system based on nested state machine | |
JPH04336986A (ja) | ロボット制御装置 |
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 |