
前阵子接了个小活儿一条包装线的小输送带要改调速方式。现场能用的东西很有限一台西门子 S7-12001214C DC/DC/DC和一台汇川 IS620P 伺服驱动器客户的要求也简单别再用电位器了让 PLC 直接把转速给定下去数字化、可保存、可远程改。我当场决定用西门子的 PTO 脉冲输出去驱动汇川伺服的脉冲口并把汇川配到速度模式让脉冲频率直接对应电机转速。这套西门子 汇川伺服 脉冲 速度模式的组合我这两年碰到的频率相当高。它跟一般的伺服定位应用不一样。很多人一听脉冲控制伺服脑子里第一反应就是发脉冲走位置用电子齿轮比算脉冲当量走多少毫米、转多少圈做完 MC_MoveAbsolute 就完事。但这次要的是连续调速操作工在触摸屏上拧个数字电机转速跟着变换向、加速、减速都要平滑而且长时间跑不停机。如果硬套位置模式位置计数器会一直往上累软限位一到就停机丢几个脉冲还会累积成误差。速度模式配脉冲频率给定刚好绕开这些麻烦事。这篇文章我准备把整套流程写透为什么要选这个方案、PLC 和伺服的端子怎么接、限流电阻怎么算、参数怎么对账、脉冲当量和转速怎么换算、1200 和 200 SMART 两套程序怎么写、现场不转或者转速不对该怎么查。只要手头有一台晶体管输出的西门子和一台支持脉冲输入的速度模式汇川伺服照着走一遍就能落地。我也会把踩过的坑一条条摊开说尤其是那些手册上不写、现场才知疼的细节。1. 为什么是脉冲频率 速度模式先把方案想明白1.1 标题里的三个关键词各自管什么西门子和汇川是两个品牌一个管发指令一个管执行。脉冲是信号形态速度模式是伺服的工作模式。把这四个词串起来物理意义很清楚西门子 PLC 的高速脉冲输出口PTO发出一个频率可变的方波汇川伺服把这个方波的频率当作速度指令频率越高电机转得越快频率为零电机就停。它和位置模式最大的区别是伺服内部不累积位置只做速度闭环。这个思路的关键在于脉冲在这里扮演的不是位置步数的角色而是速度大小的角色。你可以把脉冲频率想象成水龙头的开度开度大水流大开度小水流小。而位置模式下的脉冲更像是往水桶里一瓢一瓢地倒水倒够多少瓢就停瓢数决定水量。同一根信号线被两种模式解释成了两种含义这是全文的核心分水岭后面所有的接线、参数、程序、排错都建立在这个区分之上。我在跟同行交流时发现最容易出问题的就是这一步没想清楚。有人把伺服配成了位置模式然后指望 PLC 给个频率就调速结果电机要么不动要么按位置指令跑一小段就停。所以动手前第一件事确认你手上的伺服固件里速度指令来源这个参数里有没有脉冲频率这一档。有路子就通没有就得换思路。1.2 和模拟量、总线方案掰扯一下调速手段不止脉冲这一种现场常见的还有三样模拟量给定、总线给定、内部多段速。这几种我都用过说一下各自的脾气你就知道为什么这次选了脉冲。模拟量最直观PLC 加一块 AO 模块输出 0~10V伺服读 AI 通道电压对应转速。它的优点是接线简单、调试直观缺点是零点漂移和线性度问题。我见过同一台设备夏天和冬天同一给定电压下转速差十几转的因为运放温漂。另外模拟量走长距离必须用屏蔽双绞线屏蔽层还得单端接地稍不注意就被变频器的载波噪声干扰转速表针乱跳。而且 0~10V 只有 12 位左右分辨率对精细调速不太友好。总线比如 EtherCAT、Modbus是现代方案一根线挂一长串能读参数、读实际电流、读报警码诊断信息丰富。代价是成本和学习曲线带总线的伺服通常比脉冲型贵PLC 侧要支持主站组态、扫描周期、从站分布时钟这一套都得摸一遍调试工具也得跟上。小设备、单轴、就想快点跑起来上总线有点杀鸡用牛刀。脉冲则夹在中间数字量、无漂移、精度等于频率分辨率、成本低、接线就三四根。它最舒服的地方是确定性——你发 50kHz伺服看到的就是 50kHz环境温度、电网波动都不影响这个数值只要线不出问题。缺点也明显一根线只能对应一个轴走线多读不到多少伺服内部信息除非额外走通讯而且受 PLC 脉冲口最高频率限制调速范围有天花板。1.3 这套方案适合谁不适合谁适合的场景挺具体单轴或两三个轴的小型设备、输送线、卷绕、风机水泵类的连续调速、老设备改造原来用电位器的位置直接用 PLC 替换、成本敏感但要求转速稳定的场合。还有一类我很喜欢用它的场景——调试期需要快速验证机械能转起来脉冲方案从接完线到电机转熟练的话半小时内能搞定比搭总线快得多。不适合的场景也要说清楚。第一需要精确同步的多轴插补、电子凸轮、飞剪追剪老老实实上总线脉冲方案做不出那个精度和实时性我在别的项目里用汇川 H5U 走 EtherCAT 做凸轮和脉冲完全不是一个层面的东西。第二需要频繁读取伺服内部状态温度、负载率、累计位置、故障码的场合纯脉冲做不到要么加一条 Modbus 线要么换总线型伺服。第三需要极高转速分辨率的场合受 PLC 100kHz 左右的输出上限约束得靠重新设计脉冲当量来腾空间这个后面第 3 章细讲。还有一个前提必须提前确认伺服型号和固件是否支持脉冲频率作为速度指令源。以 IS620P/SV660P 这类常见型号为例速度指令来源通常在 H02 组参数里选有模拟量、多段速、通讯、脉冲等档位。如果手上的型号只支持模拟量和通讯做速度给定那就只能退回位置模式用电子齿轮比把每秒多少脉冲解释成转速代价是要处理位置累积和软限位或者用 Modbus 走速度指令。这个判断在做方案时就要落定别到现场才发现。2. 硬件选型与接线从PLC脉冲口走到汇川CN12.1 第一道硬门槛PLC必须是晶体管输出这条我放在最前面因为它是最容易被忽略、代价又最大的坑。西门子 S7-1200 的 CPU 按输出类型分三种后缀DC/DC/DC晶体管输出、AC/DC/RLY继电器输出、AC/DC/RLY 之类。只有DC/DC/DC这一种能做高速脉冲输出。继电器输出有机械触点动作频率上不去几赫兹就顶天了拿它发脉冲不仅调不了速还会把触点烧糊。S7-200 SMART 同理要选 ST 或 DC 后缀的型号SR 后缀的继电器输出版直接排除。第二个门槛是脉冲口数量和最高频率。S7-1200 的 1214C DC/DC/DC 集成 4 路 PTO最高输出频率 100kHz具体以你手上固件版本的设备手册为准。S7-200 SMART 的 ST 系列提供 3 路 PTOQ0.0、Q0.1、Q0.2最高也是 100kHz。这个 100kHz 是后面所有换算的天花板务必记住第 3 章的脉冲当量计算完全围绕它做文章。第三个容易踩的点一个 PTO 输出点被工艺对象占用之后就不能再当普通数字量输出或高速计数器用了。我见过有人把 Q0.0 又画到图纸上带一个指示灯结果组态冲突报错查了半天。做图纸的时候就要把脉冲口单独圈出来标注专用勿动。2.2 汇川伺服的脉冲输入形式怎么选汇川伺服的脉冲指令输入形式一般有几种可选脉冲方向PULSE/SIGN、双脉冲CW/CCW、正交A/B 相。PLC 侧 PTO 组态里也有对应的信号类型选项两边必须一一对应选错了表现是电机走得很奇怪甚至完全不动。本次方案我选脉冲方向理由很实在西门子 PTO 组态里就有脉冲 A 和方向 B这一项配起来最省事方向信号单独一根线换向逻辑清晰PLC 侧改方向只要改 Direction 参数不用两根线交替发脉冲调试时用示波器或者伺服面板一眼能看出方向电平排错快。双脉冲和正交一般留给需要更高抗干扰能力或者做位置反馈的场合。伺服侧的脉冲输入还有单端和差分两种接法之分。差分抗干扰好、能走更远但对发送端有要求——得有两路互补输出。西门子 1200 和 200 SMART 的 PTO 都是 24V 单端输出没有 5V 差分口所以要接差分输入就得额外加转换模块成本和接线都上去了。绝大多数现场我直接用单端接法配好线长和屏蔽稳定性完全够用。端子方面要提醒一句汇川不同系列的 CN1 端子排列差异不小IS620P 和 SV660P 就不完全一样脚位号一定要对着你手上那台的手册端子定义表核一遍别照搬别人的图。你要找的是四个信号PULSE、PULSE-、SIGN、SIGN-有的型号还会标注为 PULS/SIGN 或者 PA/PA- 之类。找到之后剩下的就是接法和电阻的事。2.3 限流电阻算一算单端接法怎么走这一步是纯硬件算错了要么不导通、要么烧光耦必须认真。伺服脉冲输入端内部一般是高速光耦差分输入结构导通电流建议取 8~15mA 这个区间。西门子 PTO 输出是 24V光耦正向压降按 1.2V 估算按 10mA 算限流电阻R (24V - 1.2V) / 10mA ≈ 2280Ω取标准值2.2kΩ。功率校验一下P I²R (0.01)² × 2200 ≈ 0.22W选 0.5W 的金属膜电阻就有足够余量。如果想取 15mA 让光耦导通更干脆R (24-1.2)/15mA ≈ 1520Ω取 1.5kΩ功率 P (0.015)² × 1500 ≈ 0.34W建议上 1W发热会明显一些。我自己大量用的是 2.2kΩ/0.5W实测从 5kHz 到 80kHz 都没问题。接法逻辑单端、源型输出、共阴思路西门子 PTO 输出点为高电平时输出 24V所以把 PULSE 经限流电阻接到 PLC 的脉冲输出点 Q0.0把 PULSE- 接到 PLC 的 0VM 端方向同理SIGN 经电阻接 Q0.1SIGN- 接 0V。这样 PLC 输出高电平光耦导通伺服收到一个脉冲沿。注意电阻是串在 PULSE 和 PLC 输出点之间不是串在 PULSE- 侧。方向信号那根线也必须串电阻别只给脉冲串、方向裸接我见过有人这么干方向光耦很快就坏了。线材和走线脉冲信号线必须用屏蔽双绞线屏蔽层单端接地接在 PLC 柜的 PE 上伺服那头悬空。这能避免地环流。脉冲线不能和大功率动力线、变频器输出线捆在一个线槽里平行走间距尽量保持 20cm 以上实在躲不开就交叉成直角。24V 单端接法的建议线长控制在 5 米以内超过之后电平畸变和干扰的概率明显上升非要用长线就加中间继电器或者转换模块但那又引入延迟不推荐。2.4 使能、复位、状态回读这几根线别省脉冲和方向只是指令伺服要真的动起来还得靠使能。伺服使能输入一般标 SON 或 S-ON通常要求接一个信号或者短接后上电即使能。我倾向用 PLC 的输出点控制方便程序里做安全联锁急停按下、门打开、气压不足直接撤使能比撤脉冲指令更干脆。报警复位标 ALM-RST 一类也建议接到 PLC 输出。伺服一旦报警ALM 输出会动作PLC 读到之后要能自动或手动发一个复位脉冲不然操作工得跑到电柜前面按按钮体验很差。状态回读至少要接两根一是伺服准备好RDY 或 S-RDY二是报警输出ALM。这两根线接到 PLC 的输入点程序里做条件判断。好处是能区分是 PLC 没发指令还是是伺服自己没准备好排查时能省掉一大半时间。我调试时的习惯是上电后先看这两个输入点的状态只要报警没清、准备好没来就别去动脉冲参数。还有两个可选但很有用的定位完成/速度到达信号在速度模式下表现为转速达到输出以及抱闸控制输出。垂直轴一定要接抱闸程序里做先撤脉冲、再等停稳、最后关抱闸的顺序反向上电则先开抱闸、再给速度顺序错了会溜车或者憋过一个流报警。3. 参数与组态把频率和转速对上号3.1 伺服侧参数一份可照抄的清单伺服参数是整个方案的枢纽我按功能分组说具体参数号请对照你手上固件的说明书不同版本可能有出入但功能名称基本一致。参数组/示例号含义本方案建议说明H02 组示例 H02-00速度指令来源选择选到脉冲频率档有的固件是第 3 档有的是第 4 档逐档试或查表H02 组示例 H02-01速度指令增益/频率比例按第 3.3 节计算值决定多少 Hz 等于多少 rpmH02 组示例 H02-03速度指令滤波时间2~5ms 起步抑制脉冲抖动太大会拖慢响应H02 组示例 H02-05/06正反转速限制按机械上限设保护作用别设成默认最大值H05 组示例 H05-00脉冲指令输入形式0脉冲方向必须和 PLC 侧一致H05 组示例 H05-01/02脉冲输入滤波小值优先高频时滤波太大会丢脉冲H05 组示例 H05-17 一类每转脉冲数/指令分频见计算部分型号在速度模式下不用这一项H06 组示例 H06-00/01速度环增益/积分时间先默认再微调刚性不够可升增益抖动则降H0x 组使能逻辑、报警复位电平按接线选常开/常闭接错了电机永远不使能H0B 组监视参数调出实际转速、指令频率调试时天天看这里第一次上电我建议先把 H06 组的速度环参数保持出厂机械能稳稳定转起来之后再去调刚性。很多人一上来就追求响应快把增益拉得很高结果电机嗡一声过流报警反而耽误时间。监视参数是调试的眼睛。把实际转速和指令频率两个量调到面板上或者设成上电默认显示你就可以用最直观的方式验证给 20kHz面板显示实际转速是多少这个数就是后面标定系数的原始数据。比拿示波器去数脉冲方波快得多也安全得多。3.2 西门子侧PTO组态与工艺对象西门子这一侧要做两件事一是把 PTO 硬件输出配好二是建工艺对象把轴抽象出来。PTO 组态路径设备视图里选中 CPU属性里找脉冲发生器选 PTO1对应 Q0.0/Q0.1 这一对。关键参数有四项。信号类型选脉冲 A 和方向 B。时间基准选 1ms 或 0.1ms影响的是频率分辨率选 0.1ms 分辨率更细。基准频率、最高频率这两个要和伺服的响应能力匹配我把最高频率设成 100kHz基准频率设 0。脉冲宽度默认 50% 占空比即可。工艺对象新增对象里选运动控制下的定位轴TO_PositioningAxis驱动器类型选脉冲接口绑定到刚才配好的 PTO1。机械参数里填每转脉冲数、减速比单位里选位置单位和速度单位我一般把位置单位设转速度单位设转/分钟。限制里设置最大速度、加减速度、软限位和硬限位。这一步里填的每转脉冲数就是后面要反复对账的那个数。有个细节要提醒S7-1200 的 PTO 组态和工艺对象是两处独立的配置信号类型和输出点必须两处一致。我遇到过一次PTO 那边改成了脉冲 A 和方向 B工艺对象里还是老的绑定结果输出的方向信号一直不动查了半个多小时。改完任何一处另一处都要对着看一遍。3.3 脉冲当量计算从3000rpm倒推这一节是全文最硬的部分也是决定电机转得对不对的地方。因为速度模式下脉冲频率直接对应转速但 PLC 侧只关心发多少频率伺服侧只关心收到频率是多少中间那个换算系数必须由我们来定死。先明确约束。PLC 最高输出 100kHz。电机额定转速假设 3000rpm。如果按伺服默认的10000 脉冲/转来算要跑满 3000rpm 需要多高频率f n × P / 60 3000 × 10000 / 60 500000 Hz 500kHz这远超 100kHz 上限根本做不到这就是很多人第一版参数跑不到额定转速的原因——不是 PLC 不行是脉冲当量设得太细了。解决办法是压低每转脉冲数让同样频率能表达更高转速。按留 20% 余量的原则取最高工作频率 80kHz反推P f × 60 / n 80000 × 60 / 3000 1600 脉冲/转也就是说把伺服侧的速度指令脉冲当量或 PLC 工艺对象的每转脉冲数设成 1600那么 80kHz 对应 3000rpm20kHz 对应 750rpm1kHz 对应 37.5rpm。最低可控转速我一般取 100Hz 起步再低频率的信号在干扰下不够稳。这里有一个必须敲死的原则PLC 工艺对象里填的每转脉冲数和伺服侧速度指令的脉冲当量必须是同一个数。比如都填 1600。理由很直接——PLC 认为 1600 个脉冲是 1 转伺服也认为 1600 个脉冲是 1 转两边的转是同一件事转速才不会错。如果两边不一样会怎样举个例子。PLC 侧填了 10000伺服侧按 1600 解释。程序里让轴以 10 转/秒运行PLC 就发 10 × 10000 100kHz伺服收到 100kHz按 1600 脉冲/转解释得到的是 100000 × 60 / 1600 3750rpm而操作工看到的设定值是 600rpm。差了 6.25 倍。这就是转速差好几倍这类故障的典型来源第 5 章还会展开。顺便说一句速度单位每秒和每分钟差了 60 倍这是另一个高频坑。S7-1200 的 MC_MoveVelocity 指令里 Velocity 参数的物理含义是组态速度单位每秒我习惯把轴的速度单位设成转/分钟然后在程序里把目标转速除以 60 再送进去这样目标转速和实际转速一一对应。你这版博途具体行为如何现场用一次面板转速反推就能确认别凭空猜。3.4 不靠手册猜系数实测标定法前面算出来的是理论值但伺服固件里的速度指令增益参数可能不是线性对应的 1:1 关系也可能是以rpm/kHz为单位来定义还可能掺了电子齿轮的余数。所以真正可靠的做法是实测标定步骤就三步。第一步让 PLC 发一个稳定的固定频率。用 200 SMART 的话直接调 AXISx_MAN 给个 Speed用 1200 的话用 MC_MoveVelocity 给个固定速度值取一个中间值比如 20kHz 附近对应的设定值。第二步读伺服面板上的实际转速。伺服面板监视组里能看到实时转速稳定之后读三次取平均。第三步算系数 k 实际转速 / 实际频率单位 rpm/kHz。比如发 20kHz实际转 750rpm那么 k 37.5 rpm/kHz。那么要跑 1500rpm需要的频率就是 1500 / 37.5 40kHz。如果标定出来发现系数是个难看的小数比如 37.3 这种说明伺服侧的增益参数没配整。这时候去调速度指令增益把它改成整数值比如让 1kHz 对应 40rpm这样程序里的换算就是一个整数比例不用在 PLC 里做浮点乘除既省扫描周期又避免舍入误差。我喜欢把系数调成 40 或 60 这种整数程序里一行乘法就完事。标定完成后把 k 值记在调试记录里写清楚1kHz 40rpm或者1600 脉冲 1 转。这行字在半年后设备出问题时能救你一命。4. 程序怎么写1200和200 SMART两套路子4.1 S7-1200MC_Power MC_MoveVelocityS7-1200 走工艺对象体系程序结构干净。先调 MC_Power 使能轴再调 MC_MoveVelocity 做连续速度运行。速度模式下 MC_MoveVelocity 是最贴切的指令——它不指定目标位置只指定目标速度一直跑下去直到你给新的速度或者调用停止指令。下面是我项目里常用的一段 SCL注释里标了几个关键点。// 1. 轴使能急停未拍下、伺服无报警、才允许使能 MC_Power_DB(Axis : Axis_1, Enable : Safety_OK AND NOT Servo_Alarm, StopMode : 0, // 0立即停止按需改成 1斜坡 Status Axis_Status, Busy Axis_Busy, Error Axis_Error, ErrorID Axis_ErrorID); // 2. 速度运行目标转速以 rpm 给出除以 60 转成单位每秒 MC_MoveVelocity_DB(Axis : Axis_1, Execute : Run_Cmd, Velocity : Target_Rpm / 60.0, Direction : 0, // 0正转1反转2当前方向 Current : 0, // 0以新速度执行1以当前速度继续 InVelocity Speed_Reached, Busy Move_Busy, CommandAborted Move_Abort, Error Move_Error, ErrorID Move_ErrorID);要注意几个引脚的行为。Execute 是上升沿触发但速度模式比较特殊改 Target_Rpm 的值之后需要再给一次上升沿新的速度才会生效。我通常用一个设速按钮信号或者定时刷新来触发。Direction 改成 1 就能反转但反转前最好先把速度降到零再换向直接反向给速度对机械冲击很大尤其是带惯量的负载。InVelocity 输出可以作为转速到达信号送给触摸屏或者联锁。CommandAborted 在急停或者被其他指令打断时动作程序里必须处理它否则状态机会卡死。Error 和 ErrorID 要接到报警显示常见的错误码指向轴未使能、超出速度限制、硬件限位触发等对着博途的在线帮助查很快。4.2 S7-200 SMART运动向导 AXISx_MAN200 SMART 走的是运动控制向导的老路子反而更接地气。工具菜单里打开运动控制向导一路配下去选轴、选输出点AXIS0 默认 Q0.0/Q0.1、选测量单位、填每转脉冲数、填最大速度和启动/停止速度、配点动速度、最后生成子程序和符号表。生成之后程序里主要用两个指令// 使能轴 CALL AXIS0_CTRL, EN:Always_On, RUN:Enable_Cmd, ... DoneAxis_Done, ErrorAxis_Err, C_PosAxis_Pos, C_SpeedAxis_Speed // 手动速度运行Speed 单位是脉冲数/秒测量单位选脉冲时 CALL AXIS0_MAN, EN:Always_On, RUN:Manual_Run, JOG_P:Jog_Fwd, JOG_N:Jog_Rev, Speed:Pulse_Freq, Dir:Direction_Cmd, ErrorMan_Err, C_PosMan_Pos, C_SpeedMan_SpeedAXISx_MAN 这个指令其实就是速度模式的化身只要 RUN 保持它就按 Speed 给的脉冲频率一直发频率多高转速就多高JOG_P/JOG_N 还能做点动。这对输送线、卷绕这类连续调速的应用再合适不过。Speed 参数在脉冲测量单位下的单位是脉冲数/秒正好对应我们前面算的频率值直接把 20000 填进去就是 20kHz非常好理解。一个细节AXISx_MAN 的换向不能用 Dir 参数在运行中直接切稳妥做法是先撤 RUN等电机停稳改 Dir再给 RUN。硬切方向容易触发过流。急停处理上把使能 RUN 和急停回路串起来急停一拍轴线撤使能伺服自然停机。4.3 加减速、换向和急停怎么处理加减速是这套方案里最容易被低估的部分。因为是速度模式PLC 只给一个目标频率中间的斜坡由伺服或者 PLC 指令负责。S7-1200 的 MC_MoveVelocity 会在轴组态的加减速度限制内自动做斜坡200 SMART 的运动向导里也有加速时间和减速时间参数。参数怎么给按机械惯量和电机能力来。经验值是负载惯量比在 3 倍以内的普通输送类负载加速时间给 0.3~1 秒就够取个折中值 0.5 秒试试看电机电流峰值有没有顶到限幅。如果加速时听到明显的电流啸叫或者报过流就把加速时间拉长。减速时间比加速时间多给 20% 左右因为减速时电机要回收能量太急会顶到直流母线过压报过压故障。换向的处理原则是先停再换。程序里做一个状态机收到反向指令后先把目标速度写成 0等 InVelocity 或者实际转速低于阈值再设新的方向并给速度。整个过程用户看到的是电机平滑地减速、停一下、再反向加速比直接反接要温柔得多。这个停顿卡 100~200ms 就够了操作工基本感觉不到。急停回路必须独立于程序逻辑之外做硬件联锁。标准做法是急停按钮串在伺服使能回路和主接触器上PLC 程序里再读一个辅助触点做状态显示。只靠程序撤使能在极端情况下不够可靠。急停拍下之后程序要清掉所有运行标志位并且要求手动复位才能重新使能别做成自动恢复不然人还在设备里电机已经自己转了。4.4 状态字与HMI交互的一点建议给操作工看的界面不需要花哨但要给足信息。我会在触摸屏上放这几项目标转速设定值带上下限输入限制、实际转速显示、运行/停止状态、伺服准备好、伺服报警、当前方向、使能状态。有条件再加一个当前输出频率的显示这个对排查问题特别有用——操作工报转速不对的时候你先看频率显示回不回来就能判断是 PLC 没发还是伺服没执行。程序里给转速设定值做限幅很重要。输入框允许操作工输入 0~3000但程序里要再夹一道低于最低稳定转速比如 50rpm时按停机处理高于机械上限时按上限截断。我见过操作工手输一个 99999 进去电机直接飙到顶撞了限位才停。软件限幅加上硬件限位开关双保险。如果设备需要存储几套工艺配方比如不同产品对应不同转速可以把几组参数存在 PLC 的保持存储区或者配方数据块里切换产品时一键调用。这是纯脉冲方案比老式电位器方案最有价值的地方之一重复精度完全靠数字保证不存任何漂移。5. 现场排查不转、转不对、抖、报警5.1 电机一点都不转按这个顺序查碰到完全不转别急着改参数按顺序排查效率最高我把它整理成一条流水线。第一看伺服面板有没有报警。有报警先清报警报警没清别的都白搭。ALM 输出接回 PLC 的话程序里应该能看到。第二看伺服使能状态。面板上一般有使能指示或者看 RDY/S-RDY 输出。没使能的话检查 SON 信号有没有给使能逻辑参数选的是常开还是常闭很多型号默认常闭使能你不接信号反而不使能接了信号反而撤使能这个逻辑反了非常常见。第三看速度指令来源选对没有。如果参数还停在模拟量档脉冲发得再欢伺服也不理。改成脉冲频率档重新上电或者按参数生效方式操作。第四看脉冲信号有没有真的到伺服。最快的办法是进监视组看指令频率或者指令脉冲计数发脉冲的时候这个值应该动。不动就是信号没到接下来查硬件限流电阻焊了没有、阻值对不对、PULSE 和 PULSE- 有没有接反、PLC 输出点组态有没有冲突、Q0.0 是不是被别的程序占用了。第五看脉冲频率是不是太低。有些伺服对最低输入频率有要求或者滤波参数设得太大低频信号被滤掉了。把频率提到 1kHz 以上再试。第六看方向信号。某些接法下方向信号不建立伺服会认为没有有效指令。手动给方向点一个固定电平再发脉冲试试。5.2 转速差一倍、差几倍几乎都是这里转速偏差这类问题八成出在换算系数上而系数来自三个地方逐一核对就行。一是每转脉冲数不匹配。PLC 侧填一个值伺服侧按另一个值解释差几倍。前面 3.3 节那个 10000 对 1600 的例子差了 6.25 倍就是这个原因。解决办法是把两边调成同一个数再用标定法复测。二是每秒和每分钟差了 60 倍。S7-1200 里 Velocity 参数按每秒解释程序里按每分钟给值结果就是慢 60 倍表现是设了 1500 转实际只有 25 转。这个故障特别迷惑人因为量级差得离谱会让人以为哪都没通其实只是单位。把设定值乘以或除以 60 试一次就能确认。三是伺服侧的速度指令增益不是按你预期的比例。比如你以为是 1kHz 60rpm实际是 1kHz 37.5rpm差 1.6 倍。这个只能靠实测标定把增益参数调成整数值。顺便说一个反直觉的现象如果偏差是恒定倍率不管设多少转实际都差同样的倍数那一定是系数问题如果偏差随转速变化低速还行高速偏差越来越大那更可能是滤波或者丢脉冲要往硬件方向查。5.3 转速抖动和忽正忽反转速忽快忽慢、甚至瞬间反向一般是干扰或者信号质量问题。按可能性排序脉冲线没有屏蔽或屏蔽层两端都接地形成了地环流脉冲线和动力线捆在一起走限流电阻值偏大导致光耦导通不充分在高频时出现边沿丢失24V 电源纹波大共用了一个带大功率负载的开关电源。处理手段有几个见效顺序也大致如此把脉冲线换成屏蔽双绞线屏蔽层改成单端接地把脉冲线单独走一个线槽和动力线拉开距离把限流电阻降到 1.5kΩ 让导通更干脆给 PLC 输出和伺服用一个干净的 24V 电源或者在脉冲口附近加一个小容量去耦电容100nF 级别注意别加太大影响边沿。如果抖动是低频的、有规律的比如一两秒一次那更可能是机械或者控制参数问题速度环增益太高引起振荡、负载惯量比太大、联轴器松动、皮带打滑。这种先降速度环增益试试如果降了就不抖说明是控制参数问题降了还抖往机械上查。还有一种情况是转速稳定但电流声音不对面板看实际转速平稳但电机有周期性嗡嗡声。这通常是速度环增益偏低导致跟随滞后把增益适当提高、积分时间适当缩短能改善。调的时候小步走一次改 10~20%改完跑一圈看电流波形。5.4 常见问题速查表现象最可能的原因快速验证方法处理电机完全不动无报警未使能/逻辑反看面板使能指示检查 SON 接线与逻辑参数电机不动指令频率监视为 0脉冲没到伺服看监视组指令频率查电阻、接线、PLC 输出组态电机不动指令频率有值速度指令源选错查 H02 组来源参数改到脉冲频率档并生效转速只有设定值的 1/60单位混淆设定值乘 60 试一次统一按每秒或每分钟换算转速差固定倍数每转脉冲数不一致核对 PLC 与伺服两侧数值两边设成同一个数转速偏差随转速变大滤波过大或丢脉冲降滤波时间再试降 H05 组滤波、换屏蔽线转速抖动干扰拉开脉冲线与动力线屏蔽单端接地、降电阻上电就报警过流加速太快/机械卡死拉长加速时间改加速时间、查机械减速时报过压减速太快拉长减速时间改减速时间、加制动电阻电机发烫噪音大速度环增益偏高降增益试重新整定速度环高速上不去PLC 频率到顶看 PLC 是否报频率超限重算脉冲当量压低每转脉冲数6. 踩过的坑和几条实在经验6.1 分三步上电能省一整天我的调试顺序从来是先伺服自己转、再通脉冲、最后联程序三步分开绝不一把梭。第一步只接伺服主电源和使能线用伺服面板的点动功能让电机自己转起来确认电机、编码器、机械连接都没问题。这一步排除了电机相序、编码器接线、机械卡死这些纯伺服侧的问题。很多新手跳过这步一上来就接脉冲结果电机不转最后发现是电机相序接错了白白在 PLC 程序里绕了大半天。第二步把脉冲线和方向线接上只验证能不能收——进监视组看指令频率和实际转速不用管程序逻辑手动让 PLC 发个固定频率就行。这一步排除了接线和参数的问题。第三步写程序逻辑做交互、做联锁、做配方。前两步都干净了第三步基本就是堆逻辑很少出意外。按这个顺序我一般从接完线到电机可控在半天以内急活儿的时候两三个小时也能转起来。6.2 参数备份和记录比什么都值钱伺服参数一旦调好第一件事就是备份。汇川伺服一般有参数备份恢复功能通过面板操作或者上位软件把当前参数存进去。理由是你后面为了调某个小问题改动了一个参数改完忘了改回来下次上电设备就不对劲了这时候有备份能一键还原。调试记录同样重要。我会在记录本上写清楚日期、设备编号、伺服型号、固件版本、脉冲当量设定值、速度指令增益实际标定值、关键参数号及改动前后的值、遇到的问题和处理方式。这些字在半年后你被叫回现场时价值千金。光那个1kHz 40rpm的数字能帮你省掉重新标定的两小时。还有一个小心得参数改动用不同颜色标出来。我用红笔圈出现场改动过的参数下次再动之前先看红笔圈的部分能避免在已经调好的参数上反复折腾。6.3 几个容易被忽略的小细节限流电阻的焊接。别用贴片电阻糊弄脉冲回路的电流虽然不大但高频下贴片的寄生参数会影响边沿而且发热集中。用 0.5W 的金属膜直插电阻引脚留长一点帮助散热焊完用热缩管套住防短路。我习惯在电阻旁边贴个小标签写上2.2k别人维护时一眼就知道这是什么。导线留一根备用芯。脉冲线如果用多芯屏蔽线多留一根备用将来要加转速达到信号或者报警回读的时候不用重新穿线。穿一次线管很费劲多留一根几乎不增加成本。方向信号的处理。脉冲方向模式下方向信号必须在脉冲之前建立伺服一般对这个时序有要求常见的是方向提前若干微秒稳定。S7-1200 的 PTO 会自动处理这个时序但如果你用的是普通数字量输出点去模拟方向信号有些人这么干就要在程序里手动加延时先置方向、等 10ms、再发脉冲。这种手搓方案我见过出问题的方向切换瞬间丢几个脉冲位置模式下是走偏速度模式下是瞬间抖一下能不用就别用。最低稳定转速。速度模式下脉冲频率越低伺服速度环在低速段的控制精度越差加上干扰的影响太低的频率会导致转速不稳。我一般把最低工作转速设在 50~100rpm 对应频率以上低于这个值就直接停机不要勉强跑。急停后的状态复位。急停拍下后程序要把所有运行标志位清掉把速度设定值归零而且要求操作工按一下复位按钮才能重新使能。这个流程别图省事做成自动恢复安全无小事。现场温度。伺服驱动器的散热环境经常被忽略电柜里如果还有其他发热器件夏天柜内温度能到 50 度以上驱动器降额运行甚至报过温。我的做法是柜内加装轴流风扇进风口加过滤棉驱动器之间留出足够间距。这跟脉冲方案本身无关但设备能不能长期稳定跑往往就卡在这些无关的地方。最后说一个我自己的判断习惯如果一个调速项目轴数少于三个、不需要插补同步、预算又不宽裕我会优先考虑脉冲速度模式这条路一旦超过三个轴或者需要凸轮、追剪这类同步功能就直接转向总线方案不要在脉冲方案上硬凑。方案选错后面花的调试时间远超省下的硬件钱。这套西门子配汇川的组合我在小设备上用了很多次接线不超过六根信号线程序不到二十行只要把脉冲当量这一个数对死剩下的都是常规活儿。