摘要:在工业自动化控制系统中,常常需要进行远程控制或数据采集等,我们常会想到用PCI控制板卡或PCI数据采集卡等,但增加这些PCI卡,势必会增加成本。本文是利用虚拟串口软件在PC机上创建两个虚拟串口,并对这两个串口配对,用LabVIEW设计两个串口通信程序,轻松实现串口之间的数据通信和采集。
关键词:LabVIEW;虚拟串口;通信
Design and implementation
of communication between PC virtual serial ports based on LabVIEW
Pan Feng
School of mechanical and electrical engineering,Shenzhen Polytechnic GuangdongShenzhen 518055
Abstract:In industrial automation control system,PCI control board cards and PCI data acquisition cards are often used to conduct remote control or acquire data.However,the more these cards are used,the more the costs increase.In this essay,two virtual serial ports are created and matched on PC and the communication and collection of data between them are achieved by the communication program designed with LabVIEW
Key words:LabVIEW;virtual serial ports;communication
LabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通信的全部功能。
在工业自动化控制系统中,经常需要进行远程控制或数据采集,这些控制与数据采集可以通过哪些接口实现呢?我们常常会想到用PCI控制板卡或PCI数据采集板卡等,但要增加这些PCI卡,势必会增加成本,基于LabVIEW下,利用虚拟串口也可以轻松实现上述功能,轻松实现串口之间的数据通信和采集。串口通信通常有两种方式,一种是RS232通信方式,一种是RS485通信方式,前者适用于近距离通信,通常在15m范围内,后者适用于远距离通信,通信距离通常是在1200米范围内。
1 系统功能
设计一个PC机串口通信程序,并完成其控制系统的程序设计、画面制作、系统接线和运行调试。
在程序的前面板上分别选择这两个虚拟串口com3和com4,两个串口通信程序分别命名为A机与B机。建立好后,两个程序运行,A机发送字符或十六进数值,B机应该收到并显示;B机发送字符或十六进制数值,A机应该收到并显示,A机和B机串口通信界面如图1所示。
2 系统设计流程框图
先配置端口、波特率、停止位、数据位、校验位;然后在A机写入缓冲区写入要发送的字符,點击A机发送按钮;观察B机,是否收到A机所发送过来的字符;在B机写入缓冲区写入要发送的字符,点击B机发送按钮;观察A机,是否收到B机所发送过来的字符,根据系统控制要求,绘制系统流程如图2所示[2]:
3 VISA配置串口
首先需要调用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指定的串口之间的会话。
4 根据控制要求进行LabVIEW程序设计
根据控制要求进行程序设计,首先在桌面双击National Instruments LabVIEW 2011,进入项目浏览器,在项目浏览器窗口,建立新项目,然后在我的电脑——右键新建——VI,新建VI后,我们会看到两个新的窗口,分别是前面板和程序框图,保存VI→并左右两栏显示。在程序框图里添加VISA配置。
然后创建While循环与条件结构:
a.程序框图——编程——结构——While循环
b.程序框图——编程——结构——条件结构
再然后创建串口配置输入控件:
a.端口:在连线端口上右键——创建——输入控件;
b.波特率:在连线波特率端口上右键——创建——输入控件;
c.数据位:在连线数据位端口上右键——创建——输入控件;
d.校验位:在连线校验位端口上右键——创建——输入控件;
e.停止位:在连线停止位端口上右键——创建——输入控件;
f.错误输入:在连线错误输入端口上右键——创建——输入控件;
g.条件输入框:在连线条件输入框上右键——创建——输入控件;
h.While循环停止:在连线While循环停止上右键——创建——输入控件;
最后完善和优化LabVIEW程序,最终形成如图3所示程序[1]。
5 系统调试
在A机的写入缓冲区中,写入要发送的字符,点击发送,观察B机读取缓冲区中显示是否与A机发送的字符一致,如是一致,则说明PC机与PC机虚拟串口通信正常,同理在B机的写入缓冲区中,写入要发送的字符,点击发送,观察A机读取缓冲区中显示是否与B机发送的字符一致。这样基于LabVIEW下PC机与PC机虚拟串口通信程序的设计就完成了。点击退出按钮,系统即可退出运行。
参考文献:
[1]黄荻.基于LabVIEW与STC单片机的温度监测系统设计[J].电子测试,2017(4):20-21
[2]汤佳明,安伟.基于LABVIEW的上位机串口通信程序设计[J].电子设计工程,2018(11):86-90
作者简介:潘锋(1973— ),男,安徽六安人,硕士,研究方向:电气自动控制。