LABVIEW串口设计_第1页
LABVIEW串口设计_第2页
LABVIEW串口设计_第3页
LABVIEW串口设计_第4页
LABVIEW串口设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一部分 使用LabVIEW系统VI            1.1、串口VI介绍LabVIEW的串口通讯VI位于Instrument I/O Platte的Serial中,包括:VISA Configure Serial Port:初始化VISA resource name指定的串口通讯参数VISA Write:将输出缓冲区中的数据发送到VISA resource n

2、ame指定的串口VISA Read:将VISA resource name指定的串口接收缓冲区中的数据读取指定字节数的数据到计算机内存中VISA Serial Break:向VISA resource name指定的串口发送一个暂停信号VISA Bytes at Serial Port:查询VISA resource name指定的串口接收缓冲区中的数据字节数VISA Close:结束与VISA resource name指定的串口资源

3、之间的会话VISA Set I/O Buffer Size:设置VISA resource name指定的串口的输入输出缓冲区大小VISA Flush I/O Buffer:清空VISA resource name指定的串口的输入输出缓冲区1.2、使用说明在LabVIEW环境中使用串口与在其它开发环境中开发过程类似,基本的流程框图如下。            图1、串

4、口操作数据流图首先需要调用VISA Configure Serial Port完成串口参数的设置,包括串口资源分配、波特率、数据位、停止位、校验位和流控等等。图2、初始化串口如果初始化没有问题,就可以使用这个串口进行数据收发。发送数据使用VISA Write,接收数据使用VISA Read。在接收数据之前需要使用VISA Bytes at Serial Port查询当前串口接收缓冲区中的数据字节数,如果VISA Read要读取的字节数大于缓冲区中的数据字节数,VISA Read操作将一

5、直等待,直至Timeout或者缓冲区中的数据字节数达到要求的字节数。当然也可以分批读取接收缓冲区或者只从中读取一定字节的数据。            图3、从串口发送数据 图4、从串口接收数据在某些特殊情况下,需要设置串口接收/发送缓冲区的大小,此时可以使用VISA Set I/O Buffer Size;而使用VISA Flush I/O Buffer则可以清空接收与发送缓冲区。在串口使用结束后

6、,使用VISA Close结束与VISA resource name指定的串口之间的会话。            图5、设置缓冲区大小 图6、 清空缓冲区 图7、结束会话/线程具体的例子可以参考LabVIEW自带的示例程序:examplesinstrsmplserl.llb。第二部分使用MSCOMM控件 在LabVIEW中使用MSCOMM控件,与在VC、VB中使用一样。同样可以使用中断方式进行接收。图8、使

7、用控件的串口收发程序图9、程序数据流图首先通过LabVIEW的工具菜单“Tools >> Advanced >> Import ActiveX Controls”将Microsoft的串口控件-“Microsoft Communications Control,version 6.0”添加到LabVIEW环境中,存放在缺省路径即可,这样在User Controls Palette里面可以找到这个控件。图10、添加ActiveX控件菜单图11、选择添加用户控件图1

8、2、用户控件            将串口控件放置在Front Panel上,在框图程序中用控件属性对其进行编程,实现所需要的功能。注意:一个串口资源要有一个MSCOMM控件与之相对应。第三部分 注意事项 3.1、串口通讯的波特率设置要精确,比如要求9600的波特率,则晶振应选择11.0593MHz或其倍数。3.2、由于通常情况下LabVIEW串口VI接收或发送的都是字符串(Normal),所以如果需要发送或接收十六进制数值(Hex),请在发送或

9、接收之前进行必要的转换。             、数值型数据的处理方法:如果这些数据是静态的,也就说在程序设计阶段要传输的数据就已经确定了,在这种情况下,首先设置VISA Write的write buffer的显示属性为Hex Display,然后直接输入要发送的16进制字符串就可以了。串口设备的控制命令通常是由一个或多个16进制字符组成的,当我们需要对其进行控制时经常会采用这种方法发送控制命令。数据是动态的;即要传输的数值型数据是动

10、态产生和变化的,在发送之前首先要将其转换成对应的16进制字符串,才能赋给VISA Write发送。将这些数据构成一个数组,用Byte Array To String进行转换,转换的结果就是对应数组数值的字符串,可以提交VISA Write发送。或者使用Type Cast也可以实现同样的功能。图13、串口数据转换界面图14、串口数据转换数据流图图15、操作界面图16、单片机C程序 3.2.2、字符串型数据的处理方法: 我们在处理过程当中,传输的数据可能具有一定格式或协议,比如一个完整的数据帧包括起始段、数据段、校验段

11、等等,而每一段往往又有几个部分组成,这几个部分的类型和长度可能又不尽相同,可能是数值型的,可能是字符型的,也可能是布尔型的,单字节或者是多字节。此时我们往往都采用统一的字符形式来处理这些数据,因此有时候我们说,字符是LabVIEW里最方便的数据类型。经过打包的字符数据要经过串口发送需要进行必要的转换,否则传输将出错。比如我们打包过后需要发送的的字符串为:34 12 56 78 94(空格为了区分),如果直接将其赋给VISA Write发送,串口上的数据将是:33 34 31 32 35 36 37 38 39 34。正确的转换程序如下。图17、字符型数据处理    &#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论