4. GX Works3安全工程环境搭建
GX Works3 是 iQ-F 系列(含 FX5-S 安全型 CPU)的统一工程环境。与普通 FX5U 工程不同,安全功能的实现必须建立在“安全工程”这一独立结构之上:安全程序与标准程序在同一个项目文件中共存,但被严格分区、分别编译、分别校验。理解这套分区机制,是后续编写安全逻辑、配置安全通信和下载调试的前提。
安全工程的创建与项目结构
在 GX Works3 中新建项目时,需要选择正确的 CPU 型号系列。以 FX5-S 安全型 CPU 为例,选择“FX5S”系列下的安全 CPU 型号后,工程会自动具备安全功能结构。若误选普通 CPU 型号,则工程中不会出现安全程序与安全参数节点,后续无法补救,只能重建工程。因此型号选择是第一步也是最关键的一步。
创建完成后,导航窗口中的项目树会呈现明显的双分区结构:标准侧包含“程序”“FB”“设备”“参数”等常规节点;安全侧则包含“安全程序”“安全FB”“安全参数”“安全通信”等节点。两侧共享同一套硬件配置(模块配置、网络配置),但程序与参数各自独立。安全程序使用安全专用指令集,普通指令(如 MOV、ADD 等)不能直接出现在安全程序中,反之安全指令也不能用于标准程序。
安全程序采用“安全主程序 + 安全功能块”的组织方式。安全主程序(如 SafetyMain)中调用安全 FB,安全 FB 内部再使用安全指令实现逻辑。安全程序不支持中断、不支持部分跳转指令,这是由安全执行机制决定的——安全程序按固定周期完整扫描,以保证可预测的响应时间。
安全 CPU 参数设置
安全参数是安全工程的“身份证”,决定了安全功能的运行方式和安全等级。主要设置项包括:
- 安全模式:可选择“安全模式”或“安全子模式”。安全模式下安全程序与标准程序同时运行;子模式用于调试阶段,可单独运行标准程序而不执行安全逻辑,便于分步验证。
- 安全程序执行周期:设定安全程序的扫描周期,需与安全响应时间要求匹配。周期越短,响应越快,但对 CPU 负荷越高。
- 安全ID与密码:安全工程需要设置安全密码,防止未授权修改安全程序。密码一旦设定,下载、在线修改、清除安全程序均需验证。
- 安全通信参数:若使用安全通信(如通过 CC-Link IE Field Safety 或 PROFIsafe),需在此指定安全通信协议、安全从站地址、看门狗时间等。
参数设置完成后,GX Works3 会进行安全参数校验。若参数之间存在冲突(例如安全周期与通信看门狗时间不匹配),编译时会报错并阻止下载。这是安全工程“先校验、后运行”原则的体现。
安全程序与标准程序的分区与交互
安全程序与标准程序虽然在同一 CPU 中运行,但数据不能随意互通。安全程序中的安全软元件(如安全输入 SA、安全输出 SA、安全内部继电器 SM 等)与标准程序的普通软元件是两套独立地址空间。两者之间的数据交换必须通过“安全→标准”或“标准→安全”的专用接口进行,且该接口的数据传递是单向、受控的。
典型交互方式有两种:一是通过安全 CPU 提供的安全链接软元件,将安全侧的状态(如急停已触发、安全门已关闭)映射到标准侧,供 HMI 显示或标准逻辑使用;二是标准侧将非安全相关的请求(如启动命令)通过安全接口传入安全程序,但该请求必须经过安全程序内部的安全条件判断后才能驱动安全输出。这种“安全侧主导、标准侧只读或请求”的架构,确保了安全功能不会被标准程序意外覆盖。
安全通信配置
当安全系统需要与远程安全从站(如安全远程 I/O、安全驱动器)通信时,需配置安全通信。以 CC-Link IE Field Safety 为例,配置流程为:在“网络配置”中添加安全主站与安全从站,为每个安全从站分配安全地址和看门狗时间;然后在“安全通信参数”中启用安全通信,指定安全通信周期。安全通信周期必须小于看门狗时间,否则从站会因超时进入安全状态。
安全通信的数据区分为“安全数据”和“标准数据”两部分。安全数据只能由安全程序读写,标准数据可由标准程序访问。配置时需明确哪些数据属于安全数据,避免误将安全信号放入标准数据区导致安全功能失效。
项目下载与在线监控
安全工程的下载与普通工程有显著区别。下载前,GX Works3 会先执行安全编译,检查安全程序语法、安全参数一致性、安全通信配置完整性。编译通过后,下载操作需要输入安全密码。下载过程中,安全程序和标准程序分别写入 CPU 的不同存储区。
在线监控时,安全程序和标准程序需要分别监控。安全程序的监控界面会显示安全软元件的实时状态,但出于安全考虑,安全程序的在线修改受到严格限制:不允许在线强制安全输出,不允许在线修改安全参数。若需修改安全逻辑,必须停止安全程序、修改后重新编译下载。标准程序则可以在线监控和在线修改,但修改标准程序不会影响安全程序的运行。