摘要:为了检测机床刀具的三维位移、实时显示刀具的进刀量,提高工件的加工精度,研究并设计了一种基于光栅位移传感器的高精度三维光栅位移测量系统。分析了光栅位移传感器的测量原理,详细介绍了系统的软件设计与实现,并对系统进行了实验验证。实验结果表明:系统的软件设计合理、执行高效,实现了相关的功能;测量系统运行稳定、测量精准,可满足机床高精度测量的生产需求。
关键词:位移传感器;三维光栅;位移测量系统;软件设计
0 引言
当前,光栅位移传感器(光栅尺)的位移测量技术广泛应用于数控机床的伺服系统和传统机床的数字化改造,以提高加工精度。光栅位移测量系统的设计方案各不相同,其软件设计及功能也各不相同[1-5]。
文中先分析了光栅位移的测量原理,随后给出三维光栅位移测量系统的设计构架,详细介绍了系统软件的功能及其设计与实现。最后,通过实验验证了系统的软件设计合理、实现了相关的功能,整个系统运行稳定、测量精确。
1 光栅位移传感器测量原理
光栅位移传感器内包含了1个标尺光栅和1个指示光栅,在两光栅的作用,得到明暗相间的条纹,即莫尔条纹[6-8]。在理想条件下,莫尔条纹的波形为等腰三角波,其周期为莫尔条纹间距[6];实际情况下,由于光源发散角的影响,及光栅衍射作用等,使莫尔条纹的三角波出现削顶和削底,形成近似的正弦波。
对实际情况下的莫尔条纹信号,因其波形近似于正弦波,基波成分丰富,谐波成分很少。以f(t)表示此正弦波的光通量,在消除信号中的高次谐波和直流分量后,则有:
f(t)=Asin(ωt+φ)
(1)
写成电压形式,得:
U(t)=Umsin(ωt+φ)
(2)
式(2)即为光栅位移传感器中1个光电元件输出的位移信号表达式。
在相距为1/4莫尔条纹间距的2个点分别安放1个光电元件,每当标尺光栅移动1个栅距,将获得1个周期、相差90°的2路正弦信号,形如式(2)表示。此信号经过放大、整形后,输出1个周期、相差90°的2路方波信号。通过记录这2路方波脉冲的个数即可测量出位移的大小,利用其相位关系可检测出标尺光栅的移动方向[9]。
2 系统软件设计与实现
系统使用的光栅尺是KA300-470。当其正常工作时,将输出A、B两路相差90°、TTL电平的方波信号(标尺光栅正移,A超前B 90°;标尺光栅反移,B超前A 90°),如图1所示。三维光栅位移测量系统的框图如图2所示。
该系统的硬件主要包括细分辨向电路[6]、单片机主控单元、显示控制单元。X、Y、Z3个坐标轴的光栅位移信号通过对应的细分辨向电路后,分别输入到3个单片机X、Y、Z进行处理,计算位移,并送显示电路显示。为了对系统进行必要的操控,设计了由单片机X、Y、Z共用的控制电路,它可以依次设定各坐标轴位移的初值等其它的操控。
(a)标尺光栅正向移动
(b)标尺光栅反向移动
图1 两路相差90°、TTL电平的方波信号
图2 三维光栅位移测量系统框图
单片机M和单片机X、Y、Z组成一个主从式单片机多机通信系统[10],M为主机,X、Y、Z为从机。主机M依次和3个从机进行通信,以提取各个坐标轴的位移值,再统一上传到上位机,进行相关的处理。单片机的选型为STC12C5A60S2,其具有双串口。主机的串口1用于多机通信,串口2则与上位机通信。从机使用串口1与主机通信。
系统的软件分为主机的软件及从机的软件。主机软件主要包括主机初始化、主机的多机通信程序及主机和上位机的通信程序;从机软件则有位移计算程序、显示程序、控制程序及多机通信系统的从机程序等。软件的开发环境为Keil μVision4。
2.1 主机软件设计与实现
主机功能主要是主机M依次和3个从机(X、Y、Z)通信,令从机将其采集到的位移上传主机,主机再将其得到三维位移值上传上位机。
2.1.1 主机的主程序设计与实现
主机主程序主要包括的模块有主机初始化、主机的多机通信及主机与上位机的通信。主机主程序流程如图3所示。
图3 主机主程序流程
主机初始化主要包括串口1、串口2及看门狗定时器等初始化。串口1用于多机通信,工作在方式3(9位异步通信方式),使用定时器T1做为其波特率发生器,并设置T1工作在方式2(8位自动重载模式),使串口1的波特率为57 600。串口2则与上位机通信,工作在方式1(8位异步通信方式),使用独立波特率发生器(BRT)做为其波特率发生器,使串口2的波特率同样设为57 600。使用看门狗定时器是为了防止程序跑飞而导致系统异常,看门狗定时器设置预分频值为128,溢出时间约为2.3 s(系统频率为22.118 4 MHz)。主机与上位机间的通信,其实现较简单。下一节详细给出了主机的多机通信程序的设计与实现。
2.1.2 主机的多机通信程序设计与实现
在系统中,主机的多机通信程序工作的主要过程为:主机向通过从机地址呼叫从机,与呼叫地址相符的从机作出回应后,建立通信链接;主机向该从机发出接收数据指令(从机发送数据,主机接收),令从机把其检测到的位移传给主机;从机收到指令经确认后,进行发送数据。表1为自定义的主机通信指令码。
表1 主机指令编码
主机M和从机X、Y、Z通信,设定其通信协议如下:
(1)主机和从机的接收或发送数据的缓冲区等长,均为8字节。
(2)从机初始化使所有从机的SM2位置1,让其处于接收地址帧的状态。开始通信时,主机通过从机地址呼叫从机。
(3)从机接到地址帧后,进入串行通信中断服务程序,各从机将接收到的地址和本从机的地址比较,对于地址相符的从机,在其中断服务程序中使SM2位清零,以接收主机随后发来的任意信息(包括地址帧和数据帧);对于地址不符的从机,仍然保持SM2位为1,使其对主机随后发来的数据帧信息不予理睬(即直接丢弃),直到再次接收到地址帧而进行地址比较。
(4)若主机向从机发送数据,从机在前一步中比较地址相符后,从机的SM2位清零,同时把本从机的地址回传给主机,作出应答后才能接收主机发来的数据。其它从机继续监听地址(SM2=1),无法收到数据。
(5)主机收到从机的应答地址后,确认地址是否相符。如果地址不符,则发送复位指令(地址帧:0xFF);如果地址相符,主机发送相应的收发指令。
(6)主机或从机收发数据时,数据传输完成后,需发送一帧传输数据的校验和,让接收端根据校验和检验所接收的数据是否正确。
(7)主机接收完数据后,将接收数据的校验和与从机发来的校验和比较,若接这两个校验和不符,回传主机接收错误信息0xFF,令从机重发数据;若校验和相符,回传主机接收正确信息0x00,以完成数据传输,并令从机复位(重新等待地址帧)。
(8)从机接收完数据后,将接收数据的校验和与主机发来的校验和比较,若接这两个校验和不符,回传从机接收错误信息0xFF,令主机重发数据;若校验和相符,回传从机正确接收信息0x00,以完成数据传输。
(9)若从机收到复位指令,则回到监听地址状态(SM2=1),否则开始接收数据或指令。
根据自定义的指令和设定通信协议,实现了主机的多机通信程序功能。其程序流程如图4所示。
图4 主机多机通信程序流程
2.2 从机软件设计与实现
从机主要功能包括:对位移脉冲计数并计算出位移,再送显示电路显示;控制程序对控制电路输入的信号进行编码,根据编码实现对从机的相应操控(设置位移初值、设置分辨率、公/英制单位选择、半/直径显示选择);当主机呼叫从机时,与被呼叫相应的从机作出响应,进入串行通信中断程序,把检测到的位移传给主机。
2.2.1 从机的主程序设计与实现
从机的主程序模块主要包括有从机初始化、位移计算程序、显示程序、控制程序及从机的多机通信系统程序。系统3个从机(X、Y、Z)的程序除了所设置的地址编码不同外,其余的都一样。从机的主程序流程如图5所示。
图5 从机主程序流程
从机初始化程序中主要设置单片机的2个定时器(T0、T1)均处于计数模式;串口1工作于方式3,独立波特率发生器(BRT)做为其波特率发生器,波特率设为57 600,SM2位置1。显示驱动芯片ZLG7289B初始化中,点亮所有数码管,以检测显示是否正常。
位移计算程序中,所要显示的位移等于采集到的位移与设定的位移初值(默认为零,可重设)之和,而采集到的位移值为:
s=(t0-t1)×d
(3)
式中:t0、t1分别为定时器T0、T1对位移脉冲的计数值;d为输入到计数器的位移信号的脉冲当量(默认为5 μm)。
显示程序把计算得到的位移数据下载到ZLG7289B芯片,其对数据译码并驱动数码管显示。8位数码管的最高一位显示符号,接下来的7位显示位移值。
在键盘扫描时,若发现设置键按下,则进入设置模式。位移初值设置,可对位移初值进行设置,设置过程中,数码管的其中一位闪烁显示(开始时是最高位闪烁,提示最高位为当前输入位),以提示当前为输入位,当向该位输入数值后,会自动跳到下一位等待输入数值,可通过左移或右移键转到要设置数值的一位。调整系统分辨率,可调整系统测量的分辨率以使其适用于不同分辨率的光栅尺,默认的分辨率为5 μm,可调整为1 μm或0.5 μm.公/英制显示选择,可选择位移以公制或英制为单位显示,默认为公制显示(mm)。半/直径显示选择,可使显示的位移在半径和直径之间切换,默认为半径显示(即位移正常,没有倍乘二)。除初值设置外,其它三种设置都有相应的指示灯指示当前所处的状态。
2.2.2 从机的多机通信程序设计与实现
多机通信的从机部分程序,其功能是响应主机呼叫并上传位移。表2为自定义从机的信息编码。
表2 从机信息编码
根据前文设定的通信协议以及从机的信息编码,从机的多机通信程序设计流程如图6所示。
图6 从机多机通信程序流程
3 实验及结果
依据系统的硬件设计,制作并调试好系统样板;根据系统的软件设计,完成了程序的编写、调试。最后,搭建好整个实验系统进行实验。上位机使用串口调试助手软件接收下位机(主机M)上传的三维光栅位移数据,如图7所示,表3给出了图7中接收到的数据。
图7 上位机接收到的三维光栅位移数据
表3 上位机数据接收表 mm
实验中只使用了一把光栅尺,将其接入到X坐标的输入端进行实验,故实验数据只有X坐标的位移值,另外两坐标的全是零。当光栅尺接入Y或Z坐标时,也可测得相应的位移。图7(或表3)中收到的X轴位移数据并没有连续变化,这是因为下位机延时上传的缘故,以缓解数据通信的压力。实验说明,该系统电路工作正常,软件设计合理、执行高效,整个系统运行稳定、测量精确,实现了三维光栅位移的测量。
4 结束语
在与桂林机床股份有限公司合作的项目中,根据该公司的加工需要,完成了三维光栅位移检测系统的设计。经实验,系统的软件设计合理、执行高效,整个系统运行稳定、测量准确。系统除了测量三维的位移外,还可以直接用于测量一维或二维的位移,也可对其进行一些改动,做成专门用于一维或二维的测量系统。
光栅位移传感器及其位移检测系统在车床、磨床、铣床等各类机床上有着广泛的应用,对提升我国装备制造业水平有着极其重要的作用。