从增量值编码器到绝对值编码器
旋转增量值编码器以转动时输出脉冲,通过计数设备来计算其位置,当编码器不动或停电时,依靠计数设备的内部记忆来记住位置。这样,当停电后,编码器不能有任何的移动,当来电工作时,编码器输出脉冲过程中,也不能有干扰而丢失脉冲,不然,计数设备计算并记忆的零点就会偏移,而且这种偏移的量是无从知道的,只有错误的生产结果出现后才能知道。
解决的方法是增加参考点,编码器每经过参考点,将参考位置修正进计数设备的记忆位置。在参考点以前,是不能保证位置的准确性的。为此,在工控中就有每次操作先找参考点,开机找零等方法。
这样的方法对有些工控项目比较麻烦,甚至不允许开机找零(开机后就要知道准确位置),于是就有了绝对编码器的出现。
绝对编码器光码盘上有许多道光通道刻线,每道刻线依次以2线、4线、8线、16线。。。。。。编排,这样,在编码器的每一个位置,通过读取每道刻线的通、暗,获得一组从2的零次方到2的n-1次方的唯一的2进制编码(格雷码),这就称为n位绝对编码器。这样的编码器是由光电码盘的机械位置决定的,它不受停电、干扰的影响。
绝对编码器由机械位置决定的每个位置是唯一的,它无需记忆,无需找参考点,而且不用一直计数,什么时候需要知道位置,什么时候就去读取它的位置。这样,编码器的抗干扰特性、数据的可靠性大大提高了。
从单圈绝对值编码器到多圈绝对值编码器
旋转单圈绝对值编码器,以转动中测量光电码盘各道刻线,以获取唯一的编码,当转动超过360度时,编码又回到原点,这样就不符合绝对编码唯一的原则,这样的编码
只能用于旋转范围360度以内的测量,称为单圈绝对值编码器。
如果要测量旋转超过360度范围,就要用到多圈绝对值编码器。
编码器生产厂家运用钟表齿轮机械的原理,当中心码盘旋转时,通过齿轮传动另一组码盘(或多组齿轮,多组码盘),在单圈编码的基础上再增加圈数的编码,以扩大编码器的测量范围,这样的绝对编码器就称为多圈式绝对编码器,它同样是由机械位置确定编码,每个位置编码唯一不重复,而无需记忆。
多圈编码器另一个优点是由于测量范围大,实际使用往往富裕较多,这样在安装时不必要费劲找零点,将某一中间位置作为起始点就可以了,而大大简化了安装调试难度。
绝对值编码器长度测量的应用
一.绝对值旋转编码器的机械安装:
绝对值旋转编码器的机械安装有高速端安装、低速端安装、辅助机械装置安装等多种形式。
1. 高速端安装:安装于动力马达转轴端(或齿轮连接),此方法优点是分辨率高,由于多圈编码器有4096圈,马达转动圈数在此量程范围内,可充分用足量程而提高分辨率,缺点是运动物体通过减速齿轮后,来回程有齿轮间隙误差,一般用于单向控制定位。另外编码器直接安装于高速端,马达抖动须较小,不然易损坏编码器。
2. 低速端安装:
安装于减速齿轮后,如卷扬钢丝绳卷筒的轴端或最后一节减速齿轮轴端,此方法已无齿轮来回程间隙,测量较直接,精度较高。
另外,GPMV0814机械转数为90圈,用此方法较合理,如果卷筒转数超过90圈,可用1:3或1:4齿轮组调整至转数测量范围内。
3. 辅助机械安装,收绳机械安装:
钢丝绳弹簧收紧器原理图
|
1. 收拉钢丝绳
2. 测量盘
3. 收紧弹簧轮1
4. 收紧弹簧轮2
5. 专用弹簧
6. 弹性联轴器
7. 编码器
|
用钢丝绳收绳器测量
油缸行程示意图
|
收绳机械有弹簧自收绳位移传感器――柔性钢丝绳连接运动物体,钢丝绳盘紧在一个测量轮上,依靠恒力弹簧回收钢丝绳。编码器连接于盘紧测量轮轴端,测量钢丝绳来回运动的旋转角度。
重锤重力收绳:
重锤浮子水位测量示意图
|
1编码器
2联轴器
3测量轮
4重锤收紧轮
5钢丝绳
6浮子
|
测量轮与恒力弹簧弹簧型相似,只是钢丝绳的回收力是依靠另一个同轴的盘紧轮挂重锤来回收。
用收绳位移测量的优点是柔性连接,测量直接而精度高,对运动物体的环境如震动、粉尘、高温水气的场合都能适用。
|
机械丝杠、摩擦轮、小车轮轴中心、齿轮齿条连接
在机械丝杠转轴中心安装编码器,丝杠前进1个螺距,编码器旋转一周。
|
通过带摩擦阻力的摩擦转轮,与相对运动物体摩擦转动,测量运动距离。
注意:摩擦轮需始终紧靠测量物,且无跳动、打滑。(实际使用中,某些场合有难度)
|
通过轨道小车的转轮中心,安装旋转编码器,测量小车行进。
小车与轨道之间不可有打滑
|
运动物连接齿条,带动装有齿轮的编码器,测量运动物体移动距离
为保证连紧密抗震,经常有弹簧基座。
|
二.绝对值编码器的信号输出
绝对值编码器信号输出有并行输出、串行输出、总线型输出、变送一体型输出
1.并行输出:
绝对值编码器输出的是多位数码(格雷码或纯二进制码),并行输出就是在接口上有多点高低电平输出,以代表数码的1或0,对于位数不高的绝对编码器,一般就直接以此形式输出数码,可直接进入PLC或上位机的I/O接口,输出即时,连接简单。但是并行输出有如下问题:
1。必须是格雷码,因为如是纯二进制码,在数据刷新时可能有多位变化,读数会在短时间里造成错码。
2。所有接口必须确保连接好,因为如有个别连接不良点,该点电位始终是0,造成错码而无法判断。
3。传输距离不能远,一般在一两米,对于复杂环境,最好有隔离。
4。对于位数较多,要许多芯电缆,并要确保连接优良,由此带来工程难度,同样,对于编码器,要同时有许多节点输出,增加编码器的故障损坏率。
2.串行SSI输出:
串行输出就是通过约定,在时间上有先后的数据输出,这种约定称为通讯规约,其连接的物理形式有RS232、RS422(TTL)、RS485等。
由于绝对值编码器好的厂家都是在德国,所以串行输出大部分是与德国的西门子
配套的,如SSI同步串行输出。
SSI接口(RS422模式),以两根数据线、两根时钟线连接,由接收设备向编码器发出中断的时钟脉冲,绝对的位置值由编码器与时钟脉冲同步输出至接收设备。
由接收设备发出时钟信号触发,编码器从高位(MSB)开始输出与时钟信号同步的串行信号,SSI标准的信号当不传送信号时,时钟和数据位均是高位,在时钟信号的第一个下降沿,编码器的当前值开始贮存,从时钟信号上升沿开始,经T2延迟时间后,编码器数据信号开始传送.t3为恢复信号,等待下次传送。
|
T=0.9—11us 每个脉冲周期 n为编码器总位数
t1>0.45us 每个脉冲半周期
t2≤0.4us 数据输出延迟时间
t3=12—35us 数据恢复(熄灭)时间
|
串行输出连接线少,传输距离远,对于编码器的保护和可靠性就大大提高了。
一般高位数的绝对编码器都是用串行输出的。
3.现场总线型输出
现场总线型编码器是多个编码器各以一对信号线连接在一起,通过设定地址,用通讯方式传输信号,信号的接收设备只需一个接口,就可以读多个编码器信号。总线型编码器信号遵循RS485的物理格式,其信号的编排方式称为通讯规约,目前全世界有多个通讯规约,各有优点,还未统一,编码器常用的通讯规约有如下几种:
PROFIBUS-DP; CAN; DeviceNet; Interbus等
总线型编码器可以节省连接线缆、接收设备接口,传输距离远,在多个编码器集中控制的情况下还可以大大节省成本。
4.变送一体型输出
我公司提供的GPMV0814、GPMV1016绝对编码器,其信号已经在编码器内换算后直接变送输出,其有模拟量4—20mA输出、RS485数字输出、14位并行输出。
三.连接绝对编码器的电气二次设备:
连接绝对值编码器的设备可以是可编程控制器PLC、上位机,也可以是专用显示信号转换仪表,由仪表再输出信号给PLC或上位机。
1.直接进入PLC或上位机:
编码器如果是并行输出的,可以直接连接PLC或上位机的输入输出接点I/O,其信号数学格式应该是格雷码。编码器有多少位就要占用PLC的多少位接点,如果是24伏推挽式输出,高电平有效为1,低电平为0;如果是集电极开路NPN输出,则连接的接点也必须是NPN型的,其低电平有效,低电平为1。
2.编码器如果是串行输出的,由于通讯协议的限制,后接电气设备必须有对应的接口。
例如SSI串行,可连接西门子的S7-300系列的PLC,有SM338等专用模块,或S7-400的FM451等模块,对于其他品牌的PLC,往往没有专用模块或有模块也很贵。
3.编码器如是总线型输出,接受设备需配专用的总线模块,例如PROFIBUS-DP。
但是,如选择总线型输出编码器,在编码器与接收设备PLC中间,就无法加入其他显示仪表,如需现场显示,就要从PLC 再转出信号给与信号匹配的显示仪表。
有些协议自定义的RS485输出信号进PLC的RS485接口,需PLC具有智能编程功能。
4.连接专用显示转换仪表:
针对较多使用的SSI串行输出编码器,我公司提供专用的显示、信号转换仪表,由仪表进行内部解码、计算、显示、信号转换输出,再连接PLC或上位机。其优点如下:
a.现场可以有直观的显示,直接在仪表上设置参数。
b.专用程序读码解码、容错、内部计算,可以大大减少各个项目的编程工作量,提高稳定和可靠性。信号输出是由内部数字量直接计算,快速、准确。
c.信号输出有多种形式,灵活方便,后面可连接各种PLC或上位机,通用性强。
我公司各类连接SSI编码器的仪表一览表:
GP1312
(C表、标准表)
|
16位并行码推挽式输出、4—20mA两路模拟量、8个预置位置开关、
4位显示、非线性换算、面板置位等通用功能
|
GP1312/C2
(C2表,
双路纠偏表)
|
双吊点同步纠偏型 ,16位并行码推挽式选通输出,9个预置开关输出,含双路超偏纠偏信号, 两路4—20mA模拟量输出,其中一路为差值量输出。
双4位显示、非线性换算、面板置位等通用功能
|
GP1312RL
(RL表、
现场变送表)
|
一路4—20mA模拟量输出;一路RS485输出。非线性换算,外部置位等
|
GP1312BS
(BS表、电子凸轮开关组)
|
八个电子凸轮位置开关,每个开关具有开到位和恢复位,
一路4—20mA模拟量输出;一路RS485输出。
4位显示,非线性换算,外部置位等
|
GPMV0814、GPMV1016 三位一体型
GPMV0814绝对多圈编码器,其光电码盘读码解码、显示设定、信号转换三位一体,输出4—20mA 模拟量、并行数字量RS485通讯可同时输出,连接各类PLC和上位机。
一般的应用,可选同时两组输出型,一组信号连接PLC,另一组连接显示仪表,如需要增加开关输出,可从显示仪表设定输出。
S7-300沒有現成的轉換功能塊,我使用了富士的SPH編寫了一個功能塊,由于富士的和西門子都支持IEC61131-3編程規范,那么應該很簡單的轉換為西門子的功能塊。
在精确定位控制系统中,为了提高控制精度,准确测量控制对象的位置是十分重要的。目前,测量位置的方法主要有2种,其一是使用位置传感器,此方法精度高,但是在多路,长距离位置监控系统中,由于成本昂贵且安装困难,因此并不实用。其二是采用光电轴角编码器进行精确位置控制,光电轴角编码器根据其刻度方法及信号输出形式,可分为增量式、绝对式以及混合式三种。而绝对式编码器是直接输出数字量的传感器,它是利用自然二进制或循环二进制(格雷码)方式进行光电转换的,编码的设计一般是采用自然二进制码、循环二进制码、二
进制补码等。特点是不要计数器,在转轴的任意位置都可读出一个固定的与位置相对应的数字码;抗干扰能力强,没用累积误差;电源切断后位置信息不会丢失,但分辨率是由二进制的位数决定的,根据不同的精度要求,可以选择不同的分辨率即位数。目前有10 位、11 位、12 位、13 位、14 位或更高位等多种。其中采用循环二进制编码(即格雷码)的绝对式编码器,其输出信号是一种数字排序,不是权重码,每一位没有确定的大小,不能直接进行比较大小和算术运算,也不能直接转换成其他信号,要经过一次码变换,变成自然二进制码,在由上位机读取以实现相应的控制。而在码制变换中有不同的处理方式,本文着重介绍富士SX系列中使用编程的方法对二进制格雷码与自然二进制码的互换。
一、格雷码(又叫循环二进制码或反射二进制码)介绍
在数字系统中只能识别0 和1,各种数据要转换为二进制代码才能进行处理,格雷码是一种无权码,采用绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。格雷码属于可靠性编码,是一种错误最小化的编码方式,因为,自然二进制码可以直接由数/模转换器转换成模拟信号,但某些情况,例如从十进制的3 转换成4 时二进制码的每一位都要变,使数字电路产生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它是一种数字排序系统,其中的所有相邻整数在它们的数字表示中只有一个数字不同。它在任意两个相邻的数之间转换时,只有一个数位发生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。另外由于最大数与最小数之间也仅一个数不同,故通常又叫格雷反射码或循环码。下表为几种自然二进制码与格雷码的对照表:
十进制数
自然二进制
格雷码
十进制
自然二进制
格雷码
0
0000
0000
8
1000
1100
1
0001
0001
9
1001
1101
2
0010
0011
10
1010
1111
3
0011
0010
11
1011
1110
4
0100
0110
12
1100
1010
5
0101
0111
13
1101
1011
6
0110
0101
14
1110
1001
7
0111
0100
15
1111
1000
二、二进制格雷码与自然二进制码的互换
1、自然二进制码转换成二进制格雷码
自然二进制码转换成二进制格雷码,其法则是保留自然二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似。
例如:
自然二进制编码如下:
1
0
0
1
那么转换为格雷码的方法是:保留最高位1,然后将第二位0与第一位1做异或操作,第三位的0与第二位的0做异或操作,第四位的1与第三位的0做异或操作,得到结果如下:
1 1 0 1 Gray
2、二进制格雷码转换成自然二进制码
二进制格雷码转换成自然二进制码,其法则是保留格雷码的最高位作为自然二进制码的最高位,而次高位自然二进制码为高位自然二进制码与次高位格雷码相异或,而自然二进制码的其余各位与次高位自然二进制码的求法相类似。
例如将格雷码1000转换为自然二进制码:
1
0
0
0
1
1
1
1
上排为格雷码,下排为自然二进制,从左到右分别为1~4位
将上排的第一位高位作为自然二进制的最高位,因此在下排的第一位填入1,然后以上排第二位与下排第一位做异或操作,得到下排第二位结果为1,将上排第三位与下排第二位做异或操作,得到下排第三位的结果为1,同理,下排第四位的结果为1,因此,我们得到了转换结果 如下:
1 1 1 1 Bin
三、自然二进制码与格雷码互换在富士SX系列PLC中的实现方法:
1. 自然二进制码转换为格雷码:
根据自然二进制码转换为格雷码的转换规则,实际上就是将转换数右移一位后与转换数做异或操作。程序流程图如下:
保存输入数 TEMP
将TEMP右移一位,保存SHILETEMP
将移位后的数据与原数据作异或
返回异或后的数据
功能块中的程序如下:
INPUT 输入变量类型为DWORD
TEMP 局部变量类型为DWORD
SHILETEMP 局部变量类型为DWORD
BIN_TO_GRAY 功能块返回变量返回类型为DWORD
BIN_TO_GRAY:
TEMP:=INPUT;
SHILETEMP:=SHR_DWORD(TEMP,UNIT#1);
BIN_TO_GRAY:=SHILETEMP XOR INPUT;
2. 格雷码转换为自然二进制码
根据格雷码转换为自然二进制码的转换规则,实际上就是不断的将格雷码与二进制数做异或操作,也就是说,不断的和本身的不同位数做异或操作,如原数据为32位的A,那么先将A向右移动一位,与本身进行异或,然后保留值为B,那么继续将A向右移动一位,与B进行异或,保留为C,依次类推,直到A=1为止。程序流程图如下:
保存输入数 TEMP,INPUT1
如果输入数为0,那么直接返回数据0后退出
如果TEMP不等于1,那么循环,否则返回数据
TEMP右移1位,与输入值作不断异或
功能块中的程序如下:
INPUT 输入变量类型为DWORD
TEMP 局部变量类型为DWORD
INPUT1 局部变量类型为DWORD
GRAY_TO_BIN 功能块返回变量返回类型为DWORD
GRAY_TO_BIN:
TEMP:=INPUT;
INPUT1:=INPUT;
IF TEMP=DWORD#0 THEN
INPUT1:=DWORD#0;
GRAY_TO_BIN:=INPUT1;
RETURN;
END_IF;
WHILE TEMP<>DWORD#1 DO
TEMP:=SHR_DWORD(TEMP,UINT#1);
INPUT1:=TEMP XOR INPUT1;
END_WHILE;
GRAY_TO_BIN:=INPUT1;
上述代码在富士的SX系列PLC中试验没有问题,由于富士的SX系列PLC完全支持ST代码方式的编程,因此基本上可以不做修改的应用在西门子的S7系列的PLC中。
由于三菱的PLC中已经包含了自然二进制码转换为格雷码指令GRY以及格雷码转换为自然二进制码指令GBIN,因此上述代码应用于三菱系列的PLC已经没有意义,请使用三菱PLC本身附带的指令,因为西门子以及富士的SX系列PLC并没有附带转换指令,因此本人书写了上述代码用于补充SX系列的指令不足。