ARTICLE DETAIL

资讯详情

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

图解伺服电机零点与原点:5个关键差异与设置流程

图解伺服电机零点与原点:5个关键差异与设置流程 在设备调试现场我见过太多人被两个词绕晕一个叫“零点”一个叫“原点”。伺服电机一转编码器一计数“零点丢失”“找不到原点”“位置偏移”这类报警随机播放很多人第一反应是硬件坏了换了电机、换了驱动器问题还在。其实连概念都没对齐后面所有参数都会调得心里没底。零点错了电机换相不对跑起来全是怪声原点错了轴系坐标全乱撞机就是一瞬间的事。这篇文章我打算用图解的方式把伺服电机零点与原点之间最容易被忽略的5个关键差异拆开讲透再附上从驱动器到PLC再到上位机的完整设置流程。内容适合刚入门的电气工程师、做非标设备的调试人员也适合被回原点问题折磨过的老手。读完你至少能搞清楚一件事报警里说的“原点”和厂家手册里的“零点”到底谁在跟你过不去。1. 先分清概念伺服电机的“零点”到底是什么1.1 编码器零位旋转刻度盘上的“12点”增量式编码器转一圈会发出几千上万甚至上百万个脉冲但脉冲本身只有“相对变化”你没法靠脉冲数判断电机当前具体转到哪个角度。所以编码器在圆盘上额外刻了一条“标记线”——Z相也叫零脉冲。电机每转一圈Z相只出现一次。零点这个说法指的就是编码器这一圈Z相信号所在的物理位置。但这里要再深入一层伺服电机是永磁同步电机驱动器需要知道转子磁极此刻在哪个角度才能决定给哪一相通电、怎么换相。编码器Z相只是给你一个“转圈基准”它和电机磁极之间还有一个角度差。伺服厂家在出厂时会做一次“零位标定”把编码器Z相和电机磁极方向对齐这个标定出来的电气位置才是驱动器真正认的“零点”。它决定了电流能不能高效转换为电磁转矩。我在现场见过一台新装的伺服上电空转正常一使能就发出“嗡嗡”的啸叫手摸电机外壳烫得厉害空载电流飙到额定值以上。折腾半天最后查出来是编码器零点偏了接近30度电角度驱动器换相时机完全错位。零点这个东西对普通用户来说看不见摸不着但它一偏整个电机就“精神错乱”。1.2 绝对式编码器的零点有什么不同增量式编码器断电后脉冲计数归零必须靠电池或者每次回零来找位置。而绝对式编码器每个位置都对应一个唯一码值断电后位置还在这在很多设备里省去了“每次开机回原点”的麻烦。但绝对式编码器也有它自己的“零点”故事。单圈绝对式编码器断电后能记住一圈以内的位置多圈绝对式能记住几千几万圈。它靠内部机械齿轮或电子计数保存圈数而电池的作用就是给编码器内部的计数电路持续供电。这个编码器的“绝对零点”通常是出厂设定的对应一个固定码值驱动器通过这个码值确定电机转子的绝对角度。这里有个坑很多人装了绝对式编码器就以为永远不会丢位置结果电池电压掉到3V以下编码器内部圈数丢失上电直接报“位置丢失”或者“多圈数据异常”。这时候就得重新对零点、重新标机械原点。别问我是怎么知道的我帮客户处理过三次这样的问题都是因为设备停了几个月没通电电池耗光了。1.3 电气零点和编码器零点是不是一回事严格来说伺服“零点”在驱动器内部包含两个层次一是编码器的物理Z相位置二是电机磁极电角度的零点。低速、轻载场合Z相位置偏差几度可能影响不大高速或高精度场合如果磁极角度对不准力矩会波动噪音变大甚至出现过流。驱动器在标定时会在这两个零点之间做补偿所以用户看到的参数往往是一个“零位偏置值”比如汇川伺服里的编码器零点偏移、松下伺服里的“编码器初始化/自动调整”功能。一句话总结电气零点本质上是“为了让电机正确运转而设立的电角度基准”。它跟坐标、跟工件位置没有直接关系它是电机换相的“命根子”。很多人把它和机械原点搞混就是因为没理解这个层级关系。2. 机械原点的真实身份坐标系里的“0,0,0”2.1 原点是给运动控制“画坐标系”用的如果说零点是电机内部的电气基准那么原点就是整个轴系的坐标基准。设备工作时我们希望电机的每一圈、每一个脉冲都能对应到工作台或者机械臂的一个具体位置。怎么对应就是靠建立一个“机械坐标系”而坐标系的起点就叫原点。原点的物理实现方式多种多样可以是接近开关可以是光电开关可以是行程挡块也可以是伺服自身的扭矩限制。常见做法是在机械导轨的某个位置装一个传感器电机带着运动部件去找这个传感器找到后减速再以很慢的速度继续找Z相脉冲或传感器边沿最终停在那个位置控制器把这个位置记为坐标0。以后所有移动都基于这个0点计算。就像一个卷尺你得先确定“0刻度”在哪后面的1米、2米才有意义。原点和“零点”的区别就好比“尺子上的0刻度”和“卷尺内部齿轮的基准位置”一个是为了量物体一个是为了让卷尺本身准确地收放。2.2 为什么增量式系统“每次开机”都要回原点增量式编码器输出的是脉冲变化量断电后它不知道自己转过几圈更不知道工作台停在哪。哪怕你断电前工作台在坐标500的位置重新上电后你必须重新找到那个物理原点把坐标重新归零否则控制器以为的坐标和实际位置完全对不上一运行就可能撞机、顶工件。这就是“回原点”动作存在的原因不是伺服电机需要回而是控制系统需要一个绝对坐标基准。在整个回零过程中一般会经历“高速寻找原点开关→减速→低速爬行→捕捉Z相脉冲或开关边沿→停止”最终把捕捉到的位置作为机械原点。还有一个细节很多人忽略回原点的精度并不取决于高速段而取决于低速爬行速度和Z相信号的捕捉方式。如果爬行速度太快开关信号又有抖动每次停下来的位置可能差几十个脉冲。对要求高的设备一定要把爬行速度降下来最好用Z相脉冲锁存来确定最终位置而不是单纯靠开关信号。2.3 原点开关和限位开关是两码事很多初学者把原点开关和限位开关接错或者干脆共用一个信号现场就会出各种奇怪问题。限位开关的作用是防止运动部件冲出机械行程它起到的是“保护墙”的作用而原点开关的作用是确定坐标起点它是“刻度尺的0点”。两者逻辑上可以共用同一个硬点但在程序里必须区分对待。比如Mach3这类CNC控制软件里设置原点Home和设置限位Limit是独立的两组参数。原点回零流程会专门去找“Home”信号而限位信号通常接在急停回路里一旦触发就要停掉所有轴。如果混在一起可能出现的情况是轴还没找到原点先撞了限位或者每次回原点停的位置因为限位误差而飘移。3. 图解“零点 vs 原点”的5个关键差异3.1 差异一一个是“电气角度”一个是“物理位置”零点是编码器Z相和电机磁极之间的对齐关系描述的是“转子的电气角度”单位是度电角度。原点是运动机构在空间中的位置描述的是“工作台/机械臂在哪”单位是毫米、度、脉冲数。这就好比一辆汽车的发动机零点相当于曲轴在上止点的位置原点是车头对准的那条车道线的起点。发动机内部基准错了车会抖、会没劲车道基准错了车就会跑偏。伺服系统里也一样零点错是“电机层面”的错原点错是“轴系层面”的错。3.2 差异二零点靠出厂标定原点靠现场定义电机和编码器在伺服厂家生产线上就已经配合好零点是通过专业设备标定出来的用户正常情况下不需要碰。而原点是在设备组装完毕、机械限位装好之后由调试工程师根据工艺要求现场设定的。这意味着两个东西的“责任人”完全不同。零点出了问题大概率是编码器损坏、电机拆装过、或者驱动器型号不匹配需要返厂或重新初始化编码器。原点出了问题则是程序逻辑、传感器安装位置、回零参数的问题现场就能处理。3.3 差异三断电之后一个“记住”一个“归零”绝对式编码器的零点靠电池或内部存储保持断电后依然能识别转子角度而增量式编码器的零点本质上只是一个“虚拟基准”断电后位置丢失重新上电必须靠回原动作找回。原点的命运则取决于控制器有没有记忆功能。普通增量式系统断电后原点信息随坐标丢失每次上电都要重新回原点如果配了绝对式编码器原点坐标可以被保存上电直接可以工作不需要每次回零。但这个“保存”是有条件的控制器保存的是“编码器当前位置相对于原点的偏移值”如果编码器零点本身出了问题或者机械上有打滑、连轴器松动保存的值就会失真。我遇到过一台贴标机早上开机一切正常下午突然所有贴标位置偏移了2毫米查了半天原因是连轴器顶丝松了导致电机转了一圈但丝杠实际没走那么多。3.4 差异四零点是“定电流的”原点是“定坐标的”零点的准确度直接影响换相和力矩输出。零点偏一点电流效率下降电机会发热、抖动、啸叫负载一大就可能过流报警。但零点不会直接导致“位置错”因为位置是控制器通过脉冲数算出来的。原点一旦设偏所有坐标都会跟着偏。比如原点偏了1毫米设备每执行一次加工都会在同一个方向偏1毫米。这种误差不会自己消失而且很难通过调增益、改速度参数解决。我用一个表格把这两个概念的区别摊开看会更直观对比维度零点电气零位原点机械原点所属层级电机/驱动器内部机械轴系/控制器坐标本质含义电角度基准决定换相坐标基准决定位置默认决定者伺服厂家出厂标定现场调试人员设定断电表现绝对式可保持增量式需重新识别绝对式可保存增量式需重新回零出错症状抖动、啸叫、发热、过流位置偏差、撞机、坐标错误调整工具驱动器调试软件、编码器初始化PLC程序、原点传感器、偏置参数3.5 差异五对控制程序的影响层级不同零点的事一般由伺服驱动器自己管理。你向驱动器发送“使能”它自己会检测编码器反馈、计算磁极角度不需要PLC告诉它“零点在哪”。零点不对驱动器和电机自成一体就出问题程序里往往看不到明显的逻辑错误。原点却是控制程序必须参与的事情。PLC需要执行回原点指令比如三菱的DSZR、ZRN西门子的MC_Home或者ST语言里自己写的找原点逻辑。程序要控制方向、速度、等待传感器信号、记录坐标、设置偏移。原点涉及的是整个闭环的运动逻辑不像零点那样“藏在驱动器里”。后来我用STM32通过485总线控制伺服驱动器发现思路其实也一样我先发指令让驱动器使能再发“回原点”命令或者自己控制脉冲让电机去找原点开关找到后把当前位置清零。如果只是零点不对驱动器自己会报错我根本不用操心程序怎么写但原点不对那写多少行程序都救不回来。4. 实用设置流程从零点到原点一次走通4.1 编码器零点校正的操作步骤先把结论放前面普通维护场景下不需要做编码器零点校正。什么时候才需要换过电机、换过编码器、驱动器报“编码器故障”、电机拆装过或者电机转动正常但力矩明显异常这时候才考虑重新标定。以汇川IS620N系列为例操作大致是连接伺服调试上位机软件进入参数或调试界面找到编码器初始化/零点校正功能让电机处于自由状态然后执行初始化。软件会自动给电机通电并慢慢转动电机捕捉Z相和磁极位置最后写入新的零点偏移值。松下A6系列也是在PANATERM软件里类似操作有一个“自动调整”功能。这里有几个必须注意的点注意执行编码器零点校正前一定要把电机和负载脱开或者至少把负载降到最低。因为校准时电机会自己转动如果带负载可能会撞到机械或者因为负载力矩导致零点标偏。还有一点初始化完成后驱动器会提示重新上电这时候一定要把参数保存好。调试软件里的参数默认可能只存在RAM里断电就丢别辛辛苦苦标完零位结果断电后一朝回到解放前。4.2 机械原点的设定从接线到参数的三步走机械原点设定看起来简单实际细节很多。第一步确定原点传感器类型并接线。NPN还是PNP常开还是常闭这个必须查驱动器手册确认。接反了轻则回零失败重则烧输入端口。第二步在驱动器或PLC里设置回零参数。需要设置的主要有三个回零方向、高速速度、爬行速度。回零方向决定电机先往哪边找原点高速速度决定效率爬行速度决定精度。比如可以设定高速2000r/min碰到原点后降为50r/min以低速捕捉Z相脉冲停止。第三步找原点完成之后设置原点偏置量。有的设备不希望坐标原点在开关位置而是希望在加工位置的起点这时就可以在原点基础上加一个偏移让控制器显示的目标坐标直接对应工艺位置。偏置方向正负一定要对上不然第一次运行就曝光。4.3 PLC回原点程序怎么写得稳PLC回原点程序的经典写法分三种第一是“原点开关Z相锁定”第二是“原点开关定时器延时”第三是“直接使用驱动器内置回零功能”。精度要求高的设备首选第一种。以三菱PLC为例DSZR指令可以执行带DOG搜索的回原点执行过程中PLC会等待原点开关信号然后由伺服驱动器输出Z相脉冲信号到PLC的高速计数器或中断输入锁定精确原点位置。这段程序写起来不算复杂但调试时要注意原点开关信号一定要接在PLC的高速输入或者中断输入上普通扫描方式处理会丢失脉冲精度会差很多。如果用西门子1200/1500运动控制的MC_Home指令会简单一些可以选择绝对位置直接回零、参考点挡块回零等多种模式。注意“绝对位置直接回零”模式下电机必须配置绝对式编码器否则上电后没有坐标参照这条指令会执行失败。也可以让STM32这类单片机通过485总线直接向伺服驱动器发送Modbus RTU协议的控制命令让驱动器自己完成回原点。以汇川伺服为例通过通信写入控制字选择回零模式回零完成后读取状态字确认。这种方法少了很多硬接线但调试时要特别注意通信周期和状态字轮询否则原点信号已经触发你这边还没收到反馈一样会有位置偏差。4.4 扭矩控制模式回原点的特殊场景有些场合没有原点传感器或者机械结构不允许装传感器就可以用扭矩控制模式来找原点把电机切换到扭矩模式给定一个固定方向的微小力矩让运动部件慢慢压向硬挡块直到扭矩达到设定值说明已经“顶死”把这个位置记为零点或参照点。这个方法在贴标机、切割机、绕线机里都常见好处是结构简单不需要额外传感器。但坏处也很明显每次压挡块时机械变形量不同重复定位精度略差长时间顶挡块还可能损伤机械。所以一般不会直接用扭矩模式做最终原点而是用扭矩模式找到大致位置再反向离开挡块配合Z相脉冲做精确定位。我见过一个方案做得很稳先用扭矩模式压挡块然后反向退开一定距离再朝原点方向低速移动并用Z相锁存作为最终原点。这样既保留了扭矩找零的简单结构又获得了Z相的重复精度。如果你设计的新设备可以参考这个思路。5. 常见问题与排查技巧5.1 上电报警“原点丢失”怎么办先判断是驱动器报警还是PLC报警。如果是驱动器报“编码器电池电压低”或者“位置丢失”那大概率是绝对式编码器电池没电了需要更换电池然后重新设定机械原点。这种情况我处理过很多次换电池本身不难难的是换完电池之后要重新标原点很多操作工不知道直接把报警清了就让设备跑结果整个坐标全偏。如果是PLC报“原点未建立”那就检查回零条件回零速度是否设了0原点传感器有没有信号使能信号有没有给。曾经有一台设备开机就报原点丢失排查发现是PLC输出点烧了回零方向的那个Y点没输出电机一启动就撞到限位根本不是原点开关的问题。5.2 回原点每次位置都能差几个脉冲这种问题几乎都和爬行速度、Z相捕捉或信号干扰有关。先把爬行速度往下降比如原来30r/min降到10r/min或者更低再测几次重复精度。如果变好了说明是速度太快导致机械惯性冲过头。如果降低速度后误差还在要检查Z相信号线是不是和动力线绑在一起走线干扰导致Z相脉冲被提前或延后捕捉。伺服信号线必须和动力线分开走而且要使用屏蔽双绞线屏蔽层单端接地。这是最容易被忽视却最影响精度的细节。还有一种常见误操作回零完成后人为用手推动了电机或负载编码器计数和实际位置已经错位下一次上电回零后表面看坐标对上了实际上机械位置已经偏了。带绝对式编码器的系统尤其要小心因为程序可能会直接复用断电前保存的位置而不是重新回零。5.3 零点偏移会导致哪些“假象”零点偏移最典型的现象是电机空载运行正常带负载后过流或者电机低速正常高速啸叫。这时候不要急着调增益先检查编码器零点。如果怀疑零点有问题用调试软件读取编码器位置和电角度观察运行时的角度误差是否过大。还有一种情况是“开机正常跑热了就报警”。这往往是编码器零点在温度变化后发生漂移常见于换过非原装编码器、或者编码器安装座松动。这时候需要重新校准零点同时检查编码器固定螺丝是否紧固。记住一个原则零点不是调试出来的是标定出来的如果频繁发生零点漂移一定是硬件安装有问题而不是参数问题。5.4 快速排查速查表现象可能原因检查顺序上电报警“原点丢失”电池没电/位置未保持换电池→重新标原点→检查回零条件回原点位置漂移爬行速度太快/Z相干扰降速→查屏蔽线→查Z相锁存电机空载正常带载过流编码器零点偏移检查编码器零点→重新标定→查机械负载回零后坐标对但位置错原点偏置方向/数值错检查偏置值→手动验证坐标开机找不到原点开关传感器坏/接线反/逻辑错误看IO状态→查线路→查程序绝对式编码器位置丢失电池耗尽/多圈溢出换电池→重新设定原点→避免长期断电这些坑我基本都踩过一遍很多时候问题本身不难难的是被错误的概念带偏了方向。分清零点与原点之后你会发现大多数报警都能在几分钟内定位到正确的检查范围。我个人在实际调试中的体会是遇到任何位置类故障先问自己一句——“这个问题是电机层面的事还是轴系层面的事”这一句话能帮你省下一半的排查时间。至于零点标定和原点设置的具体数值每个品牌、每台设备都不一样动手之前务必翻一次手册别凭记忆写参数。
返回列表