基于LABVIEW的上位机串口通信程序设计
汤佳明;安伟
【摘 要】基于简化计算机与外部串行设备或其他计算机之间串口通信软件开发流程的目的,采用了依据串口通信原理使用LABVIEW作为上位机程序开发平台的方法,运用图形化程序语言搭建上位机串口通信监控界面.通过由虚拟串口通信驱动软件建立虚拟串口通道用于模拟上位机与外部设备数据通信过程的试验,可得出在建立两个对应串口的基础上文中设计的两种数据通信方式均可完整传输数据、且能够以一个指定的终止字符形式结束传输过程的结论.总的来说,本文设计的上位机串口通信程序简单易懂,相应的监控界面也简洁易用,两者结合在实际近距串口通信中拥有一定的实用与参考价值.%Based on the purpose of simplifying the process of developing the serial communication software between computer and external serial device or other computer. According to the principle of serial port communication,use LABVIEW as host computer program development platform. Its graphical programming language is used in establishing the monitoring interface of the host computer. Through Virtual Serial Port Driver(VSPD),virtual serial port channels are built in order to simulate the data communicatio
上位机软件开发培训n process between the host computer and external device. So,here get the conclusion that with two corresponding serial ports, two data communication methods designed in the article can completely transmit data and the process can be finished by a specified termination character. In summary,this serial port communication program of host computer is easy to understand,its homologous monitoring interface is simple and easy-to-use. Both of them possess certain practical and reference value in actual short distance serial port communication.
【期刊名称】《电子设计工程》
【年(卷),期】2018(026)011
【总页数】5页(P86-90)
【关键词】串口通信;LABVIEW;VSPD;模拟
【作 者】汤佳明;安伟
【作者单位】江南大学机械工程学院,江苏无锡214122;江南大学机械工程学院,江苏无锡214122
【正文语种】中 文
【中图分类】TN919
随着工业自动化进程的不断深入,虚拟仪器的使用越来越普遍,上位机作为虚拟仪器的一部分在工业生产与科学研究领域也被广泛得使用,在测控与软件设计方面已有了许多成功实例。上位机的功能是发出指令并传送至下位机端,在这一过程中,数据的传输与反馈需要监控,故根据需求设计相关的上位机程序显得很有必要。
LABVIEW作为一款已被广泛使用的虚拟仪器开发平台,在教学、研究、测试和生产自动化领域被广泛应用[1]。其图形化编程界面与常规编程语言的不同在于以图形数据流代替了代码,这对于从事工程应用的工程师而言简洁易懂,故可灵活迅速地开发上位机软件。同时,LABVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可以方便地创建用户界面[2]。通过LABVIEW搭建的控制系统,软件程序是其核心[3]。本文基于串口通信原理,编写了上位机通信监控程序,并对其进行模拟通信验证。
1 串口配置
本文设计的上位机软件程序是基于串口通信方式,串口通信是一种在计算机与计算机之间或者计算机与外围设备之间传送数据的常用方法[4],通常应用于传统仪器的控制和缓慢变化信号的采集[5]。
在本文的串口通信过程中,上位机写入的为字符类型的数据,而后软件将字符按照单个的字节位发送至接收端,作为接收端的下位机一方再将这些位组成完整的字节,从而完成数据的传送。通常采用美国信息交换标准代码(American Standard Code for Information Interchange,ASCII)表示数据位对应的值,当传输特定文件时则会使用二进制数据类型。在串口通信中,数据位是数据帧格式的一部分,完整的数据帧一般涵盖了起始位、数据位、校验位与停止位。校验位根据字符编码中“1”的数目用于检查数据的准确性。
在通信传输过程中,按照相同的通信规则规定上位机与下位机端口的性质,即对两者的通信端口进行初始化设置,按要求设置通信端口的传输速度、单位、起始位、停止位和校验位等参数,这一过程由LABVIEW中的虚拟仪器软件架构(Virtual Instrument Software Architecture,VISA)模块实现。VISA作为一个综合软件包模块,可在任何平台、总线和环
境下对串口进行配置、编程和调试[6]。同时,VISA也是测试程序与数据传输中总线的中间层,为应用程序和仪器总线的通信建立了通道,是应用于仪器编程的标准I/O应用程序接口[7]。同时,如前所述,VISA的串口配置要与下位机的串口配置一一对应[8]。VISA模块的串口初始化配置如图1所示。
图1 串口参数配置
由于串口参数类型不同,在此通过数据簇模块设定。簇为一种数据类型,相当于文本编程语言中的结构体变量,是由不同类型的数据组成的集合[9]。由上到下依次为波特率、数据位、校验位、停止位、流控制位,经“解除捆绑”后分割为独立的参数,通过串口资源名称模块选择串口。
2 数据通信
在上位机监控模式中,上位机与下位机之间的数据通信是整个系统的基础,这方面也有许多应用实例[10]。本文在此设计了两种数据通信模式,一种为单点通信,即将单个或少量特定数据字符写入后发送至下位机端;另一种为表格通信,即将大量以Excel表格文件形式汇总的数据读取转换后发送至下位机端。设定的上位机端串口数据通信流程如图2所示。
图2 串口通信流程
初始阶段虚拟串口设置主要通过VSPD软件实现,串口参数配置与串口通信终止字符类型设置两者均相同,通过模式选择按钮选择不同的通信方式,表格通信较单点通信的区别在于表格文件的读取与数据的转换,两种方式的实现过程将在下文详细阐述。
2.1 单点通信
在LABVIEW平台控制的串行通信过程中,数据格式是以字符串形式构成的[11]。实际使用过程中,上位机端需要根据需求发送单个或少量数据至下位机端,故在此设计了单点通信模式。单点通信程序如图3所示:整个程序包含在一个条件判断结构体(Case Structure)中,根据选择按钮的开关状态决定程序的运行与停止。首先进行串口参数配置,包含输出与输入端口两个。其次,是设置VISA传输中的终止字符类型,在此用到了字节属性模块,用于在传输完毕下位机端收到的字符串后增加指定的结束字符,例如换行、回车或者空字符等类型,例如本程序框图中字节属性模块设定了终止字符(Term Char)判断、终止字符使能(Term Char En)开关、写入结束模式(ASRL End Out)3个属性功能。需要注意的是,字节属性模块同时也用于检测串口数据的存在,起到判断的作用[12]。由于端口数据收发之间有延时,
故需要加入计时功能,通过写函数模块(VISA Write)写入数据后延时500ms再经由读函数模块(VISA Write)读出串口数据。由于加入了结束字符,因此读出的字符会比写入的字符多一位,故将写入的数据字节数与读出的数据字节数进行比较时两者不相等,若前者小于后者且与前面板显示结果一致,则表明通信正常,若两个结果不同则表明通信异常。在串口通信结束后必须关闭串口,因此使用串口关闭函数(VISA Close)执行这一功能。
图3 单点通信
2.2 表格通信
在实际使用过程中,往往需要发送大量数据至下位机,这些数据通常以表格文件形式存储,如此一来发送更加便捷,因此针对这一需求本文也设计了表格数据通信功能,程序分为表格数据的读取与数据的转换通信两部分。
2.2.1 表格数据读取
表格数据通信的首要条件是上位机能够读取表格文件,在此本文通过ActiveX控件读取表格文件内容。ActiveX控件是一类面向对象程序技术和工具的策略性软件组件的简称,涉及的主要
技术内容为部件对象模型(Component Object Model,COM),通过使用ActiveX组件,可以在开发工具中增添特定的功能。在LABVIEW环境下,通过打开ActiveX生成主对象,再由其生成所需子对象,通过设置和调用这些对象的属性来实现程序所需功能[13]。
由于自带相关的ActiveX控件,因此LABVIEW在处理Excel表格文件时直接采用该控件即可[14]。首先打开自动化引用模块并创建自动化引用句柄[15],作用为通过引用句柄到指定文件路径下的文件;随后通过属性节点与调用节点到用户指定表格文件中的表单号(Sheet);最后将表单范围内的数据值以数组格式输出前面板显示。表格文件读取及显示程序如图4所示。
2.2.2 表格数据通信
由于串口通信接受字符串数据格式,因此需先将从表格中读取的、以数组形式呈现的表格数据转化为字符串形式发送,这一过程由“数组至字符串转换”模块实现。表格数据通信程序如图5所示。
表格数据通信程序结构与单点通信大致相同,同样在此增加了延时与字节比较功能。
3 模拟通信
由于串口通信至少需要一对串口互相连接、传输数据,为方便快捷地对上位机程序进行模拟验证、降低实验成本,在此使用了专用的串口调试软件:虚拟串口驱动(Virtual Serial Port Driver,VSPD)。VSPD可通过虚拟出成对的相互连接的串口,用于模拟上位机与下位机或者外部串行设备的通信通道[16-17]。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论