ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

S7-200 SMART控制伺服实战:从选型、接线到编程调试的完整指南

S7-200 SMART控制伺服实战:从选型、接线到编程调试的完整指南 1. 为什么S7-200 SMART控制伺服是个值得深挖的活伺服电机在小型自动化设备里的地位这几年变化特别明显。以前大家做点位控制第一反应是步进电机便宜、简单、够用。但现在设备精度要求上来了步进电机丢步、低速振动、高速扭矩衰减这些问题越来越难忍很多场合不得不换伺服。而S7-200 SMART作为西门子在国内小型PLC市场的主力机型存量巨大大量包装机、贴标机、切割机、送料机构上跑的都是它。用SMART去带伺服就成了一个绕不开的实际需求。这个组合的核心价值在于用一台千元级的PLC通过高速脉冲输出控制伺服驱动器实现精确的位置、速度和扭矩控制。它解决的是中小型设备在成本可控的前提下提升运动控制精度的问题。适合谁看一是刚接触运动控制的PLC编程人员二是手上正好有SMART和伺服需要调试的电气工程师三是做非标设备想评估这套方案可行性的技术人员。我前后用SMART带过台达ASDA-B2、汇川IS620P、松下A5这几款伺服走的基本都是脉冲方向的控制方式。下面把整套东西拆开讲从选型到接线到编程到调试尽量把踩过的坑都说清楚。2. 方案选型与控制方式的核心考量2.1 为什么SMART带伺服首选脉冲控制S7-200 SMART本体自带高速脉冲输出点CPU ST20/ST30/ST40/ST60这几款晶体管输出的型号Q0.0、Q0.1、Q0.2、Q0.3可以输出高速脉冲。其中Q0.0和Q0.1支持最高100kHzQ0.2和Q0.3支持最高20kHz。这个频率决定了你能跑多快。伺服驱动器一般支持三种指令输入方式脉冲序列、模拟量、总线通信。SMART本体没有EtherCAT、没有Profinet IRT走总线控制伺服基本不现实PROFINET只能做普通IO通信做不了运动控制同步。模拟量方式精度差、抗干扰弱速度控制还行位置控制就力不从心。所以脉冲方向是SMART带伺服最务实的选择。脉冲控制又分两种输出模式PTOPulse Train Output脉冲串输出和PWMPulse Width Modulation脉宽调制。控制伺服位置必须用PTO因为PTO能精确控制发出的脉冲数量而PWM只控制占空比发多少个脉冲不确定。这一点新手特别容易搞混我见过有人用PWM去控伺服位置结果电机转多少全看运气。2.2 伺服驱动器的接收方式要匹配伺服驱动器接收脉冲的电路形式有两种差分接收和单端接收。差分接收抗干扰能力强适合长距离和高速场合一般用5V差分信号单端接收就是集电极开路通常接24V距离短、频率低。SMART的脉冲输出是24V单端源型输出PNP特性。如果你选的伺服驱动器只支持5V差分输入那就需要加一块差分转换板把24V单端转成5V差分。台达ASDA-B2和汇川IS620P都支持24V单端直接接松下A5部分型号需要转换。选型时一定要先翻驱动器的硬件手册确认输入信号规格别等货到了才发现接不上。提示SMART的Q0.0~Q0.3是源型输出输出高电平接线时伺服驱动器的脉冲输入端要接成共阴极接法即驱动器的脉冲负端接0V正端接PLC的Q点。如果接反了脉冲根本发不出去。2.3 电子齿轮比的计算逻辑伺服电机收到脉冲后转多少取决于电子齿轮比。这个参数设不对要么定位不准要么速度上不去。电子齿轮比的本质是驱动器接收到的脉冲数 × 电子齿轮比 电机编码器反馈脉冲数。公式是电子齿轮比 (电机每转编码器脉冲数 × 电机每转所需指令脉冲数) / (电机每转实际移动量对应的脉冲数)说人话就是你希望PLC发10000个脉冲电机转一圈但电机编码器是131072脉冲一圈那电子齿轮比就要设成131072/1000013.1072。很多驱动器支持直接设分子分母比如汇川IS620P的P0-12和P0-13就是分子和分母。我一般习惯把电子齿轮比设成整数比比如1:1或者2:1然后在PLC程序里算脉冲数。这样好处是计算简单不容易出错。比如电机转一圈需要10000个脉冲丝杆导程10mm那走1mm就是1000个脉冲程序里直接乘就行。3. 硬件接线与参数设置的实操细节3.1 硬件接线清单与注意事项先列一下我最近一次用SMART ST40带汇川IS620P的接线清单信号PLC侧驱动器侧说明脉冲Q0.0PUL (CN1-43)24V脉冲信号脉冲-0VPUL- (CN1-44)共阴极方向Q0.1DIR (CN1-45)方向信号方向-0VDIR- (CN1-46)共阴极使能Q0.2SON (CN1-15)伺服使能使能-0VSON- (CN1-16)共阴极报警输出I0.0ALM (CN1-31)驱动器报警输入PLC定位完成I0.1COIN (CN1-33)到位信号接线时有几个坑我踩过第一0V必须共地。PLC的0V和驱动器的0V要接在一起否则脉冲信号没有参考电平电机要么不动要么乱转。我见过有人只接了脉冲和方向没接0V结果电机嗡嗡响但不转。第二屏蔽线要接地。脉冲信号线一定要用屏蔽双绞线屏蔽层单端接地接在PLC柜的接地排上。不屏蔽的话变频器一启动伺服就丢步这个干扰问题在现场特别常见。第三使能信号别省。有人图省事把伺服使能设成内部使能上电就使能。这样虽然少接两根线但调试时电机一直锁死想手动转一下轴都费劲。建议还是用PLC的Q点控制使能调试方便。3.2 伺服驱动器关键参数设置以汇川IS620P为例需要设置的参数如下参数号名称设定值说明P0-01控制模式1位置模式P0-02使能方式1外部使能P0-12电子齿轮比分子131072编码器分辨率P0-13电子齿轮比分母10000上位机指令脉冲数P0-15脉冲输入形式0脉冲方向P0-16脉冲逻辑0正逻辑P0-17脉冲滤波3根据频率调整P0-25到位范围50定位完成窗口这里重点说P0-12和P0-13。IS620P的编码器是23位即8388608脉冲一圈。但我上面写的是131072这是为什么因为驱动器内部做了4倍频实际等效脉冲是131072。这个细节手册上写得很清楚但很多人不看直接填8388608结果电机转得慢得离谱。P0-17脉冲滤波这个参数很关键。设小了干扰脉冲会进来电机抖动设大了高速脉冲会被滤掉电机丢步。我一般先设3然后根据实际运行情况调整。如果电机低速抖动就加大滤波如果高速丢步就减小滤波。注意参数改完后一定要断电重启很多驱动器参数是上电时读取的在线改了不生效。我因为这个原因浪费过一整个下午。3.3 PLC高速脉冲输出的配置SMART的PTO输出需要用STEP 7-Micro/WIN SMART软件里的运动控制向导来配置。步骤如下打开软件在左侧项目树里找到“运动控制”文件夹双击“运动控制向导”。选择要配置的轴比如Axis0对应Q0.0脉冲和Q0.1方向。设置最大速度和启动/停止速度。最大速度根据伺服电机额定转速和机械结构算启动/停止速度一般设100~200脉冲/秒。设置点动参数包括点动速度和增量。设置加减速时间一般设100~500ms。配置限位开关如果机械上有硬限位把对应的输入点选上。生成代码向导会自动生成子程序。向导生成的子程序包括AXIS0_CTRL、AXIS0_MAN、AXIS0_GOTO、AXIS0_RUN等。AXIS0_CTRL用于使能和初始化轴AXIS0_GOTO用于绝对定位AXIS0_RUN用于速度模式运行。这里有个细节AXIS0_CTRL的EN端要一直给1否则轴会掉使能。我习惯用SM0.0常闭点给它保证每个扫描周期都调用。4. 程序框架与核心逻辑实现4.1 主程序框架设计我的程序框架一般分三块初始化、手动模式、自动模式。初始化部分在第一个扫描周期执行调用AXIS0_CTRL使能轴设置初始速度参数。手动模式用AXIS0_MAN做点动配合触摸屏上的点动按钮。自动模式用AXIS0_GOTO做绝对定位每个工位一个位置值。主程序里用一个整数寄存器记录当前工位号比如VW100。每个工位对应一个目标位置存在VW200开始的连续寄存器里。自动运行时根据VW100的值去查表取目标位置然后触发AXIS0_GOTO。// 主程序框架梯形图转STL示意 Network 1: 首次扫描初始化 LD SM0.1 CALL AXIS0_CTRL, EN1, MOD_EN1, ... Network 2: 手动点动 LD M0.0 // 点动正转按钮 CALL AXIS0_MAN, EN1, JOG_P1, ... Network 3: 自动定位 LD M1.0 // 自动启动 MOVW VW100, VW200 // 查表取目标位置 CALL AXIS0_GOTO, EN1, GO1, POSVW200, ...4.2 绝对定位与相对定位的选择AXIS0_GOTO支持绝对定位和相对定位两种模式。绝对定位是走到一个坐标值相对定位是走一段距离。什么时候用绝对比如一台贴标机标签位置固定在X500mm处那就用绝对定位每次走到500mm。什么时候用相对比如一台送料机每次送100mm那就用相对定位每次走100mm。我一般优先用绝对定位因为绝对定位不会累积误差。相对定位如果丢步了误差会一直累积下去跑几十个循环后位置就偏了。绝对定位每次都以原点为参考丢步了下一个循环自动纠正。但绝对定位有个前提每次上电必须回原点。回原点的方式有几种可以用原点开关加Z相信号也可以用硬限位加编码器Z相。SMART的运动控制向导支持主动回零和被动回零我一般用主动回零找原点开关的上升沿然后找Z相信号。4.3 多轴控制的资源分配SMART最多支持4个轴Q0.0~Q0.3但Q0.2和Q0.3最高只有20kHz带伺服的话速度上不去。如果设备需要3轴或4轴联动建议用ST60它有3个100kHz的高速输出点Q0.0、Q0.1、Q0.2Q0.3是20kHz。多轴控制时要注意每个轴的运动控制子程序要独立调用不能互相干扰。AXIS0_GOTO和AXIS1_GOTO可以同时执行但PLC的扫描周期会变长。如果两个轴同时高速运行扫描周期可能超过10ms这时候要用中断或者高速计数器来处理位置比较。我做过一个三轴设备X轴和Y轴插补Z轴单独动作。X轴和Y轴用两个PTO输出通过程序算好每个轴的脉冲数和频率让它们同时启动。但SMART不支持真正的插补只能做直线近似精度要求高的场合还是得上1200或1500。5. 调试过程中最常见的坑与排查方法5.1 电机不转或乱转的排查流程电机不转是最常见的问题排查顺序如下现象可能原因排查方法电机完全不动使能没给检查SON信号驱动器面板显示是否使能电机嗡嗡响不转脉冲频率太高降低最大速度检查P0-17滤波电机转但方向反方向信号逻辑反改P0-16或调换DIR/-电机转但位置不准电子齿轮比错重新计算P0-12/P0-13电机高速丢步脉冲频率超限检查PLC脉冲频率是否超100kHz电机低速抖动滤波太小加大P0-17电机偶尔乱转干扰检查屏蔽线接地加磁环我遇到过一次电机偶尔乱转的情况查了半天发现是变频器干扰。那台设备上有一台2.2kW变频器和伺服驱动器装在同一个柜子里。变频器一启动伺服就偶尔丢步。后来把伺服脉冲线换成双绞屏蔽线屏蔽层接柜体接地排问题就解决了。如果还不行可以在脉冲线上加一个磁环或者把变频器载波频率调低。5.2 定位精度不稳定的原因分析定位精度不稳定时好时坏一般有这几个原因第一机械间隙。联轴器松动、丝杆螺母间隙大、同步带太松这些机械问题会让定位精度忽高忽低。我一般先用百分表打一下重复定位精度如果机械本身就有0.05mm的间隙电气怎么调都没用。第二电子齿轮比不是整数比。比如设成131072/1000013.1072这个小数在驱动器内部是近似计算的跑多了会有累积误差。建议把分子分母约分成整数比比如131072/10000约分成8192/625或者干脆设成1:1在PLC里算脉冲。第三加减速时间太短。伺服电机响应快但机械有惯性。加减速时间设太短电机会过冲然后反向修正来回振荡。我一般把加减速时间设成200~500ms根据负载惯量调整。第四到位范围设太大。P0-25到位范围如果设成100那电机停在目标位置±100脉冲内就认为到位了精度自然差。我一般设10~50根据实际需求调整。5.3 高速运行时丢步的解决方案高速丢步是脉冲控制的通病。SMART的Q0.0最高100kHz如果伺服需要200kHz才能跑到额定转速那就只能降速运行。计算一下假设伺服电机额定转速3000rpm编码器131072脉冲/圈电子齿轮比1:1那需要的脉冲频率是3000/60×1310726.55MHz。这远超SMART的100kHz。所以必须设电子齿轮比把指令脉冲降下来。如果设电子齿轮比为131072/10000那3000rpm需要的脉冲频率是3000/60×10000500kHz还是超了。继续降设成131072/1000那频率是50kHz在SMART的能力范围内。但这样每个脉冲对应的移动量就大了精度会下降。所以高速和精度是一对矛盾。我的经验是先确定精度要求再反推最大速度。比如精度要求0.01mm丝杆导程10mm那每个脉冲对应0.01mm电机转一圈需要1000个脉冲。3000rpm时脉冲频率是50kHzSMART完全能带。如果精度要求0.001mm那脉冲频率就是500kHzSMART带不了只能换1200或1500。提示如果速度实在上不去可以考虑用伺服的速度模式PLC只给模拟量或通信给速度指令位置闭环由驱动器自己完成。但这样PLC就失去了位置控制能力适合只需要调速不需要定位的场合。6. 从实际项目里攒出来的经验6.1 程序结构要清晰别堆在一起我见过很多人的程序手动、自动、报警、参数设置全堆在主程序里几百个网络连在一起找个点都费劲。我的习惯是分块写主程序只负责调用子程序手动模式一个子程序自动模式一个子程序报警处理一个子程序参数初始化一个子程序。每个子程序不超过50个网络这样查问题的时候直接定位到对应子程序效率高很多。运动控制的子程序单独放一块AXIS0_CTRL、AXIS0_GOTO、AXIS0_MAN这些调用集中在一起方便统一管理。轴的使能、复位、急停这些逻辑也放在这里不要散落在各个地方。6.2 触摸屏上要留调试接口调试阶段触摸屏上一定要留几个关键参数的输入框电子齿轮比、最大速度、加减速时间、到位范围。这样现场调试时不用连电脑改程序直接在触摸屏上改参数就行。我一般还会留一个“点动速度”的输入框调试机械的时候用低速点动安全又方便。另外触摸屏上要显示当前脉冲数、当前速度、轴状态这些信息。AXIS0_GOTO执行时可以通过读取运动控制向导生成的变量来获取当前状态。比如AXIS0_GOTO的Done位、Error位、当前速度等这些都可以在触摸屏上显示出来方便判断问题。6.3 急停和限位保护不能省急停按钮一定要接在PLC的输入点上程序里检测到急停信号后立即停止所有轴的运动。AXIS0_GOTO有停止功能调用AXIS0_GOTO时把STOP端置1就能停止。但急停要求响应快最好用中断来处理或者直接把使能断掉。限位开关也是必须的。正限位和负限位分别接两个输入点程序里检测到限位信号后禁止对应方向的运动。运动控制向导里可以配置限位开关配置后向导会自动处理限位逻辑。但向导的限位逻辑是软件限位响应有延迟硬限位还是要接作为最后一道保护。我做过一个项目客户为了省成本没装硬限位结果程序出bug电机一直往一个方向跑把丝杆撞弯了。后来加了硬限位再也没出过这种事。硬限位开关几十块钱撞坏一次机械就是几千块这笔账要算清楚。6.4 伺服电机的选型要留余量选伺服电机的时候扭矩要留30%以上的余量。我见过有人算出来需要1.5N·m就选了个1.5N·m的电机结果一加速就过载报警。因为计算的时候没考虑加速扭矩只算了匀速扭矩。加速扭矩负载惯量×角加速度这个值有时候比匀速扭矩还大。惯量匹配也很重要。负载惯量和电机转子惯量的比值一般控制在5:1以内动态响应要求高的场合控制在3:1以内。比值太大电机会振荡调不好。如果负载惯量确实大可以加减速机减速比的平方能降低等效惯量。6.5 接地和屏蔽是玄学也是科学伺服系统对接地和屏蔽特别敏感。我总结了几条PLC柜和伺服驱动器柜最好分开接地如果共用一个接地排接地线要够粗至少6平方。脉冲信号线、编码器线、动力线要分开走线槽间距至少20cm。实在分不开交叉走不要平行走。屏蔽层单端接地接在PLC侧的接地排上。两端接地会形成地环路反而引入干扰。伺服电机的动力线用屏蔽线屏蔽层接在驱动器侧的接地端子上。有一次客户反映伺服偶尔报警过流我去现场看发现编码器线和动力线绑在一起走线。把编码器线分开后问题就消失了。这种干扰问题说它是玄学也行但背后都是电磁兼容的基本原理。7. 这套方案还能怎么扩展SMART带伺服做单轴点位控制是最基础的用法。如果设备需要两轴联动可以用两个PTO输出做直线插补虽然精度不如真正的插补但很多场合够用。我做过一个XY平台用两个轴分别走X和Y程序里算好两个轴的速度比让它们同时到达目标点走出来的轨迹是折线但在允许误差范围内。如果要用到模拟量控制伺服速度SMART本体有模拟量输出吗没有需要加模拟量扩展模块比如EM AM03。但模拟量控制速度精度差不如脉冲控制。再往上走如果设备需要多轴同步、电子凸轮、追剪这些功能SMART就力不从心了。这时候要考虑S7-1200或1500它们支持PROFINET IRT可以带V90伺服做真正的运动控制。但成本也上去了一套1200V90比SMART第三方伺服贵不少。选型的时候要根据设备精度要求和预算来权衡别盲目上高端。我个人在实际操作中的体会是SMART带伺服这套方案在精度要求0.01mm、速度要求50kHz以下的场合性价比非常高。关键是把电子齿轮比算对、把屏蔽接地做好、把程序结构理清楚。这三件事做好了系统跑起来很稳。
返回列表