文章

PLC与物联网集成简介

PLC与物联网集成简介

PLC与物联网集成简介

PLC简介

什么是PLC

PLC (Programmable Logic Controller) 即可编程逻辑控制器,是一种专门用于工业自动化控制的计算机设备。

PLC的”可编程”体现在哪里?

软件编程(主要方式)

PLC的”可编程”主要体现在软件编程上,而不是物理接线:

编程方式:

  • 梯形图 (Ladder Logic):类似电气原理图的图形化编程
  • 功能块图 (FBD):使用功能块进行逻辑编程
  • 指令列表 (IL):类似汇编语言的文本编程
  • 结构化文本 (ST):类似Pascal的高级语言编程
  • 顺序功能图 (SFC):用于顺序控制的图形编程

编程示例(梯形图):

1
2
3
4
5
6
7
8
    X0         Y0
───| |───────( )───
    |         |
    X1        |
───| |───────┤
    |         |
    X2        |
───| |───────┤

说明:当X0、X1、X2三个输入都为ON时,输出Y0为ON

物理连接(固定方式)

  • 硬件接线:传感器、执行器的物理连接是固定的
  • 模块配置:通过配置软件设置模块参数
  • 通信设置:配置网络地址、协议参数等

编程 vs 接线的区别

1
2
3
4
5
传统继电器控制:
物理接线 → 固定逻辑 → 难以修改

PLC控制:
软件编程 → 灵活逻辑 → 易于修改

PLC程序更新机制

程序存储位置

PLC程序不是写入固件或芯片,而是存储在程序存储器中:

1
2
3
4
5
6
7
8
9
10
11
12
┌─────────────────────────────────────────┐
│               PLC系统                   │
├─────────────────┬───────────────────────┤
│    CPU模块      │     扩展模块          │
│  (主控制器)     │  (DI/DO/AI/AO模块)    │
├─────────────────┼───────────────────────┤
│   程序存储器    │   数据存储器          │
│  (Flash/EEPROM) │  (RAM)               │
├─────────────────┼───────────────────────┤
│   固件程序      │   用户程序            │
│  (系统程序)     │  (应用程序)           │
└─────────────────┴───────────────────────┘

程序更新过程

  1. 编程软件:在PC上使用编程软件编写程序
  2. 编译下载:程序编译后通过通信接口下载到PLC
  3. 程序存储:程序存储在PLC的Flash或EEPROM中
  4. 程序执行:PLC运行时从存储器读取程序执行

存储层次结构

1
2
3
4
5
6
7
8
9
10
┌─────────────────────────────────────────┐
│               PLC存储器                 │
├─────────────────┬───────────────────────┤
│   系统固件      │   用户程序            │
│  (不可修改)     │  (可编程修改)         │
├─────────────────┼───────────────────────┤
│   操作系统      │   控制逻辑            │
│   通信协议      │   数据处理            │
│   系统功能      │   用户算法            │
└─────────────────┴───────────────────────┘

程序更新方式

在线更新:

  • PLC运行时可以更新程序
  • 支持热插拔,无需停机
  • 新程序立即生效

离线更新:

  • PLC停止运行时更新程序
  • 完全替换原有程序
  • 需要重新启动PLC

通信接口

  • 串口通信:RS232/RS485
  • 以太网:TCP/IP
  • USB接口:直接连接
  • 无线通信:WiFi/4G

PLC的主要特点

  • 工业级设计:适应恶劣工业环境,抗干扰能力强
  • 实时控制:能够进行毫秒级的实时控制
  • 可编程性:通过软件编程实现不同的控制逻辑
  • 模块化设计:可根据需要扩展各种功能模块

PLC的基本组成

1
2
3
4
5
6
7
8
9
┌─────────────────────────────────────────┐
│               PLC系统                   │
├─────────────────┬───────────────────────┤
│    CPU模块      │     扩展模块          │
│  (主控制器)     │  (DI/DO/AI/AO模块)    │
├─────────────────┼───────────────────────┤
│   电源模块      │   通信模块            │
│  (供电系统)     │  (网络通信)           │
└─────────────────┴───────────────────────┘

PLC的应用领域

  • 制造业:生产线控制、机器人控制
  • 电力系统:变电站控制、配电系统
  • 化工行业:过程控制、安全联锁
  • 建筑自动化:楼宇控制、HVAC系统
  • 交通系统:信号控制、电梯控制

PLC的工作原理

  1. 输入采集:从传感器、开关等设备采集信号
  2. 逻辑处理:根据程序执行控制逻辑
  3. 输出控制:控制执行器、电机等设备
  4. 通信交互:与其他系统进行数据交换

PLC = 工业级小型计算机系统

计算机系统的基本组成

PLC确实具备计算机系统的所有基本要素:

1
2
3
4
5
6
7
8
9
10
11
12
┌─────────────────────────────────────────┐
│            PLC计算机系统                │
├─────────────────┬───────────────────────┤
│   中央处理器    │     存储器系统        │
│   (CPU)        │  (程序+数据存储器)     │
├─────────────────┼───────────────────────┤
│   输入输出      │     通信接口          │
│   (I/O系统)     │  (网络+串口)          │
├─────────────────┼───────────────────────┤
│   操作系统      │     应用程序          │
│   (固件)       │  (用户程序)           │
└─────────────────┴───────────────────────┘

与普通计算机的对比

组件普通计算机PLC
CPU通用处理器(Intel/AMD)专用微控制器/处理器
内存RAM + 硬盘RAM + Flash/EEPROM
操作系统Windows/Linux实时操作系统(RTOS)
输入输出键盘/鼠标/显示器数字/模拟I/O模块
通信以太网/WiFi/USB工业通信协议
应用通用软件控制程序

PLC的计算机特性

1. 硬件架构

  • CPU:执行控制逻辑和数据处理
  • 存储器:程序存储(Flash) + 数据存储(RAM)
  • I/O系统:数字/模拟输入输出
  • 通信接口:网络和串口通信

2. 软件架构

  • 操作系统:实时操作系统(RTOS)
  • 应用程序:用户编写的控制程序
  • 系统服务:通信、诊断、监控功能

3. 计算机功能

  • 数据处理:数值计算、逻辑运算
  • 程序执行:顺序执行、循环控制
  • 通信功能:网络通信、协议转换
  • 存储管理:数据存储、程序管理

工业级设计特点

1. 环境适应性

  • 温度范围:-40°C ~ +70°C
  • 湿度范围:5% ~ 95% RH
  • 抗振动:符合工业标准
  • 抗干扰:EMC电磁兼容性

2. 可靠性设计

  • 冗余设计:CPU、电源、通信冗余
  • 故障诊断:自诊断和故障报警
  • 热插拔:支持模块热插拔
  • 看门狗:系统监控和自动复位

3. 实时性能

  • 扫描周期:毫秒级响应
  • 确定性:可预测的响应时间
  • 优先级:任务优先级管理
  • 中断处理:快速中断响应

与嵌入式系统的关系

PLC可以看作是专门用于工业控制的嵌入式系统

1
2
3
4
5
6
7
8
9
10
嵌入式系统家族:
┌─────────────────────────────────────────┐
│           嵌入式系统                    │
├─────────────────┬───────────────────────┤
│   消费电子      │     工业控制          │
│   (手机/平板)   │   (PLC/RTU/DCS)       │
├─────────────────┼───────────────────────┤
│   汽车电子      │     医疗设备          │
│   (ECU/BCM)     │   (监护仪/CT)         │
└─────────────────┴───────────────────────┘

PLC板子上的”设备”概念

  • PLC板子上的模块:是PLC的扩展部分,通过内部总线通信
  • 真正的设备:是连接在PLC外部的传感器、执行器等

以西门子PLC板为例。

1
2
3
4
5
6
7
8
9
┌─────────────────────────────────────────┐
│              西门子S7-1200 PLC          │
├─────────────────┬───────────────────────┤
│    CPU模块      │     扩展模块          │
│  (主控制器)     │  (DI/DO/AI/AO模块)    │
├─────────────────┼───────────────────────┤
│    S7协议       │   内部总线通信        │
│  (对外接口)     │  (Profibus/Profinet)  │
└─────────────────┴───────────────────────┘

PLC协议作用

相当于再套了一层协议。

  • 统一对外接口:让上层系统不需要了解每个外部设备的具体协议
  • 协议转换:发生在PLC内部,将各种设备协议转换为统一的数据格式
  • 数据封装:将不同协议的数据统一存储在PLC数据块中

PLC协议层次架构

第一层:设备层协议

  • Modbus RTU/TCP: 直接与PLC内部寄存器、线圈通信
  • S7 Protocol: 直接访问西门子PLC的数据块
  • MELSEC: 直接操作三菱PLC的内部数据
  • FINS: 直接控制欧姆龙PLC的功能

第二层:物联网协议层(统一封装层)

这一层将不同厂商的专有协议统一封装成标准化的物联网协议:

1
设备层协议 → PLC层协议 -> 通用物联网协议(MQTT等) → 物联网平台

PLC内部协议集成机制

协议支持方式

方式一:硬件模块集成

  • 通信模块:PLC通过扩展通信模块支持特定协议
  • 协议芯片:内置协议处理芯片
  • 固件支持:PLC固件中集成了协议栈

方式二:软件协议栈

  • 协议库:PLC内部运行协议处理程序
  • 协议转换:实时转换不同协议的数据格式

协议扩展方式

硬件扩展

1
2
3
4
5
PLC + 通信模块 = 支持新协议

例如:
西门子S7-1200 + CP1243-1 = 支持GPRS通信
三菱FX3U + FX3U-ENET-ADP = 支持以太网通信

协议转换器

1
2
3
4
5
设备 → 协议转换器 → PLC

例如:
CAN设备 → CAN转Modbus转换器 → 支持Modbus的PLC
EtherCAT设备 → EtherCAT转Profibus网关 → 支持Profibus的PLC

协议支持的影响

  1. PLC内部确实集成了多种设备协议,这是通过硬件模块、固件或软件协议栈实现的

  2. 如果PLC不支持某种协议,就无法直接连接使用该协议的设备,需要:
    • 使用协议转换器
    • 更换支持该协议的PLC
    • 使用支持该协议的通信模块
  3. 协议支持能力是选择PLC的重要考虑因素,需要根据现有设备和未来需求来选择

  4. 现代PLC通常支持主流协议,但特殊协议可能需要额外投资

因此,不同厂商的PLC在协议支持上会有差异,有些项目需要选择特定品牌的PLC来满足协议兼容性要求。

本文由作者按照 CC BY 4.0 进行授权