ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

西门子S7-1200 1214C PTO直驱步进电机从选型到排故

西门子S7-1200 1214C PTO直驱步进电机从选型到排故 先说个真实场景。前阵子帮一个做小型点胶平台的客户改设备控制核心就是一台 S7-1200 CPU 1214C DC/DC/DC下面挂着一台 57 步进电机加驱动器走脉冲加方向的方式驱动丝杠做 Z 轴升降。客户之前的做法是用普通数字量输出点配合定时器自己敲脉冲结果一到 2 kHz 以上就开始丢步低速还抖得厉害。后来换成 CPU 自带的 PTO 脉冲输出用运动控制工艺对象来做参数一填动起来稳得跟换了台设备一样。这件事其实很典型。西门子 PLC1200 里的 1214C DC/DC/DC是小型自动化设备里被用得最多的一款 CPU14 点输入、10 点晶体管输出、板载 4 路高速脉冲输出直接就能带步进电机驱动器不需要额外的脉冲模块。它适合谁做非标设备、包装机、点胶机、小型移载平台、实验台架、教学实训台的电气和自动化工程师以及刚上手博途、想把PLC 控制步进电机这件事从头到尾跑通的新手。它解决的问题也很明确把位置控制这件事从软件发脉冲变成硬件发脉冲把丢步、抖动、方向切换时序这些坑一次性绕过去。下面我把这套组合从选型、接线、组态、编程到排故完整走一遍都是我实际调试中验证过的做法能直接抄作业。1. 先搞清楚1214C DC/DC/DC 到底能不能直驱步进电机1.1 型号命名里的三个 DC 分别代表什么西门子 S7-1200 的订货号里CPU 型号后面那串AC/DC/Relay或者DC/DC/DC是电源、输入、输出三段的类型代号顺序不能记错。第一个 DC 指 CPU 的供电是 24V 直流第二个 DC 指数字量输入是 24V 直流输入第三个 DC 指数字量输出是晶体管输出也就是固态 MOS 输出而不是继电器触点。这个第三段的 DC 才是能带步进电机的关键。继电器输出机械动作寿命有限、响应速度也就 10 Hz 级别用它发脉冲基本等于自找麻烦。晶体管输出没有触点磨损开关频率能做到几十上百 kHz才能支撑 PTO 脉冲输出。所以如果你手上的 CPU 是 1214C AC/DC/Relay直驱步进这条路就得改方案要么换 CPU要么加一块脉冲输出模块。另外要留意DC/DC/DC 版本的数字量输出是源型PNP输出也就是输出点导通时对外给出 24V负载另一端回到 0VM 端。这一点直接决定了后面接线是走共阴还是共阳先记住这个特性第二节会细讲。1.2 板载 PTO 资源盘点能用几个轴能跑多快CPU 1214C DC/DC/DC 板载 10 路数字量输出编号 Q0.0 到 Q1.1。其中 Q0.0、Q0.1、Q0.2、Q0.3 这四路可以组态成高速脉冲输出也就是 PTOPulse Train Output或者 PWM。每一路做 PTO 时最高输出频率是 100 kHz脉冲加方向各占一路所以理论上一个 1214C 可以带 4 个单轴定位或者 2 个轴如果每个轴还额外要一路使能输出。不过实际项目里我不建议把 4 路全塞满。原因有三点一是脉冲输出点被工艺对象占用后就不能再当普通输出点用了剩下的普通输出点只剩 Q0.4 到 Q1.1 共 6 路很多时候接几个中间继电器、电磁阀、指示灯就不够用了二是四个轴同时高速跑CPU 的扫描周期和工艺对象的运算负担会明显上升三是接线和抗干扰的难度会成倍增加。所以 1214C 我一般按 1 到 2 个轴来规划超过 3 个轴就建议往上升 CPU或者干脆换成总线型步进驱动器走 PROFINET一根网线串好几个轴省点数也省线。100 kHz 这个上限也得算清楚能跑多快。假设驱动器细分设成 1600 脉冲每转那么 100 kHz 对应 100000 ÷ 1600 62.5 转每秒也就是 3750 转每分钟。这个速度对步进电机来说远超它的能力范围了——57 步进电机在 24V 供电下能稳定跑到 600 到 900 转每分钟就算不错了。所以真实项目里PLC 这端的 100 kHz 几乎从来不是瓶颈瓶颈永远在驱动器电压和电机的矩频特性上。这一点很反直觉但确实是我调试中最常跟人解释的一件事。1.3 什么时候该用脉冲型驱动器什么时候换总线型脉冲加方向的方案优势很明显接线简单、调试直观、成本低、实时性好一颗脉冲对应一个位移量完全不依赖通讯周期。缺点也很明显一个轴至少占 2 路输出线多传输距离短24V 单端信号一般控制在 2 米以内没有反馈属于开环控制堵转了 PLC 也不知道。什么时候该换总线型比如支持 Modbus RTU 或者 PROFINET 的步进驱动器我自己的判断标准是这几条轴数超过 4 个设备分布比较散驱动器离电柜超过 3 米需要读驱动器的实时电流、位置、报警码这些诊断信息或者需要和变频器、仪表、称重模块统一挂在一条通讯总线上管理。像热词里提到的一个西门子 PLC 与 32 个变频器做 Modbus 通讯控制这类需求本质就是总线化管理的思路步进轴多了以后走同一条路会更清爽。但如果是 1 到 3 个轴的简单定位我的建议很直接就用 PTO别折腾总线。PTO 的实时性和确定性是总线比不了的尤其是做往复运动、频繁启停、需要精确到位信号的场合。2. 硬件选型与接线把线接对成功一半2.1 电源、驱动器、电机三者怎么匹配先说供电。CPU 1214C DC/DC/DC 要求 24V 直流供电允许范围大约 20.4V 到 28.8V典型功耗在 12W 上下。步进驱动器的供电是单独一路电压越高电机高速时的转矩保持能力越好。42 步进电机一般用 24V 就够57 电机建议 36V 到 48V86 电机通常上到 48V 甚至更高。这里有个特别容易被忽略的坑驱动器电压和 PLC 电压如果不一致千万不要图省事共用一路电源。我就见过有人把 48V 电源同时接到驱动器和 1214C 上上电一瞬间 PLC 就冒烟了。正确做法是 PLC 单独用一个 24V 开关电源驱动器用另一个电源两边的 0VM 端可以共地但正极绝对不能混。共地是为了让脉冲信号有统一的参考电平这个必须做。电源容量怎么估把这一路电源上挂的所有负载电流加起来再乘 1.5 倍余量。一个 57 步进电机按额定电流 3A 算加一个 24V/0.5A 的 PLC开关电源至少选 24V 5A 的规格。如果用的是 48V 驱动那 PLC 的 24V 电源选 2A 就够了。再说驱动器的电流拨码。这个一定要对着电机铭牌设不要凭感觉。电机铭牌写着额定电流 3.0A驱动器拨码就设到 3.0A 档设大了电机会发热、啸叫设小了会丢步、转矩不足。有一个小技巧如果电机大部分时间在中低速运行可以把电流设到额定值的 70% 到 80%配合驱动器的自动半流功能能明显降低电机温升寿命更长。细分怎么选很多人以为细分越高越好其实不对。细分提高的是分辨率和低速平稳性不增加转矩。细分太高还有个副作用同样的转速需要 PLC 发更高频率的脉冲而且电机在极低速度下的定位噪声会变大。我的经验值是这样的应用场景建议细分每转脉冲数说明皮带输送、粗略定位400 到 800400/800速度优先分辨率够用丝杠升降、一般定位16001600最通用的档位精密点胶、微动平台3200 到 64003200/6400分辨率优先注意频率余量2.2 源型输出与共阴共阳接法顺手把限流电阻算清楚这是整个接线环节里最容易接错的地方我把它拆成三步讲。第一步看清驱动器输入端的结构。绝大多数步进驱动器的 PUL、DIR、ENA 三个信号都是光耦隔离输入每个信号有两根线比如 PUL 和 PUL-。光耦本质上就是个发光二极管电流从正极流向负极时才导通。所以核心问题就变成了怎么让 PLC 输出的信号把光耦点亮。第二步回忆 1214C 的输出特性。前面说过DC/DC/DC 是源型输出输出点导通时对 M 端给出 24V。这意味着 PLC 只能给高电平不能拉低电平。所以正确接法是共阴接法PLC 的输出点接驱动器 PUL驱动器的 PUL- 接 PLC 的 0VM 端。PLC 输出导通时24V 加在光耦两端光耦点亮驱动器收到一个脉冲。那共阳接法为什么不行共阳是把 PUL 直接接到 24VPUL- 接 PLC 输出点靠 PLC 拉低来点亮光耦。但 1214C 的源型输出关断时是高阻态不是拉到 0V光耦点不亮。所以用 1214C 直驱就老老实实走共阴。除非你中间加了一级继电器或者光耦转换板。第三步算限流电阻。这是个必须动手算的参数很多人直接省掉结果要么光耦烧了要么电流不够点不亮。假设驱动器输入端是 5V 规格内部限流电阻约 380 欧姆光耦工作电流取 10 mA。PLC 给的是 24V那么总限流电阻应该是R 总 (24V - 1.2V) ÷ 10mA 2280 欧姆减去驱动器内部的 380 欧姆外部需要串R 外 ≈ 2280 - 380 1900 欧姆取标准值 2 kΩ 就对了。如果是三路信号PUL、DIR、ENA每路都要各串一个 2 kΩ 电阻功率 1/4W 足够。实际工程里我见过 1 kΩ 到 2.2 kΩ 都在用本质是在信号裕量和光耦寿命之间找平衡——电阻偏小电流大抗干扰好但发热大电阻偏大电流小长期稳定性好但线长了可能丢脉冲。我一般用 2 kΩ。如果你的驱动器铭牌上写着输入电压 5 到 24V 通用那说明它内部已经做了限流处理直接接就行不用外挂电阻。这种情况还是先拿万用表量一下输入电流确认一遍别盲信丝印。注意接完线第一次上电前一定要用万用表蜂鸣档确认 PLC 的 0V 和驱动器的信号地是通的同时确认 24V 和 0V 之间没有短路。这一步花两分钟能省掉一次烧板子的钱。2.3 ENA、ALM、原点与限位信号到底要不要接这几个信号接不接是新手最纠结的地方我分开说。ENA 是使能信号。很多驱动器的 ENA 默认是悬空即使能也就是说你不接它电机也是抱死的通电状态下。所以简单项目里ENA 完全可以不接。但如果你的设备有手动推料、安全解锁这类需求就需要用 PLC 控制 ENA让电机在特定情况下脱机。这时候注意ENA 有的驱动器是高电平使能有的是低电平使能一定要查驱动器手册。如果极性反了正常的做法是在 PLC 程序里对输出点取反而不是硬接线。ALM 是报警输出驱动器内部出问题过流、过压、过热、短路时它会输出一个信号。我强烈建议接上接到 PLC 的一路输入点。这属于平时用不上出事救命的信号。设备在客户现场半夜报警停机如果有 ALM 信号操作工看一眼屏幕就知道是驱动器故障还是机械卡死能省掉一整趟差旅。原点和限位我建议这样配原点回零开关接一路输入正负硬限位各接一路输入。1214C 有 14 路输入一般项目够用。回零开关用接近开关或者光电开关都行推荐 PNP 常开型和 1214C 的源型输出逻辑一致接线和排查都省心。这里有个细节给定位轴工艺对象组态硬限位的时候需要在工艺对象里指定限位开关对应的输入点。一旦触发硬限位轴会按组态的急停减速停下来。所以这个减速值不能设得太小否则机械冲击很大也不能设得太大否则撞得深。我一般按正常减速值的 1.5 到 2 倍来设。3. 博途组态从新建工程到第一个轴动起来3.1 设备组态与 PTO 通道启用打开博途新建项目添加新设备选 CPU 1214C DC/DC/DC订货号要和实物一致这一步很关键选错了下载会报错。设好 IP 地址和子网方便后续下载。接下来有两种路径分配 PTO 通道。一种是在 PLC 的设备组态里找到脉冲发生器PTO/PWM把 Q0.0 的功能从无改成PTO给它起个名字。另一种是直接新增工艺对象在组态过程中指定脉冲输出点。我推荐第二种因为工艺对象会一次性把脉冲点、方向点、就绪信号都分配好不容易漏。在哪找工艺对象左侧项目树里展开 PLC找到工艺对象双击新增对象在弹出的对话框里选运动控制分类下的TO_PositioningAxis定位轴。命名建议用有意义的英文名比如 Axis_Z不要用默认的定位轴_1后期程序里引用会很难看。注意一个输出点被工艺对象占用后程序里就不能再对它做普通赋值。我遇到过好几次工程师在程序里顺手写了一行 Q0.0 : TRUE结果 PTO 完全没输出还找不到原因。排查这类问题的第一步就是全局搜索输出点地址。3.2 定位轴工艺对象的关键参数怎么填工艺对象的组态窗口有好几个选项卡我按填写的顺序说。常规里选线性轴还是旋转轴。丝杠、皮带这类走直线位移的选线性轴转盘、回转工作台选旋转轴用角度做单位。选错了后面单位换算全是乱的。单位里选脉冲还是工程单位。脉冲模式最省事所有速度和加速度都用脉冲和 Hz 表示不用换算调试直观我一般先用脉冲模式把轴跑通确认硬件没问题。工程单位模式更贴近工艺比如 mm 或度方便操作工理解但需要多填两个参数。机械里就是那两个参数每转脉冲数和每转的负载位移。这两个参数决定了脉冲当量是整个轴控精度的地基。动态里填最大速度、启动/停止速度、加减速时间。这是轴能不能跑稳的关键。位置限制里使能软限位填入最小位置和最大位置并把硬限位开关的输入点指定好。位置监控这一项用 PTO 开环控制时基本用不上有些固件版本会直接灰掉提示没有编码器无法监控。这是正常的不用纠结。3.3 脉冲当量、最高频率与加减速的换算表这部分是纯计算我拿一个真实例子走一遍你照着套就行。场景57 步进电机驱动器细分 1600丝杠导程 5 mm要求最大速度 3000 mm/min。第一步算每转脉冲数。驱动器细分 1600步进电机步距角 1.8 度一圈 200 个整步乘细分 8 就是 1600。所以每转脉冲数 1600。第二步算每转负载位移。丝杠导程 5 mm电机转一圈丝杠走 5 mm所以每转负载位移 5 mm。第三步算脉冲当量。脉冲当量 每转负载位移 ÷ 每转脉冲数 5 ÷ 1600 0.003125 mm/脉冲。也就是一个脉冲走 3.125 微米。反过来走 1 mm 需要 320 个脉冲。第四步核算最高频率够不够。最大速度 3000 mm/min 50 mm/s。需要的脉冲频率 50 × 320 16000 Hz 16 kHz。远低于 100 kHz 的上限硬件资源完全够还留了六倍余量。第五步算加速度。假设要求从静止加速到最高速用 0.2 秒。加速度 16 kHz ÷ 0.2 s 80 kHz/s也就是 80000 脉冲每秒平方。换算成工程单位 80000 ÷ 320 250 mm/s²。把这张表整理出来参数数值计算依据电机步距角1.8 度电机铭牌驱动器细分1600拨码设置每转脉冲数1600200 整步 × 细分 8丝杠导程5 mm机械图纸每转负载位移5 mm丝杠导程脉冲当量0.003125 mm/脉冲5 ÷ 1600最大速度16 kHz50 mm/s × 320加速时间0.2 s工艺要求加速度80000 脉冲/s²16000 ÷ 0.2这些数值直接填进工艺对象的动态参数里就行。3.4 回原点与软限位配置回原点必须做因为步进是开环的PLC 内部的位置计数断电就清零每次上电后轴的实际位置是未知的。不回原点就直接走绝对定位撞机的概率非常高。S7-1200 定位轴支持几种回零方式。最常用的是主动回零轴按设定方向以较快的搜索速度找原点开关碰到开关后减速换向再以较慢的爬行速度返回捕捉开关的上升沿或下降沿把当前位置设成原点坐标。配置时要注意三个参数。搜索方向要跟实际机械布置一致别指望靠改符号来修正。快慢两段速度都要设快速段用于找开关慢速段用于精确定位慢速段一般取快速段的 1/5 到 1/10速度越低定位越准但回零时间越长。回零开关的触发边沿要和你的开关类型匹配常开 PNP 开关一般用上升沿。还有一个容易忽略的点原点坐标不一定要设成 0。我做过一个升降平台机械行程从 -50 mm 到 200 mm把原点设在最低位反而更符合操作习惯这时候原点坐标就可以填 -50。软限位和硬限位要配合用。软限位是程序里做的轴走到设定的最小最大值就自动停属于第一道防线硬限位是物理开关属于最后一道防线。两者之间要留出足够的减速距离一般软限位设得比硬限位内缩 3 到 5 mm让软限位先动作硬限位只在软限位失效或者参数被改错时才起作用。4. 程序编写一个稳定的轴控状态机4.1 MC_Power 使能与基本调用规则工艺对象建好之后程序里通过运动控制指令来驱动它。所有指令都是在 OB1 或者 FB 里循环调用不能在 OB 里只调用一次。第一步是使能。用 MC_Power 指令Axis 引脚填工艺对象名称Enable 引脚接一个常 ON 的布尔量比如系统的 AlwaysTRUE 或者你自己定义的一个位StopMode 一般填 0 表示立即停止。Enable 只要断开轴就立即停所以这个位不要在程序里乱写要留一个明确的手动停止按钮去控制它。调用方式我用 SCL 写比较清爽// 轴控状态机片段 —— 在 FB 的循环调用部分 REGION 轴使能 #instPower( Axis : Axis_Z, Enable : DB_HMI.bAxisEnable, StopMode : 0 ); DB_HMI.bAxisReady : #instPower.Status; END_REGION这里有个新手常见错误把 MC_Power 放在一个条件分支里只有按下按钮才调用。这样下一个扫描周期如果不调用轴的状态就没法维护会报指令未调用的错。记住使能类指令必须每个扫描周期都执行。4.2 相对定位、绝对定位与手动 Jog定位指令有三个常用的MC_MoveRelative 走相对距离MC_MoveAbsolute 走绝对坐标MC_MoveJog 做手动点动。这三个指令都有个 Execute 引脚是边沿触发的——给它一个上升沿它启动一次运动运动过程中即使 Execute 保持为 TRUE 也不会重复启动。所以程序里必须做触发位的复位运动完成Done 为 TRUE之后把触发位清掉否则下一次就触发不了了。相对定位的典型写法REGION 相对定位 #instMoveRel( Axis : Axis_Z, Execute : DB_HMI.bMoveRel, Distance : DB_HMI.rRelDistance, Velocity : DB_HMI.rVelocity ); IF #instMoveRel.Done OR #instMoveRel.Error THEN DB_HMI.bMoveRel : FALSE; // 完成后自动复位触发位 END_IF; DB_HMI.bMoveDone : #instMoveRel.Done; DB_HMI.bMoveError : #instMoveRel.Error; END_REGION绝对定位和这个几乎一样把 Distance 换成 Position 就行。手动 Jog 稍微特殊一点MC_MoveJog 的 JogForward 和 JogBackward 是电平触发的按住就走松开就停适合做调试和手动对位。一个实用的技巧绝对定位和相对定位不要在同一个扫描周期里同时触发。我通常用一个整数状态位来管理比如 0 是空闲、1 是相对定位、2 是绝对定位、3 是回零程序里做互锁只有空闲状态才允许接受新指令。这样能避免指令冲突导致的轴卡死。4.3 状态反馈与错误处理运动控制指令会返回一堆状态位Busy 表示正在执行Done 表示执行完成Error 表示出错ErrorID 是错误代码CommandAborted 表示被其他指令中断了。这些位要全部接到 HMI 上操作工和设备维护人员才能快速判断。我最看重的三个位是 Busy、Done 和 Error。Busy 可以用来做互锁比如运动过程中禁止打开安全门Done 用来做流程衔接比如到位后启动下一道工序Error 用来报警配合 ErrorID 查手册能定位大部分问题。还有一点经验开环步进系统里Done 位只能说明PLC 把脉冲发完了不能说明电机真的到位了。如果工艺对到位有严格要求要么加编码器做闭环要么在机械上加一个到位检测开关做二次确认。我做过一个压装设备就是靠一个接近开关做二次确认比单纯信 PLC 的 Done 靠谱得多。5. 常见故障与排查实录5.1 只响不转、转向反了、丢步这三大高频问题电机只响不转是我被问得最多的问题。按我的经验排查顺序是这样的先看细分和电流拨码有没有设对拨码没设对是最常见的原因尤其是新买的驱动器默认可能是不细分小电流。再看脉冲线接的是不是共阴方式接成共阳的话 PLC 输出高电平时光耦两端电压差是 0根本点不亮。然后看脉冲频率是不是太高了步进电机有个启动频率限制直接从 0 跳到 20 kHz 启动必然堵转必须有加减速过程。最后确认一下机械上有没有没脱开的抱闸或者卡死。转向反了有两条路解决。硬件上把 DIR、DIR- 之外把电机的两相中任意一相的两根线对调比如 A 和 A- 换位转向就反了。软件上在工艺对象里把方向反转的选项勾上或者在驱动器上改 DIR 拨码。我一般优先用软件解决因为硬件线接好之后就不想再动。这里要提醒一句电机相线千万不要在通电状态下拔插很容易烧驱动器。丢步是最考验经验的问题。表现是走 100 mm 实际只走了 99.2 mm跑几趟误差就累积起来。可能的原因排序是这样的加速时间太短电机来不及跟上属于启动丢步把加速时间放长一档试试运行速度超过矩频特性曲线属于高速丢步降速或者抬高驱动器电压电流拨码设得太小转矩不足电源功率不够尤其是启动瞬间电压跌落机械阻力大导轨润滑不够或者丝杠别劲脉冲线受干扰出现多余脉冲或少脉冲排查的办法很简单在低速、慢加速的条件下走一个固定距离看误差是不是零。如果零说明是动态问题如果不为零说明是电气或机械问题。逐步把速度和加速度加回去找到出问题的临界点问题就好定位了。5.2 干扰、丢脉冲与接地的处理脉冲信号是高频方波特别容易被干扰。我有一次调试一台点胶机电机在点胶头工作时会莫名其妙地多走一小段查了整整一天最后发现是脉冲线跟电机动力线绑在同一个线槽里电机换向时的干扰串到脉冲线上多出来几个脉冲。处理这类问题我的做法按性价比排序第一信号线用双绞屏蔽线脉冲对和方向对各用一对双绞屏蔽层在 PLC 一侧单端接地。屏蔽层两头都接会形成地环流反而更糟。第二强电和弱电分槽走线实在避不开就交叉垂直走绝对不要平行贴着走。第三PLC 的 24V 电源和驱动器的电源分开两路电源的 0V 在电柜一点接地星型接地不要图中多点接地。第四驱动器 PE 端一定要接到电柜的接地母排上别悬着。第五在驱动器的电源输入端并联一个吸收电容或者用带滤波功能的开关电源抑制电网侧的干扰。第六如果线路确实比较长可以在 PLC 输出端加一级光耦隔离板把长线部分变成隔离后的信号效果立竿见影。还有一个隐藏的干扰源是变频器。同一台设备上如果有变频器带主轴或者输送变频器的输出线绝对不能和脉冲线同槽而且变频器侧要按手册加滤波器。5.3 高频问题速查表我把调试中最常遇到的问题整理成一张表方便你现场对照现象可能原因排查动作电机不转、无响声使能没给、ENA 极性反、电源未接量输出点电压、检查 MC_Power 的 Enable电机只响不转、堵转脉冲频率过高、细分太小、共阳接错降频、改拨码、改共阴接法转向与预期相反DIR 极性、电机相序工艺对象勾方向反转或对调一相定位有累积误差启动丢步、高速丢步加长加减速时间、降速、抬高驱动电压位置随机跳动脉冲线受干扰换屏蔽双绞线、分槽走线、单端接地轴一动就报错硬限位触发、软限位设置过窄查限位开关状态、核对软限位数值PTO 完全无输出输出点被程序占用、通道未组态全局搜索输出地址、检查设备组态回零找不到原点开关边沿设错、爬行速度过快用监控表观察输入点通断、降速上电后第一次定位撞机未回原点直接走绝对定位上电流程里强制先回零电机运行中莫名停机驱动器过热报警、ALM 信号读 ALM 状态、检查电流设置和散热6. 扩展方向与个人经验6.1 多轴、闭环与总线方案的升级路径如果项目后面要扩展到 3 个轴以上1214C 的 4 路 PTO 虽然在数量上还够但输出点会很紧张。这时候有两条路一条是往上升 CPU 型号选输出点数更多的 1215C 或 1217C另一条是保留 1214C改用总线型步进驱动器通过 PROFINET 或者 Modbus RTU 通信控制轴把脉冲输出点省下来。总线型的另一个好处是能读到驱动器的实时位置和报警信息做闭环监控。如果对定位精度有更高要求可以考虑加编码器做半闭环或全闭环。1214C 板载有高速计数器HSC可以把编码器信号接进来读实际位置在程序里比较指令位置和实际位置的偏差超过阈值就报警或者补偿。这是一个成本不高的折中方案比换伺服便宜很多。再往上就是换伺服系统了。什么情况下该换我的判断标准要求 ±0.01 mm 级别的重复定位精度需要大力矩且高速运行需要真正的闭环控制或者需要多轴插补直线插补、圆弧插补。步进电机在这些场合就是不够用硬上只会无穷无尽地调参数。顺便提一句同一台设备的电气柜里经常还会有别的控制需求比如几台变频器做多段速控制、几台设备做 Modbus 通讯。这时候要注意把通讯负载和实时运动控制分开运动轴走 PTO通讯走独立的总线段不要让通讯周期去影响轴的实时性。有条件的话把运动控制相关的 OB 设为高优先级通讯相关的放在低优先级循环里能明显提升整体稳定性。6.2 我踩过的几个坑第一个坑是电源混用。刚入行的时候图省事把驱动器的高压电源和 PLC 的 24V 从同一路切出来当时用的是可调电源忘了调输出结果 36V 直灌进 PLC直接报废。后来我养成一个习惯每个电源单独贴标签写清输出电压和供给对象接线前先量电压再上电。第二个坑是没做回零保护。有一台设备为了方便上电后允许直接走绝对定位操作工手动把机构推到中间位置之后上电轴以为自己在原点一启动就往反方向撞到底把丝杠撞弯了。后来我在程序里加了强制逻辑上电后只有完成一次回零才允许执行绝对定位和连续运动相对定位在未回零前也只允许低速点动。第三个坑是忽略了电机的低速共振。有一台设备要求运行速度很低只有 30 转每分钟结果电机在这个转速下噪音特别大机构有明显的抖动。后来把细分从 1600 提到 6400运行一下子就平顺了。这个道理是细分提高之后每个脉冲对应的机械位移变小脉冲之间的间隔变得更均匀低速时的步进感就消失了。所以低速应用要大胆提高细分不要怕频率高。第四个坑是驱动器散热。电柜里空间小驱动器紧挨着装夏天连续跑两个小时就过热报警。后来加了小的散热风扇并且把驱动器之间的间距从 10 mm 拉开到 30 mm问题彻底解决。这个成本很低但确实是被很多人忽略的细节。第五个坑是参数没有备份。工艺对象里的参数一旦设好很多工程师就再也不看了等到要换一台同型号设备的时候完全没有记录。我的做法是把工艺对象的关键参数、驱动器的拨码设置、电源的型号规格都整理成一页纸贴在电柜门内侧后期维护的人能直接照着复现省掉大量的重复调试时间。最后再分享一个小习惯。每次调试新设备我都会先在脉冲模式下用最低速度空跑一遍确认方向和位置都对了再逐步提速、切换成工程单位、接入完整的工艺流程。这个顺序看起来慢实际上是最快的——因为一旦把问题混在一起你根本分不清是硬件问题、参数问题还是程序问题。按顺序一项一项确认每步都留一个已验证的基线出了偏差立刻就能定位到是哪一步引入的。这套方法我在几十台设备上用下来几乎没有失手过。
返回列表