美林数据
ABOUT US
美林数据技术股份有限公司(简称:美林数据,NEEQ:831546)是国内知名的数据治理和数据分析服务提供商。

美林新闻/NEWS

首页 美林数据 行业资讯

工业大数据分析 | 浅谈工业数据获取与解析

2022-10-20 17:55:00
01 为什么关心工业数据的获取与解析问题?
简单来说,是由于工业数据的来源、分类、特性、数据结构以及通信协议等诸多方面都具有多样性,且此类多样性影响着工业数据的获取,进而影响到后续围绕工业数据管理与综合利用的各类系统的规划与构建。
智能制造技术体系中所需要的人工智能技术,以及基于数据驱动构建模型的理念等为包括柔性制造、精益制造以及故障预测与健康管理(PHM)等在内的多类工业应用软件提供了新的发展方向,并产生了包括数字孪生(DT)、信息物理系统(CPS)等多种新兴量化深度融合成果。但不难发现,以上应用均基于对工业现场信息的深度感知:通过与传感器、PLC控制器以及嵌入式系统等实体通信,获取设备的实时运行状态,进而开展数据内涵的深度分析应用,从数字化应用角度讲,这就是工业数据的获取与解析过程。
工业数据
从信息化角度,理想的工业数据来源是各种数据库,包括结构化、非结构化、时序数据库和消息服务器等,后者比如MQTT broker 或Kafka 服务器,乃至简单的 Redis 服务器等。此类数据来源使得软件开发可以从数据架构设计开始,可通过软件API或者基于http的RPC协议实现对数据源的连接、访问乃至事务处理(OLTP)或分析展现(OLAP)。
但工业制造现场实际状况却并非如此。在包括机加、钣金、焊接、辊弯、装配等制造过程以及伴生的质检、型架定位、工装辅助、物流配送、试验验证中使用了大量手动、半自动以及自动化生产设备,此类设备的生产厂家、采购时间、应用领域、遵循标准等往往并不相同,唯一相同的是各类设备的首要目标都是完成各种生产制造任务,从IT和数据的角度往往忽视了对此类设备中存在数据的获取进行规范。基于这样的工业生产实际,要求在特定的信息化任务中对其进行改造升级或替换并不现实,更常见的做法是基于数字化转型提升诉求,适应生产实际调整软件系统的数据接入能力。
综合以上分析,在构建面向工业领域的智能化系统时,我们需要对工业数据的获取具备以下认知:
▶充分了解现场工业数据的多样性,从而理解工业现场数据状况与理想数据状态之间的差距,并以此在方案设计时做出调整措施。
▶ 务必动手测试现场工业数据的连接与解析可行性,并查看实际数据情况,确保技术设计选型科学合理且落地可用。
▶准确评估数据连接工作的难度,根据业务需求估算连接现场工业数据所需的准备工作难度与工作量,以供项目论证分析决策参考。
本文以下内容基于上述分析进一步展开说明。首先介绍工业数据的定义并讨论其多样性问题,然后介绍工业数据的连接与解析,最后讨论在开发数据密集型工业系统时需考虑的核心方面。

02 什么是工业数据?
从概念上看,我们所讨论的工业数据,是用于表达工业制造、试验、运行过程中会随时间、工况、操作条件等因素发生改变的,某种系统状态的定量或定性数据。举例来说,工业数据包括设备的温度、压力、流量、加速度等随时间变化的物理参量,以及系统监控、告警、维护信息等。
既可以利用此类数据进行面向工业领域的数据深度分析、智能模型开发工作与决策可视展示,也可以将其提供给各类细分专业业务系统,对其进行进一步的利用。比如在数字物理系统中,采集到的外部载荷信息会通过仿真方法快速转化为内部关键设备的应力分布、温度场分布等结果,从而结合一定的优化匹配方法实现对设备内部运行状态的自动控制、优化控制。
1.工业数据的多样性:
依据工业数据的多样性,在技术研究与应用场景中存在多种分类方法,下图以工业信号数据为例给出示例,该示例同时给出了同样的工业信号数据类型下,不同应用情景下的信号数据之间存在的巨大差异。

信号数据的分类
△信号数据的分类
从IT角度,我们将工业数据分为实时数据流与静态数据文件两类。其中实时数据流直接来自工业现场,静态数据文件是对不方便直接获取的工业数据,以及过往数据的历史记录,两类数据的获取与解析分别存在需要重点关注的问题。
2.工业实时数据流的获取
工业实时数据获取是对工业设备运行状态的实时感知,是PHM与数字孪生等系统构建的基础。如果制造侧并未实现工业数据的获取与汇总,则面向工业数据分析的信息化系统侧就必须考虑该问题,寻求将工业现场的数据实时有效采集至数据库/消息服务器/缓存服务器。一般而言,需要充分识别待采集对象特征,以判别数据的获取方式。
1)待采集数据对象
无论实际设备的功能是什么,在数据采集环节通常需要连接以下设备:
PLC(可编程逻辑控制器):PLC具有高实时性,并具有类似继电器能力的物理作动能力,PLC应用于大量制造业自动化设备,是制造业自动化设备中最常用的控制单元。

工业自动化设备的核心控制元件
△PLC是工业自动化设备的核心控制元件
PLC设备通常提供RS232\RS485\RJ45等物理接口,并提供包括Modbus,ProfiBus等通信协议支持,但是由于PLC本身的架构限制,对其数据的访问通常只能通过物理地址(寄存器地址)访问与解码。
 嵌入式系统:嵌入式系统包括微控制单位(MCU),数字控制系统(DCS)等多种形式,可视为与机械、电气设备整合的PC机。与PLC相比,嵌入式系统具有完整的图灵机架构,自带操作系统,能提供良好人机交互界面,可以开发出复杂度较高的应用软件系统,并可以在很多领域替代PLC使用(如倍福系列产品)。
嵌入式系统本质是PC设备,因此理论上可以使用常规的PC通信方式如HTTP/FTP协议获取其内部数据。但是在实际应用中,嵌入式系统软件以设备正确运作为优先任务,基于安全与商业的考量并不开放数据访问权限,因此往往需要通过购买专门的软件API接口获取数据。
SCADA(数据采集与监视控制系统):SCADA是基于信息化侧要求所构建的专用工业数据采集系统,既包括安装于工控机的专用设备数据采集软件,也包括通用的基于开放协议标准的各类边缘盒子。
数据采集与监视控制系统
由于SCADA系统的构建目标就是为信息化系统采集工业数据,因此通常具有便利的数据获取接口。新兴的工业边缘采集设备还能支持包括MQTT等物联网协议和Restful API等远程调用服务。
然而,这类系统存在以下局限性:
基于开放技术协议的数据采集设备要求工业设备原生支持OPC等开发协议,现实中的设备通常不能保证这一点;
面向特定设备群及应用场景开发的SCADA系统造价昂贵,常用于核电系统等专业领域,难以推广普及。
2)基于各类通信协议的数据获取方式
在实际工业场景中存在多种通信协议,并且分布在计算机网络架构中的多个层级。比如在物理层,一般的设备会以 RS232/485 接口和各种带宽的以太网接口为主,其它类型如光纤、双绞线或者无线连接也可能存在。此类差异需要在相应的开发工作中予以注意,但通常并不影响到软件本身的设计。从软件开发可行性与架构设计的立场考量,可以将多种通信协议简要区分为三种模式。
数据获取方式
基于物理地址的主动访问
该访问方式主要用于PLC等较基础的控制设备,其代表协议为Modbus。由于设备运行程序较为简单,并没有提供友好的通信协议,只能通过指定物理地址获取设备上的相关控制量与物理量,这种物理地址可能是若干字节,也可能是某个字节中的一位。由于这种情形下无法借助设备将变量数值与具体的物理量关联,必须借助被称为“点表”的文件构建关联。点表来自设备提供方,下图是一个点表的示例,为简单起见仅选取其中21个状态量进行表示,实际设备所含状态量可能达到数百个。
该表给出了每个状态量对应的Modbus寄存器地址,因此可以通过该协议访问这些地址,以获得相应的状态信息。表中前16个状态数据为布尔量,在寄存器中,每个量只占有一个bit,后五个状态数据为实数,即浮点数(f16),在寄存器中这五个状态量每个状态量占有两个byte,以上信息可由点表中的地址信息获取。
用于关联物理地址与对应状态量的点表
△用于关联物理地址与对应状态量的点表
基于变量名称的主动访问
具有类PC架构的设备通常提供较为高级的接口服务。例如 OPC-UA 或 ADS 协议,新的嵌入式设备可能提供包括Restful API 在内的网络通信能力。这些协议或者通过专用API,或者通过通用接口协议(如HTTP),提供了多种设备状态信息访问的能力。一般的,此类设备也可能提供基于物理地址的访问方式,其中OPC-UA基本属于行业标准,是工业领域最常用的通信协议之一。
基于推送机制的被动访问
新的自动化设备与工业数据采集盒子会提供面向MQTT broker 甚至 Kafka 消息服务器的推送服务,因此只需要订阅相关事件即可。此类数据获取方式在目前的IOT领域中较为常用,其基于事件的推送方式结合物联网环境下的云边协同技术能够满足很多物联网应用场景。但如PHM等工业应用如果要基于等间隔采样原始数据展开工作,则此种方式存在效率不高的限制。
工业数据分析
上述三类数据获取策略各有利弊,并且在每种数据获取类型中,不同的通信协议往往具有不同的通信性能,需要基于工业现场实际和业务需求进一步明确和分析选型。
基于经验,如果构建基于工业数据分析的应用,可以首先考虑基于物理寻址的方式。因为工业数据分析应用往往要求采集全量数据,在此方式下使用寄存器首位地址结合数组类型,可简化数据传递的计算复杂度,并减少数据查询次数。其代价是需要将获取的查询结果重新转码解析后分解到各参量,相当于用计算资源换取网络性能。
如果构建基于事务型、决策看板型的应用,可以优先考虑基于变量名通信的方式,此类方式可以按需求获取指定的数据内容,并且易于配置、变更。选型应优先考虑行业常用协议如OPCUA等。
如果应用具有云边协同架构,则推送机制是连接边缘侧设备与云平台的可选策略,其工业应用偏向事件驱动模式。
2. 静态数据文件中数据的获取
除实时数据外,工业领域还存在大量的静态文件需要被解析,主要是由于以下原因:
1)历史数据
大型制造企业建立初期往往缺少现代信息化系统所提供的数据服务支持,但其完善的质量管理体系和较好的制造控制能力使其在过往的制造过程中留存了大量数据,此类历史数据通常以文件的形式保留。
2)高采样数据
对非平稳运行状态的监视需要使用非常高的采样率。如对某类发动机点火阶段震颤状态的观测,需要用到每秒数万次的采样测量。如此采样率会在短时间内产生大量数据,远程直接连接采集数据会造成网络堵塞或数据丢失。因此常用方式是直接在测试端设备上留存数据,然后以文件形式传递。
工业数据分析
3)第三方数据
当设备的使用方与设备的生产方、运维方不是同一实体时无法直接获取数据。比如列车运行数据或风电场运行数据可供设备生产方用以分析其产品质量,这种数据转移需要通过数据交易、权限管理等,目前使用文件的形式传递居多。
在数据密集型工业应用系统构建时,对静态数据文件的解析主要面临多种文件类型问题,实际存在的静态数据文件类型包括并不限于:txt, csv, dat, xls(x), mat, wav, d7d(dxd), zd, arrow, parquet等。其中,部分文件类型中数据存储方式还存在多样化情形。
从IT数据结构角度,可将以上文件类型区分为以下几类:
明码文件
 txt,csv 以及 部分 dat 文件。此类文件可以使用所有文本编辑软件打开直接查看其数据,其数据结构 (schema) 可以直接观察 , 数据的类型也可直接了解,文件的析取方式较为简单,但其数据储存效率较低,被手动改变的风险较高,并且在读取时需要注意文档内非数据部分信息的处理,以及进行文本到数值的转码。
明码数据
△某种明码数据示例:数据的schema与类型可观测

序列化缓冲 (serialized buffer) 文件
此类文件内含数据以二进制字节表示,可以用UE或其它支持16进制数据析取展示的工具进行查看。文件的后缀名可能是dat, zd, tdms 等多种名称。数据经由内存中数据的表直接留存,空间占用率不高,存储与导入速度很快,并且兼容几乎所有环境。
但这种数据文件常常不包含任何对该数据的描述,包括数据结构、数据类型以及数据起始解析地址等,所有信息均需另外告知;或者此类信息与数据一同编码至该文件内,需要另外告知上述信息在文件中所在的相对地址位以便解析。
序列化缓冲数据
前一数据文件的序列化缓冲数据,该数据描述信息需额外告知或通过给定文件内地址析取。
特定软件专用文件
工业领域存在大量专用软件,这些软件常常通过自定义数据文件格式对其数据进行存储与管理。对这些文件的析取需要使用匹配的专用解析库文件或支持模块。
比如MATLAB 的 mat 文件 和 Excel 的 xls/xlsx 文件,以及德维创数据采集专用的 d7d/dxd 等,这类数据通常解析后可以直接获取数据结构信息,以及数据类型信息。难点在于解析器的获取。其中常见文件类型通常具有公开的第三方解析工具,专用类型则需要软件方提供相应解析支持工具包。
工业数据
前述数据以mat格式存储时被解析的形式,这种形式保持了数据的结构与类型信息。
03 工业数据解析
前述内容对工业数据的多样性进行了阐述分析,并站在信息化建设的立场将工业实时数据的接入、静态数据文件的读取分别归为了三种类型。这其中除两类简单的静态文件解析不需要考虑数据类型问题外,其它接入数据还需要处理按照正确的数据类型解析数据的问题。本节我们讨论相关问题,同时介绍一个用以测试数据解析方案的node-red,该工具同时支持在工作前期快速洞察数据。
1. 序列数据解析
在许多工业应用场景中数据传输是基于较底层协议进行的,意味着获取的工业数据不会以明确的数据类型传递,而只是表示为单纯的字节序列。如下图所示。序列数据解析
以字节串序列传递的工业时序数据,需要通过指定的数据类型对其进行解析。
对这类数据序列的解析涉及两个方面,即数据类型与数据存储方式:
数据类型
同一个字节序列在指定不同的数据类型时可以被解析为多种数据序列,以上述字节序列为例,在将数据指定为int8, int16, int32, float16, float32, float64 等格式可以获得不同的解析结果。并且,在实际工作中一个字节序列中可能包含多种数据类型的多个数据的组合。因此必须在解析前首先了解待解析数据的实际类型。
不同的类型假定会把同一的数据序列解析为不同的结果
△不同的类型假定会把同一的数据序列解析为不同的结果
数据存储方式
数据的存储方式主要指数据序列化时的大端和小端选择。
" 大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,数据从高位往低位放;小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。--- 定义来自百度百科
通常信息化系统中的数据都以小端形式存储,但在很多工业设备上数据以大端形式存储。因此在数据的解析中还必须注意数据的存储形式。下图展示了同一种数据类型以不同存储形式假设进行解析时得到的不同结果:

不同的存储方式假设会得到不同的解析结果
△不同的存储方式假设会得到不同的解析结果
2. 工业数据解析测试
由于工业数据的获取与解析存在各种情形,在系统构建前期快速测试接入数据,了解数据状况就显得十分必要。对数据的解析通常需要通过代码开发的方法完成,以python为例,可以使用诸如 numpy.frombuffer, pandas.read_csv, scipy.io.loadmat 等方法,结合正确的参数实现对数据的正确解析。但此类方法并不便利,非开发人员在进行项目初期调研时难以直接使用。因此可以使用如 node-red 等软件进行数据解析的测试。
node-red 的安装:node-red 由IBM公司开发,BS架构,主要用于IOT环境中进行低代码的数据接入与解析。可以在windows下用命令:
 npm install -g --unsafe-perm node-red
安装,安装要求系统具备 node.js 环境。建议使用conda虚拟环境管理器构建node.js环境,在该环境下安装node-red。安装完成后在该虚拟环境下输入node-red即可启动该软件服务,然后在浏览器输入服务指定的访问路径即可进入node-red。
注意:请勿使用docker部署该软件,否则本地文件析取测试在windows环境下难以实现。
node-red 主界面环境
△node-red 主界面环境
使用node-red 连接工业实时数据
通过 node-red 可以调用多种工业数据接口协议进行数据获取,如通用的 OPCUA,又或专用的倍福通信协议 ADS。
拖曳式使用多种工业连接协议(需要程序内安装)并配置连接参数
△拖曳式使用多种工业连接协议(需要程序内安装)并配置连接参数
使用node-red 解析文件数据
支持解析多种静态文件。特别的,以序列化缓冲数据形式存储的文件使用文本类软件解析便利性较差,使用 node-red 可以简化这一过程。在数据解析中可以指定待解析数据的起始地址,数据类型与数据长度等参数。
使用node-red 解析文件数据
△对前述序列化缓冲数据文件进行解析
在完成数据的连接与解析后,node-red还支持对这些数据的部分可视化展现,具体请见该软件文档dashboard部分。
node-red 虽然提供了便利的工业数据连接与解析的工具,但在解析复杂的真实现场数据需要较多配置工作,并难以适应动态、柔性现场条件,因此在真实系统中仍然需要使用开发的方式构建数据获取与解析能力。该工具适用于对工业数据的快速连接与解析方式的验证。
为实现动态、大批量完成的工业数据获取与解析工作,美林数据提供设备采集器模块产品。设备采集器是一个可以进行多设备协议数据采集,并进行数据消息报送的采集软件;可以通过灵活的配置文件进行点位采集业务的配置;可对采集点位进行分组,同组点位采用相同的频率进行采集,并将数据按照特定格式组合后发送同一消息主题。
设备采集器总体架构
△设备采集器总体架构
采集器整体采用Spring Boot进行开发,方便进行其他组件的集成及管理工作。并包括有配置解析模块,周期调度模块,协议采集模块,数据组装模块,数据报送模块等。各模块内配置参数通过yaml配置文件确定,方便灵活的处理业务。此外,调度任务支持Cron表达式,原生支持OPCUA协议,Json格式组装,Kafka、MQTT报送等功能。是工业数据采集与解析的便利构件。

04 总结
将以上所述过程以流程图的形式表示如下。其中蓝色字体部分是一般工业软件系统构建时需要动态配置的部分,需要在开发过程中予以关注。
工业数据的获取与采集过程
△工业数据的获取与采集过程
本文目的是简要介绍工业数据获取与解析的一般性知识,以便数据密集型工业应用系统构建的相关人员能够了解自己面对的业务实际,并具备能力洞察实际数据形态,从而较准确地研判实现业务目标的可行性与时间成本耗费。希望上述介绍可以为您提供相关帮助。
也可来电与我们深入交流:400-608-2558

服务热线
400-608-2558
咨询热线
029-88696198
美林数据
微信扫描二维码,立即在线咨询