三菱PLC入门必看:从扫描周期到梯形图,核心基础与实战技巧 1. 为什么新手入坑三菱PLC首选学习路线和选型该怎么做我第一次接触三菱PLC是在一条老旧的自动化产线改造现场。当时手里只有一台FX2N一本被翻得卷了边的编程手册还有电脑上一个界面极其复古的编程软件。那条产线后来顺利跑起来了但中间踩的坑、绕的弯路至今想起来都觉得肉疼。如果你现在正准备学习三菱PLC或者刚买回一台FX系列想动手试试这篇内容应该能帮你省掉不少摸索的时间。为什么说三菱PLC是很多电气人的入门首选原因其实很现实市面上存量设备多招聘需求大无论是设备维护、产线改造还是新项目开发会三菱PLC的工程师几乎不愁活干。而且三菱的指令系统、软元件结构和编程思路跟西门子、欧姆龙这些主流品牌有很多共通之处学会了三菱再转其他品牌适应成本会低很多。可以说三菱PLC就是一台很好的工控编程入门教练机。但入门这两个字也最容易把人带偏。我见过太多新手一上来就抱着GX Works2去研究功能块、结构化编程结果连X0、Y0、M0是干什么的都没搞明白越学越懵。大家要清楚一个逻辑三菱PLC编程的核心不是软件操作而是梯形图背后的扫描逻辑和软元件的使用思维。软件只是工具你真正要理解和掌握的是PLC在一个扫描周期里到底在做什么。那学习路线怎么安排我的建议是四个阶段按顺序走别跳硬件认知搞清楚PLC的输入端X、输出端Y、电源端子、通讯口知道PLC怎么接线、怎么供电、怎么跟传感器和接触器连起来。不知道怎么接线就去编程你会连为什么Y0没输出都排查不出来。软件操作会安装软件、会新建工程、会写一个简单的梯形图、会下载到PLC里、会在线监控。这一步的目的不是学软件是让自己具备写进去跑起来的闭环能力。指令与软元件掌握基本指令LD、LDI、OUT、AND、OR、SET、RST等和常用软元件X、Y、M、T、C、D能用梯形图实现启保停、互锁、延时、计数这些经典逻辑。案例实战把电机正反转、星三角启动、流水灯、自动送料这些真实场景搬到梯形图里边练边调试直到能独立完成一个简单项目的全套控制逻辑。这四个阶段里大部分人会卡在第三和第四阶段之间。原因很简单指令看着都会一写复杂逻辑就蒙。别急后面我会用一个完整案例把整个思路串一遍。先卖个关子接下来先解决环境问题——软件装不上、连不上PLC是新手放弃率最高的一个坎。2. 编程软件选择与安装避坑GX Works2、GX Developer、FXGPWIN三菱PLC的编程软件市面上主力是三个GX Developer、GX Works2、GX Works3。还有一个专门给FX老型号用的FXGPWIN。新手最常问的问题是我该装哪个我直接给结论现在学习装GX Works2。别犹豫。2.1 三个软件的核心区别软件适用PLC系列界面与操作我的评价FXGPWINFX1S、FX0N、FX2N等老款FX极其简陋DOS时代风格老设备维护偶尔用新学别碰GX DeveloperFX全系列、Q系列、A系列传统Windows界面视觉较旧老工程师用得最多稳定但功能有限GX Works2FX系列、L系列、Q系列现代界面支持工程内多程序目前主流新手首选GX Works3FX5U、IQ-R系列最新界面性能强等FX3U学熟再转也不迟为什么我推荐GX Works2而不是GX Developer因为GX Works2不仅支持传统的梯形图编辑还支持标签化编程和结构化工程将来你从FX系列往更高端PLC走的时候操作习惯不用推翻重来。而且它的仿真功能比GX Developer完善在线监控、软元件批量监视、时序图监控这些调试手段都很顺手。对于学习来说一个好的调试界面比花哨的功能重要得多。2.2 安装过程中最容易踩的坑安装GX Works2看着简单实际不少人在第一步就翻车。最常见的是安装到一半报错或者安装完打开工程时提示环境异常。根据我这几年帮人远程解决安装问题的经验90%的失败都出在下面几件事上第一安装路径和系统语言问题。GX Works2对中文路径支持不好工程文件、安装目录只要带上中文就可能出现打不开、保存报错的诡异问题。正确做法是安装路径默认用英文目录比如C:\MELSEC电脑用户名也尽量用英文。这说起来是小事但真的能坑掉你一整天。第二通用环境EnvMEL必须装。GX Works2安装目录里有个EnvMEL文件夹里面的环境软件不装的话主程序装完也会各种报错。很多绿色版、精简版安装包会把这个步骤略过导致软件能打开但驱动和通讯功能缺失。安装时一定按顺序来先装EnvMEL再装主程序最后重启电脑。第三驱动安装要单独处理。这是个大坑——GX Works2安装完成后并不会自动安装PLC的USB通讯驱动。你需要手动进入安装目录下的EasySocket或USB驱动文件夹里找安装程序。否则你会遇到一个经典场景软件装好了梯形图写好了点击在线→PLC读取却提示无法与PLC通信。新手第一次遇到这个提示第一反应往往是怀疑PLC坏了实际上就是驱动没装。第四系统兼容性。GX Works2对Win10、Win11的适配还算可以但偶尔会出现安装后无法启动的情况。这时右键软件图标选择属性→兼容性把兼容模式设置成Windows 7一般就能解决。如果你用的是Win7或XP的老电脑反而不用调。另外关于Win7_8_10_XP的兼容性问题网上很多人找FXGPWIN的老版本安装包建议直接用GX Works2代替因为FXGPWIN不支持USB通讯只能走老式编程线转接麻烦学习阶段完全没必要。2.3 关于Works2能不能读FX3U这个老问题经常有人在网上问GX Works2能读FX3U吗答案是能而且FX3U是GX Works2的主要支持对象之一。但这个问题的背后有个容易误解的点GX Works2新建工程时PLC系列要选对才行。如果你选成FX系列里的FX2N去读FX3U的工程会提示型号不匹配反过来选成FX3U读老设备的FX2N工程也会有问题。经验是新建设备时尽量选你实际PLC型号的大系列不要为了通用去选兼容模式否则后期软元件范围、指令支持都会受限调试时会出现很多奇怪现象。另外提醒一下FX3U和FX3G、FX3GC、FX3UC这几个型号在GX Works2里是分开的选错型号虽然一般也能连接但部分特殊软元件、定位指令的地址会不一致新手容易搞晕。拿不准的时候看PLC本体侧面的铭牌型号写得清清楚楚照着选就行。3. 三菱PLC编程必须吃透的核心基础扫描周期、软元件与数据格式软件装好接下来就得说真正的东西了。很多新手教程一上来就画几个梯形图让照抄抄完了图也能动但换个场景、换个设备就完全不会写了。问题出在基础概念没打通。这一节我用最直白的话把三个最核心的概念讲透。3.1 扫描周期PLC不是同时执行程序的PLC执行程序的方式跟很多人想象的不一样。它不是像人看图纸一样从头扫到尾然后同时驱动所有输出而是从上到下、从左到右逐行扫描扫完一遍再从头扫无限循环。这个循环一次的时间叫扫描周期FX系列的扫描周期通常在几十毫秒级别程序大的话会更长。为什么要重视扫描周期因为它会直接影响程序的执行结果。举个例子你写了一个逻辑X0接通后让Y0置位Y0又作为条件去触发Y1Y1再反过来影响X0的判断。如果不懂扫描周期你会觉得这些条件应该同时成立但实际执行的时候每一行指令在扫描到的那一刻才被处理前面的输出状态变化要到下一轮扫描才会被后面的指令看到。这就是为什么在PLC编程里输出刷新和程序执行是分开的两个阶段。调试的时候遇到明明逻辑看着没问题但输出不对的情况十有八九是扫描周期的理解出了偏差。提示新手调试第一件事永远先看监控模式下的当前值变化而不是猜逻辑。在线监控时每个软元件旁边会实时显示通断状态你能直观看到扫描过程对结果的影响。3.2 软元件PLC的内存变量但用法有讲究三菱PLC里各种编号的X、Y、M、T、C、D统称软元件。它们本质上就是PLC内部的存储单元功能上类似编程语言里的变量但使用上有一些特殊规则。X输入继电器接外部按钮、传感器信号编号按十六进制排列如X0、X1、X2……不能由程序内部强制驱动只能靠外部硬件信号改变状态。Y输出继电器驱动外部接触器、指示灯、电磁阀程序里写Y0的输出状态最终通过PLC的输出端子反映到外部。这里注意同一个Y在程序里不要写两次以上俗称双线圈后面我会专门讲这个坑。M辅助继电器程序内部用的中间变量相当于内部标志位。FX3U的M编号范围很大M0~M7679这些普通型的够新手随便用。特别注意M8000及以后的部分是特殊辅助继电器有固定含义比如M8000是运行监视常开触点不要去改它。T定时器延时用单位有100ms、10ms、1ms等取决于编号段比如T0~T199是100ms定时器。C计数器计数用C0~C199是普通计数器。D数据寄存器16位存储单元用来存数值比如传感器采到的距离数据、计算的结果、报警代码等。这些软元件的地址范围我强烈建议你拿到手册后把表格完整看一遍。不用背但要知道我用的这个型号M到多少号是普通区、T哪些是10ms这种边界。因为软元件一旦用超范围程序编译时会报错但用错类型比如把定时器T当计数器C用编译不报错运行结果却完全不对。这种错误在初学者程序里非常常见而且是那种看半天看不出来的隐蔽bug。3.3 数字格式BIN、HEX和BCD千万别混淆PLC内部处理数据默认是二进制三菱手册里常叫BIN。但人机交互时我们习惯看十进制有些传感器或外部设备输出的又是BCD码二进制编码的十进制。这三者之间的转换是新手容易栽跟头的地方。举一个真实例子你用拨码开关给PLC输入一个数字拨码开关输出的一般是BCD码每一位拨码对应一位十进制数用4个bit表示0~9。如果你在程序里直接用MOV指令把这个值搬给D0再把D0拿去和K100比较结果会完全错误。因为D0里存的BCD码值100换算成二进制后实际对应的是十进制的256假设你拨的BCD是0100 0000 0000这种。经验性的做法是先判断数据源是什么格式再用BCD转换指令或者直接用对应指令去处理不要上来就MOV。新手阶段你至少要知道三组常用关系K后面跟的是十进制数比如K100代表十进制的100H后面跟的是十六进制数比如H10代表16BCD码和BIN码互转需要用到指令比如MOV带着转换属性或者用特殊的数值输入指令搞清这些你后面学模拟量采集把4~20mA信号换算成工程值、学通讯数据解析Modbus报文里的寄存器值都是16进制都会顺畅很多。可以说数值格式是PLC编程从画图迈向写逻辑的一道分水岭跨过去之后你能处理的问题复杂度会一下子提升一大截。4. 梯形图基本指令的实战理解从点亮一个输出到完整逻辑控制梯形图是三菱PLC编程的主要语言。很多新手把它当成电气接线图来看这个类比有道理但不够准确——梯形图虽然长得像电路图但它表达的其实是逻辑运算关系不是电流流动关系。你要理解的是触点闭合产生逻辑真逻辑真驱动线圈置位而不是电流从左边流到右边。4.1 必须掌握的十来个基本指令我把新手第一周内必须熟练掌握的指令列出来建议每个都在软件里敲一遍、下载到PLC里实际验证一遍指令功能使用场合LD常开触点逻辑起始每一行梯形图的第一个条件LDI常闭触点逻辑起始用停止信号做常闭条件时OUT驱动线圈输出Y、M都能用AND串联常开触点多个条件同时满足时ANI串联常闭触点互锁、禁止类条件OR并联常开触点多个条件任一满足时ORI并联常闭触点常闭触点的并联SET置位线圈并保持需要锁存状态的场合RST复位线圈取消SET的保持状态PLS/PLF上升沿/下降沿脉冲只在信号变化瞬间有效一周期MC/MCR主控开始/结束一段逻辑的总开关MOV数据传送把数值搬入寄存器这里重点说SET和RST。很多新手区分不清SET/RST和OUT的区别其实很简单OUT的输出状态取决于每一扫描周期该行条件是否成立条件一断就熄灭而SET一旦触发就会一直保持直到执行RST才断开。这个特性在搞气缸到位后要一直保持某个状态、报警发生后要锁定报警信号这类场景时非常实用。4.2 一个例子串起基本指令电机启保停加运行指示光讲指令没意义我们串一个最简单的实战逻辑——电机启保停控制这在电气控制里是必学电路。控制要求按下启动按钮X0电机接触器Y0吸合并保持按下停止按钮X1Y0断开电机运行期间运行指示灯Y1常亮。梯形图逻辑简化描述第一行X0常开触点与X1常闭触点串联再与Y0自身的常开触点并联——这就是启保停经典结构。按下X0时X0导通Y0线圈得电Y0得电后它自己的常开触点闭合即使X0松开电流路径仍然保持按下X1时X1常闭触点断开Y0失电。第二行Y0的常开触点串联一个Y1线圈Y0得电时Y1跟着亮。这个程序看起来简单但它包含了PLC编程最核心的几个思想常开常闭触点的用法、自锁保持的实现、逻辑条件的串联和并联。你能独立不看答案写出这个程序并且把X0、X1、Y0、Y1接好线和PLC实际跑通一遍基本指令就算是入门了。4.3 互锁逻辑机械安全的重要屏障再往深一点做电机正反转控制时必须加互锁。正转接触器Y0和反转接触器Y1绝对不能同时吸合否则就是相间短路轻则烧接触器重则出安全事故。梯形图里做互锁的标准手法有两道程序互锁在Y0的线圈回路里串联Y1的常闭触点在Y1的线圈回路里串联Y0的常闭触点。这样Y1一旦吸合Y0回路里的Y1常闭触点就断开Y0永远不可能得电。按钮连锁可选但推荐正转按钮X0和反转按钮X1也做常闭串入对方的回路防止操作人员同时按下两个按钮。这里想强调的是互锁不能只靠一套。我见过一个工程案例程序里互锁做得好好的但现场调试时接触器依然同时动作了查了半天发现是外部接线里接触器的辅助触点接错。所以做设备控制时程序互锁要写外部硬互锁接触器辅助触点的物理互锁也要做两道都上了才叫安全。这一条经验希望所有搞PLC编程的同行都刻在脑子里——你写的每一行梯形图最终是去控制一台物理设备的出错是要出事的。5. 一个完整案例吃透扫描逻辑定时器与计数器的综合应用讲完基础指令我们来做一个稍微复杂的练习。这个案例是我当时教过一个零基础朋友用的他跟着做完后对PLC编程的理解一下子上了一个台阶。你不妨也在GX Works2里敲一遍有条件的话下载到PLC里接上开关和灯泡测试。5.1 控制要求设计一个流水灯控制系统按下启动按钮X0后三盏灯L1Y0、L2Y1、L3Y2按以下规律动作三盏灯全部熄灭1秒L1点亮1秒后熄灭L2点亮1秒后熄灭L3点亮1秒后熄灭回到第1步循环直到按下停止按钮X1。5.2 定时器链条的写法与原理这个程序的核心思路是定时器接力。每个定时器的常开触点作为下一个定时器的启动条件形成一个时序链条。梯形图逻辑简化表述T0定时2秒X0按下后T0开始计时2秒后T0触点动作。这个2秒包含了全灭1秒L1亮1秒的时长。T1定时1秒T0触点动作后启动T1计时同时Y0得电L1亮。1秒后T1动作把Y0断开。T2定时1秒T1触点动作后启动T2计时同时Y1得电L2亮。1秒后T2动作把Y1断开。T3定时1秒T2触点动作后启动T3计时同时Y2得电L3亮。1秒后T3动作把Y2断开。循环T3触点动作后再启动一个T4或者直接利用T3触点重新触发T0整个链条从头开始。写完你会发现一个关键问题T0计时2秒是从扫描到T0那一行开始的但T1、T2、T3是接力触发的它们每一轮开始计时的时机不同。在这个程序里每次定时器链条跑完之后一定要确保所有定时器和输出都复位到初始状态否则下一轮循环会错位。处理办法是让停止按钮X1按下时对T0~T3、Y0~Y2全部做RST复位。这个案例看着简单但它训练了三个能力定时器接力延时、循环逻辑的构建、复位处理的完整性。尤其是最后一个复位要完整的意识很多初学者就没有——写完启动逻辑忘了复位逻辑结果程序跑三五个循环后状态就乱了。5.3 计数器配合使用生产计件场景定时器搞定了计数器其实思路类似。比如产线上来一个工件光电传感器X2给一个脉冲计数器C0加1。当C0计满10个时给一个Y10输出提示一箱已满。计数器使用有两个细节值得注意计数器的复位必须可靠。C0计数到10后即使你输出Y10如果不执行RST C0它不会再重新计数。实际项目里通常用人工按下确认按钮或者PLC内部定时延时来复位计数器同时联动一个装箱完成的标志位。输入信号的去抖问题。现实中传感器的信号不是理想的脉冲工件经过时可能有抖动一次到位会产生多个脉冲。解决办法是给输入信号加延时滤波可以用一个几毫秒~几十毫秒的定时器对输入做确认只有在X2持续导通超过一定时间才认定为有效信号。这个技巧在计数、定位、防抖场景都适用属于工控编程里的通用经验。6. 初学者最容易翻车的五个问题与排查思路最后这一部分我专门聊聊初学者在实际操作中反复出问题的五个场景。这些都是我自己见过、帮人排查过无数次的真实问题每一条都有代表性。如果你正在调试却不知道从哪里下手按这条思路走一遍多半能解决问题。6.1 双线圈输出程序里同一Y写了两次新手很容易写出这样的程序程序前半段因为有某个条件Y0需要输出程序后半段又有另一个条件Y0再次被OUT。这在编译时不报错但运行的最终结果只有最后一个OUT生效。因为PLC扫描是从上到下的后面的OUT覆盖前面的OUT前面的逻辑等于白写了。排查方法很简单在线监控时如果发现某个Y的状态跟你前半段程序推出来的结果不一致优先检查整个程序里这个Y出现了几次。改法有两种要么把逻辑合并成一行用串联并联一个输出要么改用SET/RST分离控制。记住一条铁律一个线圈在一个程序里只OUT一次这是PLC编程的入门红线。6.2 输入信号抖动用闪烁乱跳去猜刚才提过的去抖问题在按钮和传感器上都常见。尤其是老式按钮按下和松开的过程中触点会有弹跳导致PLC捕捉到多个高低电平脉冲。如果你的程序里有PLS上升沿或计数器就会错误触发。处理思路不是靠硬件滤除而是在程序里做软件滤波用定时器做一个延时确认X0信号持续20ms以上才认定为有效。FX等PLC的输入端子本身有滤波时间设置但默认值对机械触点可能不够建议还是程序里自己写。6.3 分不清停止信号该用常开还是常闭这是一个老生常谈但每次都有人问的问题。控制要求里说X1按下停止那么梯形图里X1应该用常闭触点串联在其他条件后面。逻辑是常闭触点代表没有按下时有电一旦按下就断电正好对应停止。但很多人会写反把停止按钮接到常开触点上然后发现程序运行不了或者逻辑混乱。判断标准其实很简单对停止信号、急停信号、限位保护信号这类断开才安全的输入一律用常闭触点对启动信号这类接通才动作的输入用常开触点。这里有一个安全惯例急停按钮硬件上一定要接常闭触点因为急停线断了、接触不良时系统能检测出信号并安全停止而不是默认没按下就是正常。6.4 在线监控连不上驱动、COM口、型号不匹配这问题我放在最后写但实际发生频率最高。一台FX3UUSB线连电脑GX Works2点通讯测试就是失败。原因按出现频率排序USB驱动没装前面讲过最常见COM口被其他软件占用关闭串口调试工具、其他PLC软件通讯测试里选错COM口号设备管理器里看清实际端口工程里的PLC型号与实际设备不匹配USB线问题有些线只能充电不能传数据。排查就是按这个顺序从上往下查。对了还有一个经常被忽略的小细节——PLC要上电。这个问题听起来可笑但我真见过好几个新手拿着USB线接上没通电的PLC在电脑前折腾半小时。设备都没通电通讯当然失败。6.5 程序下进去设备不动作先查外部接线再查程序很多新手程序逻辑明明没问题Y0的监控状态也显示接通但设备就是不动作。这时候别去改PLC程序先拿万用表量Y0端子有没有电压、公共端S/S的接线是否正确。PLC输出端子的接线和传感器接线不是一回事漏接公共端、接错电源极性输出逻辑再对设备也起不来。我一直跟学员强调PLC编程和电气接线是两条腿走路只会写梯形图、不会查外围线路调不了设备。最后说点真心话在我接触过的所有可编程控制器里三菱PLC确实是对新手最友好的一个。它入门不难、资料好找、网上能搜到大量案例但入门之后能不能真正长本事取决于你对扫描周期、软元件这些基础概念的重视程度。这些东西不扎实后面玩定位控制、通讯、模拟量处理都会非常吃力。顺便再分享一个很有用的学习方法拿到任何一道控制逻辑题先别急着打开软件画梯形图先在纸上用文字把条件梳理清楚——什么条件下什么输出动作、什么条件下保持、什么条件下复位。这一步做顺了写梯形图就是翻译工作。我这么多年带人做项目凡是养成了这个习惯的上手速度都比别人快一大截。这次先聊这么多。等你有机会把文章里的启保停、定时器链条、计数器计件这几个案例都在PLC上跑通就可以去看模拟量采集和RS485通讯了那才是真正通往高手的下一道关卡。祝大家早日点亮自己的第一台设备。