推挽的最好,这样无需上拉/下拉电阻。200那边不用特殊处理。但要注意的是,编码器的输出电压(电平)是不是24V,如果是,就没有任何问题了。如果不是,就要考虑电平转换了。最简单的电平转换就是使用光耦(光电耦合器),例如TLP521-4,这个光耦的输出应该勉强可以直接驱动得了200的DI。
30米的话,PNP,NPN
的接s7200都可以,只是正负逻辑不同。也就是说PNP的公共端接低电平,NPN的公共端接高电平。由于正负逻辑的原因,会造成两种格雷码的接法所对应的程序也不一样。
西门子200系列既可以接PNP,也可以接NPN,因此编码器的输出方式是选择PNP或NPN
均可(但是考虑其余信号传感器就需要考虑极性匹配了)。至于某个大师说PNP或者NPN会造成两种格雷码的接法所对应的程序也不一样,这个说法俺不赞成,俺认为程序是一样的!
查看原帖>>首先得有编码器,然后计算编码器一圈,物料走多远,也就是算出来编码器1个脉冲,物料行走多少距离,根据你设定的6米,除以这个距离,就算出来多少个脉冲了,然后高速计数自计数开始比较,到了算出来的脉冲值就停就可以了~先确定旋转编码器的输出信号是什么电平的,通常单片机只能直接接受0--Vcc的电平输入,输入电压高的话就很容易烧掉口线。
旋转编码器的输出信号电平较高,量一下它的高电平是多少,然后用2个电阻分压成0--Vcc就可以了(保险起见还可以再小一点,例如0--08Vcc)。
另外,最好在分压电阻上再加小电容滤波,然后经施密特触发器(例如7414)整形后再接单片机,这样一来可以减少外部干扰,使计数更可靠,二来可以保护单片机(至多烧坏一片7414)。
旋转编码器一般输出3路信号ABZ,AB相位差是90°
将A接到中断。当A下降沿时:B为高就是正转一步,B为低则是反转一步。
转速可以用若干步用的时间进行计算。将旋转编码器的a相或b相的输出信号连接至x0~x5,(使用不同的计数器,接不同的输入点)然后用高速计数器对编码器的脉冲信号进行计数。以c235为例,只进行加计数,脉冲编码器的a相或b相需要接入plc的x0,当设备带动编码器旋转,则x0就有信号输入,c235就会进行计数。使用很简单。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)