超级管理员
楼主
三菱的 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 可以在不接硬件的情况下验证。
- 加注释。三个月后你自己也记不清某段逻辑为什么这么写。
结构化不是为了好看,是为了让改动可控。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。