1     免责声明

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

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

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

2     概述

在数控机床上,我们经常需要使用第二编码器。在西门子数控系统中,我们会使用响应的编码器模块来连接这些第二编码器,比如使用SMC20、SMC30或者SMC40。

       使用SMC30连接TTL信号编码器,在调试的过程中,我们会经常遇到一些问题,有些可能确实是硬件损坏造成的,而有些我们则可以根据实际情况,使用相关编码器的扩展功能来解决它。

3     要求

3.1      硬件要求

image.png

3.2      软件版本要求

        828D V4.5以上


4     调试或使用步骤

4.1     SMC30模块简介                                  

image.png

       电柜安装式编码器模块 SMC30 用于分析不带 DRIVE-CLiQ 接口的电机的编码器信号。可通过 SMC30 连接外部编码器。该模块可以连接以下编码器信号:

• 增量编码器 TTL/HTL,带 / 不带开路检测(仅通过双极性信号进行开路检测)

• SSI 编码器,带 TTL/HTL 增量信号

• SSI 编码器,不带增量信号

此外还可以通过KTY84-130、 Pt1000 或 PTC 热敏电阻检测电机温度。

image.png

4.2     编码器诊断功能

下面我列出编码器信号故障图、报警信息以及可能的原因和解决方法。

编码器信号故障图以及可能的原因:

image.png

 image.png


编码器报警信息以及解决方法:

报警信息

报警内容

解决方法

F3x100

零脉冲距离出错

检查接口分配是否正确(是否将   R 和 –R 混淆)

设定无编码器模式

F3x101

零脉冲故障

检查接口分配是否正确(是否将   A 与 –A 混淆,或者将 B 与 –B 混淆)

设定无编码器模式

F3x117

转换信号 A 和 B 出错

使用“编码器信号监控”

F3x118

转速差值超出容许误差

使用“冻结转速设定值“

F3x131

增量/绝对偏移位置过大

使用“故障时的脉冲数量补偿(对用于换向的磁极位置同样会进行补偿)”

A3x400

报警阈值,零脉冲距离出错

使用“零脉冲公差“

A3x401

报警阈值,零脉冲距离缺失

使用“零脉冲公差”

A3x418

超出了每个采样率的转速差值

使用“冻结转速设定值“

A3x422

方波编码器的脉冲数量超出容许误差

使用“公差带脉冲数量监控”

在可能原因以及解决方法栏里我们看到了相关问题需要怎么解决。


下面我们来逐一看一下上面提到的各个编码器监控扩展功能:

设定无编码器模式

编码器信号监控

零脉冲公差

冻结转速设定值

可设置的硬件滤波器

零脉冲的脉冲沿分析

磁极位置适配

故障时的脉冲数量补偿(对用于换向的磁极位置同样会进行补偿)。

公差带脉冲数量监控

 

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时切换至无编码器模式运行。

 

4.2.2      零脉冲信号监控

       编码器信号监控功能指在使用推挽信号的方波编码器中监控编码器信号 A/B A/B,以及 R R。编码器信号监控用于检测最重要的编码器信号特性(振幅、偏移、相位)。


激活零脉冲信号监控功能:

设置 p0405.2 = 1 以激活该功能。


在激活编码器信号监控前,必须按照说明设置以下参数:

p0404.3 = 1   切换到方波编码器。

p0405.0 = 1      切换到双极信号。


若已从参数 p0400 的列表中选择了编码器,则上述值为预设值且无法进行修改。

p0400 < 9999 的编码器类型描述了具有编码器参数列表的编码器。

选择列表编码器 (p0400 < 9999) 时,编码器参数列表中的参数无法修改(写保护)。如需取消写保护,必须将编码器类型设置为第三方编码器 (p0400 = 9999)。


取消零脉冲信号监控功能:

在编码器信号监控激活时,可设置 p0437.26 = 1 禁用此功能。

4.2.3      零脉冲公差

借助功能扩展“零脉冲公差”,可以忽略与 2 个零脉冲之间编码器脉冲数量相关的故障。


激活零脉冲公差功能:


设置参数 p0430.21 = 1 以激活该功能。

该位为 1:允许零脉冲间距出错一次。在出错时,不会显示故障 F3x100/F3x101,而是报警 A3x400/A3x401。


若该功能激活,则会执行以下响应:

在检测到第 2 个零脉冲后,“零脉冲公差”功能开始生效。

此后 2 个零脉冲间的脉冲数量首次与所配置的脉冲数量出现不一致时,会输出报警 A3x400(报警阈值,零脉冲距离出错)或 A3x4011)(报警阈值,零脉冲故障)

若下一个零脉冲重新在正确的位置出现,则消除报警。

若再次识别出错误的零脉冲位置,则会输出故障 F3x1001)(零脉冲距离出错)或 Fx31011)(零脉冲故障)。

 

4.2.4      冻结转速设定值

       若在转速变化较大的情况下 dn/dt 监控作出了响应,可通过功能扩展“冻结转速原始值”短暂地将转速实际值设为固定值,从而对转速变化进行均衡。

激活冻结转速设定值功能:

设置参数 p0437.6 = 1 以激活该功能。

若该功能激活,则会执行以下响应:

若 dn/dt 监控作出了响应,则会输出报警 A3x418“编码器 x:超出了每个采样率的转速差值”。

此时提供冻结的转速实际值,冻结时间限制为 2 个电流控制器周期。

转子位置继续。

在 2 个电流控制器周期届满后会重新使能当前值。


4.2.5      可设置的硬件滤波器

       可设置硬件滤波器功能用于对编码器信号进行过滤,从而抑制较短的干扰脉冲。


      激活可设置硬件滤波器功能:

设置参数 p0438 ≠ 0 以激活该功能。

在参数 p0438(矩形编码器滤波时间)中输入一个在 0 至 100 μs 范围内的滤波时间。硬件滤波器仅支持 0(无滤波)、0.04 μs、0.64 μs、2.56 μs、10.24 μs 和 20.48 μs 这些赋值,若输入的数值不符合上述要求,则固件会自动将此参数设置成最接近的离散值。此时驱动不会输出报警或故障信息。

激活生效的滤波时间可在参数 r0452 中查看。


       若转速为“n_最大”一半的情况下已对宽度为 ¼ 编码器脉冲的零脉冲触发了报警 F3x100、F3x101 和 F3x131,在硬件滤波器激活时会抑制这些信息。

       设置硬件滤波器时间对转速有一定的影响,滤波时间对最大转速的影响按照以下公式计算:

       n_最大[rpm] = 60 / (p0408 · 2 · r0452)                       p0408 表示旋转编码器的线数。


示例:

在本示例中设定下列值:

• p0408 = 2048

• r0452 = 10.24 [μs]

基于设定的值,通过以下公式计算设置硬件滤波时间后的最大转速(n_最大):

n_最大 = 60 / (2048 · 2 · 10.24 · 10-6) = 1430 [rpm]

结果:借助计算出的滤波时间,能够使电机最大速度达到 1430 rpm。

 

4.2.6      零脉冲的脉冲沿分析

零脉冲的脉冲沿分析功能适用于零脉冲 ≥ 1 脉冲宽度的编码器。在此状况下零脉冲的脉冲沿识别会引发故障。

正方向旋转时分析零脉冲的上升沿,负方向旋转时分析下降沿。这样一来便可将零脉冲宽度大于一个脉冲的编码器作为等距零脉冲编码器(p0404.12 = 1)进行参数设置,也就是说零脉冲检查(F3x100, F3x1011))激活。


激活零脉冲的脉冲沿分析功能:

设置参数 p0437.1 = 1 以激活该功能。

出厂设置 p0437.1 = 0 用于保留零脉冲识别已知时的进程。


设置零脉冲距离

在不利状况下,若驱动在零脉冲上摆动一转,零脉冲宽度的数量级中可能会出现错误。可通过对参数 p4686(零脉冲最小长度)的赋值来应对此特性。可将参数 p4686 设为零脉冲宽度的 ¾,以实现尽可能稳固的特性。


为避免驱动在精度较低时输出故障 F3x100 (N, A)“编码器 x:零脉冲距离出错”,允许较小的可设置的零脉冲距离偏差。在设置了 p0430.22 = 0(无磁极位置适配)和 p0437.2 = 0(故障时不进行脉冲数量补偿)时,参数 p4680(允许零脉冲监控公差)可减少故障 F3x1001) 的触发几率。

4.2.7      磁极位置适配

       就不断重复的零脉冲而言,驱动会添加磁极位置中缺少的脉冲(例如在编码器码盘脏污的情况下),从而对磁极位置中的错误进行补偿。如果添加的脉冲过多(例如由于 EMC 干扰),在超出零脉冲后其会再次减少。

       磁极位置适配功能激活时,会在用于换向的磁极位置中对 A/B 信号上的错误脉冲进行补偿。零脉冲的公差带为 ±30°电角度。补偿速度为 2 个零脉冲间编码器脉冲的 ¼,这样便可对个别错误脉冲以及多余的脉冲进行补偿。


说明:

在“带零脉冲的换向”功能激活时(p0404.15 = 1),系统会等待精同步完成后(r1992.8 = 1)才进行补偿。


激活磁极位置适配功能:

设置 p0430.22 = 1 以激活该功能。

 

4.2.8      故障时的脉冲数量补偿(对用于换向的磁极位置同样会进行补偿)

       外部干扰电流或其他 EMC 故障可能会使编码器检测的结果出现偏差。不过可以通过零脉冲对所测得的信号进行补偿。


激活故障时的脉冲数量补偿功能:

执行以下步骤来调试该功能:

设置 p0437.2 = 1 以激活“故障时的脉冲数量补偿”功能。

为零脉冲距离(p4680)定义允许的公差(编码器脉冲)

定义驱动执行脉冲数量补偿的公差带限值(p4681,p4682)。

通过 p4686 定义零脉冲的最小长度。


       此功能扩展用于在公差带内(p4681、p4682)对 2 个零脉冲间错误的编码器脉冲进行完全补偿。补偿速度为每个电流控制器周期 ¼ 个编码器脉冲。这样便可对缺少的编码器脉冲(例如由于编码器码盘脏污)进行持续补偿。通过参数 p4681 和 p4682 设置脉冲数量的偏离公差。若偏差超出了公差带,则会输出故障 F3x1311)。


       在“带零脉冲的换向”功能激活时(p0404.15 = 1),系统会等待精同步完成后(r1992.8 = 1)才进行补偿。对用于换向的磁极位置同样会进行补偿。为此必须禁用磁极位置适配(p0430.22 = 1)。在转速检测中此功能不会执行补偿。


        通过 p4686 设置零脉冲的最小长度。采用出厂设置 1 可防止 EMC 故障导致零脉冲故障。仅在参数设置了“零脉冲脉冲沿识别”(p0437.1 = 1)时,才会对较短的零脉冲进行抑制。若零脉冲偏差小于零脉冲最小长度(p4686),则不会进行补偿。零脉冲持续出错的情况下会显示故障 F3x101“编码器 x:零脉冲故障”1)或报警 A3x4011)“报警阈值,零脉冲故障”。

4.2.9      公差带脉冲数量监控

公差带脉冲数量监控功能用于监控 2 个零脉冲间的编码器脉冲数量。若此数量位于可设置的公差带外,则会输出报警。


激活公差带脉冲数量监控功能:

设置参数 p0437.2 = 1 以激活监控功能。

通过参数 p4683 和 p4684 设置公差带的上限和下限。在此公差带内识别出的脉冲数量被视作正确。


说明:

在每个零脉冲后都会重新检查:直到下一个零脉冲为止脉冲数量是否位于公差带以内。

若...

则...

若脉冲数量处于公差带以外,并且通过 p0437.2 = 1 设置了“故障时进行脉冲数量补偿”功能,...

则输出报警 A3x4221),持续 5 s

 

若其中一个限值为 0,...

禁用警告 A3x422

 

显示未经补偿的编码器线数

p0437.7 = 1 时,经过补偿的错误脉冲的数量会以正确的符号显示在 r4688 中。

p0437.7 = 0时,在 r4688 中显示每个零脉冲距离进行过补偿的错误脉冲数量。

若...

则...

若旋转一周后的偏移未达到公差带限值,...

则不输出报警。

若超出了零脉冲,...

则会执行新的测量。

 

脉冲数量超出公差带

若...

则...

若超出了公差带,...

 

除了发出警告 A3x4221) 外还会设置 r4689.1 = 1。  

提示

此数值会保持至少 100 ms,这样控制系统即便在驱动高速旋转状态下也能检测到数个连续的、间隙很小的过限值。

 

可将累计的补偿值通过 PROFIBUS / PROFINET 发送至上级控制系统(例如:p2051[x] = r4688)。控制系统可将计数器的内容设置为特定值。

4.3     系统端零脉冲监控

当检测编码器零脉冲故障时,SINUMERIK 828D系统端会产生相关报警:

ALM-25020   轴 %1 编码器零标志监控

ALM-25021   轴 %1 从动编码器零标志监控

 

此时我们若仅适用速度模式,不需要做螺纹,攻丝以及换刀等位置操作时,我们可以使用以下参数暂时关闭

零脉冲的监控:

参数号

含义

36310

ENC_ZERO_MONITORING    零脉冲监控

0:    零脉冲监控关闭。

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

ALM-25000  轴 %1 主动编码器硬件出错

ALM-25001  轴 %1 从动编码器硬件出错

>0 且<100:直接触发开机报警 25000(或 25001)。

>100: 弱化的错误消息:输出复位报警 25010(25011)而非开机报警 25000(25001)。

 

 

5     参考文献

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

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

SINAMIC S120驱动功能手册.pdf       06/2020

6     作者/联系人

Bai Zhi Fu

2021.11.18