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