构建开放式数控系统的一个基本原则就是模块化,通过模块化进行系统功能和结构的分解,降低耦合、增强内聚并控制粒度,以提高模块的复用性。很多学者开展了有关这方面的研究工作,我们也在这个领域进行了一些探索,并发表了一些研究成果,围绕模块的接口设计、建模方法、系统配置等问题都进行了探讨和研究。
随着研究的深入,我们认识到除上述内容之外,控制信息在各模块间的传递也是值得研究的问题。本文主要针对数控系统内控制信息的表述及传递的问题,结合自主开发的开放式系统HITCNC进行深入探讨。首先介绍HITCNC系统的组成,然后重点阐述如何利用嵌套式任务单元实现信息的表达与有效传递,最后通过实验加以验证。
1 开放式数控系统HITCNC的模块化构成
我们采用Windows NT+RTX(Real—time exten-sion for Windows)为系统平台,以软件化方式实现运动控制和逻辑控制功能,建立了基于PC机的软件型开放式数控系统HITCNC。它与外部设备之间的数据通讯通过遵循SERCOS协议的SofiSercans通讯卡完成,系统结构如图1所示。
HITCNC是“软件数控”,即CNC功能全部由软件实现,各部分功能被分解到不同的软件模块中。其中人机接口、任务生成器模块是在Windows环境下运行的COM组件;任务协调器、轴组、离散逻辑控制器、轴模块、控制规律模块则是运行于RTX实时环境下的动态链接库。
各模块具体功能如下:
(1)任务协调器进行任务分配,负责系统内各模块的协调与调度。
(2)任务生成器根据一定的语法规则对数控加工程序进行语法检查,完成译码工作,生成包含运动信息的运动段指令和逻辑控制指令,并对运动指令进行刀具补偿。
(3)轴组模块完成加减速处理、插补任务,对译码得到的运动段按照一定的进给速度要求进行细分,得到单个插补周期内的直线段进给量,然后分解并输出给各个轴模块。
(4)轴模块接收来自轴组模块的指令,同时读取外部的反馈信息,根据用户需求选择性地调用伺服控制规律完成位置控制或速度控制等功能,并将控制信息发送给外部执行单元。
(5)控制规律模块负责伺服控制规律的计算,提供多种控制策略。
(6)离散逻辑控制模块负责对外部输入和内部状态变量进行布尔运算得到相应输出和内部状态变量,并对外部输入输出设备进行控制,包括机电设备的启停、刀具的交换等。
2 控制信息的抽象与表达
2.1 任务单元
对数控系统而言,其所要处理的信息主要来自数控加工程序。在本系统中,数控程序经任务生成器处理得到的控制信息(包括运动控制与逻辑控制)采用有限状态机FSM(Finite State Machine)进行描述。这里,将包含控制信息的FSM对象称为任务单元。有限状态机通常采用状态转移图来表示,其构成要素包括状态、转移、事件、动作。简化的任务单元状态转移图参见图2。其中“未初始化、已初始化、运行、停止、结束”表示状态;“初始化、执行、刷新、复位、完成、停止”表示事件;“initialization()、runningAction()、stopAction()、resetAction()”表示动作;当任务单元处于“未初始化”状态,并接收到事件“初始化”时,它会执行动作“initialization()”,并完成由“未初始化”状态向“已初始化”状态的转移。任务单元本身就是一个有限状态机对象。有限状态机的基本概念和软件化实现方法参见文献,这里不再详述。