1. 从一台设备说起:脉冲加速度模式到底在解决什么问题
去年冬天接手过一台包装机改造,控制核心是西门子S7-1200,执行机构用的是汇川IS620P伺服配一台400W电机,传动是同步带加5:1减速箱。客户的要求很朴素:辊子要按设定的线速度匀速走,偶尔微调快慢,不需要精确定位到某个角度。当时第一反应是用总线,但客户那边的电控柜已经定型,走网口要重新布线,工期不允许,最后就落到了**西门子与汇川伺服脉冲连接(速度模式)**这条路上。整套方案只用了三根信号线加两根电源线,调试完跑了大半年没出过问题。
这个方案的价值其实就藏在标题的四个关键词里:西门子负责发指令,汇川伺服负责执行,脉冲是两者之间的通信语言,速度模式决定了这条语言翻译出来的是"跑多快"而不是"停在哪个位置"。很多人一听到脉冲就条件反射地认为只能做定位,其实脉冲信号本质上就是一串频率可变的方波,频率高就跑得快,频率低就跑得慢,方向由另一路的电平决定。把伺服配成速度模式、让脉冲频率直接映射成转速,就得到了一个非常干净的速度源,比模拟量抗干扰强,比总线成本低,接线还简单。
它解决的问题很具体:老设备改造时电控柜空间有限、预算有限、不想动机械结构,又需要伺服级别的调速性能。适合谁看呢?一是刚接触伺服调试、被一堆参数吓到的电气新手;二是手上有西门子PLC和汇川伺服、想把两者凑一起用但不知道从哪下手的朋友;三是做小型专机、非标设备的工程师,需要一个能快速落地、后期维护不难的调速方案。接下来我会把选型逻辑、接线细节、参数含义、编程配置、联调过程、排障经验全部摊开讲,尽量让看完的人能照着做出一个能转、能稳、能量产复制的系统。
2. 方案选型:为什么不是模拟量,也不是总线
2.1 三种调速指令方式的真实差异
在动手接线之前,先把"用什么信号告诉伺服跑多快"这件事想明白,后面会少走很多弯路。常见的调速指令来源有三类:模拟量电压、通信总线、脉冲频率。它们没有绝对的好坏,只有适配场景不同。
模拟量是最传统的做法,PLC输出扩展模块给0到10V电压,伺服AI口采进来映射成转速。优点是直观,缺点是分辨率受ADC位数限制、零点漂移、长距离传输容易被变频器和接触器干扰。我以前在一台设备上用模拟量调速,旁边有台7.5kW变频器一启动,伺服转速就飘个十几转,最后折腾了很久才用屏蔽和共地压下去。
通信总线,比如走Modbus、CANopen、EtherCAT,优点是能传参数、能读状态、一根线带多台。缺点是配置链条长,PLC要有对应的通信口或模块,还要处理报文周期和实时性。像标题里这个场景,只有一台伺服,用总线属于杀鸡用牛刀,而且调试时一旦通信报错,排查层次比脉冲多得多。
脉冲频率则刚好卡在中间:比模拟量干净,比总线简单。频率是数字量,不受温漂影响;接线只要两根信号线加一根方向线(或者一路脉冲加一路方向)。西门子S7-1200和S7-200 SMART的CPU本体就自带高速输出口,不用额外买模块,这是它能省钱省空间的关键。
2.2 为什么是"速度模式"而不是"位置模式"
这里要澄清一个特别常见的误解,很多人说"PLC发脉冲不就是定位吗"。其实在汇川伺服里,脉冲信号既能进位置模式也能进速度模式,取决于你把控制模式参数设成什么,以及脉冲被解释成什么物理量。
位置模式下,每一个脉冲对应一个固定的机械位移,脉冲个数的累积就是走的位置;速度模式下,脉冲频率对应转速,脉冲个数没有累积意义。标题选速度模式,通常意味着现场只需要连续调速,不需要停到某个精确角度。好处是避免位置模式下电子齿轮比没算对导致的"走不到位"问题,也不用管加减速曲线的规划,PLC侧逻辑更简单。如果哪天设备升级要定位了,其实改动也不大,把参数切到位置模式、电子齿轮比重算一遍就行,脉冲接线不用动。
2.3 硬件选型的几个硬指标
选型这块我一般盯三个指标,拿出来做个对照方便看:
| 关注点 | 建议值/做法 | 说明 |
|---|---|---|
| PLC脉冲输出频率上限 | 单端100kHz以内,差分可更高 | 24V单端接法一般压到100kHz以内更稳 |
| 伺服脉冲输入类型 | 优先差分5V | 抗干扰强,频率上限高 |
| 伺服控制模式 | 速度模式(脉冲频率给定) | 参数里选速度指令来源为脉冲 |
| 编码器分辨率 | 23位(8388608)或17位(131072) | 影响电子齿轮比计算 |
| 信号线 | 双绞屏蔽线,屏蔽层单端接地 | 抗干扰的核心 |
我把脉冲输出频率压在100kHz以内是有原因的:西门子24V单端输出经过限流电阻进伺服光耦,波形上升沿本来就不算陡,频率一高占空比失真,伺服那边采样就容易出错。宁可选个减速比把机械速度换算到更低频率,也不要硬冲高频。
注意:不同型号伺服对脉冲输入的最高频率限制差别很大,动手前一定翻一遍对应型号的手册"脉冲输入规格"那一章,别拿别家参数直接套。
3. 接线是根:脉冲、方向、使能一个都不能含糊
3.1 汇川伺服脉冲端子的定义
汇川IS620P、SV660P这类驱动器的脉冲输入端子,一般长这样:PULS+、PULS-、SIGN+、SIGN-,有的还有ENA使能。脉冲走PULS,方向走SIGN,差分接法下+和-分别接信号的正负端;单端接法下-端接公共,+端接信号。
关键点在于:伺服内部这两个输入其实是光耦,光耦是有方向、有电流要求的。你不能拿PLC的24V直接怼上去就完事,中间要有限流电阻,否则光耦要么不亮要么直接烧。这个电阻值手册会给推荐值,常见的是2kΩ左右,功率建议不小于1/2W,具体以手册为准。
3.2 西门子PNP输出怎么接汇川的单端输入
西门子S7-1200和S7-200 SMART的CPU本体数字量输出默认是PNP(源型)也就是输出高电平时给24V。汇川伺服单端24V接法一般是这样的思路:
- 伺服的 PULS- 和 SIGN- 接到PLC的 0V(M端)上;
- 伺服的 PULS+ 经过一个限流电阻接到PLC的高速输出点Q0.0;
- 伺服的 SIGN+ 经过另一个限流电阻接到方向输出点Q0.1;
- 伺服和PLC的24V、0V共地。
这样当Q0.0输出高电平,电流从PLC出来经电阻进光耦,从PULS-回0V,光耦导通一次,就是一个脉冲沿。方向由Q0.1的高低决定。这套接法在西门子PNP输出和汇川伺服之间是最通用的组合,我在好几台设备上都用的这个。
限流电阻的计算其实很简单:伺服光耦导通压降大概1.2V,想要的工作电流一般在8到15mA之间。按24V、10mA算,R约等于(24-1.2)/0.01,差不多2.28kΩ,取标准值2.2kΩ。如果想要更大的电流余量(抗干扰更好但发热大些),可以降到1.5kΩ,代价是光耦老化快一些。我一般取2kΩ,兼顾稳定和寿命。
注意:电阻一定要串在PLC输出和伺服端子之间,别图省事直接连,我亲眼见过一台伺服脉冲口就这么烧掉的,光耦一坏就是换驱动器主板,代价不小。
3.3 差分5V接法什么时候用
如果PLC用的是S7-1500带高速输出模块,或者加了专门的定位模块,输出是差分5V的,那就直接差分对差分接:PLC的PULS+接伺服PULS+,PULS-接PULS-,SIGN照做。这种接法不用限流电阻,频率上限高,抗干扰也强,是更理想的方式。代价就是要多花模块钱。
还有一种折中做法,就是PLC是24V集电极开路输出,但伺服设成24V单端模式,只是把限流电阻换成更合适的值,本质还是单端。只要现场没有强干扰源、脉冲频率不超过100kHz,单端完全够用。
3.4 屏蔽和接地,这一步决定了系统稳不稳定
脉冲信号虽然比模拟量抗干扰,但它频率高、边沿陡,还是容易被干扰。我的做法是:脉冲和方向的信号线用双绞屏蔽线,PULS和SIGN各一对绞,屏蔽层只在PLC这一端接PE,伺服那一端悬空。这样可以避免两端接地形成地环路,地环路上流动的电流会把脉冲信号搞乱。
另外伺服的动力线(U、V、W)和编码器线、脉冲控制线要分开走线槽,实在分不开就交叉走,绝对不要平行捆一起走好几米。这个细节看着小,但很多"偶尔丢脉冲""偶尔抖动"的怪问题都是这里来的。编码器线本身也带屏蔽,屏蔽层通常接伺服这一端,按手册来。
4. 参数这道坎:汇川伺服速度模式的核心设置
4.1 先把控制模式切对
不管什么型号,第一步都是把控制模式设成速度模式。IS620P、SV660P这类驱动器一般有一个"控制模式选择"参数,取值0是速度模式、1是位置模式、2是转矩模式,还有混合模式的选项。具体参数编号各型号不同,可能落在H02-00这个位置,也可能是H17组,务必对着手册找。
设完之后要断电重启,部分参数是"重启生效"的,不改完不重启等于白设。这个坑我踩过:当时改了半天模式,发现电机还是不动,最后发现是没断电复位。
注意:改控制模式之前,先把伺服参数备份一遍(有的驱动器支持参数拷贝或者上位机软件导出),一旦设错了还能一键恢复,避免从头调。
4.2 速度指令来源选脉冲频率
速度模式下,伺服要知道转速去哪儿取。常见选项有:面板键盘给定、模拟量给定、多段速给定、通信给定、脉冲频率给定。标题这个方案就要选"脉冲频率给定"这一类。不同型号参数名可能是"速度指令来源选择"或类似叫法,取值里找带"脉冲"字样的那一项。
选好之后,转速和脉冲频率之间的关系通常由两个东西决定:一个是每转需要的脉冲数(也就是电子齿轮比),另一个是速度环增益。前者决定换算比例,后者决定响应快慢。
4.3 电子齿轮比:一个一定要算准的比例
电子齿轮比的物理含义是"伺服把多少个输入脉冲当作电机转一圈"。公式可以写成:
电子齿轮比 = 编码器分辨率 / 每转指令脉冲数
举个例子,假如伺服编码器是23位,分辨率是8388608,我希望上位机每发10000个脉冲电机转一圈,那么电子齿轮比就是8388608/10000,约等于838.86。伺服参数里电子齿轮比通常是分子分母两个整数(比如H05-07设分子、H05-09设分母),不能直接输小数,要通过约分凑出一个近似值。比如把8388608/10000两头化简,取8388608和10000都除以8,得到1048576/1250,还可以继续约。实际工程里不追求绝对精确,误差控制在万分之一以内肉眼看不出来。
换算到速度上就更直观了。前面算过每转10000个脉冲,如果PLC发100kHz,那转速就是100000/10000 = 10转每秒,即600转每分。PLC侧只要按这个比例算频率,就能精确控制机械速度。如果机械上还有减速比,就在PLC程序里再乘一遍。
4.4 几个必须调的速度环参数
速度模式调得好不好,八成看速度环。核心两个参数是速度环增益和速度环积分时间常数,有的驱动器还有速度前馈、转矩滤波。
速度环增益越大,响应越快,但太大就啸叫、抖动;太小就跟不上指令、软绵绵。我一般从出厂值附近起步,用示波器或者伺服软件看速度波形的跟随情况,逐步往上加到临界点再退一点。积分时间常数负责消除稳态误差,太大响应慢,太小容易震荡。对于同步带这种弹性传动,增益不宜太高,我通常比刚性连接的情况低两到三成。
加减速时间也要设,速度模式下如果指令频率突变,电机跟着猛冲,容易报警过流或者机械冲击。设一个合理的加减速时间,比如加速0.2秒到额定转速,硬件会舒服很多。
4.5 参数速查表
把速度模式经常要动到的参数整理成一张表,方便对照着找(编号以IS620P、SV660P这类主流型号为例,其他型号请以手册为准):
| 参数用途 | 典型编号 | 设定思路 |
|---|---|---|
| 控制模式选择 | H02-00 | 设为速度模式 |
| 速度指令来源 | H08-00一类 | 选脉冲频率给定 |
| 电子齿轮比分子 | H05-07一类 | 按编码器分辨率折算 |
| 电子齿轮比分母 | H05-09一类 | 与分子配对 |
| 速度环增益 | H03-00一类 | 由低到高试探到临界再退 |
| 速度环积分时间 | H03-01一类 | 配合增益调,消除稳态误差 |
| 加减速时间 | 各型号位置不同 | 按机械负载给0.1到0.5秒 |
| 最大转速限制 | 各型号位置不同 | 按电机额定转速的1.1倍设 |
5. PLC侧编程:把频率算对,把方向管住
5.1 S7-1200的脉冲发生器怎么配
在博途里配置S7-1200的高速脉冲输出,走的是"设备与网络"里CPU的"脉冲发生器"这一项。你要先把某个输出点(比如Q0.0)分配成PTO模式,设定时间基准和频率范围,然后程序里用CTRL_PTO这条指令去启动、停止、改频率。
具体步骤是这样的:打开CPU属性,找到脉冲发生器PTO1,把它关联到Q0.0;设定信号类型为脉冲加方向;时间基准选1微秒的话频率上限更高但分辨率变粗,选0.1微秒分辨率细但上限低,具体看手册给出的组合表;然后启用这个脉冲发生器。程序里用一个上升沿触发CTRL_PTO的ENABLE,把计算好的频率值写进它的输入参数,方向位单独用一个输出点控制。
用SCL写一个转速到频率的换算函数,看起来是这样的:
// 输入:目标转速 rpm,每转脉冲数 pulsePerRev // 输出:需要输出的脉冲频率 Hz FUNCTION "SpeedToFreq" : Real VAR_INPUT rpm : Real; // 目标机械转速,单位 r/min pulsePerRev : Real; // 每转对应的指令脉冲数,例如 10000 END_VAR VAR_TEMP revPerSec : Real; // 每秒转数 END_VAR BEGIN revPerSec := rpm / 60.0; "SpeedToFreq" := revPerSec * pulsePerRev; END;这个函数计算出来的单位是Hz,也就是每秒多少个脉冲,直接喂给CTRL_PTO的频率输入就行。注意CTRL_PTO的频率输入单位一般是毫赫兹或者赫兹乘以某个系数,得看清楚指令帮助,别差一千倍。
5.2 S7-200 SMART就简单多了
S7-200 SMART用PTO向导,选好输出点(Q0.0或Q0.1),在向导里定好时间基准和脉冲数,生成一段子程序,程序里用PLS指令调用。PTO向导里频率的单位通常是每秒多少个脉冲,直接填就行。
相比之下S7-200 SMART上手更快,但灵活性不如1200。如果项目里只需要固定几个速度档,用向导足够;如果要频繁在线改速度,1200配合CTRL_PTO会更顺手。
5.3 方向控制和使能逻辑
方向其实就是一个普通输出点的电平,高电平正转、低电平反转(具体哪个是正哪个是反,接完线点动一下就知道,反了就把点翻转,不用改接线)。但有一点要注意:方向信号和脉冲信号之间要有稳定时间,别在脉冲还在输出的瞬间翻方向,否则伺服可能丢步或者产生冲击。我的做法是加一个短延时,比如先停脉冲、等20毫秒、再翻方向、再启动脉冲。
使能信号ENA也很关键。伺服上电后一般是不使能的,电机轴可以手动转动,这时候发脉冲是无效的。程序里必须先给使能信号,等伺服回到"准备好"状态,再发脉冲。有些设备为了安全,会在使能回路里串急停和门锁,这个看现场需求。
实操心得:我习惯在PLC程序里做一个"点动"按钮,频率给一个很低的值比如1kHz,按住就转。调试接线和方向时用这个最快,比来回改参数省事得多。
5.4 多段速和在线调频
如果设备需要几个固定速度档,可以做一个速度表:把每档对应的脉冲频率做成一个数组,用选择开关或者HMI按钮切换索引,程序里读表赋给CTRL_PTO。这种方式在包装、输送线里特别常见,操作工按一下就能换速度,比让他们去改程序靠谱。
如果要无级调速,就在HMI上放一个输入框,直接改目标转速,PLC实时换算成频率。记得给频率设上下限保护,别让人输个离谱的值把电机冲到飞车。
6. 联调实录:从上电到辊子匀速转起来
6.1 上电前的检查清单
这一步绝对不能省,我见过太多炸机的都是因为没检查。上电前挨个确认:
- 动力线U、V、W按要求接好,接反了电机反转或者报警;
- 编码器线插紧,方向别插反;
- 脉冲和方向信号线正确接入,限流电阻串好,阻值再量一遍;
- PLC和伺服的24V、0V共地确认;
- 屏蔽层单端接地,另一端悬空;
- 电机轴处于安全状态,机械上不会有卡死或碰撞。
全部确认完,先不给主电,只给伺服控制电,看面板有没有报错。没有报错再上主电。
6.2 点动测试和方向确认
上电后先别急着设速度,先用面板或者上位机软件手动点动,确认电机能转、方向正确。然后切到脉冲模式,用一个低频率(1kHz左右)的点动信号试一下,看电机是不是随着信号转。这一步如果电机不转,先查使能有没有给到位、脉冲信号有没有真正到达光耦(可以用示波器或者万用表测端子电压变化)。
方向反了很简单,把方向输出点的逻辑翻转一下,或者把PULS+、PULS-对调(其实对调脉冲差分也会反转方向,但这不是好习惯,尽量程序里改)。
6.3 速度标定
方向确认后开始标速度。做法是:PLC给一个已知频率,比如5kHz,用转速表或者伺服软件读实际转速,和理论值比对。理论上5kHz、每转10000脉冲,应该是0.5转每秒即30转每分。如果实际差得多,说明电子齿轮比或者每转脉冲数设错了,回去核对。
标定过程中要记录下几个点:低频、中频、额定附近,看线性度怎么样。一般只要前两点对得上,整个线性区就没问题。要是低频正常高频偏低,多半是脉冲频率太高、单端接法的上升沿跟不上,得降频或者改差分。
6.4 整机运行与验收
单机调好后接上机械,从低速开始慢慢往上加,观察机械是否有异响、震动、爬行。同时用伺服软件看速度跟随波形和电流波形,正常情况下电流平稳、速度跟随紧。如果看到周期性波动,可能是速度环增益不合适,或者机械传动有周期性误差。
最后做一次连续运行测试,至少跑半小时,摸摸电机温度、驱动器温度,看有没有报警。这套流程走下来,系统基本就稳了。
7. 常见故障与排查:那些年踩过的坑
7.1 电机完全不动
这是最常见的报修场景,按下面顺序排查基本能定位:
| 现象 | 可能原因 | 处理方式 |
|---|---|---|
| 电机不转,驱动器无报警 | 使能没给、控制模式设错 | 检查ENA信号,确认模式是速度模式 |
| 电机不转,模式正确 | 脉冲信号没到光耦 | 测伺服端子电压变化,查限流电阻和接线 |
| 电机不转,脉冲信号正常 | 速度指令来源选错 | 确认指令来源为脉冲频率 |
| 电机不转,参数都对 | 电子齿轮比设成0或异常值 | 重新计算并写入分子分母 |
驱动器完全没反应的时候,先看它的状态指示灯或者数码管显示,很多驱动器会自己报"未使能"或"指令输入错误",顺着提示查最快。
7.2 电机抖动或者啸叫
抖动一般和速度环太激进有关。我的处理顺序是:先把速度环增益降下来,抖动消失后再慢慢往上加,加到临界点再退20%到30%。如果降增益还是抖,那就看机械——同步带太松、联轴器偏心、负载惯量比太大,这些都不是调参数能解决的,得从机械上找原因。
惯量比太高(负载比电机转子惯量大几十倍)的时候,光靠调参数很难调好,可以考虑加减速机或者换更大惯量的电机。这一点在选型阶段就要算,别等装完了才发现。
7.3 脉冲值不匹配报警
这个报警在汇川伺服上挺常见,通常是PLC实际输出的脉冲数和伺服预期的不一致。原因可能有三:一是电子齿轮比设错,导致换算关系对了但不整;二是PLC高速输出的频率超过伺服能接受的上限,丢脉冲;三是干扰导致个别脉冲没被采样到。
我一般先核对齿轮比,再看频率有没有超限,最后查线。如果前两个都对还偶尔报警,八成是干扰,重点查屏蔽和走线。
7.4 干扰类问题的识别
干扰问题的特点是不定期、无规律,时好时坏。典型表现是偶尔抖动、偶尔报警、换个位置或者关掉旁边某台设备就好了。识别方法很简单:把附近的变频器、接触器、电磁阀都停掉,如果问题消失,基本就是干扰。
解决办法有几层:信号线加屏蔽并单端接地;动力线和信号线分开走;接触器线圈加RC吸收或者续流二极管;伺服侧输入加磁环;实在不行把单端改成差分。大部分情况下前三步就能解决。
注意:不要一遇到干扰就往信号线上并电容,有些人误以为并个电容能滤波,实际上会破坏脉冲波形、导致丢步,得不偿失。
8. 几个容易被忽略的细节,以及后续还能怎么扩展
调过几套这种配置之后,我总结出几个特别容易被忽略但很值钱的经验。
第一是参数备份要常态化。不管是伺服参数还是PLC程序,只要调到一个能稳定运行的状态,立刻备份一份,标注好日期和版本。我吃过一次亏:现场调好的参数,被别的维护人员误操作改了,谁都没备份,只能凭记忆重调,多花了半天。
第二是限流电阻要选功率够的。很多人只算阻值不管功率,结果用1/8W的小电阻,长时间工作发热烧断,脉冲信号时断时续,查起来极其费劲。2kΩ下的功耗虽然不大,但为了留余量,我一般用1/2W的金属膜电阻。
第三是接地不要瞎接。伺服和PLC共地是必须的,但这个"地"指的是0V参考,不是随便接到柜体或者大地上。有的现场把0V也接了PE,结果地环流把脉冲信号搅得一团糟。正确做法是0V做系统的信号参考,PE只负责安全接地,两者在一点连接。
第四是预留手动/自动切换。设备调试和维护时,有个手动模式能单独点动每个轴会方便太多,这部分代码提前写好,后面会省很多事。
至于后续扩展,如果哪天要升级到定位或者多轴同步,这套脉冲接线的物理层基本不用动,只要把伺服参数从速度模式切到位置模式,重新算一遍电子齿轮比,PLC程序里把频率控制改成脉冲数控制就行。要是轴数变多了,也别硬上多路脉冲,那玩意接线和编程都会很痛苦,不如老老实实切到总线方案,用EtherCAT或者Profinet带多轴,成本和维护都更划算。
我个人的体会是,脉冲加速度模式这套方案的生命力就在于"够用"和"可控"。它不花哨,但它把复杂的伺服控制拆成了两个新手也能理解的东西:频率决定快慢,电平决定方向。理解了这两点,剩下的参数、接线、排障都只是围绕它们打转。把基础打牢,比追新概念实用得多。