西门子S120 装置能否直接读取编码器的实时脉冲数,以便用plc 控制器来实现控制、定位等功能。
回答: S120 装置中参数r0482可显示编码器的实际增量值。r2521是驱动在激活基本定位功能后的实际位置值,单位是LU。r0482 是32位的双字,参考S120 List manual中的功能图4704:
图1.
可以通过拆解r0482 的方法得到实时的脉冲数。具体方法如下: 1.从bit0 – bitn-1 表示脉冲细分补全码,即当实际位置处于两个脉冲之间时,对其进行细分,从而代表的两个脉冲间的位置值。当下一个脉冲到达后,向上进位且重新计数; 2.从bitn – bitn m-1表示编码器一转以内的整脉冲个数; 3.从bitn m到bit31为当前实际转数,编码器每旋转一周由整脉冲数向上进位得到; 4.m为p0408编码器脉冲数对应的2进制位数,如2048对应m=11;n 为 p0418中设定的脉冲细分率。
图2.
下面举例说明在PLC中如何得到实际编码器的脉冲个数:
1.建立PLC 和S120 之间的DP 通讯.并设相关参数.
图3.
2.PLC 系统编程 PID256通讯连接的是r0482,此编码器为2048 脉冲每转,细分率为11(p0408=2048,p0418=11)。 NETWORK1 是编码器的实际脉冲数,由r0482 右移11 位计算得到。 NETWORK2是编码器脉冲细分补全码,由r0482 低11 位计算得到,它代表两个脉冲间的位置细分值。
图4.
图5表示旋转两圈后编码器的实际脉冲增值。注: 图中的位置值为大约位置。
图5.
注意: r0482这个数值不能掉电保存。每次掉电恢复后数值为零,所以其反映的是和上次掉电前的位置偏差值,不是实际位置( 与编码器类型无关)。 |