☰
三菱FX3U PLC与步进电机手动/自动定位控制实战解析
2026/10/6 15:46:03 网站建设 项目流程

前阵子帮客户调试一台半自动送料机构,控制要求很典型:既要能手动点动进退料,方便换模和对位,也要能设定位置后一键自动跑到位。我选了三菱PLC(FX3U)配步进电机这套方案,驱动器细分设到8,同步带加上减速器后线速度稳定在0.8米每秒,从接线到程序再到调参,一趟走下来效果很稳。这篇文章就把这套"从手动到自动"的完整流程写清楚,包括硬件选型、接线参数、脉冲频率计算,还有梯形图逻辑和指令代码解析,给你一份可以直接抄作业的实战参考。

不管你是刚接触PLC运动控制的电气工程师、设备维护人员,还是自动化专业的学生,只要手头有三菱FX系列PLC和一套步进电机,这篇文章的流程基本都能复现出来。我尽量把每一步为什么这么做也讲透,免得你照着接完线却不知道为什么电机不动、为什么丢步。

1. 需求梳理与整体方案选型

1.1 先把控制需求一条条列清楚

动手之前,我习惯把需求用表格拆开,避免写着写着把自己绕进去。这套送料机构的控制要求大致如下:

功能具体要求
手动模式点动正转、点动反转,按住走、松开停,用于调试对位
回原点上电或自动运行前,一键回到机械原点位置
自动模式设定目标位置,启动后自动定位到目标点并停止
状态切换手动/自动模式互锁,不能同时生效
安全保护原点限位、急停、正反转互锁

这套需求在小型贴标机、送料机构、切割台、点胶机上非常常见。核心就一句话:用PLC发脉冲给步进驱动器,驱动器驱动步进电机走到指定位置。

1.2 为什么用步进电机而不上伺服

这台设备负载不重,定位精度要求0.1毫米以内,速度要求也不算极限,所以步进电机完全是够用的。很多朋友一上来就想上伺服,但伺服加驱动器的成本是步进的三到五倍,而且伺服调试参数多,增益没调好反而会振动甚至飞车,对没有经验的人并不友好。

步进电机是开环控制,PLC发多少脉冲它就转多少步,简单直接。伺服是闭环控制,带编码器反馈,适合高速高精度、负载变化大的场合。两者没有绝对好坏,选型就看负载、精度、速度和预算。

踩坑提示:选PLC的时候,如果控制步进电机或伺服,一定选晶体管输出型,型号通常是MT结尾,比如FX3U-32MT。继电器输出型(MR结尾)只能用在低速通断场合,根本没法发高速脉冲。

1.3 硬件清单与选型依据

我这边实际用到的硬件清单,给你列一份参考:

  • 三菱PLC:FX3U-32MT/ES,晶体管输出,带三路高速脉冲输出(Y0、Y1、Y2),控制步进足够
  • 步进驱动器:雷赛DM3E,或者国产主流细分驱动器都行,关键是支持脉冲+方向控制模式
  • 步进电机:42步进电机或57步进电机,两相混合式,步距角1.8度,扭矩按负载选
  • 机械传动:减速器(本项目用5比1)、5M20同步轮,同步带传动
  • 传感器:NPN型接近开关或者光电开关,做原点信号
  • 电源:24V开关电源,给PLC、驱动器和传感器供电
  • 其他:按钮、急停、指示灯、端子排、线材若干

如果你手头是FX5U,那更好,FX5U内置定位功能更强,支持表格定位,但指令逻辑和FX3U是同一套思路,下文讲的程序在FX5U上稍作调整也能用。FX5U自带网口,后期接触摸屏和上位机更方便。

2. 硬件接线与参数设置:每个端子都不能错

2.1 PLC输出端子规划与驱动器接线

步进驱动器上常见的三个信号端子组是PUL(脉冲)、DIR(方向)、ENA(使能)。我建议这样对应PLC:

驱动器端子接PLC作用
PUL+接Y0输出公共端V+脉冲输入
PUL-Y0接收脉冲信号
DIR+接Y1输出公共端V+方向输入
DIR-Y1控制正反转
ENA+24V正极使能(默认方式见下文)
ENA-24V负极或悬空使能

重点说一下三个问题:

第一,Y0、Y1都是脉冲输出点,但职责不同。Y0负责发脉冲,脉冲数量决定电机走多少步;Y1只是电平信号,决定电机正转还是反转。简单理解,Y0是"走多少",Y1是"往哪走"。

第二,ENA使能信号很多新手会搞反。驱动器的ENA端一般默认是"低电平使能"或者"高电平使能",要看具体驱动器手册。以常见的接法来说,如果想让驱动器在PLC发送脉冲前保持使能状态(电机锁轴),通常把ENA+接24V正极,ENA-悬空或者接负极,具体以手册为准。接反的典型表现是:驱动器面板有电,但电机轴非常松,发脉冲也不动。

第三,PLC输出侧的公共端要接对。FX3U晶体管输出通常是漏型输出,公共端(COM)接0V,输出点内部导通到0V形成回路。如果你的驱动器是共阳接法,就需要把PUL+接+24V,PUL-接Y0,这样Y0导通时电流从24V经PUL流进Y0再回到COM,形成通路。这个方向搞反了,脉冲信号过不去,电机就是不动。

2.2 NPN传感器接线要点

这套设备里,原点信号我用的是一个NPN型接近开关。FX3U漏型输入接线很简单:

  • 传感器棕色线接24V正极
  • 蓝色线接0V
  • 黑色信号线接PLC输入点X0
  • PLC的COM端子接0V

NPN传感器输出低电平有效。当感应到金属挡块时,信号线被拉到0V,X0输入就导通了。这里有个容易踩的坑:PLC输入端COM接法必须和传感器类型匹配。NPN传感器配漏型输入,COM接0V;PNP传感器配源型输入,COM接24V。FX3U的输入公共端可以通过短接片切换,接之前一定看清楚端子排上的标注。

2.3 步进驱动器拨码参数与机械传动计算

驱动器上拨码开关主要设两样:运行电流和细分。

电流按步进电机铭牌设定。42步进电机通常额定电流1.5A左右,57步进电机在2.8A到3A之间。把拨码按说明书拨到对应档位就行,别为了追求力大无穷往高了调,电机发烫严重、驱动器报过流都是这么来的。

细分数我设了8。意思就是电机每转一圈需要200(固有步数)×8 = 1600个脉冲。细分越高,震动越小,但脉冲频率也要跟着提高,对PLC高速输出要求也越高。实际工程里8或16是最常用的折中值。

接下来是整篇文章最有价值的部分:机械参数和脉冲频率的换算。

这个项目机械结构是:步进电机出口带5比1减速器,减速器输出轴装5M20同步轮,同步带线速度要求0.8米每秒。

先算同步轮周长:5M20同步轮,齿数20齿,5M齿形齿距5毫米,周长 = 20 × 5 = 100毫米 = 0.1米。

再算减速器输出轴转速:线速度0.8米每秒,同步轮周长0.1米,那么输出轴每秒转0.8 ÷ 0.1 = 8转,折算成每分钟就是480转。

5比1减速器的意思是电机转5圈,输出轴转1圈。所以电机转速 = 8 × 5 = 40转每秒 = 2400转每分钟。

接着算脉冲频率:细分8,电机每转一圈需要1600个脉冲,那么脉冲频率 = 40 × 1600 = 64000 Hz = 64kHz。

这个64kHz就是PLC发脉冲的最高频率需求。FX3U晶体管输出的高速脉冲可以达到100kHz甚至200kHz,所以完全扛得住,但如果你用继电器输出型PLC,最高只能输出几十赫兹,电机几乎不会转,这就是很多人"程序明明写了但电机不动"的根本原因。

再看定位精度:同步轮转一圈走0.1米,也就是100毫米,对应1600个脉冲,所以每个脉冲对应的位移是100 ÷ 1600 = 0.0625毫米,也就是0.0625mm/脉冲。这个精度对送料机构完全够用。

经验提示:速度和脉冲频率的关系是运动控制里最基础的换算,一定要自己亲手算一遍。不要凭感觉估频率,一旦脉冲频率超过PLC高速输出上限,要么丢步,要么干脆不动。

3. PLC程序设计:手动与自动模式的完整实现

3.1 程序框架与软元件规划

写程序之前,先把软元件规划好。三菱PLC的软元件规划就像房子装修先画水电图,没有规划直接写,后面改起来能改到你怀疑人生。

软元件功能说明
X0原点传感器NPN接近开关
X1手动/自动切换开关ON为自动
X2点动正转按钮手动模式有效
X3点动反转按钮手动模式有效
X4回原点按钮手动模式有效
X5自动启动按钮自动模式有效
Y0脉冲输出接驱动器PUL
Y1方向输出接驱动器DIR
M0自动模式标志切换开关ON时置位
M10自动启动标志启动按钮置位
M8029指令完成标志定位完成后自动置ON
D0目标位置要走的脉冲数
D1运行速度脉冲频率,单位Hz
D8348Y0加速时间单位毫秒
D8349Y0减速时间单位毫秒

关于计数器C,很多朋友学了三菱PLC的计数器指令但是不知道怎么用在运动控制上。这里先提一个最常见的用法:用32位高速计数器C235做位置反馈,编码器接在Y0对应的高速计数通道上,可以实时读取当前位置。不过这台设备是开环控制,计数器主要用于自动循环计数,比如"自动运行10个工件后暂停",用C10就能实现。开环加高速计数器属于半闭环的过渡方案,后面想升级可以再加。

3.2 手动模式:点动控制和回原点

手动点动的逻辑很直接:按正转按钮,Y0持续输出脉冲,Y1保持OFF(正转);按反转按钮,同样发脉冲,但Y1置ON(反转)。松开按钮,Y0停止发脉冲。

梯形图逻辑用文字描述就是这样:

M0(自动模式标志)为OFF时,手动模式有效 X2(正转按钮)导通 → 复位Y1 → 执行PLSY指令持续输出脉冲 X3(反转按钮)导通 → 置位Y1 → 执行PLSY指令持续输出脉冲 X2和X3同时导通时互锁,谁也不动作

这里用的PLSY指令是三菱最基础的脉冲输出指令,格式是:

PLSY D1 D0 Y0

其中D1指定频率,D0指定脉冲数。如果D0设为K0,表示连续输出,只有条件断开才停止。点动就适合用连续输出。

指令表写出来参考这样:

LD X2 ANI X3 ANI M0 AND X0 ; 如果原点位置不允许正转,可加条件 OUT Y001 ; 方向复位=正转 LD X2 ANI X3 ANI M0 PLSY D1 K0 Y000 ; 以D1频率连续发脉冲 LD X3 ANI X2 ANI M0 OUT Y001 ; 方向置位=反转 LD X3 ANI X2 ANI M0 PLSY D1 K0 Y000

这里有几个细节:

第一,方向信号用Y1,但PLSY指令本身只在Y0上发脉冲,所以手动模式下脉冲数和频率是"空转"的,系统不知道当前位置。因此从手动切自动之前,必须回一次原点,校准坐标。

第二,点动速度D1不要设太高。手动调试时人站在设备旁边,速度太快反应不过来,容易撞机。我习惯手动速度设在5kHz到10kHz,也就是每秒3到6毫米左右,安全第一。

回原点我用的是ZRN指令,格式:

ZRN X0 K5000 K500 Y000

意思是:碰到X0原点信号后,以K5000的频率高速回原点,碰到X0后减速到K500爬行速度,直到完全停下并定位。这样能保证每次回原点的停止位置重复精度很高,不会被惯性影响。

注意:ZRN指令执行前,必须把M8340(原点回归方向)设置好。FX3U中M8340是Y0的原点回归方向标志,M8341是Y1的方向标志。如果设反了,设备会直接往反方向冲出去,非常危险。第一次测试时,手要放在急停上。

3.3 自动模式:DRVI相对定位实现

自动模式我推荐用DRVI指令做相对定位。为什么要用DRVI而不是PLSY?核心区别在于:PLSY只管发送固定数量的脉冲,不关心目标位置,而DRVI是带有加减速的定位指令,执行过程中PLC会按设定的加减速时间平滑启动和停止,对机械冲击小很多。

DRVI指令格式:

DRVI D0 D1 Y000 Y001
  • D0:目标位置相对当前位的偏移脉冲数
  • D1:运行频率
  • Y0:脉冲输出点
  • Y1:方向输出点

相对定位的意思就是"从当前停的位置再走D0个脉冲"。如果D0是负数,指令会自动把Y1置ON,电机反转。这种方式比绝对定位(DRVA)灵活,不需要知道机械坐标原点的绝对位置,每次从当前位置偏移就行。

自动模式的程序逻辑:

X5(自动启动按钮)按下 → M10置位 M10导通 → 执行DRVI定位 → 定位完成后M8029导通 M8029导通 → 复位M10,自动启动结束

如果要做连续循环,就把M8029接到一个循环计数器上,比如"C10每完成一次加1,加到目标次数后停止"。

实际梯形图逻辑文字描述:

LD X5 OR M10 ANI M8029 OUT M10 LD M10 DRVI D0 D1 Y000 Y001

就是这么简洁。但这里有个新手特别容易忽略的点:目标位置D0和速度D1必须在自动启动前设置好。如果用触摸屏设定位置,要注意数据格式,步进系统一般都用整数脉冲数,触摸屏上的显示值要乘以"脉冲当量"(就是前面算的0.0625mm/脉冲)才能得到实际距离。

3.4 定位指令代码逐句解析

我见过很多朋友程序能跑,但问他每一句为什么这么写,说不出来。这里把整段自动定位代码拿出来逐句解析。

假设程序从第0步开始:

0 LD X5 1 OR M10 2 ANI M8029 3 OUT M10 4 LD M10 5 DRVI D0 D1 Y000 Y001

逐句翻译:

  • 第0步:LD X5,读取自动启动按钮信号
  • 第1步:OR M10,和M10自锁并联。意思是按钮按一下M10导通后,即使X5断开,M10仍然保持导通
  • 第2步:ANI M8029,串联M8029的常闭触点。M8029是定位指令完成后自动导通一瞬间的完成标志,用它来切断M10,实现"到位自动停止"
  • 第3步:OUT M10,输出M10线圈
  • 第4步:LD M10,M10作为DRVI的执行条件
  • 第5步:DRVI D0 D1 Y000 Y001,执行定位

M8029是个很有意思的软元件,任何定位指令和算术指令执行完,它都会导通一个扫描周期。很多新手不知道这个特性,定位完成后不知道该用什么东西去"接住"完成信号,程序就乱了。你可以把它理解成一个"做完一件事后自动举手的信号",你要做的就是判断它举手之后接下来做什么。

另外,FX3U的DRVI执行过程中,加减速时间由特殊寄存器D8348(加速时间)和D8349(减速时间)控制,单位毫秒。我调试时通常从100ms起步,如果出现启停冲击,就慢慢往上加,到300ms左右基本平顺。加减速太快,电机容易过冲丢步;太慢,设备动作变得迟钝,节拍跟不上。

3.5 模式切换与安全互锁

手动和自动模式切换看起来简单,但没做好互锁很容易出事故。我的做法是加一个两位选择开关X1:

  • X1 OFF:手动模式。X2点动正转、X3点动反转、X4回原点有效
  • X1 ON:自动模式。X5自动启动有效,手动点动按钮无效

程序里用M0作为模式标志:

LD X1 OUT M0

然后在所有手动按钮的逻辑里串M0的常闭触点(ANI M0),在自动启动逻辑里串M0的常开触点(LD M0 AND M10之类),实现彻底互锁。

安全方面,急停一定要单独处理。急停按钮X10按下时,我直接切断Y0的脉冲输出,并且复位所有运行标志。这一点很重要,因为某些定位指令在急停恢复后不会自动继续,你必须手动回原点重新建立坐标。

安全提醒:任何时候,程序里都要给急停留最高优先级。运动控制设备一旦失控,最先伤害的一定是操作人员。别嫌麻烦。

4. 现场调试与常见问题排查实录

4.1 上电调试的标准顺序

程序写完之后,不要直接接负载跑,按下面的顺序来:

第一步,不带电机测试。把驱动器电源断开,只给PLC上电,在线监控程序逻辑。按下手动按钮观察Y0有没有脉冲输出、Y1方向是否正确。这时候看不到电机动作,但能验证程序逻辑链路通不通。

第二步,不带负载空跑。接上电机但不要带同步带和负载,手动点动正转,确认电机转的方向和预想一致。如果方向反了,不用改程序,在驱动器上把DIR信号取反就行,或者把电机A+和A-两根线对调。

第三步,回原点测试。把X0传感器挡块装在合适位置,手动触发回原点,观察高速回原点和爬行减速的动作是否顺畅。这里最关键的是爬行速度要足够低,否则每次回原点的停止位置重复性会很差。

第四步,带负载定位测试。接上同步带和实际负载,自动模式设置小距离(比如1000个脉冲)跑一跑,观察是否到位、有无异响、电机温度是否正常。确认没问题了再跑全行程。

这一套流程走下来,能省下很多排查故障的时间。我见过很多人,程序一写完就直接上电跑负载,出了问题一会儿怀疑接线一会儿怀疑程序,最后发现是加减速时间太短,白折腾一晚上。

4.2 电机不转、丢步、振动等问题的排查对照表

在调试过程中我总结了几个高频故障,整理成表格,方便你排查:

现象可能原因排查方向
电机完全不动PLC是继电器输出型换晶体管输出型PLC
电机完全不动驱动器使能信号没导通检查ENA接线和拨码
电机完全不动脉冲接线PUL正负接反调换PUL+和PUL-
电机只往一个方向转DIR信号没接或逻辑反检查Y1接线或取反方向逻辑
电机抖动、声音异常细分设置太小增大细分,比如从2改成8
电机丢步、定位不准加减速时间太短增大D8348/D8349加速减速值
电机丢步、定位不准电流设置偏小按电机铭牌调大电流
电机发热严重电流设置过大调小电流,或检查静止电流设置
回原点一直跑不停ZRN方向标志M8340设置反修改M8340状态
回原点位置每次都不一样爬行速度太高降低ZRN指令中的爬行速度参数

这里面有两个问题我最想多说两句。

第一,丢步问题。有人以为丢步是步进电机的顽疾,绕不过去。其实大部分丢步都是加减速时间太短、瞬间启停导致负载惯量把电机拖过步。把加减速时间从50ms加到200ms以上,丢步率会大幅下降。步进电机适用的场景是"轻负载、中速度",别拿它当伺服硬抗大惯量负载。

第二,回原点方向跑反。这个真的是高危问题。ZRN指令运行前,PLC会按M8340设定的方向去找原点。如果方向反了,电机会直接往反方向飞出去,撞到机械限位甚至把设备顶坏。第一次测试回原点时,强烈建议先手动把设备移到距离原点传感器较远的位置,空手放在急停旁边,发现方向不对立刻按下。

4.3 两个容易忽略的小细节

第一个细节,原点传感器的安装位置。很多人把原点挡块装在行程末端,这样回原点时先高速冲过来,等传感器感应到再减速爬行,如果传感器和机械限位之间的距离太短,减速距离不够,设备就直接硬撞限位了。我习惯把传感器装在行程中部,或者保证高速段和爬行段之间有足够的安全距离。

第二个细节,脉冲当量和程序单位的统一。触摸屏上显示的距离单位是毫米,而程序里DRVI的目标位置是脉冲数,中间一定要做换算。很多现场调试了半天定位不准,最后发现是触摸屏上填了毫米数但程序把它当脉冲数用,差了十几倍。

5. 后续还能怎么扩展

这套基础版本做完之后,还有几个很实用的扩展方向:

第一个方向是加触摸屏。用三菱GOT或者国产昆仑通态,通过串口或者以太网和PLC通信,把D0目标位置、D1速度直接在屏幕上设置,比用按钮一步一秒地加方便太多。FX5U自带网口,可以直接走MC协议和触摸屏通信,省去232转接模块。

第二个方向是做闭环反馈。如果设备用一段时间之后精度下降,或者负载变化比较大,可以考虑加编码器做闭环。PLC的高速计数器C235接收编码器脉冲,程序里实时比较目标位置和实际位置,偏差超限就报警。这就相当于"半闭环"的步进系统,精度和可靠性比纯开环好很多,成本只增加一个编码器的钱。

第三个方向是换FX5U做表格定位。FX5U的表定位功能可以把几十个位置、速度、等待时间全部写成一张表,适合多工位设备。程序结构也会清晰很多,不用像FX3U那样一堆DRVI写到底。

这套"三菱PLC加步进电机"的组合,说难不难,但里面涉及到的接线细节、参数换算、指令特性、调试顺序,任何一个环节没搞明白都会让人卡住。我个人的经验是:先把手动功能做扎实,回原点逻辑反复验证,再上自动定位,这样出问题的概率能降到最低。如果你正在做类似的设备,按照这篇文章的顺序走一遍,大部分坑都能绕过去。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询