1     免责声明

本使用手册及样例包目录内所包含文档、PLC程序、机床可执行程序(MPF、SPF、…)、电气图,可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。

对于在使用中发生的人员、财产损失本公司不承担任何责任,由使用者自行承担风险。

以上声明内容的最终解释权归西门子(中国)有限公司所有,后续内容更新不做另行通知。

2     概述

在使用配置了Siemens的机床中,用户经常会遇见主轴在旋转到一定的速度之后便无法再提升了,无论是使用进给倍率还是提高设定转速,主轴的最高转速被限制了。很多客户在查找了许多可能相关的地方,却找不到是什么地方的参数限制了最高转速。

      部分机床需要主轴定位功能,为了主轴定位精准,用户一般会为主轴配置第二编码器。在使用第二编码器时,主轴这块一般需要用西门子SMC20或者SMC30来连接编码器,由于SMC20和SMC30都有一定的频率极限,在加上编码器的线数,这就造成了主轴转速被限制。面对这种,我们能有什么对策呢?

3     要求

3.1      硬件要求

image.png

3.2      软件版本要求

        828D V4.7.2以上

3.3      其他要求

4     调试或使用步骤

       主轴第二编码器一般使用TTL或者sin/cos编码器,此时我们一般需要使用SMC20或者SMC30来连接编码器,而SMC20和SMC30都有一定的频率极限。

image.png

 

主轴最大转速与极限频率和编码器线数的关系:

主轴最大转速=极限频率*60/编码器线数

例:

主轴第二编码器线数为TTL 5000线,使用SMC30连接。

主轴最大转速=300000*60/5000=3600rpm

 

       若主轴使用了第二编码器 ,当主轴实际运行转速无法达到设定的主轴最大转速时,我们首先需要通过计算确定在当前编码器下主轴能够达到的最大转速,在以下两种情况下确定对应的解决应对方法:

·        当前编码器下主轴能达到的最大转速大于主轴的设定转速,主轴速度却被限制了该怎么解决。

·        当前编码器下主轴能达到的最大转速小于主轴的设定转速,此时该如何提高主轴转速。

4.1     当前编码器下主轴能达到的最大转速大于主轴的设定转速                              

如何快速定位是什么原因限制了主轴最高转速呢?在SINUMERIK 828D/840D sl中,我们可以通过系统变量$AC_SMAXVELO_INFO[n]来快速定位,这个n是指主轴的轴号。在828D或者840Dsl中,我们可以在诊断的NC/PLC变量列表中输入该系统变量,然后让主轴旋转起来,查看该参数的值是多少,参考下表便能找到限制主轴速度的原因。

image.png

image.png

例如使用SMC30连接的TTL 5000线的编码器,计算出的主轴最大转速为3600rpm,而当我们编程M3 S2000时主轴却只能转1000rpm,主轴速度怎么上不去呢?


      这时我们可以在主轴运行的情况下监控“$AC_SMAXVELO_INFO[4]”,如下图所示。

image.png

       我们将主轴的MD35130[0]和[1]人为设为1000,设置小了,旋转主轴时,在诊断NC/PLC变量里查看变量$AC_SMAXVELO_INFO[4]=2,通过查看列表可以看出主轴的转速是由于MD35130限制了,修改MD35130为3600后主轴转速正常。 

4.2     当前编码器下主轴能达到的最大转速小于主轴的设定转速                              

      使用SMC30连接的TTL 5000线的编码器,计算出的主轴最大转速为3600rpm,而我们希望主轴最大转速能达到6000rpm,此时我们可以尝试以下两种方法。

4.2.1      无编码器模式

       SMC30含有一个零脉冲监控器用于对两个零脉冲间的编码器脉冲进行计数,如果编码器信号的频率超过300kHz,那么编码器信号就会被丢失,或者零脉冲无法被识别。此时,SINAMICS驱动就会将编码器状态字Gn_ZSW中的第15位(故障位)置1,在参数r0481[n-1]中可以查看,同时会输出故障信息3n100和3n101。故而,为了避免编码器信号丢失或零脉冲无法识别,系统会根据设定的极限频率来限制主轴最大转速,我们可以通过将驱动切换至无编码器模式来解决此类问题。

激活无编码器模式:

设置参数P1404-无编码器模式切换速度,设为一个编码器能可靠测量的速度值

设置参数P1402.1为1

                                                                                                                                                                       示例:                   

       一个TTL编码器,每圈脉冲数为5000,与主轴电机直连。这意味着在电机转速达到3600rpm时编码器脉冲的频率将达到SMC30的上限300kHz。

       考虑到安全因素,我们可以将SINAMICS在速度达到3000rpm以上时切换至无编码器模式运行,设置P1404=3000,同时设定P1402.1=1即在速度达到3000rpm时切换至无编码器模式运行,主轴实际转速可以达到设定的最大转速6000rpm。

4.2.2      测量系统切换

主轴速度控制时采用电机本身编码器进行反馈,不需要建立原点,可以实现更高速度运行。

主轴位置控制时采用第二编码,通过第二编码器建立原点。


第一步修改PLC,通过M74M75(用户可自行定义)来切换测量系统:

image.png


第二步修改参数MD32400[0]=0保证主轴速度控制时采用电机本身编码器时不建立原点。

 

可能遇到的问题:在由第二测量系统切换到第一测量系统时可能会出现25001报警。

image.png


此时我们可以设定MD36310[1]来屏蔽此报警。

MD36310

ENC_ZERO_MONITORING   零脉冲监控

·          0: 零脉冲监控关闭

·          100: 关闭零脉冲监控,同时关闭所有编码器监控(即除抑制报警   25020 外还抑制报警 25000、25010 等)


我们看到,这个参数一直设为100后,就关闭了所有编码器(包括主从编码器)的监控,当编码器若真出现信号丢失,硬件出错的时候系统也可能不出现报警提示了。建议动态调整这个参数。

建议默认36310[1]=0,当从第二编码器切换为第一编码器时时,先用M74调用子程序CHANGE1.SPF:

$MA_ENC_ZERO_MONITORING[1,AX3]=100

NEWCONF

M30

然后稍延时切换编码器。

当由第一编码器切换为第二编码器时时,建议再它设为0,可通过M75调用子程序CHANGE2.SPF:

$MA_ENC_ZERO_MONITORING[1,AX3]=0

NEWCONF

M30


参数设置:

10715[1]

74

10715[2]

75

10716[1]

CHANGE1

10716[2]

CHANGE2

 

将子程序CHANGE1.SPF与CHANG2.SPF拷入到“系统数据”,“NC数据”,“循环”,“制造商循环”中。

5     参考文献

SINUMERIK 828D SINAMICS S120 机床数据.pdf       08/2018

SINUMERIK 828D SINAMICS S120 驱动参数描述.pdf       08/2018

6     作者/联系人

Bai Zhifu

2021.12.10

7     版本信息

版本

日期

修改内容

V1.0

2021.12.10