GX Works2 综合教程
第一部分:基础入门篇
本部分将带你完成从安装软件到创建第一个完整项目的全过程。

什么是 GX Works2?
- 定位:三菱电机官方开发的、用于其全系列PLC(包括早期的FX系列、Q系列、L系列等)的编程、调试、监控和维护的综合软件平台。
- 核心功能:
- 编程:使用梯形图、SFC(顺序功能图)、ST(结构化文本)等多种语言编写PLC程序。
- 参数设置:配置PLC的硬件、网络、I/O、定时器、计数器等系统参数。
- 仿真调试:内置仿真功能,无需连接真实PLC即可在电脑上模拟运行和测试程序。
- 监控诊断:在线监控PLC的运行状态、数据值,进行强制I/O、修改数据等操作,方便排查故障。
- 文档生成:自动生成程序注释、I/O分配表等文档。
软件安装与激活
- 获取软件:通常随三菱PLC购买时附带,或从三菱官方渠道下载。
- 安装步骤:
- 运行安装程序
setup.exe。 - 按照向导提示进行安装,通常选择“完整安装”以确保所有组件都安装到位。
- 安装完成后,首次运行需要输入序列号和产品密钥,这些信息通常在购买时由供应商提供,请务必妥善保管。
- 运行安装程序
- 注意事项:安装时最好关闭杀毒软件,避免误杀系统文件导致安装失败。
创建第一个项目 (Hello, PLC!)
目标:创建一个新项目,点亮一个PLC的输出点(例如Y0)。
步骤:
-
启动软件:双击桌面上的“GX Works2”图标。
-
新建项目:
(图片来源网络,侵删)- 点击菜单栏的
文件->新建。 - 在弹出的对话框中,进行如下设置:
- PLC系列:选择你使用的PLC系列,
FXCPU。 - PLC类型:选择具体的型号,
FX3U (C)。 - 程序语言:选择
梯形图。 - 设置:可以选择创建一个空白程序,或者包含一些常用指令的示例程序。
- PLC系列:选择你使用的PLC系列,
- 点击
确定。
- 点击菜单栏的
-
熟悉界面:
- 工程数据列表:左侧的树状结构,管理整个项目的所有文件(程序、参数、软元件注释等)。
- 编辑区:中间大面积的区域,用于编写梯形图。
- 工具栏:包含常用的快捷按钮,如写入、读取、监控、编译等。
- 状态栏:显示光标位置、PLC型号、在线/离线状态等信息。
-
编写程序:
- 在工程数据列表中,双击
MAIN(主程序)进入编辑。 - 从左侧的工具箱中,拖拽一个
常开触点到编辑区。 - 双击这个触点,输入地址
X0,这代表PLC的输入X0。 - 再从工具箱中拖拽一个
输出线圈到触点的右侧。 - 双击这个线圈,输入地址
Y0,这代表PLC的输出Y0。 - 你也可以直接在编辑区输入助记符:
LD X0OUT Y0。 - 点击工具栏的
写入按钮(或按F4),将程序写入到编辑区。
- 在工程数据列表中,双击
-
转换程序:
- 这是至关重要的一步!在运行或仿真前,必须将梯形图程序转换为PLC可识别的机器码。
- 点击菜单栏的
变换->变换,或直接按快捷键F4。 - 如果程序有语法错误,软件会提示你修改,转换成功后,编辑区的背景色会改变。
-
仿真运行:
(图片来源网络,侵删)- 目标:模拟X0按下,观察Y0是否亮起。
- 点击菜单栏的
启动->启动仿真。 - 软件界面下方会出现一个仿真窗口,显示PLC的运行状态。
- 在仿真窗口中,找到输入
X0,右键点击 ->强制 ON。 - 观察你的梯形图编辑区,
Y0线圈会变成蓝色,表示它被“激活”了,恭喜你,你的第一个程序运行成功了!
第二部分:核心概念与指令
PLC的基本工作原理
- 循环扫描:PLC的工作过程是一个不断循环的周期,主要包括三个阶段:
- 输入采样:读取所有输入端子的状态,并存入输入映像寄存器。
- 程序执行:从上到下、从左到右扫描用户程序,并根据程序逻辑和输入映像寄存器的状态,更新输出映像寄存器的状态。
- 输出刷新:将输出映像寄存器的最终状态输出到实际的物理输出端子。
常用软元件
- X (输入):
X0~X7F等,代表外部开关、传感器等输入信号,在程序中只能作为触点使用。 - Y (输出):
Y0~Y7F等,代表指示灯、继电器、接触器等输出设备,在程序中可以作为线圈或触点使用。 - M (辅助继电器):
M0~M8191等,PLC内部的“软继电器”,没有外部物理连接,用于中间逻辑运算,相当于程序中的中间变量。 - T (定时器):
T0~T255等,用于延时。T0 K10表示一个延时100ms的定时器(K10 * 10ms = 100ms)。 - C (计数器):
C0~C255等,用于计数。C0 K5表示一个计满5次的计数器。 - D (数据寄存器):
D0~D8191等,用于存储16位或32位的数据(数值),是数据处理的关键。
基本逻辑指令
| 指令 | 助记符 | 功能 | 示例 |
|---|---|---|---|
| 常开 | LD |
开始逻辑块 | LD X0 |
| 常闭 | LDI |
开始逻辑块(取反) | LDI X1 |
| 与 | AND |
串联常开触点 | AND X2 |
| 与非 | ANI |
串联常闭触点 | ANI X3 |
| 或 | OR |
并联常开触点 | OR X4 |
| 或非 | ORI |
并联常闭触点 | ORI X5 |
| 输出 | OUT |
驱动线圈 | OUT Y0 |
| 块与 | ANB |
并联逻辑块的串联 | |
| 块或 | ORB |
串联逻辑块的并联 | |
| 结束 | END |
程序结束 | END |
练习:编写一个“自锁电路”
- 要求:当按下启动按钮X0后,Y0输出并保持;当按下停止按钮X1后,Y0停止输出。
- 梯形图:
X0 |----| |(SET Y0)| X1 |--|/| |(RST Y0)|- 解释:
SET Y0:置位指令,一旦X0接通,Y0就会置位并一直保持,即使X0断开。RST Y1:复位指令,当X1接通时,将Y0复位(置0)。
- 解释:
第三部分:高级功能与在线操作
参数设置
- 位置:在工程数据列表中,双击
参数->PLC参数。 - 关键设置:
- I/O分配:将物理I/O模块的地址与程序中的软元件对应起来。
- 通信设置:设置PLC与电脑(如通过USB-CAB0)、HMI、变频器等设备的通信协议和参数。
- 运行时间设置:设置PLC的扫描时间监控等。
在线操作
这是调试程序的核心,必须先将电脑与PLC通过编程电缆(如USB-SC09)连接好。
-
连接PLC:
- 点击菜单栏的
在线->传输设置,选择正确的通信端口(如USB)。 - 点击
在线->PLC读取,从PLC中读取当前的程序和参数(为了备份)。 - 点击
在线->PLC写入,将你电脑中的程序下载到PLC。
- 点击菜单栏的
-
运行与停止:
- 点击工具栏的
运行按钮,PLC开始运行程序。 - 点击
停止按钮,PLC停止运行,但程序保留。
- 点击工具栏的
-
监控与调试:
- 启动监控:点击
监控模式按钮,程序中所有接通的触点和线圈会以蓝色高亮显示。 - 强制I/O:在监控模式下,右键点击程序中的某个软元件(如X0或Y0),选择
强制 ON或强制 OFF,这可以模拟现场信号,非常方便测试逻辑。 - 软元件批量监控:点击
在线->软元件批量监视,在弹出的窗口中输入要监控的软元件范围(如D0 D100),可以实时查看这些数据寄存器的值变化。 - 软元件写入:在批量监视窗口,选中某个软元件,右键选择
软元件写入,可以直接修改PLC中的数据值。
- 启动监控:点击
应用指令
应用指令是PLC功能强大的体现,用于数据处理、算术运算、高速处理等。
- 格式:
[指令助记符] [S1.] [S2.] [D.] [n.]- S (Source):源数据,可以是数据寄存器D、常数K等。
- D (Destination):目标数据,通常是数据寄存器D。
- n (Number):常数,用于指定操作数数量或参数。
常用应用指令示例:
- MOV (传送)
MOV K10 D0:将常数10传送到数据寄存器D0中。
- ADD (加法)
ADD D0 D1 D2:将D0的值与D1的值相加,结果存入D2。
- CMP (比较)
CMP D0 K100 M0:比较D0的值是否等于100,如果D0>100,M0为ON;如果D0=100,M1为ON;如果D0<100,M2为ON。
- CML (取反传送)
CML K0 D0 K4:将输入端口K0(X0-X7)的状态取反后,传送到输出端口K4(Y0-Y7)。
第四部分:最佳实践与技巧
- 添加注释:养成好习惯,为每个触点、线圈和程序段添加注释,在工程数据列表中,右键
注释数据->编辑,可以为每个软元件添加说明,这会让你的程序易于理解和维护。 - 使用SFC(顺序功能图):对于复杂的顺序控制流程(如机械手、流水线),使用SFC编程比纯梯形图更清晰、更结构化,在创建新项目时可以选择SFC语言。
- 善用仿真:在连接真实PLC之前,尽量先用仿真功能把程序逻辑跑通,这样可以节省大量的现场调试时间。
- 版本控制:对于重要的项目,建议定期备份工程文件(
.gpp或.gxw),并做好版本记录。 - 查找替换:使用
编辑->查找/替换功能,可以快速定位某个软元件或指令,或批量替换地址。
这份教程为你提供了GX Works2的核心知识框架,学习PLC编程是一个实践性很强的过程,最好的方法是多看、多练、多思考。
- 从简单开始:先掌握基本的启停、自锁电路。
- 逐步深入:学习定时器、计数器,再到复杂的应用指令和SFC。
- 理论联系实际:将程序与真实的工业控制场景结合起来思考。
希望这份指南能帮助你顺利入门GX Works2,并在自动化控制领域不断进步!如果你有更具体的问题,比如某个指令如何使用,或者某个功能如何实现,可以随时提出。
