什么是编码器/光栅尺
光栅尺,也称为光栅尺位移传感器(光栅尺传感器),是利用光栅的光学原理工作的测量反馈装置。光栅尺经常应用于数控机床的闭环伺服系统中,可用作直线位移或者角位移的检测。其测量输出的信号为数字脉冲,即编码器信号,具有检测范围大,检测精度高,响应速度快的特点。编码器又分为正交编码器和双脉冲编码器,本文使用到的是正交编码器
正交编码器输出两个脉冲信号进行位置或角度测量。该信号可称为信号A(通道A)和信号B(通道B)。信号A和信号B的偏移量为90°,其输出脉冲个数与位移或角度有关。
在位移正交编码器中,如信号A位于信号B之前,则编码器正方向移动。反之,编码器负方向移动。

图1 编码器的输出信号
具有编码器采集功能的采集卡
计数器的位置测量模式
在一个周期中,如果通道 A 相超前通道 B 相,计数器值增加;如果通道 B 相超前 A 相,计数器值减少。每个周期中的增量和减量取决于编码器X1 X2 X4计数方式。 下图是一个周期中 X1 计数方式。如果通道 A 相超前通道 B 相,增量发生 在通道 A 的上升沿;如果通道 B 相超前通道 A 相,减量发生在通道 A 的下降沿,每个周期发生一次增量或减量,如上图1所示。
对于X2计数方式,按照两个通道的相对时序,计数器的增量或减量发生在通道 A 的各个边沿,每个周期可发生两次增量或减量,如下图。

图2 X2模式示意图
对于X4计数方式,计数器的增量或减量发生在通道 A 和 B 的两个边沿,发生增量或减量由通道的相对时序决定。每个周期可发生四次增量或减量,如下图。

图3 X4模式示意图

图4 Z通道复位示意图
计数器的位置测量模式
在使用光栅尺传感器前一定要了解传感器的参数,此款光栅尺传感器定义行程:200mm(可以测到最大距离约220mm),栅距:0.02mm(一个信号周期),精度:0.005mm(最小测量步距)。光栅尺接线管脚定义如下图。红色1和黑色2接5V直流电源(在使用过程中要注意的是编码器的信号电压等级是否符合采集卡通道电压识别也就是供电电源设备的选择,注意由于USB-3313识别的0到5V高低电平,如果接24V直流会损坏采集卡),绿色3线定义的是A相信号,白色4线定义的是B相信号,橙色5线定义的是Z相信号。

图5 光栅尺脚位定义图
下图是光栅尺与USB-3313数据采集卡接线图,Ct 0 Src端口与A相信号相接,Ct 0 Gate端口与B相信号相接,Ct 0 Z端口与Z相信号相接,光栅尺的GND和采集卡的DGND端口与电源的信号负相接,构建0电位参考点。

图6 数据采集卡与光栅尺连接示意图
程序范例
官方提供C#、LabVIEW、Matlab、VB2010、VC2010等语言范例适用多种编程环境的开发。
下图是按照官方提供的函数手册基于LabVIEW语言实现编码器计数功能的VI,采集卡位置测量的功能是能够对正交编码器和双脉冲编码器进行计数,下图红色方框中分别是正交编码器X1 X2 X4计数方式以及双脉冲编码器计数方式,此范例程序选择的是X4计数方式,每个信号周期可发生四次增量或减量,对应的是每个周期可发生四次测量步距(分辨率0.005mm)的增量或减量。
下图红色框是操作Z相信号的功能区,可以选择Z相信号是否开启,如果开启,Z相信号置为高电平,可以使计数器复位,可以通过设定的AB相高低电平来初始化指定的计数值。

图7 编码器配置图
下图是基于LabVIEW语言设计的连续读取计数器数值的范例程序,在X4计数模式下,设置的是10000ns读取一个计数值,通过不断移动光栅尺读数头,可以连续快速读取正交编码器计数值,计数值每增加或减少一个数值光栅尺读数头位移0.005mm,下图红色框内是根据位移=计数值*光栅尺分辨率,所绘制出来的位移随时间变化曲线。

图8 波形图
下图是连续读取计数器范例的程序面板,官方提供封装好的函数VI,按照函数手册设置对应的参数命令,即可完成采集卡编程工作。

图9 程序框图
以上就是思迈科华针对光栅尺这类位移传感器的测试方案,正交编码器和双脉冲编码器的数据采集都可以使用USB-3300系列数据采集卡。