资讯 > 正文

一文搞懂|多维数组,在PLC和SCADA中你真会用吗?

发布时间:2026-07-03 作者:Vinoth Upendra Janardhanan


图片来源:CDM Smith
  多维数组为处理各类数据结构提供强大的灵活性,助力监控与数据采集(SCADA)系统、可编程逻辑控制器(PLC)和人机界面(HMI)系统,实现过程系统的分析与优化。
  多维数组有助于过程控制系统的数据处理与编程。过程控制行业已从人工控制演进到使用工业物联网(IIoT)设备与传感器收集海量数据,并通过数据分析来实现实时监控、业务运营优化、预见性维护需求以及整体性能提升。从工厂车间收集的这类海量数据会借助各类分析工具进行数据分析、建模、创建交互式仪表板、生成报告及历史记录。
  因能高效采集、分析与存储工厂内分布式传感器所产生的海量异构数据,多维数组成为实时处理海量数据的关键技术。基于先进过程控制方法与人工智能(AI)、机器学习(ML)技术,对海量数据进行深度解析,有助于改进和优化关键过程的运营水平,并实现工厂生产效率、质量和安全性的提升。
  利用多维数组优化过程控制的优势
  使用多维数组具有以下优势:
  •处理复杂的数据结构:多维数组擅长管理ML、计算机图形学等领域的复杂数据结构,其灵活性使之成为处理复杂数据的强效工具。
  •数据组织:多维数组提供结构化方法,便于数据元素的有序组织与操作。支持基于指定条件或范围从多维数组中筛选数据集,从而简化数据操作任务。
  •性能提升:因采用连续内存分配机制,访问多维数组元素通常更快。这使其适用于科学计算与数据分析等性能密集型操作。
  •简化迭代:通过嵌套循环可便捷遍历多维数组,实现对每个元素的高效访问与处理。
  理解SCADA系统如何运用多维数组处理海量数据集,可为终端用户或系统集成商优化工厂过程提供关键洞察。

▲图2:PLC中的一维REAL数组标签及数组元素。
  为PLC、HMI和SCADA数据传输定义数组
  在通过 SCADA 网络实现 PLC 到 HMI 的数据传输或 PLC 之间的数据传输时,创建包含同类数据的数据集会很有帮助。这种具有相同数据类型元素的集合,被称为数组。数组元素可为浮点数(REAL)、整数(INT)、双整数(DINT)、布尔值(BOOL)等类型。
  这些数组将多个值存储在一个变量中 —— 在 PLC 中该变量称为 “标签”,数组中的每个元素可通过其索引号进行引用,如下所示:
  SimpleTag[10]→SimpleTag[5, 6, 8, 2, 1,….4]
  数组变量SimpleTag[10]内存储10个值,索引号0至9分别对应各值。例如:访问"5"需使用SimpleTag[0],访问"8"使用SimpleTag[2],以此类推。
  此类数组称为一维数组。若将多个数组合并,则形成二维数组(数组的数组)。进一步嵌套则构成三维数组(数组的数组的数组)。以图1泵曲线为例,下文将探讨如何在 PLC、开放平台通信(OPC)服务器和 HMI 系统中配置此类多维数组。

▲图1:扬程-流量关系曲线及多转速性能曲线集。
  如何在PLC中配置数组?
  一维数组在需要将一组相似数据元素作为一个信息包通过网络传输时非常有用,例如在泵性能曲线中,100%转速下的"扬程"数据。创建数组标签,比为每个扬程值单独创建标签更简便。定义一维数组标签类似于创建独立的REAL、BOOL、INT、DINT标签,但分配数据类型时需设定数组长度。(注:本节基于罗克韦尔自动化的Studio 5000 Logix Designer PLC编程软件,但其概念仍适用于其它编程软件包。)
  P1_Hraw可存储51个值,各元素通过0至50的索引号来访问。如果访问数值88.85,需要使用P1_Hraw[0](0为索引号);访问数值40.677,需要使用P1_Hraw[50],依此类推。
  二维数组就是数组内嵌套数组的数值结构。在一维数组中,我们存储了100% 转速曲线的扬程值,但如果需要使用多个转速曲线(100%、95%、90% 等)的扬程值,创建一个二维数组标签比为每个转速值创建多个一维数组标签更简便。定义二维数组标签与创建一维数组标签类似,但在指定数据类型时,需在其后附加两个索引,每个索引可具有相同或不同的数组长度,如图3所示。

▲图3:PLC中的二维REAL数组标签及数组元素。
  三维数组本质上更复杂,在二维数组XY轴的基础上,增加了Z轴第三个维度。例如,在二维数组中,我们存储了一个泵在不同转速曲线(100%、95%、90%等)下的扬程值,但如果需要使用多个泵的扬程值,创建一个三维数组标签比为每个泵创建多个二维数组标签更简单。
  鉴于三维数组的复杂性,在本例中限定存储系统中存储最多15台泵的100%转速曲线与30%最低转速曲线的扬程值。三维数组标签定义方式与二维类似,但在指定数据类型时,需在其后附加三个索引,每个索引可具有相同或不同的数组长度,如图4所示。

▲图4:PLC中的三维REAL数组标签及数组元素。
  三维数组标签定义为System_Hfitn[索引1,索引2,数组长度],其中:
  •索引1范围0-1:0代表100%转速曲线值,1代表30%转速曲线值;
  •索引2范围0-14:代表系统中泵的数量;
  •数组长度:每个索引2元素存储270个值。
  PLC数组标签配置四要素
  在PLC中配置数组标签时,通常需考虑以下四个要素:
  •标签创建:最多可创建三维数组标签。无法创建四维及更高阶的数组标签。
  •标签内存:如果新数组标签的大小超过 1.5MB,会显示警告消息,但标签仍可创建。然而,如果大小超过 2MB,则无法在数据库中创建该标签,并会显示错误消息。
  •附加指令(AOI):一维、二维和三维数组标签只能创建为InOut参数,而不能作为 Input 或 Output 参数。如果需要将数组标签创建为本地标签,则只能是一维标签,不能是二维或三维标签。
  •用户自定义数据类型(UDT):在 UDT 中创建数组标签时,只能将一维数组标签创建为 UDT 的一部分。UDT 不支持二维和三维数组标签。
  在OPC服务器中配置数组
  OPC 服务器是一种软件服务器接口,支持软件程序(OPC 客户端,如 HMI/SCADA 软件)与工业硬件设备(如 PLC)之间的互操作性和数据交换。OPC 服务器的配置是通过在“项目”文件夹下添加“通道”来完成的。然后,每个通道可配置任意数量的“设备”。假设存在多个远程站点,每个站点有一个或多个 PLC,那么这些远程站点将成为通道,而这些远程站点中的 PLC 则是在这些通道下配置的设备,如图5所示。

▲图5:配置了通道与设备的OPC服务器软件示意图。
  PLC标签可自动填充至设备节点下,但数组标签需手动创建配置以供HMI/SCADA系统使用。
  配置项说明:
  •名称:用户定义的数组标签名称,该字段将成为 HMI/SCADA 系统数据库中的 “I/O 地址”。
  •地址:与在 PLC 中创建的数组标签名称相同,但使用“方括号和花括号” 表示索引。
  •数据类型:根据在 PLC 中创建数组的数据类型进行选择。如果 PLC 数组标签是 REAL [],则选择“浮点数组”;对于 DINT [],选择“长整数数组”;对于 INT [],选择“短整数数组”;对于 BOOL [],选择 “布尔数组” 等。
  一维数组标签可导出用逗号分隔的CSV文件,用于快速创建二/三维数组标签并导回OPC服务器。在 OPC 服务器中创建的一维数组标签可以导出为逗号分隔值(CSV)文件,然后可轻松用于创建二维和三维数组标签,并重新导入到 OPC 服务器中。
  在HMI/SCADA系统配置数组
  HMI系统数据库管理器提供数据存储检索机制,支持分析、可视化、报表及历史数据库功能。该系统的配置旨在建立与OPC服务器的通信,并将数组标签填充至HMI数据库。在 HMI 数据库中创建一维数组标签如图6所示。(注:本节基于GE Vernova 公司的iFIX HMI/SCADA自动化软件,但稍作调整即可适用于其它HMI软件。)
  · A_TAG:HMI系统内部使用的用户自定义标签名。
  · A_IOAD:I/O地址字段,直接映射至先前创建的OPC服务器数组标签。
▲图6:在HMI数据库中创建一维REAL数组标签。
  与一维数组标签类似,需要在 HMI 数据库中创建二维和三维数组标签,分别包含15和31个标签。
  数据库更新导入HMI系统后,这些数组标签即可用于图形对象动画与脚本的编写。HMI 系统中使用的非数组标签表示为:Fix32.FIX.Real_Tag.F_CV,其中 “Real_Tag”是非数组浮点变量标签。但对于数组标签,字段名“F_CV”会替换为 “F_Indexnumber”。“Indexnumber” 表示 OPC 服务器地址标签中花括号 {n} 内的元素数量(0 到 n-1)。
  HMI中非数组标签格式:Fix32.FIX.Real_Tag.F_CV(Real_Tag为非数组浮点类型的变量标签)作为数组标签,需将“F_CV”替换为“F_索引号”。“索引号”对应OPC服务器地址标签花括号{n}内的元素序号(0至n-1)。脚本也使用类似的标签格式,但可通过定义引用变量和对象定义来提取数组标签中的每个元素。
  用于处理复杂数据的多维数组
  从简单易管理的一维数组到多维数组,它们作为多功能数据结构,提供高效的信息存储和检索功能,以实现对复杂数据的表示与操作。此外,数组是各类高级分析工具(如预测分析、模式识别、图像处理和数值模拟)所使用的算法和计算方法的基础,这体现了它们在基本数据存储之外的重要意义。
  数组是工程领域中高效组织和处理数据的重要工具。了解数组的基本概念、研究其结构及相关操作,有助于理解多维数组在过程控制系统中的重要作用。不同 SCADA 系统软件的实际标签及其实现方式也不尽相同,在实际应用中需要注意。
  关键概念: 
  ■ 掌握PLC与SCADA系统中高效配置多维数组的方法。
  ■ 理解利用多维数组分析海量数据集的原理。
  思考一下: 
  您如何分析大型数据集?

标签:多维数组,PLC,SCADA,人机界面,过程控制系统,工业物联网,传感器

相关文章