CN107015491B - 一种顺序控制方法 - Google Patents
一种顺序控制方法 Download PDFInfo
- Publication number
- CN107015491B CN107015491B CN201710240400.3A CN201710240400A CN107015491B CN 107015491 B CN107015491 B CN 107015491B CN 201710240400 A CN201710240400 A CN 201710240400A CN 107015491 B CN107015491 B CN 107015491B
- Authority
- CN
- China
- Prior art keywords
- control
- movement
- stream
- action
- item
- 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.)
- Active
Links
Classifications
-
- 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
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
本发明涉及一种顺序控制方法,包括以下步骤:建立顺序控制的动作库,包括定义与控制设备相匹配的动作和为每个动作定义属性参数;生成顺序控制的动作流,包括将控制流程切分为动作和为每个动作配置属性参数;生成顺序控制的控制流,包括为控制流程配置属性参数;控制引擎加载控制流并执行顺序控制。本发明实现了对顺序控制流程的抽象、分解和重构,可有效提高顺序控制类软件的开发效率,降低开发的错误率,提高可维护性。
Description
技术领域
本发明涉及自动控制技术领域,尤其涉及一种顺序控制方法。
背景技术
顺序控制技术是自动控制技术的一个重要分支,是与反馈控制技术相媲美的极其重要的控制技术。顺序控制是指设备工作过程中按照逻辑、顺序、定时或计数等规则,在输入命令的作用下,按预先设定的顺序或按一定逻辑设定的顺序控制执行机构动作的自动控制。随着电子技术日新月异的发展,DSP(数字信号处理器)、ARM(先进的精简指令集处理器)、CPU(中央处理器)等大规模集成电路在顺序控制领域得到广泛的应用,顺序控制的逻辑和时序依赖于软件实现。目前,常规的解决方法是根据用户的逻辑和时序需求,编制顺序执行的软件;存在开发效率低、错误率高和难以维护的问题。
发明内容
鉴于上述的分析,本发明旨在提供一种顺序控制方法,用以解决现有顺序控制方法开发效率低、错误率高和难以维护的问题。
本发明的目的主要是通过以下技术方案实现的:
一种顺序控制方法,包括以下步骤:
步骤S1、建立顺序控制的动作库;
步骤S2、生成顺序控制的动作流;
步骤S3、生成顺序控制的控制流;
步骤S4、控制引擎加载控制流并执行顺序控制。
所述步骤S1包括以下子步骤:
步骤S101:定义与控制设备相匹配的动作;
步骤S102:为每个动作定义属性参数;
步骤S103:将与控制设备相匹配的动作和每个动作的属性参数存储至数据库,作为动作库。
所述与控制设备相匹配的动作包括但不限于:开关量输出、开关量读入、模拟量输出、模拟量读入和数字通信;
为每个动作定义的属性参数包括:动作类型、动作内容、运行时刻、等待时间、运行正常时的下个动作以及运行异常时的下个动作。
所述动作类型包括:仅执行、仅等待、先执行后等待、先等待后执行、正常则终止的周期行为、异常则终止的周期行为、正常则终止的单次行为和异常则终止的单次行为。
所述步骤S2包括以下子步骤:
步骤S201:根据顺序控制的实际需求,将用户输入的控制流程切分为多个顺序执行的动作,所述动作为动作库内已定义的动作;
步骤S202:为切分的每个动作配置属性参数;
步骤S203:将完成属性参数配置的所有动作的集合作为动作流,存储至文本文件,将动作流的名称作为动作流的唯一标识。
所述步骤S3包括以下子步骤:
步骤S301:根据顺序控制的实际需求,为控制流程配置属性参数;
步骤S302:将完成属性参数配置的控制流程作为控制流,存储至文本文件,将控制流名称作为控制流的唯一标识。
为控制流程配置的属性参数包括:入口条件、动作流名称、出口处理以及终止命令。
所述步骤S4包括以下子步骤:
步骤S401:将存储动作流的文件加载至数据库;
步骤S402:将存储控制流的文件加载至数据库;
步骤S403:启动控制引擎;
步骤S404:控制引擎根据控制流名称加载控制流;
步骤S405:控制引擎根据控制流配置的属性参数运行动作流。
本发明有益效果如下:
本发明提供了一种顺序控制方法,实现了对顺序控制流程的抽象、分解和重构,可有效提高顺序控制类软件的开发效率,降低开发的错误率,提高可维护性。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为本发明顺序控制方法流程图;
图2(a)-图2(g)为控制引擎运行动作流的流程图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。
本发明的一个具体实施例,公开了一种顺序控制方法,该方法流程图如图1所示,具体包括以下步骤:
步骤S1、建立顺序控制的动作库,具体包括以下子步骤:
步骤S101:定义与控制设备相匹配的动作,包括但不限于:开关量输出、开关量读入、模拟量输出、模拟量读入、数字通信等;
步骤S102:为每个动作定义属性参数,包括:动作类型、动作内容、运行时刻、等待时间、运行正常时的下个动作以及运行异常时的下个动作;
步骤S103:将与控制设备相匹配的动作和每个动作的属性参数存储至数据库,作为动作库。
步骤S2、生成顺序控制的动作流,具体包括以下子步骤:
步骤S201:根据顺序控制的实际需求,将用户输入的控制流程切分为多个顺序执行的动作;所述动作为动作库内已定义的动作。
步骤S202:为切分的每个动作配置属性参数;
步骤S203:将完成属性参数配置的所有动作的集合作为动作流,存储至文本文件,将动作流的名称作为动作流的唯一标识。
具体地,为切分的每个动作配置的属性参数如下:
a)动作类型包括:仅执行、仅等待、先执行后等待、先等待后执行、正常则终止的周期行为、异常则终止的周期行为、正常则终止的单次行为和异常则终止的单次行为。
各类型的适用情况如下:
1)“仅执行”适用于在某一时刻执行某种动作;
2)“仅等待”适用于在两个动作之间的延时;
3)“先执行后等待”适用于在某一时刻执行某种行为后需要延时的动作;
4)“先等待后执行”适用于在延时一定时间后再执行某种行为的动作;
5)“正常则终止的周期行为”适用于在一定时间内随着控制引擎周期执行某种行为,直至超时或运行结果正常方可终止的动作;
6)“异常则终止的周期行为”适用于在一定时间内随着控制引擎周期执行某种行为,直至超时或运行结果异常方可终止的动作;
7)“正常则终止的单次行为”适用于在一定时间内的某一时刻执行某种行为其余时间在等待,直至超时或运行结果正常方可终止运行的动作;
8)“异常则终止的单次行为”适用于在一定时间内的某一时刻执行某种行为其余时间在等待,直至超时或运行结果异常方可终止运行的动作。
b)动作内容是指顺序控制过程中与控制设备相关的具体动作;
c)运行时刻是指以控制引擎运行开始为零点的绝对时刻,设置为零时无效;
d)等待时间是指以当前动作开始执行为零点的时间;
e)运行正常时的下个动作是指当前动作执行结果正常时,将要自动运行的下个动作;
f)运行异常时的下个动作是指当前动作执行结果异常时,将要自动运行的下个动作。所述运行异常包含3种情况:结果不正常、过程被终止和属性参数配置错误。
步骤S3、生成顺序控制的控制流,具体包括以下子步骤:
步骤S301:根据顺序控制的实际需求,为控制流程配置属性参数,包括:入口条件、动作流名称、出口处理以及终止命令;
步骤S302:将完成属性参数配置的控制流程作为控制流,存储至文本文件,将控制流名称作为控制流的唯一标识。
步骤S4、控制引擎加载控制流并执行顺序控制;
所述控制引擎每毫秒运行一次,根据当前动作的属性以及当前时刻综合判断后执行当前动作,在终止命令有效时可以终止引擎运行。
具体地,所述步骤S4包括以下子步骤:
步骤S401:将存储动作流的文件加载至数据库;
步骤S402:将存储控制流的文件加载至数据库;
步骤S403:启动控制引擎;
步骤S404:控制引擎根据控制流名称加载控制流;
步骤S405:控制引擎根据控制流配置的属性参数运行动作流,具体地,如图2(a)所示,包括:
a)置控制流运行标志为有效;
b)判断控制流的入口条件是否满足,满足则调用动作流,执行c)条,不满足则跳转至n)条;
c)读取当前时刻T0;
d)判断当前动作是否能与动作库内的已定义动作匹配,匹配则执行e)条,不匹配则跳转至n)条;
e)判断终止命令是否有效,无效则根据当前动作的动作类型运行f)条、g)条、h)条、i)条、j)条、k)条、l)条或m)条,有效则跳转至n)条;
f)“仅执行”类型的运行过程如图2(b)所示:
1)执行当前动作的动作内容;
2)存储运行结果;
3)判断运行结果为正常,则将当前动作更新为运行正常时的下个动作,否则将当前动作更新为运行异常时的下个动作;
4)跳转至d)条。
g)“仅等待”类型的运行过程如图2(a)、图2(c)所示:
1)读取片段起始时刻T20;
2)判断终止命令是否有效,无效则运行本过程的3)条,有效则跳转至本过程的5)条;
3)延时1ms后,读取当前时刻T21;
4)判断(T21-T20)是否大于等待时间,否,则跳转至本过程的2)条;是,则跳转至本过程的5)条;
5)判断终止命令是否有效,有效则跳转至n)条,无效则将当前动作更新为运行正常时的下个动作后,跳转至d)条。
h)“先执行后等待”类型的运行过程如图2(a)、图2(c)所示:
1)读取片段起始时刻T20;
2)执行当前动作的动作内容;
3)判断运行结果是否正常,正常则转至本过程的4)条,否则转至本过程的8)条;
4)判断终止命令是否有效,无效则运行本过程的5)条,有效则跳转至本过程的7)条;
5)延时1ms后,读取当前时刻T21;
6)判断(T21-T20)是否大于等待时间,否,则跳转至本过程的4)条;是,则跳转至本过程的7)条;
7)判断是否终止命令有效或配置信息错误,是,则跳转至n)条;否,则将当前动作更新为运行正常时的下个动作后,跳转至d)条;
8)存储运行结果,将当前动作更新为运行异常时的下个动作后,跳转至d)条。
i)“先等待后执行”类型的运行过程如图2(a)、图2(c)所示:
1)读取片段起始时刻T20;
2)判断终止命令是否有效,无效则运行本过程的3)条,有效则跳转至本过程的5)条;
3)延时1ms后,读取当前时刻T21;
4)判断(T21-T20)是否大于等待时间,否,则跳转至本过程的2)条;是,则跳转至本过程的5)条;
5)判断终止命令是否有效,有效则跳转至n)条,无效则跳转至本过程的6)条;
6)执行当前动作的动作内容;
7)判断运行结果是否正常,正常则将当前动作更新为运行正常时的下个动作后,跳转至d)条;否则将当前动作更新为运行异常时的下个动作后,跳转至d)条。
j)“正常则终止的周期行为”类型的运行过程如图2(a)、图2(d)所示:
1)读取片段起始时刻T30;
2)判断终止命令是否有效,无效则运行本过程的3)条,有效则跳转至本过程的9)条;
3)执行当前动作的动作内容;
4)判断运行结果是否正常,正常则运行本过程的8)条,否则运行本过程的5)条;
5)读取当前时刻T31;
6)判断(T31-T30)是否大于等待时间,否,则延时1ms后跳转至本过程的2)条;是,则跳转至本过程的7)条;
7)存储运行结果,将当前动作更新为运行异常时的下个动作后,跳转至本过程的9)条;
8)存储运行结果,将当前动作更新为运行正常时的下个动作后,跳转至本过程的9)条;
9)判断是否终止命令有效或配置信息错误,是,则跳转至n)条;否,则跳转至d)条。
k)“异常则终止的周期行为”类型的运行过程如图2(a)、图2(e)
所示:
1)读取片段起始时刻T40;
2)判断终止命令是否有效,无效则运行本过程的3)条,有效则跳转至本过程的9)条;
3)执行当前动作的动作内容;
4)判断运行结果是否正常,正常则运行本过程的5)条,否则运行本过程的8)条;
5)读取当前时刻T41;
6)判断(T41-T40)是否大于等待时间,否,则延时1ms后跳转至本过程的2)条;是,则跳转至本过程的7)条;
7)存储运行结果,将当前动作更新为运行正常时的下个动作后,跳转至本过程的9)条;
8)存储运行结果,将当前动作更新为运行异常时的下个动作后,跳转至本过程的9)条;
9)判断是否终止命令有效或配置信息错误,是,则跳转至n)条;否,则跳转至d)条。
l)“正常则终止的单次行为”类型的运行过程如图2(a)、图2(f)所示:
1)读取片段起始时刻T50;
2)判断终止命令是否有效,无效则运行本过程的3)条,有效则跳转至本过程的9)条;
3)读取当前时刻T51;
4)判断(T51-T0)是否大于执行时刻,是,则运行本过程的5)条;否,则跳转至本过程的7)条;
5)执行当前动作的动作内容,并存储运行结果;
6)判断运行结果是否正常,是,则将当前动作更新为运行正常时的下个动作后,跳转至本过程的9)条;否,则将当前动作更新为运行异常时的下个动作后,跳转至本过程的9)条;
7)判断等待时间是否为0,是,则延时1ms后跳转至本过程的2)条;否,则运行本过程的8)条;
8)判断(T51-T50)是否大于等待时间,否,则延时1ms后跳转至本过程的2)条;是,则存储运行结果,将当前动作更新为运行异常时的下个动作后,跳转至本过程的9)条;
9)判断是否终止命令有效或配置信息错误,是,则跳转至n)条;否,则跳转至d)条。
m)“异常则终止的单次行为”类型的运行过程如图2(a)、图2(g)所示:
1)读取片段起始时刻T60;
2)判断终止命令是否有效,无效则运行本过程的3)条,有效则跳转至本过程的9)条;
3)读取当前时刻T61;
4)判断(T61-T0)是否大于执行时刻,是,则运行本过程的5)条;否,则跳转至本过程的7)条;
5)执行当前动作的动作内容,并存储运行结果;
6)判断运行结果是否正常,是,则将当前动作更新为运行正常时的下个动作后,跳转至本过程的9)条;否,则将当前动作更新为运行异常时的下个动作后,跳转至本过程的9)条;
7)判断等待时间是否为0,是,则延时1ms后跳转至本过程的2)条;否,则运行本过程的8)条;
8)判断(T61-T60)是否大于等待时间,否,则延时1ms后跳转至本过程的2)条;是,则存储运行结果,将当前动作更新为运行正常时的下个动作后,跳转至本过程的9)条;
9)判断是否终止命令有效或配置信息错误,是,则跳转至n)条;否,则跳转至d)条。
n)执行控制流的出口处理;
o)置控制流运行标志为无效。
综上所述,本发明实施例提供了一种顺序控制方法,实现了对顺序控制流程的抽象、分解和重构,可有效提高顺序控制类软件的开发效率,降低开发的错误率,提高可维护性。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (7)
1.一种顺序控制方法,其特征在于,包括以下步骤:
步骤S1、建立顺序控制的动作库;
步骤S2、生成顺序控制的动作流;
步骤S3、生成顺序控制的控制流;
步骤S4、控制引擎加载控制流并执行顺序控制;
上述步骤S2包括以下子步骤:
步骤S201:根据顺序控制的实际需求,将用户输入的控制流程切分为多个顺序执行的动作,所述动作为动作库内已定义的动作;
步骤S202:为切分的每个动作配置属性参数;
步骤S203:将完成属性参数配置的所有动作的集合作为动作流,存储至文本文件,将动作流的名称作为动作流的唯一标识。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1包括以下子步骤:
步骤S101:定义与控制设备相匹配的动作;
步骤S102:为每个动作定义属性参数;
步骤S103:将与控制设备相匹配的动作和每个动作的属性参数存储至数据库,作为动作库。
3.根据权利要求2所述的方法,其特征在于,所述与控制设备相匹配的动作包括但不限于:开关量输出、开关量读入、模拟量输出、模拟量读入和数字通信;
为每个动作定义的属性参数包括:动作类型、动作内容、运行时刻、等待时间、运行正常时的下个动作以及运行异常时的下个动作。
4.根据权利要求3所述的方法,其特征在于,所述动作类型包括:仅执行、仅等待、先执行后等待、先等待后执行、正常则终止的周期行为、异常则终止的周期行为、正常则终止的单次行为和异常则终止的单次行为。
5.根据权利要求2-4任一所述的方法,其特征在于,所述步骤S3包括以下子步骤:
步骤S301:根据顺序控制的实际需求,为控制流程配置属性参数;
步骤S302:将完成属性参数配置的控制流程作为控制流,存储至文本文件,将控制流名称作为控制流的唯一标识。
6.根据权利要求5所述的方法,其特征在于,为控制流程配置的属性参数包括:入口条件、动作流名称、出口处理以及终止命令。
7.根据权利要求6所述的方法,其特征在于,所述步骤S4包括以下子步骤:
步骤S401:将存储动作流的文件加载至数据库;
步骤S402:将存储控制流的文件加载至数据库;
步骤S403:启动控制引擎;
步骤S404:控制引擎根据控制流名称加载控制流;
步骤S405:控制引擎根据控制流配置的属性参数运行动作流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710240400.3A CN107015491B (zh) | 2017-04-13 | 2017-04-13 | 一种顺序控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710240400.3A CN107015491B (zh) | 2017-04-13 | 2017-04-13 | 一种顺序控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107015491A CN107015491A (zh) | 2017-08-04 |
CN107015491B true CN107015491B (zh) | 2019-05-14 |
Family
ID=59446038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710240400.3A Active CN107015491B (zh) | 2017-04-13 | 2017-04-13 | 一种顺序控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107015491B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933030B (zh) * | 2019-03-22 | 2020-05-08 | 江西蓝星星火有机硅有限公司 | 一种化学工艺的顺序控制方法、化学设备及存储介质 |
CN110632878B (zh) * | 2019-10-08 | 2022-06-28 | 上海宝阶智能科技有限公司 | 一种异构嵌入式表格化处理及执行动作流程的方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998040817A1 (fr) * | 1997-03-11 | 1998-09-17 | Mitsubishi Denki Kabushiki Kaisha | Methode et systeme de programmation visuelle |
US7636856B2 (en) * | 2004-12-06 | 2009-12-22 | Microsoft Corporation | Proactive computer malware protection through dynamic translation |
KR20140053756A (ko) * | 2010-03-31 | 2014-05-08 | 어데토 캐나다 코포레이션 | 어플리케이션을 보호하기 위한 링크와 로드 방법 |
CN105549981A (zh) * | 2015-12-30 | 2016-05-04 | 深圳连硕自动化科技有限公司 | 一种流程控制程序的编写方法 |
-
2017
- 2017-04-13 CN CN201710240400.3A patent/CN107015491B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107015491A (zh) | 2017-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8677107B2 (en) | Apparatus and method for handling exception events | |
US20060268967A1 (en) | Supplying instruction to operational stations | |
US8806449B2 (en) | Holding threads in a software debugger | |
CN105045632A (zh) | 一种多核环境下实现免锁队列的方法和设备 | |
CN107015491B (zh) | 一种顺序控制方法 | |
US8701094B2 (en) | Event management in a non-stop debugging environment | |
US9158331B2 (en) | On-demand scalable timer wheel | |
CN100359486C (zh) | 一种调试操作系统内核态程序的方法及装置 | |
CN110134504A (zh) | 一种基于有限状态机的操作系统需求层形式化建模方法及装置 | |
EP2733613B1 (en) | Controller and program | |
CN110955503B (zh) | 任务调度方法及装置 | |
US8661293B2 (en) | Test architecture based on intelligent test sequence | |
US9454382B2 (en) | Verification of UML state machines | |
US8484517B2 (en) | High compression program flow trace | |
CN108292236A (zh) | 一种信息处理方法及装置 | |
EP2630577B1 (en) | Exception control in a multiprocessor system | |
CN108959032A (zh) | 一种服务器业务指标的实时监视方法、装置及电子设备 | |
CN110968595A (zh) | 一种单线程sql语句执行方法、设备及存储介质 | |
JP2002073348A (ja) | シナリオ解析型制御システム装置 | |
CN114721725B (zh) | 一种分支指令执行方法、装置、电子设备及存储介质 | |
KR101083049B1 (ko) | 시뮬레이션 시스템 및 시뮬레이션 방법 | |
CN115225633B (zh) | 基于对端网络信号的状态机状态转换方法及系统 | |
JP2006202102A (ja) | シミュレーション装置 | |
Munnich et al. | Calculating worst-case execution times of transactions in databases for event-driven, hard real-time embedded systems | |
CN106021041B (zh) | 基于有限状态机的多周期非流水线cpu调试方法 |
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 |