资讯动态

位逻辑是PLC编程的命根子:用三菱FX2与FXGP/WIN练成条件反射

发布时间:2026/10/26 1:02:50 来源:尧图企业网站定制
刚入行那几年我身边总不缺这样的学员指令手册能翻到烂MOV、CMP、ADD这些功能指令背得滚瓜烂熟仿真软件也点得飞起可一坐到编程软件前就卡壳——连一个按下启动按钮电机转起来松开按钮不停的启保停电路都编不利索。他们自己也委屈觉得指令明明都认识为什么就是写不出程序。带的人多了我才发现这根本不是笨而是一个共性问题绝大多数人学不会PLC编程不是卡在复杂指令上而是把最底层、最不起眼的位逻辑给忽略了。位逻辑没吃透后面学多少指令都像空中楼阁一碰实际项目就塌。这篇文章我不想讲花哨的指令就专门说清楚两件事为什么位逻辑才是PLC编程的命根子以及怎么用三菱FX2系列这种老家伙配上FXGP/WIN软件把位逻辑练成条件反射。不管你是刚摸PLC的纯新手还是买了很多课却依旧编不出程序的理论型选手这篇都能帮你找到病根。1. 学不会PLC的真相复杂指令只是给位逻辑背了锅1.1 一个反复出现的场景会背指令不会编程序有段时间我很纳闷为什么那么多学员能把指令表倒背如流却写不出一个像样的梯形图。后来我观察他们做练习时才发现问题出得很统一他们写程序的时候脑子里想的是我要用一个数据传送指令这里要用个比较指令而不是这个设备的启动条件是什么、停止条件是什么、和别的设备有什么联锁。说白了他们一直在堆指令而不是在搭逻辑。这个习惯害人不浅。PLC程序本质上是一个逻辑系统指令只是表达逻辑的工具。你拿一堆高级指令去拼凑拼出来的程序往往是看起来热闹一运行就乱。我见过太多初学者对着网上的案例抄指令抄完了问我为什么我的程序跟他的效果不一样——我一看他连别人梯形图里那个常开触点是接在哪个输入上都搞混了。这不是指令的问题这是位逻辑的基本功出了问题。1.2 位逻辑是什么为什么它才是地基位逻辑这个概念说穿了特别朴素就是处理通/断0/1ON/OFF这类二值逻辑。PLC里面每个输入点、输出点、内部继电器在程序运行的那一刻状态只可能是两个——要么有电为1要么没电为0。位逻辑就是这些有电没电的状态之间怎么互相作用的一套规则。你千万不要觉得0和1有什么好学的越是看似简单的东西越容易在关键时刻给你挖坑。整个PLC系统的地基就是位逻辑。哪怕一台设备复杂到有几十个模拟量、PID调节、伺服运动控制它的运行框架仍然是由无数个开关量逻辑拼起来的哪个条件满足才允许启动、哪个条件满足才报警停机、哪几个设备之间必须互锁。这些全部是位逻辑。地基没打牢后面那些复杂指令学得再多也只是一堆悬浮的零件。我经常跟学员打一个比方位逻辑是内力复杂指令是招式。内力不济的人招式学得越多实战时越容易走火入魔。这句话虽然俗但在PLC这门手艺里真的是铁律。2. 位逻辑是PLC的母语从继电器电路到梯形图的语言转换2.1 梯形图不是代码是电路图很多学过C语言、Python的人入手PLC都会犯一个惯性错误把梯形图当成从上往下执行、一行一行赋值的代码来读。这是彻底跑偏的。PLC的祖师爷是继电器控制系统。没有PLC的年代一个电机控制柜里装满了中间继电器、接触器、时间继电器工人们用硬接线把一堆触点和线圈连起来实现逻辑控制。后来工程师嫌接线复杂、改线麻烦就把这套接线逻辑搬进了计算机里用软件模拟那些触点和线圈——这就是梯形图。所以读梯形图最正确的姿势是把它当成一幅电路图左边是电源线右边是电源线中间一条条梯级就是一根根导线线上串着一个个触点最后驱动一个线圈。电流方向从左边流到右边。能导通线圈就吸合不能导通线圈就释放。这种电路思维是理解和编写PLC程序的第一把钥匙。那些学得快的人通常之前有电工基础或者脑子里天然能把逻辑画成电路。学得慢的人往往就是卡在用代码思维读电路这个弯上。2.2 三菱FX系列的基本位元件X、Y、M、T、C既然要练位逻辑得先认识最基本的几个元器件。三菱FX系列PLC是工控圈最常见的入门机型它的位元件体系特别典型建议先背熟下面这张表元件名称作用地址规则FX2NX输入继电器接外部按钮、开关、传感器信号八进制编号X0~X7、X10~X17没有X8、X9Y输出继电器驱动外部接触器、指示灯、电磁阀八进制编号Y0~Y7、Y10~Y17M辅助/内部继电器相当于老电路里的中间继电器做程序内部逻辑十进制编号M0~M499普通M500以上断电保持T定时器延时通断的接点十进制编号T0~T1990.1秒单位T200~T245可设0.01秒C计数器累计脉冲次数十进制编号C0~C199这里有个特别坑人的细节X和Y用的是八进制。也就是说X0到X7之后不是X8、X9而是直接跳到X10。很多初次接触三菱的人在这里犯迷糊输入点编号都填错程序当然跑不动。这个坑在老式FX2系列里尤其常见因为FXGP/WIN软件不会给你自动修正填错了编译照样通过下载到PLC里就是另外一回事了。至于位元件的使用规则其实就三种符号常开触点--| |--没电时不导通、有电时导通、常闭触点--|/|--没电时导通、有电时断开、线圈--( )--被驱动时输出状态。整套位逻辑翻来覆去就是这三种符号在组合。2.3 四个必须形成肌肉记忆的电路串联、并联、自锁、互锁位逻辑再千变万化核心骨架也就是四个基本电路。这四个建议练到不用过脑子就能画出来。第一个是串联电路。两个触点串联就是与关系必须两个都导通线圈才通电。比如安全门检测X0和启动按钮X1同时满足才允许启动。第二个是并联电路。两个触点并联就是或关系随便哪个导通线圈就有电。比如手动启动X0和自动启动X1分别都能让设备运转。第三个是自锁电路也叫启保停电路这是整个工业控制里出现频率最高的位逻辑。它长这样启动按钮X0的常开触点和输出线圈Y0自己的常开触点并联然后再串上停止按钮X1的常闭触点最后驱动Y0线圈。用公式写就是Y0 (X0 OR Y0) AND NOT X1我第一次带学员时最爱拿这个电路考人。按下X0电流经过X0流到Y0Y0得电松开X0电流还能经由Y0自己的并联触点继续流过去所以电机不会停。直到按下X1X1是常闭触点一按就断开整个回路断电Y0释放。这短短一条梯级把或与非三个逻辑全用光了。你要是能把这个电路讲明白位逻辑基本算入门了。第四个是互锁电路。很多设备不允许两个动作同时发生比如电机正转和反转一旦同时得电就可能烧设备。程序上最常用的做法是把对方的常闭触点串在自己输出线圈前面Y0正转线圈前串Y1的常闭触点Y1反转线圈前串Y0的常闭触点。这样一来Y1一旦得电Y0的回路就被切断。互锁这个习惯是用血泪教训换来的凡是做设备控制的人都会在下意识里给危险动作加互锁。这四种电路你不需要懂什么高深理论但一定要做到随手就画、张嘴能解释。做不到这一步后面学啥都白搭。3. 用三菱FX2系列和FXGP/WIN把位逻辑练到条件反射3.1 为什么我推荐老掉牙的FX2系列和FXGP/WIN现在市面上PLC编程软件五花八门GX Works2、GX Works3功能一个比一个强但我给新手推荐学习工具时反而特别偏爱那套老东西三菱FX2系列PLC配上FXGP/WIN编程软件。原因很实在第一FX2系列指令集简单没有太多花哨功能你被迫把注意力集中在位逻辑上不会被软件里密密麻麻的指令面板带跑。第二FXGP/WIN这个软件非常轻量打开快、操作直接学习曲线极低。第三也是最关键的现在网上和指导书里流传的大量入门案例、老工程师的经验基本都是基于这个组合写的资料多到你根本看不完。我知道有人会觉得这软件都老掉牙了还用它干嘛。但你学的是编程思路不是追软件版本。我甚至见过用了十年GX Works2的工程师遇到老设备维护时照样翻出FXGP/WIN改程序。这套组合的实用性一点都不比你用最新软件低。顺带提一嘴FXGP/WIN在Windows 7、8、10甚至XP环境下都能正常安装运行兼容性做得相当好。有些老电脑上驱动装不上多半是USB转串口线的问题换个好点的转换线基本就能解决跟软件本身关系不大。3.2 FXGP/WIN从建工程到输入梯形图的完整流程我第一次带学生用FXGP/WIN时发现90%的人卡在最简单的操作上——不知道触点怎么放上去。这里把流程捋一遍照着走就行。第一步新建工程。打开FXGP/WIN点新建会弹出一个PLC型号选择窗口选FX2N系列如果你手里是FX2就选FX2FX2N兼容FX2选FX2N对初学者更通用。确定后软件就进入梯形图编辑界面。第二步输入触点。梯形图编辑界面里左边一列功能按钮对应各类元件。点选常开触点按钮部分版本里按F5光标会变成一个触点符号把它放到左边母线的第一行软件提示你输入元件号输入X0回车。这样第一个常开触点就放好了。第三步画并联和串联。比如启保停电路里需要从X0那个触点的右侧往下引一条分支放上Y0的常开触点再把它们接到一起往右走。FXGP/WIN里画横线、竖线的按钮都在工具栏上选中后鼠标点住拖动就能连线。刚开始画得手忙脚乱很正常多画几次就顺了。第四步放线圈。所有触点逻辑画完之后在行末放一个线圈符号部分版本里按F7输入Y0回车。此时整条梯级看起来就和一个继电器回路图一模一样了。第五步转换。写完梯形图别忘了点转换按钮——这一步相当于把图形编译成PLC能识别的指令表。不转换后面的写入和仿真都进行不了。转换时如果有逻辑错误软件会在下方提示照着改就行。第六步写入/仿真。接上真实PLC的话点写入把程序下载到PLC中再切到RUN模式就能跑。没有实物的用下一节说的逻辑测试功能。3.3 没有实物PLC怎么练用逻辑测试功能模拟运行很多家里没PLC的读者最愁的就是光画图不知道对不对。其实FXGP/WIN自带一个逻辑测试功能相当于软件仿真足够你把位逻辑练清楚。操作方式不复杂程序转换完成后在调试菜单里启动逻辑测试也叫梯形图逻辑测试。这时软件会进入仿真状态你可以手动把某个输入X强制置为ON或OFF然后观察梯形图上的触点通断和线圈状态。比如启保停电路你把X0强制ON一下再强制OFF盯住Y0它应该保持为ON因为你松开X0之后Y0自己的并联触点还通着。直到你把X1强制ONY0才断开。这一套操作下来你对自锁的理解会比看十遍书都深刻。我的建议是每个练习都要跑至少一遍逻辑测试确认自己画出来的程序在行为上完全符合预期。别嫌麻烦这一步是帮你把逻辑正确变成行为正确的关键桥梁。3.4 五个经典练习从自锁到顺序启动光说不练假把式。这里列五个我先给学员布置的第一批位逻辑练习每个都建议在FXGP/WIN里画出来并跑通仿真。练习一启保停电路。目标X0启动、X1停止Y0自锁输出。这个是对自锁的直接考核画完跑通就过关。练习二正反转互锁。两个自锁回路Y0正转、Y1反转两个回路互相串对方的常闭触点。重点在于验证Y0得电时按下反转启动按钮Y1能不能成功得电如果程序把互锁串错了位置就会同时输出这就是练习要抓出来的问题。练习三定时器闪烁电路。用T0和T1搭一个循环T0计时到1秒导通Y0并启动T1T1计时到1秒把T0复位。循环往复Y0就变成1秒一亮、1秒一灭。这个练习开始涉及定时器但骨子里依然是位逻辑——T0和T1的触点怎么互相比着来。练习四三地控制一盏灯。三个按钮都能开灯也都能关灯。看似简单实际上考的是或逻辑和与逻辑的混合接法还要小心别让某个按钮的常开常闭放错位置导致逻辑混乱。练习五顺序启动。三台电机M0、M1、M2依次启动M0启动后才能启动M1M1启动后才能启动M2。做法是用前一级的输出触点串到后一级的启动回路里形成步进式的位逻辑链。这已经非常接近实际项目的框架思维了。这五个练习全部跑通你对位逻辑的掌控感会完全不一样。4. 复杂指令后置为什么背熟复杂指令反而不会编程4.1 复杂指令的本质把一段位逻辑打包装进功能块现在可以聊复杂指令了。我想先给复杂指令正个名它本身没有错错的是学习顺序。所谓复杂指令在三菱FX系列里通常指功能指令比如数据传送MOV、比较CMP、四则运算ADD/SUB以及后面的PID、定位指令等等。这些指令的本质是什么是把某一段固定的逻辑运算和处理封装成一个带参数的功能块。你给它输入它按预设规则给你输出。用高级语言来类比它就像一个个写好的库函数。但问题是任何功能指令在PLC里都不是凭空执行的。它需要被接通的条件而接通条件恰恰就是位逻辑。好比一个函数不管它内部多复杂也得等一个调用信号来了才执行。在PLC里这个调用信号就是它前面那一串常开常闭触点的组合。所以我一直跟学员讲复杂指令是工具位逻辑是使用工具的手。手不听使唤工具越高级你越驾驭不了。4.2 复杂指令的执行条件本身就是位逻辑举一个最常见的例子。假设我要做一个自动分拣传感器检测到传送带上有大件物品X0为ON就把一个气缸推出去。传统写法会用位逻辑直接驱动气缸输出Y10。如果再加一个计数功能记录推出的产品数量就需要在推料动作发生时执行一条加1指令。你会看到梯形图里是这样安排的X0的常开触点或者再串联一堆联锁条件放在指令前面条件满足了后面的加1指令才执行一次。这个放在指令前面的触点组合就是复杂指令的执行条件——它完全由位逻辑构成。你位逻辑不熟连这个执行条件都写不准确多并行了一个不该有的触点或者少串了一个停止条件指令就会在不该执行的时候乱执行。更阴险的是边沿检测。很多场合要求指令只在按钮按下的那一瞬间执行一次而不是按钮一直按着就一直执行。这就要用上升沿触点、下降沿触点。很多人学复杂指令时根本不知道身边沿触点也是位逻辑的基本功结果写出来的计数程序按一下按钮量了好几个数。这类问题十有八九就是位逻辑没练透。4.3 程序故障排查九成问题死在这三个位逻辑坑里我在现场摸爬滚打这些年总结出一个规律设备程序出故障九成以上不是复杂指令算错了而是位逻辑层面出了问题。这里列三个最常见的坑每一个我都亲眼见证过。第一个是双线圈输出。同一个Y0在程序里被写了两次线圈。早期FX系列PLC的扫描规则是后面的覆盖前面的于是你想让Y0干两件事结果只有最后一条线圈控制它。你以为程序写得灵活实际上行为完全乱套。正确做法是把逻辑合并到一条线圈里或者用辅助继电器M做中转。第二个是停止按钮常开常闭接反。这是新手的高频事故。外部停止按钮按电气安全习惯通常接常闭触点程序里也对应使用它的常开触点按下去断开。结果有的人程序里用了常闭外部也是常闭逻辑绕了一圈变成不按的时候设备能启按下去反而没反应。这个案例我每次讲都会有人猛拍大腿——没错都是这么栽的。第三个是互锁缺失。两个不该同时动作的输出没有互相串常闭触点或者串错了位置一旦程序状态碰上巧合两个接触器同时吸合电机啪一下烧了。位逻辑里这个错是救人命级别的。排查这些问题的思路都一样先把程序里的触点状态、线圈状态一个一个查清楚画个临时真值表按照扫描顺序推演一遍。如果你位逻辑扎实这个推演几分钟就完成如果不扎实看半天也看不出所以然。5. 从看懂到编译出电路图我的转型经验与学习路线5.1 逼自己双向翻译电路图↔梯形图↔时序带过这么多学员之后我越来越确信一件事位逻辑真正学没学透有一个非常硬的检验标准——你能不能把一段继电器控制电路翻译成梯形图再把一段梯形图还原成电路图甚至画出一条Y输出随时序变化的波形图。当年我自己就是这么练出来的。白天在车间修设备晚上把常见电路图翻出来一张张对着画电机正反转、星三角启动、水泵液位控制先想办法用梯形图表达出来完了再反过来看着梯形图画回继电器接线图。这个过程很枯燥但练的就是语言转换。PLC和继电器电路是同一套逻辑的两张皮你能来回切换才说明你真正懂了。练到位之后你拿到一个控制要求脑子里会自动浮现电路结构这里有三个输入并联、那里要串一个常闭做联锁、输出线圈后面还要挂个定时器。用行话说你是在脑子里编译出电路图了。到了这一步再去碰复杂指令你会觉得它们不过是给你的电路加了一些高级附件而已。5.2 别用高级语言思维看梯形图第二条经验也是一条忠告千万别把梯形图当高级语言写。最典型的误区是把线圈当赋值语句。高级语言里一个变量可以在很多地方被赋值最后一次生效大家觉得理所当然。但在PLC里同一个输出线圈你最好不要到处赋值因为扫描顺序、物理输出刷新机制会把你的程序搅成一锅粥。你要养成一个输出只在一个梯级里综合所有条件的习惯。第二个误区是忽视扫描顺序。梯形图看上去和电路图一模一样但它毕竟是由计算机循环扫描的执行顺序是自上而下、从左到右。这在大多数时候不影响逻辑但在涉及瞬时置位、复位的时候顺序不同结果可能完全不同。你要是不习惯这种先后概念建议在脑子里给每条梯级编个号遇到不确定的地方就按顺序推演一遍。第三个误区是把程序里的常开常闭和外部按钮的物理状态画等号。程序里的X0常开触点跟外部按钮是不是常开没有必然关系——程序里用常开还是常闭取决于你想让信号怎么参与逻辑外部按钮的常开常闭取决于安全习惯和硬件接线。这两套东西不能混着记。初学者只要是这个上面栽过跟头基本都会变得格外小心。5.3 给初学者的一条实用学习路线最后我把自己验证过很多次的学习路线分享给大家照着走就行不用发挥。第一步花一周时间弄清基本电气知识看懂继电器电路图重点理解接触器、热继电器、按钮的接线逻辑。第二步拿FX2系列PLC和FXGP/WIN集中两周专门练位逻辑。标准就是前面那五个练习画到闭着眼都能写出来期间一个功能指令都别碰。第三步再学定时器、计数器把延时、计数和位逻辑组合起来做一些闪烁、顺序动作的小程序。第四步才开始接触功能指令而且要用到什么查什么别从头到尾背指令手册。第五步有条件就接实物没条件就坚持逻辑测试仿真。真实的手感和连线经验是任何软件都替代不了的。说到时间投入我给个参考每天保证两小时集中在位逻辑上练两周效果远好过漫无目的地背半年指令。很多人输就输在什么都想学结果地基没打牢天天补窟窿。最后说个我自己的习惯接新项目时我从来不急着打开编程软件。我会先在一张纸上把所有输入点、输出点、联锁要求列出来用位逻辑草图画一个整体框架确认每个开关量的来龙去脉之后才动笔写梯级。这个习惯救过我很多次。也真心建议每一位初学PLC的朋友从现在开始把位逻辑三个字刻进脑子里先把地基打得结结实实再去盖那些花里胡哨的楼。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑