历史上的今天
返回首页

历史上的今天

今天是:2025年03月15日(星期六)

2020年03月15日 | labview串口数据保存_labview如何对串口数据缓存

2020-03-15 来源:elecfans

LabVIEW是一种基于图形编程语言的开发环境。它与传统编程语言有着诸多相似之处,如相似的数据类型、数据流控制结构、程序调试工具等。但二者最大的区别在于:传统编程语言是用文本语言编程,而LabVIEW用图形语言(即各种图标、图形符号、连线等)编程。

编程简单方便,界面形象直观,具有强大的数据可视化分析和仪器控制能力。


Labview有丰富的文件操作函数库,可以方便地进行文件的读写。Labview可以读写文本文件、数据报表文件、二进制文件和测试文件。主程序中从VISAread的readbuffer端读上来的数据需要转换成表格数据进行保存,数据的保存分为两个阶段。第一阶段,通过表单形式(带时间头)显示在主程序界面,方便用户直观查看测试参数是否已满足要求。第二阶段,把表单数据保存到Excel文件中,可供用户打印查询。如果数据不需直观显示在主程序界面上,也可保存到TXT(可以用Excel打开)文件中。


1、数据显示模块的设计

工程中充分考虑动态实时性,显示的每一帧数据都对应不同的时刻,并且对于数据显示、存储功能可以进行时间大小、时间间隔设定,以满足不同测试时刻的数据要求。图1为显示子程序显示的动态数据表格。

labview串口数据保存_labview如何对串口数据缓存

图1


考虑到读串口的频繁性,我们提出两种可能:①上位机需要周期性的对串口进行读操作,这样一来串口上来的数据最好也能周期行性地显示、保存;②上位机对串口的读操作是非周期性的,而且间隔时间有时较长,这样串口数据上来时显示,没有数据上来就不显示。

对于第一种情况图2给出了具体的子程序代码。主程序中上来的一串串口数据经过StringSubset这一功能模块各个参数被依次分割开来。再经过MergeSignals和BuildTable最终实现为图1中的Table3。从图1中我们看到了数据被以3s的间隔周期性的保存在表单中。怎么来实现这种周期性呢?这就需要在While循环中用到Combobox控件,预设好各种需要的保存周期以供选择。值得注意的是图1中子程序显示的数据是模拟输入的固定值。

labview串口数据保存_labview如何对串口数据缓存

图2


对于第二种情况需要在源程序(图2)的基础上稍加改动,在原程序中去掉Combobox控件。为了实现数据上来才显示,没数据上来就不显示的功能,可以考虑增加一个Case框,设置一个局部变量(串口是否有数据读上来)来决定执行显示操作还是执行不显示操作。具体的程序读者可自行编写。


工程中因为要直观实时显示各个测试参数,把每个参数数据都接到了各自的WaveformChart(实时趋势图控件),这样各个参数的波形变化就能被趋势图实时显示了。用户就能直观地从PC上判断测试参数是否满足要求了。

2、把主程序显示的表单记录保存到文件

程序中串口数据可以直观的显示在前面板上并保存下来,但是为了对实验结果进行精确分析,数据存储也很重要。好的数据保存有利于数据的后期处理和分析。


在实时测试主程序的界面图中,继上个模块数据显示在主程序表单中后,测试设置按钮用一个Boolean类型按钮“保存数据”,它就是用来设置数据是否保存的设置按钮。当它为True时,表单中所显示的所有实时测试数据即可保存到指定的测试文件中;当它为False时,实时测试数据将不被保存。其实质是用户通过保存设置按钮的状态有选择地决定数据是否保存。在LabVIEW7.1/help/findexample自带的例子中就有这样的程序,所需要改动的就是把其中的Table换成所需要保存的Table,创建相应的属性节点,并分别选中Rowheaders[],Columuheaders[]有效。这样⑴中的表单文件就可以连同行表头和列表头一并保存到文件中。

推荐阅读

史海拾趣

EDAL公司的发展小趣事

随着技术的不断进步和市场的变化,EDAL公司意识到必须不断优化产品以满足客户的需求。公司投入大量研发资源,对EDA工具进行迭代升级,推出了更加智能化、用户友好的产品。同时,EDAL公司积极拓展市场,与全球各大芯片设计公司建立了合作关系,将产品销售到世界各地。

Cembre SPA公司的发展小趣事

在追求经济效益的同时,Cembre SPA也积极履行社会责任。公司注重环保和可持续发展,采用环保材料和生产工艺,减少对环境的影响。此外,公司还积极参与社会公益事业,为社会做出贡献。这种负责任的态度不仅赢得了社会各界的认可,也为公司的长远发展奠定了坚实基础。

这五个故事展示了Cembre SPA在电子行业中的发展历程和取得的成就。通过技术创新、国际化战略、品质至上和社会责任等措施,公司逐渐在电气连接和固定技术领域树立起了自己的品牌形象和市场地位。

AEM [ American Electronic Materials]公司的发展小趣事

AEM深知人才是企业发展的核心竞争力。因此,公司一直注重人才培养和团队建设。AEM建立了完善的人才培养和激励机制,吸引和培养了一批高素质、专业化的员工队伍。同时,公司还为员工提供了良好的工作环境和发展空间,鼓励员工不断创新和进取。

在团队建设方面,AEM注重团队合作和沟通协作能力的培养。通过定期的团队建设活动和内部培训,AEM打造了一支团结、高效、富有战斗力的团队,为公司的持续发展提供了有力保障。

这五个故事从不同角度展示了AEM公司在电子行业中的发展历程和取得的成就。通过不断创新、合作与拓展,AEM已经成为电子行业中具有重要影响力的企业之一。未来,随着技术的不断进步和市场的不断变化,AEM将继续保持其领先地位,为电子行业的发展贡献更多力量。

Fenwal Controls公司的发展小趣事

在电子行业快速发展的同时,Fenwal Controls也面临着诸多挑战和危机。例如,随着环保法规的日益严格,公司需要不断升级产品以满足环保要求。此外,原材料价格的波动和劳动力成本的上升也给公司带来了不小的压力。然而,Fenwal Controls凭借其强大的研发能力和敏锐的市场洞察力,成功应对了这些挑战和危机。公司通过优化生产流程、提高生产效率、降低生产成本等措施,有效缓解了外部压力,保持了公司的稳定发展。

Fairchild (ON Semiconductor)公司的发展小趣事

2016年,Fairchild Semiconductor被ON Semiconductor收购。这一收购标志着Fairchild Semiconductor的发展进入了一个新的阶段。ON Semiconductor是一家全球领先的半导体公司,拥有广泛的产品线和强大的技术实力。通过整合Fairchild Semiconductor的技术和资源,ON Semiconductor进一步巩固了其在半导体行业中的领导地位,并继续为全球客户提供优质的半导体产品和服务。

Blue Sky Research公司的发展小趣事

Blue Sky Research深知人才是企业发展的核心。因此,公司一直注重人才培养和团队建设。通过招聘优秀的研发人员、销售人员和管理人员,公司打造了一支高素质、专业化的团队。同时,公司还建立了完善的培训体系和晋升机制,为员工提供广阔的职业发展空间。这些措施不仅提升了员工的归属感和忠诚度,也为公司的长期发展奠定了坚实的基础。

问答坊 | AI 解惑

诺基亚新机皇N97清晰原理图下载

对手机感兴趣的朋友可以下来看看啊…

查看全部问答>

ARM中断原理, 中断嵌套的误解

几天前一个学生问我ARM中断嵌套的问题,我才发现原在我心中理所当然的事对学生来说理解实属不易。     ARM有七种模式,我们这里只讨论SVC、IRQ和FIQ模式。     我们可以假设ARM核心有两根中断引脚(实际上是看不见的),一 ...…

查看全部问答>

延时子程序的机器周期计算问题

有2个延时的子程序 1.用for循环 void delay(void) {         unsigned int i;         for (i = 0; i < 100; i++)         {} } 2.用while循环 void delay(void) {   ...…

查看全部问答>

请问大家有知道一个叫conke的嵌入式高手吗?

最近想好好系统学习一下嵌入式开发,但是自己学,真的太费劲,所以找了找学习的地方,看到一个叫尚观的机构里有一个叫conke的高手,请问大家有知道这个人的吗?因为课程是他讲,所以想了解了解,小弟先跪谢了。…

查看全部问答>

求一个电流源方案(要求幅度最大1A且可调,频率最高1M可调)

现在系统中需要一个电流源(输出正弦波,要求幅度最大1A且可调,频率最高1M可调),很多函数发生器芯片还是DDS芯片都是输出电压很容易的,如果用来做电流源,V-I转换模块太麻烦了。 求助下高手们,有什么好的建议,谢谢了!…

查看全部问答>

触摸屏驱动的TOUCH_MAX_X、TOUCH_MIN_X等值是根据什么设定的?

我开发板的LCD是800*480的,开发板提供的nk.bin文件没有问题,但是我自己使用其提供的BSP包定制的时候,出现边缘无法正确点击的情况。我查找资料是TOUCH_MAX_X、TOUCH_MIN_X定义的问题,但是我不知道这几个值该如何确定。       &n ...…

查看全部问答>

移植linux到U盘时,启动遇到mount: could not find filesystem '/dev/root'

本人想把硬盘上的linux 2.6.28系统移植到U盘上,一个vmlinux 和 initrd.img在硬盘上运行良好。硬盘分了7个分区,sda1 是boot分区,sda2是根分区,一个2G的U盘,分了2个分区,都格式成ext3,sda1是boot分区,copy硬盘boot里的东西,打算把root挂在sd ...…

查看全部问答>

TMS320X281xDSP应用系统设计光盘

TMS320X281xDSP应用系统设计光盘 …

查看全部问答>

VHDL语言简介及相关的语法

VHDL语言简介及相关的语法适合初学者,对VHDL语法介绍全面,还有相关的例子哦…

查看全部问答>

数据宽度改变时的地址偏移

比如32宽数据口的cpu想问的是:  我用16、32位方式访问设备,A0怎么办?用arm cpu时,例如接16位外设时,a0不用,直接把a1接到芯片的“a0”上了。哪位大侠能给详细讲讲?…

查看全部问答>