何亚福 许 齐 姜子鹏
1.问题的提出
绝对值型编码器测量范围是从零到最大脉冲数,脉冲数恒为正数,正转为当前脉冲递加,反转为当前脉冲递减,断电后重新上电,可保持断电前的脉冲数。增量型编码器断电后重新上电,当前脉冲数归零,正转为正数脉冲递增,反转为负数脉冲递减。
目前压力机装模高度调整等部件多采用绝对值型编码器,总线通信控制方式,根据编码器旋转时脉冲数的变化测量编码器旋转位置,通过相关传动轴,测量滑块等部件位置的变化。但实际生产特别是设备改造过程中,有些旧PLC CPU不支持通信模块,同时考虑到生产成本,有时需要增量型编码器实现绝对值型编码器的功能,下面通过实例,介绍实现过程。
2.实现方法
以OMRON C200HG CPU为例(图1),C200H-CT021具有CH1和 CH2两个高速计数通道,将模块的地址单元号MACHINE NO.拨码为1,则CH1地址为112,CH2地址为114;若将模式选择MODE拨码为0,则C200H-CT021工作方式设置为简单计数模式。本例将编码器接入CH1通道,地址112。
(1)系统断电后重新上电,增量型编码器当前脉冲数归零,此时若编码器正转,编码器当前脉冲就会从零开始正数累积增加计数,反转则出现负脉冲,编码器当前脉冲就会从零开始负数累积递减计数。编码器脉冲读取地址112内脉冲从0递增,地址113内数值为F000,最高位F代表负数。由于C200HG等CPU不能运算负数,因此要消除负脉冲里的负数。先将编码器脉冲读取地址112、113内的数据分别传送到中间存储区DM102、DM103,出现负脉冲时,如果用FFF与DM103中的F000相“逻辑与”,DM103中就变为0000,即消除了负数的负符号。程序见图2,断电后重新上电时,这时如果编码器反转,出现负脉冲,地址位113.15状态为ON,通过ANDW字逻辑与指令,将DM103和#FFF相“逻辑与”后,去除DM103内负值位F。
(2)再编写程序分别运算处理正转时出现的正脉冲和反转时出现的负脉冲(图3)。系统重新上电时,编码器的脉冲复位为零,当编码器正转出现正脉冲,地址位113.15状态为OFF,用断电前的脉冲数HR55加上编码器正转时出现的正脉冲数DM102,将结果值放进保存寄存器HR50。当编码器反转出现负脉冲时,地址位113.15状态为ON,用断电前的脉冲数HR55减去编码器反转时出现的负脉冲数DM102,将结果值放进保持寄存器HR50。HR50中的脉冲数就是用到的系统当前脉冲数。
(3)编写程序(图4),每次系统重新上电时,使用第一次循环标志指令,将断电前系统的脉冲数HR50传送给HR55,实现编码器的断电保持功能。
经过上述编程处理,该增量型编码器可作为绝对值型编码器使用,无论系统是否断电,保持寄存器HR50中始终保持系统的当前脉冲,读取地址HR50就可进行各种逻辑运算。