1. 从零上手GX Work2:一个老电工的视角
如果你刚接触三菱PLC,或者从其他品牌(比如西门子、欧姆龙)转过来,面对GX Work2这个软件,第一感觉可能是界面有点“复古”,操作逻辑似乎和常见的Windows软件不太一样。别担心,这种感觉很正常。我当年从手持编程器转到电脑软件时,也经历过这个阶段。GX Work2作为三菱电机主推的编程软件,它覆盖了从老款的FX系列到最新的iQ-R/FX5系列,是进行三菱PLC开发、调试和维护的核心工具。这篇笔记,就是我这些年用它干活、踩坑、总结出来的一套“生存指南”,目标就是帮你绕过那些新手常掉的坑,快速把它变成你得心应手的工具。
很多人一开始就急着找指令、写程序,这其实有点本末倒置。工欲善其事,必先利其器。GX Work2本身就是一个复杂的工程环境,包含项目管理、程序编辑、参数设置、仿真调试、在线监控等多个模块。不先把“器”摸熟,后面编程和调试的效率会大打折扣,甚至可能因为一个错误的工程设置,导致程序下载不进去或者运行异常。所以,咱们先从最基础的“认识它、配置它”开始。
2. 软件安装与环境配置的“玄学”与科学
安装GX Work2听起来很简单,双击Setup.exe,一路下一步。但根据我处理过的大量现场和学员问题,超过一半的初次使用困扰都源于安装和环境配置。这里面的“玄学”成分,主要来自于操作系统兼容性和运行环境。
2.1 安装避坑:从Win7到Win11的兼容性实战
官方文档会列出支持的操作系统列表,但现实往往更复杂。比如,你可能会搜到“win11装不了三菱gx”这类问题。其核心原因通常不是Win11完全不支持,而是缺少必要的运行库或权限设置。
首先,务必以管理员身份运行安装程序。右键点击安装文件,选择“以管理员身份运行”。这一步能避免很多因权限不足导致的注册表写入失败、文件复制失败等问题。
其次,关注.NET Framework版本。GX Work2的较新版本(如1.590以上)依赖于特定版本的.NET Framework。如果系统没有,安装程序通常会提示并尝试安装,但有时网络或系统问题会导致安装失败。我的经验是,在安装GX Work2之前,手动通过Windows的“启用或关闭Windows功能”或从微软官网下载安装完整的.NET Framework运行库(如4.6或以上版本),能极大提高安装成功率。
对于Win10/Win11用户,如果安装后软件打开闪退、无响应,可以尝试兼容性模式。右键点击GX Work2的快捷方式或主程序(通常名为GXW2.exe),进入“属性” -> “兼容性”选项卡,勾选“以兼容模式运行这个程序”,并选择“Windows 7”或“Windows 8”。同时,可以尝试勾选“以管理员身份运行此程序”。这个组合拳解决了我在多台新电脑上遇到的启动问题。
注意:如果系统是精简版或Ghost版本,可能缺失一些关键的系统组件。这时,最稳妥的办法是使用官方原版操作系统进行安装,虽然麻烦,但一劳永逸。
2.2 工程新建与PLC型号选择:第一步就决定成败
打开软件,创建新工程。这时你会看到一个对话框,要求选择“系列”和“机型”。这一步极其关键,选错了后续所有工作都可能白费。
- 系列:根据你手头的实际PLC硬件选择。例如,小型机选“FXCPU”,中型机选“QCPU”或“LCPU”,新一代的则选“iQ-R系列”或“FX5CPU”。如果你用的是FX3U、FX3G等,就属于FXCPU系列。
- 机型:在选择的系列下,精确找到你的PLC型号,比如“FX3U-64MT/ES-A”。型号通常印在PLC侧面的铭牌上。
- 程序语言:最常用的是“梯形图”,直观易学。结构化文本(ST)适合复杂运算,但初学者建议先从梯形图开始。
这里有一个常见误区:以为软件版本越高越好,于是用高版本的GX Work2去打开或创建针对老型号PLC的工程。虽然高版本软件通常向下兼容,但有时新版本默认的工程设置(如智能功能模块的设置方式)可能与旧PLC的固件不匹配。最保险的做法是,PLC型号、GX Work2软件版本、编程电缆的驱动版本,这三者尽量保持在一个“生态圈”内。例如,维护一台老旧的FX2N PLC,使用一个较老的、稳定的GX Work2版本(如1.77版本)可能比追求最新版更少遇到奇怪的问题。
2.3 连接设置:USB、以太网与串口的门道
工程建好了,要能把程序传进去(下载)和读出来(上传),连接设置是桥梁。
USB连接(最常用):使用专用的USB-SC09-FX编程电缆。插上电脑后,需要安装驱动。驱动通常随电缆光盘提供,或从三菱官网下载。安装成功后,在设备管理器中会看到“MELSOFT USB Driver”之类的设备。在GX Work2中,进入“在线” -> “传输设置”,选择“USB”接口,通常就能自动识别。如果找不到,尝试点击“搜索所有站”或手动选择COM端口(驱动虚拟出来的)。
以太网连接(高效,适合远程):对于FX5U、Q系列等支持以太网的PLC,这是首选。你需要知道PLC的IP地址(可通过触摸屏设置或默认地址)。在传输设置中,选择“以太网板”,设置PLC的IP地址和端口号(通常为5006或5007)。这常常用于解决像“三菱fx5s与威伦通以太网通信应怎样进行连接设置”这类问题,其核心就是在触摸屏和PLC两端分别正确配置IP地址、端口和通信协议(如SLMP)。
串口连接(RS-422/485):一些老设备或特定通信场景(如CC-Link)会用到。需要设置正确的COM端口、波特率、数据位、停止位和校验位。这些参数必须与PLC侧的系统参数设置完全一致。
连接测试通不过时,排查顺序通常是:1. 电缆是否完好?2. 驱动是否安装正确?3. PLC是否上电并处于STOP状态?4. 传输设置中的参数(如IP、COM口)是否与硬件匹配?5. 电脑防火墙或杀毒软件是否拦截了通信?
3. 编程核心:梯形图逻辑与软元件认知
连接畅通后,就进入核心的编程环节。GX Work2的编程界面,中间是梯形图编辑区,左边是工程树,右边是工具条。
3.1 软元件:PLC的“内存格子”
理解软元件是编程的基础。你可以把它们理解为PLC内部一个个有特定用途的内存地址。常用的有:
- X(输入继电器):对应物理输入端子,如X0, X1。外部传感器(如按钮、光电开关)的信号通过它读入PLC。
- Y(输出继电器):对应物理输出端子,如Y0, Y1。PLC逻辑运算的结果通过它控制外部执行器(如继电器、指示灯、电磁阀)。
- M(辅助继电器):PLC内部的“中间变量”,没有物理端子对应。常用于程序中间的逻辑状态存储、标志位等。例如,用一个M0作为“自动运行启动”的标志。
- D(数据寄存器):存储数值数据,如整数、浮点数。每个D寄存器通常是16位(-32768~32767),两个连续的D可以组成32位寄存器。做运算、计时、计数等都需要用到D。
- T(定时器):实现延时功能。如T0 K50,表示T0定时器,设定值为50(单位通常为100ms或1ms,取决于定时器类型和参数设置),时间到则其触点动作。
- C(计数器):实现计数功能。如C0 K10,表示C0计数器,计满10个脉冲信号后,其触点动作。
关于“三菱plc计数器c的用法”,这里展开一下。计数器分16位增计数和32位增减计数。以16位增计数C0为例,它有一个计数输入线圈,一个复位线圈。每次计数输入从OFF到ON,当前值加1。当当前值等于设定值(如K10)时,C0的常开触点接通,常闭触点断开。此时即使再有计数脉冲,当前值也不再增加。必须用复位信号(RST C0)将其当前值清零,触点状态才会恢复。在编程时,要特别注意计数器的复位逻辑,不合理的复位会导致计数功能混乱。
3.2 梯形图编程的基本规则与技巧
梯形图源于继电器控制电路,电流(能流)从左母线流向右母线。
- 画图就是搭接点:使用工具条上的常开触点(┠├┥)、常闭触点(┠/├┥)、线圈(─( )─)等符号进行绘制。双击鼠标或按F5、F6、F7快捷键是更高效的方式。
- 并联串联是基础:多个触点串联是“与”逻辑,必须都通才能流到下一条;并联是“或”逻辑,任意一条通即可。
- 定时器/计数器的使用:它们既是线圈(驱动条件),也是触点(状态输出)。驱动条件成立时,定时器开始计时或计数器开始计数;当达到设定值,其对应的触点动作。
- 程序编辑技巧:善用“变换”功能(F4键)。编写完一段梯形图后,必须按F4进行变换(编译),才能进行保存、下载或仿真。未变换的程序是灰色的。使用“写入模式”和“插入模式”可以灵活编辑。对于复杂逻辑,可以先画草图,理清思路再动手。
一个常见的编程需求是“三菱plc轮询程序”。轮询的本质是周期性地、按顺序执行一系列操作。实现方法很多,一个经典思路是使用一个定时器结合计数器或移位指令。例如,用一个1秒的定时器T0自振荡产生周期脉冲,再用一个递增计数器C1对脉冲计数。根据C1的不同计数值(1,2,3...),用比较指令(如CMP, ZCP)或触点比较指令(如>= D0 K1)来触发不同的子流程。完成一圈后,复位计数器重新开始。这种方法结构清晰,易于扩展和维护。
4. 程序调试与在线监控:让逻辑“动”起来
程序写完了,怎么知道它对不对?下载到实物PLC有风险,万一逻辑错误可能导致设备误动作。这时,GX Work2内置的仿真功能(GX Simulator2)就是神器。
4.1 仿真调试:无实物PLC的试炼场
在工具菜单中启动仿真器,软件会模拟出一个虚拟PLC运行你的程序。然后进入“在线” -> “监视开始”,你就可以看到梯形图上触点和线圈的实时状态:通路的会显示蓝色,导通的触点中间会有蓝点,得电的线圈会变蓝。
你可以强制改变输入X的状态来模拟外部信号。右键点击一个X触点,选择“软元件测试”,可以强制将其置ON或OFF。通过观察程序中M、Y、T、C等元件的状态变化,来验证你的逻辑是否符合预期。这对于学习指令、调试复杂逻辑、教学演示来说,成本极低,效率极高。
4.2 在线监控与故障排查
当连接真实PLC时,在线监控是诊断问题的眼睛。
- 状态监控:和仿真类似,可以实时看到所有软元件的ON/OFF状态、数据寄存器的当前值。这对于排查“为什么这个输出不动作”非常有用。你可以顺着梯形图的能流,一步步查看哪个触点没通,哪个条件不满足。
- 当前值更改:在线状态下,你可以直接修改D寄存器、T/C当前值等,用于测试和调整。但修改输出Y要非常谨慎,最好在确保安全的前提下进行。
- 设备批量监视:可以同时监视一片连续的软元件(如D0到D100),并以表格、波形图等形式显示,适合观察数据变化趋势。
- 诊断功能:通过“诊断”菜单,可以查看PLC的运行状态、错误历史、电池状态等,帮助定位硬件或系统级故障。
例如,遇到“三菱gxworks2存储器空间或桌面堆栈不足怎么解决方法”这个错误,通常发生在程序容量较大、嵌套调用过多或使用了大量变址寻址时。首先通过“PLC诊断”查看具体是程序容量不足还是栈溢出。如果是容量不足,需要优化程序,删除冗余代码,或更换更大内存的PLC型号。如果是栈溢出,则需要检查程序中的子程序调用、中断嵌套是否过深,并优化程序结构,减少嵌套层数。
5. 进阶功能与深度应用探索
掌握了基础编程和调试,就可以探索一些更强大的功能,让程序更高效、更智能。
5.1 功能块(FB)与结构化编程
对于需要重复使用的复杂逻辑(比如一个完整的电机控制流程、一个PID算法),每次都重新画梯形图效率低下且不易维护。这时就可以使用功能块(FB)。
FB将一段程序(包括算法和内部变量)封装成一个独立的“黑盒子”。在主程序中,你只需要像调用一个指令一样调用这个FB,并给它分配输入参数和输出参数即可。这极大地提高了代码的复用性和可读性。
关于“三菱plc怎么添加fb程序”,步骤是:在工程树中右键“程序部件” -> “新建数据” -> 选择“FB”。在FB编辑窗口中编写内部逻辑,并定义好输入、输出、内部变量。编写完成后,需要在主程序或其它程序中使用“FB调用”指令(通常是一个方框符号)来实例化它。合理使用FB,是迈向中高级PLC编程的重要标志。
5.2 通信设置与数据交换
现代设备很少孤立运行,PLC经常需要与触摸屏(HMI)、变频器、伺服驱动器、机器人、上位机(如SCADA、MES)甚至其他PLC通信。
- 与HMI通信:如威伦通、西门子触摸屏。核心是在触摸屏软件中正确选择PLC型号(三菱FX系列等)和通信接口(如RS485、以太网),并设置与PLC一致的站号、波特率、数据格式。PLC侧通常需要在参数中启用对应的通信协议和端口。
- 与变频器/伺服通信:如控制三菱A800变频器或伺服。常用方式有Modbus RTU(串口)或内置的CC-Link IE Field Basic、SSCNET等网络。需要设置通信参数,并按照变频器手册的通信地址映射表,通过MOV等指令读写相应的数据寄存器(如频率指令、运行状态)。
- 与上位机通信:例如用Python通过USB或以太网与PLC通讯。这需要借助第三方库(如
pymcprotocol)来实现三菱的MC协议(MELSEC Communication Protocol)。你需要在上位机程序中配置好PLC的IP、端口,并构造正确的读写帧。PLC侧则需要确保MC协议功能已开启(在参数中设置)。
5.3 特殊模块与定位控制
除了基本的开关量控制,PLC还能通过特殊功能模块处理模拟量、高速计数、脉冲输出等。
- 模拟量模块:用于读取温度、压力等传感器的4-20mA或0-10V信号,并将其转换为数字量存储在D寄存器中,或反之。编程时主要使用FROM/TO指令或缓冲存储器读写指令来与模块交换数据。
- 定位模块/脉冲输出:用于控制伺服或步进电机进行精确定位。FX系列PLC本体通常带有2-3轴高速脉冲输出(Y0, Y1等)。通过使用PLSV、DRVI、DRVA等定位指令,可以方便地控制电机的速度、位置和方向。这是实现“基于plc的四柱液压机液压系统设计”中压头精确定位的关键。
6. 项目实战:一个简单的电机启保停与故障报警程序
让我们用一个完整的例子,串联起前面讲到的知识点。假设要控制一台三相电机,要求有启动、停止按钮,电机运行指示灯,以及一个过热故障信号输入。
控制要求:
- 按下启动按钮(X0),电机接触器(Y0)得电并自锁运行,运行指示灯(Y1)亮。
- 按下停止按钮(X1),电机停止,指示灯灭。
- 如果电机过热(X2常闭触点断开),则立即停止电机,并点亮故障报警灯(Y2),同时蜂鸣器(Y3)以1Hz频率鸣响。
- 故障发生后,需按下复位按钮(X3)才能清除报警。
程序实现思路与步骤:
新建工程与软元件分配:
- 创建新工程,选择正确的PLC型号(例如FX3U)。
- 分配软元件:
- X0: 启动按钮(常开)
- X1: 停止按钮(常闭,外部接线为常开,程序中用常闭触点实现“断开停止”逻辑)
- X2: 过热传感器(常闭,正常时导通,过热时断开)
- X3: 复位按钮(常开)
- Y0: 电机接触器
- Y1: 运行指示灯
- Y2: 故障报警灯
- Y3: 故障蜂鸣器
- M0: 故障锁存继电器
- T0: 蜂鸣器闪烁定时器(设定K5,100ms单位,实现0.5秒ON,0.5秒OFF的1Hz闪烁)
编写梯形图程序:
// 网络1:电机启保停控制 | X0 X1 X2 M0 Y0 |--| |------|/|------|/|------|/|------( ) // 启动、停止、过热、故障连锁 | Y0 | |--| |---------------------------------// 自锁 // 网络2:运行指示灯 | Y0 Y1 |--| |--------------( ) // 电机运行则指示灯亮 // 网络3:故障检测与锁存 | X2 M0 |--|/|--------------( ) // 过热信号断开(X2 OFF),触发故障锁存 | X3 M0 | |--| |------|/|-----------(RST M0) // 复位按钮清除故障锁存 // 网络4:故障报警灯 | M0 Y2 |--| |--------------( ) // 有故障则报警灯常亮 // 网络5:故障蜂鸣器(1Hz闪烁) | M0 T0 Y3 |--| |------|/|-------------( ) // T0未到时,Y3响 | M0 T0 T0 |--| |------| |-------------( ) // T0线圈,自振荡 | K5 | |--[END]--------------------( ) // T0设定值- 网络1:经典的启保停电路。串联了停止按钮X1(常闭)、过热信号X2(常闭)和故障锁存M0(常闭)作为连锁保护。只有这些条件都满足(即都导通),按下X0才能启动Y0并自锁。
- 网络3:用M0锁存故障状态。当X2断开(过热),M0置位并自锁。即使过热信号恢复(X2闭合),M0也保持ON,直到按下复位按钮X3才被复位。
- 网络5:利用定时器T0构造一个自振荡电路。当故障存在(M0 ON)时,T0开始计时,0.5秒后其常闭触点T0断开,使Y3和T0线圈断电;T0断电后其触点恢复,电路再次接通,如此循环,实现Y3的1Hz闪烁。这里T0的设定值K5,在100ms时基下就是0.5秒。
仿真调试:
- 启动GX Simulator2。
- 开始监视。
- 强制X0为ON,观察Y0、Y1是否变为ON。
- 强制X0为OFF(模拟松开按钮),由于自锁,Y0、Y1应保持ON。
- 强制X1为ON(模拟按下停止),Y0、Y1应变OFF。
- 强制X2为OFF(模拟过热),观察M0、Y2是否置ON,Y3是否开始闪烁。
- 强制X2为ON(过热恢复),M0、Y2、Y3应保持动作。
- 强制X3为ON(复位),观察M0、Y2、Y3是否全部复位。
通过这个简单的项目,你将实际应用软元件分配、梯形图绘制、基本指令、定时器应用、故障连锁与报警处理等多个核心技能。在调试过程中,你会深刻体会到在线监控和软元件测试的价值。把这个程序吃透,再去看更复杂的流水线、机械手程序,你会发现其核心骨架无非是这些基本逻辑块的组合与扩展。编程没有捷径,就是从一个这样的小项目开始,不断实践、调试、思考和总结,经验自然就积累起来了。