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串口通讯,简略地介绍一下这种办法:
/* 发送数据函数 */
void SendData(uchar *buf)
{
uchar i;
uchar len;
len=strlen(buf); /* 获得字符串长度*/
for(i=0;i
{
SBUF=buf[i]; /* SBUF是串口输出REG */
while(!TI);/* 等候发送完结 */
TI=0; /* 复位中止标志 */
}
}
办法2直接调用API十分复杂,在LV不会选用,就不介绍了.
办法3是现在用的最多,介绍一下.
MSComm控件供给下列两种处理通讯的办法:事情驱动办法和查询办法。
来历: http://dev.yesky.com/347/2636847.shtml
2.1 事情驱动办法
事情驱动通讯是处理串行端口交互作用的一种十分有用的办法。在许多情况下,在事情发生时需求得到告诉,例如,在串口接纳缓冲区中有字符,或许 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符抵达或一个改变发生时。在这些情况下,能够运用 MSComm 控件的 OnComm 事情捕获并处理这些通讯事情。OnComm 事情还能够查看和处理通讯过错。一切通讯事情和通讯过错的列表,参看 CommEvent 特点。在编程过程中,就能够在OnComm事情处理函数中参加自己的处理代码。这种办法的长处是程序呼应及时,可靠性高。每个MSComm 控件对应着一个串行端口。假如应用程序需求拜访多个串行端口,有必要运用多个 MSComm 控件。
2.2 查询办法
查询办法实质上仍是事情驱动,但在有些情况下,这种办法显得更为快捷。在程序的每个要害功用之后,能够经过查看 CommEvent 特点的值来查询事情和过错。假如应用程序较小,而且是自坚持的,这种办法可能是更可取的。例如,假如写一个简略的电话拨号程序,则没有必要对每接纳一个字符都发生事情,由于仅有等候接纳的字符是调制解调器的“确认”呼应。
MSComm 控件有许多重要的特点,但首要有必要了解几个特点。
CommPort | 设置并回来通讯端口号。 |
Settings | 以字符串的方式设置并回来波特率、奇偶校验、数据位、中止位。 |
PortOpen | 设置并回来通讯端口的状况。也能够翻开和封闭端口。 |
Input | 从接纳缓冲区回来和删去字符。 |
Output | 向传输缓冲区写一个字符串。 |
下面别离描绘:
CommPort特点:设置并回来通讯端口号。
语法 object.CommPort[value ] (value 一整型值,阐明端口号。)
阐明 在设计时,value 能够设置成从 1 到 16 的任何数(缺省值为 1)。可是假如用 PortOpen 特点翻开一个并不存在的端口时,MSComm 控件会发生过错 68(设备无效)。
留意:有必要在翻开端口之前设置 CommPort 特点。
RThreshold 特点:在 MSComm 控件设置 CommEvent 特点为 comEvReceive 并发生 OnComm 之前,设置并回来的要接纳的字符数。
语法:object.Rthreshold [ = value ](value 整型表达式,阐明在发生 OnComm 事情之前要接纳的字符数。 )
阐明:当接纳字符后,若 Rthreshold 特点设置为 0(缺省值)则不发生 OnComm 事情。例如,设置 Rthreshold 为 1,接纳缓冲区收到每一个字符都会使 MSComm 控件发生 OnComm 事情。
CTSHolding 特点:确认是否可经过查询 Clear To Send (CTS) 线的状况发送数据。Clear To Send 是调制解调器发送到相联计算机的信号,指示传输能够进行。该特点在设计时无效,在运行时为只读。
语法: object.CTSHolding(Boolean)
Mscomm 控件的 CTSHolding 特点设置值:
True Clear To Send 线为高电平。
False Clear To Send 线为低电平。
阐明:假如 Clear To Send 线为低电平 (CTSHolding = False) 而且超不时,MSComm 控件设置 CommEvent 特点为 comEventCTSTO (Clear To Send Timeout) 并发生 OnComm 事情。
Clear To Send 线用于 RTS/CTS (Request To Send/Clear To Send)硬件握手。假如需求确认 Clear To Send 线的状况,CTSHolding 特点给出一种手艺查询的办法。
详细信息 有关握手协议,请参看 Handshaking 特点。
SThreshold 特点: MSComm 控件设置 CommEvent 特点为 comEvSend 并发生 OnComm 事情之前,设置并回来传输缓冲区中答应的最小字符数。
语法 object.SThreshold [ = value ]
value 整形表达式,代表在 OnComm 事情发生之前在传输缓冲区中的最小字符数。