15. PLC的编程语言(文本化语言)

83 阅读2分钟

4. 结构化文本 - Structured Text (ST)

  • 描述:一种高级编程语言,语法类似于Pascal或C语言。非常强大和灵活。
  • 适用场景:复杂的数学计算、算法、数据处理。
  • 举例:模拟量温度PID控制(简化版)
    • 控制要求:读取温度值,与设定值比较,通过PID运算输出一个控制信号。
    • 字符画示意图(代码框):

+-----------------------------------------+ | // 温度PID控制程序 | | VAR | | ActualTemp : REAL; //实际温度 | | SetPoint : REAL := 80.0; //设定温度 | | Output : REAL; //输出值 | | END_VAR | | | | ActualTemp := AI_Temp; //读取模拟量输入| | | | // 简单的比例控制 | | IF ActualTemp < SetPoint THEN | | Output := (SetPoint - ActualTemp) * 0.5;| | ELSE | | Output := 0.0; //达到温度,停止加热 | | END_IF; | | | | AQ_Heater := Output; //输出到模拟量 | +-----------------------------------------+

    • 程序解释:
      1. 这是一个简化的控制逻辑,并非完整的PID。
      2. 程序读取实际温度 ActualTemp。
      3. 通过 IF...THEN...ELSE语句进行判断:如果实际温度低于设定温度,则输出一个与温差成正比的信号(比例控制);否则,输出0。
      4. 最后将计算结果 Output送给模拟量输出地址 AQ_Heater(如加热器)。

5. 指令表 - Instruction List (IL)

  • 描述:一种低级的、类似于汇编语言的编程语言。由一系列指令组成。
  • 适用场景:现在已很少使用,主要用于老系统维护或对代码大小有极端要求的场合。
  • 举例:实现基本的与逻辑
    • 控制要求:当I0.0和I0.1都为1时,让Q0.0输出1。
    • 字符画示意图(代码列表):

+----------------+ | LD I0.0 | // 加载(读取)I0.0的值到当前结果 | AND I0.1 | // 将当前结果与I0.1的值进行“与”操作 | ST Q0.0 | // 将当前结果存储(输出)到Q0.0 +----------------+

    • 程序解释:
      1. LD I0.0:将输入I0.0的状态(0或1)载入一个无形的“累加器”。
      2. AND I0.1:将“累加器”中的值与I0.1的值进行逻辑“与”操作,结果放回“累加器”。只有两者都为1,结果才为1。
      3. ST Q0.0:将“累加器”的最终结果送到输出Q0.0。

总结

语言类型优点典型应用举例核心
梯形图 (LD)图形化直观易懂,电气背景友好逻辑控制、互锁启保停电路,自锁
功能块图 (FBD)图形化信号流清晰,易于模块化过程控制、信号处理AND块+ 定时器
顺序功能图 (SFC)图形化顺序流程结构极清晰顺序机械、工艺流程步和 转移条件
结构化文本 (ST)文本化强大灵活,适合复杂算法计算、算法、数据处理IF-THEN-ELSE判断
指令表 (IL)文本化代码紧凑遗留系统、特定优化LD, AND, ST指令