CN115061793A - 一种多任务执行方法、装置、设备及介质 - Google Patents

一种多任务执行方法、装置、设备及介质 Download PDF

Info

Publication number
CN115061793A
CN115061793A CN202210669047.1A CN202210669047A CN115061793A CN 115061793 A CN115061793 A CN 115061793A CN 202210669047 A CN202210669047 A CN 202210669047A CN 115061793 A CN115061793 A CN 115061793A
Authority
CN
China
Prior art keywords
task
operation task
iec61131
programmable logic
logic controller
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
Application number
CN202210669047.1A
Other languages
English (en)
Inventor
余瑞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hollysys Automation Co Ltd
Original Assignee
Hangzhou Hollysys Automation Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Hollysys Automation Co Ltd filed Critical Hangzhou Hollysys Automation Co Ltd
Priority to CN202210669047.1A priority Critical patent/CN115061793A/zh
Publication of CN115061793A publication Critical patent/CN115061793A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F2015/761Indexing scheme relating to architectures of general purpose stored programme computers
    • G06F2015/763ASIC

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Programmable Controllers (AREA)

Abstract

本申请公开了一种多任务执行方法、装置、设备及介质,属于电力电子技术领域,该方法包括:预先为IEC61131‑3多运算任务中的各个运算任务设置相互独立的线程;为IEC61131‑3多运算任务中的各个运算任务设置任务优先级列表,并根据各个运算任务的数据调用关系设置目标引用列表;将任务优先级列表和目标引用列表发送至可编程逻辑控制器,以使可编程逻辑控制器根据任务优先级列表和目标引用列表对IEC61131‑3多运算任务中的各个运算任务进行调控。利用该方法不仅可以使得可编程逻辑控制器在执行IEC61131‑3多运算任务中的每个运算任务时不会受到其它运算任务的影响,而且,也会使得CPU负荷更加稳定。

Description

一种多任务执行方法、装置、设备及介质
技术领域
本发明涉及电力电子技术领域,特别涉及一种多任务执行方法、装置、设备及介质。
背景技术
IEC61131-3是国际电工委员会用于规范可编程逻辑控制器(Programmable LogicController,PLC)所制定的规范标准。现在可编程逻辑控制器只能支持单个任务的IEC61131-3运算,也即,一个可编程逻辑控制器只能支持一个IEC61131-3运算任务,可编程逻辑控制器在执行IEC61131-3运算任务时需要执行读取输入信号、执行用户组态程序以及写输出信号等工作。请参见图1,图1为现有技术中可编程逻辑控制器在执行一个IEC61131-3运算任务时的示意图。
由于用户组态程序中各个IEC61131-3运算任务的执行周期不同,为了满足不同IEC61131-3运算任务的任务执行需求,在现有技术中,是通过设置最小执行周期来解决上述问题。也即,将用户组态程序中执行IEC61131-3运算任务时间最短的周期设置为最小执行周期,并将用户组态程序中其它IEC61131-3运算任务的执行周期设置为最小执行周期的整数倍。在此情况下,每整数倍执行周期执行一次对应的IEC61131-3运算任务即可。请参见图2,图2为现有技术中可编程逻辑控制器在执行3个IEC61131-3运算任务时的示意图。在图2中,A运算任务的执行周期为100ms,B运算任务的执行周期为200ms,C运算任务的执行周期为50ms。那么可编程逻辑控制器最后的执行结果就是A运算任务每100ms执行一次、B运算任务每200ms执行一次、C运算任务每50ms执行一次,并且可编程逻辑控制器会串行执行所有的运算任务。
如果按照上述方式来执行IEC61131-3多运算任务,那么C运算任务的执行周期就会受限于A运算任务和B运算任务的执行。比如:可编程逻辑控制器在执行A运算任务和B运算任务时的最小执行周期超过了50ms,那么C运算任务的执行周期就得不到保证。另外,如果按照上述方式来执行IEC61131-3多运算任务就会使得可编程逻辑控制器的CPU(CentralProcessing Unit,中央处理器)负荷不稳定,会出现CPU负荷特别高或者特别低的情形。目前,针对上述问题,还没有较为有效的解决办法。
发明内容
有鉴于此,本发明的目的在于提供一种多任务执行方法、装置、设备及介质,以使可编程逻辑控制器在执行IEC61131-3多运算任务中的每个运算任务时不会受到其它运算任务的影响,并使可编程逻辑控制器在执行IEC61131-3多运算任务时的CPU负荷更加稳定。其具体方案如下:
一种多任务执行方法,包括:
预先为IEC61131-3多运算任务中的各个运算任务设置相互独立的线程;
为所述IEC61131-3多运算任务中的各个运算任务设置任务优先级列表,并根据各个运算任务的数据调用关系设置目标引用列表;
将所述任务优先级列表和所述目标引用列表发送至可编程逻辑控制器,以使所述可编程逻辑控制器根据所述任务优先级列表和所述目标引用列表对所述IEC61131-3多运算任务中的各个运算任务进行调控。
优选的,所述为所述IEC61131-3多运算任务中的各个运算任务设置任务优先级列表的过程,包括:
根据所述IEC61131-3多运算任务中各个运算任务的任务执行周期设置所述任务优先级列表。
优选的,所述可编程逻辑控制器根据所述任务优先级列表和所述目标引用列表对所述IEC61131-3多运算任务中的各个运算任务进行调控的过程,包括:
根据所述任务优先级列表中各个运算任务的优先级以及所述目标引用列表依次执行所述IEC61131-3多运算任务中的各个运算任务,直至完成所述IEC61131-3多运算任务。
优选的,所述根据所述任务优先级列表中各个运算任务的优先级以及所述目标引用列表依次执行所述IEC61131-3多运算任务中的各个运算任务的过程,包括:
在所述可编程逻辑控制器执行第一运算任务的过程中,根据所述任务优先级列表判断当前时刻是否存在任务优先级比所述第一运算任务更高的第二运算任务;
若不存在,则继续执行所述第一运算任务;
若存在,则中断所述第一运算任务,并执行所述第二运算任务。
优选的,还包括:
预先为所述IEC61131-3多运算任务中的各个运算任务设置相互独立的代码区和数据区。
优选的,还包括:
当所述可编程逻辑控制器执行完毕所述第一运算任务时,则根据所述目标引用列表判断所述IEC61131-3多运算任务中是否存在与所述第一运算任务具有数据调用关系的目标运算任务;
若存在,则将所述第一运算任务的目标配置信息发送至与所述目标运算任务相对应的数据区。
优选的,还包括:
若所述可编程逻辑控制器在执行所述IEC61131-3多运算任务中出现异常运行信息,则对所述异常运行信息进行存储。
相应的,本发明还公开了一种多任务执行装置,包括:
线程设置模块,用于预先为IEC61131-3多运算任务中的各个运算任务设置相互独立的线程;
列表设置模块,用于为所述IEC61131-3多运算任务中的各个运算任务设置任务优先级列表,并根据各个运算任务的数据调用关系设置目标引用列表;
任务调控模块,用于将所述任务优先级列表和所述目标引用列表发送至可编程逻辑控制器,以使所述可编程逻辑控制器根据所述任务优先级列表和所述目标引用列表对所述IEC61131-3多运算任务中的各个运算任务进行调控。
相应的,本发明还公开了一种多任务执行设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如前述所公开的一种多任务执行方法的步骤。
相应的,本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述所公开的一种多任务执行方法的步骤。
可见,在本发明所提供的多任务执行方法中,是预先为IEC61131-3多运算任务中的各个运算任务设置相互独立的线程,并为IEC61131-3多运算任务中的各个运算任务设置任务优先级列表,以及根据各个运算任务的数据调用关系设置目标引用列表;然后,再将任务优先级列表和目标引用列表发送至可编程逻辑控制器,以使可编程逻辑控制器能够根据任务优先级列表和目标引用列表对IEC61131-3多运算任务中的各个运算任务进行调控。相较于现有技术而言,因为本发明中IEC61131-3多运算任务中各个运算任务的线程是相互独立的,在此情况下,可编程逻辑控制器在执行IEC61131-3多运算任务的过程中就可以根据任务优先级列表和目标引用列表依次执行IEC61131-3多运算任务中的各个运算任务,而不会出现任务阻塞的情形,而且,在可编程逻辑控制器执行IEC61131-3多运算任务的过程中还可以根据任务优先级列表中断当前时刻所执行的运算任务,由此就可以使得可编程逻辑控制器执行IEC61131-3多运算任务时的CPU负荷更加稳定。相应的,本发明所提供的一种支持多任务执行装置、设备及介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为现有技术中可编程逻辑控制器在执行一个IEC61131-3运算任务时的示意图;
图2为现有技术中可编程逻辑控制器在执行3个IEC61131-3运算任务时的示意图;
图3为本发明实施例所提供的一种多任务执行方法的流程图;
图4为执行IEC61131-3多运算任务时的示意图;
图5为可编程逻辑控制器在执行运算任务A、运算任务B和运算任务C时的示意图;
图6为可编程逻辑控制器在执行运算任务A、运算任务B和运算任务C时的资源占用示意图;
图7为本发明实施例所提供的一种多任务执行装置的结构图;
图8为本发明实施例所提供的一种多任务执行设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图3,图3为本发明实施例所提供的一种多任务执行方法的流程图,该方法包括:
步骤S11:预先为IEC61131-3多运算任务中的各个运算任务设置相互独立的线程;
步骤S12:为IEC61131-3多运算任务中的各个运算任务设置任务优先级列表,并根据各个运算任务的数据调用关系设置目标引用列表;
步骤S13:将任务优先级列表和目标引用列表发送至可编程逻辑控制器,以使可编程逻辑控制器根据任务优先级列表和目标引用列表对IEC61131-3多运算任务中的各个运算任务进行调控。
在本实施例中,是提供了一种多任务执行方法,利用该方法不仅可以使可编程逻辑控制器在执行IEC61131-3多运算任务中的每个运算任务时不会受到其它运算任务的影响,而且,也可以使得可编程逻辑控制器在执行IEC61131-3多运算任务时的CPU负荷更加稳定。
在该多任务执行方法中,是以组态软件为执行主体进行说明。具体的,在该多任务执行方法中,需要预先为IEC61131-3多运算任务中的各个运算任务设置相互独立的线程,并且,还需要预先为IEC61131-3多运算任务中的各个运算任务设置任务优先级列表,以及根据IEC61131-3多运算任务中各个运算任务的数据调用关系设置目标引用列表。
可以理解的是,当为IEC61131-3多运算任务中的每一个运算任务设置了相互独立的线程时,IEC61131-3多运算任务中的任意一个运算任务在执行任务的过程中就不会受到其它运算任务的影响,由此就可以保证IEC61131-3多运算任务在执行任务时的整体可靠性。
当组态软件根据用户指令设置好任务优先级列表以及目标引用列表之后,则会将任务优先级列表和目标引用列表发送至可编程逻辑控制器。当可编程逻辑控制器接收到组态软件所发送的任务优先级列表以及目标引用关系列表之后,就可以根据任务优先级列表和目标引用关系对IEC61131-3多运算任务中的各个运算任务进行调控,并完成IEC61131-3多运算任务。
请参见图4,图4为执行IEC61131-3多运算任务时的示意图。在执行IEC61131-3多运算任务时,组态软件需要预先为IEC61131-3多运算任务中的各个运算任务设置相互独立的线程,并根据各个运算任务的配置信息设置任务优先级列表以及根据各个运算任务之间的数据调用关系设置目标引用列表。其中,各个运算任务的配置信息包括任务代码、存储数据区信息、任务执行周期、任务执行优先级、程序入口地址以及运算任务之间的调用关系等等。当组态软件设置好任务优先级列表和目标引用列表之后,则将任务优先级列表和目标引用列表发送至可编程逻辑控制器,可编程逻辑控制器在接收到组态软件所发送的任务优先级列表以及目标引用列表之后,可编程逻辑控制器中的IEC任务调度管理模块就会对任务优先级列表和目标引用列表进行解析,并对IEC61131-3多运算任务中各个运算任务发送相应的调度指令。并且,可编程逻辑控制器在执行IEC61131-3多运算任务的过程中,还可以实时输出可编程逻辑控制器在执行IEC61131-3多运算任务时的任务执行次数、任务执行时间、最小运行时间、最大运行时间、累计运行时间、运行情况/休眠/挂起/就绪以及异常运行信息等等。
可见,在本实施例所提供的多任务执行方法中,是预先为IEC61131-3多运算任务中的各个运算任务设置相互独立的线程,并为IEC61131-3多运算任务中的各个运算任务设置任务优先级列表,以及根据各个运算任务的数据调用关系设置目标引用列表;然后,再将任务优先级列表和目标引用列表发送至可编程逻辑控制器,以使可编程逻辑控制器能够根据任务优先级列表和目标引用列表对IEC61131-3多运算任务中的各个运算任务进行调控。相较于现有技术而言,因为本实施例中IEC61131-3多运算任务中各个运算任务的线程是相互独立的,在此情况下,可编程逻辑控制器在执行IEC61131-3多运算任务的过程中就可以根据任务优先级列表和目标引用列表依次执行IEC61131-3多运算任务中的各个运算任务,而不会出现任务阻塞的情形,而且,在可编程逻辑控制器执行IEC61131-3多运算任务的过程中还可以根据任务优先级列表中断当前时刻所执行的运算任务,由此就可以使得可编程逻辑控制器执行IEC61131-3多运算任务时的CPU负荷更加稳定。
基于上述实施例,本实施例对技术方案作进一步的说明与优化,作为一种优选的实施方式,上述步骤:为IEC61131-3多运算任务中的各个运算任务设置任务优先级列表的过程,包括:
根据IEC61131-3多运算任务中各个运算任务的任务执行周期设置任务优先级列表。
具体的,在设置任务优先级列表时,可以根据IEC61131-3多运算任务中各个运算任务的任务执行周期来设置任务优先级列表。也即,在设置任务优先级列表时,可以将IEC61131-3多运算任务中运算任务执行时间较短的运算任务设置为高优先级,并将IEC61131-3多运算任务中运算任务执行时间较长的运算任务设置为低优先级。
假设IEC61131-3多运算任务中有三个运算任务,分别为运算任务A、运算任务B和运算任务C,并且,这三个运算任务的任务执行周期分别为100ms、200ms和50ms,那么在设置运算任务A、运算任务B和运算任务C的任务优先级列表时,就可以将运算任务A的优先级设置为中、将运算任务B的优先级设置为低、将运算任务C的优先级设置为高。
请参见图5,图5为可编程逻辑控制器在执行运算任务A、运算任务B和运算任务C时的示意图。在图5中,可编程逻辑控制器需要根据任务优先级列表先读取有关运算任务C的输入信号,并根据目标引用列表从其它运算任务中获取有关与运算任务C的共享数据,然后,可编程逻辑控制器执行运算任务C,当可编程逻辑控制器执行完毕运算任务C时,再将运算任务C的配置信息发送至与运算任务C相关的运算任务中,最后,再写运算任务C的输出信号;同理,可编程逻辑控制器再根据任务优先级列表和目标引用列表依次执行运算任务A和运算任务B。
基于上述实施例,本实施例对技术方案作进一步的说明与优化,作为一种优选的实施方式,上述步骤:可编程逻辑控制器根据任务优先级列表和目标引用列表对IEC61131-3多运算任务中的各个运算任务进行调控的过程,包括:
根据任务优先级列表中各个运算任务的优先级以及目标引用列表依次执行IEC61131-3多运算任务中的各个运算任务,直至完成IEC61131-3多运算任务。
在本实施例中,可编程逻辑控制器在执行IEC61131-3多运算任务的过程中,需要对组态软件所发送的任务优先级列表进行解析,确定出IEC61131-3多运算任务中各个运算任务的优先级,并根据目标引用列表判断出哪些运算任务需要调用其它运算任务中的数据;之后,可编程逻辑控制器再根据任务优先级列表和目标引用列表依次向IEC61131-3多运算任务中各个运算任务发送相应的调度指令,直至将IEC61131-3多运算任务中的各个运算任务完成。
作为一种优选的实施方式,上述步骤:根据任务优先级列表中各个运算任务的优先级以及目标引用列表依次执行IEC61131-3多运算任务中的各个运算任务的过程,包括:
在可编程逻辑控制器执行第一运算任务的过程中,根据任务优先级列表判断当前时刻是否存在任务优先级比第一运算任务更高的第二运算任务;
若不存在,则继续执行第一运算任务;
若存在,则中断第一运算任务,并执行第二运算任务。
在可编程逻辑控制器根据任务优先级列表以及目标引用列表执行IEC61131-3多运算任务时,如果可编程逻辑控制器在执行第一运算任务的过程中,根据任务优先级列表判断出当前时刻还存在任务优先级比第一运算任务更高的第二运算任务,那么可编程逻辑控制器就可以先中断第一运算任务,并执行第二运算任务;如果可编程逻辑控制器在执行第一运算任务的过程中,根据任务优先级列表判断出当前时刻不存在比第一运算任务更高的运算任务,那么可编程逻辑控制器就可以继续执行第一运算任务,并在第一运算任务执行完毕之后,再去根据任务优先级列表和目标引用列表去执行比第一运算任务优先级低的运算任务。
此处还是以运算任务A的优先级为中、运算任务B的优先级为低、运算任务C的优先级为高进行举例说明。请参见图6,图6为可编程逻辑控制器在执行运算任务A、运算任务B和运算任务C时的资源占用示意图。正如图6所示,因为运算任务C的优先级最高,所以,可编程逻辑控制器在执行运算任务C时可以抢占运算任务B和运算任务A的资源,这样就可以保证运算任务C的执行逻辑不会因为运算任务A和运算任务B发生阻塞,而且,也可以保证可编程逻辑控制器在执行运算任务的期间不会出现CPU负荷特别高和特别低的情形。
显然,通过本实施例所提供的技术方案,就可以保证优先级更高的运算任务不会因为IEC61131-3多运算任务中其它运算任务的执行而出现执行程序发生阻塞的现象。
作为一种优选的实施方式,上述多任务执行方法还包括:
预先为IEC61131-3多运算任务中的各个运算任务设置相互独立的代码区和数据区。
在本实施例中,还可以预先为IEC61131-3多运算任务中的各个运算任务设置相互独立的代码区和数据区。其中,代码区用于存储运算任务的执行代码,数据区用于存储运算任务在执行运算任务过程中的相关数据信息。
能够想到的是,当为IEC61131-3多运算任务中的各个运算任务设置了相互独立的代码区和数据区之后,各个运算任务之间就不会存在函数调用关系和变量交互关系,这样就可以有效提高可编程逻辑控制器在执行IEC61131-3多运算任务时的安全性与可靠性。并且,通过此种设置方式也可以使得各个运算任务在执行运算任务的过程中能够更为有效、有序地根据目标引用列表去其它运算任务的数据区去调用与自身运算任务相关的数据信息,由此就可以进一步提高可编程逻辑控制器在执行IEC61131-3多运算任务时的任务执行效率。
作为一种优选的实施方式,上述多任务执行方法还包括:
当可编程逻辑控制器执行完毕第一运算任务时,则根据目标引用列表判断IEC61131-3多运算任务中是否存在与第一运算任务具有数据调用关系的目标运算任务;
若存在,则将第一运算任务的目标配置信息发送至与目标运算任务相对应的数据区。
在可编程逻辑控制器在执行IEC61131-3多运算任务的过程中,如果可编程逻辑控制器根据任务优先级列表执行完毕第一运算任务,并且,可编程逻辑控制器根据目标引用列表判断出IEC61131-3多运算任务中还存在与第一运算任务之间具有数据调用关系的目标运算任务,那么可编程逻辑控制器就可以直接将第一运算任务的目标配置信息发送至与目标运算任务相对应的数据区,这样就可以保证可编程逻辑控制器在执行IEC61131-3多运算任务时的数据一致性。
基于上述实施例,本实施例对技术方案作进一步的说明与优化,作为一种优选的实施方式,上述多任务执行方法还包括:
若可编程逻辑控制器在执行IEC61131-3多运算任务中出现异常运行信息,则对异常运行信息进行存储。
可以理解的是,可编程逻辑控制器在执行IEC61131-3多运算任务的过程中,不可避免地会出现宕机、中断或者运行报错等异常现象,所以,为了工作人员可以更为快速地对可编程逻辑控制器在执行IEC61131-3多运算任务时所出现的异常现象进行定位与维修,还可以对可编程逻辑控制器在执行IEC61131-3多运算任务时所出现的异常运行信息进行存储。
能够想到的是,通过这样的设置方式,就可以方便工作人员对可编程逻辑控制器在执行IEC61131-3多运算任务时所出现的异常现象进行追踪与溯源,由此就可以进一步提高工作人员在对异常现象进行处理维修时的维修处理效率。
请参见图7,图7为本发明实施例所提供的一种多任务执行装置的结构图,该装置包括:
线程设置模块21,用于预先为IEC61131-3多运算任务中的各个运算任务设置相互独立的线程;
列表设置模块22,用于为IEC61131-3多运算任务中的各个运算任务设置任务优先级列表,并根据各个运算任务的数据调用关系设置目标引用列表;
任务调控模块23,用于将任务优先级列表和目标引用列表发送至可编程逻辑控制器,以使可编程逻辑控制器根据任务优先级列表和目标引用列表对IEC61131-3多运算任务中的各个运算任务进行调控。
本发明实施例所提供的一种多任务执行装置,具有前述所公开的一种多任务执行方法所具有的有益效果。
请参见图8,图8为本发明实施例所提供的一种多任务执行设备的结构图,该设备包括:
存储器31,用于存储计算机程序;
处理器32,用于执行计算机程序时实现如前述所公开的一种多任务执行方法的步骤。
本发明实施例所提供的一种多任务执行设备,具有前述所公开的一种多任务执行方法所具有的有益效果。
相应的,本发明实施例还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述所公开的一种多任务执行方法的步骤。
本发明实施例所提供的一种计算机可读存储介质,具有前述所公开的一种多任务执行方法所具有的有益效果。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种多任务执行方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种多任务执行方法,其特征在于,包括:
预先为IEC61131-3多运算任务中的各个运算任务设置相互独立的线程;
为所述IEC61131-3多运算任务中的各个运算任务设置任务优先级列表,并根据各个运算任务的数据调用关系设置目标引用列表;
将所述任务优先级列表和所述目标引用列表发送至可编程逻辑控制器,以使所述可编程逻辑控制器根据所述任务优先级列表和所述目标引用列表对所述IEC61131-3多运算任务中的各个运算任务进行调控。
2.根据权利要求1所述的一种多任务执行方法,其特征在于,所述为所述IEC61131-3多运算任务中的各个运算任务设置任务优先级列表的过程,包括:
根据所述IEC61131-3多运算任务中各个运算任务的任务执行周期设置所述任务优先级列表。
3.根据权利要求1所述的一种多任务执行方法,其特征在于,所述可编程逻辑控制器根据所述任务优先级列表和所述目标引用列表对所述IEC61131-3多运算任务中的各个运算任务进行调控的过程,包括:
根据所述任务优先级列表中各个运算任务的优先级以及所述目标引用列表依次执行所述IEC61131-3多运算任务中的各个运算任务,直至完成所述IEC61131-3多运算任务。
4.根据权利要求3所述的一种多任务执行方法,其特征在于,所述根据所述任务优先级列表中各个运算任务的优先级以及所述目标引用列表依次执行所述IEC61131-3多运算任务中的各个运算任务的过程,包括:
在所述可编程逻辑控制器执行第一运算任务的过程中,根据所述任务优先级列表判断当前时刻是否存在任务优先级比所述第一运算任务更高的第二运算任务;
若不存在,则继续执行所述第一运算任务;
若存在,则中断所述第一运算任务,并执行所述第二运算任务。
5.根据权利要求4所述的一种多任务执行方法,其特征在于,还包括:
预先为所述IEC61131-3多运算任务中的各个运算任务设置相互独立的代码区和数据区。
6.根据权利要求5所述的一种多任务执行方法,其特征在于,还包括:
当所述可编程逻辑控制器执行完毕所述第一运算任务时,则根据所述目标引用列表判断所述IEC61131-3多运算任务中是否存在与所述第一运算任务具有数据调用关系的目标运算任务;
若存在,则将所述第一运算任务的目标配置信息发送至与所述目标运算任务相对应的数据区。
7.根据权利要求1至6任一项所述的一种多任务执行方法,其特征在于,还包括:
若所述可编程逻辑控制器在执行所述IEC61131-3多运算任务中出现异常运行信息,则对所述异常运行信息进行存储。
8.一种多任务执行装置,其特征在于,包括:
线程设置模块,用于预先为IEC61131-3多运算任务中的各个运算任务设置相互独立的线程;
列表设置模块,用于为所述IEC61131-3多运算任务中的各个运算任务设置任务优先级列表,并根据各个运算任务的数据调用关系设置目标引用列表;
任务调控模块,用于将所述任务优先级列表和所述目标引用列表发送至可编程逻辑控制器,以使所述可编程逻辑控制器根据所述任务优先级列表和所述目标引用列表对所述IEC61131-3多运算任务中的各个运算任务进行调控。
9.一种多任务执行设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的一种多任务执行方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的一种多任务执行方法的步骤。
CN202210669047.1A 2022-06-14 2022-06-14 一种多任务执行方法、装置、设备及介质 Pending CN115061793A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210669047.1A CN115061793A (zh) 2022-06-14 2022-06-14 一种多任务执行方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210669047.1A CN115061793A (zh) 2022-06-14 2022-06-14 一种多任务执行方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN115061793A true CN115061793A (zh) 2022-09-16

Family

ID=83199447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210669047.1A Pending CN115061793A (zh) 2022-06-14 2022-06-14 一种多任务执行方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN115061793A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116760659A (zh) * 2023-08-11 2023-09-15 浙江国利信安科技有限公司 可编程逻辑控制器及其数据通信方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116760659A (zh) * 2023-08-11 2023-09-15 浙江国利信安科技有限公司 可编程逻辑控制器及其数据通信方法
CN116760659B (zh) * 2023-08-11 2023-11-14 浙江国利信安科技有限公司 可编程逻辑控制器及其数据通信方法

Similar Documents

Publication Publication Date Title
CN106557369B (zh) 一种多线程的管理方法及系统
EP2677377B1 (en) Safety control device and safety control method
Stewart et al. Real-time scheduling of sensor-based control systems
JP6406466B1 (ja) 制御装置、制御方法および制御プログラム
CN110231781B (zh) 控制装置、存储介质、控制方法
CN115061793A (zh) 一种多任务执行方法、装置、设备及介质
CN113032152A (zh) 用于深度学习框架的调度方法、调度装置、电子设备、存储介质和程序产品
US9824229B2 (en) Controller with enhanced reliability
JP5621857B2 (ja) 安全制御装置および安全制御方法
CN112558553B (zh) 一种多通道数控系统的通道命令的执行方法及系统
US8495582B2 (en) Method for carrying out online program changes on an automation system
JP2011192166A (ja) タスクスケジュール装置及びタスクスケジュール方法
CN114461353A (zh) 调整线程优先级的方法、终端及计算机可读存储介质
CN111626547A (zh) 一种无纸化作业方法和装置
CN113886196B (zh) 片上功耗管理方法、电子设备及存储介质
CN114706663A (zh) 一种计算资源调度方法、介质及计算设备
CN114035926A (zh) 应用线程调度方法、装置、存储介质及电子设备
CN114310879A (zh) 一种机器人控制方法、控制柜及系统
JP2004070582A (ja) イベント通知タスク制御処理方式及び方法並びにプログラム
JP5452427B2 (ja) マルチオペレーティングシステム計算機、マルチオペレーティングシステム管理方法およびマルチオペレーティングシステム管理プログラム
US20230409001A1 (en) Method and device for controlling the sequence of program parts, programming method, programming device
CN114212096B (zh) 自动驾驶车辆控制延时处理方法及装置
US20240255922A1 (en) Control device and control method
CN113687621B (zh) 基于时序告警信息的告警抑制方法和系统、设备及存储介质
JPS63300326A (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