在线分析仪器故障诊断专家系统通信协议解析

2015-01-27 05:10:46高喜奎蒋敏敏
自动化与仪表 2015年8期
关键词:分析仪器通信协议缓冲区

高喜奎,白 焰,蒋敏敏,琚 贇

(华北电力大学 控制与计算机工程学院,北京 102206)

在线分析仪器是在工业生产流程中可以采取连续或周期性的方式来检测待测的物质化学成分或某些物质特性的具有高度自动化结构的分析仪表[1]。在现代工业领域中,随着在线分析仪器的需求量的日益增加、仪表设备日益复杂化与大型化,Internet技术和人工智能技术(特别是专家系统)在故障诊断中的应用引起了人们的高度重视,实现在线分析仪器的远程监测和故障诊断已成为工业领域的迫切需求[2]。然而,在线分析仪表一般采用内部通信协议,为了实现故障诊断专家系统自主研制、开发与集成,实现这些仪表的通信协议解析是十分必要的。

1 故障诊断专家系统结构与功能

基于无线传感器网络的在线分析仪器故障诊断系统的数据流向结构如图1所示。这个系统可以分为3个子模块,分别为现场仪器仪表到数据库的协议解析、数据库与知识库的检索以及图形用户界面 GUI(graphical user interface)的实现。 该系统所实现的功能如下:该系统能够从现场的仪器仪表上接收数据,并连续监测这些输入,当出现需要严加注意的状况时,系统对这些运行状态加以检测,若出现故障,就对工作人员发出警告指示并能利用知识库搜索引擎来检索知识库与数据库中的内容,将搜索到的相关信息以各种方式显示在人机界面上,以达到故障预警与故障维护的目的。而对整个系统而言,要想实现这个功能,其最基本、最重要的就是在线分析仪器的通信协议的解析。

图1 故障诊断专家系统结构Fig.1 Structure of the fault diagnosis expert system

一般来讲,置于现场的在线分析仪器是实时地往控制中心回传检测数据的,当仪表正常工作时,回传的数据均表现为正常的数值,一旦系统出现故障或者检测到的数据出现异常情况,回传的数据中就会产生故障码[3]。所以,主要任务:一是接收大量回传的数据并根据仪器仪表的通信协议将数据与信息的对应关系解析出来以建立数据库;二是要将故障码从正常数据中解析出来用于建立知识库。

2 在线分析仪器通信协议解析

2.1 数据获取

ULTRAMAT 23是西门子公司的在线气体分析仪,它是基于串口与计算机之间进行通信的。串口通信的数据帧由起始位、数据位、停止位和奇偶校验位组成。数据获取便是对每一帧按照指定的串口参数进行拆解,取得数据位。

为了能更快更方便地获取U23与计算机之间的通信数据,可以采用最简单的硬件接线。从U23的通信串口RS485接出,使用RS485/RS232转换器,再接入到计算机的串口RS232。

由于U23的通信协议属于不对外公开的内部协议,无法直接获取通信数据,只能通过其配套的应用软件Siprom GA来实现PC机与U23的串口通信。操作Siprom GA时,实际上就是计算机通过串口向U23下发指令数据,U23接收到上位机发送来的指令后作出相应应答,并向计算机发送响应数据。这样,通过串口通讯软件,就能截取到经过该串口的所有数据。

2.1.1 采用串口调试助手获取数据

串口调试助手是串口调试相关工具,在互联网上有多个版本,支持9600、19200等常用各种波特率及自定义波特率,可以自动识别串口;能够设置校验、数据位和停止位;能够以ASCII码或十六进制接收或发送任何数据或字符;能够任意设定自动发送周期,并能将接收数据保存成文本文件;能够发送任意大小的文本文件。

采用串口调试助手获取通信数据步骤如下:

(1)预先在串口调试助手中选择相应的串口号,设置好波特率、数据位、停止位、奇偶校验位等串口参数;

(2)打开 Siprom GA,连接计算机与 U23,进行一些操作,如读诊断值、日志信息等;

(3)退出Siprom GA,打开串口调试助手,连接;

(4)将收到数据截图保存或直接接收转成文本文档。

结合使用串口调试助手与Siprom GA,便能成功接收到仪表传输给计算机的数据。但是,由于从上位机发送指令数据到接收到仪表的响应数据,这一过程是很短暂的,可能仅需要几毫秒甚至更少,当串口调试助手无法同时与Siprom GA使用时,基本上不可能从串口调试助手截取到上位机下发的指令数据与相应操作的应答数据。因此该方法仅适用于在线分析仪表不停地往上位机发送响应数据或仪表发送响应数据存在很大延迟的情况。很明显,这2种情况仅存在极少数的案例。

2.1.2 采用串口监听软件获取数据

串口监听软件是侦测RS232/422/485串行端口的专业工具软件,能够侦听、拦截、记录、分析串行通信协议;能够实时监测应用程序操作串行端口的过程和细节;能够及时地模拟被侦听程序或设备的数据、控制流;能够捕获串口的打开、读写数据、关闭操作,并能同时监视指定进程的最多255个串口;无须设定串口参数,不会占用串口,只会对相关的API进行拦截。

采用串口监听软件获取通信数据步骤如下:

(1)开启 Siprom GA;

(2)打开串口监听软件,选择相应进程ID即Siprom GA.exe、串口号等,启动监听;

(3)回到Siprom GA界面,连接计算机和U23,然后进行一系列操作,如读诊断值、日志信息等;

(4)将串口监听软件监听到的数据截图保存或直接接收转成文本文档。

结合使用串口监听软件与Siprom GA,便可很轻松地获取计算机与串口的通信数据。与使用串口调试助手方法相比,采用该方法的主要优点有2个:一是不需要知道串口的匹配参数,而直接监听到串口数据;二是不占用串口,能同时与其他应用程序使用,并实时监测该程序操作串口的过程中的通信数据。

2.1.3 采用串口数据记录仪获取数据

串口数据记录仪是一种串口数据存储设备。采用高速ARM控制芯片,将串口RS232电平以文件的方式透明地记录在存储介质中。当使用记录后的数据时,可以通过模块自身的USB2.0接口上传到电脑上。

同样的,采用串口数据记录仪来获取数据无需匹配串口参数,且不占用串口。但是,无法实时地监测到串口的操作数据,对后期的分析工作造成困难。

综合上述3种方法的优缺点,采用第2种方法来获取串口数据。

2.2 协议解析

通过串口监听获取数据后,需要对接收到的大量数据进行解析。由于对协议的步骤格式一无所知,采用数据挖掘技术来解析协议。对接收到的数据进行分析步骤如图2所示。

图2 数据分析流程图Fig.2 Flow chart of data analyse

数据挖掘是从大量的数据中抽取潜在的、有价值的知识(模型或规则)的过程[4]。在协议解析中,主要用到的数据挖掘技术有:

1)关联分析算法。即利用关联规则进行数据挖掘,寻找在同一事件中出现的不同项的相关性[11]。一般用4个参数来描述一个关联规则的属性:置信度、支持度、最小置信度和最小支持度。关联规则的挖掘通常分2个步骤:一是找出所有的频繁项集,即从事务集中找出所有支持度大于最小支持度的数据项集;二是由频繁项集产生强关联规则,这些规则必须满足最小支持度和最小置信度。通过该算法可以解析出通信协议的起始和结束标志,并确定协议的大致格式结构。

2)聚类分析算法。聚类是一个把数据对象划分成子集的过程,属于无监督学习。这种算法通过观察学习,计算不同数据段的属性差别,把类似的数据段聚集在一起,然后判断出数据包中各数据段的含义。

3)分类分析算法。数据分类是一个两阶段过程,包括学习阶段和分类阶段[4]。学习阶段就是通过分析或从训练集“学习”来构造分类器,但是该阶段并不保证分类的准确率。因此,在分类阶段,首先评估分类器的预测准确率,如果准确率是可行的,那么就可以用它对类标号未知数据元组进行分类,否则,还需重新构建分类模型。在协议解析中,通过该算法能够分类解析出数据包中各数据段的含义。

结合使用聚类和分类算法,可以更好地对接收到的数据进行拆分、解析,得出仪表的通信协议格式。

2.3 故障码解析

使用Siprom GA读取诊断值和偏移值时,软件界面上会显示故障信息。此时,串口通信数据里面很明显是包含故障码的。对照解析出的协议,提取出有可能是故障码的数据段,结合Siprom GA上的故障日志信息,再对照U23工作手册,进行验证修改,便可分析出故障代码。对于故障码的解析,其思路和方法与协议解析的思路方法大同小异,此处不再赘述。

2.4 成果分析

使用串口监视软件可以实时获取U23与计算机的通信数据,比如以下3条数据为执行不同操作时获取的指令数据:

对获取的数据进行挖掘后,可以总结归纳出U23通信协议的步骤如表1所示。该仪表的通信步骤以10H 01H开始以10H 03H结束。而最重要的信息在有效数据里,有效数据中包括源地址、目的地址、仪表状态、指令、数据等信息。而有效数据中每一类数据所用的表示方式也不尽相同,有十六进制、ASCII码以及其他表示方式。

表1 U23通信协议步骤Tab.1 Communication protocol steps of U23

3 故障诊断专家系统与西门子气体分析仪的通信

本系统都是基于JAVA的运行环境开发的,所以故障诊断专家系统与西门子气体分析仪的通信即是利用JAVA实现PC机与仪表的串口通信[5-7]。

3.1 初始配置

JAVA的串口通信API可以使用Sun公司开发的comm.jar,串口的初始配置程序片断如下:

3.2 数据处理

考虑到故障诊断专家系统与在线分析仪表之间数据的传输速度匹配问题以及庞大的数据量,在本系统中采用串口读数据的线程模型和环形缓冲器相结合的方法来进行数据处理[5-7]。

采用该方法,在有效地提高程序的数据处理速度同时大大降低程序占用的内存空间。

3.2.1 串口读数据的线程模型

串口读数据的线程模型实际上就是使用2个线程——接收线程和程序处理线程。如图3所示,接收线程从串口获取数据,并将数据打包放入环形缓冲区中,然后启动程序处理线程从环形缓冲区中获取并处理数据。

图3 串口读数据的线程模型Fig.3 Threading model while reading a serial port

3.2.2 环形缓冲区

环形缓冲区,顾名思义是一个环形的缓冲区域,用于存放从串口发送来的数据。环形缓冲区设有一个读指针和一个写指针。读指针指向环形缓冲区中可读的数据,写指针指向环形缓冲区中可写的缓冲区。接收线程只影响写指针,数据处理线程只影响读指针,通过移动读指针和写指针就可以实现缓冲区的数据读取和写入。为了防止出现缓冲区中数据读空或数据覆盖的现象,需要添加保护机制确保缓冲器已满时接收进程不再试着往里写数据,数据处理线程在缓冲器为空时也不去取数据。

4 结语

本文的主要研究内容为在线分析仪器通信协议解析。通过监视西门子气体分析仪U23与PC机间的串口通信,截取经过串口的所有数据,通过数据挖掘技术解析出通信协议的步骤以及各个字段所代表的含义,最后总结出在线分析仪器的内部通信协议及其故障码。并且利用解析出来的协议,用JAVA实现故障诊断专家系统与U23的通信。这一研究是十分有意义的,提出了一种新的仪器仪表协议解析方式并且成功实现了故障诊断专家系统与在线分析仪器的通信,对该系统集成不同在线分析仪器、进行远程实时故障诊断操作具有重要意义。

[1]王森.在线分析仪器手册[M].北京:化学工业出版社,2008.

[2]胡素娟.FC SAN协议分析与故障诊断系统的研究与实现[D].成都:电子科技大学,2012.

[3]贾磊磊.无线传感器网络在煤炭集团大规模远程监测的研究[J].煤炭技术,2013,32(6):195-196.

[4]Han Jiawei,Kamber Micheline,Pei Jian.数据挖掘概念与技术[M].北京:机械工业出版社,2012.

[5]吴金锋,刘伟平,黄红斌.Java串口通信数据采控系统的设计与实现[J].微计算机信息,2010,26(10):65-66,75.

[6]马赛,王忠,陈典.基于Java异步串行通信技术的研究[J].计算机测量与控制,2014(8):2644-2646,2649.

[7]李刚.疯狂Java讲义[M].北京:电子工业出版社,2008.

猜你喜欢
分析仪器通信协议缓冲区
嵌入式系统环形缓冲区快速读写方法的设计与实现
北京市华云分析仪器研究所有限公司
分析仪器(2021年3期)2021-12-03 16:25:32
北京市华云分析仪器研究所有限公司
分析仪器(2020年2期)2020-05-21 10:35:18
实验室分析仪器的保养与维修
电子测试(2018年22期)2018-12-19 05:12:56
基于Z-Stack通信协议栈的红外地温采集电路设计
基于DMX512通信协议的多路转发器设计与研究
基于NS-3的PLC多频通信协议仿真平台设计与实现
电测与仪表(2016年2期)2016-04-12 00:24:52
关键链技术缓冲区的确定方法研究
RSSP-I、RSSP-Ⅱ及SAHARA三种安全通信协议实现技术简介
“十二五”工业过程分析仪器需求可达300亿