Skip to content

1.3 PLC的工作原理

本节将介绍PLC的工作方式和扫描周期

学习目标

  • 理解PLC的工作方式
  • 掌握PLC扫描周期的概念
  • 了解输入/输出刷新机制

1. PLC的工作方式(循环扫描)

1.1 循环扫描工作方式

PLC采用循环扫描的工作方式,不断地重复执行一系列固定的操作步骤。这种工作方式是PLC区别于普通计算机的重要特征。

PLC循环扫描示意图:

    ┌─────────────────────────────────┐
    │                                 │
    ▼                                 │
┌───────────┐                         │
│ 内部处理  │ ← 自检、通信服务等      │
└─────┬─────┘                         │
      ▼                               │
┌───────────┐                         │
│ 输入采样  │ ← 读取输入端子状态      │
└─────┬─────┘                         │
      ▼                               │
┌───────────┐                         │
│ 程序执行  │ ← 执行用户程序          │
└─────┬─────┘                         │
      ▼                               │
┌───────────┐                         │
│ 输出刷新  │ ← 更新输出端子状态      │
└─────┬─────┘                         │
      │                               │
      └───────────────────────────────┘
              一个扫描周期

1.2 与传统计算机的区别

特性普通计算机PLC
执行方式等待输入,响应执行循环扫描,周期执行
输入处理实时中断响应集中采样,批量处理
输出更新即时输出周期性统一输出
程序执行按需执行全部程序每周期都执行

2. 扫描周期的组成

2.1 什么是扫描周期?

扫描周期(Scan Cycle)是指PLC完成一次完整扫描所需要的时间,包括内部处理、输入采样、程序执行和输出刷新四个阶段。

扫描周期时间构成:

┌─────────────────────────────────────────────────────────┐
│                    一个扫描周期                          │
├──────────┬──────────┬────────────────┬─────────────────┤
│ 内部处理 │ 输入采样 │    程序执行    │    输出刷新     │
│   T1     │    T2    │      T3        │       T4        │
├──────────┴──────────┴────────────────┴─────────────────┤
│                                                         │
│ 扫描周期 = T1 + T2 + T3 + T4                           │
│                                                         │
│ 典型值:几毫秒到几十毫秒                                │
└─────────────────────────────────────────────────────────┘

2.2 影响扫描周期的因素

因素影响说明
CPU性能CPU速度越快,扫描越快
程序长度程序越长,执行时间越长
指令类型复杂指令比简单指令耗时
I/O点数I/O越多,采样和刷新时间越长
通信任务通信越频繁,内部处理时间越长

2.3 扫描周期的典型值

不同规模PLC的扫描周期:

小型PLC:    ████████████  10-50 ms
中型PLC:    ██████        5-20 ms  
大型PLC:    ███           1-10 ms
高性能PLC: █             0.1-1 ms

注:以上为执行1K步程序的典型值

3. 输入采样阶段

3.1 输入采样过程

在输入采样阶段,PLC会一次性读取所有输入端子的状态,并将这些状态存储到输入映像寄存器中。

输入采样过程:

  外部输入设备              PLC内部
┌─────────────┐         ┌─────────────────┐
│   按钮 SB1  │────────▶│ I0.0 = 1       │
├─────────────┤         ├─────────────────┤
│   按钮 SB2  │────────▶│ I0.1 = 0       │
├─────────────┤         ├─────────────────┤  输入映像
│  传感器 S1  │────────▶│ I0.2 = 1       │  寄存器
├─────────────┤         ├─────────────────┤
│  传感器 S2  │────────▶│ I0.3 = 0       │
├─────────────┤         ├─────────────────┤
│    ...      │────────▶│ ...            │
└─────────────┘         └─────────────────┘


                        程序执行时使用

3.2 输入映像寄存器

  • 作用:存储输入端子状态的"快照"
  • 更新时机:仅在输入采样阶段更新
  • 程序访问:程序执行时读取的是映像寄存器,而非实际端子

3.3 输入延迟问题

由于采用集中采样方式,输入信号的变化可能存在延迟:

输入延迟示意:

外部信号:  ─────┐     ┌─────────────────
                 │     │
                 └─────┘

                   │ 信号变化时刻
                   
采样时刻:    ①        ②        ③
              ↓        ↓        ↓
              
PLC识别:         ────┐         ┌────
                      │         │
                      └─────────┘

最大延迟 = 1个扫描周期

结论:输入信号的持续时间必须大于一个扫描周期,否则可能被PLC"漏读"。


4. 程序执行阶段

4.1 程序执行顺序

PLC按照从上到下、从左到右的顺序逐条执行用户程序。

梯形图程序执行顺序:

    第1步 ──▶ 第2步 ──▶ 第3步
    ──┤├──────┤├────────( )──   ← 第1条指令
    
    第4步 ──▶ 第5步 ──▶ 第6步
    ──┤├──┬───┤├────────( )──   ← 第2条指令

    第7步 │
    ──┤├──┘
    
    第8步 ──▶ 第9步
    ──┤├──────────────────( )──   ← 第3条指令
    
    执行方向:从上到下,从左到右

4.2 运算结果存储

程序执行时:

  • 读取输入映像寄存器获得输入状态
  • 读写内部存储器(M、D等)
  • 运算结果写入输出映像寄存器
程序执行时的数据流:

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   输入映像   │────▶│             │────▶│   输出映像   │
│   寄存器    │     │   CPU执行   │     │   寄存器    │
└─────────────┘     │   用户程序  │     └─────────────┘
                    │             │
┌─────────────┐     │             │     ┌─────────────┐
│  内部存储器  │◀───▶│             │◀───▶│  内部存储器  │
│  (M、D等)  │     │             │     │  (T、C等)  │
└─────────────┘     └─────────────┘     └─────────────┘

4.3 同一周期内的逻辑关系

重要概念:在同一个扫描周期内,输出线圈的状态可能会多次变化,但只有最后一次的状态才会被输出。

示例程序:

网络1:  I0.0
    ────┤├──────────────────(Q0.0)──  Q0.0 = 1

网络2:  I0.1
    ────┤├──────────────────(Q0.0)──  Q0.0 = 0

假设 I0.0=1, I0.1=1:
执行网络1后:输出映像 Q0.0 = 1
执行网络2后:输出映像 Q0.0 = 0  ← 最终值

实际输出 Q0.0 = 0(以最后赋值为准)

5. 输出刷新阶段

5.1 输出刷新过程

在输出刷新阶段,PLC将输出映像寄存器中的内容一次性传送到输出端子,驱动外部设备。

输出刷新过程:

     PLC内部                  外部输出设备
┌─────────────────┐         ┌─────────────┐
│ Q0.0 = 1       │────────▶│  指示灯 L1  │ 亮
├─────────────────┤         ├─────────────┤
│ Q0.1 = 0       │────────▶│  指示灯 L2  │ 灭
├─────────────────┤  输出   ├─────────────┤
│ Q0.2 = 1       │────────▶│  电机 M1    │ 运行
├─────────────────┤  刷新   ├─────────────┤
│ Q0.3 = 0       │────────▶│  电磁阀 V1  │ 关闭
├─────────────────┤         ├─────────────┤
│ ...            │────────▶│  ...        │
└─────────────────┘         └─────────────┘
  输出映像寄存器              物理输出端子

5.2 输出延迟

与输入类似,输出也存在延迟:

输出延迟分析:

程序执行:Q0.0=1

    │ 等待本次扫描结束

输出刷新:端子输出高电平

    │ 输出电路响应时间

外部设备:电机开始转动

总输出延迟 = 等待时间 + 输出电路响应时间
           ≤ 1个扫描周期 + 输出模块延迟

6. 完整扫描周期示例

6.1 实例分析

控制要求:按下启动按钮SB1,电机M1运行

I/O分配:
输入:I0.0 ─ 启动按钮SB1
输出:Q0.0 ─ 电机M1

梯形图程序:
    I0.0
────┤├──────────────────(Q0.0)──

6.2 扫描过程详解

完整扫描周期过程:

时刻T0:用户按下SB1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【第N个扫描周期】(按钮还未被采样)

1. 内部处理
   └─ 自检、通信处理

2. 输入采样
   └─ 读取输入:I0.0 = 0(还是旧状态)

3. 程序执行
   └─ I0.0(0) → Q0.0 = 0

4. 输出刷新
   └─ Q0.0端子 = 0,电机不运行

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【第N+1个扫描周期】(按钮被采样到)

1. 内部处理
   └─ 自检、通信处理

2. 输入采样 ★
   └─ 读取输入:I0.0 = 1(采样到新状态)

3. 程序执行
   └─ I0.0(1) → Q0.0 = 1

4. 输出刷新 ★
   └─ Q0.0端子 = 1,电机开始运行

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

7. 立即输入/输出

7.1 概念

为了解决扫描周期带来的延迟问题,很多PLC提供了立即输入立即输出指令。

7.2 立即输入

立即输入:不经过输入映像,直接读取输入端子

普通输入:I0.0 ──▶ 读取输入映像寄存器
立即输入:I0.0:P ──▶ 直接读取输入端子(西门子)
         I0.0/I ──▶ 直接读取输入端子(三菱)

7.3 立即输出

立即输出:不等待输出刷新,直接更新输出端子

普通输出:Q0.0 ──▶ 写入输出映像,等待刷新
立即输出:Q0.0:P ──▶ 立即更新输出端子(西门子)
         Y0/I ──▶ 立即更新输出端子(三菱)

7.4 使用注意事项

类型优点缺点
普通I/O系统稳定,抗干扰有延迟
立即I/O响应快,无延迟增加扫描时间,可能影响稳定性

建议:仅在对响应时间有严格要求时使用立即I/O。


本节小结

PLC工作原理要点:

┌────────────────────────────────────────────────────┐
│  1. 循环扫描:PLC不断重复执行固定的操作步骤        │
│                                                    │
│  2. 四个阶段:内部处理→输入采样→程序执行→输出刷新  │
│                                                    │
│  3. 集中采样:输入信号在每个周期开始时统一读取     │
│                                                    │
│  4. 集中输出:输出信号在每个周期结束时统一更新     │
│                                                    │
│  5. 映像寄存器:程序操作的是映像,不是实际端子     │
│                                                    │
│  6. 扫描周期:完成一次完整扫描的时间(毫秒级)     │
└────────────────────────────────────────────────────┘

思考题

  1. 为什么PLC要采用循环扫描的工作方式?
  2. 如果一个输入信号的脉冲宽度小于一个扫描周期,会发生什么?
  3. 在同一个程序中,如果对同一个输出线圈赋值两次,最终输出是什么?
  4. 什么情况下需要使用立即输入/输出?

← 上一节:1.2 PLC的发展历史 | 下一节:1.4 PLC的硬件结构 →

本教程由 AI (Claude Opus 4.5) 生成,仅供学习参考