CN114755991A - 一种基于软plc的实时调度方法 - Google Patents
一种基于软plc的实时调度方法 Download PDFInfo
- Publication number
- CN114755991A CN114755991A CN202210458779.6A CN202210458779A CN114755991A CN 114755991 A CN114755991 A CN 114755991A CN 202210458779 A CN202210458779 A CN 202210458779A CN 114755991 A CN114755991 A CN 114755991A
- Authority
- CN
- China
- Prior art keywords
- task
- soft plc
- background
- real
- scheduling method
- 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
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000000737 periodic effect Effects 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/41865—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
-
- 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/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32252—Scheduling production, machining, job shop
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
本发明适用于工业控制领域,提供了一种基于软PLC的实时调度方法,软PLC包括虚拟机,虚拟机运行周期任务和后台任务;基于软PLC的实时调度方法包括:周期任务异步信号中断退出返回后台,进入后台任务;后台任务进入异步信号中断处理程序,进入周期任务。通过本发明可以为容器内工业软PLC任务提供高可靠、高实时任务调度机制。
Description
技术领域
本发明涉及工业控制领域,具体涉及一种基于软PLC的实时调度方法。
背景技术
随着工业的不断发展,传统的控制领域已经开始向网络化方向发展,PLC(可编程控制器,Programmable Logic Controller )由于其自身具有可编程并且编程语言通用、模块化、可复用等特点,在自动控制领域具有广泛的应用前景。而在工业PC上以软件技术实现PLC的功能,称为软PLC技术,是一项新兴的技术。
通过软PLC,可同时接收多个任务,但是各任务的优先级不同,使得每个其处理进度并不统一,容易出现任务顺序混乱的情况,因此,任务的合理调度是十分必要的。但传统的PLC中所使用的任务调度方法通常为优先级和时间片轮转的混合调度算法,依赖于单任务的时钟扫描程序。
发明内容
本发明的主要目的在于提出一种基于软PLC的实时调度方法,以解决传统的PLC任务调度方式不适用于软PLC的任务处理机制的问题。
为实现上述目的,本发明实施例第一方面提供一种基于软PLC的实时调度方法,所述软PLC包括虚拟机,所述虚拟机运行周期任务和后台任务;所述基于软PLC的实时调度方法包括:
所述周期任务异步信号中断退出返回后台,进入后台任务;
所述后台任务进入异步信号中断处理程序,进入周期任务。
结合本发明实施例第一方面,本发明第一实施方式中,所述虚拟机中预先配置有容器。
结合本发明实施例第一方面第一实施方式,本发明第二实施方式中,所述周期任务的具体运行步骤为:
S11、所述容器窗口切换异步信号中断;
S12、判断前拍是否有被中断任务,若是则进行故障处理,否则进入步骤S13;
S13、根据当前帧计数,置相应任务组位就绪态;
S14、判断被中断速率组优先级是否高于当前就绪任务组,若是,则令当前就绪任务组置为等待态,否则进入步骤S15;
S15、当前就绪任务组置为运行态,顺序运行组内任务;
S16、当前就绪任务组置为等待态。
结合本发明实施例第一方面第二实施方式,本发明第三实施方式中,根据当前帧计数,置相应任务组位就绪态之前,还包括:
判断所述是容器是否为使能容器,若是则进入步骤S13,若否则重启所述容器。
结合本发明实施例第一方面,本发明第四实施方式中,,后台任务所在软PLC优先级最低。
结合本发明实施例第一方面第四实施方式,本发明第五实施方式中,
所述后台任务的具体运行步骤为:
判断当前帧是否为后台调度周期,若是则顺序执行后台任务,并返回再次判断当前帧是否为后台调度周期。
结合本发明实施例第一方面,本发明第六实施方式中,,相同周期的任务注册到同一个软PLC,且周期任务在软PLC周期内执行完成;若目标软PLC再次被调度运行时,其前一次运行的任务没有全部完成,则触发一个超时故障。
结合本发明实施例第一方面,本发明第七实施方式中,所述后台任务注册到同一个软PLC;
若目标软PLC的所有后台任务被执行完,在下一次所述目标软PLC被调度时,所述后台任务再次被调度。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上第一方面所提供的方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上第一方面所提供的方法的步骤。
本发明的有益效果为:本发明满足工业控制应用实时调度需求,为容器内工业软PLC任务提供高可靠、高实时任务调度机制。
附图说明
图1为本发明实施例提供的基于软PLC的实时调度方法的实现流程示意图;
图2为本发明实施例提供的基于软PLC的实时调度方法的实际应用流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本文中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。
如图1所示,本发明实施例提供了一种基于软PLC的实时调度方法,其中,软PLC包括虚拟机,所述虚拟机运行周期任务和后台任务,且虚拟机中预先配置有容器。
在本发明实施例中,每个软PLC按周期运行,周期为主帧的倍数。在调度时,将反复执行相同的主帧,而一个容器可以在主帧里有多个时间窗口。
需要说明的是,主帧是实时容器时间主帧调度中的概念,时间主帧调度按照主帧时间进行配置。
需要说明的是,各软PLC具有优先级,最快的软PLC有最高的优先级,可以抢占其它任何软PLC。周期越小的软PLC优先级越高。而本发明实施例中,后台任务所在软PLC优先级最低。
在具体应用中,软PLC拥有三种状态,具体描述如下:
(1)等待态表示软PLC等待下一个周期到来;
(2)就绪态表示软PLC运行周期到来;
(3)运行态表示软PLC内有运行任务。
图1中,基于软PLC的实时调度方法包括但不限于如下步骤:
S101、所述周期任务异步信号中断退出返回后台,进入后台任务。
在上述步骤S101中,周期任务周期任务必须在软PLC周期内执行完成,且相同周期的任务注册到同一个软PLC,若目标软PLC再次被调度运行时,其前一次运行的任务没有全部完成,则触发一个超时故障。
在本发明实施例中,虚拟机中预先配置有容器,容器提供时间主帧机制,即容器在主帧里的多个时间窗口的窗口切换,超融合控制平台在时间窗口通知时,向当前时间窗口的容器发送一个异步通信消息,以使容器在窗口切换信号中断处理程序中实现软PLC任务调度。
因此,上述步骤S101中后台任务的具体运行步骤包括:
S11、所述容器窗口切换异步信号中断;
S12、判断前拍是否有被中断任务,若是则进行故障处理,否则进入步骤S13;
S13、根据当前帧计数,置相应任务组位就绪态;
S14、判断被中断速率组优先级是否高于当前就绪任务组,若是,则令当前就绪任务组置为等待态,否则进入步骤S15;
S15、当前就绪任务组置为运行态,顺序运行组内任务;
S16、当前就绪任务组置为等待态。
在一个实施例中,上述步骤S103之前,还包括:
判断所述是容器是否为使能容器,若是则进入步骤S13,若否则重启所述容器。
S102、所述后台任务进入异步信号中断处理程序,进入周期任务。
在上述步骤S102中,后台任务不需要在对应速率组的周期内完成,且后台任务也注册到同一个软PLC,若目标软PLC的所有后台任务被执行完,在下一次所述目标软PLC被调度时,所述后台任务再次被调度。
本发明实施例中,后台任务所在软PLC优先级最低。基于此,上述步骤S102中,所述后台任务的具体运行步骤为:
判断当前帧是否为后台调度周期,若是则顺序执行后台任务,并返回再次判断当前帧是否为后台调度周期。
在上述步骤S101和步骤S102中,注册到软PLC的任务分为周期任务和后台任务;需要说明的是,每个软PLC中的任务共同使用一个独立的栈,不同的软PLC使用不同的栈。
本发明实施例通过容器提供的时间主帧调度机制实现软PLC调度算法,在该算法中,超融合控制平台按照用户配置的时间主帧对实时容器进行调度。超融合控制平台在时间窗口通知时,向当前时间窗口的容器发送一个异步通信消息,容器在窗口切换信号中断处理程序中实现软PLC任务调度。本发明满足工业控制应用实时调度需求,为容器内软PLC任务提供高可靠、高实时任务调度机制。
如图2所示,本发明实施例还示出了上述步骤S101和步骤S102的实际应用流程示意图,在一个软PLC及其虚拟机所配置的容器中,具有周期任务运行环境和后台任务运行环境,由周期任务进入后台任务的方式为异步信号中断退出返回,由后台任务进入周期任务的方式为使用异步信号中断处理程序。
本发明实施例还提供一种终端设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述实施例中所述的基于软PLC的实时调度方法中的各个步骤。
本发明实施例还提供一种存储介质,所述存储介质为计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述实施例中所述的基于软PLC的实时调度方法中的各个步骤。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于软PLC的实时调度方法,其特征在于,所述软PLC包括虚拟机,所述虚拟机运行周期任务和后台任务;所述基于软PLC的实时调度方法包括:
所述周期任务异步信号中断退出返回后台,进入后台任务;
所述后台任务进入异步信号中断处理程序,进入周期任务。
2.根据权利要求1所述的基于软PLC的实时调度方法,其特征在于,所述虚拟机中预先配置有容器。
3.根据权利要求2所述的基于软PLC的实时调度方法,其特征在于,
所述周期任务的具体运行步骤为:
S11、所述容器窗口切换异步信号中断;
S12、判断前拍是否有被中断任务,若是则进行故障处理,否则进入步骤S13;
S13、根据当前帧计数,置相应任务组位就绪态;
S14、判断被中断速率组优先级是否高于当前就绪任务组,若是,则令当前就绪任务组置为等待态,否则进入步骤S15;
S15、当前就绪任务组置为运行态,顺序运行组内任务;
S16、当前就绪任务组置为等待态。
4.根据权利要求3所述的基于软PLC的实时调度方法,其特征在于,根据当前帧计数,置相应任务组位就绪态之前,还包括:
判断所述是容器是否为使能容器,若是则进入步骤S13,若否则重启所述容器。
5.根据权利要求1所述的基于软PLC的实时调度方法,其特征在于,后台任务所在软PLC优先级最低。
6.根据权利要求5所述的基于软PLC的实时调度方法,其特征在于,
所述后台任务的具体运行步骤为:
判断当前帧是否为后台调度周期,若是则顺序执行后台任务,并返回再次判断当前帧是否为后台调度周期。
7.根据权利要求1所述的基于软PLC的实时调度方法,其特征在于,相同周期的任务注册到同一个软PLC,且周期任务在软PLC周期内执行完成;若目标软PLC再次被调度运行时,其前一次运行的任务没有全部完成,则触发一个超时故障。
8.根据权利要求1所述的基于软PLC的实时调度方法,其特征在于,所述后台任务注册到同一个软PLC;
若目标软PLC的所有后台任务被执行完,在下一次所述目标软PLC被调度时,所述后台任务再次被调度。
9.一种终端设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1至8任一项所述的基于软PLC的实时调度方法中的各个步骤。
10.一种存储介质,所述存储介质为计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1至8任一项所述的基于软PLC的实时调度方法中的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210458779.6A CN114755991A (zh) | 2022-04-28 | 2022-04-28 | 一种基于软plc的实时调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210458779.6A CN114755991A (zh) | 2022-04-28 | 2022-04-28 | 一种基于软plc的实时调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114755991A true CN114755991A (zh) | 2022-07-15 |
Family
ID=82332411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210458779.6A Pending CN114755991A (zh) | 2022-04-28 | 2022-04-28 | 一种基于软plc的实时调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114755991A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105988867A (zh) * | 2015-01-29 | 2016-10-05 | 北京科银京成技术有限公司 | 基于分时分区操作系统的速率组调度算法 |
CN108984267A (zh) * | 2018-07-09 | 2018-12-11 | 北京东土科技股份有限公司 | 工业服务器的微内核架构控制系统及工业服务器 |
-
2022
- 2022-04-28 CN CN202210458779.6A patent/CN114755991A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105988867A (zh) * | 2015-01-29 | 2016-10-05 | 北京科银京成技术有限公司 | 基于分时分区操作系统的速率组调度算法 |
CN108984267A (zh) * | 2018-07-09 | 2018-12-11 | 北京东土科技股份有限公司 | 工业服务器的微内核架构控制系统及工业服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6757897B1 (en) | Apparatus and methods for scheduling and performing tasks | |
US6182120B1 (en) | Method and system for scheduling queued messages based on queue delay and queue priority | |
EP1538497B1 (en) | Distributed real time operating system | |
EP0617361B1 (en) | Scheduling method and apparatus for a communication network | |
US7451447B1 (en) | Method, computer program and apparatus for operating system dynamic event management and task scheduling using function calls | |
US6633942B1 (en) | Distributed real-time operating system providing integrated interrupt management | |
US6823517B1 (en) | Multi-tasking-real-time operating system for microprocessors with limited memory that constrains context switching to occur only at task level | |
CN102455940B (zh) | 一种定时器和异步事件的处理方法及系统 | |
EP0442615A2 (en) | A communications adapter | |
CN109558227B (zh) | 一种基于任务执行预算的单调速率任务调度方法 | |
CN109343960A (zh) | 一种Linux系统的任务调度方法、系统及相关装置 | |
JP2001202258A (ja) | リアルタイム処理装置 | |
CN116974728B (zh) | 单片机任务调度方法、单片机产品及存储介质 | |
CN109542069B (zh) | 一种基于时间与事件混合驱动的分布式控制系统及方法 | |
US10613495B2 (en) | Motor drive system, motor control system, and self-propelled robot | |
CN114755991A (zh) | 一种基于软plc的实时调度方法 | |
JP2000056992A (ja) | タスクスケジューリングシステム、方法及び記録媒体 | |
CN106843121B (zh) | 对plc定位系统中的各轴的独立控制周期分配的方法 | |
JP2000148513A (ja) | タスク制御方法およびタスク制御装置 | |
CN116859874A (zh) | 一种工业逻辑控制任务调度方法 | |
Nosrati et al. | Task scheduling algorithms introduction | |
CN114035926A (zh) | 应用线程调度方法、装置、存储介质及电子设备 | |
US20120029657A1 (en) | Sequence controller | |
US20190310907A1 (en) | Method and device for error handling in a communication between distributed software components | |
CN116932227B (zh) | 一种基于单线程的任务调度方法及装置 |
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 |