3.1.2系统管理模决
系统管理模块是软PLC运行系统的核心,负责相关的全局数据的处理以及运行系统资源的管理,并对任务执行模块和I/O模块进行管理调度。在软PLC中,系统管理模块是一个利用RTX提供的定时器功能在RTSS环境中创建的定时器线程,定时周期为5ms。如图3所示,为系统管理模块的工作流程。
图3系统管理模块的流程图 图4软PLC运行系统工作流程图
系统管理模块在每个周期的开始,先将计数器TimeCount++,处理运行系统内部相关数据。接着系统管理模块启动IO模块,并等待IO读写完毕。等IO读写结束后,系统管理模块就会启动高速任务执行块。如果TimeCount为4的整数倍(亦即每20ms)则还会启动普通任务执行模块。
3.1.3 I/O模块
I/O模块同样是软PLG中必不可少的一部分,主要负责输人输出的刷新以及与CNC之间的通信。I/O模块也是一个独立的普通线程,由系统管理模块调度,每5ms执行一次。I/O模块的工作内容主要有两部分。一方面I/O模块与CNC之间进行通信,读取来自CNC的输入并将相关输出传送给CNC。它们之间的通信主要通过RTX提供的共享内存来实现,在共享内存中定义了软PLC与CNC之间的数据接口,并且通过互斥体来保证数据访问的安全。另一方面,I/O模块对机床输入输出信号进行刷新,这主要通过IO板卡,以及串口通信等来实现。
如图4所示,给出了设计中软PLC运行系统的工作流程。运行系统启动后,首先进行系统的初始化,申请数据存储区和程序存储区,并载人PLC用户程序。接着系统创建系统管理线程、任务执行线程和IO线程,建立软PLC的运行环境。之后,运行系统进入运行状态,系统管理线程调度执行其他线程,管理整个系统的运行,完成控制功能。最后等运行结束,系统注销个线程,释放资源,软PLC退出运行。
3.2软PLC多任务系统的同步与通信
软PLC运行系统的四个模块构成软PLC运行系统的任务系统,采用四个独立线程分别实现这些任务,并利用多线程技术实现多任务的并行处理。这种设计能够有效地利用系统资源,提高运行系统的性能但为了能够正常准确的完成控制功能,这些任务线程之间又需要同步和通信。如何使它们进行良好的交流与合作,是运行系统的设计中重要的一部分。
在设计中,采用了RTX提供的线程优头级设定和IPC对象两种方式实现线程的同步与通信。四个任务线程设定的优先级为:系统管理模块因为负责各模块的调度执行拥有最高优先级(MAX),因为需要及时获取外部输人以及对外输出,I/O模块被设定为第二优先级(MAX-1),高速任务执行模块(MAX-2)和普通任务执行模块(MAX-3)的优先级依次递减。在IPC对象进行线程的同步与通信方式中,主要用到了7个IPC对象,如表1所示。通过各线程的优先级以及线程之间的IPC对象,软PLC运行系统各个任务线程之间以及软PLC与CNC之间就可以有条不紊的运行,实现对数控机床的控制。
表1软PLC运行系统IPC对象