化工仓储企业储罐数据采集系统的设计与实现

发布者:painter最新更新时间:2016-11-07 来源: e-works关键字:化工仓储企业  储罐数据  采集系统 手机看文章 扫描二维码
随时随地手机看文章
引言

    随着某化工仓储企业生产经营规模的不断扩大,不同时期所采用的现场仪表不同往往使得仪表种类越来越多,需要处理的数据量也越来越大。这些数据有的通过PLc控制系统采集,有的甚至还需要人工抄表和手动录入数据,这不仅造成了工作效率低下,而且还容易导致各个生产区之间的信息彼此孤立。形成一个个信息孤岛。信息孤岛使得企业的生产管理人员无法及时获知准确有效的数据并及时做出决策,这在一定程度上影响了企业的生产运营。在工业信息化的大背景下,有必要将各孤立系统的数据进行集成整合,建立
实时数据库系统,从而为上层ERP系统及应用软件提供准确实时的数据。

    由于该企业的大部分仪表还能正常使用,如直接淘汰、更换系统将会造成很大的资源浪费。本文结合该企业的数据采集改造项目,设计实现了一套对全厂生产数据进行集成处理的软件系统。

1 系统设计

    罐区实时生产数据主要有储罐液位、温度和压力等,这些原始数据由现场的液位计、多点温度测量仪、压力表等获取。该化工仓储企业现有一套西门子s7.300 PLC控制系统、2台AWG一ⅡA型巡检仪、若干AwG—IB型光电智能液位仪、若干科隆BMloo雷达液位计、若干带通信接口的罐旁指示仪和其他一些温度、压力、液位传感器。这些现场测量仪表有的通过4—20 mA的模拟信号或通信线接入到PLc控制系统中,有的通过带有通信接口的罐旁指示仪或直接接入到巡检仪(二次表),其他的则未接人任何系统。

    根据现有系统设备的特点,数据采集软件需实现以下3个功能:与PLc控制系统通信并采集数据、从巡检仪中采集数据、直接与现场表通信并采集数据。

    整个数据采集系统以数据采集为中心,在一台工控机上运行数据采集程序;从底层采集各部分原始数据,根据相应的计算标准计算体积、储量等;并通过网络通信协议将数据转存到数据服务器。这些数据作为历史数据存人关系数据库,为上层的应用提供数据。系统结构图如图l所示。

 

2 数据通信

    由于系统中的设备类型各不相同,它们各自具有不同的通信协议,因此,数据采集程序必须遵循相应的通信规范才能从各种设备中读到数据。

    本系统数据通信解决方案如下。

    ①与PLc控制系统的通信采用OPc协议。OPc过程控制数据采集的标准,为目前主流的组态软件所遵循。西门子的上位机软件支持0PC标准,并提供0PC Server服务,即只要在客户端开发OPCClient,就可请求到存放在OPc Senrer中的过程数据。

    ②由于OPC标准被大多数自动化厂家所采用,所以部分底层数据采集设备也支持OPc。在通信软件中开发OPC Senrer程序,将硬件设备作为0Pc的数据源,可直接从底层采集设备中获取过程数据值。

    ③与巡检仪及部分现场仪表的通信采用Modbus协议。巡检仪及大部分现场设备都支持目前工业领域最流行的通信协议之一的Modbus。通过工控机串口与它们提供的接口相连,即可进行主从方式通信。

    ④部分不支持通信的采集设备,可将数值转换为4—20 InA模拟信号,接入到PLC控制系统中,再通过OPC方式采集。

    ⑤由于OPc服务器很难穿过防火墙进行数据传输,所以采集程序与数据服务器及上层应用软件之间通过UDP协议交换数据。通过该解决方案,所有的数据都能接入到采集系统。并进行实时准确测量。

3 系统实现

    主程序分为Modbus通信模块、0PC通信模块、uDP通信模块和数据计算模块。程序采用多线程技术,将各种数据的接收和发送放在优先级较高的线程中。在数据收发期间,数据的计算处理并不影响主程序的运行。此外,在程序中采用全局内存存放实时采集的数据,以便于数据的快速存取交换。系统主要程序基于VC++实现。

    3.1 Modb哪通信模块

    M0dbus协议包括AscII、RTu(远程终端单元)、TcP等工作模式,本系统采用较高数据传送密度的RTU通信模式。在该模式下,数据通信一般采用主从方式,主机向从设备发出请求消息;从设备接收到正确消息后就可以发送数据到主机,以响应请求H1。Modbus RTu消息帧结构如图2所示,其中,T1一T2一T3一T4。为不小于3.5个字符时间的停顿间隔。

 

    Modbus协议需要对数据进行校验。串行协议中除有奇偶校验外,I删模式还采用16位CRc(循环冗长检测)校验。CRC的生成流程具体如下。

    ①预置一个16位寄存器为oFFFFH(全1),即为CRC寄存器。

    ②把数据帧中的第一个字节的8位与cRc寄存器中的低字节进行异或运算,结果存入CRC寄存器。

    ③将CRc寄存器向右移一位,最高位填以0,最低位移出并检测其值。

    ④如果最低位为O,则进行下一次移位;如果最低位为l,将cRc寄存器与一个0A00lH进行异或运算。

    ⑤重复步骤③一步骤④,直到8次移位,这样就处理完了一个完整的8位数据。

    ⑥处理下一个8位数据,直到所有的字节处理结束.最终CRC寄存器的值就是cRc的值。

    3.2 OPC通信模块

    OPC服务器由服务器、组和数据项这3类对象组成。服务器对象具有服务器的所有信息,同时也是组对象的容器。组对象具有本组的所有信息,同时包容数据项。项对象是读写数据的最小逻辑单位,项与具体的位号相连。OPC服务器支持自动化接口和定制接口两种访问接口。

    OPC C1ienI的具体开发流程如下。

    ①初始化coM库,当需要调用cOM库时,需使coInitializeEx()来为当前线程初始化c0M库。CoInitializeEx()提供了一个让用户可以选择多线程模式还是单线程模式的参数。

    HRESUIJ hr=CoInitializeEx(NULL,COINIT—MU加THREADED);

    ②通过oPc服务器的ProgID查询cLsID,通过给定的ProgID,采用CLSIDFromPmdD()函数从注册表中查找出对应的类标符。

    CLSlD(Class Identifer);
    HRESUIJ hr=CLSlDFmmProgID(m—strProgID,&clsid);

    ③创建OPC服务器对象,并查询OPc服务器对象的IOPCsenrer接口。通过调用cocreateInstaJlceEx()函数,不仅可以在本机中创建COM对象并得到一个接口指针,还可以实现远程访问。将Mu哪一QI结构体数组中指向IOPCserver接口的元素赋值给变量m—pISen,er,以获取lOPCsenrer接口,进而可以使用该接口完成对组对象进行创建、删除、枚举和获取当前状态等操作。

    IOPCServer*Im_pISen,er;
    m—pIserver=(IOPcsen,er木)m arrMultiQI[MQIIOPCSERVER].pItf;

    ④添加OPC组对象,并查询IOPCItemMgt接口,通过IOPcserver接口的AddGroup()方法添加组对象,它将返回一个指向OPC组对象Iunknown的指针。通过Iunknown的QueryInte血ce方法可获得0Pc组对象的IOPcItemMgt接口指针,进而可以使用该接口完成对各项进行添加、删除和设置参数等操作。

    hr=pUnknmm一>QlueryInterf砬e[uD—10PCItemMgt,(void**)&(nLpIItemMgt)];

 

    ②通过oPc服务器的ProgID查询cLsID,通过给定的ProgID,采用CLSIDFromPmdD()函数从注册表中查找出对应的类标符。

    CLSlD(Class Identifer);
    HRESUIJ hr=CLSlDFmmProgID(m—strProgID,&clsid);

    ③创建OPC服务器对象,并查询OPc服务器对象的IOPCsenrer接口。通过调用cocreateInstaJlceEx()函数,不仅可以在本机 中创建COM对象并得到一个接口指针,还可以实现远程访问。将Mu哪一QI结构体数组中指向IOPCserver接口的元素赋值给变量m— pISen,er,以获取lOPCsenrer接口,进而可以使用该接口完成对组对象进行创建、删除、枚举和获取当前状态等操作。

    IOPCServer*Im_pISen,er;
    m—pIserver=(IOPcsen,er木)m arrMultiQI[MQIIOPCSERVER].pItf;

    ④添加OPC组对象,并查询IOPCItemMgt接口,通过IOPcserver接口的AddGroup()方法添加组对象,它将返回一个指向OPC组 对象Iunknown的指针。通过Iunknown的QueryInte血ce方法可获得0Pc组对象的IOPcItemMgt接口指针,进而可以使用该 接口完成对各项进行添加、删除和设置参数等操作。

    hr=pUnknmm一>QlueryInterf砬e[uD—10PCItemMgt,(void**)&(nLpIItemMgt)];

    ⑤添加项:为保存项的相关属性值的结构体数组进行赋值。以该结构体数组为参数,用10PcltemMgt接口的AddItem()方法添加项。

    hr=m—pIItemMgt一>AddItems(dwCount,
    //[in]要添加的项的数目
    pItemAll置y,
    //[in]保存项相关属性值的结构体数组
    &pResults, //[out]返同数组
    &pErrors); //【out]
    HREsuLT数组,告诉客户每个项是否成功添加

    ⑥同步读写:通过Iunknown的QueryInter厶lce方法,获得0PC组对象的IOPcsyncIO接口指针。

    hr=pUnknown一>QueryInte梳e(IIDjOPcSyllcIO,
    (void**)&(m_pIS)mc));

    采用10PCSyncl0接口的Read()方法,完成同步读操作。

    采用IOPCSyncIO接口的write()方法,完成同步写操作。

    ⑦释放:在程序关闭之前,需要删除已创建的OPC对象并释放内存。

    首先删除以下项:

    HRESU【JT Ilr = m—pIItemMgt一>RemoveItes(dwcount,phserver,&perrors);

    接着释放OPC组对象的IOPCItemMgt接口和IOPCSyncIO接口,然后删除OPC组对象:调用服务器对象m—pIsen,er的RemoveGroup()方法,删除0PC组对象,再调用Release()释放服务器资源,最后关闭COM库。

    3.3 UDP通信模块

    用户数据报协议(user data protocol,UDP)是一个简单的面向数据包的传输层协议旧J,它所提供的是非面向连接的、不可靠的数据流传输。UDP不提供报文到达确认、排序、 可靠以及流量控制等功能;它只是将应用程序传递给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于uDP在传输数据报前不用在客户和服务器 之间建立一个连接,且没有超时重发等机制,因此,其传输速度更快。uDP数据通信格式和数据结构定义如下。

    UDP请求数据报格式如图3所示。

 

    其中,起始符为字符“撑”,ASCIl码为35(十进制);结束符为回车符,ASCII码为13;请求位号长度为10 B,为同定长度,位号不足10 B的用空格符补充。定义一个UDP请求数据报可同时打包不超过30个位号。

    UDP应答数据报格式如图4所示。

 

    其中,起始符为字符“!”,AScII码为33(十进制);结束符为回车符,ASCII码为13;应答位号长度为lO B,为固定长度,位号不足10 B的用空格符补充;返回值长度为20 B,为同定长度,数据不足20 B的用空格符补充;连接符、位号与数据之间用“=”号连接,AsCII码为6l。定义一个uDP应答数据报可同时打包不超过30个
位号的数据,数据报总长度不超过990 B。

    本系统在MFC中使用CS0cket类实现UDP通信。Csocket是对winsock API的封装,用于管理通信,使得用户可以直接避免调用API函数,数据的收发也因此变得简单。

    程序实现时,系统分别构造服务器和客户端套接字对象,调用套接字对象的c删()成员函数初始化套接字。调用Csocket类的重载函数 onReceive()响应接收事件;调用ReceiveFbm(1pBIlf,bu|‰n,RemoteIP,RemotePon,0)接收数据报,并 按照协议格式将数据从数据报中取出。按照通信协议将需要发送的数据打包,并调用SendTo(1pBuf,Sen掇 rLen,RenlDtePon,Remot椰,0)发送数据报。

4 关于实时数据库的探讨

    该套数据采集软件的设计与实现,实际上为企业构建了一个实时数据库系统。程序中采用全局内存共享技术对实时数据进行存取,并采用内存、文件管理、关系数据库相结合的数据存储策略,使系统在响应速度、实时数据的共享性和时间一致性方面初步满足了
实时数据库系统的定义要求。

5 结束语

    系统自投用以来运行正常,效果良好,不仅解决了在生产数据管理过程中存在的问题,而且节省了购买SCADA硬件、软件系统的大笔费用。同时,避免了大量仍能使用的仪表设备的淘汰弃置,具有一定的经济效益。

关键字:化工仓储企业  储罐数据  采集系统 引用地址:化工仓储企业储罐数据采集系统的设计与实现

上一篇:三相异步电动机电机启动常见故障
下一篇:制造业中多工步组合机床监控系统设计

推荐阅读最新更新时间:2024-05-03 00:49

USB视频数据采集系统接口电路设计
  现在不论是插座,插口都出现了很多的功能,并且使用方式不同接口或者应用也会有所不同。有的增加了保险功能、电源指示功能、开关功能,有的增加了调压功能。这些插座的功能无论怎样,只能是单一的目的:为用电设备提供电源接口。它们的共同缺陷就是不具有信息化和智能化功能。为了实现插座的信息化和智能化,我们将研究设计的智能信息系统与插座结合,将该智能设备与电源插座合为一体,设计成多功能智能监测插座。该插座由于在建筑电气安装时一次性固定完成,采用照明电源供电,人们使用时就好象使用普通电源插座一样,免除了过多的连接线。    USB接口芯片及其工作原理   在这篇文章中我们采用PDIUSBD12芯片,这是一种价格便宜、功能完善的并行接口芯片,它支
[电源管理]
USB视频<font color='red'>数据</font><font color='red'>采集系统</font>接口电路设计
基于单片机控制的光谱数据采集系统的设计
  概述   在光谱测量中,常用光电倍增管(PMT)和电荷耦合器件(CCD)作为光电转换器。在慢变化、高精度光谱测量中使用PMT;对于闪光灯、荧光和磷光等强度随时间变化时的光谱信号则采用CCD。PMT和CCD输出的信号形式是不同的:光电倍增管输出的是连续的模拟信号;CCD输出的是视频脉冲信号。由于输出信号的不同,相应的信号采集电路也不尽相同。本文所述的系统通过设定控制开关的不同状态,由单片机检测、判断和执行相应的操作,完成对不同形式输入信号的采集。采集到的光谱强度通过并口送入计算机进行处理、计算,并显示和打印出光谱曲线。 由于CCD像元几何尺寸小、精度高,有光积分时间和信号存储功能,因此,可以用来进行光谱测量。被测光源发出
[单片机]
基于单片机控制的光谱<font color='red'>数据</font><font color='red'>采集系统</font>的设计
基于PCI ExPress总线传输的视频采集系统方案
  视频采集系统在工业领域应用广泛,随着多媒体技术的快速发展,对视频采集、处理和传输性能的要求也不断提高,如高采集速度、低功耗、抗干扰性、实时性及扩展性等。这里提出了以Virtex-5为核心,由ADV7188为视频解码器,PCIExpress为传输总线组成的集视频采集、压缩、传输于一体的多功能视频处理系统。该系统能够实现实时海量传输多路数字视频。Virtex-6支持的PCI Express的×1通道的传输率已达3.2Gb/s。   由于该系统设计体积小、功耗低且满足工况要求,可应用于公共场合、工厂和井下作业等需多点远距离监控环境较恶劣场所。   1 PCI Express总线简介   PCI Express是一种主流的串行标
[测试测量]
基于PCI ExPress总线传输的视频<font color='red'>采集系统</font>方案
是德科技推出64通道同步相位相干数据采集系统
是德科技公司日前宣布成功开发出高密度64通道同步高速数据采集系统。该系统包括8个安装到14插槽机箱中的M9703A AXIe高速数字化仪模块,专为卫星通信系统相关领军企业开发,能够满足严苛的多通道同步和FPGA可重开发功能要求。 是德科技发布的该模块化系统解决方案以AXIe平台为基础构建,具有紧凑坚固的封装结构,能够极大降低系统尺寸并提升采集通道数量。该系统采用创新设计,基于单台AXIe机箱和8 个高速数字化仪模块,通过独有AXIe本地背板总线实现高精度同步,支持单台机箱安装多达 13个模块以扩展到104个通道。 是德科技研发项目经理Pierre-François Maistre表示:“AXIe多通道多模块同步功能是该系统的
[测试测量]
基于DSP和CMOS图像传感器的实时图像采集系统的实现方案
DSP是基于可编程超大规模集成电路和计算机技术发展起来的一门重要技术,DSP芯片的快速数据采集与处理功能以及片上集成的各种功能模块为DSP应用于各种场合提供了极大的方便。而CMOS图像传感器与CCD相比,由于CMOS图像传感器能将时序处理电路和图像信号的前端放大与数字化部分集成于一个芯片内,因而其发展一直受到业界的高度重视。现在,随着技术与工艺的发展,CMOS图像传感器不仅在噪声上得到了有效改善,而且分辨率也得到了明显提高。CMOS图像传感器将以其低廉的价格、实用的图像质量、高集成度和相对较少的功耗在视频采集领域得到广泛的应用。为此,本文提出了一种基于DSP和CMOS图像传感器,同时由复杂可编程逻辑控制芯片CPLD控制的实时图像采
[嵌入式]
基于M—BUS的趣低功耗数据采集系统
引 言   随着社会的迅速发展,智能小区逐渐进人人们的生活,而自动抄表系统是智能小区的重要功能之一。在水、电、气管理方面,采用自动抄表技术,不仅能节约人力资源,更重要的是可提高抄表的准确性,减少因估计或誊写而造成帐单出错的现象,使水、电、气管理部门能及时准确获得数据信息。另外用户不再需要与抄表者预约上门抄表时间,还能迅速查询帐单,所以这种技术越来越受到用户欢迎。   针对目前市场上自动抄表系统价格不菲的现状,设计一种由零功耗磁敏传感器产生脉冲信号,利用MSP430系列超低功耗单片机的捕获功能捕获信号的数据采集系统。该采集系统价格相对低廉,性能可靠,适用于水、煤气、电表的远传采集;数据传输总线选用M-BUS,传输速度快、距离远、可
[单片机]
基于ARM和CPLD的高速数据采集系统设计
随着人们对高空的兴趣发展和研究需要,越来越多的科学实验被科研人员搬到了空中进行,气球探空和无人机实验是比较典型的方法。这些科学实验往往需要在一定的实验条件到达时触发某特定实验现象,从而对发生时间非常短促且不具备可重复再现性的实验目标数据进行高速采集。日前,笔者参与的项目中需要完成的任务是:通过无线通信实现对高空实验设备进行控制,对整个实验过程进行实时观察分析(其中的实验条件数据通过GPS接收机,红外虚拟逻辑分析仪等设备实时采集),待实验到达触发条件时,通过手动(或自动可选)的方法实施触发,再对触发后的实验目标数据进行采集并传回地面PC进行后续的分析处理。该项目采用ARM和FPGA分别作为主从处理器设计嵌入式采集系统,采用多通道
[单片机]
基于ARM和CPLD的高速<font color='red'>数据</font><font color='red'>采集系统</font>设计
心电数据床边采集系统的开发研究
    摘要: 系统地介绍了心电数据床边采集系统的开发研究,着重其中的若干关键技术:具有多路选择功能的高性能前置放大电路,以51单片机为核心的软、硬件结构,具有12位分辨率的多通道A/D采样,实时高效的数据压缩算法等。     关键词: 放大器  多路选择  单片机  ECG信号压缩     心电诊断较大程度地依赖于对心电数据的处理分析。传统的12导联心电放大系统中,体表心电信号由导联缓冲电路输入后由12路放大电路分别进行放大,最后接入微机系统的12位A/D采样板上。由于每一导联的心电放大电路的通道结构和组成元件完全相同,不同的只是输入信号。因此这些结构重复、功能相同的电路便利传统的心电放大器体积庞大,再加上存放数
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved