CN101145040A - 用户程序调度的方法及自动化控制系统 - Google Patents
用户程序调度的方法及自动化控制系统 Download PDFInfo
- Publication number
- CN101145040A CN101145040A CNA2007101656268A CN200710165626A CN101145040A CN 101145040 A CN101145040 A CN 101145040A CN A2007101656268 A CNA2007101656268 A CN A2007101656268A CN 200710165626 A CN200710165626 A CN 200710165626A CN 101145040 A CN101145040 A CN 101145040A
- Authority
- CN
- China
- Prior art keywords
- user
- user program
- scan period
- program
- basic scan
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
本发明公开了一种用户程序调度方法及自动化控制系统。本发明方法包括:在用户程序调度前预置用户程序调度表,所述用户程序调度表包括:基本扫描周期和用户程序的索引信息,所述基本扫描周期是所需调度的用户程序的执行周期的公约数;依据所述用户程序调度表中与所述基本扫描周期对应的用户程序的索引信息,调度执行用户程序。本发明具有以下效果:控制单元可以根据该用户程序调度表执行用户程序,既节省控制单元的资源又满足不同控制对象的实时性要求。
Description
技术领域
本发明涉及工业自动化控制领域,尤其涉及用户程序调度的方法及自动化控制系统。
背景技术
在工业自动化控制领域,自动化控制系统中的控制单元通过执行用户程序来完成控制对象的控制功能,控制单元对不同的控制对象执行与该控制对象对应的用户程序。由于对象特性的不同,不同控制对象的实时性要求也不同。
假设控制系统需要对两个控制对象进行控制,对象1要求50ms的控制周期,对象2要求500ms的控制周期,现有技术中控制单元通过以下方式满足对象1和对象2的实时性要求:控制系统按照实时性要求最高的对象设置控制周期是50ms,每50ms控制单元分别执行不同控制对象的用户程序,向控制对象输出控制信号,这种方式下对象2在其控制周期内收到了10次控制信号,而实际上控制对象2在500ms内只需要接受一次控制信号即可;控制系统若按照实时性要求低的对象设置控制周期是500ms,就满足不了对象1的实时性要求。
在对现有技术的研究和实践过程中,发明人发现现有技术存在以下问题:控制系统需要对多个控制对象进行控制时,现有技术只能统一按照一个控制对象的控制周期执行不同控制对象的用户程序,为了满足每个控制对象的实时性要求,可能会造成控制单元资源的浪费,或者为了不浪费控制单元资源,则满足不了每个控制对象的实时性要求。
发明内容
本发明实施例要解决的技术问题是提供一种用户程序调度的方法及自动化控制系统,能够同时满足多个控制对象的实时性要求,且有效利用控制系统资源。
为解决上述技术问题,本发明所提供的用户程序调度方法及自动化控制系统实施例是通过以下技术方案实现的:
本发明实施例提供一种用户程序调度方法,包括:
在用户程序调度前预置用户程序调度表,所述用户程序调度表包括:基本扫描周期和用户程序的索引信息,所述基本扫描周期是所需调度的用户程序的执行周期的公约数;依据所述用户程序调度表中与所述基本扫描周期对应的用户程序的索引信息,调度执行用户程序。
本发明实施例还提供一种自动化控制系统,包括:
用户程序调度表生成单元,用于在用户程序调度前预置用户程序调度表,所述用户程序调度表包括:一个控制周期内的基本扫描周期和用户程序的索引信息,所述基本扫描周期是所需调度的用户程序的执行周期的公约数;用户程序执行单元,用于依据所述用户程序调度表中与所述基本扫描周期对应的用户程序的索引信息,调度执行用户程序。
上述技术方案具有如下有益效果:由于本发明实施例在调度用户程序前预置用户程序调度表,控制单元可以根据该用户程序调度表执行用户程序,既节省控制单元的资源又满足不同控制对象的实时性要求,且控制系统按照用户程序调度表调度用户程序,使得用户程序按表中顺序执行,方便程序的调试和故障分析。
附图说明
图1是本发明实施例提供的预置的用户程序调度表;
图2是本发明实施例提供的用户程序组成示意图;
图3是本发明实施例提供的自动生成用户程序调度表的流程图;
图4是本发明实施例提供的用户程序调度方法流程图;
图5是本发明实施例提供的自动化控制系统图。
具体实施方式
本发明实施例提供了一种用户程序调度方法和自动化控制系统,用于实现工业自动化控制对用户程序的调度。
本发明实施例以所有控制对象控制周期的公约数为依据规定基本扫描周期;另外,本发明实施例在用户程序调度表中还规定控制系统的控制周期,控制系统的控制周期包含一个或多个基本扫描周期,是所需调度的所有控制对象的控制周期的公倍数,或者是所需调度的用户程序的执行周期的公倍数。控制系统的控制周期大于或等于实时性要求最低的控制对象的控制周期,基本扫描周期小于或等于实时性要求最高的控制对象的控制周期,且控制系统的控制周期是基本扫描周期的整数倍,控制系统在一个控制周期内每个基本扫描周期调度执行特定的用户程序。本发明实施例在控制系统开始调度用户程序前预置用户程序调度表,控制系统依据该用户程序调度表在每个基本扫描周期执行特定的用户程序。
请参阅图1是本发明实施例提供的预置的用户程序调度表。
如图所示,控制单元的一个控制周期包括10个基本扫描周期,在每个基本扫描周期对应特定的控制对象的用户程序;在用户程序调度表中存放的是用户程序的索引信息,控制系统的控制单元对控制对象进行控制时,在一个基本扫描周期内首先判断该基本扫描周期内是否对应有用户程序的索引信息,若有则通过用户程序的索引信息,取得用户程序入口信息,执行该用户程序,若无则进入到下一个基本扫描周期。需要说明的是,在一个基本扫描周期内所执行的用户程序的总耗时小于等于基本扫描周期。
请参阅图2是本发明实施例提供的用户程序组成示意图。用户程序由用户程序页组成,每一个用户程序页是一个独立的用户程序,具有独立的执行周期,独立的程序入口,因此控制系统的控制单元可以单独调度执行每个用户程序页。
本发明实施例以控制系统调度4个执行周期分别为1Ts、2Ts、5Ts、10Ts(Ts为基本扫描周期)的用户程序页为例描述用户程序调度表的组成。用户程序调度表包含控制单元一个控制周期中的所有用户程序页信息,一个控制周期为控制单元所需要调度的4个用户程序页的执行周期的公倍数,针对本发明实施例提供的四个控制对象的执行周期,该控制周期为1、2、5、10的公倍数,即10Ts;每个基本扫描周期的用户程序调度信息由需要调度的用户程序页数量和用户程序页索引信息组成。执行周期为1Ts的用户程序页PageO,由于每个基本扫描周期都需要执行,将该用户程序页的索引信息添加到用户程序调度表的T0~T9基本扫描周期对应的位置;执行周期是2Ts的用户程序页Page1,每2个基本扫描周期执行一次,将该用户程序页的索引信息添加到用户程序调度表的TO、T2、T4、T6、T8基本扫描周期对应位置;执行周期为5Ts的用户程序Page2,每5个基本扫描周期执行一次,可将该页程序信息添加到用户程序调度表的T1、T6基本扫描周期对应位置;执行周期为10Ts的用户程序Page3,每10个基本扫描周期执行一次,可将该页程序信息添加到用户程序调度表中的任意一个基本扫描周期,如T3。
由于用户程序调度表包含了控制单元一个控制周期内的用户程序调度信息,而控制周期是所包含的所有用户程序页执行周期的公倍数,因此所有用户程序页在时间顺序上的调度信息均在用户程序调度表中得到表达。本发明提供的实施例中,控制单元以10Ts为一个控制周期循环调度执行用户程序调度表每个基本扫描周期对应的用户程序,完成用户程序调度。例如:对Page3来说,该页程序总是在每个控制周期的T3基本扫描周期时刻得到运行,其执行周期为10Ts。
用户程序调度表可以在控制系统中自动生成,也可以人工生成;人工生成用户程序调度表,用户根据一个控制周期内各基本扫描周期的实际负荷,调整每个用户程序页的执行位置。自动生成包括如下步骤:
请参阅图3是本发明实施例提供的自动生成用户程序调度表的流程图,假定Page0~Page3执行位置已按图1分配,且已知Page0~Page3的执行时间分别为2ms、3ms、1.5ms、2.5ms。此时用户新增Page4,执行周期为5Ts,执行耗时3.5ms。
步骤11、获取一个控制周期内的各个基本扫描周期的用户程序的运行耗时;
一个基本扫描周期的用户程序运行耗时指该基本扫描周期需要调度执行的所有用户程序页的执行时间之和。用户程序页的执行时间可以从控制系统的控制单元中获得,也可以根据控制单元为每个用户程序分配的代码量和控制单元指令执行速度预估。
请参阅图1,结合Page0~Page3已知的执行时间,计算得到一个控制周期下的各个基本扫描周期的用户程序运行耗时分别是:5ms、3.5ms、5ms、4.5ms、5ms、2ms、6.5ms、2ms、5ms、2ms。
步骤12、将新增的用户程序预置于一组可能的基本扫描周期内;
在本实施例中,用户程序页Page4执行周期为5Ts,在一个控制周期中,其可能执行位置有5种组合:T0和T5,T1和T6,T2和T7,T3和T8,T4和T9基本扫描周期。本步骤中,将Page4置于其中的一种组合,如TO和T5。
步骤13、计算将新增用户程序页添加到步骤12中采用的一组可能的基本扫描周期内后的各个基本扫描周期的用户程序的运行耗时;
如,将Page4添加到可能的T0、T5组合后,T0~T9基本扫描周期的用户程序运行耗时为:8.5ms、3.5ms、5ms、4.5ms、5ms、5.5ms、6.5ms、2ms、5ms、2ms。
步骤14、记录步骤13中得到的添加用户程序页后的各个基本扫描周期中用户程序运行耗时的最大值;
依据Page4添加到T0、T5处后的10个基本扫描周期中用户程序耗时,得到用户程序耗时最大的是TO基本周期的8.5ms,记录该组合(Page4添加到T0、T5处)下一个基本扫描周期的用户程序耗时最大值为8.5ms。
步骤15、判断是否所有可能的执行位置下的各基本扫描周期用户程序运行耗时最大值均已取得;
若取得,则执行步骤16,若未取得则执行步骤12。
本实施例中,循环执行步骤12到步骤14依次取得:
T0、T5组合下的用户程序耗时最大值8.5ms(8.5ms是T0基本扫描周期内用户程序耗时);
T1、T6组合下的用户程序耗时最大值10ms(10ms是T6基本扫描周期内用户程序耗时);
T2、T7组合下的用户程序耗时最大值8.5ms(8.5ms是T2基本扫描周期内用户程序耗时);
T3、T8组合下的用户程序耗时最大值8.5ms(8.5ms是T8基本扫描周期内用户程序耗时);
T4、T9组合下的用户程序耗时最大值8.5ms(8.5ms是T4基本扫描周期内用户程序耗时)。
步骤16、比较各组合下的一个基本扫描周期用户程序运行耗时最大值;
将各组合下的一个基本扫描周期用户程序运行耗时最大值中最小的一种组合作为Page4的执行位置。
本实施例中,用户程序耗时最大值中最小的是8.5ms,为TO、T5,T2、T7,T3、T8,T4、T9等四种组合。Page4可以采用这四种组合的任意一种。
生成用户程序调度表后,控制系统的控制单元可以依据用户程序调度表对控制对象进行控制。
请参阅图4是本发明实施例提供的用户程序调度方法流程图。
步骤21、查看用户程序调度表该基本扫描周期是否需要调度用户程序;
若需要则执行步骤22,若不需要则进入到下一个基本扫描周期。
步骤22、使用用户程序调度表中的基本扫描周期对应的用户程序索引信息调度用户程序;
根据该用户程序页的索引信息,取得用户程序入口信息,并运行该用户程序。
步骤23、查询基本扫描周期内的所有用户程序页是否均已调度完毕;
若未完毕则返回步骤21,若调度完毕,进入下一个基本扫描周期。
以上是对用户程序调度方法实施例的说明,本发明实施例还提供一种自动化控制系统。
请参阅图5是本发明实施例提供的自动化控制系统图。
具体包括:用户程序调度表生成单元110,用于在用户程序调度前预置用户程序调度表;
用户程序执行单元120,用于依据所述用户程序调度表执行用户程序。
所述用户程序调度表生成单元包括:
计算单元111,用于计算一个控制周期内的基本扫描周期内的用户程序运行耗时;
用户程序索引添加单元112,用于依据用户程序的执行周期,将所述用户程序的索引信息添加到所述用户程序运行耗时最小的基本扫描周期。
以上对本发明所提供的一种用户程序调度方法及自动化控制系统进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种用户程序调度方法,其特征在于,包括:
在用户程序调度前预置用户程序调度表,所述用户程序调度表包括:基本扫描周期和用户程序的索引信息,所述基本扫描周期是所需调度的用户程序的执行周期的公约数;
依据所述用户程序调度表中与所述基本扫描周期对应的用户程序的索引信息,调度执行用户程序。
2.根据权利要求1所述的用户程序调度方法,其特征在于,所述在用户程序调度前预置用户程序调度表包括:
获取一个控制周期内的基本扫描周期内的用户程序运行耗时;
依据用户程序的执行周期,将所述用户程序的索引信息添加到所述用户程序运行耗时最小的基本扫描周期。
3.根据权利要求2所述的用户程序调度方法,其特征在于,所述用户程序的执行周期是所述基本扫描周期的整数倍。
4.根据权利要求2或3所述的用户程序调度方法,其特征在于,所述用户程序调度表还包括:控制周期;
所述控制周期是所需要调度的用户程序的执行周期的公倍数。
5.一种自动化控制系统,其特征在于,包括:
用户程序调度表生成单元,用于在用户程序调度前预置用户程序调度表,所述用户程序调度表包括:一个控制周期内的基本扫描周期和用户程序的索引信息,所述基本扫描周期是所需调度的用户程序的执行周期的公约数;
用户程序执行单元,用于依据所述用户程序调度表中与所述基本扫描周期对应的用户程序的索引信息,调度执行用户程序。
6.根据权利要求5所述的自动化控制系统,其特征在于,所述用户程序调度表生成单元包括:
计算单元,用于计算一个控制周期内的基本扫描周期内的用户程序运行耗时;
用户程序索引添加单元,用于依据用户程序的执行周期,将所述用户程序的索引信息添加到所述用户程序运行耗时最小的基本扫描周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101656268A CN101145040A (zh) | 2007-10-23 | 2007-10-23 | 用户程序调度的方法及自动化控制系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101656268A CN101145040A (zh) | 2007-10-23 | 2007-10-23 | 用户程序调度的方法及自动化控制系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101145040A true CN101145040A (zh) | 2008-03-19 |
Family
ID=39207599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101656268A Pending CN101145040A (zh) | 2007-10-23 | 2007-10-23 | 用户程序调度的方法及自动化控制系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101145040A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095115A (zh) * | 2016-06-30 | 2016-11-09 | 北京智能管家科技有限公司 | 一种应用程序调度处理方法及装置 |
-
2007
- 2007-10-23 CN CNA2007101656268A patent/CN101145040A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095115A (zh) * | 2016-06-30 | 2016-11-09 | 北京智能管家科技有限公司 | 一种应用程序调度处理方法及装置 |
CN106095115B (zh) * | 2016-06-30 | 2019-05-17 | 北京智能管家科技有限公司 | 一种应用程序调度处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Becker et al. | Synthesizing job-level dependencies for automotive multi-rate effect chains | |
CA2446796A1 (en) | Planning and scheduling reconfigurable systems with alternative capabilities | |
US8983632B2 (en) | Function block execution framework | |
Valente et al. | Development of multi-level adaptive control and scheduling solutions for shop-floor automation in reconfigurable manufacturing systems | |
CN103399798A (zh) | Plc的多任务控制方法和装置 | |
CN106598717B (zh) | 一种基于时间片段的任务调度方法 | |
CN108762751A (zh) | 一种逻辑图形组态及转成数据流的方法及系统 | |
WO2006083046A3 (en) | Methods and apparatus for providing a task change application programming interface | |
CN108563494B (zh) | 一种自适应动态调整的线程调度系统及方法 | |
CN110928666B (zh) | 一种Spark环境中基于内存优化任务并行度的方法和系统 | |
CN101702144B (zh) | 一种dma控制器的控制装置及控制方法 | |
CN101145040A (zh) | 用户程序调度的方法及自动化控制系统 | |
CN101674194B (zh) | 基于日志特征分析的机群负载模型及其建模方法 | |
Rykov et al. | On the slow server problem | |
CN101741722A (zh) | 数据交互方法及装置 | |
Kittithreerapronchai et al. | Do ants paint trucks better than chickens? Markets versus response thresholds for distributed dynamic scheduling | |
CN102170292B (zh) | 一种数据处理方法、数据处理系统以及相关设备 | |
Balashov et al. | A technology for scheduling of data exchange over bus with centralized control in onboard avionics systems | |
JP2007233930A (ja) | 分散制御システム用シミュレータ | |
CN1936746A (zh) | 基于arm的嵌入式数控系统g代码解释器 | |
Kasımoğlu et al. | An Application: A Model with Sequence Dependent Setup Times for Parallel Machines for the Die House Station in a White Goods Manufacturing Company | |
CN104077182B (zh) | 一种同优先级任务调度策略 | |
KR102169869B1 (ko) | 운영체제의 파티션 제어 장치 및 방법 | |
US8255068B2 (en) | Method of configuring a control algorithm being executable by a controller | |
US20050010903A1 (en) | Method for creating a data processing program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |