6.2 控制策略编程:IEC 61131-3


6.2 控制策略编程:IEC 61131-3

本节摘要:IEC 61131-3 是工业控制编程的国际标准,定义了五种语言:梯形图、功能块图、顺序功能图、指令表、结构化文本。本节逐一讲清每种语言的表达方式与适用场景,说明"语言选择"其实是"问题类型"的映射,并给出混合编程的实务建议。

为什么需要一门标准

没有标准的年代,每家厂商一套编程语言,工程师换品牌要重学,方案不可移植。一九九三年发布的 IEC 61131-3(后续修订为 IEC 61131-10 等)统一了语言集:不管哪家控制器,五种语言的表达逻辑一致,工程师的核心技能可迁移。DCS 侧最常用的是功能块图(连续控制)与顺序功能图(批次与联锁逻辑),梯形图在 PLC 混合项目中常见,结构化文本负责计算密集的逻辑,指令表已经边缘化(多数场合仅作为中间代码存在)。

梯形图 LD:继电器逻辑的血脉

梯形图长得像继电器控制电路图:左右两条母线,中间触点与线圈串联并联。它诞生于电气工程师的阅读习惯——常开触点、常闭触点、线圈、锁存,全是继电器盘时代的词汇。一个简单的启保停逻辑:按下启动按钮(常开触点闭合),线圈得电,其辅助常开触点并联在启动按钮两端实现自保持;按下停止按钮(常闭触点断开),回路断开。电气背景的工程师看梯形图如同看母语。DCS 里梯形图用于开关量联锁与设备启停逻辑;但在连续调节场景,梯形图的表达力远不如功能块图。

功能块图 FBD:DCS 的母语

功能块图是数据流图:每个功能块有输入输出引脚,块与块用线连接,数据沿线流动。一个 PID 回路就是"模拟量输入块 → PID 块 → 模拟量输出块"的连线,串级就是两个 PID 块的级联。第四章讲的全部回路结构——前馈、比值、分程、三取二表决——在 FBD 里都是直观的块图,与教科书的方块图几乎一一对应。这是 DCS 控制组态的主力语言:连续控制的表达,没有比数据流图更自然的方式

标准功能块库覆盖了绝大多数需求:PID 及其变体(带前馈、带外部复位)、选择器(高选低选三取二)、限幅与速率限制、计时器计数器、累积器、与或非逻辑。自定义功能块(把常用结构封装成一块)是复用的关键手段——比如把"双通道测量取均值加坏质量剔除"封装成一个高可靠性输入块,全厂复用。

顺序功能图 SFC:为批次而生

批次过程(反应进料—升温—反应—降温—出料)本质是状态机,SFC 直接表达状态机:(做什么)与转换(何时进入下一步)交替排列,支持并行分支与选择分支。每一步内嵌动作(调用某段 FBD 或 ST 逻辑),转换条件是布尔表达式(如"温度达到 80 摄氏度且保持五分钟")。SFC 的可读性对工艺人员极其友好——工艺流程图与 SFC 图几乎同构,评审联锁逻辑时工艺工程师能真正参与。制药、食品、精细化工的批次控制标准(ISA-88)就以 SFC 为表达骨架。

结构化文本 ST:计算密集处的高地

结构化文本是类 Pascal 的高级文本语言,有赋值、条件、循环、函数。它适合标准图形语言笨拙的场景:复杂计算(热焓换算、物料平衡)、数据结构遍历(批量处理一百个罐的状态)、字符串处理(报表逻辑)、自定义算法(特殊的滤波器)。代价是可读性依赖注释纪律——一段没人注释的 ST 代码,三年后连作者本人都要逆向工程。实务建议:ST 块保持短小(几十行内),入口出口接口清晰,函数级注释,并纳入重点审查(6.1 节说过,自定义代码是审查重点)。

五种语言适用场景对照

语言 形态 最适合 典型场景 注意点
梯形图 LD 继电器电路图 开关量逻辑 设备启停、互锁 逻辑复杂后难读
功能块图 FBD 数据流图 连续控制 回路、串级、表决 图幅管理,分层封装
顺序功能图 SFC 状态机 批次与顺控 反应批次、开停车 步内动作别塞太满
结构化文本 ST 高级文本 复杂计算 换算、批量处理 注释纪律与审查
指令表 IL 汇编式文本 演示与遗留 已边缘化 新项目不建议

混合编程:一个开停车逻辑的分工实例

以某反应釜的开停车为例看混合分工:SFC 管主干——"初始检查 → 氮气置换 → 进料 → 升温 → 反应保温 → 出料"六步,每步的进入条件一目了然;每步内部的动作分两类——连续调节交给 FBD(温度串级回路全程在线,接受 SFC 给出的各阶段设定值),联锁与设备联动的细碎逻辑用 LD 或 ST 补齐(比如"搅拌电机运行且温度高于 60 度时禁止打开人孔")。三种语言各占其位:SFC 管时间轴,FBD 管连续量,LD 管开关量。评审时工艺人员看 SFC 图就能确认顺序对不对,自控工程师下钻到 FBD 与 LD 核对细节——语言的分工就是评审的分工

⚠️ 跨语言陷阱:不同语言访问同一个变量时要分清"读"与"写"的所有权。SFC 与 FBD 都去写同一个回路的给定值,实际行为取决于执行顺序,排查极难。纪律是:每个运行变量只有一个写者,跨语言只读共享、指令经显式接口传递。

本节要点回顾

  • 五种语言:LD 继电器血脉、FBD 数据流、SFC 状态机、ST 高级文本、IL 已边缘化
  • FBD 是 DCS 母语:回路结构在 FBD 中与教科书方块图同构;自定义功能块是复用关键
  • SFC 为批次而生:步与转换直接表达状态机,工艺人员可参与评审
  • ST 管计算密集:短小、接口清晰、注释纪律、重点审查
  • 混合分工:SFC 管时间轴、FBD 管连续量、LD 管开关量,语言分工即评审分工
  • 单写者纪律:每个运行变量只有一个写者,跨语言只读共享

方案写好了、逻辑跑起来了,操作员每天面对的那块屏幕怎么设计?下一节讲人机界面。

IEC 61131-3 五种语言的选用速查

语言 形态 适用场景 DCS 中的地位
FBD 功能块图 方块连线 连续量回路、模拟量计算 DCS 主力首选
LD 梯形图 继电器触点 联锁逻辑、顺序步 逻辑量主力
ST 结构化文本 类 Pascal 复杂计算、数据处理 补充手段
SFC 顺序功能图 步-转移图 批量过程顺序控制 批量必备
IL 指令表 汇编风格 已逐步淘汰 少用

选用口诀:连续用 FBD、逻辑用 LD、批量用 SFC、复杂算用 ST。四种语言可在同一工程混用——按问题性质选语言而不是按个人习惯,这是组态规范化的第一步。

一个批量过程的 SFC 组态示例

以间歇反应釜的加料-反应-排放顺序为例走一遍 SFC 思维。初始步:确认釜空、阀门全关、搅拌停。步 1 加料:开进料阀,转移条件为液位到设定值——转移动作是关阀并做加料量确认。步 2 升温:开蒸汽阀启动搅拌,转移条件为釜温到反应温度。步 3 反应保持:计时两小时(转移条件为时间),期间温度由 PID 回路维持。步 4 冷却:关蒸汽开冷却水,转移条件为温度降到出料温度。步 5 排放:开出料泵与阀,转移条件为釜空信号。每步的动作清单(该步激活时做什么)与转移条件(何时去下一步)写清楚,整个顺序就变成了可组态的图形——这就是 SFC 把工艺流程直接翻译成控制程序的魔力,也是批量控制(IEC 61512 配方模型)的底层语言。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U