增量式编码器提供了一种对连续位移量离散化、增量化以及位移变化(速度)的传感方法。增量式编码器的特点是每产生一个输出脉冲信号就对应于一个增量位移,它能够产生与位移增量等值的脉冲信号。增量式编码器测量的是相对于某个基准点的相对位置增量,而不能够直接检测出**位置信息。
而**值的编码器的原理及组成部件与增量式编码器基本相同,与增量式编码器不同的是,**式编码器用不同的数码来指示每个不同的增量位置,它是一种直接输出数字量的传感器。
根据信号类型又将增量型编码器分为:有集电极开路输出(图1、2)、长线驱动输出(图3)和推挽式输出(图4)等多种输出信号,其中这四种是工业中比较常见和使用比较频繁的信号。
对于**值的编码器的信号输出比较常见的是SSI的输出信号(图5)
通常来说,**值编码器由于断电后可以保持码值,所以一般用于位置读取,增量型编码器由于断电后不能保持,所以常常用于读取瞬时量,例如速度,频率等信号。
下面来看一下西门子提供使用的高数计数模块的型号:
对于S7-300和ET200M产品,提供了3种模块:CPU31xC,FM350-1,FM350-2,SM338。
对于S7-400产品,提供了1种模块:FM450-1
对于ET200S产品,提供了3种模块:1Count24V,1Count5V,1SSI。
对于ET200SP产品,提供了2种模块:TM Count 1*24V,TM PosInput 1
对于S7-1500和ET200MP产品,提供了4种模块:CPU151 xC,2 Count24V,2Count5V,DI 24V Input HF。
对于S7-1200产品,提供了1种模块:CPU121 xC
面对这么多的模块,该如何选择呢?可以通过编码器类型和输入的信号类型进行选型,参考表1。
注:
1)对于DI HF模块的计数功能仅支持单脉冲计数,不支持A/B相的编码器。
2)对于5VTTL的编码器仅CPU1517C支持,其它型号的S7-1200的CPU不支持。
通过以上这个列表就可以针对编码器选择可以读取计数的模块了。
其次,在模块使用时,好多用户表示无法读取编码器的数值,计数值一直为零。这个可能就跟模块的门信号有关了。
对于高数计数模块,其中的一些模块包含了门控制,分别是软件门,硬件门和内部门。软件门是通过程序控制,将相应的控制位打开,进行软门的打开。硬件门是通过计数模块的DI点的信号,进行硬门打开。内部门是软件门与硬件门的“与”关系的结果(FM350-1是“或”关系的结果),如果未组态硬件门,那就是软件门的结果,只用当内部门的结果为True时,才能读取到计数值。
下面也通过表2的方式看一下模块门的组态
注:
1) 未定义门:此模块可以组态为无门控制,如果组态为无门控制,用户就可以直接读取计数值。
2) 内部门状态:表达的是内部门的状态是有软件门和硬件门之间的关系,并把相应的关系结果给到内部门。
3) 对于CPU121xC的计数,如果未使用程序编程,直接读取ID时,为没有门控制状态
4) 对于CPU121xC的计数,硬件门功能仅可用在组态计数模式的HSC时使用。
所以如果不能读取到计数值时,可以优先检查一下内部门的状态是否为True,如果不是下部就开始检查软件门和硬件门哪个有问题了。
再有,对于频率或者速度测量时,经常有客户反映对于高速时测量值是对的,而在低速时测量值是错误的,这个是由于在组态测量时需要组态更新时间(图6),要在这个时间内至少有两个以上的脉冲,才能进行测量的计算,如果只有一个脉冲是无法计算测量值的,所有如果低速测量值错误的情况,一般需要检查更新时间。
以上是对西门子PLC模块选型以及使用上常见问题的一些总结,当然对于模块的选型还有其它方面的参数,例如*大脉冲频率是否满足,通道数量是否满足,是否可以使用工艺组态等,这些参数也很重要,也会对模块的使用造成问题。