首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PLC Control with ST,V3版本学习笔记15—ST语言最佳实践建议!

PLC Control with ST,V3版本学习笔记15—ST语言最佳实践建议!

作者头像
Hello工控
发布2025-12-23 14:17:10
发布2025-12-23 14:17:10
800
举报
文章被收录于专栏:Hello工控Hello工控

ST最大的特点就是灵活!可以编写代码,允许自己定义标准程序,甚至是公司或者行业的标准。当然,特别重要的一点,可以将核心的工艺用ST语言封装成库。

国产很多PLC的厂商的工艺库都基本用的ST语言编写的,这些是他们的核心,对于精通工艺和PLC的朋友,ST是非常好的保护自己知识产权的工具之一。

ST编程允许程序员自定义语法,为确保程序可读性,必须遵循良好的编程规范。通过大小写字母缩进(用空格代替制表符)和代码排版可显著提升可读性。保持风格一致性便于其他开发者理解。

那么,这期介绍下面几点用ST语言编程的最佳实践建议:

No.1:文本缩进与空格使用

  • 缩进:在IFCASEFOR语句内使用2个空格(而非<TAB>),确保跨PLC开发工具兼容性。
  • 空格规则
    • 在命令、变量、语句、括号和值之间添加1个空格(例如:IF x = 1 THEN)。
    • 分号前不加空格(正确写法:x := 1;)。

No.2 代码空行分隔

  • 1-2个空行分隔代码段,避免视觉拥挤。
  • 禁止
    • 将代码与ELSE语句写在同一行。
    • 编写超出屏幕宽度的长代码行。

No.3 避免面条式代码(Spaghetti Code)

  • 典型问题:变量/函数命名混乱、滥用GOTO/JMP/EXIT等非结构化跳转。
  • 建议
    • 仅在故障诊断或调试时使用GOTO/JMP(部分PLC型号不支持跨平台移植)。
    • IF/CASE替代EXIT,但在FOR循环中可合理使用EXIT提前终止。

No.4 良好的程序结构

  • 模块化设计
    • 将大型程序拆分为功能模块函数,主程序仅负责调用。
    • 函数/功能块(FB)应具备可复用性,命名需直观(如Motor_Control)。
  • 代码量限制
    • 单个模块/函数不超过40行代码
    • 局部变量超过20个时,改用STRUCT或拆分子模块。

No.5 变量使用规范

  • 作用域优先级局部变量 > 全局变量(减少耦合)。
  • 优化建议
    • 使用STRUCT分组关联变量(如电机参数)。
    • 数组(ARRAY)按需定义长度,避免内存浪费。
    • 删除未使用的变量。

No.6 其他编程建议

  • 逻辑简化:用CASE替代复杂IF-THEN,减少ELSIF嵌套。
  • 循环控制
    • 避免无限循环(禁用DO-WHILE)。
    • FOR循环嵌套不超过3层
  • 数学运算:显式使用括号明确优先级(如(a + b) * c)。
  • 常量复用:重复数值定义为CONSTANT

No.7 互联网代码共享注意事项

  • 风险提示
    • 网络代码可能存在错误或版权问题(商用需授权)。
    • 调整他人代码的时间成本可能高于自主开发。
  • 企业合规
    • 未经许可禁止上传公司代码(可能违反《雇主与雇员法案》)。

No.8 面向对象编程(OOP)应用

  • IEC 61131-3标准支持
    • 关联变量封装为STRUCT(如电机属性)。
    • 状态机用ENUM定义(如Motor_State: (STOPPED, RUNNING))。
  • OOP元素
    • 方法(METHOD):对象行为函数。
    • 动作(ACTION):模块化程序单元。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hello工控 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ST编程允许程序员自定义语法,为确保程序可读性,必须遵循良好的编程规范。通过大小写字母、缩进(用空格代替制表符)和代码排版可显著提升可读性。保持风格一致性便于其他开发者理解。
  • 那么,这期介绍下面几点用ST语言编程的最佳实践建议:
  • No.1:文本缩进与空格使用
    • No.2 代码空行分隔
    • No.3 避免面条式代码(Spaghetti Code)
    • No.4 良好的程序结构
    • No.5 变量使用规范
    • No.6 其他编程建议
    • No.7 互联网代码共享注意事项
    • No.8 面向对象编程(OOP)应用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档