工业控制系统ICS的组件根据其所处的位置,可大致分为两类:控制中心设备和远程站点设备。控制中心设备位于系统控制中心,包括人机界面(HMI)、工程师工作站和历史记录服务器(Historian)。远程站点设备是驻留在生产现场,并直接连接到执行器和传感器的设备,其主要功能是监督和控制物理过程。尽管现场设备通常不与人直接交互,但由于生产现场通常不如控制中心安全,所以更有可能受到攻击和破坏。
1.1 控制中心设备人机界面HMI(有时也称为SCADA系统)是允许操作人员监视和控制过程的系统。人机界面HMI通常是在通用计算机上运行的纯软件应用程序,一般运行在微软Windows系列操作系统环境中。工业领域常见的HMI包括Wonderware、西门子的WinCC、罗克韦尔的RSView和Areva e-terra等。
历史记录服务器Historian是一个记录过程控制系统状态历史的数据库服务器。在某些情况下,如果Historian的功能足够强大,也可以作为控制系统的HMI使用。历史记录服务器Historian通常运行在主流的操作系统和通用硬件设备上,而且通常在企业网络中有镜像备份。
1.2 远程站点设备远程站点设备包括PLC、远程终端单元RTU、智能电子设备IED和电子继电器。虽然这些设备的功能有很大差异,根据其所处的位置和相似性,可以大致组合在一起。另外,这些设备中使用的硬件结构也有相似之处,一般提供模拟或数字输入/输出(I/O)和控制功能。它们直接从传感器读取数据并向执行器发送操作指令,某些情况下,它们与其他现场设备连接在一起。
本文中对设备进行了简化讨论。其实,上面提到的这些设备(PLC、RTU、IED和电子继电器)在控制系统对象关系模型(ORM)中都执行某个功能子集。例如,RTU通常是SCADA系统仅提供现场I/O控制的功能,通过现场I/O传感器进行采样,个别情况下,RTU会为执行器生成触发器。电子继电器将始终执行采样和触发功能。RTU将生成状态数据字段点,有时还会处理命令数据字段点。继电器将产生状态数据字段点,但不太可能处理命令的数据字段点。RTU一般没有本地控制功能,但继电器具有该功能。除了与传感器,执行器和上层控制功能通信外,PLC还具有重要的本地控制功能。这些功能看似相似,但在ORM中有很大不同。
2 典型控制系统架构图1显示了典型的控制系统架构。其中,运行HMI的普通商用PC通过标准网络协议(例如以太网)与PLC等现场设备通信。工程师站和历史数据库通常也是普通商用PC或服务器,通过标准网络协议与现场设备通信。现场设备使用Fieldbus等基于以太网的工控协议连接到其他现场设备。有些现场设备采用RS232或RS485等标准的串行总线通信协议与智能设备连接,有些现场设备直接与传感器、I\O设备和机器设备连接。
图1. 典型的分布式控制系统DCS架构
3 可编程逻辑控制器PLCPLC是一种现场设备,可以直接连接到传感器和执行器或其他现场设备。PLC通过逻辑程序进行本地控制(一般根据IEC 61131-3标准定义格式),并且能够通过控制系统通信协议从HMI接收控制命令和查询请求。PLC可以是模块化的,也可以组合成紧凑的固定形状,但两种类型基本上使用相同的底层组件。
3.1 PLC编程PLC可以使用IEC 61131-3中列出的语言之一进行编程:
梯形图(LD),图形化
功能框图(FBD),图形化
结构化文本(ST),文本形式
指令列表(IL),文本形式
顺序功能图(SFC),图形化
PLC在称为“扫描”的循环周期中运行,扫描包括输入、逻辑执行和输出。
3.2 通用模块化PLC架构图2显示了通用模块化PLC的基本架构。模块化PLC通过背板连接的各个组成模块。非模块化PLC将所有组件集成在一个电路板中。
图2. 通用模块化PLC架构
3.3 PLC模块交互在图2所示的通用PLC架构中,每个模块都有一个物理插槽,并为其分配了一系列背板地址。接口寄存器和缓冲区存储器在背板地址范围内公开。通过模块读取、写入寄存器或其他模块缓冲区等方式,实现消息的发送和接收。
3.4 处理器模块处理器模块是PLC的核心。它实现模块之间的协调,有时还用作背板仲裁器。如果其他模块不存储自己的配置,则处理器模块将在加电时对他们进行配置。
处理器模块解释并执行梯形逻辑,从通信模块或者I/O模块读取数值,维护操作状态,运行梯形逻辑的“扫描”周期并将输出值写入通信模块或I/O模块。
3.5 通信模块通信模块从处理器模块中取走通信协议相关的代码。它们从处理器模块取走时间敏感协议的交互数据,确保处理器模块处于其自己的时间敏感控制回路中。由于某些控制系统协议非常复杂,通信模块可能具有较强的处理能力,因此通信模块可能会像处理器模块一样复杂。
3.6 I/O模块I/O模块在低电压(3.3伏或5伏)、低电流(毫安级)控制逻辑和高电压(24伏以上)、高电流(安培级)过程控制之间转换信号。模拟I/O模块包含模数转换器(ADC)和数模转换器(DAC)。这些模块逻辑相对简单,智能硬件相对较少,其唯一的任务是在模拟信号和数字信号之间进行转换。
3.7 通用处理器PLC中常见的处理器架构有三种类型:
ARM架构(7或9系列)
摩托罗拉/飞思卡尔68000系列架构
IBM的Power架构
ARM架构由总部位于英国的ARM公司设计,该公司拥有超过1700名员工。ARM不制造芯片,而是设计和授权芯片的知识产权(IP)。(1)ARM架构广泛应用于嵌入式系统和设备,它在移动电话和个人数字助理(PDA)等消费电子产品中占有特别大的份额,市场份额超过90%。(2)ARM处理器可以以big-endian或little-endian模式运行,也可以使用ARM(32位)和Thumb(16位)指令集。ARM处理器通常是定制芯片系统(SOC)的一部分。
摩托罗拉(现为飞思卡尔)68000系列是一款32位复杂指令集(CISC)微处理器。它广泛用于嵌入式系统中。在2000年时,它曾是世界上的32位架构处理器,68000系列是big-endian。
Power架构包括PowerPC,是由IBM,Freescale,AMCC,Tundra和P.A. Semi等公司实施的精简指令集(RISC)微处理器架构。Power架构采用big-endian字节序列。
3.8 存储布局PLC通常使用非易失性闪存存储来存储处理器模块固件和梯形逻辑程序(或其他IEC 61131-3语言)。闪存存储器的地址映射到处理器的地址空间,其他板载设备的控制寄存器也是如此。RAM用于存储运行时状态。
3.9 嵌入式操作系统许多嵌入式操作系统被同时也是实时操作系统(RTOS)。要被视为RTOS,操作系统必须是“确定性延迟,或者保证坏的中断延迟或上下文切换时间”。
PLC经常使用商业RTOS实现,例如VxWorks、Windows CE或QNX。也可能使用自定义的“内部”操作系统。虽然目前还不常见,但一些制造商已开始在PLC上使用基于Linux的操作系统。