1. 从脉冲到转动:S7-200 SMART 控制伺服的核心链路
很多人第一次拿到 S7-200 SMART 和一台伺服驱动器,脑子里想的都是“PLC 发脉冲,伺服转起来”这么简单。但真到接线、编程、调试的时候,问题就来了:脉冲口是哪个?方向信号怎么给?伺服为什么不动?动起来之后位置怎么对不上?这些问题的根源,其实都在于没有把“PLC 到伺服”这条控制链路彻底理清楚。
S7-200 SMART 控制伺服电机,本质上是一套位置闭环控制系统。PLC 负责发出高速脉冲串和方向电平信号,伺服驱动器接收这些信号后驱动电机转动,电机尾部的编码器再把实际位置反馈给驱动器,驱动器内部完成位置环的闭环调节。PLC 本身并不直接读取编码器反馈,它只负责“告诉驱动器走多少”,至于“走没走到”,那是驱动器自己的事。这个分工一定要先搞清楚,否则后面调参数的时候会完全找不到方向。
那为什么选 S7-200 SMART 来做这件事?从成本和易用性来看,S7-200 SMART 的 CPU 本体自带高速脉冲输出点,标准型 CPU ST20、ST30、ST40、ST60 都支持最多 3 轴 100kHz 的高速脉冲输出。对于大多数中小型设备——比如包装机、送料机构、简单的两轴机械手——这个性能完全够用。而且它的编程软件 STEP 7-Micro/WIN SMART 内置了运动控制向导,不需要你从零去写脉冲逻辑,配置一下就能生成可调用的子程序,对新手非常友好。
但友好归友好,坑还是不少。我见过太多人卡在第一步:PLC 的脉冲输出点到底接伺服驱动器的哪个端子。S7-200 SMART 的脉冲输出是 PTO(Pulse Train Output)方式,CPU 上标注为 Q0.0、Q0.1、Q0.2 等,具体哪个点能做高速输出,取决于 CPU 型号。比如 ST20 是 Q0.0、Q0.1、Q0.2 三个点分别对应三轴脉冲,方向信号则需要另外分配普通输出点。伺服驱动器这边,以常见的汇川 IS620P 或者台达 ASDA-B2 为例,位置控制模式下通常接收“脉冲+方向”信号,端子标为 PULS+ / PULS- 和 SIGN+ / SIGN-。接线时要注意差分接法和单端接法的区别:如果 PLC 输出是 24V 单端信号,伺服驱动器也支持单端输入,那就直接对接;如果驱动器只支持 5V 差分输入,中间就得加限流电阻或者电平转换模块,否则要么不动作,要么烧端口。
这里有一个很关键的细节:S7-200 SMART 的高速输出是 24V 的,而很多伺服驱动器的脉冲输入是 5V 差分。这时候你不能直接把 24V 怼进去,必须做电平转换。常见的做法是用 2K 左右的电阻串联限流,或者用专门的光耦隔离板。我个人的经验是,如果驱动器手册明确写了“支持 24V 单端输入”,那就放心接;如果只写了“5V 差分”,千万别赌,老老实实加转换电路。烧一个驱动器输入口,维修费够你买好几个转换模块了。
还有一个容易被忽略的点:PLC 的 1M 端子接地。S7-200 SMART 的晶体管输出型 CPU,Q0.0 等高速输出点的公共端是 1M,这个端子必须接到 24V 电源的 0V,否则脉冲信号没有回路,伺服根本收不到信号。我遇到过一位朋友,接线检查了三遍,程序也反复下载,伺服就是不动,最后发现是 1M 悬空了。这种问题说起来简单,但在现场急起来的时候,真的会让人抓狂。
所以这一章的核心就一句话:先把信号链路走通,再谈控制逻辑。PLC 发脉冲,驱动器收脉冲,电机转,编码器反馈,驱动器闭环——这条链路里任何一个环节断了,后面的编程都是白搭。下一章我会详细拆解运动控制向导的配置过程,把每个参数背后的含义讲清楚。
2. 运动控制向导里的参数,每一个都有它的脾气
STEP 7-Micro/WIN SMART 里的运动控制向导,表面上看就是填几个数字、点几下下一步,但如果你不知道每个参数在系统里起什么作用,配出来的轴要么抖动,要么定位不准,要么直接报错。这一章我把向导里最关键的几个配置项拆开讲,结合实测经验告诉你每个值该怎么定。
2.1 测量系统与脉冲当量:定位精度的地基
打开运动控制向导,第一步就是让你定义测量系统。这里有两个选项:工程单位和脉冲数。工程单位就是你自己定义“走 1 毫米对应多少脉冲”,脉冲数就是直接以脉冲为单位。对于初学者,我建议先用脉冲数,因为这样最直观——发 10000 个脉冲,电机就走 10000 个脉冲对应的角度,中间没有换算,调试的时候不容易乱。
但如果你要做实际的位置控制,比如“走到 150 毫米处”,那就必须用工程单位。这时候你需要计算脉冲当量,也就是一个脉冲对应多少毫米。计算公式是这样的:
脉冲当量 = 丝杠导程 / (电机每转脉冲数 × 减速比)
举个例子:丝杠导程 5 毫米,伺服电机编码器是 17 位(每转 131072 个脉冲),但驱动器接收的是 PLC 发的脉冲,所以要看驱动器设置的电子齿轮比。假设驱动器设了 10000 个脉冲转一圈,减速比是 1:1,那脉冲当量就是 5 / 10000 = 0.0005 毫米/脉冲。也就是说,PLC 发 10000 个脉冲,丝杠走 5 毫米。
这个计算看起来简单,但实际调试的时候,很多人会忘记电子齿轮比这一环。伺服驱动器内部有一个电子齿轮比参数,它决定了“驱动器接收多少个脉冲,电机转一圈”。如果你在 PLC 里按 10000 脉冲算,但驱动器设的是 131072 脉冲转一圈,那实际走的距离就只有你预期的 1/13 左右。所以配向导之前,先把驱动器的电子齿轮比确认好,这是定位精度的地基。
2.2 最大速度与加减速时间:别让电机“闪了腰”
向导里会让你设置最大速度和加减速时间。最大速度的单位通常是脉冲/秒或者工程单位/秒,这个值不能超过 PLC 高速输出的上限。S7-200 SMART 标准型 CPU 的高速输出上限是 100kHz,也就是说每秒最多发 100000 个脉冲。如果你设的最大速度超过了这个值,向导会直接报错。
但即使不超过 100kHz,也不建议把速度拉满。我实测下来,长期跑在 80kHz 以上,脉冲输出的稳定性会下降,尤其是电缆较长或者屏蔽没做好的时候,容易出现丢脉冲。丢脉冲的后果就是定位偏差,而且这种偏差是累积的,走十次可能偏个几毫米,走一百次就偏得离谱了。
加减速时间这个参数更微妙。设得太短,电机启动和停止时会“猛冲”,机械结构承受的冲击力很大,长期下来丝杠、联轴器都容易松。设得太长,节拍跟不上,设备效率上不去。我的经验是:先设一个保守的值,比如加速 300ms、减速 300ms,然后根据实际运行情况逐步缩短。每次缩短 50ms,观察电机有没有异响、机械有没有抖动。如果没有,就继续缩;一旦出现异常,就退回去加 50ms。这样试出来的值,既保证了效率,又不会伤机械。
还有一个隐藏的坑:加减速时间设得太短,驱动器可能会报过载。因为电机在极短时间内要加速到高速,电流会瞬间拉得很高,驱动器如果保护阈值设得比较严,就会直接报警停机。这时候不是驱动器坏了,而是你的加减速曲线太激进了。
2.3 限位与原点:安全逻辑不能省
运动控制向导里有一个“限位”配置项,让你设置正限位和负限位的输入点。很多新手觉得“我程序里控制好行程就行了,不用接限位开关”,这是非常危险的想法。程序会跑飞,PLC 会死机,驱动器会丢脉冲,任何一个小概率事件发生在高速运动的机械上,都是撞机的后果。
我强烈建议:硬件限位开关一定要接,而且要接常闭触点。常闭的意思是,正常情况下开关是导通的,一旦撞到限位,开关断开,PLC 检测到信号后立即停止脉冲输出。为什么用常闭而不是常开?因为常闭更安全——如果限位开关的线断了,PLC 检测到的状态和“撞到限位”是一样的,会立即停机。而常开的话,线断了 PLC 以为一切正常,电机继续冲,那就直接撞上去了。
原点回归也是类似逻辑。S7-200 SMART 的运动控制向导支持多种原点回归模式,最常用的是主动回零:电机先以一定速度向原点方向运动,碰到原点开关后减速停止,然后再以低速反向找原点的上升沿,找到后把当前位置清零。这个过程里,原点开关的安装位置和触发方式很关键。我一般会把原点开关装在行程中间偏一侧的位置,这样回零时电机不用走太远,节拍更快。
注意:原点回归的速度参数里,有一个“快速寻找速度”和一个“慢速寻找速度”。快速速度可以设得高一些,但慢速速度一定要低,建议在 5kHz 以下,否则找原点的精度会很差。
2.4 急停与错误处理:给系统留一条退路
向导的最后会让你配置急停输入。这个输入点一旦触发,PLC 会立即停止所有轴的脉冲输出。急停按钮建议用蘑菇头带自锁的,接常闭触点,和限位开关一样的逻辑。急停触发后,程序里要有对应的复位逻辑,不能自动恢复运行,必须人工确认安全后手动复位。
错误处理方面,S7-200 SMART 的运动控制指令会返回错误代码。比如 AXISx_GOTO 指令如果返回错误,可能是目标位置超出了软限位范围,也可能是轴没有使能。这些错误代码在手册里都有详细说明,但实际调试的时候,最常见的错误就是轴未使能和目标速度超过最大值。前者是因为忘了调用 AXISx_CTRL 指令使能轴,后者是因为 GOTO 指令里的速度参数超过了向导里设的最大速度。
我个人的习惯是:在程序里加一个错误代码的监控变量,每次调试的时候盯着看。一旦有错误,先查代码,再查参数,最后查接线。这个顺序能帮你快速定位问题,而不是盲目地改程序。
3. 梯形图里的运动控制:指令调用与逻辑编排
配置完向导,接下来就是在梯形图里调用运动控制子程序。S7-200 SMART 的运动控制向导会自动生成一组子程序,包括 AXISx_CTRL、AXISx_GOTO、AXISx_RUN、AXISx_RSEEK 等。这些指令的调用顺序和触发条件,直接决定了设备能不能按你的预期运行。
3.1 AXISx_CTRL:一切动作的前提
AXISx_CTRL 是轴控制指令,负责使能和初始化轴。这个指令必须在其他运动指令之前调用,而且它的 EN 端要保持常通,或者至少在轴运行期间保持导通。我见过有人用点动按钮触发 AXISx_CTRL,按一下使能,松开就失能,结果电机刚转起来就停了。正确的做法是:用一个中间继电器或者始终导通的触点来使能 AXISx_CTRL,确保轴在整个运行周期内都处于使能状态。
AXISx_CTRL 的参数里有一个 MOD_EN,这是手动使能位。如果你在向导里配置了“自动使能”,这个位可以不用管;如果没有,就需要在程序里把它置位。另外还有一个 DIS_AUTO 参数,用来禁用自动使能。这些参数看起来琐碎,但每一个都影响轴的运行状态。我的建议是:先把 AXISx_CTRL 调通,确认轴使能后电机处于锁定状态(用手转不动),再往下写其他逻辑。
3.2 AXISx_GOTO:绝对定位与相对定位的选择
AXISx_GOTO 是最常用的定位指令,它有两种模式:绝对定位和相对定位。绝对定位是走到一个固定的坐标值,比如“走到 100 毫米处”;相对定位是走一段距离,比如“往前走 50 毫米”。两者的选择取决于你的工艺需求。
绝对定位的好处是位置不会累积误差。每次都是从原点算起,走 100 毫米就是 100 毫米,走一万次也是 100 毫米。相对定位的好处是编程简单,不需要知道当前在哪,只管走多少。但相对定位有一个致命问题:如果中途有一次丢脉冲或者被急停打断,当前位置就乱了,后面所有的相对定位都会偏。
所以我的原则是:能绝对定位就绝对定位,实在不行才用相对定位。用绝对定位的时候,原点回归是必须做的,而且每次开机都要做一次。有些设备为了省时间,开机不做原点回归,直接接着上次的位置跑,这种操作在精度要求不高的场合可以,但在精密定位场合就是埋雷。
AXISx_GOTO 的参数里,有一个 MODE 参数用来选择模式。另外还有一个 ABORT 参数,用来中止当前运动。这个 ABORT 很有用,比如你在走一个长距离定位的时候,突然触发了急停或者限位,就可以用 ABORT 立即停止,而不是等它走完。
3.3 AXISx_RUN:连续运行与速度控制
AXISx_RUN 是连续运行指令,电机按照设定的速度和方向一直转,直到收到停止命令。这个指令常用在传送带、旋转台这类需要连续运动的场合。和 GOTO 不同,RUN 不关心位置,只关心速度和方向。
RUN 指令的参数里,速度可以实时修改。也就是说,你可以在电机运行过程中改变速度值,电机会平滑地加速或减速到新的速度。这个特性在需要变速的工艺里很有用,比如包装机在进料时慢速,送料时快速。但要注意:速度修改的频率不能太高,如果每个扫描周期都改一次,PLC 的处理负担会很大,而且速度变化太频繁对机械也不好。
还有一个细节:RUN 指令的方向控制。方向是由一个单独的位决定的,通常是 0 和 1 对应正反两个方向。切换方向的时候,电机会先减速到零再反向加速,这个过程中间有一个停顿。如果你的工艺要求快速换向,这个停顿可能会影响节拍。这时候可以考虑用 GOTO 指令走相对定位,通过正负目标值来实现换向,响应会更快一些。
3.4 多轴协调:简单同步的实现思路
S7-200 SMART 最多支持 3 轴,对于简单的两轴或三轴同步,可以通过同时触发多个轴的 GOTO 指令来实现。比如一个 XY 平台,需要从 A 点走到 B 点,你可以同时启动 X 轴和 Y 轴的 GOTO,让两个轴各自走自己的距离。但这种方式是“各自走各自的”,并不是真正的插补,走出来的轨迹是折线而不是直线。
如果要做直线插补,S7-200 SMART 本身不支持,需要换更高端的控制器。但在很多实际场合,折线轨迹已经够用了。比如点胶机,只要每个点的位置准确,中间走什么路径并不重要。这时候用多轴同时 GOTO 的方式,简单又可靠。
多轴协调的时候要注意脉冲输出的资源分配。S7-200 SMART 的 3 轴脉冲输出是独立的,但方向信号和限位信号需要占用普通输出点和输入点。在分配 I/O 的时候,要确保高速输出点没有被其他功能占用。比如 Q0.0 被用作脉冲输出后,就不能再用来控制其他普通负载了。
4. 调试现场的真实问题:从“不动”到“精准”的排查链路
调试伺服系统,最怕的不是问题多,而是问题来了不知道从哪查。这一章我把自己和身边朋友踩过的坑整理出来,按“现象—原因—排查—解决”的链路讲清楚,希望能帮你在现场少走弯路。
4.1 伺服完全不动:先查信号,再查使能
伺服不动是最常见的问题,原因可能有很多,但排查顺序很重要。我的习惯是从后往前查:先看伺服驱动器有没有报警,再看驱动器有没有收到脉冲信号,最后看 PLC 有没有发出脉冲。
驱动器报警的话,面板上会有代码,查手册就能知道是什么问题。常见的有过载、编码器故障、欠压等。如果没有报警,但电机不转,那就要看驱动器的脉冲接收指示灯。大多数伺服驱动器上都有一个脉冲指示灯,收到脉冲时会闪烁。如果灯不闪,说明脉冲信号没到驱动器,问题在 PLC 侧或者接线上。
PLC 侧的问题,首先看程序有没有执行到 GOTO 指令。可以在指令的 EN 端加一个计数器,看看每次触发是不是真的执行了。如果执行了但没脉冲输出,那就要检查向导配置里的最大速度是不是设成了 0,或者轴有没有使能。轴没使能的话,GOTO 指令会返回错误代码,但电机不会动。
接线的问题,最常见的是脉冲线和方向线接反,或者1M 端子没接地。脉冲线和方向线接反的话,电机会转,但方向不受控,或者走的位置完全不对。1M 没接地的话,脉冲信号没有回路,驱动器收不到任何信号。这两个问题用万用表就能查:量一下 PLC 输出点和 1M 之间有没有电压变化,有变化说明 PLC 在发脉冲;再量一下驱动器端子有没有收到对应的电压,没有的话就是线的问题。
4.2 定位不准:丢脉冲还是电子齿轮比错了
定位不准有两种表现:一种是每次都偏同样的距离,另一种是偏差随机变化。前者通常是电子齿轮比或者脉冲当量算错了,后者通常是丢脉冲。
每次偏同样距离的话,先算一下偏差比例。比如你让电机走 100 毫米,实际走了 80 毫米,偏差 20%。那就检查电子齿轮比:PLC 发了 10000 个脉冲,驱动器是不是按 10000 个脉冲转一圈?如果驱动器设的是 12500 个脉冲转一圈,那实际走的距离就是预期的 80%。这个计算很简单,但很多人会忽略,因为电子齿轮比是在驱动器里设的,不在 PLC 程序里。
偏差随机变化的话,大概率是丢脉冲。丢脉冲的原因有几个:脉冲频率太高、电缆太长没有屏蔽、周围有变频器干扰。S7-200 SMART 的脉冲输出是 24V 单端信号,抗干扰能力比差分信号弱。如果电缆超过 2 米,建议用屏蔽双绞线,屏蔽层单端接地。如果周围有变频器或者伺服驱动器本身,尽量把脉冲电缆和动力电缆分开走线,不要捆在一起。
还有一个隐蔽的丢脉冲原因:PLC 的扫描周期太长。S7-200 SMART 的脉冲输出是由硬件实现的,不受扫描周期影响,但 GOTO 指令的触发是软件逻辑。如果程序里有很多复杂运算,扫描周期超过 10ms,可能会导致 GOTO 指令的触发时机不准,进而影响定位。这时候可以优化程序,把运动控制相关的逻辑放在中断里执行,或者减少不必要的运算。
4.3 电机抖动或异响:增益与加减速的平衡
电机抖动通常发生在停止的时候或者低速运行的时候。停止时抖动,一般是伺服驱动器的位置环增益设得太高,系统在目标位置附近来回振荡。这时候需要降低增益,或者增加积分时间。低速时抖动,可能是机械共振,需要调整驱动器的陷波滤波器。
S7-200 SMART 这边能调的不多,主要是加减速时间。如果加速时间设得太短,电机会在启动时“冲”一下,然后被驱动器拉回来,表现出来就是抖动。把加速时间加长,抖动通常会消失。但加长加速时间会影响节拍,所以要在两者之间找平衡。
异响的话,先判断是机械异响还是电气异响。机械异响通常是联轴器松动、丝杠缺油、轴承磨损,这些用手转动电机就能感觉到。电气异响通常是驱动器参数不匹配,比如电机参数设错了,或者编码器分辨率设错了。电气异响的声音比较尖锐,而且和电机的运行状态相关,停下来就不响了。
我遇到过一次很典型的抖动问题:电机在停止时来回晃,幅度不大但频率很高。查了半天,最后发现是伺服驱动器的刚性设置太高。把刚性等级从 15 降到 10,抖动就消失了。刚性设置的本质是位置环和速度环的增益组合,刚性越高,响应越快,但越容易振荡。对于皮带传动的机构,刚性要设低一些;对于丝杠传动的机构,刚性可以设高一些。
4.4 原点回归失败:开关信号与搜索速度的配合
原点回归失败的表现是:电机一直往一个方向走,碰到原点开关也不停,或者停下来之后又反向走,反复几次后报错。这个问题通常出在原点开关的信号类型或者搜索速度上。
原点开关的信号类型要和向导里配置的一致。向导里可以选常开或常闭,如果你接的是常开开关,但向导里配的是常闭,那 PLC 检测到的逻辑就是反的,电机永远找不到原点。这个检查很简单,在 PLC 的输入指示灯上看一下,开关触发时灯亮还是灭,和向导配置对一下就行。
搜索速度的问题更微妙。快速搜索速度太高的话,电机可能会冲过原点开关才停下来,然后反向找的时候又冲过头,来回几次就报错了。我的经验是:快速搜索速度不要超过最大速度的 50%,慢速搜索速度不要超过 10%。这样即使冲过头,反向找的时候也能及时停下来。
还有一个细节:原点开关的安装位置。如果原点开关装在行程的最末端,回零时电机要走完全程才能碰到开关,节拍很长。如果装在中间,回零快,但要注意开关的触发范围不能太大,否则慢速找上升沿的时候会找不到。一般建议原点开关的触发片宽度在 10-20 毫米之间,太宽了上升沿不明显,太窄了容易错过。
5. 从单轴到多轴:S7-200 SMART 控制伺服的扩展思路
单轴控制调通之后,很多人会想:能不能用一台 S7-200 SMART 控制多个伺服轴?答案是能,但有几个限制需要提前知道。
5.1 三轴脉冲输出的资源分配
S7-200 SMART 标准型 CPU 最多支持 3 轴 100kHz 脉冲输出,但具体是哪几个输出点,不同型号不一样。ST20 是 Q0.0、Q0.1、Q0.2,ST30 和 ST40 也是这三个点,ST60 除了这三个点之外还有 Q0.3、Q0.4、Q0.5 等普通输出点。但高速输出只有 3 个,也就是说最多只能控制 3 个伺服轴。
如果你需要控制 4 个以上的伺服轴,S7-200 SMART 就不够用了,需要考虑 S7-1200 或者 S7-1500。S7-1200 的 CPU 1214C 支持 4 轴脉冲输出,CPU 1215C 支持 6 轴,而且支持 PROFINET 总线控制伺服,布线更简单,扩展性更好。但成本也更高,对于 3 轴以内的应用,S7-200 SMART 的性价比还是很高的。
3 轴分配的时候要注意:每个轴的方向信号需要占用一个普通输出点。3 个轴就是 3 个脉冲点加 3 个方向点,一共 6 个输出点。再加上限位、原点、急停等输入点,I/O 点数要提前算好。ST20 本体有 12 个输入和 8 个输出,如果不够用,可以加扩展模块。但扩展模块的输出点不能做高速脉冲输出,只能做普通输出,所以方向信号可以放在扩展模块上,脉冲信号必须用本体的高速输出点。
5.2 多轴同步的编程技巧
多轴同步的编程,核心是同时触发。比如 XY 平台走直线,你可以在同一个扫描周期里触发 X 轴和 Y 轴的 GOTO 指令。但要注意:两个 GOTO 指令不能放在同一个网络里用同一个触发条件,因为 S7-200 SMART 的指令执行是顺序的,第一个 GOTO 执行完才会执行第二个,中间有时间差。虽然这个时间差很短(微秒级),但在高速高精度的场合,还是会有影响。
更可靠的做法是:用一个触发位同时使能两个轴的 GOTO 指令,但把两个指令放在不同的网络里,用同一个中间继电器触发。这样两个指令在同一个扫描周期内被使能,时间差只有一个扫描周期,对于大多数应用来说足够了。
如果要做更精确的同步,比如两轴插补,S7-200 SMART 本身做不到,需要换支持插补功能的控制器。但在很多实际场合,比如简单的搬运机构,两轴不需要严格同步,只要各自走到位就行,这时候用同时触发的方式完全够用。
5.3 与变频器、触摸屏的配合
S7-200 SMART 控制伺服的同时,往往还需要控制变频器、读取传感器、和触摸屏通信。这些功能会占用 PLC 的资源和通信端口。S7-200 SMART 本体有一个以太网口和一个 RS485 口,以太网口通常用来连触摸屏或者编程电脑,RS485 口可以用来做 Modbus 通信,控制变频器。
Modbus 通信控制变频器的时候,要注意通信刷新周期。如果变频器数量多,比如 3 台以上,通信刷新周期会变长,可能会影响伺服的响应。这时候可以把伺服控制放在主程序里,Modbus 通信放在中断里,或者用单独的通信模块。S7-200 SMART 的 RS485 口支持 Modbus RTU 主站和从站模式,做主站的时候可以控制多台变频器,但轮询周期要算好,不要超过设备的响应要求。
触摸屏这边,通常用以太网和 PLC 通信,读写 PLC 的变量。运动控制相关的变量,比如当前位置、当前速度、轴状态等,可以在触摸屏上显示。但要注意:触摸屏的刷新周期不要太快,否则会占用 PLC 的通信资源。一般 200-500ms 的刷新周期就够了,太快了反而会影响 PLC 的扫描周期。
6. 那些手册上不会写的实操细节
最后这一章,我把自己在调试 S7-200 SMART 控制伺服过程中积累的一些零碎经验整理出来。这些东西在手册里找不到,但每一个都能帮你省下几个小时甚至几天的调试时间。
第一,脉冲电缆的长度和屏蔽。S7-200 SMART 的脉冲输出是 24V 单端信号,抗干扰能力有限。如果脉冲电缆超过 2 米,一定要用屏蔽双绞线,而且屏蔽层要单端接地,接在 PLC 这一侧。如果电缆超过 5 米,建议加一个脉冲中转模块,把单端信号转成差分信号再传输,到驱动器那边再转回来。这样虽然麻烦一点,但稳定性会好很多。
第二,伺服驱动器的使能顺序。正确的上电顺序是:先给 PLC 上电,再给伺服驱动器上电。因为 PLC 上电后会先执行初始化程序,如果伺服先上电,可能会在 PLC 还没准备好时就收到错误的脉冲信号。断电的时候反过来:先断伺服,再断 PLC。这个顺序看起来无关紧要,但在一些伺服驱动器上,上电顺序不对会导致使能失败或者报警。
第三,GOTO 指令的完成标志。AXISx_GOTO 指令有一个 Done 位,运动完成后会置位。很多人用这个 Done 位来触发下一步动作,但要注意:Done 位置位的时候,电机可能还在微小抖动,并没有完全停稳。如果下一步动作对位置精度要求很高,建议在 Done 位之后再加一个 50-100ms 的延时,等电机完全停稳再执行下一步。
第四,急停后的恢复流程。急停触发后,轴会立即停止,但当前位置会丢失。恢复的时候不能直接继续走 GOTO,必须先做一次原点回归,重新建立坐标系。如果设备上有多个轴,每个轴都要单独回零。回零的顺序也有讲究:先回 Z 轴(垂直轴),再回 XY 轴,避免工具撞到工件。
第五,程序里的软限位。除了硬件限位开关,程序里也要设软限位。软限位是在 GOTO 指令的目标位置里做判断,如果目标位置超出了设定的范围,就不执行 GOTO,直接报错。软限位的范围要比硬件限位小一些,比如硬件限位在 200 毫米处,软限位就设在 190 毫米。这样即使程序出错,电机也会在碰到硬件限位之前停下来。
第六,定期备份程序和参数。伺服驱动器的参数、PLC 的程序、触摸屏的工程文件,这些都要定期备份。我见过太多因为驱动器参数丢失导致设备停机的案例,重新调参数花了大半天。备份的时候,PLC 程序要备份源文件和下载文件,驱动器参数要备份到电脑或者存储卡,触摸屏工程要备份工程文件和运行文件。这些东西平时用不上,但一旦出事,就是救命的。
第七,注意环境温度。伺服驱动器和 PLC 都对温度敏感。夏天车间温度高的时候,驱动器可能会过热报警,PLC 的脉冲输出也可能不稳定。如果设备装在密闭的电柜里,一定要加风扇或者空调。我遇到过一台设备,冬天运行正常,夏天一到下午就报警,最后发现是电柜温度太高,加了一个风扇就解决了。
第八,不要忽略接地。PLC、伺服驱动器、电机、电柜,这些都要可靠接地。接地电阻要小于 4 欧姆,接地线要够粗。接地不好会导致各种奇怪的干扰问题,比如脉冲丢失、通信中断、触摸屏死机。这些问题排查起来非常困难,因为时好时坏,但根源往往就是接地没做好。
第九,用示波器看脉冲波形。如果条件允许,用示波器看一下 PLC 输出的脉冲波形。正常的脉冲应该是干净的方波,上升沿和下降沿陡峭,没有毛刺。如果波形上有毛刺或者振铃,说明电缆或者接地有问题。这个检查在调试初期做一次,能避免后面很多麻烦。
第十,记录调试参数。每次调试的时候,把关键的参数记下来:脉冲当量、最大速度、加减速时间、伺服增益、电子齿轮比。这些参数在设备维护或者复制到另一台设备的时候非常有用。我习惯用一个表格记录,包括参数名称、设定值、调整原因、调整日期。这样即使过了半年再回头看,也能快速回忆起当时的调试思路。
提示:以上这些经验都是基于常见的工业现场实践总结的,具体的参数值和操作步骤需要根据你使用的伺服驱动器型号、机械结构和工艺要求来调整。手册是基础,但现场调试靠的是经验和耐心。
文章写到这里,基本上把 S7-200 SMART 控制伺服电机的核心链路、配置要点、编程逻辑和调试经验都覆盖到了。从脉冲接线到运动控制向导,从梯形图指令到现场排错,每一部分都是实际项目中会遇到的真实问题。伺服控制这件事,说难不难,说简单也不简单,关键是把每个环节的原理搞清楚,然后在实践中不断积累经验。希望这些内容能帮你在下一个项目中少踩几个坑,一次调试成功。