2026/10/6 7:01:59

三菱FX3U PLC脉冲输出详解:PLSY指令、接线与多轴扩展

三菱FX3U PLC脉冲输出详解:PLSY指令、接线与多轴扩展 做运动控制最绕不开的就是三菱FX系列PLC的脉冲输出。不管是步进电机还是伺服电机只要不是用总线型驱动器基本上都靠PLC吐脉冲来控制位置和速度。今天这篇就围绕PLSY指令把单轴脉冲输出、圆头航空插头接线一直到多轴扩展配置的完整套路聊透给正打算上手或者被现场问题卡住的朋友做个参考。我最早接触FX3U的时候是在一条半自动组装线上用Y0发脉冲带一台42步进方向用一个普通Y点切换。当时觉得挺简单后来才发现里面门道不少频率算不对、输出点类型选错、驱动器插头针脚接反任何一个环节掉链子电机就是不动。这篇文章不绕弯子直接把这些坑一个个填上。适合刚接触PLC运动控制的新手也适合做设备维护想快速定位问题的朋友。1. 脉冲输出到底是什么想清楚再动手1.1 PLC吐脉冲的本质位置和速度全靠一串方波PLC的脉冲输出说白了就是让某个输出点以一定的频率不断通断产生一连串方波信号。步进驱动器或者伺服驱动器收到这个方波后每收到一个脉冲就让电机走一个固定的角度或者距离。脉冲的个数决定电机走多远脉冲的频率决定电机走多快。举个例子步进驱动器细分数设为40步距角1.8度那么电机转一圈需要8000个脉冲。如果PLC一秒钟发出8000个脉冲电机正好一秒转一圈。如果发16000个脉冲转速就是2圈每秒。在这个体系里没有复杂的通信协议没有地址配置一根线过来就是脉冲另一根线过来就是方向简单直接所以到现在依然有大量设备在用。这也是PLSY指令存在的意义。PLSY就是用来产生这一串脉冲的最基础指令它不考虑加减速、不考虑原点回归、也不管方向就是单纯地按照你给定的频率和数量输出方波。工程上很多人觉得PLSY太初级但恰恰是它的简单让它成了理解整个脉冲定位系统的敲门砖。1.2 为什么必须是晶体管输出继电器根本扛不住很多入门的朋友拿着FX3U的继电器输出型主机去做步进控制结果发现无论怎么写程序Y0就是不吐脉冲。这不是程序问题是硬件选型问题。继电器输出型PLC的输出点内部是一个机械触点触点动作寿命一般是几十万次吸合释放一次需要几毫秒到十几毫秒根本承受不了高频通断。脉冲输出动辄每秒几千几万次继电器触点很快就会打火损坏而且高速下触点根本来不及响应频率上去之后波形就乱套了。所以做脉冲输出必须选晶体管输出型主机。三菱FX系列型号里带“MT”后缀的主机就是晶体管输出型比如FX3U-32MT/ES。晶体管输出没有机械触点是电子开关可以做高频通断FX3U的Y0、Y1最高可以到100kHz具体可以看硬件手册的规格表。这一点必须第一个确认很多现场问题排查到最后发现是当初选型就错了。1.3 漏型源型接线要分清接反了电机纹丝不动晶体管输出还分漏型和源型两种接线方式这个坑比选型更隐蔽因为接错线不会烧东西但电机就是不转或者方向信号完全不对。漏型输出也叫NPN输出、低电平有效。输出点导通时该点被拉到0V电流从外部电源正极流经负载再从输出点流入PLC内部。源型输出也叫PNP输出、高电平有效。输出点导通时输出24V电流从输出点流出经过负载回到0V。三菱FX3U的晶体管主机多数是漏型输出也就是Y点导通输出低电平。接线方式就是步进驱动器的PUL接24VPUL-接PLC的Y0。当Y0导通时PUL-被拉低光耦两端产生压差驱动器收到脉冲。方向信号同理DIR接24VDIR-接PLC的方向控制点。如果你的主机是源型输出那就反过来PUL接Y0PUL-接0V。这里最容易犯的错是把漏型输出当成源型来理解结果Y0导通时PUL两端电压压根没变化脉冲根本没送进驱动器。漏型源型的特点对比如下项目漏型输出NPN源型输出PNP输出导通时电平低电平0V高电平24V驱动器接线方式PUL接24VPUL-接Y0PUL接Y0PUL-接0V常见后缀MTMT/ESS排查重点公共端是否接24V公共端是否接0V判断自己手里主机是哪种最简单的办法是看型号后缀和硬件手册里的接线图不要想当然。我曾经遇到过一台设备前一个电工把驱动器信号线全部按漏型接好结果换了一台源型主机上去整条线所有轴全部不动作排查了一上午才发现是源漏搞反了。2. PLSY指令从一行代码到能跑的最小脉冲系统2.1 PLSY和DPLSY指令格式参数别搞混PLSY指令是三菱FX系列最基础的脉冲输出指令。指令格式是PLSY S1 S2 D三个操作数各干一件事S1脉冲频率单位Hz。16位版本范围是1到32767Hz32位版本可以更高。S2输出脉冲数。如果这个值设为0表示连续输出如果大于0输出指定数量的脉冲后自动停止。D脉冲输出点。FX3U上一般就是Y0或Y1这种高速输出点。很多人第一次写的时候会把S1和S2搞反把频率写成了脉冲数把脉冲数写成了频率。这个不难记先算好“多快”再算好“多少”然后告诉PLC用哪个口吐出来。注意16位版本里S2最大是32767如果要求输出的脉冲数超过32767必须用32位版本DPLSY指令。DPLSY就是PLSY的32位版本格式一样只是把S1和S2都扩展成32位数据寄存器。实际工程里只要脉冲数可能超过32767就直接用DPLSY省得算来算去。FX3U、FX3G都支持DPLSY老一点的FX2N部分型号不支持用之前先查手册。举一个最基础的例子LD X0 DPLSY D0 D2 Y0X0置ON之后PLC按照D0里的频率从Y0输出D2里指定数量的脉冲。D0是32位频率D2是32位脉冲数。X0断开脉冲输出立即停止。2.2 频率和脉冲数怎么算电子齿轮与丝杠导程写PLSY之前先要把频率和脉冲数算明白。这个换算关系是整个定位系统的核心公式不复杂但算错一步位置就偏得离谱。先看电机端。步进电机步距角一般是1.8度一圈360度所以电机转一圈需要200个脉冲。如果驱动器细分设为40那么电机每转一圈需要的脉冲数就是200乘以40等于8000个脉冲。再看机械端。假设丝杠导程是10mm也就是丝杠转一圈工作台移动10mm。那么每个脉冲对应的移动量就是10mm除以8000等于0.00125mm也就是1.25微米。现在要算两个数。第一如果想让工作台以100mm/s的速度移动脉冲频率是多少用速度除以每脉冲移动量100除以0.00125等于80000Hz也就是80kHz。这个频率在FX3U的Y0、Y1能力范围内可以用。第二如果想让工作台移动50mm需要多少个脉冲50除以0.00125等于40000个。这个数超过16位的32767所以必须用DPLSY指令。我在现场经常看到有人把细分和导程的单位搞混尤其是导程有5mm、10mm、20mm之分还有皮带轮传动、减速机等中间环节。不管中间怎么传动核心思路只有一个把电机端脉冲数一步步折算到最终工作台的直线位移上算清楚“一个脉冲走多少毫米”。2.3 PLSY使用中的三个硬约束PLSY虽然简单但有几个硬约束无视它们系统一定出问题。第一PLSY不带加减速。指令给出的频率是多少启动瞬间就是多少停止瞬间也直接归零。对步进电机尤其是大惯量负载这个瞬间冲击很容易导致丢步。频率低的时候不明显频率一高电机可能直接堵转。如果对加减速有要求可以用PLSR指令带加减速的脉冲输出或者干脆用DDRVA、DDRVI这类定位指令。第二同一个输出点同一时间只能执行一条脉冲指令。程序里如果有多条指令都想控制Y0比如一条PLSY、一条DDRVA它们会互相干扰实际执行结果完全不可控。工程上一个轴对应一个脉冲输出点程序中要保证该点的控制指令是唯一的最好用互锁或者状态机来切换。第三方向控制要在脉冲停止后切换。PLSY本身不管方向方向是靠另一个普通Y点输出高低电平来控制的。很多人习惯让方向信号和脉冲信号同时变化但在高速运行中切换方向电机容易丢步甚至发出异响。正确的做法是先停止脉冲输出等电机停稳再切换方向信号然后重新发脉冲。3. 圆头航空插头针脚定义脉冲接线最容易翻车的地方3.1 步进驱动器圆头接口的典型针脚定义很多步进驱动器为了抗震、防拉拽控制信号接口不用端子排而是用圆头航空插头。这种插头外观就是圆柱形带螺纹锁紧插上之后拧紧非常牢固。但麻烦也来了针脚定义各厂家不同没有统一标准。市面上最常见的是6针圆头航空插头典型定义是这样针脚常见定义说明1PUL脉冲正2PUL-脉冲负3DIR方向正4DIR-方向负5ENA使能正6ENA-使能负但这不是绝对的。有的厂家会把1、2定义为DIR3、4定义为PUL有的厂家会使能信号只有两根线有的却要接三根线。最忌讳的就是凭经验直接套用之前那台驱动器的定义两个牌子驱动器的圆头插头外观几乎一模一样针脚定义却能差出一倍。这个小标题对应了很多人搜的“圆头针脚定义”问题。我在现场吃过这个亏换了一台不同品牌的步进驱动器线还是原来那根线插上去怎么发脉冲电机都不动后来发现新驱动器把PUL和DIR定义对调了信号送错了脚。3.2 不确定针脚时怎么查、怎么量、怎么验遇到不熟悉的圆头插头不要硬猜按下面三步走。第一步翻说明书。驱动器外壳通常会贴一张针脚定义标签或者说明书里有明确表格。这是最权威的依据比任何经验都靠谱。第二步用万用表量。把驱动器断电用万用表的通断档或者二极管档从驱动器侧的控制端子排往圆头插头方向量。比如驱动器端子上标了PUL你就拿一根表笔点住这个端子另一根表笔去点圆头插头上的各个针脚找到哪一针和它是通的这一针就是PUL。这个方法不需要通电安全且准确。第三步通电试信号。接线完成后给驱动器通电先把使能信号接对让电机锁轴。如果电机锁住了说明ENA那两根线是对的。然后给脉冲信号一个低速频率比如PLC输出10Hz看电机是否慢慢转动。如果转说明PUL和DIR基本正确如果反转把PUL和DIR对调即可。这里要提醒一句脉冲信号线要串联限流电阻或者用驱动器自带的24V接口不要直接拿外部电源去捅。3.3 压线、屏蔽与走线细节决定稳定性针脚定义对了接线工艺也不能马虎。脉冲信号频率高对干扰敏感处理不好就会出现莫名其妙丢脉冲的情况。圆头航空插头的焊线要特别注意焊点质量。焊锡不要太多不然相邻针脚可能被焊锡连在一起也不要太少虚焊会时通时断。焊接完要用万用表逐个确认相邻针脚之间没有短路再锁紧外壳。信号线建议用双绞屏蔽线。双绞可以抵消电磁干扰屏蔽层单端接地一般是靠近PLC这一端接地。不要两端都接地否则会形成地环路反而引入干扰。也不要把屏蔽层剪掉不用那相当于白用了屏蔽线。走线时脉冲线和电机动力线、220V电源线分开走间距至少保持20厘米以上。如果必须交叉尽量垂直交叉不要平行走线。很多现场设备脉冲偶尔丢一步查到最后都是布线问题。4. 多轴扩展配置从两轴到多轴的完整方案4.1 FX3U本机的轴资源分配先盘清楚做多轴控制之前先把手上的FX3U主机能输出几路高速脉冲搞清楚。FX3U晶体管主机上Y0、Y1是高速脉冲输出点通常可以到100kHz。有些型号的Y2、Y3也有脉冲输出能力但频率规格会低一些具体要以硬件手册为准。这意味着如果只有两轴要求不高本机Y0、Y1就可以搞定。第三轴如果对速度要求不高某些主机型号也能凑合但我不建议这么干因为本机的多路高速输出在程序处理上要注意的细节太多稍不留神就出现资源冲突。本机资源分配的逻辑很简单先把每根轴的脉冲输出点、方向输出点、原点信号、限位信号列一张表再跟PLC的I/O分配表对一遍确保不跟普通输入输出冲突。方向输出点可以用普通Y点但要注意这个点不能同时被别的程序逻辑占用。4.2 扩展选型2HSY-ADP、定位模块与通信方案如果轴数超过本机能力或者要求更高的频率、更复杂的定位功能就要考虑扩展方案。几条路各有特点按实际需求选。第一种加FX3U-2HSY-ADP高速输出适配器。这是一个扩展在PLC左侧的适配器可以增加高速脉冲输出通道。适合已经有FX3U主机、只是高速口不够用的场景。这种方式程序上还是用定位指令或者PLSY控制整体架构变化不大。第二种加定位模块比如FX3U-20SSC-H或者FX2N-20GM这类。定位模块本身就是一个独立的运动控制器PLC只需要通过FROM/TO指令或者通信方式把目标位置、速度写进去模块自己生成脉冲、处理原点回归。这种方式精度高、速度快程序框架清晰适合多轴联动的复杂设备。第三种走通信方式控制驱动器。现在很多步进驱动器、伺服驱动器支持MODBUS RTU或者CANopen总线PLC不吐脉冲直接通过通信把位置和速度发给驱动器。这种方式省掉了脉冲线抗干扰能力强但响应速度和同步性不如硬脉冲。三种方式的取舍关键看两个因素轴的同步性要求和频率要求。如果两轴之间必须精确同步优先选定位模块或者硬脉冲输出。如果只是各自走各自的通信方式完全够用还能省不少接线。4.3 多轴程序框架与联动注意事项多轴程序不建议把每一轴的指令堆在一起那样逻辑会乱。我习惯的做法是每个轴独立一段程序用M继电器做状态控制。先看一个两轴的梯形图框架LD X0 OUT M0 LD M0 DPLSY D0 D2 Y0 LD M1 DDRVA D10 D12 Y1 Y3第一行是启动信号X0置ON后M0导通。M0导通期间Y0持续输出脉冲频率由D0决定脉冲数由D2决定。M1导通时第二轴执行DDRVA绝对定位指令目标位置在D10速度在D12Y1输出脉冲Y3输出方向信号。多轴程序最重要的一件事是定义清楚每根轴的启动条件、停止条件和急停条件。不要把所有轴都挂在同一个M继电器上否则一个轴报警停机其他轴也会跟着停整个设备卡死。另外一个容易忽略的点是方向信号和脉冲信号的配合。多轴动作时如果某个轴的方向要切换最好在程序里做一个方向切换的延时确保上一段脉冲彻底停止后再换向。用普通Y点做方向输出时这个延时非常关键。5. 常见问题与排查技巧实录5.1 电机不转从PLC到驱动器逐级查电机不转是最常见的故障排查思路要按信号流的方向一级一级查程序有没有输出脉冲、脉冲有没有到驱动器、驱动器有没有给电机动。第一步看PLC输出点灯是否在闪烁。如果Y0的指示灯亮着说明PLC侧已经有脉冲输出。如果指示灯不亮检查程序是否导通、M继电器是否置位、频率和脉冲数是否为有效值。特别要注意D寄存器里的数据如果被刻意清零PLSY就会认为脉冲数已经完成不输出任何信号。第二步看驱动器有没有收到脉冲。很多驱动器的脉冲输入端口旁边有一个指示灯收到脉冲就会闪。如果不闪用万用表量PUL和PUL-之间的电压正常时不管是高电平还是低电平都得有一个稳定的电压差。如果没有电压差基本就是接线问题或者源漏接反。第三步看驱动器有没有使能。有些驱动器使能信号悬空时默认是禁止运行的电机处于自由状态怎么发脉冲都不转。检查驱动器的ENA端子接线和报警状态有些驱动器报错后也会拒绝运行。5.2 丢脉冲、失步、定位不准的根因分析与对策丢脉冲和定位不准是脉冲控制系统最让人头疼的问题。这类问题不是一眼能看出来的得从几个方面排查。先说丢步。丢步最常见的两个原因一是频率突变二是干扰。频率突变的问题前面已经提到PLSY没有加减速解决方法是换用带加减速的指令或者把频率降低到驱动器能接受的范围内。干扰的问题重点检查屏蔽线接地、走线间距、驱动器电源质量。我遇到过一个案例设备一启动别的电机步进电机就多走几步查到最后是脉冲线跟动力线走在同一个线槽里重新布线后问题彻底消失。再说定位不准。排除丢步因素之后定位不准基本上是参数问题。检查电子齿轮算得对不对检查丝杠导程和细分数的实际值是不是跟设计值一致。现场用过很多丝杠标称10mm实际导程可能有偏差多走几次之后累计误差就出来了。另一种情况是没做原点回归每次上电位置都对不齐。解决方法很简单每次开机先回原点用原点信号清零当前位置。还有一个隐蔽问题是脉冲数用16位溢出。比如你需要4万个脉冲但16位PLSY最大只能到32767多出来的部分被强行截断电机走不到预定位置。这个问题的特征是位置偏差每次都是固定的不是累加的。解决方法是换DPLSY指令。5.3 多轴系统中容易踩的隐藏坑多轴系统比单轴复杂除了单轴的问题都会发生还有一些多轴特有的坑。第一个坑是电源容量不足。多个步进电机同时启动的瞬间电流需求很大如果24V开关电源选小了电压会被拉低几个驱动器同时进入欠压保护或者电机转矩下降导致丢步。做多轴系统电源容量不能只算额定电流要按启动峰值电流来选一般留至少30%余量。第二个坑是程序里的输出点冲突。多轴程序最怕多个轴共用一个方向输出点或者把原点信号、限位信号接错。做I/O分配表的时候就要把每一根轴的输入输出列清楚用表格管住不要凭脑子记。第三个坑是扩展模块的地址分配。使用定位模块或者脉冲输出适配器后模块地址分配错了程序根本访问不到。查这类问题优先打开PLC诊断功能看模块是否被识别再看特殊数据寄存器的地址是否和模块手册一致。故障现象可能原因排查顺序电机完全不动输出类型不对、源漏接反、未使能输出灯 → 接线 → 使能电机抖动不走频率太高、电压不足降速 → 查电源偶尔丢步加减速缺失、干扰、电源波动查指令 → 查布线 → 查电源定位偏固定距离16位溢出、电子齿轮错误查指令位数 → 算参数定位越来越偏无原点回归、机械背隙回原点 → 查机械多轴同时乱动程序资源冲突、公共端松动查I/O表 → 查公共线说实话脉冲输出这个技术存在很多年了不算新东西。但正因为老才更需要理解透彻。PLSY指令只是一个入门真正做工程定位指令DDRVA、DDRVI、ZRN这些迟早要掌握。多轴扩展也不是把几条指令抄在一起那么简单选型、I/O分配、布线、调试每一步都有讲究。我个人在实际操作中的体会是做三菱FX3U脉冲定位系统先别急着写程序把输出类型、漏源接线、电子齿轮、原点逻辑全部理清楚再动手一半的坑都能提前避开。最后再分享一个小技巧拿到一套新设备首先看两个图一个是PLC输出规格表里的Y0、Y1技术参数一个是驱动器说明书里的信号接口针脚图这两个图看明白了整个脉冲系统基本就通了。