本文图片来源:CEChina.cn
将结构化查询语言(SQL)用于自动化并不是什么新鲜事。不同系统的后台使用SQL数据库已经有几十年了,但即使在今天,仍有一些人对将SQL与监控和数据采集(SCADA)等工业自动化软件集成在一起犹豫不决。随着越来越多的SCADA软件用户感受到在当今这个以数据为驱动力的互联世界中与时俱进的压力,SQL受到了更多的关注。
数据库通常是任何控制系统中最重要的组件之一。经过多年的发展,有一点越来越清楚,使用与开放数据库(如SQL)集成的控制系统比使用专有数据库的系统更具优势,这就是为什么SQL和工业应用平台的结合如此有价值的原因。
01 SQL编程语言
根据美国国家标准学会(ANSI)的定义,SQL是在关系数据库管理系统(RDBMS)中管理数据的标准编程语言,也是关系数据库中使用最广泛的语言之一。它最初是在20世纪70年代为IBM开发的,近50年来一直用于在SQL数据库中存储和管理数据。
它的主要功能是使用SQL语句,“查询”或快速高效地询问从少量到大量数据的问题,用户可以在数据库中存储、更新、检索、搜索或删除特定数据。
软件工程师使用SQL语言的各种组件(如标识符、变量和搜索条件)构建SQL查询,以形成正确的语句。他们还可以将SQL查询保存为“存储程序”以便日后使用,这样用户就不必重写经常使用的查询。这就是SQL如此高效的一部分原因,即使是专有数据库也经常使用同样的基本结构。
02 SQL关系数据库
虽然所有数据库都存储数据以供将来或持续使用,但数据库的类型很多,且因结构而异。使用最广泛的数据库类型被称为关系数据库。在关系数据库中,每个数据点都与其周围的数据相关,其功能是组织和检索关系数据。
“SQL数据库是数据存储和访问检索最重要的技术之一。” Inductive Automation首席技术架构师Kevin McClusky说。
用户可以认为SQL数据库有两个主要功能:由SQL执行的访问检索;以及使用数据库引擎执行的存储。SQL数据库将数据组织成文件和特定存储区域,或者保存在物理硬盘,或者保存在基于云的SQL数据库的在线服务器上。
SQL数据库的结构类似于具有行、列和单元格的Excel表,这使得组织和检索任何数量的数据都很容易。这种结构对于实时和时间序列(或历史)数据特别有用。它有助于将与其它数据相关的数据,按照通用特性组织到表中,以显示事件或数据集的视图。
SQL数据库最强大的功能之一,是它能够“查询”或询问数据并与之建立关系。SQL查询允许用户执行分析、回答复杂问题、操作和聚合数据,而无需许多步骤,因此可以从多个表中检索数据,将记录与常见字段类型关联,利用数据中的关系,精确控制数据的去向或排除数据。
例如,一家公司可能有和员工相关的两个不同表格,一个表格用于员工的个人数据,如姓名、地址和出生日期,另一个表格则包含每个员工工资的详细信息。虽然雇员表和工资表分别存在于数据库中,但它们的数据可以相互关联,并可能一起检索。
这种关联是通过表格中唯一的标识符(通常被称为主键)来实现的,该标识符可以在另一表格中引用。例如,员工唯一的ID号可以是员工表中的主键,而该ID可以用作工资表中的外部标识符(通常被称为外键)。这使得员工表中员工的数据,可以通过其唯一员工ID,与工资表中的工资数据相关联。创建这种关联或关系的能力,是这类数据库被称为关系数据库的原因。
通过在表之间创建这些关系,可以编写查询来聚合多个表的汇总结果,例如按部门列出员工工资。如果SQL数据库连接到车间,用户可以实时找到一个房间或多个房间的平均温度、温度控制机器何时或是否停机或工作了多长时间、多个停机事件数据集之间的标准偏差等等。
SQL查询可以是简单的:只需要一两行代码来查询一个表;也可以是极其复杂的:需要数百行代码来查询多个表。不过,一般来说,查询越短、越简洁越好。McClusky说:“这些查询的复杂程度取决于你的实际需要。”SQL查询的范围和灵活性,是关系型SQL数据库成为数据检索、存储和管理的强大而通用工具的部分原因。
03 SQL的四个主要优势
每年的技术趋势此起彼伏。然而CONTROL ENGINEERING China版权所有,在出现近50年后,SQL仍然很强大。以下是SQL表现持续优秀的四个主要原因:简单易用、可扩展性、可访问性及其多种选择。
1.简单易用
SQL是经过高度开发的,而且非常容易学习。学习SQL有很多免费资源,有很多人使用SQL,因此找到熟悉SQL的IT人员或工程师通常不是问题。此外,用户只需要了解一些基本操作即可检索、更新、删除或聚合数据。
2.可扩展性
与许多专有数据库不同,SQL数据库费用并不高,可以处理大量数据www.cechina.cn,这使其易于扩展到任何业务。一些最流行的SQL数据库甚至可以免费使用,比如MySQL和Postgres。
3.可访问性
像SQL数据库这样的开放标准技术,对每个人都是可用的,而且很容易访问,这和专有技术不同,专有技术通常需要高昂的付费,而且通常很难从中提取或迁移数据。用户还可以将SQL数据库与许多其它技术集成在一起,不必拘泥于单一的供应商,也不必使用受限的定制数据库。
4.多种选择
“我认为它仍然如此强大的另一个原因,是有很多不同的选择。SQL是一种标准的查询语言,有多个不同的数据库供应商,您不必被迫使用某一种类型的SQL数据库,可以有很多选择。”McClusky说。
在21世纪初,将SQL数据库与历史数据库相结合并不常见,这导致了在处理超大量数据时出现问题。为了帮助解决这个可扩展性问题www.cechina.cn,同时继续使用SQL数据库的一些基本结构,软件工程师在1998年开发了NoSQL,然后在2011年开发了NewSQL。
不过,当初NoSQL和NewSQL着手解决的可扩展性问题,现在已经比较少见,因为存储空间更便宜,而且您可以将SQL数据库与历史记录结合起来创建高性能数据库。近年来,NoSQL越来越受欢迎。MongoDB和亚马逊网络服务的DynamoDB是目前最受欢迎的两个NoSQL数据库。
04 收集和存储时间序列数据
SQL数据库的另一个主要好处是,它们可以帮助用户从企业的时间序列数据中获得更多价值。时间序列数据是以连续的时间间隔加上时间戳的数据序列。这些数据通常存储在数据库中,检索后以表格或图表的形式显示任何类型的和时间进度相关的数据,如温度、重量、体积等。
一些人认为,时间序列数据只对确定特定时间点的单个数据点的状态、跟踪特定趋势有用,在其它方面则用处不大。然而CONTROL ENGINEERING China版权所有,时间序列数据实际上是从连接到SCADA系统的监控机器和过程中获得的最有价值的数据。时间序列数据可能有助于挽回因停机而造成的数百万美元损失,为提高能源效率制定更详细的计划等等。
然而CONTROL ENGINEERING China版权所有,许多企业要么没有收集数据的手段,要么没有存储和检索数据的应用,因此它们并不收集时间序列数据。存储时间序列数据基本上有三种选择:可编程逻辑控制器(PLC)、专有过程历史数据库、或者SQL数据库。
将数据存储在PLC中不是一个好的解决方案。PLC存储的数据越多,其效率就越低,不可避免地会降低整体运行速度。如果没有连接到数据库,在PLC中检索所存储的数据也很困难。
过程历史数据库比PLC更好,但它们可能非常贵。它们也不像SQL数据库那样通用,并且不允许用户轻松升级数据库。
McClusky说:“你可能会找到一个很好的解决方案,但这个解决方案只能来自特定供应商的生态系统中,而对于未来的升级不会有任何好处。”
对于存储时间序列数据来说,SQL数据库通常是最佳选择。他们能够为SCADA系统处理大量的时间序列数据,将时间序列数据转换为整个组织都能读取的简单格式,从而丰富了时间序列数据。
许多大型企业系统已经使用SQL数据库很多年了。这些数据库有时是IT数据库,其中包含来自公司其它部门的信息;有时这些数据库与企业资源规划(ERP)软件有关。客户关系管理(CRM)和MES软件也有使用SQL数据库的悠久历史。将SCADA系统或应用程序连接到SQL数据库,用户可以快速有效地共享这些信息,并使其它系统更容易访问这些数据。
一旦进入SQL数据库,时间序列数据就可以描述生产的方方面面www.cechina.cn,或者揭示看不见的趋势,为企业节省一大笔财富。通过叠加这些信息,用户可以实时查看每个系统如何影响另一个系统,并找到提高效率和盈利能力的新方法。
例如,假设一家钣金制造商注意到,尽管两条生产线都运行良好,但其中一条生产线材料的消耗速度比另一条快。在检查了与每条生产线的材料库存相连的SQL数据库后,发现它们接收到的原材料数量相同。然后,用户检查连接到SCADA系统的SQL数据库,从机器的PLC和传感器收集时间序列数据。
在比较了这两条生产线后,用户发现其中一条生产线生产的金属板比另一条厚几微米。这可能是机器测量出了问题控制工程网版权所有,可能是机器磨损需要更换,也可能是设置不正确。即使额外的几微米在可接受的范围内,解决这个问题也将为以后节省大量库存和资金——这一切都是因为将时间序列数据存储在易于访问的SQL数据库中。
05 连接OT和IT
在这一点上,SQL听起来可能像是梦想成真,但并不是自动化行业的每个人都最初都使用SQL数据库。OT专业人员,尤其是SCADA用户,对使用SQL处理时间序列数据持怀疑态度,而更喜欢专门为该任务设计的专有数据库。然而CONTROL ENGINEERING China版权所有,IT专业人员通常将拥有专有代码和代码翻译器的专有数据库,视为获取有价值数据以及与业务其它部门有效沟通的另一个障碍。
让问题对立双方的专家意见统一,从来都不是一件容易的事,但幸运的是,Ignition和SQL等工具可以让OT与IT分歧的双方再次合作。将SCADA系统连接到SQL数据库,是IT和OT部门之间实现相互理解的一大步。
“SCADA系统获取这些数据。它需要把这些数据存储在某个地方,如果把它放在SQL数据库中,你就拥有了SQL数据库的所有优势。” McClusky说。
集成了这些技术就不必担心连接到可能导致问题并阻碍系统其它部分的专有数据库。此外,大多数IT员工都熟悉SQL,因此对于那些使用SQL数据库和工业自动化平台对SCADA系统进行现代化改造的员工来说,通常不需要对员工进行培训就可以使用。
尽管有些人仍然不愿意将SQL与SCADA集成,但SQL和其它开放标准技术正变得越来越受欢迎。McClusky说:“对于那些拥有陈旧的制造业设置,想要实现基础设施的现代化、正在转向Ignition的人来说,SQL的使用绝对在增加,而且应该在增加。”
这是因为SQL数据库与任何使用这些开放标准的新技术或应用都是兼容的。SQL数据库和SCADA的集成带来了很多优势,因为技术变化非常快,而SQL由于其互操作性可以跟上需求的发展。
关键概念:
■ SQL 可以帮助 SCADA 用户更好地管理数据。
■ SQL 数据库比其它数据库更简单易用,可以让用户在管理和处理数据方面拥有更多的自由度。
思考一下:
您如何从时间序列数据中获得更多价值?