0 引 言
目前开放式数控系统通常采用两个处理器:主控制器和DSP(数字信号处理器)。主控制器负责接受用户的数据输入,显示状态,系统管理功能等,一般用工控机(IPC)作主控制器,也可称为主机。DSP负责运动信号和伺服数据处理,可以是各种运动控制器。为了解决主处理器与DSP之间的通讯问题,数控系统采用了双端RAM,用于实现DSP与主控制处理器之间的高速重复不需握手的数据通信。
双端RAM,具有两套独立的地址、数据线及读/写控制线,它的控制逻辑与存储器集成在一片大规模集成电路内,实现了真正的双端口异步操作,可与多种CPU 接口,使得电路设计简化,集成度提高,数据交换更加快速、可靠。双端RAM 是一种特殊存贮器,其主要特点为:
1)能在两个CPU 之间建立数据通道。双端RAM 拥有两套互相独立的数据、地址和读/写控制总线,可分别与两个不同的CPU 相连,只要不同时操作同一存贮单元,两侧CPU就能互不相干地对其中任一单元进行读/写操作。
2)可作为CPU 外部RAM 使用,即每个CPU 都把双端RAM 作为自己的外部存贮器用。主控制器写入双端RAM中的数据可随时被DSP 读出,同样DSP 写入双端口RAM中数据也能随时被主控制器读出。
3)双端RAM 用于CPU 之间数据交换时,常采用中断方式或令牌方式。中断工作方式在传输数据时需发出中断请求,得到CPU 响应后,硬件发出中断向量,并打断原程序运行,转向执行数据传输中断服务程序。令牌工作方式约定只有得到令牌的一方才能传输数据。一旦令牌被两个CPU 中的一个得到,则另一个CPU 只能等到它用完再传输。
数控系统运行时主控制器将运动命令写入双端RAM,DSP 读取后执行,同时主控制器也从双端RAM 中读出DSP存放的运行状况反馈信息。双端RAM 是一个插在IPC 总线上的独立芯片,与DSP 用电缆连接。双端RAM 可用作快速从DSP 中读出或向DSP 写入数据和命令。
本系统向DSP 写入的典型用法是实时重复下载位置数据和循环程序信息。从DSP 中读出的典型用法是重复得到状态信息。对于本文采用的DSP 支持一些自动功能。自动功能包括DSP 可以自动或由PLC 程序将电机状态、位置、速度及错误信息等连续上载写入双端RAM 中。
1 双端RAM的地址分布
双端RAM在主机端和DSP 内存地址分布是不同的。本文采用了8K X 16bit 的双端RAM。对于DSP,一个字是16 位,双字为32 位,将双端RAM 按双字(32 位)取址,双端RAM 仅被认为是出现在地址空间$ D000 到$DFFF 上的一段多余内存。内存大小为4k 的双字(32位),或8k的单字(16 位)。每个单元的前16 位为该单元的Y分量,后16位为X 分量。DSP 将内存空间$ D000 到$D1FF保留作固定用途,$D200 到$ DFFF 范围内存开放为一般用途。对于主机端,双端RAM 为8k X 16 位的内存。由于大多数计算机按字节取址,这将要求16k的地址空间,即在主机总线上14 位(214 = 16k)。
双端RAM在DSP和主机之间的地址换算可用下式计算:
主机地址=主机起始地址+ 4*(DSP 地址- $D000)+偏移量
其中若要得到Y分量,偏移量=0;若要得到X 分量,偏移量=2。
在本系统中,主机的起始地址为$ 1FC000。反过来,可得到:
DSP地址=0.25*(主机地址-主机起始地址)+$D000
用C 语言写主机程序来读1 号电机的实际位置,可以利用DSP的自动功能将这些数据放在双端RAM的指定位置上。然后,主机程序就可以读取地址$D200的数据,重新装配位置信息以便C语言可以使用。$D200在IPC内存地址由上面的公式容易得到:
十六进制( $D200-$D000)*4+$D4000=$D4800
2 数控软件的设计
设计友好的用户界面是数控系统工业运行不可忽视的重要因素。由于操作者已习惯传统数控系统操作面板及相关术语和指令系统,故基于方便终端用户使用的考虑,在开发本数控软件时,必须将其在工作原理方面的特点隐藏在系统内部,而使提供给用户或需要用户处理的信息尽可能与传统数控系统一致。这些信息通常包括操作面板的显示、数据程序代码和坐标定义等。用户界面的开发主要工作集中在双端RAM 的通信功能,通信程序是利用Delta Tau公司提供的Pcomm32 动态连接库和PTALKDT 控件编制的。Pcomm32囊括了主控制器同DSP 通信的所有方式,而且将其主要函数进行分类、封装,最终形成ActiveX 控件- PTALKDT。利用Visual C + + 开发应用软件中嵌入PTALKDT,可以制作出友好的用户界面。所制作的用户界面采用模块化设计,包括手工编程模块、程序下载模块、参数设置模块、手动调整模块和自动加工模块及其它辅助功能模块。
1)手动编程模块
VC 中的MFC 提供一个文本编辑类CeditView,利用它几乎不用编写什么代码,便能生成一个类似NotePad 的文本编辑器,虽然它没有Word 的文字处理功能强大,但用来编辑NC 代码已经足够。在编辑窗口完成NC 代码所有编辑操作,可以进行语法检查,将检查结果以对话框的形式告诉操作者语法错误信息。
2)程序下载模块
经过语法检查、格式转换的NC代码程序可以下载到双端RAM二进制循环程序缓冲区中,将ASCII码转换为二进制形式,然后由双端RAM送到DSP的循环运动程序缓冲区。循环运动程序缓冲区允许在程序执行期间对程序行进行下载,并覆盖已经被执行的程序行。这就能够连续执行比DSP的存储空间大的程序,并且实时下载程序行。下载程序流程图见图1。
图1 下载程序流程图
3)参数设置模块
参数设置模块完成并联机床一些加工工艺参数的调整设置工作并对运动控制器进行相应的设置。为防止非专业人员修改参数,在进入参数设置模块前提示输入密码。参数设置包括部分:控制参数、位置参数、系统参数、刀具参数。控制参数主要是对运动控制器中PID调节进行设置。位置参数设定工件坐标系、机床坐标系的相对位置及参考点位置等。系统参数是主要机床加工工艺上的参数定义。刀具参数是选择刀具的型号,尺寸。该模块把输入的参数存至双端RAM特定的内存地址上。
4)手动调整模块
手动调整模块与操作面板相似,可以对单个轴进行点动、回零控制,还可以在单轴运动过程中开关主轴、冷却液及刀具,并可对主轴和进给转速进行修调。在单轴运动过程中将所选轴的位置信息实时显示出来。手动调整界面见图2。
图2 手动调整界面
5)自动加工模块
程序下载后就可选择自动加工命令,它向DSP发出命令执行程序缓冲区中的程序,同时将界面按显示方式切换为自动加工的页面。可以按三种坐标方式,两种字体方式选择显示方式,通过对话框选择。自动加工模块在加工过程中从双端RAM中实时取得坐标位置、电机转速并将其同步显示出来。选择大字符时,仅在页面上显示坐标位置和电机转速,选择小字符时,还会将运行程序和正在执行的程序行显示出来。坐标方式分机床坐标、工件坐标和杆件坐标三种。坐标位置会根据所选方式进行坐标变换和运动学变换,然后在页面上显示出来。
3 结 论
数控软件运用现成的NC 程序,对应用推广有现实意义。将原理方面的特点隐藏在系统内部,提供给用户处理的信息与传统数控系统一致,使操作容易,为数控系统的工业运行提供了必要条件。用户界面实现模块化设计,便于以后功能扩展。
(审核编辑: 智汇胡妮)