《LabVIEW串口通信程序设计73540.docx》由会员分享,可在线阅读,更多相关《LabVIEW串口通信程序设计73540.docx(33页珍藏版)》请在优知文库上搜索。
1、第13章1.abVIEW串口通信程序设计以PC作为上位机.以隅制好两器(Mn&m)、串行打印机、各种监控模块、P1.C,扭像头云台、数控机床、单片机及智能设备等作为下位机广泛应用于测控颗域。本章举几个典里实例,具体介绍利用UibVIEW实现PC与各种卜位机设备串口通信的程序设计方法。13.1 PC与PC串口通信当两台串口设和通信跖离较近时,可以干脆连接,最简洁的状况,在通信中只需三根线(发送线、接收线、信号地找)使可实现全双工异步串行遹信.本设计通过两台PCH:三线连接,介绍了由口通信的基本编程方法.13.1.1 PC与PC串口通信段件线路当两台RS-232串1.l设备通信距离较近时(vl5m
2、),可以用电缆线F脆将两介设的的RS232端口连接;若通信距离较远OI5m)时,需附加调制解调器(Modem).在RS-232的应用中,很少浮格依据RS-232标准.其主要缘出是因为很多定义的信号在大多数的应用中并没有用上,在很多应用中.例如MOdCm,只用了9个信号(两条数据线、6条限制线,一条地戏):在其他一些应用中,可能只须要5个伯号(两条数据税、两条握手一条地找);还彳i一些应用,可能只须要数据线,而不须要握手规,即只须要3个信号线,因为在限制筑域,在近距离通信时常采纳RS-232,所以这里只对近距岗通信的线路连接进行探讨.当通信如忘较近时,迪侑双方不须要ModCm可以干脆连接,这种状
3、况下,只需运用少教几根信号戏。最简沽的状况,在通信中根本不须要RS232C的限制联络信号,只需三根线(发送线、接收城、信号地线)便可实现全双工异步邢行通信。在实际运用中常运用小口通信线招两个部口设备连接起来.串口线的制作方法特别简洁:打算两个9针的小门接跷海子(因为计算况上的串口为公头,因此连接爱为母头),打算3根导线(最好果纳3芯屏蔽线),按图13-1所示珞导跷焊接到接线端子上.reb牛口通信浅的制作图13-2所示中的2号接收脚与3号发送脚交叉连接是因为在直连方式时,把通信双方都当作数据终端设备看待,双方都可发也可收在这种方式下,通信双方的任何一方只要恩求发送RTS有效和数据终端打算好DTR
4、有效就能起先发送和接收.ffl13-2PC与PC中口通信戌路在计算机通电前,按图12所示将两台PC的CoMl口用申口规连接起来。r迎接岸口线时.计算机产第通电,否则校给烧我事口.13.1.2 设计任务利用1.abVlEW编写程序实现PC与PC$I-IiSfH.任务要求如下.两台计算机互发字符并自动接收,如一台计算机输入字符申“收到信息请回字符abcl23w.单击“发送字符”吩时,另一台计算机若收到,小:,、;中i:“收到,abcl23一,单击“发送字符”吩咐,信息返回到第一组的计算机.那实上就玷编写一个简洁的双机闲聊程序.13.1.3 任务实现1 .建立新Vl程序启动NI1.abVIEW程W,
5、选择新建(New)选项中的Vl项,建立一个新Vl程序,2 .程序前面板设计”在前面板设计区空白处单击尿标右键,显示控件选板(Comrok).(1)添加一个字符*输入控件:控件(COnglS)T新式(NkKIenI)T字符串与路径(SiringPath)一字符小薪人控件(StringControl).招标签改为“发送区:”.(2添加一个字符中显示控件:控件(Controls)一新式(ModCm)字符申与路径(StringPath)一字符申显示控件(StringIndicator),将标签改为“接收区:”。添加一个串口资源检测控件:控件(Cbntrols)T新式(Modem)HO-VISA资源名称
6、(VlSArcsOUrcenamc):单击控件箭头.选择串口号,如CoMI或ASR1.1:.(4)添加个确定(OK)按钮控件:控件(Congk)一新式(Modem)布尔(BOokan)T确定按钮(OKButoon),将标题改为“发送字符.将标的改为“关闭程庠设计的程序前面板,如图13-3所示.3 .框图程序设计添加函数十进入框图程序设计界面,花设计区的空白处单击取标右雄.显示函数选板(Functions).添加的全部函数及其布置如图13-4所示,具体步骤介绍如下。(I)添加一个配置申口因数:确程(Programming)re134框图程序函数添加与布置仪器I/O(InstrumcntIrtAT
7、串口(Serial)IVISA配置串口(VISAConfigureSerialPort).(2)添加4个数值常量:编程PlVgramming)一数位(Nunieric)一数值常敢(数位常量(NunericConstant).值分别为9600(波特率)、8(数据位)、0(校验位,无、1(停止位X)(3)添加两个关闭串口函数:源程(Programming)一仪;UO(InstrumentI/O)一串口(Serial)TVlSA关闭(VlSAeIoSC).(4)添加个褥环结构:编程(Programming)-结构(StrUCtUrCS)While循环(While1.oop).器加理由:曲时孤测序口接
8、收缓冲区的数据,以下添加的函数或结构放置在While循环结构框架中.(5)添加一个时仲函数:编程(Programming)一定时(Timing)T等待下一个整数悟辛秒(WailUIHilNeXtnKMUhiPIe)。添加理由;以肯定的周期监测申口接收场冲区的数据.(6)添加一个数值常个:编程(Programming)-*J(Numeric)一值常f*(NumericConstant),将值改为5-*不等于?(NotEqual?),添加理由;只有当申口接仪缓冲区的数据个数不等于0时,才将数据注入到接收区.(10)添加一个徐尔函数:编程(Programming)布尔(Boolean)非(NOO函数
9、。添加理由:当关闭程序时,将关闱按钮真(Tme)变为假(False),退出循环.找如将第环结构的条件端子设置为“口时停止(SIOPifTrUe广帔,则不须要添加非NoO函数.(II)添加两个条件结构:编程Programming)-*结构(StrUClUrCC条件结构(CaseStructure).添加理由:发送字符时,须要单击按钮“发送字符”,因此须要推断是否笊击了发送按钮:接收数据时,须要推断申口接牧麴冲区的数据个数是否不为0,(12)添加一个用口写入函数:编程(PrOgramming仪器I/O(Instrumentl.,0-1.I(Serial)TVlSA写入(VISAWritc).并拖入
10、条件结构()的其(True)选项框架中.(13)添加个小门读取函数:编程(Programming)-仪器Ijo(InstrumentI/O)串口(Serial)-VISA读取(VISARead),并拖入条件结构(下)的真(TrUe)透项框架中。(14)将字符瑜入控件图标(标签为发送区J)拖入条件结构(上)的口(Tme)选项框架中,将字符显示控件图标(标签为“接收区:”)拖入条件结构(下的真(Tmc)选项框架中.(15)分别将确定(OK)按钮控件图标(标签为“确定按钮(OKButton),停止(Stop)按钮控件图标(标转为“科止按钮(StopButton)拖入循环结构框架中。4 .框图程序设计
11、连坡运用连线工具,将全部函数连接起来,如图13-5所示.图1)5电图程序连线梅VISA资源名称(VISAresourcename)函数的输出璃口分别与申11iElt(VlSAConfigureSerialPort)函纵申口字节数(VISAByWSatSelialPoa)函数、申口巧入(VISAWnte)函数、串口读取(VlSARCad)函数的谕入端IlVlSA资源名称(VISAresourcename)相连.(2)将数值常A9600、8、0.I分别与中I1配置(VISAConfigurcScrialP解数的输入端口波特率(baudrate)、数据比特(daiabiis、奇偶(Parily)、停
12、止位(stopbits)相连.(3)将数值常量(值为500与等待卜一个整数倍亳秒(WailUntilNextmsMultiple)函数的输入流口秒倍数(millisecondmultiple)相连.(4)将确定按钮图标OKButtonw与条件结构(J1.)的选择端子?相连.5 5)411字节数(VISABytesatSerialPort)函数的输出湘11NumberofbytesatSerialport与不等于?(NolEqual?)函数的输入端口x相连。一一口字节数(VISABytesatSerialPort)函数的输出端INumberofbytesatSerialport与中11读取(VI
13、SARcad)函数的怆入渊门字节总数(bytecount)相连.(6)将致伯常m(值为0与不等于?(NoiEqual?)函数的输入端口y相连。(7)将不等于?(NotEqual?)函数的输出端口X!=?与条件结构(下的选择端子?相连.(8)在条件结构(I.)中将字符输入控件图标(标签为“发送区:”)与串口写入(VISAWrite)函数的输入端口写入缓冲区(writebulYcr)相连,(9)在条件结构(下)中将串II1U(V1SARCad)函数的物出端口读取缓冲区(madbuiYcr)与字符显示控件图标(标签为“接收区:”)相连.(IO)将停止按钮(StopBuuon)函数与非(Noi)函数的
14、输入那口x相连。(II)将非(NOt)函数的输出端口no.x?与循环结构的条件端子相连。(12)在条件结构(上)中招小口写入(VlSAWritc)函数的黝出端口VISA资源名称输出(VisArcsounxnamcout)与率口关闭(VISAClose)函数(上)的输入端口VlSA资源名称(VISAresourcename)相连。(13)在条件结构(下)中将串口读取(VISARead)函数的输出端口VISA资源名称输出与关闭串口函数VISAClOSe(下的怆入端UVISA资满I幺称相连.(14)进入两个条件结构的假(False)选项,将VISA资源名称函数的输出端门分别与率口关闭(VISAclose)函数(上、下的输入端口VISA资源名称相连,如图134所示.5 .运行程序进入程序的面板,保存设计好的Vl程序,单击快捷工具栏“运行(RUn)”按钮,运行程序。V片台计算孔同时运行K程序.在一台计算机程序窗体中发送字符区输入要发送的字符,比如“收到信息谛回字符abcl23,.单击“发送字符”按钮,发送区的字符串通过COMlI发送出去.假如联网爆佶的台计算机程序收到字符,则返回字符中,如“收到,abcl23”:假如通信正常该字符申将显示在接收