SM338模块接多圈绝对值编码器,多圈圈数和单圈角度值如何转换成工程量?

问题补充:对于单圈绝对值编码器我已经会转换了,但不明白多圈绝对值编码器该如何转换!                                              编码器的圈数位数是13位,单圈角度位数是10位,对应输入的地址是PID304,那么我理解的是plc接受的32位地址中,第30位至第18位表示的是圈数的值,第17位至第8位表示的是单圈的角度值,剩下的0-7位是没有用的地址。不知道这种理解对不对?如何是这种对应方式,那圈数值和单圈角度值改如何转换成实际的工程量呢?请高手赐教,有实例最好喔!

最佳答案

SM 338;POS-INPUT 所支持的编码器类型:
 ● 帧长度为13 位的绝对值编码器(SSI)
 ● 帧长度为21 位的绝对值编码器(SSI)
 ● 帧长度为25 位的绝对值编码器(SSI)
 绝对值编码器将其值以帧的形式传送到 SM 338。
 
 标准串行接口、二进制编码的绝对值编码器传送到SM338的编码数据将保存在一个双字(32位)中,要弄清这32位的含义。必须先了解你的编码器:单圈还是多圈、每转步进数(即每转编码范围)等。
 
 SM338用于存储SSI绝对值编码器输出数据的双字(32位)定义如下:
 bit31:是否禁止编码器数值更新
 bit30~bit25:无定义,默认为0
 bit24~bit13:为圈数,对单圈编码器而言,值为0
 bit12~bit0:为最后一圈,实际转动的角度编码。单圈编码最大13位,即8192
 
 以每转1024(10位)个编码,512(9位)转的绝对编码器为例。
 分析编码器:单圈编码最大13位(实际选用10位)+圈数9位=22位,因此可以肯定这是一个帧长度为25位的编码器。假如从“零”开始转动,转动119.75圈。编码器传送的数据为:(000001110111)(1100000000)(*)。第一个括号中的数据为圈数(12位数据,也就说明了SM338最大支持圈数为4096圈),第二个括号为最后一圈实际转动步数(编码器为10位,不足13位,剩余3位,有编码器在尾末补充附加位)。
 SM338接收传送过来的数据存储在一个双字空间中,内容为0000000 000001110111 1100000000 *。
 当你在SM338参数配置中设置了
 1.Position[0-12]为3
 2.steps/revolutions为1024。
 这两个参数设置一个,会自动改变另一个。你会发现他们正好对应了13位的编码范围。
 参数配置好后,SM338接收到数据后会自动将有效数据(12+9位)右对齐,3个附加位右移移出。存储在SM338中的数据变为:000 0000000 000001110111 1100000000。这样才真实反映编码值。
 
 对于要将编码值转换成0 ——1.4 m之间的值。需要“0m”对应的编码值data0和你的机械参数如编码器转一圈对应多大高度a等。在“0m”时读取一次就知道对应的编码值(机械安装时,编码0往往与机械位置0是不一致的,一次需要读取一次编码值)。
 当前实际值h=(data-data0)*a/1024。其中data为当前编码值

提问者对于答案的评价:
非常详细,感谢指导!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc227820.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 上午2:48
下一篇 2018年12月1日 上午2:49

相关推荐