Labview串口通信开发实例(值得拥有)

合集下载

labview--串口通信实现过程

labview--串口通信实现过程

实现串口通信步骤1.在程序面板上添加配置接口2.添加后,开启帮助文档的显示。

菜单的> ,如下图鼠标选择目标则会显示帮助框。

如下图所示。

3.创建相应的配置在程序面板中鼠标移动到对应的引脚上,点击鼠标右键->>,创建后,界面面板上会出现对应的控制框。

如下图所示,创建个。

图错误!未指定样式名。

-错误!未指定顺序。

创建窗口选择控件前面板显示如下:图错误!未指定样式名。

-错误!未指定顺序。

前面板显示控件选择4依次创建,波特率、停止位、数据位等如下图所示。

5.创建个循环,用于放置发送的程序鼠标移动到循环条件控制的引脚上,创建个。

用于调试,不对条件处理,会报错。

6前面板放置个按钮,用于控制数据的发送7.创建个事件,用于响应发送按钮鼠标移动到的位置,鼠标右键选择…如下图所示。

操作上面后,出现如下界面:选择需要响应的控件,这里选择“”,选择鼠标按下。

点击后,事件的名称也变化了。

如下图所示。

如果鼠标点击按键,则会进入事件处理。

8创建写函数9连接端口和写函数10添加个关闭函数11.创建字符串控件,传递给写函数,用于发送选中的,右键>,12界面如下所示13.安装虚拟串口,提供一个下载地址用虚拟串口配置两个端口,配置好后,这两个串口之间是自动连接上,模拟硬件上两个串口对接上的。

如上图,指定好端口,点击。

14运行串口工具,提供一个下载地址15.运行串口工具,打开串口,运行,发送数据我的电脑配置的是12和13选择12.运行,在里面填写,点击发送。

每点击一次,发送一次。

16.建立接收模块添加个循环,创建循环,用于接收。

创建,在引脚上点击鼠标右键>,建立个显示控件。

17 在的,创建个常量以进入帮助文档查看详细的说明。

18.创建事件等待19.连接事件,等待事件的类型直接连接在的即可。

20.添加个属性节点,,获取串口中的字节数连接字节数,这样告诉需要读取的字节数。

也能保证每次都把串口中的数据读完。

21.添加个结构如果字节数大于0,那么读取数据并显示。

Labview串口通信开发实例(值得拥有)

Labview串口通信开发实例(值得拥有)

串口通信的基本概念串口通信的基本概念1,什么是串口?2,什么是RS-232?3,什么是RS-422?4,什么是RS-485?5,什么是握手?1,什么是串口?串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。

大多数计算机包含两个基于RS232的串口。

串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。

同时,串口通信协议也可以用于获取远程采集设备的数据。

串口通信的概念非常简单,串口按位(bit)发送和接收字节。

尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

它很简单并且能够实现远距离通信。

比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。

通信使用3根线完成:(1)地线,(2)发送,(3)接收。

由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。

其他线用于握手,但是不是必须的。

串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。

对于两个进行通行的端口,这些参数必须匹配:a,波特率:这是一个衡量通信速度的参数。

它表示每秒钟传送的bit的个数。

例如300波特表示每秒钟发送300个bit。

当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。

这意味着串口通信在数据线上的采样率为4800Hz。

通常电话线的波特率为14400,28800和36600。

波特率可以远远大于这些值,但是波特率和距离成反比。

高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。

b,数据位:这是衡量通信中实际数据位的参数。

当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。

LabVIEW中的串口通信和硬件控制

LabVIEW中的串口通信和硬件控制

LabVIEW中的串口通信和硬件控制LabVIEW是一种强大的编程环境和开发平台,广泛应用于控制系统、仪器测量、数据采集等领域。

在LabVIEW中,串口通信是一种常见且重要的功能,它能够实现计算机与外部硬件设备之间的数据传输和控制。

一、串口通信的基本原理串口通信是通过计算机的串行接口与外部设备进行数据交换。

LabVIEW中的串口通信主要通过VISA(Virtual Instrument Software Architecture)接口实现。

VISA是一套通用的I/O接口标准,可以方便地与各种硬件设备进行通信。

在进行串口通信时,首先需要配置串口的参数,包括波特率、数据位、停止位、校验位等。

LabVIEW提供了相应的函数和工具箱,可以方便地设置这些参数。

然后,通过VISA函数进行打开串口、读取数据、写入数据等操作,实现与外部设备的数据交互。

二、LabVIEW中的串口通信实例下面以一个简单的LabVIEW串口通信实例来介绍其基本操作步骤。

首先,在LabVIEW中创建一个新的VI(Virtual Instrument)文件。

然后,在Block Diagram中拖放VISA函数,并进行相应的配置,打开串口。

接下来,通过循环结构实现数据的读取和写入。

在循环中,可以使用VISA函数读取外部设备发送的数据,并将其显示在界面上;同时,也可以通过用户输入的数据,使用VISA函数发送给外部设备。

最后,关闭串口并释放资源。

通过VISA函数,可以方便地实现串口的关闭操作。

三、LabVIEW中的硬件控制除了串口通信,LabVIEW还可以结合硬件模块进行实时的硬件控制。

LabVIEW提供了丰富的工具箱和函数库,可以支持各种硬件设备的控制和监测。

在LabVIEW中,硬件控制主要通过DAQ(Data Acquisition)模块实现。

DAQ模块可以连接各种传感器和执行器,并将其与LabVIEW 程序进行连接。

通过LabVIEW提供的函数和工具箱,可以方便地读取传感器数据,控制执行器输出,并实现实时的硬件控制。

使用LabVIEW进行串口通信

使用LabVIEW进行串口通信

使用LabVIEW进行串口通信LabVIEW是一种流行的集成开发环境(IDE),用于编写和执行控制、测量和数据采集应用程序。

它可以非常方便地与硬件设备进行通信,其中包括通过串口进行通信。

本文将介绍如何使用LabVIEW进行串口通信。

一、LabVIEW介绍LabVIEW是一款图形化编程语言,以可视化编程为特点。

用户可以使用LabVIEW快速开发有效的控制和数据采集系统,而无需深入理解底层的编程语言。

二、串口通信原理串口是一种用于将数据传输到计算机或其他设备的接口。

在串口通信中,数据以字节的形式通过传输线路进行传输,其中利用的是一对称为TX和RX的引脚。

发送数据时,数据通过TX引脚发送到接收方;接收数据时,数据则通过RX引脚接收。

三、配置串口通信在LabVIEW中,可以使用VISA(Virtual Instrument Software Architecture)函数库来实现串口通信。

通过配置相关参数,可以指定通信的波特率、数据位数、校验位等。

首先,在LabVIEW中创建一个新的VI文件。

然后,在Front Panel界面中,双击空白处,打开Block Diagram界面。

在Block Diagram界面中,拖拽VISA Serial和VISA Close VIs到界面上。

接下来,双击VISA Serial VIs,打开参数设置面板。

在面板上,可以设置串口号、波特率、数据位数、校验位等。

根据具体需求进行配置。

四、数据的发送和接收在LabVIEW中,使用串口进行数据发送和接收非常简单。

可以使用VISA Write和VISA Read VIs来分别执行发送和接收操作。

在Block Diagram界面中,从VISA Serial VIs中拖拽VISA Write VI,将其连接到VISA Serial VIs和VISA Close VIs之间。

然后,从VISA Serial VIs中拖拽VISA Read VI,将其连接到VISA Write VI的右侧。

LabVIEW串口通信

LabVIEW串口通信

LabVIEW串⼝通信Instrument I/O 利⽤LabVIEW内置的驱动程序库和具有⼯业标准的设备驱动软件,可对 GPIB(通⽤接⼝总线)、Ethernet(以太⽹)接⼝、RS-232(标准串⾏接⼝总线)/RS-485 等 I/O 仪器设备进⾏控制。

在LabVIEW的仪器I/O⼦模板上提供了多种图标可对各种I/O仪器设备进⾏驱动。

在LabVIEW功能模板的Instrument I/O→Serial中包含进⾏串⾏通信操作的多个功能模块,如下图所⽰,分别可实现串⼝缓存检测、串⼝写、串⼝读、中断、串⼝设置、关闭串⼝驱动等功能。

利⽤计算机的RS-232串⾏⼝,实现双机通信的硬件连接线路如下图所⽰,图中采⽤的是最简单的三线制连接⽅式。

TxD 为发送数据端,RxD 为接收数据端,GND 为接地端。

VISA  VISA是Virtual Instrument Software Architecture的简称,是由组成 VXI plug & play 系统联盟的 35 家最⼤的仪器仪表公司所统⼀制定的 I/O 接⼝软件标准及其相关规范的总称。

⼀般称这个 I/O 函数库为 VISA 库(⽤于仪器编程的标准 I/O 函数库)。

VISA 函数库是计算机与仪器之间的标准软件通信接⼝,⽤以实现对仪器的程控。

VISA对于测试软件开发者来说是⼀个可调⽤的操作函数集,本⾝并不提供仪器编程能⼒,它只是⼀个⾼层 API,通过调⽤低层的驱动程序来控制仪器。

NI-VISA 的层次结构如下图所⽰: VISA是整个仪器⾏业⽤于仪器驱动程序的标准 API ,⽤户可以⽤⼀个 API 控制包括 VXI、GPIB、RS-232 串⼝、USB(通⽤串⾏通信总线)串⼝等不同类型的仪器(根据所使⽤的仪器类型调⽤相应的驱动程序)。

使⽤ VISA 有许多优点,它⽅便⽤户在不同的平台对不同类型的仪器进⾏开发移植及升级测控系统。

1. ⼤多数的VISA功能模块使⽤了VISA resource name控制参数,该参数标识了与之通信的设备名称以及进⾏I/O操作必须的配置信息。

Labview串口通信开发实例

Labview串口通信开发实例

串口通信的基本概念串口通信的基本概念1,什么是串口?2,什么是RS-232?3,什么是RS-422?4,什么是RS-485?5,什么是握手?1,什么是串口?串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。

大多数计算机包含两个基于RS232的串口。

串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。

同时,串口通信协议也可以用于获取远程采集设备的数据。

串口通信的概念非常简单,串口按位(bit)发送和接收字节。

尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

它很简单并且能够实现远距离通信。

比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。

通信使用3根线完成:(1)地线,(2)发送,(3)接收。

由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。

其他线用于握手,但是不是必须的。

串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。

对于两个进行通行的端口,这些参数必须匹配:a,波特率:这是一个衡量通信速度的参数。

它表示每秒钟传送的bit的个数。

例如300波特表示每秒钟发送300个bit。

当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。

这意味着串口通信在数据线上的采样率为4800Hz。

通常电话线的波特率为14400,28800和36600。

波特率可以远远大于这些值,但是波特率和距离成反比。

高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。

b,数据位:这是衡量通信中实际数据位的参数。

当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。

labview_串口通讯的分析$$$$

labview_串口通讯的分析$$$$

关键词:labview串口通信学习labview有一段时间了,发现了其中功能的强大和编程的简洁性,高效性现在初步实现了串口的通信,把其中的体会和实现过程写出来,权当抛砖引玉其中的串口采用的是Rs-232,D型口,共九跟针,其中能用的就是三跟针脚,2,3,5,一个是发送一个是接受,一个是接地,如果做一个串口线延长线的话,只需连接这三根针脚即可,就是2连3,3连2,5连5。

在labview中采用的visa,首先是进行串口设置,设置串口号,波特率,在这里面只要设置这两个就可以了,其余的采用默认,其中特别注意的是要安装visa驱动包,只有安装了这个驱动包,你的串口才可以选择,一般现在的电脑上只有一个串口,那么为了调试方便,这里有两个工具可以推荐,一个叫做串口虚拟软件,我用的是VSPD XP 5,就是一个虚拟串口的软件,让你的电脑能够多虚拟两个串口,你要设置成让他们互联,另一个就是串口调试工具,叫sscom32.exe,用来调试串口通信的,可以验证通信时候成功。

visa驱动包在ni网站上有,具体什么地址你可以到搜索一下.再就是visa read 作用是从串口读取数据,这里面有个read buffer ,从串口读取的数据visa write向串口写入数据或者是命令还有visa close 结束串口读取数据,目的是读完数据后,释放串口资源我的例子前面板图程序图labview串口通讯的深入分析收藏labview称做"G"语言,只是说明了它具备了通用编程语言的编程能力,但是任何编程语言都有器独特的特点,否则经过几十年的风风雨雨,并没有出现一种编程语言一统天下的格局,每种编程语言都有其特别适合的领域,从这点来说,数据采集和仪器通讯可以说是它最擅长的领域.毫无疑问,计算机的串口通讯是相对比较简单的通讯方式,labview也不例外地对它提供了支持.LABVIEW的串口控制,可以通过多种方法:1.最基本的IN OUT 控制,LABVIEW提供了In port 和Out Port两个基本输入输出VI,通过它就可以直接读写寄存器,我本人做的许多并口控制设备就是利用了这两个节点,在计算机的DOS时代,通过IN OUT 指令进行串口通讯是唯一的选择,现在正在做单片机的朋友都知道,单片机的串口通讯都是通过操作寄存器实现的,对于计算机的COM1,它的端口地址是0X3F8,完全可以通过它来完成串口通讯.2.利用API的WriteFile函数实现串口通讯,这是VC进行串口通讯的方法.3.利用VB提供的MSCOMM控件(这是目前用的最多的,它支持查询和中断两种模式,即可以发送文本型数据(ASCII),由可以发送二进制(BIN,实际是BYTE ARRAY)4.利用LABVIEW特有的VISA通讯直接控制寄存器的方法在计算机串口通讯基本看不到了.只有在单片机中还采用这种方式.通过C51串口通讯,简单地介绍一下这种方法:/* 发送数据函数*/voidSendData(uchar *buf){uchar i;ucharlen;len=strlen(buf); /* 取得字符串长度*/for(i=0;i{SBUF=buf[i]; /* SBUF是串口输出REG*/while(!TI);/* 等待发送完成*/TI=0; /* 复位中断标志*/}}方法2直接调用API非常复杂,在LV不会采用,就不介绍了.方法3是目前用的最多,介绍一下.MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。

Labview串口通信开发实例(值得拥有)

Labview串口通信开发实例(值得拥有)

串口通信的基本概念串口通信的基本概念1,什么是串口?2,什么是RS-232?3,什么是RS-422?4,什么是RS-485?5,什么是握手?1,什么是串口?串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。

大多数计算机包含两个基于RS232的串口。

串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。

同时,串口通信协议也可以用于获取远程采集设备的数据。

串口通信的概念非常简单,串口按位(bit)发送和接收字节。

尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

它很简单并且能够实现远距离通信。

比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。

通信使用3根线完成:(1)地线,(2)发送,(3)接收。

由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。

其他线用于握手,但是不是必须的。

串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。

对于两个进行通行的端口,这些参数必须匹配:a,波特率:这是一个衡量通信速度的参数。

它表示每秒钟传送的bit的个数。

例如300波特表示每秒钟发送300个bit。

当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。

这意味着串口通信在数据线上的采样率为4800Hz。

通常电话线的波特率为14400,28800和36600。

波特率可以远远大于这些值,但是波特率和距离成反比。

高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。

b,数据位:这是衡量通信中实际数据位的参数。

当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。

Labview与C51单片机实现串口通信

Labview与C51单片机实现串口通信

Labview与C51单片机实现串口通信
Labview 串口通信学会两种方法,一种是利用visa(虚拟仪器软件构架),另一种是调用activeX 控件。

第一种方法(VISA)程序如图
首先,设置串口参数,串口初始化,循环内利用VISA WITE 实现对串口的写操作,延时200 毫秒,用VISA READ 实现读操作,中间有个端口属性节点的作用是计算端口的总的字节数。

非常简单,但我花了一天时间搞懂。

第二种方法调用active X 程序图如下所示
ACTIVE X 串口通信的最大优点是可以利用中断实现数据的传送或对下位机的控制,MSCOMM32 控件实现串口通信主要是通过对其属性节点的设置来实现的。

并利用到了事件回调方法实现中断程序。

tips:感谢大家的阅读,本文由我司收集整编。

仅供参阅!。

LabVIEW中的串口通信和硬件连接

LabVIEW中的串口通信和硬件连接

LabVIEW中的串口通信和硬件连接概述:LabVIEW是一款功能强大的图形化编程软件,广泛用于各种科学实验和工程应用中。

本文将讨论LabVIEW中的串口通信和硬件连接,包括串口通信的原理、LabVIEW中串口通信的配置方法以及如何通过硬件连接实现串口通信。

一、串口通信原理串口通信是一种通过串行数据传输来实现设备之间通信的方式。

它将数据按照位的顺序逐位传输,并利用起始位、停止位、数据位和校验位等信息来保证数据的可靠传输。

常见的串口通信协议有RS232、RS485等。

二、LabVIEW中的串口通信配置在LabVIEW中,使用VISA(Virtual Instrument Software Architecture)库来实现串口通信。

下面是配置串口通信的步骤:1. 打开LabVIEW软件,创建一个新的VI(Virtual Instrument)。

2. 在VI中添加VISA组件,可在工具栏中选择"Functions",然后在弹出的菜单中选择"Measurement I/O",再选择"VISA"。

3. 在VISA组件中,选择"Configurations",然后点击鼠标右键,选择"Create New VISA Resource"。

4. 在弹出的对话框中,选择要使用的串口资源,如COM1。

点击"OK"完成串口资源的配置。

5. 在VISA组件中选择"VISA Resource Name",将刚才配置的串口资源名称输入。

6. 现在可以通过VISA组件的其他函数实现对串口的读写操作,如"VISA Read"和"VISA Write"。

三、通过硬件连接实现串口通信除了LabVIEW软件中的配置,还需要通过硬件连接来实现串口通信。

一般情况下,需要使用串口转USB转接器、串口线等硬件设备来连接计算机和目标设备。

labview中我现在在做一个上位机对串口发送ASCII码和十六

labview中我现在在做一个上位机对串口发送ASCII码和十六

labview中我现在在做一个上位机对串口发送ASCII码和十六在LabVIEW中使用串口第一部分使用LabVIEW系统VI一、串口VI介绍LabVIEW的串口通讯VI位于Instrument I/O Platte的Serial中,包括:VI名称 VI功能VISA Configure SerialPort初始化VISA resource name指定的串口通讯参数 VISA Write 将输出缓冲区中的数据发送到VISA resource name指定的串口VISA Read 将VISA resource name指定的串口接收缓冲区中的数据读取指定字节数的数据到计算机内存中VISA Serial Break 向VISA resource name指定的串口发送一个暂停信号VISA Bytes at SerialPort查询VISA resource name指定的串口接收缓冲区中的数据字节数 VISA Close 结束与VISA resource name指定的串口资源之间的会话VISA Set I/O BufferSize设置VISA resource name指定的串口的输入输出缓冲区大小VISA Flush I/O Buffer 清空VISA resource name指定的串口的输入输出缓冲区二、使用说明在LabVIEW环境中使用串口与在其它开发环境中开发过程类似,基本的流程框图如下。

图1、串口操作数据流图首先需要调用VISA Configure Serial Port完成串口参数的设置,包括串口资源分配、波特率、数据位、停止位、校验位和流控等等。

图2、初始化串口如果初始化没有问题,就可以使用这个串口进行数据收发。

发送数据使用VISA Write,接收数据使用VISA Read。

在接收数据之前需要使用VISA Bytes at Serial Port查询当前串口接收缓冲区中的数据字节数,如果VISA Read要读取的字节数大于缓冲区中的数据字节数,VISA Read操作将一直等待,直至Timeout或者缓冲区中的数据字节数达到要求的字节数。

非常好--LabVIEW串口通信详解

非常好--LabVIEW串口通信详解

LabVIEW串口通信详解串口可以说是我们最容易见到,也最容易接触到的一种总线,台式机上一般都有二个,而现在很多下位机、仪器等很多都还是使用串口通信的。

论坛上很多朋友都经常会使用到串口,并遇到一些问题,这里有必要做一个详细的说明,以方便广大会员朋友,文章请勿转载到其它地方,谢谢。

论坛上早先发布过一个贴子,叫《串口WORD资料》,里面有一些中英文的串口的资料,这个文章是对那个资料的补充,如果是初接触串口的朋友建议先看一下上一个贴子先。

上一个贴子中提到过的内容这里不再进行补充。

首先补充一个比较重要的问题,就是在LabVIEW中使用串口的话一定要先安装VISA这个驱动,然后生成的EXE运行时也需要在目标机上安装VISA Runtime Engine,可以在打包时一起打包。

VISA的驱动可以在NI网站上下载到:1.串口扩展的问题:先说一下串口的扩展问题,一般的台式机或工控机上都至少有二个串口,一般都是够用的,但是现在市场上已经很难找到带串口的笔记本了,而有时候在外出调试时需要在笔记本中使用到串口的,这时一般是使用USB-RS232的转接线,价格从十几到一百多都有,很多朋友反应在使用价格低的转接线时会出现乱七八糟的问题,而贵一点的线就很少听说有其它问题的,所以大家在使用便宜的USB-RS232转接线时要特别注意线的质量,遇到一些奇怪的问题时先考虑换一根好一点的线。

PCI-RS232扩展卡也同理,便宜的卡也容易出问题,尽量买好一点的,以免因小失大。

PCI-RS232一般至少能扩展2个串口,有些BT一点的可以扩展到8-16个,一堆线和接头。

转接线和扩展卡一般是要装驱动的。

2.串口功能的确认:在使用串口之前,最好先确认一下串口是否正常,特别是使用转换接或扩展卡的。

检查的方法很简单,就是将串口的2、3脚短接起来,3脚是发送数据,2脚接收数据,就是这个串口自发自收。

电脑上的串口软件一般是用串口调试助手,很出名的,也好用。

虚拟仪器软件LabVIEW的串行口通信编程

虚拟仪器软件LabVIEW的串行口通信编程

单片机发出呼叫, 呼叫字符采用单字节 的 A CⅡ码 , S 作
为 区 分 多 台 下位 单 片 机 的 地址 码 。呼 叫的 传 输 采 用 广 播 模 式 , 应 地 址 的单 片 机 接 收 到呼 叫 信号 , 对 以一 定 的 帧格 式 将 数 据 传 送 给 微 机 。 这 里采 用 长 度 为 4 字 节 个 的 固 定 帧 格 式 的通 信 模 式 。4个 字 节 言 的开 发 环 境 . 目前 国 际 上 最 先 进 的 虚拟 仪 器 是 控 制 软 件 。 Ib IW 集 合 了 G I 、X 、 S一22和 R a VE PB V IR 3 S

4 5以及 数 据 采 集 卡 等 硬 件 通 信 的 全 部 功 能 , 用 8 采
机。数据采集板 以一定 的速率进行 信 号采集 , 到的 得
维普资讯
虚拟 仪 器 软 件 L b IW 的 串行 口通 信编 程 a VI E
彭 庆 华
虚拟 仪 器 软 件 L bI W 的 串行 口通信 编 程 aV E
Th O 阳m migf rSe il o mu i t n o ru e Prg n o r m a C nc i fVi a a o t 1s rme S f r a VlW n tu m ot e L b E wa
彭灰华
( 阳铜管 集团有 限心 司, 南衡 阳 4 1o ) 衡 湖 '0 1


针对一 个涡 流传感 器的位 移单 片机 测试 系 统 . 介绍 了利 用 虚拟 仪器 软件 L【 E 开 发微 机和 单 片机 串 行 口通 信 程序 的 方 aⅥ W .
法, 并给出 了编程 实例 。 关 键诵 串行 通信 A 程序 设计 vE Iw 单 片机 c 】- 咀 m1 n

LabVIEW中的串口通信和数据解析

LabVIEW中的串口通信和数据解析

LabVIEW中的串口通信和数据解析一、引言在LabVIEW中,串口通信是一种常见的用于与外部设备进行数据交互的方式。

通过串口通信,我们可以与各类传感器、仪器、控制器等设备进行数据的传输与控制。

本文将介绍LabVIEW中如何进行串口通信和数据解析的方法和技巧。

二、LabVIEW中的串口通信1. 准备工作在进行串口通信之前,首先需要准备好相应的硬件设备和驱动程序。

一般来说,我们需要一台计算机、一个串口转USB转接器以及相关的串口设备。

另外,还需要安装相应的串口驱动程序,以便在LabVIEW中进行串口通信。

2. 配置串口通信在LabVIEW中,配置串口通信需要使用到“VISA”(Virtual Instrument Software Architecture)工具。

通过VISA,我们可以对串口进行打开、设置波特率、校验位、数据位等参数,并进行数据的发送和接收。

3. 打开串口在LabVIEW的程序中,使用“VISA Open”函数来打开串口。

我们需要指定对应的串口号以及串口的配置参数。

通过这一步,LabVIEW就可以与串口建立通信连接。

4. 配置串口参数在串口打开之后,需要进行串口参数的配置,包括波特率、校验位、数据位等。

这些参数需要与外部设备的参数保持一致,才能正确地进行数据的传输和解析。

5. 读取和发送数据在LabVIEW中,可以使用“VISA Read”和“VISA Write”函数来进行数据的读取和发送。

通过这两个函数,我们可以实现与外部设备的数据交互。

读取到的数据可以在LabVIEW中进行进一步处理和解析。

三、LabVIEW中的数据解析1. 数据格式在进行数据解析之前,首先需要了解数据的格式。

不同的外部设备会使用不同的数据格式进行数据的传输。

常见的数据格式包括二进制、十六进制、ASCII等。

根据实际情况,选择合适的数据格式进行解析。

2. 数据解析方法在LabVIEW中,可以使用字符串相关的函数来进行数据的解析。

labview中的串口通信协议示例与分析

labview中的串口通信协议示例与分析

标签:虚拟仪器labview中的串口通信协议示例与分析变频器与个人电脑使用RS-232/RS-485 串行总线连接,如下所示:在通讯操作中,通过个人电脑以命令方式控制仪器。

通讯数据格式:l 起始位: 1 位l 数据位: 8 位l 奇偶位:无l 停止位: 1 位应答及命令格式:l 命令模式::-数据头,只有以::开头的数据包才认为有效。

AD -设备号,当前通讯的设备ID。

?-指明该数据是PC发出的指令。

RI -响应时间,从PC发出命令到仪器应答的时间。

SC -和检验码,等于图中“和校验范围”所示各位相加。

l 应答模式# -指明该数据是仪器发回的应答数据。

其它同上。

l 故障模式% -指明该数据是仪器发回的故障数据。

其它同上。

协议说明:无论是控制仪器还是查看仪器数据都需要PC发出相应的命令;只要PC发出命令(前提是与仪器正常通讯),仪器都会返回数据(应答或故障)。

使用LabVIEW编写通信模块:1. 主要节点:Functions->Instrument I/O->VISA Resource Name Constant, Functions->Instrument I/O->Serial->VISA Config Serail Port, VISA Read, VISA Write, VISA Close2. 串口设置:根据仪器说明设置如波特率等等串口参数。

超时设置根据上述RI。

3. 写串口指令:根据上述“命令模式”的格式包装命令数据,和校验由“和校验范围”中数位相加而得,所以之前应该写一子VI用来计算和校验。

建议使用以下变量来包装数据:l prefix:前缀,这里是::l devID:设备号l type:通讯类型(这里是?),可以与RI合并l cmdNum:命令号l cmdValue:命令号对应的命令值l sumVerify:和校验码l end:结束字符注意:一般协议要求“命令内容”满足一定的位数,所以应该做一个子VI,专门在那些数位不够的命令前补足空格或0。

Labview串口通信开发实例(值得拥有)

Labview串口通信开发实例(值得拥有)

串口通信的基本概念串口通信的基本概念1,什么是串口?2,什么是RS-232?3,什么是RS-422?4,什么是RS-485?5,什么是握手?1,什么是串口?串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。

大多数计算机包含两个基于RS232的串口。

串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。

同时,串口通信协议也可以用于获取远程采集设备的数据。

串口通信的概念非常简单,串口按位(bit)发送和接收字节。

尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

它很简单并且能够实现远距离通信。

比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。

通信使用3根线完成:(1)地线,(2)发送,(3)接收。

由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。

其他线用于握手,但是不是必须的。

串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。

对于两个进行通行的端口,这些参数必须匹配:a,波特率:这是一个衡量通信速度的参数。

它表示每秒钟传送的bit的个数。

例如300波特表示每秒钟发送300个bit。

当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。

这意味着串口通信在数据线上的采样率为4800Hz。

通常电话线的波特率为14400,28800和36600。

波特率可以远远大于这些值,但是波特率和距离成反比。

高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。

b,数据位:这是衡量通信中实际数据位的参数。

当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。

LabVIEW串口通信的一个例子-串口示波器

LabVIEW串口通信的一个例子-串口示波器

LabVIEW串⼝通信的⼀个例⼦-串⼝⽰波器很早就想做⼀个类似的东西了,正好这学期学了LabVIEW,作业就交了这个,基于LabVIEW的“串⼝⽰波器”上位机。

1.程序界⾯:功能介绍:左边上⽅串⼝接收区,下⽅为串⼝字符发送区。

右⽅为⼀个波形图表,在程序内部每次将串⼝发送过来的数据,以f%格式化,显⽰在波形图表上。

按钮介绍:从左⾄右依次,发送按钮;清除计数按钮;打开/关闭串⼝按钮;清除接收区数据;清除波形图表;保存波形;退出程序。

2.主程序框图:主程序框图介绍:主程序框图主要由3个状态组成:程序的初始化,程序事件的响应,程序的退出。

状态Init:程序初始化,主要把OpenCom等按钮,串⼝状态,串⼝接收字符串,波形图标,TX/RX计数等控件,置为False或清零。

初始化状态只执⾏⼀次,接下来就进⼊状态Event。

状态Event:程序事件响应,由⼀个事件结构构成,共需响应8个事件:Open/CloseCom按钮事件;串⼝号或波特率改变事件;发送按钮事件;清空计数按钮事件;清空接收区按钮事件;清空波形区按钮事件;保存波形按钮事件;菜单选择事件;退出按钮事件。

如果在此状态,按下退出按钮,则进⼊状态Exit,否则程序将⼀直运⾏在此状态。

状态Exit:程序退出。

退出前需关闭已打开的VISA句柄。

3.串⼝接收程序框图:串⼝接收程序框图介绍:当串⼝状态为真时,调⽤串⼝属性节点”Bytes at Port”,如果串⼝缓冲区有X字节的数据就接收X字节的数据。

最后,⽤⼀个状态机来实现相邻两个字符串的判断。

如果串⼝在相邻两个字符串之间接收时间⼤于50ms,则判断为两个独⽴的字符串;如果⼩于50ms,则⾃动拼接前后两个字符串。

手把手教你labview串口通信(干货分享)

手把手教你labview串口通信(干货分享)

手把手教你labview串口通信我也是一个labview的初学者,这个例子介绍了一个最最简单的串口通信的上位机的例子。

单片机不断向串口发送数据。

上位机之显示串口发来的数据。

一.先在前面板添加一个VISA资源名称添加上之后前面板会出现在后面板会出现一.在后面板添加一个串口配置的控件接下来对对串口配置控件进行配置1.“启用终止符”-——-—-—-----配置布尔型变量“T”,就是取真.2.“终止符”--—-----———-我们不对其进行配置,选择默认终止符—-“\n”3。

’’超时'—--——-----为其配置10000的常量4。

资源名称与“VISA资源名称“控件相连接5。

波特率这里我们为其配置大小为“115200“的常量6。

其余各项不进行配置,默认系统设置上图为配置完成的结果二.接下来创建一个平铺式结构2.在平铺式顺序结构中添加一个延时控件ﻬ3.把串口配置控件的“错误输出“端、VISA资源名称输出端分别连接在平铺式顺序结构的两边上。

并给延时控件配置大小为100的常量。

如下图..三.1。

创建一个条件结构控件2.在条件结构控件中添加一个VISA读取控件3。

添加一个“VISA串口字节数“控件4。

将VISA串口字节数“控件”的“错误输入“端与上一环节中引出的”表示错误输出“的黄线连接。

5.将VISA串口字节数“控件”的“引用”端与上一环节中引出的代表VISA资源名称的线连接6. 将VISA串口字节数“控件”的“错误输出“端与“VISA 读取”控件的“错误输入"连接7.将VISA串口字节数“控件"的“引用输出“与“VISA 读取”控件的“VISA资源名称“的线连接。

..8。

字节数配置常量4,读者可根据自己数据大小任意配置。

四.1。

在条件结构外侧建立一个“VISA关闭“控件2.将VISA关闭“控件的错误输入、VISA资源名称端分别于“VISA读取”控件的对应端连接.3.建立一个简易错误处理器,将其错误输入端与串口关闭控件的错误输出端连接,如图,3.选择天剑结构控件“假”4。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

串口通信的基本概念串口通信的基本概念1,什么是串口?2,什么是RS-232?3,什么是RS-422?4,什么是RS-485?5,什么是握手?1,什么是串口?串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。

大多数计算机包含两个基于RS232的串口。

串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。

同时,串口通信协议也可以用于获取远程采集设备的数据。

串口通信的概念非常简单,串口按位(bit)发送和接收字节。

尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

它很简单并且能够实现远距离通信。

比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。

通信使用3根线完成:(1)地线,(2)发送,(3)接收。

由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。

其他线用于握手,但是不是必须的。

串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。

对于两个进行通行的端口,这些参数必须匹配:a,波特率:这是一个衡量通信速度的参数。

它表示每秒钟传送的bit的个数。

例如300波特表示每秒钟发送300个bit。

当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。

这意味着串口通信在数据线上的采样率为4800Hz。

通常电话线的波特率为14400,28800和36600。

波特率可以远远大于这些值,但是波特率和距离成反比。

高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。

b,数据位:这是衡量通信中实际数据位的参数。

当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。

如何设置取决于你想传送的信息。

比如,标准的ASCII码是0~127(7位)。

扩展的ASCII码是0~255(8位)。

如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。

每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。

由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。

c,停止位:用于表示单个包的最后一位。

典型的值为1,1.5和2位。

由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。

因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。

适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

d,奇偶校验位:在串口通信中一种简单的检错方式。

有四种检错方式:偶、奇、高和低。

当然没有校验位也是可以的。

对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。

例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。

如果是奇校验,校验位位1,这样就有3个逻辑高位。

高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。

这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。

2,什么是RS-232?RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。

可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。

用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。

RS-232只限于PC串口和设备间点对点的通信。

RS-232串口通信最远距离是50英尺。

DB-9针连接头-------------\ 1 2(RXD) 3(TXD) 4 5(GND) /\ 6 7 8 9 /-------从计算机连出的线的截面。

RS-232针脚的功能:数据:TXD(pin 3):串口数据输出RXD(pin 2):串口数据输入握手:RTS(pin 7):发送数据请求CTS(pin 8):清除发送DSR(pin 6):数据发送就绪DCD(pin 1):数据载波检测DTR(pin 4):数据终端就绪地线:GND(pin 5):地线其他RI(pin 9):铃声指示3,什么是RS-422?RS-422(EIA RS-422-A Standard)是Apple的Macintosh计算机的串口连接标准。

RS-422使用差分信号,RS-232使用非平衡参考地的信号。

差分传输使用两根线发送和接收信号,对比RS-232,它能更好的抗噪声和有更远的传输距离。

在工业环境中更好的抗噪性和更远的传输距离是一个很大的优点。

4,什么是RS-485?RS-485(EIA-485标准)是RS-422的改进,因为它增加了设备的个数,从10个增加到32个,同时定义了在最大设备个数情况下的电气特性,以保证足够的信号电压。

有了多个设备的能力,你可以使用一个单个RS-422口建立设备网络。

出色抗噪和多设备能力,在工业应用中建立连向PC机的分布式设备网络、其他数据收集控制器、HMI或者其他操作时,串行连接会选择RS-485。

RS-485是RS-422的超集,因此所有的RS-422设备可以被RS-485控制。

RS-485可以用超过4000英尺的线进行串行通行。

DB-9 引脚连接-------------\ 1 2 3 4 5 /\ 6 7 8 9 /-------从计算机连出的线的截面。

RS-485和RS-422的引脚的功能数据:TXD+(pin 8),TXD-(pin 9),RXD+(pin 4),RXD-(pin5)握手:RTS+(pin 3),RTS-(pin 7),CTS+(pin 2),CTS-(pin6)地线:GND (pin 1)5,什么是握手?RS-232通行方式允许简单连接三线:Tx、Rx和地线。

但是对于数据传输,双方必须对数据定时采用使用相同的波特率。

尽管这种方法对于大多数应用已经足够,但是对于接收方过载的情况这种使用受到限制。

这时需要串口的握手功能。

在这一部分,我们讨论三种最常用的RS-232握手形式:软件握手、硬件握手和Xmodem。

a,软件握手:我们讨论的第一种握手是软件握手。

通常用在实际数据是控制字符的情况,类似于GPIB使用命令字符串的方式。

必须的线仍然是三根:Tx,Rx和地线,因为控制字符在传输线上和普通字符没有区别,函数SetXModem允许用户使能或者禁止用户使用两个控制字符XON和OXFF。

这些字符在通信中由接收方发送,使发送方暂停。

例如:假设发送方以高波特率发送数据。

在传输中,接收方发现由于CPU忙于其他工作,输入buffer已经满了。

为了暂时停止传输,接收方发送XOFF,典型的值是十进制19,即十六进制13,直到输入buffer空了。

一旦接收方准备好接收,它发送XON,典型的值是十进制17,即十六进制11,继续通信。

输入buffer半满时,LabWindows发送XOFF。

此外,如果XOFF传输被打断,LabWindows会在buffer达到75%和90%时发送XOFF。

显然,发送方必须遵循此守则以保证传输继续。

b,硬件握手:第二种是使用硬件线握手。

和Tx和Rx线一样,RTS/CTS和DTR/DSR一起工作,一个作为输出,另一个作为输入。

第一组线是RTS(Request to Send)和CTS(Clear to Send)。

当接收方准备好接收数据,它置高RTS线表示它准备好了,如果发送方也就绪,它置高CTS,表示它即将发送数据。

另一组线是DTR(Data Terminal Ready)和DSR(Data Set Ready)。

这些现主要用于Modem通信。

使得串口和Modem通信他们的状态。

例如:当Modem已经准备好接收来自PC的数据,它置高DTR线,表示和电话线的连接已经建立。

读取DSR线置高,PC机开始发送数据。

一个简单的规则是DTR/DSR用于表示系统通信就绪,而RTS/CTS用于单个数据包的传输。

在LabWindows,函数SetCTSMode使能或者禁止使用硬件握手。

如果CTS模式使能,LabWindows使用如下规则:当PC发送数据:RS-232库必须检测CTS线高后才能发送数据。

当PC接收数据:如果端口打开,且输入队列有空接收数据,库函数置高RTS和DTR。

如果输入队列90%满,库函数置低RTS,但使DTR维持高电平。

如果端口队列近乎空了,哭喊数置高RTS,但使DRT维持高电平。

如果端口关闭,库函数置低RTS和DTR。

c,XModem握手:最后讨论的握手叫做XModem文件传输协议。

这个协议在Modem通信中非常通用。

尽管它通常使用在Modem通信中,XModem协议能够直接在其他遵循这个协议的设备通信中使用。

在LabWindows中,实际的XModem应用对用户隐藏了。

只要PC和其他设备使用XModem协议,在文件传输中就使用LabWindows的XModem函数。

函数是XModemConfig,XModemSend和XModemReceive。

XModem使用介于如下参数的协议:start_of_data、end_of_data、neg_ack、wait_delay、start_delay、max_tries、packet_size。

这些参数需要通信双方认定,标准的XModem有一个标准的定义:然而,可以通过XModemConfig函数修改,以满足具体需要。

这些参数的使用方法由接收方发送的字符neg_ack确定。

这通知发送方其准备接收数据。

它开始尝试发送,有一个超时参数start_delay;当超时的尝试超过max_ties次数,或者收到接收方发送的start_of_data,发送方停止尝试。

如果从发送方收到start_of_data,接收方将读取后继信息数据包。

包中含有包的数目、包数目的补码作为错误校验、packet_size字节大小的实际数据包,和进一步错误检查的求和校验值。

在读取数据后,接收方会调用wait_delay,然后想发送方发送响应。

如果发送方没有收到响应,它会重新发送数据包,直到收到响应或者超过重发次数的最大值max_tries。

如果一直没有收到响应,发送方通知用户传输数据失败。

由于数据必须以pack_size个字节按包发送,当最后一个数据包发送时,如果数据不够放满一个数据包,后面会填充ASCII码NULL(0)字节。

这导致接收的数据比原数据多。

在XModem情况下一定不要使用XON/XOFF,因为XModem发送方发出包的数目很可能增加到XON/OFF控制字符的值,从而导致通信故障。

相关文档
最新文档