ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

西门子S7-1200配汇川SV660P伺服速度控制:从选型到调试

西门子S7-1200配汇川SV660P伺服速度控制:从选型到调试 西门子S7-1200配汇川SV660P伺服做速度控制这套组合在中小型设备上出现得越来越频繁。我之前在一个改造项目里客户原来的设备用步进电机加减速箱噪音大、响应慢运转一段时间还丢步后来换成SV660P加伺服电机由S7-1200输出速度给定整个系统的动态响应完全不是一回事。不过从接线到真正转起来中间确实有不少细节很多第一次上手的朋友容易卡在参数设置和程序逻辑上。这篇文章就把这套组合从选型到调试的全流程拆开讲适合刚接触伺服控制的电气工程师、设备维护人员和自动化专业的学生参考尽量做到照着做就能转起来。1. 为什么是S7-1200加SV660P速度控制选型的思路1.1 这套组合在设备里的定位S7-1200是西门子中小型PLC里出货量很大的一个系列处理速度任务、逻辑控制、通信扩展都很成熟尤其是带晶体管输出的型号自带高速脉冲输出用来驱动伺服和步进非常顺手。汇川SV660P作为国产伺服里市场占有率很高的产品性价比突出转矩响应、速度刚性这些核心指标在同类产品里表现稳定再加上汇川的调试软件InoDriveShop免费开放调试门槛比很多进口品牌低不少。两者搭配是典型的“中端PLC加中端伺服”方案用在包装机械、木工机械、印刷设备、光伏设备这些场合足够用。1.2 速度模式和位置模式的边界在哪里很多初学者搞不清伺服的速度模式、位置模式、转矩模式到底怎么选。简单说控制模式指令来源输出量典型场景位置模式脉冲串或总线指令电机转角/位置定长裁切、点定位、机械臂关节速度模式模拟量或内部速度参数电机转速收放卷、传送带、磨削主轴、离心机转矩模式模拟量或内部转矩参数电机输出转矩压合、张力控制、锁螺丝速度模式解决的核心问题是“让电机稳定转在给定转速上”并不关心电机最终停在哪里。比如收放卷设备材料线速度恒定卷径在变伺服的速度模式配合张力传感器做闭环卷径变化时自动调整转速这就是速度模式典型的应用。本文讲的场景也是这个方向PLC给出一个速度指令伺服自己完成速度闭环。需要强调一点速度模式的精度和动态响应完全取决于驱动器内部的速度环和PLC的扫描周期关系不大。所以速度指令无论是模拟量还是通信方式给进去PLC端的程序都不会成为速度环的瓶颈这也是速度控制比位置控制更容易调试的原因之一。1.3 系统总体架构和数据流向整套系统的信号流大概是这样的操作员通过触摸屏或按钮输入目标转速单位可以是r/min、m/min。S7-1200根据设定值和当前实际值做逻辑判断输出一个速度给定信号。速度给定信号通过模拟量模块的0~10V电压或者正负10V送到SV660P的速度指令输入端子。SV660P内部的速度环根据给定速度和编码器反馈的实际速度做闭环调节输出PWM到伺服电机。电机上的编码器实时反馈转速和位置信息给驱动器驱动器同时把运行状态、报警信号反馈给PLC。整个闭环都在驱动器内部完成PLC只负责“发号施令”和“监听状态”这对程序的稳定性要求反而降低了调试重心集中在参数匹配和接线规范上。2. 接线全流程主回路、控制回路、屏蔽与接地2.1 项目用的硬件清单按照常规项目配置这套速度控制系统的硬件包括S7-1200 CPU建议选DC/DC/DC型号比如CPU 1214C DC/DC/DC方便和外部24V电源统一供电。模拟量输出模块SM1232 AQ 4x13bit用于输出0~10V速度指令。如果CPU自带模拟量输出也可以直接使用。汇川SV660P伺服驱动器具体功率根据伺服电机额定功率匹配。汇川伺服电机配23位增量编码器或绝对值编码器的型号都可以。开关电源24V直流给PLC和驱动器的控制电路供电。断路器、接触器、滤波器、制动电阻如果有再生制动需求。这里特别提醒S7-1200 CPU 1214C DC/DC/DC自带两路高速脉冲输出Q0.0和Q0.1。如果你不需要用脉冲方式控制伺服这两路可以作为普通输出使用但要注意一旦配置为PTO/PWM功能它们就不能当普通DO用了后续编程时容易混淆。2.2 主回路接线伺服驱动器的主回路接线遵循“先断后接、断电操作”的原则。以三相380V输入的SV660P为例三相电源经过空气开关和接触器后接到驱动器R、S、T三个电源输入端。驱动器U、V、W三个输出端接到伺服电机的U、V、W三相绕组顺序不能错接反了电机会反转甚至报警。驱动器的P、D、C端子用于外接制动电阻。小功率伺服750W以内一般内置制动电阻不需要外接大功率或者频繁启停的场合建议外接制动电阻否则减速时能量回馈会导致驱动器过压报警。电机的地线端子必须和驱动器PE端子、电网地线可靠连接接地电阻要求小于4Ω。主回路接线的关键是力矩。用冷压端子压接确保接触良好。我见过不少现场问题都是因为主回路端子松动导致运行一段时间后出现过流报警或者电机缺相。2.3 控制信号接线速度模式下控制信号分三类开关量输入、模拟量指令、开关量输出。开关量输入主要接这几个信号SON伺服使能这是最重要的输入信号SON接通后驱动器才给电机通电。一般由PLC的数字量输出模块给一个24V高电平信号。CCW/CW正反转禁止如果设备有正反转限制需求可以接限位开关信号。ALM-RST报警复位驱动器报警后PLC给一个脉冲信号清除报警。SPD0/SPD1内部速度选择如果你不用模拟量给定而是用驱动器内部的预设速度就需要通过这两个端子选择速度段。用模拟量给定时可以不接。模拟量指令接线速度指令信号从S7-1200的SM1232模拟量输出模块AO0通道接到SV660P的V-REF或SPD/REF端子和GND端子。接线用屏蔽双绞线屏蔽层单端接地。SV660P的数字量输入端子一般默认支持PNP接法也就是高电平有效。S7-1200的晶体管输出模块正好也是PNP类型两者可以直接对接。这里要注意如果PLC用的是继电器输出模块虽然也能控制但继电器响应慢且有机械寿命不建议用在需要频繁通断的使能信号上。2.4 屏蔽和接地最容易被忽视的细节伺服系统是典型的变频器加电机结构干扰问题突出。接地和屏蔽做得不好会出现速度波动、位置偏移、通信丢包等奇怪现象。几个必须做到的细节编码器线、模拟量线、通信线全部使用屏蔽电缆且屏蔽层在驱动器一侧用屏蔽卡扣或接地环压接到驱动器PE端子另一端悬空也就是单端接地。动力线RST和UVW绝对不能和信号线走在同一个线槽里间距至少保持20厘米。动力线交叉时必须垂直交叉不能平行走线。S7-1200的24V电源负极M要和PE端子短接采用“单点接地”方式。同时检查开关电源的24V输出是否和大地隔离有些劣质电源隔离不好会引入共模干扰。伺服驱动器必须独立接地不要通过设备机架的螺丝随便搭接地要专门用黄绿双色线接到主接地排。我之前处理过一个现场设备一开起来触摸屏就花屏伺服偶尔报过流查了一个下午最后发现是编码器线穿过了一段动力线桥架干扰串进了编码器反馈把编码器线重新走位之后问题彻底消失。这种问题一旦发生排查起来非常痛苦不如接线时一次做到位。3. SV660P参数设置速度模式核心参数逐项说明3.1 上电前的状态确认与恢复出厂参数设置之前先把状态确认清楚确认驱动器型号和功率标签确保和伺服电机匹配。确认控制电源和主电源电压等级正确。确保电机轴没有带负载或者负载能自由转动。上电后进入InoDriveShop软件连接方式可以用USB转RS485也可以直接用网线连接。汇川SV660P支持以太网调试先把电脑的IP地址设置到和驱动器同一网段驱动器默认IP一般为192.168.1.20然后在软件里扫描设备。建议第一步先把参数恢复出厂。这是调试前的标准动作防止设备出厂前被改过参数。在InoDriveShop里找到“恢复出厂”功能执行后驱动器会自动重启。注意恢复出厂后编码器类型会自动匹配不需要额外设置这是汇川驱动器的便利之处。3.2 控制模式与速度指令源设置SV660P参数按功能分成H00到H0F多个组不同固件版本参数编号可能有差异以下参数名称和功能以SV660P最新版手册为准。把控制模式设置为速度模式参数名称设置值含义H02-00控制模式1速度模式驱动器只执行速度闭环H02-01速度指令源1模拟量指令从模拟量输入端子读速度给定设置完这两个参数后驱动器接收到模拟量电压就会按比例输出转速。速度指令源的选项里可能还有“内部速度指令”、“通信指令”等选项用模拟量控制就选模拟量。这里有个容易踩的坑模拟量输入的类型。SV660P的模拟量输入支持0~10V电压和-10V~10V电压两种模式有些型号还支持0~20mA电流。如果不小心选了电流模式电压信号读取会不正常。这个选择一般在H05组相关参数里确认设成电压模式。3.3 速度环增益与加减速时间速度模式运行是否平稳很大程度取决于速度环增益。SV660P做了自适应整定功能可以通过面板或软件触发一次“惯量辨识”驱动器会自动测出负载惯量比并推荐一组增益参数。这个方法对大多数场合够用。手动设置时关注这几个参数参数名称设置思路H08-00速度环比例增益默认值基础上逐步增大直到电机声音开始尖锐就回退一点H08-01速度环积分时间越小响应越快过小会引起振荡H05-00模拟量指令增益决定1V电压对应多少r/min转速H05-01模拟量指令零漂电压为0时电机还缓慢爬行就调这个参数模拟量指令增益直接决定速度给定曲线举个例子如果设定1V对应300r/min那么驱动器满量程10V对应3000r/min。这个值要结合电机额定转速来设不要超过电机额定转速。加减速时间参数H02-02、H02-03一般也要设一下避免速度突变导致机械冲击。比如设置加速时间1.0秒意味着从0加速到1000r/min需要1秒如果你的模拟量指令直接从0V跳到10V驱动器会在1秒内从0加速到3000r/min而不是瞬间达到。3.4 监视参数与参数固化调试时通过驱动器的“监视模式”查看实时运行数据重点看以下几个量实际转速Speed FBK速度指令Speed Ref母线电压DC Bus Voltage电机电流Motor Current编码器位置如果在InoDriveShop里看到实际转速和速度指令始终存在一个稳定的偏差且电机运行平稳那说明速度环的积分作用偏弱适当减小积分时间就能消除静差。如果实际转速在给定值附近波动先看机械上有没有明显的振动源再去调增益。参数设置完成后必须做一次“参数保存”操作否则断电后参数全部丢失。SV660P的备份功能可以直接把参数导出成文件存到电脑里下次遇到同型号设备直接一键导入效率非常高。4. 西门子S7-1200编程从硬件组态到速度给定程序4.1 硬件组态与I/O地址分配在TIA Portal里新建项目添加S7-1200 CPU然后从硬件目录里拖入SM1232 AQ模块。组态里注意通道的测量范围设置为0~10V和你实际接线保持一致。如果不小心设成4~20mA输出信号会完全不对。组态完成后系统会自动给模拟量输出通道分配地址比如AQ0对应的地址是QW80这取决于模块插在哪个槽位。在PLC变量表里把这几个关键地址定义好变量名地址数据类型说明Servo_SONQ0.4Bool伺服使能Servo_ALM_RSTQ0.5Bool报警复位Servo_ALMI0.4Bool驱动器报警输入Servo_ReadyI0.5Bool驱动器准备好输出Analog_SpeedQW80Int模拟量速度给定0~27648对应0~10V这里涉及一个非常重要的知识点S7-1200模拟量输出的整定值范围是0~27648。也就是说程序里输出27648对应硬件10V输出13824对应5V输出0对应0V。4.2 模拟量标定与速度给定换算既然0~27648对应0~10V而驱动器侧1V对应300r/minH05-00设定那么PLC程序里需要做一个换算把用户输入的转速值单位r/min换算成模拟量输出值。换算公式模拟量输出值 目标转速 / (V_per_rpm × 10V对应的rpm) × 27648或者换一种更直观的方式先用H05-00算出每1V对应的转速再算出10V满量程对应的转速比如10V对应3000r/min那么模拟量输出值 目标转速 / 3000 × 27648举个例子目标转速1200r/min满量程3000r/min那么模拟量输出值 1200 / 3000 × 27648 11059程序里可以用浮点数计算最后传给QW80时自动取整。要注意的是目标转速不要超过满量程对应的转速否则输出值超过27648会溢出。4.3 使能逻辑、点动和斜坡处理速度模式伺服控制程序核心逻辑其实就三块使能逻辑伺服使能是一个“开了就最好不要频繁断开”的信号。我在实际项目中一般这样设计按下启动按钮先给SON置位保持导通。按下停止按钮不立即断开SON而是先把速度给定降到0等电机实际转速接近0之后延迟比如500ms再断开SON。这样做有两个原因一是避免电机还在高速运转时突然断电导致设备在惯性作用下自由滑行容易出安全事故二是频繁通断使能会降低伺服驱动器内部继电器和电机抱闸的寿命。速度斜坡模拟量速度给定如果从0瞬间跳到10V电机会以最大扭矩加速机械冲击非常大。程序里要做一个斜坡处理让给定值按照设定的斜率逐渐上升或下降。实现斜坡有三种方式第一种是在PLC里用定时器和累加指令自己做斜坡第二种是用PID指令当斜坡发生器用第三种是直接利用SV660P驱动器内部的加减速时间参数H02-02/H02-03驱动器内部会把阶跃的速度指令按照设定的时间平滑过渡。我建议优先用第三种方式把斜坡功能放在驱动器里做PLC程序更简单而且驱动器内部的加速处理比PLC扫描周期的离散处理更平滑。点动功能调试阶段几乎离不开点动。程序中添加一个点动按钮按下时输出一个固定频率的速度给定比如对应50r/min松开就回到0。点动速度不宜设置过大一般不要超过额定转速的10%不然调试时很容易发生碰撞事故。4.4 完整的速度控制程序示例下面给一个完整的SCL程序示例包含了使能、速度给定换算、报警复位和停止时序// 速度给定换算 #RawSpeed : REAL_TO_INT(#SetSpeed_rpm / 3000.0 * 27648.0); IF #RawSpeed 27648 THEN #RawSpeed : 27648; END_IF; IF #RawSpeed 0 THEN #RawSpeed : 0; END_IF; Analog_Speed : #RawSpeed; // 启动逻辑按下启动置位使能 IF Start_Button AND NOT #Servo_Running THEN #Servo_Running : TRUE; Servo_SON : TRUE; END_IF; // 停止逻辑先停给定再延时断使能 IF Stop_Button AND #Servo_Running THEN #SetSpeed_rpm : 0.0; IF #SpeedIsZero THEN #DelayDone : TON(IN : TRUE, PT : T#500MS).Q; IF #DelayDone THEN Servo_SON : FALSE; #Servo_Running : FALSE; END_IF; END_IF; END_IF; // 报警处理驱动器报警时断开使能并复位 IF Servo_ALM THEN Servo_SON : FALSE; Servo_ALM_RST : TRUE; // 复位信号保持一个扫描周期 TON(IN : TRUE, PT : T#100MS).Q; // 延时100ms Servo_ALM_RST : FALSE; END_IF;这个程序在真实项目中足够用了。如果你希望更完善的逻辑可以在此基础上增加急停处理、限位联锁、触摸屏通信等模块。5. 调试流程与常见故障排查5.1 上电调试的标准顺序伺服系统调试最忌讳“一通乱试”。我调试这套系统时会严格按下面的顺序走断电状态下检查所有接线特别是电源线、电机线、编码器线有没有接对、有没有松动。驱动器上电不使能确认面板无报警。这个阶段用InoDriveShop读取母线电压、编码器位置确认编码器通讯正常。手动在驱动器面板上做点动测试确认电机可以正反转方向没问题。这一步如果发现方向反了先检查UVW相序不要上来就改方向参数。设置速度模式相关参数保存并重启驱动器。确认SON信号有效驱动器进入使能状态面板上“RUN”状态点亮。在PLC程序里给定一个很小的速度值比如50r/min观察电机运转方向和转速反馈是否正常。逐步加大给定速度观察整个速度范围内的运行稳定性。加入斜坡测试加减速过程是否平稳。完整跑一遍启动、加速、匀速、减速、停止的流程确认停机时序没有异常。5.2 电机不转的排查链路电机不转是新手遇到最多的问题。遇到这个问题不要慌按链路一步步排查第一步看驱动器面板有没有报警。有报警按照报警代码查手册无报警继续往下看。第二步查SON是否有效。面板上或者InoDriveShop监视界面里确认伺服“RUN/使能”状态是否为使能。如果SON没导通驱动器不会给电机通电电机轴用手能掰得动。第三步查速度指令是否到达驱动器。在InoDriveShop里监视“速度指令”的值如果给定为0检查PLC程序里有没有把模拟量值传到QW80再检查模拟量端子有没有接触不良。第四步查速度指令极性。如果速度指令显示为负值电机可能被正方向禁止信号挡住了。这种细节在调试初期很容易漏掉。第五步查电机没有没被机械卡死。断开电机和负载的联轴器手动盘一下电机轴确认机械部分没有卡滞。整个排查过程最关键的判断点在于“使能状态是否正常”和“速度指令是否正常”这两个点确认了90%的问题都能定位。5.3 运行中振动、异响、速度不稳电机转起来了但出现振动、异响、转速不稳这些现象一般分为三类原因第一类是机械共振。电机带着负载运行到某个转速区间时机械系统产生共振声音明显变大。解决办法启用SV660P的陷波滤波器功能或者调整速度环增益让系统刚性降一点。共振频率可以通过InoDriveShop的FFT分析功能看出来然后针对性地设置陷波频率。第二类是速度环参数不合适。速度环增益过高会表现为高频啸叫或者在匀速段出现轻微波动增益过低会表现为启动困难、速度响应迟钝。处理方式是先恢复默认增益再按“先增大比例增益P后减小积分时间I”的顺序逐步调节每次调整幅度不超过默认值的10%。第三类是模拟量信号干扰。速度不稳同时伴随电机运行声音“发毛”打开监视界面看实际转速有密集的小幅波动大概率是模拟量信号受到了干扰。检查模拟量线是否双绞屏蔽、屏蔽层是否接地、有没有和动力线并行走线。5.4 常见报警代码分析SV660P常见的报警代码和处理思路报警代码名称处理思路Er.100过流检查电机线是否短路、UVW相序是否错了Er.200过压检查输入电压是否过高、制动电阻是否接好Er.300欠压检查输入电压是否偏低或缺失、主回路接触器是否吸合Er.410编码器异常检查编码器线是否松动、屏蔽层是否接地Er.510过载检查机械负载是否卡死、加减速时间是否太短Er.530过速度检查速度指令是否超出额定转速过多Er.710位置偏差过大速度模式下较少出现若出现多为机械卡滞报警处理有个通用原则先把报警复位再分析原因。但复位之前一定要确认报警根源已经排除否则会出现“消除报警-再次报警”的循环反而掩盖了真实问题。6. 项目实操中的几个重要经验和进阶思路6.1 值得养成的调试习惯做了这么多年伺服调试我总结几个非常实用的习惯参数备份及时做。每完成一个阶段的参数调整就导出一次参数文件并做好命名。我习惯用“日期_版本_说明”这样的格式比如“20250115_速度模式_加斜坡_备份.par”。这样可以随时回退到任意一个调试节点不怕改乱参数。程序里保留手动模式和自动模式的切换。即使是小项目也建议做这个功能。手动模式下可以单独测试每个动作自动模式下走完整流程。没有这个切换调试时只能反复改程序逻辑效率很低。给模拟量通道做滤波。S7-1200的模拟量输入通道自带数字滤波模拟量输出通道虽然没有滤波但可以在程序里用平滑指令对给定值做一阶惯性处理滤掉输出端的微小波动。论坛上常说的“AI编程”其实就包括这些工程经验把逻辑封装成功能块下次直接用。操作面板上强制显示关键状态。把伺服使能状态、报警状态、实际转速这三个信号做到触摸屏上操作员一眼就能看出问题出在哪个环节省得每次都要开电脑连驱动器。6.2 从速度模式向总线控制的扩展速度模式这套方案的优势是简单直观但它也有明显短板模拟量传输信号容易受干扰精度有限而且一根模拟量线只能传一个速度指令多轴设备需要很多模拟量通道。如果项目以后要做多轴联动、参数动态调整、状态诊断这些更高级的功能建议升级到总线控制方式。汇川SV660P支持Modbus RTU、CANlink等通信协议通过RS485总线连接S7-1200的CM1241通信模块PLC可以直接读写驱动器的速度指令地址实现通信方式的速度给定。这两种方式可以在一台设备上共存旧设备改造阶段先用速度模式跑通工艺等项目稳定后再升级到总线控制不需要改动主回路只增加通信模块和调整参数就能切换这个路径非常平滑。6.3 根据我自己的项目经验总结最后分享一个我自己摸索出来的小技巧调试速度模式时先在驱动器面板上手动给定一个内部速度比如300r/min让电机转起来确认驱动器本身没有问题然后再切换到模拟量给定。这个过程看似多了一步实际上把“驱动器问题”和“PLC问题”分开排查能省不少排查时间。再一个要点模拟量给定极性和方向定义一定要在调试初期确认清楚。有的驱动器是0~10V对应正转-10V~0V对应反转有的则是通过方向端子切换。如果你的设备工艺允许反转一定提前规划好方向方案不要让操作人员在实际生产中摸索这个逻辑。整套系统的调试过程中我最大的体会是伺服控制项目的成败往往不在技术本身而在调试方法论。只要按照“确认硬件、单独验证、逐级联调”的顺序走再复杂的系统也能在预期时间内调通。希望这篇文章能帮你少走一些弯路让你的S7-1200和SV660P项目第一次上电就顺利转起来。
返回列表