×
测量测试 > 测试测量应用 > 详情

LabVIEW在串口通信中的应用

发布时间:2020-10-20 发布时间:
|
首先介绍了LabVIEW的环境及VISA串口通信函数的功能;其次引入了本文的采集对象JCZ型智能转矩转速传感器,并对其性能、物理结构及串行通信特点进行了说明,利用LabVIEW的开发平台编写通信源程序,实时采集转矩和转速,并计算功率值,最后把转矩、转速和功率数据以动态曲线的方式在同一张图表中显示出来。经过实验验证,该程序操作方便,采集数据准确,运行安全可靠,动态曲线显示直观,可真正在生产实际中使用。

LabVIEW是当今最流行的图形化编程环境,由于其采用图形化的编程方式,因此也被称作G语言(graphical language)。LabVIEW是目前国际上唯一的基于数据流的编译型开发软件,与基于文本的编程语言不同,LabVIEW的程序由图形语言构成,用简单或图标提示的方法选择功能(图形),并用线条把各种功能(图形)连接起来的简单图形编程方式,使得不熟悉编程的工程技术人员都可以按照测试要求和任务快速“画”出自己的程序,“画”出仪器面板,从而大大提高了工作效率,减轻了科研和工程技术人员的工作量。由于LabVIEW软件简洁直观,功能强大灵活,目前广泛应用于自动化测量系统、工业过程自动化、实验室仿真等各个领域。

在LabVIEW中编制的程序叫做虚拟仪器程序,简称VI。一个VI包括前面板和框图程序。前面板类似实际仪表面板,可以放置诸如旋钮、按钮和文本框等控制和显示元件。框图程序是实现程序功能的核心部分,包括以图标为代表的常数、函数和VI程序等,并通过连线引导数据流,编写和调试程序都很直观方便。

一 : LabVIEW串口通信介绍

仪器控制是LabVIEW最具竞争力的核心技术之一。在安装了适当的硬件驱动程序之后,LabVIEW能轻松实现与任何NI提供的硬件设备通信。不仅如此,通过通用的驱动程序(DAQmx)或接口,例如VISA、IVI、OPC、ActiveX、DLL等,LabVIEW几乎能与任何厂商甚至自制的硬件通信。

LabVIEW通过VISA与串行接口仪器通信。VISA是应用于仪器编程的标准I/O应用程序接口(API),它本身并不具有仪器编程能力,而是为用户提供了一套独立的可方便调用的标准I/O底层函数。无论对于GPIB、串口还是其他接口,用户只要调用这些标准函数,则VISA就会根据实际接口类型自动调取相应的接口驱动程序例程,方便实现上层应用程序与接口总线仪器的通信。在LabVIEW里使用VISA,必须安装NI-VISA程序包,安装后,与串口通信相关的VISA函数位于Functions->ALL Functions->Instrument I/O->Serial子模板上,如图1所示。

此主题相关图片如下:



图1VISA串口通信函数

此模板共有8个操作函数,其中,第一行的4个函数在串口通信中经常应用。下面简单介绍这4个常用的VISA串口函数。

1 VISA配置串口 设定波特率、数据位、停止位、奇偶校验位、流控制、超时处理、终止符和终止符使能等参数,将VISA资源名称指定的串口按特定设置初始化。 注意:超时(TIMEOUT)和终止符两个参数。TIMEOUT默认10秒;终止符是0X0A(),默认是使能状态。另外,回车0X0D()也经常作为终止符。采用二进制通信,就要特别注意终止符的情况。因为0A对应的十进制是10,0D是13,当传输的二进制对应的十进制刚好为10或13时,如果不禁止终止符,会导致“VISA读取”提前结束,产生错误的结果。因此,经常要把“启动终止符”的布尔输入设置为“F”。

2 VISA写入 将“写入缓冲区”的数据写入VISA资源名称指定的串口。 注意:MSCOMM串口通信可以选择文本或二进制方式接收或发送数据,但是,VISA通信接收或发送数据都是字符串(ASCII)。若接收或发送的字符串是“1、2、3、4”,在内存中存储的是ASCII,因为“1”=31(十六进制)、“2”=32(十六进制)、“3”=33(十六进制)和“4”=34(十六进制),所以串口缓存接收/发送的数据实际是16进制的31、32、33、34。

3 VISA读取从VISA资源名称所指定的串口中读取指定字节的数据,并将数据返回至读取缓冲区。有时不知道串口缓存区有多少字节的数据,以防字节总数设置错误,这时字节总数可以用属性节点获取,即把属性节点输出端子接入“VISA读取”节点的输入端子“字节总数”。

4 VISA关闭关闭VISA资源名称指定的串口会话句柄或事件对象。

二:串口通信编程实践

JCZ型智能转矩转速传感器是湖南湘仪动力测试仪器有限公司利用美国ECHELON公司的LonWorks技术在原JC型转矩转速传感器基础上设计制造的新一代产品,它的外形结构如图2所示。JCZ型智能转矩转速传感器具有高精度、高可靠性的优点,同时,它还具有自动零点补偿,自动随环境温度修正传感器系数等智能化特性,在转速很低时也能精确测量转速。当使用LonWorks网络传输时,通讯距离可达到2公里,还可以很方便地与计算机及其它智能传感器或智能节点组成测控网络系统。目前,JCZ型智能转矩转速传感器在电机、风机、机车、汽车、矿山机械等许多生产部门中广泛应用。

此主题相关图片如下:



图2JCZ型智能转矩转速传感器外形结构图

JCZ型转矩转速传感器的基本原理是:通过弹性轴、两组磁电信号发生器,把被测转矩、转速转换成具有相位差的两组交流电信号,这两组交流电信号的频率相同且与轴的转速成正比,而其相位差的变化部分又与被测转矩成正比。因此,通过分析这两组交流电的频率和相差信号就可以实现转矩和转速的测量。电信号处理部分是以ECHELON公司的3150神经元芯片为核心组成,把电信号处理成可利用双绞线等传输介质进行网络传输的网络变量,或者处理成直接可与计算机RS-232串口通信的信号。本文JCZ型转矩转速传感器使用异步串行通信接口,其数据格式为1个起始位,8位数据,无校验位,1个停止位,波特率为4800bps。因此,设置完串口通信参数后,通过专门配置的信号线,此传感器的输出信号就可以送到计算机中。

JCZ型转矩转速传感器发送16进制显示的字符串来表示各种指令代码及数据,每次发送的数据包共计21字节,起始段为字符A,占1字节;接下分别为转矩和转速,每个数据占10字节,具体如下表所示:

头“A”(1byte)转矩数据 (10byte)转速数据 (10byte)


假如串口接收的一个数据包为41 34 31 2E 31 38 37 31 30 30 30 32 36 2E 32 33 36 30 30 30 30等21字节十六进制数。其中,头字节41,刚好是字符A的十六进制表示;接下从34 31~30这10字节,为字符显示的字符串41.235的十六进制表示,而41.235即为实际转矩数据;从32、36~30这最后10个字节转换为字符显示的字符串后可得到实际的转速值。因此,要注意把串口接收的数据包先进行字节分离,再分别转换为字符显示的字符串,所得到值才是实际的物理量。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
基于SDS2000浅谈数字示波器的死区时间