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) │
├─────────────────┼───────────────────────┤
│ 固件程序 │ 用户程序 │
│ (系统程序) │ (应用程序) │
└─────────────────┴───────────────────────┘
程序更新过程
- 编程软件:在PC上使用编程软件编写程序
- 编译下载:程序编译后通过通信接口下载到PLC
- 程序存储:程序存储在PLC的Flash或EEPROM中
- 程序执行: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的工作原理
- 输入采集:从传感器、开关等设备采集信号
- 逻辑处理:根据程序执行控制逻辑
- 输出控制:控制执行器、电机等设备
- 通信交互:与其他系统进行数据交换
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
协议支持的影响
PLC内部确实集成了多种设备协议,这是通过硬件模块、固件或软件协议栈实现的
- 如果PLC不支持某种协议,就无法直接连接使用该协议的设备,需要:
- 使用协议转换器
- 更换支持该协议的PLC
- 使用支持该协议的通信模块
协议支持能力是选择PLC的重要考虑因素,需要根据现有设备和未来需求来选择
- 现代PLC通常支持主流协议,但特殊协议可能需要额外投资
因此,不同厂商的PLC在协议支持上会有差异,有些项目需要选择特定品牌的PLC来满足协议兼容性要求。
本文由作者按照 CC BY 4.0 进行授权