广告招募

当前位置:亚洲制造网 > 技术中心 > 所有分类

软PLC任务线程的调度

2025年08月05日 13:06:03      来源:东莞市宇匠数控设备有限公司 >> 进入该公司展台      阅读量:10

分享:

 3. 3软PLC任务线程的调度

3. 3. 1多线程

多线程程序是指在一个进程中同时运行多个线程,每个线程完成不同的任 务。采用多线程编程可充分利用进程中的共享资源、减少进程切换所需的资源切 换、从而大幅提升CPU的使用效率,多用于需要花大量时间处理以及处理大量 10数据等耗时的应用程序。

PLC运行系统主要是对I/O输入输出影响区的数据进行处理,采用多线 程编程可提升控制系统的性能,因此在程序启动后主线程会为每个任务创建对应 的线程。然而通用PC机只有一个CPU,每一时刻只能执行一个任务线程,多个 线程之间通过快速地进行切换来实现运行。因此要实现软PLC运行系统多任务 的并行运行就必须对任务线程进行调度,确保每个任务顺序执行。下面在介绍操 作系统调度原理的基础上给出本软PLC系统的调度方法。

3. 3. 2线程调度原理

线程是操作系统的最小调度单位。对于通用PC机而言,计算机操作系统以 轮转方式向每个任务线程提供运行时间片,利用“中断”机制对线程的运行状态 进行切换,从而确保每个任务线程都能得到CPU时间片而被执行。

3. 3. 3PLC运行系统任务线程的调度

PLC运行系统需要对系统管理任务、通信任务、程序执行任务以及I/O 读写任务进行调度。通信任务包括软PLCHMI进程的通讯任务、软PLC与软 CNC的通讯任务,I/O读写任务包括I/O读任务和I/O写任务。每个任务线程对 应就绪、运行、终止和阻塞四种状态,因此对软PLC运行系统多个任务的调度 可通过改变任务线程的状态来实现。本文结合以下两种方式对任务线程进行调 度。

                 直接调度

直接调度按任务执行的先后顺序设定任务线程的优先级进行调度,使任务线 程队列中的优先级的任务优先获得CPU时间片而被操作系统调用执行。

RTX实时子系统提供了 128个线程优先级,其系统内核按照优先级从高到 低的顺序安排任务线程占有CPU资源。由于采用抢占式调度算法,所以RTX允 许高优先级的任务打断正在运行的低优先级任务线程,以此抢占对CPU的控制 权,这非常方便我们对软PLC运行系统的每个任务线程进行调度和管理。

在软PLC运行系统的设计过程中,系统任务管理线程负责软PLC运行系统 所有任务的调度,不应被软PLC系统中的其它任务线程所打断,因此设置为优先级。通讯任务线程和I/O读写任务线程用于提供操作数和指令,是执行用 户程序的先决条件,所以设置为第二优先级。程序执行任务设置为第三优先级, 其中快速执行任务线程的优先级高于普通执行任务线程。

                 间接调度

间接调度采用同步对象进行调度,利用多个任务为争夺同一临界资源引起的 互斥来协调多任务的运行。也就是说只有获得同步对象句柄的任务线程才能被执行,对共享资源进行操作,未获得的任务线程只能等待同步对象被释放。

RTX提供四种同步对象信号量对象Semaphore事件对象Event互斥体 X寸象Mutex和共享内存对象SharedMemory其中事件对象Event具有使用简单、 易于实现多个任务的同步运行等优点所以软PLC运行系统为每个任务创建了 相应的事件对象利用RtWaitForSingleObjectG等待单个事件对象的信号状 以及函数RtWaitForSingleObjects等待多个事件对象的信号状态。当等待时 间达到设定值时,改变当前执行线程的状态,转去执行获得同步事件对象句柄的 任务线程,执行完返回当前任务线程继续执行;若设定的等待时间为INFINITE, 则当前任务线程一直等待同步事件对象句柄。这使程序运行过程中只有一个任务 线程能够操作数据共享区,从而保证数据访问的安全性。

PLC运行系统创建的事件对象初始时都处于FALSE(无信号)状态,在事 件被触发后变为有信号状态,事件所对应的任务线程获得临界区资源被执行,然 后利用RtResetEventG函数重置为无信号状态,让软PLC运行系统触发其它事件 对象,以此协调多任务的运行。软PLC任务线程的调度过程如图3.8所示。

 

本文采摘自“五轴数控加工中心软PLC控制系统的研究”,因为编辑困难导致有些函数、表格、图片、内容无法显示,有需要者可以在网络中查找相关文章!本文由伯特利数控整理发表文章均来自网络仅供学习参考,转载请注明!

版权与免责声明:
1.凡本网注明"来源:亚洲制造网"的所有作品,版权均属于亚洲制造网,转载请必须注明亚洲制造网。违反者本网将追究相关法律责任。
2.企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
3.本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。 4.如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系。