1. 从一台挤出机的调试现场说起:为什么DDS参数组值得单独拎出来讲
第一次接触G120的DDS功能,是在一条挤出机生产线上。当时设备运行状态很稳定,但每次换模具、换配方,操作工都要在BOP面板上翻十几页参数,手动改一遍电机额定电流、斜坡时间、加减速曲线,改完还得重新做一次静态辨识。换型一次停机四十分钟,其中真正机械换模只占十分钟,剩下半小时全耗在改参数上。后来把DDS用起来,换型时间直接压到十二分钟以内。
DDS,全称Drive Data Set,中文一般叫驱动数据组。它不是一个"高级功能",而是G120这类变频器出厂就带的基础架构。简单说,它允许你在同一台变频器里存多套驱动参数,通过一个控制位实时切换,切换过程不需要重新上电,也不需要重新做电机辨识。对于需要频繁换配方、换工装、多电机轮换的场合,这是最省事的一套方案。
但DDS的坑也很集中:参数到底存在哪一层、哪些参数能进DDS、切换时为什么会有转矩冲击、BICO互联怎么跟着切、切换命令从哪来。这几个问题不搞清楚,DDS用起来就是"能切但不敢切"。这篇内容就围绕这几个点展开,把创建、配置、切换、验证的完整链路讲透,适合已经上手G120、准备把设备做成多配方柔性生产的调试人员参考。
2. DDS在G120参数体系里的位置:先搞清楚它管什么、不管什么
2.1 三层参数结构:CDS、DDS、MDS的分工
G120的参数体系是分层的,理解这个分层是理解DDS的前提。西门子把驱动参数分成三个可切换的集合:
- CDS(Command Data Set,命令数据组):管的是命令源和设定值源。比如是用端子启停还是用总线启停,速度设定值来自模拟量输入还是来自PROFINET报文。CDS决定"听谁的指令"。
- DDS(Drive Data Set,驱动数据组):管的是电机侧和编码器侧参数。电机额定电压、额定电流、功率因数、极对数、编码器类型、编码器分辨率、电流环和速度环参数,这些都在DDS里。
- MDS(Motor Data Set,电机数据组):管的是电机等效电路参数,也就是辨识出来的那些值——定子电阻、转子电阻、漏感、互感。MDS和DDS是绑定的,一个DDS对应一个MDS。
这三层是正交的。也就是说,你可以用CDS1配DDS2,也可以用CDS2配DDS1,组合关系由参数P0820到P0827这类"选择位"来定义。很多现场调试人员第一次用DDS会犯一个错:以为切了DDS,命令源也跟着切了。实际上不会,命令源归CDS管,DDS只管电机和闭环。
提示:如果你的应用是"同一台电机、不同配方",那需要切的是CDS,不是DDS。DDS解决的是"不同电机或不同编码器"的问题。这个区分搞反了,后面所有配置都是白做。
2.2 哪些参数真正进了DDS
不是所有参数都能放进DDS。G120的DDS里能放的参数是出厂定义好的,主要集中在P0300到P0350这一段电机参数,以及P0400到P0490这一段编码器参数,再加上电流环、速度环、前馈相关的部分参数。具体哪些参数带DDS索引,可以查参数手册里参数号后面有没有"[0...n]"的标注,有标注的才是可索引参数。
举个实际例子。P0304(电机额定电压)是可索引参数,写成P0304[0]到P0304[3],对应DDS0到DDS3。而P1082(最大转速)虽然也影响运行,但它不在DDS里,切换DDS时它不会变。这一点在配置多配方时特别容易踩坑:你以为切了DDS,最大转速就跟着变了,结果没有,因为P1082是全局参数。
判断方法很简单:在BOP或Startdrive里看参数号后面有没有方括号索引。有索引的,切DDS时会跟着切;没索引的,切了也不动。
2.3 DDS数量与硬件资源的对应关系
G120支持的DDS数量取决于具体型号和固件版本。CU240E-2系列一般支持4个DDS,CU250S-2系列也是4个,部分高配固件可以到8个。这个数量不是随便定的,它和变频器内部存储区大小、以及MDS的存储需求直接相关。每增加一个DDS,就要多存一套电机等效电路参数,这些参数是浮点数,占空间。
实际选型时,DDS数量要按"最坏情况"算。比如一条线上有6种模具,每种模具对应不同的电机参数,那至少需要6个DDS。如果变频器只支持4个,就得考虑用两台变频器,或者把参数接近的模具合并到同一个DDS里,靠微调补偿。我一般建议留一个DDS做备用,实际用3个就配4个,方便后期加品种。
3. 创建DDS的完整操作链路:从参数复制到电机辨识
3.1 用Startdrive创建DDS的标准流程
现在调试G120基本都用Startdrive,比BOP面板快得多。创建DDS的标准流程是这样的:
- 在线连接变频器,进入参数视图。
- 找到P0010,设为1(快速调试模式)。这一步是为了解锁电机参数。
- 找到P0304到P0311这一组电机铭牌参数,按第一台电机的铭牌填好。
- 找到P0010,设回0(就绪模式)。
- 找到P1900,设为2(静态辨识),然后给一个启动命令,让变频器做一次静态辨识。
- 辨识完成后,找到P0010,设为1,再找到P0304,这时候参数号后面会出现索引选择,切到DDS1。
- 重复第3到第5步,填第二台电机的铭牌,做第二次辨识。
- 全部做完后,P0010设回0。
这个流程的关键在第6步:切到DDS1之后,P0304显示的是DDS1的值,和DDS0是独立的。如果你不切索引直接改,改的是当前激活的DDS,会把第一台电机的参数覆盖掉。
3.2 参数复制:比逐个填写更稳的做法
如果两台电机型号相同,只是编码器不同,或者电机参数完全一样只是配方不同,那没必要重新辨识。可以用参数复制功能,把DDS0的内容整体复制到DDS1。
在Startdrive里,右键点击驱动对象,选择"参数复制",源选DDS0,目标选DDS1,勾选"电机参数"和"编码器参数",执行。复制完成后,DDS1里的电机参数和DDS0完全一致,只需要改编码器相关的P0400系列参数就行。
这个做法比逐个填参数快,而且不会漏。我试过手动填20多个参数,漏了P0316(电机转动惯量比),结果切换后速度环响应完全不对,查了半天才发现。用复制功能就不会有这个问题。
注意:参数复制不会复制MDS里的辨识结果。如果两台电机的等效电路参数不同,复制完还是要重新做辨识。复制只解决"填参数"的问题,不解决"辨识"的问题。
3.3 电机辨识的时机与DDS的绑定关系
电机辨识(P1900)是在当前激活的DDS上做的。也就是说,你切到DDS1,做辨识,辨识结果存进DDS1对应的MDS1。切回DDS0,DDS0的MDS0不受影响。
这里有个实操细节:辨识过程中如果切换DDS,辨识会中断,而且可能报故障。所以做辨识时一定要确认当前激活的是哪个DDS,做完一个再切下一个。我一般会在辨识前先在纸上记下"当前DDS编号",辨识完再核对一遍。
另外,静态辨识和动态辨识对DDS的要求不同。静态辨识只测电阻电感,不需要电机转动,对DDS切换没影响。动态辨识需要电机转起来,如果机械负载不允许转动,就只能做静态辨识,然后手动填转动惯量。这种情况下DDS之间的差异主要体现在电阻电感上,速度环参数需要手动调。
4. 切换DDS的触发方式:端子、总线、还是面板
4.1 用端子切换:最直接但最容易被干扰
用端子切换DDS是最直观的方式。G120的CU240E-2上有DI端子,可以把其中两个配成DDS选择位。具体配置:
- P0820设为r0722.0(DI0作为DDS位0)
- P0821设为r0722.1(DI1作为DDS位1)
这样DI0和DI1的组合就决定当前激活哪个DDS。00对应DDS0,01对应DDS1,10对应DDS2,11对应DDS3。
这个方式的问题是:端子信号容易受干扰。如果DI线走线不好,或者和动力线捆在一起,切换瞬间可能产生抖动,导致DDS反复切换。我遇到过一回,DI1的线屏蔽层没接好,电机启动时DDS在0和1之间跳了三次,变频器直接报F07900(驱动数据组切换故障)。
解决办法有两个:一是用屏蔽双绞线,屏蔽层单端接地;二是在P0820/P0821后面加一个延时,用P2016这类参数做滤波。但更稳的做法是用总线切换。
4.2 用PROFINET总线切换:适合自动化程度高的场合
如果变频器挂在PROFINET上,用总线切换DDS是最干净的。G120的报文里有一个控制字,控制字的第15位和第16位(具体位号取决于报文类型)可以映射成DDS选择位。
以标准报文1为例,控制字1的位15和位16对应DDS位0和位1。在PLC侧,只需要在程序里改这两个位,就能切换DDS。切换命令和速度设定值走同一帧报文,同步性好,不会出现"速度已经给了但DDS还没切过去"的情况。
配置步骤:
- 在Startdrive里,找到P0820,设为r2090.15(控制字1的位15)。
- 找到P0821,设为r2090.16(控制字1的位16)。
- 下载配置,重启变频器。
- 在PLC程序里,把DDS选择位写到控制字的对应位。
这个方式的好处是切换命令来自PLC,可以和配方管理逻辑绑定。比如PLC里存了6套配方,每套配方对应一个DDS编号,换型时PLC自动把DDS编号写下去,操作工只需要选配方,不用管DDS。
4.3 切换时序:为什么不能和使能信号同时给
DDS切换有一个硬性要求:切换时变频器必须处于"禁止运行"状态,也就是OFF1或OFF2。如果在运行中切换DDS,变频器会报F07900。
这个要求的逻辑是:DDS里包含电机参数,运行中切换相当于突然换了电机模型,电流环和速度环的参考值会突变,可能造成过流或失步。所以正确的时序是:
- 给OFF1命令,等变频器完全停止(状态字显示"运行使能"为0)。
- 改DDS选择位。
- 等一个扫描周期,确认DDS切换完成(可以读r0051看当前DDS编号)。
- 给ON命令,重新使能。
这个时序在PLC程序里要写清楚。我见过有人图省事,把DDS选择位和ON命令放在同一个扫描周期里给,结果十次有三次报故障。后来加了0.5秒延时,就再没出过问题。
提示:r0051是当前激活的DDS编号,可以在PLC里读回来做确认。切换命令给下去之后,不要立刻给ON,先读r0051,确认等于目标DDS编号,再给ON。这个确认步骤能避免90%的切换故障。
5. BICO互联与DDS的联动:切换时哪些连接会跟着变
5.1 BICO互联的DDS索引机制
BICO互联是G120里把参数连起来的方式,比如把模拟量输入连到速度设定值,或者把控制字位连到使能。BICO互联的参数(P0840、P0842、P0844这类)也是可索引的,它们跟着CDS走,不跟着DDS走。
但有些BICO互联是跟DDS绑定的。比如电流限幅的源、转矩限幅的源,这些参数在DDS里有索引。切换DDS时,这些互联会跟着切。如果DDS0里电流限幅来自P0640,DDS1里来自模拟量输入,切换后限幅源就变了。
这个机制在配置时要注意:如果你希望某个互联在所有DDS里都一样,那就要在每个DDS里都配一遍,或者用CDS来管。如果只在DDS0里配了,切到DDS1后那个互联就是空的,可能报故障。
5.2 切换DDS时BICO互联的验证方法
验证BICO互联是否跟着切,最直接的方法是看参数。在Startdrive里,切到DDS1,看P0840(ON/OFF1命令源)显示什么。如果显示的是r2090.0,说明跟DDS0一样;如果显示0,说明DDS1里没配。
我一般会在调试完成后做一次"切换遍历":把每个DDS都切一遍,每个DDS下都检查一遍关键互联参数,确认没有空的。这个步骤花十分钟,能省掉现场调试时几个小时的排查。
关键互联参数清单:
| 参数 | 含义 | 是否跟DDS |
|---|---|---|
| P0840 | ON/OFF1命令源 | 跟CDS |
| P0844 | OFF2命令源 | 跟CDS |
| P0848 | OFF3命令源 | 跟CDS |
| P1070 | 主设定值源 | 跟CDS |
| P0640 | 电流限幅 | 跟DDS |
| P1520 | 转矩上限 | 跟DDS |
| P1521 | 转矩下限 | 跟DDS |
这张表里,P0640、P1520、P1521是跟DDS的,切换时要特别关注。如果DDS1里P0640没配,切换后电流限幅就是0,电机一启动就报过流。
5.3 用脚本批量检查DDS配置
如果DDS数量多,手动检查太慢。可以用Startdrive的脚本功能,或者用DriveCliX这类工具,批量读参数。思路是:对每个DDS索引,读一遍关键参数,输出成表格,对比差异。
比如用Python写一个简单的检查脚本,通过OPC UA或PROFINET读参数,逻辑是:
# 伪代码,示意检查逻辑 dds_count = 4 key_params = ['P0304', 'P0305', 'P0310', 'P0640', 'P1520', 'P1521'] for dds in range(dds_count): for param in key_params: value = read_param(param, dds_index=dds) print(f"DDS{dds} {param} = {value}")这个脚本跑一遍,哪个DDS缺哪个参数一目了然。实际项目中我用这个办法查出过DDS2的P1520没配,切换后转矩上限是默认值,导致电机出力不够,挤出机压力上不去。
6. 切换DDS时的转矩冲击:原因与抑制手段
6.1 转矩冲击的根源:磁通估算的突变
切换DDS时,如果两台电机的参数差异大,最明显的现象是切换瞬间有"咯噔"一下,电机抖一下,或者电流表指针跳一下。这个冲击的根源是磁通估算的突变。
变频器的矢量控制依赖电机模型,模型里的定子电阻、转子电阻、互感这些参数决定了磁通估算的准确性。切换DDS时,模型参数瞬间从一套换成另一套,但电机里的实际磁通不会瞬间变。如果两套参数差异大,估算磁通和实际磁通就对不上,转矩给定就会跳,表现出来就是冲击。
差异越大,冲击越明显。如果两台电机型号完全一样,只是编码器不同,冲击基本感觉不到。如果一台是4极电机,一台是6极电机,冲击就很明显。
6.2 抑制冲击的三个实操手段
第一个手段是切换前先停机。这是最基本的,也是必须做的。停机后磁通衰减到零,切换DDS时没有磁通估算的冲突,冲击自然就没了。这个手段能解决90%的冲击问题。
第二个手段是切换后延时使能。即使停了机,切换DDS后也不要立刻给ON。等0.5到1秒,让变频器内部完成参数加载和模型初始化,再给ON。这个延时在PLC程序里加一个定时器就行。
第三个手段是参数平滑。如果工艺不允许停机切换,那就只能让两套DDS的参数尽量接近。具体做法是:把两套DDS的电机参数调成一样,只让编码器参数不同,或者只让速度环参数不同。这样切换时模型变化小,冲击就小。但这个方法有局限,如果两台电机本身差异大,参数没法调成一样。
注意:如果工艺要求运行中切换DDS,那基本做不到无冲击。G120的设计就是要求停机切换,硬要运行中切,轻则报故障,重则损坏机械。我见过一个案例,运行中切DDS,联轴器直接扭断,损失不小。
6.3 切换后的速度环自整定
切换DDS后,如果新DDS的速度环参数和实际负载不匹配,可能出现振荡或响应慢。这时候需要做一次速度环自整定(P1960)。
自整定的前提是电机能转,而且负载不能太重。如果负载重,自整定可能失败。这时候可以手动调P1470(速度环增益)和P1472(速度环积分时间)。经验值是:增益从默认值开始,每次加20%,直到出现轻微振荡,然后退回去一半。积分时间从默认值开始,每次减20%,直到响应变快但不振荡。
这个调参过程需要反复试,没有捷径。我一般会在空载时先调好,然后带载微调。调好后把参数存进对应的DDS,下次切换就不用再调了。
7. 常见故障与排查链路:从F07900说起
7.1 F07900的触发条件与排查顺序
F07900是DDS切换故障里最常见的。触发条件有三个:运行中切换、切换目标DDS不存在、切换时参数校验失败。
排查顺序:
- 先看故障值(r0949),故障值里包含当前DDS编号和目标DDS编号。如果目标DDS编号大于实际配置的DDS数量,那就是配置问题。
- 确认切换时变频器是否在运行。看状态字r0052的位1(运行使能)是否为0。如果不是0,说明切换命令给早了。
- 检查DDS选择位的信号质量。用示波器看DI端子的波形,或者用Startdrive的跟踪功能看r0722的变化。如果有抖动,就是干扰问题。
- 检查P0820/P0821的配置。确认映射的位号正确,没有映射到同一个位。
这个顺序是从"配置"到"时序"到"信号"逐层排查,能覆盖大部分情况。
7.2 切换后电机不转或反转的排查
切换DDS后电机不转,或者转向反了,通常是编码器参数的问题。DDS里包含编码器参数(P0400系列),如果DDS1的编码器参数和实际编码器不匹配,或者P0410(编码器方向)设反了,就会出现不转或反转。
排查方法:
- 看P0400(编码器类型)是否和实际编码器一致。
- 看P0408(编码器脉冲数)是否和编码器铭牌一致。
- 看P0410(编码器方向)是否需要取反。如果电机转向和设定相反,把P0410从0改成1,或者从1改成0。
这个排查过程要在线做,改完参数立刻试。如果编码器参数不对,变频器可能报F0090(编码器故障),也可能不报,只是运行不正常。
7.3 切换后速度环振荡的排查
切换DDS后速度环振荡,表现为电机转速忽高忽低,电流波动大。原因通常是新DDS的速度环参数和负载不匹配。
排查步骤:
- 看P1470和P1472的值,和DDS0对比。如果差异大,先怀疑参数问题。
- 做一次速度环自整定(P1960),看能否自动调好。
- 如果自整定失败,手动调。先把P1470减半,看振荡是否减弱。如果减弱,说明增益太高。如果没变化,可能是积分时间的问题,把P1472加倍试试。
- 检查P1441(速度环滤波时间),如果太小,噪声会进入速度环,引起振荡。适当加大。
这个排查过程需要耐心,每次只改一个参数,改完观察效果。我一般会记录每次改动的值和效果,避免来回试。
8. 多DDS项目的调试顺序与文档习惯
8.1 先配DDS0,再复制,最后改差异
多DDS项目的调试顺序很重要。我的习惯是:
- 先把DDS0配好,包括电机参数、编码器参数、速度环参数,做一次完整辨识和自整定。
- 把DDS0复制到DDS1、DDS2、DDS3。
- 逐个切到DDS1、DDS2、DDS3,只改差异部分。比如DDS1只改编码器参数,DDS2只改电机额定电流。
- 每个DDS改完后,做一次切换测试,确认能正常切、正常跑。
这个顺序的好处是:DDS0是基准,后面的DDS都是在基准上改,不会出现"每个DDS都从头配"的重复劳动。而且基准配好了,后面的DDS出问题也容易对比排查。
8.2 参数文档的必备字段
多DDS项目一定要有参数文档。文档里至少包含:
| 字段 | 说明 |
|---|---|
| DDS编号 | 0到3 |
| 对应电机 | 电机型号或工位号 |
| 电机铭牌参数 | P0304到P0311 |
| 编码器参数 | P0400到P0410 |
| 辨识日期 | 做辨识的日期 |
| 速度环参数 | P1470、P1472 |
| 切换触发方式 | 端子或总线 |
| 备注 | 特殊配置说明 |
这个文档在后期维护时特别有用。设备运行半年后,如果某个DDS出问题,翻文档就能知道当时配了什么,不用重新摸索。
8.3 切换测试的检查清单
每次调试完多DDS项目,做一次完整的切换测试。检查清单:
- 每个DDS都能切到,r0051显示正确。
- 每个DDS下电机都能正常启动、停止。
- 每个DDS下速度设定值响应正常。
- 每个DDS下电流限幅、转矩限幅生效。
- 切换过程中没有报故障。
- 切换后编码器反馈正常,没有F0090。
- 切换后速度环没有持续振荡。
这个清单跑一遍大概二十分钟,但能避免现场运行时出问题。我见过一个项目,调试时只测了DDS0和DDS1,DDS2和DDS3没测,结果运行时切到DDS3就报故障,查了半天发现DDS3的P0640没配。
9. 从DDS延伸到配方管理:把切换逻辑做进PLC
9.1 配方号与DDS编号的映射
如果设备有几十种配方,每种配方对应不同的电机参数,那DDS数量可能不够用。这时候可以把配方号和DDS编号做映射:几种配方共用一个DDS,配方之间的差异用PLC侧的参数补偿。
比如有10种配方,变频器只有4个DDS。可以把配方1到3映射到DDS0,配方4到6映射到DDS1,以此类推。每种配方在PLC里存一套补偿参数,切换配方时先切DDS,再把补偿参数写下去。
这个做法要求补偿参数是变频器支持的、可以通过总线写的。比如速度环增益、斜坡时间这些,都可以通过总线写。但电机额定电流这种参数,写下去需要重新辨识,不能在线改。所以映射时要确保同一DDS下的配方,电机参数是一致的,只有工艺参数不同。
9.2 PLC侧的切换逻辑框架
PLC侧的切换逻辑可以写成一个功能块,输入是配方号,输出是DDS选择位和补偿参数。逻辑框架:
- 读配方号。
- 查表得到目标DDS编号和补偿参数。
- 如果当前DDS不等于目标DDS,先给OFF1,等停止。
- 写DDS选择位。
- 读r0051,确认切换完成。
- 写补偿参数。
- 给ON,启动。
这个逻辑块可以复用,每个配方只需要在表里加一行。维护时改表就行,不用改程序。
9.3 切换失败的兜底策略
如果切换失败(比如r0051一直不等于目标DDS),要有兜底策略。我的做法是:
- 切换超时(比如2秒)后,报一个报警,提示操作工。
- 保持当前DDS不变,不强行启动。
- 允许操作工手动选择"用当前DDS继续运行"或"停机检修"。
这个兜底策略能避免切换失败后设备卡死。我见过一个项目,切换失败后程序一直等,操作工不知道怎么回事,停了半小时。后来加了超时报警,操作工一看就知道是切换问题,能及时处理。
10. 个人实操体会:DDS用得好不好,差别在细节
DDS这个功能,说复杂不复杂,说简单也不简单。核心就是"存多套参数、切着用",但真正用好,差别全在细节上。
我自己的体会是:第一,一定要先搞清楚CDS和DDS的分工,别把命令源的问题当成DDS问题。第二,切换时序比切换配置更重要,配置错了能查出来,时序错了就是随机故障,最难排查。第三,参数文档和切换测试不能省,省了当时舒服,后期维护时加倍还回来。
还有一个小技巧:如果现场有多台同型号设备,可以把一台设备的DDS参数导出成文件,直接导入到其他设备。Startdrive支持参数导出为XML或CSV,导入时选择对应的DDS索引就行。这个做法在批量项目里能省大量时间,而且保证多台设备的参数一致。
最后说一个容易忽略的点:DDS参数是存在变频器里的,如果变频器更换或固件升级,DDS参数可能丢失。所以每次调试完,一定要把参数导出备份。我一般会备份两份,一份存本地,一份存设备档案。换变频器时直接导入,不用重新调试。这个习惯帮我省过好几次事,特别是半夜设备故障需要换变频器的时候,有备份就能快速恢复。