1 引言
PCL6143是美国NPM公司设计的一款高性能、低成本的专用运动控制器。该器件具有智能化、高柔性等特点。用户通过简单的内部控制指令就能实现直线插补、圆弧插补、梯形加减速和S曲线加减速等控制功能。PCL6143适用于高速数控机床、机器人、纺织包装机械等运动控制领域,是开发运动控制系统设备的良好选择。
2 PCL6143功能结构
PCL6143内部结构框图如图1所示,PCL6143的主要功能如下:
CPU-I/F接口模式:PCL6143内部集成有各种不同接口电路,允许与4种类型的CPU连接,分别是Z80、8086、H8和68000。通过设置IF0、IF1引脚,便于与CPU相连,实现8位或16位数据传输。
加减速驱动:每个轴都能实现线性加减速驱动和S曲线加减速驱动。在S曲线加减速驱动过程中,可插入线性加减速控制。
插补驱动功能:4轴中的任何2轴、3轴或4轴都能实现直线插补,其直线插补的位置精度为+LSB(最小插补单位)。
速度与位置控制功能:在单轴控制过程中,用户可根据需要改变当前被控轴速度;而在线性插补时,则不允许改变速度。当实际位置超过指定位置时,电机将减速停止或立即停止,接着反方向进给。 多个计数器与比较器电路:每个轴都有4个独立的28位计数器和2个比较器电路。每个比较器可实现逻辑计数值与实际目标值相比较。
同步启动/停止功能:多轴控制可采用一个PCL6143或多个PCL6143实现,并通过相关指令控制多个轴同时启停。
操作模式:具有连续、位模式、原点返回、线性插补等基本操作。通过设置操作模式寄存器(RMD)设定各个基本操作,实现位置、方向、速度等控制。
机械输入信号:每个轴有4个机械输入信号,即正负限位信号、减速信号和原点信号。这些信号可通过软件和限位使能信号设置,实现正负方向进给轴的减速运动、减速停止运动以及原点返回。 伺服电机接口信号:伺服电机接口信号包括到位信号、计数器偏差清除信号和报警信号。这些接口信号可由软件编程设置,并通过伺服马达控制位置状态和清除计数器偏差值。当报警信号有效时,各个运动轴立即停止。
中断产生功能:9种错误发生中断,14种事件发生中断。通过中断输出信号控制电机的运动和停止。当外部错误状态发生时,中断产生。通过设置中断发生寄存器(RIRQ),确定输出事件是否中断。
前瞻功能:在处理当前数据时,下一操作数据被提前写入预置寄存器;在当前操作结束时,预置寄存器中的数据立即被送往当前寄存器。
3 主要寄存器及相关系统指令
3.1 主要寄存器
预置寄存器:指令在当前执行过程中,寄存器预先处理接下来的操作指令,PCL6143有11个预置寄存器,能够实现对目标位置、速度状态、速度放大率、加减速率、减速启动、操作模式、主轴进给脉冲数、S曲线加减速范围等各种操作控制。
环境设置寄存器(RENV1、RENV2、RENV3):PCL6143有3个环境设置寄存器。主要用于设置输入/输出端口、指定通用I/O端口、A/B编码器、外部脉冲信号功能以及计数功能、锁存功能和同步启动功能。
数据比较寄存器(RCMP1、RCMP2):PCL6143有2个数据比较寄存器,用于设定比较值的大小,实现比较器1和比较器2的比较。设置范围为:
-1 3421 7728~+1 3421 7 727。
中断寄存器(RIRQ、REST、RIST):中断寄存器为事件中断发生寄存器(RIRQ)、错误中断状态寄存器(REST)和事件中断状态寄存器(RIST)。这些中断寄存器是用于使能事件产生中断、检查错误产生中断和事件产生中断。当中断产生时,寄存器的相应位置为1。
自动计算减速开始寄存器(RSDC):该寄存器用于检查位置操作时自动计算减速开始位置值。
3.2操作指令
设置轴状态控制寄存器(COMB1)实现各个轴的选取。向写控制指令寄存器(COMB0)写入实现启动或停止PCL6143以及改变其输出脉冲的速度。操作指令包含启动指令(直接启动指令、脉冲启动指令、同步启动指令)、速度变化指令以及停止指令(直接停止指令、同步停止指令、急停指令)。
3.3控制指令
PCL6143提供各种控制指令,实现PCL6143的软件复位、计数器复位、计数器偏差清零输出控制、寄存器预置控制、位置启动输入、计数器锁存输入、寄存器控制、通用输出端口控制及通用输出位控制。
4应用电路
4.1运动控制卡的硬件设计
4轴运动控制卡是以PCL6143为核心,选用PC104总线作为运动控制卡与PC机之间的通讯方式。PCL6143的16位数据通过74LS245与PC104总线连接,这样便于实现与各种PC104总线标准的主控制板连接。为提高系统的可靠性、集成化与柔性化,PC104总线的地址译码、数据指令的读写、中断信号以及复位信号都可利用CPLD可编程逻辑器件实现。PC机经过地址译码选中PCL6143片选信号,通过读写信号和数据总线,设置PCL6143内部寄存器,以实现各种运动控制。4轴运动控制卡的硬件框图如图2所示。
PCL6143控制每个轴的方向与脉冲输出信号、通用I/O端口输出信号、正负方向限位信号、减速停止信号、原点信号、伺服报警信号、编码器输入信号及外部手轮正负方向信号等。
PCL6143的方向脉冲输出信号分为正负脉冲方式和脉冲方向方式,方向脉冲输出信号经高速光电耦合器进行信号隔离,最后通过AM26LS31输出差分信号来控制外部电机。通用I/O端口信号由内部寄存器进行输人/输出设置,作为输出使能控制电机驱动器,实现计数器误差清除、报警复位等功能,或作为加减速、位置计数器和比较寄存器状态设置。正负方向限位信号、减速停止信号、原点信号和伺服报警信号通过光电耦合器与内部信号隔离,实现系统保护、电机驱动停止、系统原点确认以及电机驱动异常的控制。A/B相和Z相编码器信号通过高速光电耦合器与内部线路隔离;编码器A/B相检测电机的实际位置,并通过位置计数器增减计数;在原点返回操作模式中,Z相编码器信号用于输入一个标志信号,该信号还能改善原点返回操作精度。外部手轮正负方向信号通过光电耦合器与内部电路隔离,该信号还可通过手动脉冲或外部开关信号产生外部脉冲信号。急停输入信号通过光电耦合器与内部电路隔离,有效时,各个轴立即停止工作。
4.2功能函数库的编写
PCL6143具有灵活强大的控制模块,按照一定的序列操作内部寄存器,实现各种复杂的运动控制功能。为方便用户二次开发,需将一系列内部寄存器的操作序列封装成各个函数,这些函数就构成了运动控制卡的功能函数库。用户通过调用功能函数库中相应的函数就可对PCL6143内部寄存器进行读写操作。
功能函数库编写好后,用Visual C++编程工具编写上层应用软件,与功能函数库链接,开发独立的控制系统。运动控制卡的操作流程如图3所示。
由此可见,功能函数库在控制系统中非常重要。作者采用C语言编写4轴运动控制卡的功能函数库,按功能可分为:
初始化函数:定义PCL6143输入/输出引脚、相关寄存器地址、常用变量和数据结构,设置控制轴数和操作模式。
运动驱动函数:包含独立运动函数和插补驱动函数。独立运动函数用于实现各个独立轴的连续控制、越限控制和回原点等操作;插补驱动函数用于实现4轴中的任意2轴、3轴或4轴的直线插补和圆弧插补;
I/O端口操作函数:包含输入信号的输入函数、输出信号的输出函数以及反馈位置信号的输入函数,用以获取逻辑位置、输入/输出点状态的控制。 加/减速控制函数:包括线性加减速函数和S曲线加减速函数。
中断信号驱动函数:管理内部中断寄存器以及控制外部异常情况。
其他辅助函数:包括位置、状态的查询与设置等相关函数。
需要注意的是,不同的操作模式和运动控制,其寄存器的读写参数也不相同,具体操作步骤也有相应要求。
5 结束语
详细介绍了PCL6143的内部结构、主要寄存器以及相关指令系统,结合实际应用,设计一款4轴运动控制卡,并给出了相关运动库函数,具有实际的应用价值和市场推广前景。