GX Works3 结构化工程与 ST 语言实践建议
✦
← 三菱知识库

GX Works3 结构化工程与 ST 语言实践建议

楼主:超级管理员 · 2026-10-03 12:15 · 浏览 116

GX Works3 ST语言 结构化工程
超级管理员 楼主

GX Works3 结构化工程与 ST 语言实践建议

三菱的 GX Works3 支持结构化工程,可以用 ST(结构化文本)、梯形图、FBD 等多种语言。新项目建议直接上结构化工程配 ST,长期维护成本明显更低。

为什么推荐 ST:

  • 复杂运算和流程控制用梯形图写会非常臃肿,ST 几行就能说清楚。
  • 便于复用。可以把通用逻辑封装成函数块(FB),多个工程直接调用。
  • 便于版本管理和代码评审。文本形式天然适合 diff,梯形图的图形差异人眼看不出来。
  • 团队交接成本低。新人读 ST 比读几百行梯形图快得多。

不是所有地方都适合 ST:

  • 简单的联锁、安全回路,梯形图更直观,电工也看得懂。
  • 涉及安全功能的部分,很多项目规范明确要求用梯形图,便于审查。
  • 实践中常见做法是主流程用 ST,安全回路和 IO 映射用梯形图。

工程组织的建议:

  • 按功能划分程序块。每个工位或每个工艺段一个 POU,不要堆在一个大程序里。
  • 统一命名规范。全局变量、局部变量、FB 实例各用一套前缀,让人一眼看出作用域。
  • 标签(Label)优于直接地址。用有意义的标签名替代 D100 这种裸地址,后期改点位不用满程序找。
  • 常量集中管理。工艺参数、延时设定放在全局常量里,不要在代码里硬编码数字。

FB 设计的几个原则:

  • 一个 FB 只做一件事。电机控制、气缸控制、报警处理各自独立。
  • 输入输出接口清晰。VAR_INPUT、VAR_OUTPUT、VAR_IN_OUT 用对,别什么都往全局变量里塞。
  • 内部状态用 VAR(实例变量),保证多实例之间互不干扰。这一点最容易出错,用全局变量存中间状态,实例化两次就乱了。

调试相关:

  • 善用监视窗口,把关键变量加进去,比逐个找地址效率高。
  • 用仿真功能先跑一遍逻辑。GX Simulator3 可以在不接硬件的情况下验证。
  • 加注释。三个月后你自己也记不清某段逻辑为什么这么写。

结构化不是为了好看,是为了让改动可控。

GX Works3 结构化工程与 ST 语言实践建议 示意图


本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。

加班观察

安全回路坚持用梯形图是对的,很多项目规范明确要求,也便于审查。补一个经验:FB 的中间状态一定用实例变量,用全局变量存的话实例化两次就乱了,这个坑我踩过。

上线同学

完全同意文本形式适合 diff 这点。我们车间十几台设备共用一套标准程序,以前用梯形图,改一处到底动了哪里全靠工程师记忆,出了事故查半天。换成 ST 加函数块之后,每套程序都进 Git,谁改的哪一行一清二楚。唯一要提前定好的是命名规范和 FB 接口约定,不然时间一长照样乱。

登录 后参与回复