历史上的今天
返回首页

历史上的今天

今天是:2024年10月28日(星期一)

正在发生

2019年10月28日 | 基于LabVIEW的数控机床网络测控系统--B/S模式的软件设计(一

2019-10-28 来源:eefocus

  5 基于B/S模式的数控机床网络测控系统软件设计


  5.1下位测控机的数据采集、显示及存储回放软件设计

  下位机测控服务器系统软件包括接口仪器驱动软件和应用软件两部分。其中,接口仪器驱动程序是完成对某一特定仪器的控制与通信的软件程序集合,是连接上层易用软件和底层软件的纽带和桥梁。每个仪器模块都有自己的软件驱动程序,仪器厂商将其以源码的形式提供给用户,用户在应用程序中调用仪器驱动程序。应用程序包含两方面的程序:实现虚拟面板功能的前面板软件程序和定义测试功能的流程图软件程序。它主要功能是给用户提供操作仪器、显示数据的人机接口;实现数据的采集、分析处理、显示、存储等;并将需要在客户端显示的数据发送到Web服务器,同时从Web服务器接收来自远程客户端的控制命令。


  5.1.1数控机床测控软件的结构化设计

  本文中数控机床数据采集系统的软件基本结构包括数据采集、数据处理、存储回放及用户界面等几部分。测控软件设计时可以采用面向对象的设计分析方法,通过仔细地规划和设计,使程序结构清晰,便于维护、修改、增加。软件程序结构图如图5.1所示。

  

软件程序结构图

 

  结构化的程序主要包含以下功能模块(结构图见上图5.1所示):

  ①A/D通道校准模块

  采集之前对采集通道校准以保证A/D通道的准确度。

  ②电流采集模块

  电流采集模块采用AD转换器的数据采集卡,试验中采集数控机床的消耗电流。

  RRBDP软件对采集到的数据进行各种形式的滤波,曲线拟合、平滑等处理。

  ③传感器校准模块

  对电流传感器做标定以确保传感器输出信号尽可能接近真实值。

  ④激光干涉仪数据模块

  通过USB接口通讯,获取干涉仪采集的长度并经过分析后送往其它模块。

  ⑤摄像头数据采集及显示模块

  该模块负责完成视频采集显示和分析数控机床运动情况。

  ⑥测试数据分析模块

  对测试数据进行分析、匹配,建立数学模型并送往曲线显示模块。

  ⑦实时曲线显示模块

  实时显示消耗电流、定位精度以及坐标的关系曲线,采用具有很好的视觉效果的LabVIEW中的XY图来绘制曲线控件驱动。波形直观、精细、易于观察。

  ⑧波形分析模块

  对关系曲线(即波形)依据需要研究的分项进行分析,将分析结果及波形做为输出数据以特定文件格式存储起来。

  ⑨测试日志记录配置模块

  记录试验数控机床的信息、试验次数、试验日期、试验人员以及输出数据文件目录。

  ⑩历史曲线回放模块及历史数据

  导出模块载入以前试验后生成的数据和波形文件并回放出来,确保以前的试验结果可追溯。


  5.1.2数据显示与存储回放程序的设计

  本章数据显示与存储回放程序设计所需的基础知识包括:数控编程、数控机床操作、电路基础、VC++、C++、Web Service、LabVIEW和测试仪器等。基于以上程序开发结构和基础,设计的各功能模块显示界面如下图5.2所示:

  

LabVIEW数据实时采集显示界面

  图5.2是LabVIEW数据实时采集显示界面,软件的操作过程说明如下:


  (1)AD通道校准是指对采集板卡的计量校准,如果测得模拟量没有在精度要求范围内,软件有自己校准功能。

  (2)参数设置界面是按照用户的要求来配置一些参数,比如说位移的起始点、终止点、步长等参数。

  (3)测试界面如上图5.2所示,也是软件的主界面,但选择好测试方式后,(硬件部分连接好的情况下)就开始了实时采集与显示。对于采集的数据,测试完毕后,点击保存可以保存到Excel表中,也可以保存成特定格式的数据,在将此数据倒到分析软件中,进行无偿的分析,从而可以进行相应的补偿。但是对于工厂中大量的测试数据数据库是首先存储方式。可以利用LabSQL方式向数据库数据表添加记录,假设数据表为位移Displacement表。具体步骤如下:

  ①建立与数据库的连接。首先通过ADO Connection Create.vi创建一个Connection对象,然后利用ADO Connection Open.vi建立与数据库的连接。数据库由ADO Connection Open.vi的ConnectionString指定,此参数由前面板的字符串控件提供,如下图5.3所示。


  ②生成SQL命令,执行命令。在前面板table控件中输入表名,Current和Error控件中输入字段值。在程序框图中使用Format Into String生成SQL命令,将它连接到ADO Connection Execute.vi即可执行,同时可在前面板Command Text控件显示此命令。


  ③断开与数据库之间的连接。利用ADO Connection Close.vi关闭Connection对象,并使用ADO Connection Destroy.vi删除Connection对象。

  

向数据表添加记录的程序框图

 

  (4)历史数据回放界面,可以根据用户需要,按照测试的日期时间打开所需要回放查询的文件。数据回放界面绘制出的相应历史曲线如图5.4所示。

  

历史数据回放界面

 

  在实时与历史曲线显示部分,趋势曲线能够形象清楚地描绘出现场数据在一段时间内的分布趋势,通过趋势图,操作员可以根据各个现场数据采集点的数据的变化趋势看出各个量的变化情况,且能查看任何历史时刻的数据,供现场操作人员作出适当的处理。


  5.1.3数据记录监控模块DSC的应用

  (1)测控系统在上述功能的实现过程中,遇到了三个实际工程问题:

  ①监控界面中现场数据显示的速度慢,最慢达到5秒的延迟,很显然这不符合工业现场过程控制实时性的要求。


  ②由于LabVIEW软件本身不像FIX工控软件一样,带有实时数据库。当系统比较小时,即在控制点数少的情况下,实现监控功能可以利用全局变量的概念,将监视或控制的现场测量点都看作是全局变量,暂且称它们为“全局变量库”。然后把LabVIEW实现的各个功能看作是一个子程序,每一个子程序都是从全局变量库中取数据或向里写数据。也就是将这个“全局变量库”看作是一个实时数据库,现场每一个测量点都与库中的参数一一对应。这种方法在控制点数少的情况下还是可行的,但是,当系统是大中型的情况即现场控制点数很多的时候,在实践中发现,使用全局变量的方法,不仅编程量大,而且数据查找起来没有数据库查找起来方便快捷,另外,全局变量一直是编程人员所尽量避免使用的方法。


  ③由于在实际的过程控制监视中,要求各个界面之间来回的切换,实现界面的友好操作性。FIX监控软件通过编程有调用各个界面的函数,可以方便的实现界面之间的切换。然而,在用LabvEIW实现界面之间切换的过程中,将上述的“全局变量库”作在“数据总揽”的界面里,其它各个子程序(界面),例如,“实时和历史曲线”、“历史数据”、各个流程图等,都是和它进行数据交换。所以“数据总揽”子程序起着实时数据库的作用,它在系统运行的过程中不能被关闭,本课题是利用VI Sevrer技术使得“数据总揽”子程序在系统己开运行时就以最小化的形式开始运行,保证数据的实时性。但是,考虑到“历史数据”和“历史曲线”两个子程序由于需要存取历史数据的原因,而在系统运行的过程中不能被关闭,所以也将它们始终处于最小化的状态运行。按照上述的做法,发现在系统运行过程中,各个界面之间切换起来速度较慢,这不能充分满足现场过程控制的实时性和可靠性的要求。


  (2)基于DSC模块的问题解决方法

  第一个问题,数据读和写的速度有明显的差别。利用Datasocket技术编程实现数据的读和写,写数据的速度却很快。所以可能是编程中出现的数据缓冲或者程序中等待事件的发生执行效率低的原因,决定数据显示部分通过在前面板直接用Datasocket连接OPC服务器。结果数据显示速度明显达到几百毫秒,满足了实时要求。而且这种方法开发时间短,效率高。


  用LabVEIW能够初步实现数据采集、显示和存储等功能的前提下,考虑到NI公司推出的LabVIEW一附加模块——数据记录监控模块DSC(Datalogging and Superviosry Control Module),此模块是专为过程控制而设计开发的,是专用于轻松设计和维护分布式监控系统的理想软件工具。利用这个模块可以很方便地完成与设备的连接,包括LabVEIW实时目标模块和OPC设备。从系统概览到节点执行,该模块提供了内置式的开发工具,来成功记录数据、警报和事件;显示生产数据随时间变化的趋势;同时还可通过网络数据库,利用SQL/ODBC标准查询从中提取数据。该模块的应用增强了搜索和提取数据的灵活性,提高了数据记录的可靠性和保护能力 。


  相比其它附加模块,DSC模块有以下六个特点:内置的网络开发工具;用于实现数据共享和与第三方设备结合;应用的安全性设置;针对分布式监控的开发工具;用于分布式数据记录的网络数据库;实时和历史趋势曲线。


  (3)“LabVEIW+DSC”相结合运用“LabVEIW+DSC”相结合,软件体系结构图如图5.5所示。

  

“LabVEIW+DSC”软件体系结构图

 

  为提高系统的开放性,选用了“LabVIEW+OPC”的设计方法。就是用LabVIEW作为上位机监控软件,采用先进的网络通信技术——DataSocket技术,通过OPC服务器接口来实现现场数据共享。这里采用的OPC服务器是Matrikon公司研发的,它作为一中间桥梁,实现了监控软件LabVIEW和现场智能组件之间的数据通信,通过OPC配置项建立与底层设备的数据采集点的一一对应关系。如下图5.6所示:

  

OPC服务器的配置项

 

  图5.6是OPC服务器的配置,其中项名Name是用户自己定义的对应于现场的数据采集点,Item Path必须符合OPC服务器与MODBUS协议的语法要求,即“[port].Device. 0~4:”,同时设置该项是读数据还是写数据以及数据的类型、更新时间等等 。


  LabVIEW访问OPC的方法有很多种,本文采用的是通过DSC模块中Tag Configuration Editor引擎,建立LabVIEW和OPC服务器的连接。DSC模块使用Tag连接OPC数据项,通过Tag Configuration Editor,可以将DSC的Tag与OPC数据项对应起来,生成.scf文件,相当于LabVIEW的实时数据库,如图5.7所示。

  

.scf文件图


推荐阅读

史海拾趣

ANSHAN [Anshan Suly Electronics]公司的发展小趣事

近年来,随着电子行业的竞争日益激烈和市场环境的不断变化,ANSHAN公司面临着前所未有的挑战。然而,公司始终保持着清醒的头脑和坚定的信心,积极应对各种挑战。公司不断调整战略方向,优化产品结构,加大创新力度,推出了一系列具有竞争力的新产品。同时,公司还积极拓展新的市场领域和合作伙伴,为公司的持续发展注入了新的动力。

这五个故事展示了ANSHAN公司在电子行业发展中不断克服困难、取得成就的历程。从创业初期的艰辛与坚持,到技术突破与产品升级,再到市场拓展与品牌建设、人才培养与团队建设以及应对挑战与持续创新,ANSHAN公司始终保持着坚定的信念和不懈的努力,在电子行业中谱写了一曲曲壮丽的篇章。

Daniel Woodhead公司的发展小趣事

Daniel Woodhead公司在电子行业的起点可以追溯到创始人Daniel Woodhead对先进半导体技术的热情。在当时,半导体技术正逐渐崭露头角,Daniel看到了其中的巨大潜力。他带领团队日夜研发,成功开发出了一款性能卓越的微处理器,这款处理器凭借其高效能和低功耗在市场上脱颖而出,为公司赢得了第一桶金。

法思特(FAST)公司的发展小趣事
有序启动可以确保每个热水器都有足够的时间来加热和稳定水温,从而保证水温的均匀性。
FILTRONIC公司的发展小趣事

FILTRONIC公司成立于上世纪90年代初,正值通信技术快速发展的时期。公司初创时便聚焦于滤波器技术的研发与生产,针对当时市场对高性能滤波器的迫切需求,FILTRONIC的研发团队通过不断试验与优化,成功开发出了一款具有创新性的高性能滤波器产品。这款滤波器在频率选择性和插入损耗方面表现出色,迅速获得了市场的认可,为FILTRONIC在电子行业中站稳脚跟奠定了坚实的基础。

Eastman Kodak Company公司的发展小趣事

进入21世纪后,随着数码技术的迅速崛起,传统摄影市场遭受了巨大的冲击。面对这一挑战,伊士曼柯达公司开始尝试向数码领域转型。然而,由于公司在数码技术方面的积累相对较少,转型过程并不顺利。尽管如此,柯达仍然坚持创新,不断推出新的数码产品,以应对市场的变化。同时,公司还加强了与数码技术公司的合作,共同研发新产品,以提高市场竞争力。

Frolyt Condensers & Elements GmbH公司的发展小趣事

随着业务规模的扩大,Frolyt Condensers & Elements GmbH意识到全球化布局的重要性。2010年,公司制定了全球化战略,首先在亚洲设立了生产基地,以利用当地丰富的资源和低廉的劳动力成本。随后几年间,Frolyt还通过一系列并购活动,收购了多家在特定市场具有影响力的电容器制造商,进一步巩固了其在全球市场的地位。这些并购不仅扩大了Frolyt的产品线,还增强了其技术研发能力和市场服务能力。

问答坊 | AI 解惑

开关电源中几种过流保护方式

开关电源中几种过流保护方式…

查看全部问答>

如果delay()过程中,出现软中断会怎么样 ?

代码如下, 已知0x1c中断是个软定时中断, 每隔1/18秒执行一次 setvect(0x1c,new1cv); ...代码 delay(20); //延迟20ms ...代码 其中0x1c中断是一个软定时中断,如果程序在执行delay的20ms内, 正好0x1c中断到了, 程序是等着delay(20)执行完 ...…

查看全部问答>

招WINCE驱动工程师一名

公司现欲招WINCE驱动工程师一名 最好会WIN32应用程序编写 工资多少?我不知道 公司啥名?你加我我告诉你 QQ:502240410 哦对了公司在北京 大家别喷我啊 我也不是职业招人的 临时客串而已......…

查看全部问答>

cmd文件

本帖最后由 dontium 于 2015-1-23 13:30 编辑 我从TI网站上载了一些历程,发现里面的 工程里都有两个CMD文件. DSP281X_Headers_nonBIOS.cmd F2812_EzDSP_RAM_ink.cmd 请问高手,这两个CMD文件都起什么作用? 它们会不会冲突? …

查看全部问答>

avr/51/pic/arm 强强联合 请进

各位单片机爱好者,有兴趣请加入单片机爱好者群:100955523,是大家一起技术交流,技术分享的联盟。。。 …

查看全部问答>

差动放大器——良好匹配电阻器不可或缺的器件

本帖最后由 dontium 于 2015-1-23 12:43 编辑 在单片IC设计过程中,我们常常会竭尽所能地对内部组件进行精确的匹配。例如,精确匹配运算放大器的输入晶体管,旨在获得低失调电压。如果我们必须使用属于我们自己的离散晶体管运算放大器,则我们会得 ...…

查看全部问答>

CC2530技术问题咨询

TI技术工程师:     您好,直入主题,我现在碰到一个问题,想请教您。     现在做的项目是:无线射频(2.4G)CC2530的射频子板,现在投的PCB样机,并找专业人员手工焊接。     原理图和PCB版图基本上是按照德州仪器 ...…

查看全部问答>

multisim的波特图仪的分辨率能设置吗

有哪位神用multisim求教。 这个分辨率太低了怎么设置? 左从48.245调一下直接到了51.979 求指教,这个能改吗?怎么改?我这要求最好0.1格或0.5皆可。 file:///C:/Users/Administrator/AppData/Roaming/Tencent/Users/84246146/QQ/WinTemp/RichO ...…

查看全部问答>

在CCS中如何将数据定义在INFOflash中

各位高手,在CCS中如何将数据定义在INFOflash中。在IAR中可以使用root关键字,不知道在ccs里面如何定义,找不到关于编译器的使用手册。…

查看全部问答>

static和extern的区别

static和extern的区别static: 一、在C中,static主要定义全局静态变量、定义局部静态变量、定义静态函数。 1、定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量。全局静态变量有以下特点。     & ...…

查看全部问答>