3. GX Works3工程创建
在iQ-F系列PLC的虚拟调试流程中,GX Works3工程是承载全部控制逻辑、硬件配置与仿真验证的“数字底座”。工程创建并非简单地新建一个文件,而是要在项目结构、CPU参数、程序组织单元(POU)和标签命名四个层面建立统一规范,否则后续虚拟调试时极易出现“仿真能跑、实物不通”或“标签冲突、程序无法编译”的问题。本节以FX5U-32MT/ES为例,说明一套可直接落地的工程创建方法。
一、项目结构:从“新建”到可维护的层级
启动GX Works3后,选择“新建工程”,在系列中选择FX5CPU,机型选择FX5U,程序语言建议选择梯形图(Ladder),并勾选“使用标签”。工程建立后,左侧导航窗口会形成固定层级:参数 → CPU参数 / 模块参数 / 模块配置图,程序 → 程序本体 / 程序块 / 功能块(FB)/ 函数(FUN),全局标签 / 结构体定义,软元件注释。建议在项目初期就按“设备单元”划分程序块,例如Main(主控)、Conveyor(输送)、Cylinder(气缸)、Safety(安全),而不是把所有逻辑堆在Main中。这样在虚拟调试时,可以单独禁用或强制某个程序块,快速定位问题。
二、CPU参数设置:虚拟调试前必须确认的项
双击“CPU参数”,重点设置以下内容:
- 运算模式:虚拟调试阶段建议设为“恒定扫描”,扫描周期设为10ms,便于仿真时序稳定;
- 输出模式:确认“刷新输出”与“直接输出”的选择,仿真时通常保持默认刷新;
- 软元件设置:检查输入X、输出Y的起始编号与点数,FX5U默认X0~X177、Y0~Y177,若扩展模块占用需提前规划;
- 内置以太网参数:若虚拟调试需与外部仿真软件通信,需设置IP地址(如192.168.1.10)和端口号;
- 高速计数器/脉冲输出:若产线含伺服或步进,需在此启用对应通道并设定最高频率。
三、程序组织单元(POU):让逻辑可复用、可测试
GX Works3支持三种POU:程序(Program)、功能块(FB)、函数(FUN)。对于产线虚拟调试,推荐结构如下:
- 程序:按设备单元划分,每个程序指定执行顺序,例如“Safety → Conveyor → Cylinder → Main”;
- 功能块:将气缸控制、电机启停、报警处理等封装为FB,输入输出用标签定义,内部逻辑不直接引用全局软元件;
- 函数:用于纯计算或数据转换,如“模拟量标定”“单位换算”,不保持状态。
以气缸控制FB为例,定义输入i_Cmd(动作指令)、i_SensorFwd(前限位)、i_SensorBwd(后限位),输出o_ValveFwd、o_ValveBwd、o_Error。内部用状态机实现“伸出→到位→缩回→到位”的时序,并加入超时报警(如3s未到位则置位o_Error)。这样在虚拟调试中,只需给FB的输入标签赋值,即可独立测试气缸逻辑,无需依赖实际硬件。
四、标签命名规范:虚拟调试的“通用语言”
标签是GX Works3与仿真软件、HMI、数字孪生模型之间的数据桥梁。命名混乱会导致仿真映射错误。建议采用“前缀_设备_功能_序号”的格式:
- 输入:
i_,如i_Conv1_PhotoEye(输送线1光电) - 输出:
o_,如o_Cyl2_ValveFwd(气缸2前阀) - 内部继电器:
m_,如m_StartPB(启动按钮) - 定时器/计数器:
t_/c_,如t_Cyl2_Timeout - 模拟量:
ai_/ao_,如ai_Temp1
所有标签必须定义数据类型(BOOL、INT、REAL等)和注释。对于数组或结构体,建议使用结构体定义,例如定义ST_Cylinder包含Cmd、SensorFwd、SensorBwd、ValveFwd、ValveBwd、Error,然后声明st_Cyl1 : ST_Cylinder。这样在FB接口中直接传递结构体,减少标签数量,也便于虚拟调试时批量映射。
五、创建后的自检与虚拟调试衔接
工程创建完成后,不要急于编写大量逻辑。先执行一次“编译”(Ctrl+B),确认无标签未定义、数据类型不匹配等错误。然后进入“模拟器”或连接虚拟调试环境,做三项最小验证:
- 强制一个输入标签(如
i_StartPB)为ON,观察对应输出标签是否按预期变化; - 在FB内部设置一个超时条件,强制传感器信号不返回,确认
o_Error能在设定时间后置位; - 检查全局标签与仿真软件的映射表是否一一对应,避免地址偏移。
若以上验证通过,说明工程结构、参数、POU和标签命名已具备虚拟调试的基础条件。后续章节中,所有逻辑开发都应在此规范下进行,避免因命名或结构问题导致仿真与实物行为不一致。