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)和端口号;
  • 高速计数器/脉冲输出:若产线含伺服或步进,需在此启用对应通道并设定最高频率。
虚拟调试时,建议将“CPU参数 → 运行模式”设为“停止时输出保持”,避免仿真暂停导致输出状态丢失,影响与数字孪生模型的同步。

三、程序组织单元(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接口中直接传递结构体,减少标签数量,也便于虚拟调试时批量映射。

GX Works3 工程结构 · 参数 · POU · 标签命名关系图 FX5U 工程 (Project) 参数 CPU参数 模块参数 模块配置图 以太网/IP/端口 程序 (POU) Main / Safety Conveyor / Cylinder FB: 气缸/电机/报警 FUN: 标定/换算 标签 全局标签 局部标签 结构体定义 软元件注释 命名规范 i_ 输入 / o_ 输出 m_ 内部 / t_ 定时 ai_ / ao_ 模拟量 设备_功能_序号 示例:气缸控制 FB 与标签映射(虚拟调试用) FB_Cylinder i_Cmd : BOOL i_SensorFwd / Bwd : BOOL o_ValveFwd / Bwd : BOOL o_Error : BOOL 映射 虚拟调试环境 数字孪生模型 传感器状态注入 阀输出回读 超时报警监视 验证 结果判读 动作时序正确 无标签冲突 报警可触发

五、创建后的自检与虚拟调试衔接

工程创建完成后,不要急于编写大量逻辑。先执行一次“编译”(Ctrl+B),确认无标签未定义、数据类型不匹配等错误。然后进入“模拟器”或连接虚拟调试环境,做三项最小验证:

  1. 强制一个输入标签(如i_StartPB)为ON,观察对应输出标签是否按预期变化;
  2. 在FB内部设置一个超时条件,强制传感器信号不返回,确认o_Error能在设定时间后置位;
  3. 检查全局标签与仿真软件的映射表是否一一对应,避免地址偏移。

若以上验证通过,说明工程结构、参数、POU和标签命名已具备虚拟调试的基础条件。后续章节中,所有逻辑开发都应在此规范下进行,避免因命名或结构问题导致仿真与实物行为不一致。

工程创建阶段投入的规范成本,会在虚拟调试阶段以“少改标签、少查冲突、少返工”的形式回报。建议将本节所述的命名前缀和POU划分方式固化为团队模板,新建工程时直接复用。