编码器(光学尺)的位置清零与单位换算(以JS_PRGMR版为例)
【控制要求】
用编码器或者是光学尺给PLC发送脉冲,在人机交互界面能显示以下要求:
①要求能在触摸屏界面显示PLC接收到的总脉冲数;
②正确显示编码器(光学尺)实际运行的脉冲数;
③能对PLC接收脉冲进行清零操作;
④显示编码器(光学尺)实际运 行的位移值。
【动作分析】
编码器(或光学尺)在上电运行的过程中,发出的脉冲数是无法清零,我们可以在触摸屏界面设置一个数值显示,用以监控发出的总脉冲数。
1.编码器(或光学尺)位置清零设置:
零点脉冲 = 按下清零时的编码器绝对脉冲数
由于编码器(或光学尺)本身发出的脉冲无法清零,所以为了计算编码器(或光学尺)当前的相对位置,可以用一个W32位寄存器如W0来作为PLC记录相对零点位置的脉冲数。
我们可以设置一个清零键,如在组合逻辑中检测辅助标志M21通时(辅助标志任选),运行赋值运算指令,W[0]=E[1]-D[0],其中W0为设定的编码器零点位置、E1为编码器(或光学尺)当前脉冲绝对位置,D[0]为数值0。也就是用W0记录编码器(或光学尺)的当前脉冲绝对位置。
2.当前计算脉冲数(以下视频中讲解为计算位置):
计算脉冲数 = 编码器绝对脉冲数 - 零点脉冲
我们可以用一个绝对条件如(检测M20为断)作为组长,动作为赋值运算指令,W[1]=E[1]-W[0],其中W1:为编码器计算脉冲数、E1为编码器(或光学尺)当前脉冲绝对位置,W0为零点位置。
②编码器(或光学尺)单位换算设置:
以光学尺为例:如某款光学尺分辨率是1mm-50线(运行1mm转50线,线数就是光学尺或编码器的分辨率),转动1线PLC可以接收到4个边沿信号(如下图所示)。

那么转动1mm也就是50线时,PLC可以接收到50*4=200个信号边沿。在PLC内部计数为200个脉冲数,那么运行0.01mm就是发出2个脉冲,以此为基础单位。
计算编码器(或光学尺)相对零点位置(如以上W0)实际运行的脉冲数,用W32位寄存器中的如W1寄存器记录,编码器脉冲相对位置,也就是我们说的计算位置;用W2寄存器显示实际位移值,也就是物理位置。这个过程是自动计算的,不需要条件触发,在编辑PLC程序的时候也是需要用一个信号作为条件组长,可以借用检测辅助标志M20断作为组长(PLC系统默认所有的辅助标志均为断状态)。
3.物理位置:
位置 = 脉冲量/(1个单位位移所需要脉冲数)
计算出编码器(或光学尺)的实际运行脉冲数后,需要将这个脉冲数转换成实际运行的位移,也就是我们所指的物理位置。
用W2表示物理位置。用G0寄存器来表示输入的脉冲数与实际位移转化,如0.01mm发送2个脉冲,那么G0=2。
再添加一条赋值运算指令:W[2]=W[1]/G[0]位,在触摸屏界面上直接将W2的数值显示缩小两位,也就是在属性框中保留两位小数,那么得到的值就是实际位移值。
注:实际物理位置=计算位置÷2×0.01(mm),计算位置是实际运行的脉冲数,用实际脉冲数除以基础单位脉冲数,就是实际位移发送的脉冲数;再用实际位移脉冲数乘以基础单位0.01,就是实际的物理位置。例如实际运行的脉冲数为4000个脉冲,那么物理位置就是:4000÷2×0.01=20mm。
【程序编辑】
在组合逻辑编辑就可以实现位置清零与单位换算。添加一组,用一个辅助标志作为组长,如:检测M20断时,运行计算位置与物理位置的计算。
再添加一组,如:检测清零按键M21通时,自动触发M21断开,再进行清零运算。
注意:组合逻辑的程序是按组运行的,每组的组长与组员之间的组号必须保持一致。

【触摸屏界面设置】
每个物件的属性设置,请参考触摸屏界面测试模板。可在程序文件下载链接中下载。
接受的脉冲数显示:添加一个数值显示,数据类别为32位整数、监视地址为编码器(光学尺)起始位置地址值:3x5000,只可监控,不可修改;显示总位数为4位,无小数位。

零点位置:添加一个数值输入,数据类别为32位整数、监视地址为W0寄存器地址值:4x3000,可监控,可修改;显示总位数为4位,无小数位。

计算位置:添加一个数值输入,数据类别为32位整数、监视地址为W1寄存器地址值:4x3002,可监控,可修改;显示总位数为4位,无小数位。

物理位置:添加一个数值输入,数据类别为32位整数、监视地址为W2寄存器地址值:4x3004,可监控,可修改;显示总位数为4位,有2个小数位。

触摸屏界面:

程序文件下载:http://pan.baidu.com/s/1nuCjdIp
视频演示:
JENASI_PLC
由娄底市简思工控有限公司研发的新一代可编程控制器
不同于传统PLC基于继电器电路的梯形图编程方法
基于控制流程采用电脑中文指令进行编程
具有编程简易,维护方便的特点