4 I/O控制器的执行
I/O控制器内部由I/O接口、刀具、主轴、冷却、润滑和辅助操作五个模块组成。每个模块都有其模块内部执行过程, 目的在于完成上下级模块间通信及本模块的任务处理。在构造I/O控制器的时候,可将五个模块在控制器内部循环执行。由于I/O接口在上层,所以循环次序为I/O接口→刀具→主轴→冷却→润滑→辅助操作。每一个循环为控制器的一个执行周期,那么五个模块共同消耗这个执行周期。每个模块在执行时都对自己的执行时间进行统计,设定模块的最大和最小执行时间。I/O控制器在开始时定义五个模块如下:
图4 I/O控制器内部执行流程图
CNC IO MODULE 3 iointf ;
CNC TOOL MODULE 3 tool ;
CNC SPINDLE MODULE 3 spindle ;
CNC COOLANT MODULE 3 coolant ;
CNC AUX MODULE 3 aux ;
CNC LUBE MODULE 3 lube ;
I/O控制器内部的执行过程如图4 所示。由流程图可见:总体来说整个执行过程是一个while 主循环,并且可以通过系统中断信号随时中止循环。同时利用RCS 库提供的RCS TIMER类的对象同步系统时钟,由成员函数RCS TIMER: :wait ( ) 实现这一功能。在每一个采样周期内,规定任务执行结束后可能还有剩余时间,wait () 函数就是保证等到下一采样周期到来时才执行下一个循环操作。比如一个采样周期是100ms ,运行所有控制所需时间是60ms ,那么wait 函数将使进程处于睡眠状态40ms ,之后才继续运行下一循环。
5 结论
基于RCS 设计方法,设计数控系统中的I/O控制器是一种很成功的方法。这样的I/ O 控制器具有如下特点:优点:
1) 层次化、模块化结构设计,使系统易更改,可扩展性好,大大提高了系统的灵活性。
2) 对于不同的I/O板卡等硬件可以使用专门的读写函数,实现底层操作。故使I/O控制器可适用于不同的硬件平台。缺点:
I/O控制器只实现了对I/O的离散控制,因此它只实现了解决开关量的逻辑运算,以及计时、计数等几种有限的功能控制,难以实现复杂的逻辑运算,算术运算,数据处理以及数控机床所需要的许多特殊功能。