脚接地,1、3 脚上拉电阻后,当左转、右转旋纽时,在1、3 脚就有脉冲信号输出了。
着这是标准资料:
在单片机编程时,左转和右转的判别是难点,用示波器观察这种开关左转和右转时两个输出
脚的信号有个相位差,见下图:
由此可见,如果输出1 为高电平时,输出2 出现一个高电平,这时开关就是向顺时针旋转当输
出1 为高电平,输出2 出现一个低电平,这时就一定是逆时针方向旋转.
所以,在单片机编程时只需要判断当输出1 为高电平时,输出2 当时的状态就可以判断出是左
旋转或是右旋转了。
还有另外一种3 脚的,除了不带按钮开关外,和上面是一样的使用。
参考:
#include "reg51.h"
#define uint unsigned int
sbit CodingsWitch_A=P1_1
sbit CodingsWitch_B=P1_2
uint CodingsWitchPolling()//
{
static Uchar Aold,Bold//定义了两个变量用来储蓄上一次调用此方法是编码开关两引
脚的电平
static Uchar st//定义了一个变量用来储蓄以前是否出现了两个引脚都为高电
平的状态
uint tmp = 0
if(CodingsWitch_A&&CodingsWitch_B)
st = 1//
if(st) //如果st 为1 执行下面的步骤
{
if(CodingsWitch_A==0&&CodingsWitch_B==0) //如果当前编码开关的两个引脚
都为底电平执行下面的步骤
{
if(Bold) //为高说明编码开关在向加大的方向转
{
st = 0
tmp++//
}
if(Aold) //为高说明编码开关在向减小的方向转
{
st = 0
tmp--//设返回值
}
}
}
Aold = CodingsWitch_A//
Bold = CodingsWitch_B//储
return tmp//
}
//
将旋转编码器的a相或b相的输出信号连接至x0~x5,(使用不同的计数器,接不同的输入点)然后用高速计数器对编码器的脉冲信号进行计数。以c235为例,只进行加计数,脉冲编码器的a相或b相需要接入plc的x0,当设备带动编码器旋转,则x0就有信号输入,c235就会进行计数。使用很简单。控制电机正反转似乎不需要旋转编码器,编码器是用来测速的,
1,开关量控制:将PLC的输出触点与变频器的正转,反转,高速,中速,低速触点连接,再在变频器上设置高中低档频率,用PLC直接控制这些触点的闭开即可.
2,模拟量控制,将PLC的输出触点与变频器的电流输入或电压输入触点连接,再在PLC上设置电压或电流再用D/A转换即可调节频率,正反转就是正负电平.
3,现场总线:使用CCLINK现场总线.
旋转编码器的使用:旋转编码器一般是测量电机速度用的,使用带晶体管接口的PLC,将编码器接近开关信号输入到PLC高速输入接口,再在PLC内编制相关程序,即可算出当前速度,与所需速度比较,以便及时调整.
查plc手册 关于高速脉冲计数器应用方面文档,不同plc配置不同.
一般需要配置生效后就能累积脉冲数.实时脉冲数据存在特定存储器中.读取对这个存储器数值再乘以传动比就可以显示长度了.如果需要断电保持这长度值,你还需要设定断电保持参数.还需要写个清零或预置值的程序.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)