榜首部分运用LabVIEW体系VI
一、串口VI介绍
LabVIEW的串口通讯VI坐落Instrument I/O Platte的Serial中,包含:
在LabVIEW环境中运用串口与在其它开发环境中开发进程相似,根本的流程框图如下。
首要需求调用VISA Configure Serial Port完结串口参数的设置,包含串口资源分配、波特率、数据位、中止位、校验位和流控等等。
假如初始化没有问题,就能够运用这个串口进行数据收发。发送数据运用VISA Write,接纳数据运用VISA Read。在接纳数据之前需求运用VISA Bytes at Serial Port查询当时串口接纳缓冲区中的数据字节数,假如VISA Read要读取的字节数大于缓冲区中的数据字节数,VISA Read操作将一向等候,直至Timeout或许缓冲区中的数据字节数到达要求的字节数。当然也能够分批读取接纳缓冲区或许只从中读取必定字节的数据。
在某些特殊情况下,需求设置串口接纳/发送缓冲区的巨细,此刻能够运用VISA Set I/O Buffer Size;而运用VISA Flush I/O Buffer则能够清空接纳与发送缓冲区。在串口运用完毕后,运用VISA Close完毕与VISA resource name指定的串口之间的会话。
详细的比方能够参阅:examplesinstrsmplserl.llb。
第二部分运用MSCOMM控件
在LabVIEW中运用MSCOMM控件,与在VC、VB中运用相同。相同能够运用中止办法进行接纳。
首要通过LabVIEW的东西菜单“Tools >> Advanced >> Import ActiveX Controls”将Microsoft的串口控件-“Microsoft Communications Control,version 6.0”增加到LabVIEW环境中,存放在缺省途径即可,这样在User Controls Palette里边能够找到这个控件。
将串口控件
留意:一个串口资源要有一个MSCOMM控件与之相对应。[page]
第三部分 留意事项
一、串口通讯的波特率设置要准确,比方要求9600的波特率,则晶振应挑选11.0593MHz或其倍数。
二、因为通常情况下LabVIEW串口VI接纳或发送的都是字符串(Normal),所以假如需求发送或接纳十六进制数值(Hex),请在发送或接纳之前进行必要的转化。
2.1、数值型数据的处理办法:
- 假如这些数据是静态的,也就说在程序设计阶段要传输的数据就现已确认了,在这种情况下,首要设置VISA Write的write buffer的显现特点为Hex Display,然后直接输入要发送的16进制字符串就能够了。串口设备的操控指令通常是由一个或多个16进制字符组成的,当咱们需求对其进行操控时经常会选用这种办法发送操控指令。
- 数据是动态的;即要传输的数值型数据是动态发生和改变的,在发送之前首要要将其转化成对应的16进制字符串,才干赋给VISA Write发送。将这些数据构成一个数组,用Byte Array To String进行转化,转化的成果便是对应数组数值的字符串,能够提交VISA Write发送。或许运用Type Cast也能够完成相同的功用。
图13、串口数据转化界面
2.2、字符串型数据的处理办法:
咱们在处理进程傍边,传输的数据或许具有必定格局或协议,比方一个完好的数据帧包含开始段、数据段、校验段等等,而每一段往往又有几个部分组成,这几个部分的类型和长度或许又不尽相同,或许是数值型的,或许是字符型的,也或许是布尔型的,单字节或许是多字节。此刻咱们往往都选用一致的字符方法来处理这些数据,因而有时候咱们说,字符是LabVIEW里最便利的数据类型。
通过打包的字符数据要通过串口发送需求进行必要的转化,不然传输将犯错。比方咱们打包往后需求发送的的字符串为:34 12 56 78 94(空格为了区别),假如直接将其赋给VISA Write发送,串口上的数据将是:33 34 31 32 35 36 37 38 39 34。正确的转化程序如下。
数据接纳:
从计算机串口接纳到的数据是16进制的ASCII码,要转化成对应的数值型数据,能够运用String To Byte Array或许Type Cast。
三、LabVIEW串口VI不能运用中止办法传输。