登录  |  注册
河北华利机械配件有限公司

数控系统中手轮信号处理方法

2015/10/9 13:36:14

        前言
        在数控系统中, 刀具微动、工件对刀、工作台的随动、机床原点的修正等这些功能通常是通过手轮操作来实现的, 这一功能给机床操作人员带来了很多方便, 使得手轮在数控机床中应用十分广泛。但手轮在微幅左右摇摆时, 容易产生抖动, 造成输出脉冲不准, 导致机床误动作, 轻则造成加工工件报废, 重则危及到操作者的人身安全, 所以在机床加工过程中,精度及可靠性显得尤其重要。笔者在实际数控系统应用中, 总结、试验了一种结构严谨的手轮信号处理的方法。
        1 手轮工作原理
        手轮又称手摇脉冲发生器, 它实质上是一个增量式编码器, 是一种光电式的位置控制元件。在手轮转动情况下, 光栅盘与旋转轴同速转动, 经过由发光元件组成的检测装置, 将其转过的角度大小转变为含有位置和方向信息的脉冲序列, 在程序控制下能驱动数控机床各轴运动。手轮每旋转一个刻度得到具有一组相位相差90°的A、B信号, 如图2所示。正转时, A相超前B相90°, 反转时, B相超前A相90°。
        2 手轮信号处理
        手轮输出信号处理电路有分立元件、专用芯片、单片机、可编程逻辑器件等很多种实现方法。但对于多轴数控系统而言, 若采用分立元件来完成包括手轮信号在内的一系列编码器信号, 则需要较多的元器件, 导致结构复杂, 功耗增加, 稳定性下降等缺点。目前常采用复杂的可编程逻辑器件CPLD来实现手轮信号鉴相与滤波的功能。它由鉴相、去抖电路、延时电路、16位可逆计数器、输出缓冲器以及数据总线构成。以下针对各部分电路的功能加以叙述。
        2.1 鉴相电路原理鉴相电路的作用是获得手轮的转动方向, 产生计数器的计数方向信号。由手轮工作原理可知, 在每个信号周期内, A信号脉冲和B信号脉冲相差90°, 输出信号如图2所示。手轮方向信息定义为:若A信号脉冲超前B信号脉冲90°, 手轮正方向移动;若A信号脉冲滞后B信号脉冲90°,手轮反方向移动。
        2.2 手轮信号
        鉴相、去抖电路设计为了剔除由于各种干扰因素而导致手轮输出脉冲带有的杂波, 保证输出信号的可靠性和有效性, 在计数器计数之前必须进行去抖处理。一般采用两种方法来改善滤除杂波的能力:一是使用施密特触发器当输入极, 借由施密特触发器对波形整形的能力来滤除杂波;二是利用多级延时的方法来完成滤波功能。同样, 鉴相也可以采用常用的方法:D触发器和门电路来实现。这些方法实现起来比较简单, 但抗干扰能力差。基于以上的分析, 为了更好地实现手轮信号的鉴相与滤波的工作, 本文采用了状态机加标志判别的方法。
        经过在实际工作中的反复试验, 证明使用这种方式来实现手轮的鉴相、去抖工作, 比以往的方法效果要好。从图2可知:旋转一个刻度, 理想的情况是A、B信号组合共有4种状态, 当正转时, BA的状态为:00※01※11※10;当反转时, BA状态为:00※10※11※01。为了叙述方便, 令S1 =00、S2 =01、S4 =11、S3 =10, FP和FN是作为正转和反转对应状态的标志, 当完成从前一状态到下一状态转变后, 相应位置1。若正转或反转连续完成4个状态, 则有1 个脉冲输出, 即Q=1, 并规定正方向旋转时, 方向信号D=1, 反则D=0。
        下面将分项说明手轮信号状态转换图, 并以采用CPLD实现为例, 说明设计过程。
        当前状态为S1时:
        (1)若前一状态为S1, 置正转标志FP=0001,FN=0001, 则Q=0;
        (2)若前一状态为S3, 且FP=1111, 则Q=1,D=1, 手轮正转一个刻度;
        (3)若前一状态为S2, 且FN=1111, 则Q=1,D=0, 手轮反转一个刻度;
        (4)若前一状态为S4, 此状态为无效状态, 重置FP=0001, FN=0001, Q=0, 手轮有干扰信号过来, 不记数。
        当前状态为S2时:
        (1)若前一状态为S4, 且FN=0111, 则置FN=1111, FP清零, 手轮信号完成从S4状态到S2状态的转换, 属于一个周期的中间过程, 手轮刻度未发生变化, Q=0;
        (2)若前一状态为S1, 且FP=0001, 则置FP=0011, FN清零, 手轮信号完成从S1状态到S2状态的转换, 结果同上;
        (3)若前一状态为S3, 此状态为无效状态, 重置FP=0001, FN=0001, Q=0, 手轮有干扰信号过来, 不记数。
        当前状态为S4时:
        (1)若前一状态为S3, 且FN=0011, 则置FN=0111, FP清零, 手轮信号完成从S3状态到S4 状态的转换, 属于一个周期的中间过程, 手轮刻度未发生变化, Q=0;
        (2)若前一状态为S2, 且FP=0011, 则置FP=0111, FN清零, 手轮信号完成从S2状态到S4状态的转换, 属于一个周期的中间过程, 手轮刻度未发生变化, Q=0;
        (3)若前一状态为S1, 此状态为无效状态, 重置FP=0001, FN=0001, Q=0, 手轮有干扰信号过来, 不记数。
        当前状态为S3时:
        (1)若前一状态为S1, 且FN=0001, 则置FN=0011, FP清零, 手轮信号完成从S1状态到S3 状态的转换, 属于一个周期的中间过程, 手轮刻度未发生变化, Q=0;
        (2)若前一状态为S4, 且FP=0111, 则置FP=1111, FN清零, 手轮信号完成从S4状态到S3状态的转换, 属于一个周期的中间过程, 手轮刻度未发生变化, Q=0;
        (3)若前一状态为S2, 此状态为无效状态, 重置FP=0001, FN=0001, Q=0, 手轮有干扰信号过来, 不记数。
        2.3 延时电路
        由可逆计数器工作原理可知, 在计数之前, 要先判别方向, 在此可以用D触发器使手轮脉冲信号比方向滞后一个时钟周期。
        2.4 16位可逆计数器
        16位可逆计数器的作用是记录手轮正反方向的位移脉冲;以鉴相后的方向信号作为正向、反向计数判别, 以经过滤波、延时后的纯净信号为计数脉冲。
        2.5 缓冲器
        输出缓冲器的作用是防止内部信号和外部总线冲突, 保护外部总线。
        3 结束语
        本文在手轮信号处理中引进的状态机的概念, 有效地消除了手轮微幅左右摇摆时引起的信号抖动, 为可逆计数器提供准确的方向信号和计数脉冲, 保证数控系统获得正确的手轮计数值。笔者已使用HDL语言实现了该方法, 并在数控系统中使用, 手轮操作准确, 取得理想的使用效果。该方法还有很强的通用性, 可以用于其它增量式编码器和光栅尺信号的处理。
华利胶木手轮