3. GX Works3工程构建与程序组织

在iQ-R系列PLC的复杂顺控项目中,工程构建阶段决定了后续编程、调试与维护的效率上限。GX Works3作为iQ-R的官方工程工具,其工程结构并非简单的“新建—写程序—下载”三步,而是围绕CPU机型、系统参数、模块参数、标签数据库与程序文件五个层面逐级展开。若在工程构建阶段未建立标准化结构,后期联锁逻辑一旦膨胀到数千步,程序可读性与可维护性将迅速恶化。本节以一台典型iQ-R控制柜为例,说明从新建工程到形成标准化程序组织的完整过程。

一、新建工程与机型选择

启动GX Works3后,通过“新建工程”进入机型选择界面。此处需依次确定:系列选择“iQ-R”,CPU机型按实际硬件选择,例如R04CPU、R08CPU或R16CPU;程序语言选择“梯形图”或“ST”,复杂顺控项目通常以梯形图为主、ST为辅;项目类型选择“标准工程”。机型一旦选定,工程内可用的软元件范围、指令集与模块配置能力即被限定,因此必须与实际到货CPU型号一致,不可凭经验随意选择。

工程命名建议采用“项目代号_CPU型号_版本号”的格式,例如“L3_LineCtrl_R08_Ver1.0”。工程文件本身是一个目录结构,包含参数文件、程序文件、标签文件与注释文件,理解这一点有助于后续备份与版本管理。

二、系统参数与模块参数配置

系统参数定义CPU的整体运行行为,包括:运算模式(初始启动时的运行状态)、输出模式(刷新输出还是保持)、复位后的动作、扫描监视时间、以及是否启用安全功能。对于复杂顺控项目,建议将扫描监视时间从默认值适当放宽,例如从10ms调整为30ms,避免因联锁逻辑分支过多导致WDT报警。

模块参数则针对机架上实际安装的每个模块逐一配置。以常见的配置为例:电源模块R61P、CPU模块R08CPU、输入模块RX40C7、输出模块RY40NT5P、模拟量输入模块R60AD8-G、以及以太网模块RJ71EN71。在“模块配置图”中按实际槽位拖入模块后,双击每个模块进入参数设置:

  • RX40C7:设置输入响应时间,例如1ms或10ms,视信号抖动情况而定;
  • RY40NT5P:设置输出保持/清除行为,联锁输出通常设为“清除”;
  • R60AD8-G:设置通道使能、量程(如0~10V或4~20mA)、平均处理次数与转换速度;
  • RJ71EN71:设置IP地址、子网掩码、以及是否启用CC-Link IE Field或Socket通信。

模块参数配置完成后,GX Works3会自动生成对应的刷新软元件(如模拟量输入值映射到U0\G10等),这些软元件是后续程序中读取模块数据的唯一入口,不可绕过。

三、标签与程序文件组织

标签系统是GX Works3区别于旧版工具的核心能力。建议按“全局标签—局部标签—结构体”三层组织:全局标签用于跨程序共享的设备状态、报警标志与模式选择;局部标签仅在单个程序文件内有效,用于中间运算与临时标志;结构体则用于将同一设备的多个属性打包,例如定义一个“Motor”结构体,包含Run、Fault、Auto、Manual、Current等成员。

程序文件应按功能划分为独立单元,而非全部塞入Main。典型划分如下:

  • Init:初始化程序,仅在首次扫描时执行,用于参数预设与状态复位;
  • Interlock:联锁逻辑主程序,包含设备间的允许/禁止条件;
  • Sequence:顺控步进程序,按步号推进;
  • Analog:模拟量处理程序,负责量程转换与报警判断;
  • Comm:通信处理程序,负责与上位机或其他PLC的数据交换;
  • Alarm:报警汇总与历史记录程序。

每个程序文件应指定执行类型:Init设为“初始执行型”,其余设为“扫描执行型”。对于响应要求高的联锁逻辑,可设为“固定周期执行型”,并指定执行周期(如1ms),但需注意固定周期任务过多会挤占扫描时间。

四、标准化程序结构示例

以下给出一个可直接参考的程序文件与标签组织框架,适用于中等规模复杂顺控项目:

工程:L3_LineCtrl_R08_Ver1.0
├─ 系统参数:扫描监视30ms,输出清除,复位后停止
├─ 模块配置:
│   ├─ R08CPU(槽0)
│   ├─ RX40C7(槽1,响应1ms)
│   ├─ RY40NT5P(槽2,输出清除)
│   ├─ R60AD8-G(槽3,CH1 4~20mA,平均8次)
│   └─ RJ71EN71(槽4,IP 192.168.1.10)
├─ 全局标签:
│   ├─ gbSystemReady  (BOOL)
│   ├─ gbAutoMode     (BOOL)
│   ├─ gbEmergency    (BOOL)
│   └─ gstMotor[8]    (结构体数组)
├─ 程序文件:
│   ├─ P_Init         (初始执行型)
│   ├─ P_Interlock    (扫描执行型)
│   ├─ P_Sequence     (扫描执行型)
│   ├─ P_Analog       (扫描执行型)
│   ├─ P_Comm         (扫描执行型)
│   └─ P_Alarm        (扫描执行型)
└─ 注释:按设备编号统一命名,如“M1_Conveyor_Run”

该框架的关键在于:标签命名带前缀(gb表示全局布尔,gst表示全局结构体),程序文件按功能而非按设备划分,模块参数与程序中的刷新软元件一一对应。实际项目中可根据设备数量扩展结构体数组长度,但程序文件的划分粒度不宜过细,否则跨文件跳转反而降低调试效率。

五、工程构建的检查要点

在进入编程阶段前,建议执行一次“工程检查”:确认CPU型号与实际一致、模块配置无空缺槽位、系统参数中的扫描监视时间已调整、全局标签无重复定义、程序文件执行类型正确。GX Works3提供“编译”功能,可提前发现标签未定义、软元件越界等错误。若编译通过且模块配置图与实物机架一致,即可认为工程构建阶段完成,后续可进入具体联锁逻辑的编写与仿真验证。

GX Works3 工程结构组织图(iQ-R 复杂顺控项目) 模块配置(机架槽位) R61P 电源模块 R08CPU CPU · 槽0 RX40C7 输入 · 1ms RY40NT5P 输出 · 清除 R60AD8-G 模拟量 · 4-20mA RJ71EN71 以太网 标签数据库 全局标签:gbSystemReady / gbAutoMode / gbEmergency 结构体:gstMotor[8] → Run / Fault / Auto / Current 局部标签:各程序文件内部临时标志 命名规则:gb=全局布尔,gst=全局结构体 程序文件组织 P_Init(初始) P_Interlock(扫描) P_Sequence(扫描) P_Analog(扫描) P_Comm(扫描) P_Alarm(扫描) 按功能划分,非按设备划分 系统参数关键设置 扫描监视时间 30ms(默认10ms) 输出模式 清除(联锁安全) 复位后动作 停止(不自动运行) 运算模式 初始启动时停止
工程构建检查清单:CPU型号与实物一致;模块配置图无空缺槽位;扫描监视时间已按逻辑规模调整;全局标签无重复定义;程序文件执行类型正确(Init为初始执行型,其余为扫描执行型);编译无错误。满足以上条件后,工程构建阶段方可视为完成。