AXIS*_RDPOS指令应用答疑
上回说到调用AXIS*_RDPOS指令读取相当于200PLC的高速计数器事件模式12,引起很多网友的对问题的兴趣,近来一直在关注此事,因没有实际硬件验证,把此事给耽搁下来了。【由一个200smart高速计数器的功能思考】论坛链接:http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1326019&b_id=64&s_id=83&num=17#anch
今天在查找资料时发现了这个答案,解释了指令需要在特殊情况下,PLC读取伺服驱动器的编码器数据将成为可能。AXIS*_RDPOS指令用途:AXISx_ABSPOS 指令用于读取SINAMICS V90 伺服驱动器绝对值编码器数值。读取绝对位置值的目的是为了更新运动轴中的当前位置值的必要条件:SINAMICS V90 伺服驱动器与安装了绝对值编码器的 SIMOTICS-1FL6 伺服电机结合使用时,支持此功能。
200smart PLC读取V90伺服绝对值编码器的方法:
先设置伺服参数r2507=3,且DO1=1,DO2=0 和DO3=1,PLC 可以有效地读取编码器的绝对位置值,此时可以通过RS485 USS 通讯读取绝对位置(r2521[0]),否则r2521 是无效的。
PLC 的 RS485 接口的波特率和驱动器USS 地址要求与V90 一致, 因此, 需要对V90 里的参数P29004 设置一致的USS 地址。并且V90 USS RS485 端口的波特率设置为38400bits/s,报文长度为4 个PKW 和0 个PZD 的USS 协议。
读取方法资料来源摘自:【S7-200SMART PLC读取1FL6伺服电机的绝对值编码器数值 SINAMICS V90】及【西门子S7-200SMART技术参考 Version 1.6】。
链接:http://support.automation.siemens.com/CN/view/zh/99521584
如果测量系统选择为“工程单位”,则AXISx_ABSPOS.D_Pos的计算公式如下:
AXISx_ABSPOS.D_Pos = r2521/1049576 * 螺距 ,数据类型为real 。
其中:r2521显示V90 的编码器实际位置值,r2521正确显示必须先将V90驱动器ABS。
注:上边公式的假设条件为P29247 = 2^20=1048576, P29248 = 1, P29249 = 1
如果测量系统选择为“相对脉冲”,则AXISx_ABSPOS.D_Pos的计算公式如下:
AXISx_ABSPOS.D_Pos = r2521,数据类型为DINT。
所以有网友答疑与原200的高速计数器事件模式12区别的理解,也应该在上诉解释了。