labview和485串口通信

来源:网络整理 作者:2018年02月01日 15:08

LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。 LabVIEW软件是NI设计平台的核心,也是开发测量或控制系统的理想选择。 LabVIEW开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新。

LabVIEW-串口通信

串行接口 (Serial Interface) 是指数据按位顺序地进行传输,发送设备和接收设备只需要一对传输线路即可实现双向互连通信,其特点是通信线路简单、成本低,距离远,速度较慢。

根据串行信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。

串口通信的两种最基本的方式,同步串行通信方式SPI(Serial Peripheral interface)和异步串行通信方式UART(Universal Asynchronous Receiver/Transmitter),UART包含TTL电平的串口和RS232电平的串口。其中, TTL电平是3.3V的,而RS232是负逻辑电平,它定义+5~+12V为低电平,而-12~-5V为高电平。

串行接口按电气标准及协议来分包括RS-232-C、RS-422、RS485等。RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。

LabVIEW与串行设备通信前,需要安装NaTIonal Instrument公司的VISA驱动,并提供了串口通信范例。

labview和485串口通信

工具/原料

LabVIEW

Visa驱动

实现过程

1 VISA是虚拟仪器软件体系结构的缩写(即Virtual Instruments Software Architecture),实质上是一个I/O口软件库及其规范的总称。

VISA是应用于仪器编程的标准I/0应用程序接口,是工业界通用的仪器驱动器标准API(应用程序接口),采用面向对象编程,具有很好的兼容性、扩展性和独立性。用户可用一个API控制包括VXI、GPIB及串口仪器在内的不同种类的仪器。它还支持多平台工作、多接口控制,是一个多类型的函数库。

2 在LabVIEW中编写的VISA接口程序(需要提前安装对应labVIEW版本的VISA驱动),当外部设备变更时,只需要更换几个程序模块即可使用,简单方便而且开发效率高。

labview和485串口通信

3 在LabVIEW 中利用VISA节点进行串行通信编程。为了方便用户使用,LabVIEW将这些VISA节点单独组成一个子模块,共包含8个节点(程序框图-查看-函数选板-仪器I/O-串口),分别实现VISA串口配置、VISA写入、VISA读取、VISA关闭,VISA串口字节数,VISA串口中断,VISA设置I/O缓冲区大小,VISA清空I/O缓冲区域;

labview和485串口通信

labview和485串口通信

4VISA串口配置:该节点主要用于串口的初始化,如图所示。

启用终止符(接线端):使串行设备做好识别终止符的准备。 如值为TRUE(默认),VI_ATTR_ASRL_END_IN属性设置为识别终止符。如值为FALSE,VI_ATTR_ASRL_END_IN属性设置为0(无)且串行设备不识别终止符。

终止符(接线端):通过调用终止读取操作。从串行设备读取终止符后读取操作终止。 0xA是换行符(\n)的十六进制表示。消息字符串的终止符由回车(\r)改为0xD。

超时(接线端):指定读/写操作的时间,以毫秒为单位。 默认值为10000。

VISA资源名称(接线端):指定要打开的资源,如PC的COM1,COM2等。VISA资源名称控件也可指定会话句柄和类。

波特率(接线端):是传输速率。 默认值为9600。

数据位(接线端):是输入数据的位数。 数据位的值介于5和8之间。默认值为8。

奇偶(接线端):指定要传输或接收的每一帧使用的奇偶校验。 该输入支持下列值。

错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。

停止位(接线端):指定用于表示帧结束的停止位的数量。 该输入支持下列值。流控制设置传输机制使用的控制类型。 该输入支持下列值。

VISA资源名称输出(接线端):是由VISA函数返回的VISA资源名称的副本。

错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

labview和485串口通信

5VISA写入:使写入缓冲区的数据写入VISA资源名称指定的设备或接口。

VISA资源名称(接线端):指定要打开的资源。VISA资源名称控件也可指定会话句柄和类。

写入缓冲区(接线端):包含要写入设备的数据。

错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。

VISA资源名称输出(接线端):是由VISA函数返回的VISA资源名称的副本。

返回数(接线端):包含实际写入的字节数。

错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

labview和485串口通信

6VISA串口字节数:返回指定串口的输入缓冲区的字节数。

Number of Bytes at Serial Port属性(接线端):可指定该会话句柄使用的串口的当前可用字节数。

labview和485串口通信

7VISA读取:从VISA资源名称指定的设备或接口中读取指定数量的字节,并使数据返回至读取缓冲区。

VISA资源名(接线端):称指定要打开的资源。VISA资源名称控件也可指定会话句柄和类。

字节总数(接线端):是要读取的字节数量。

错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。

VISA资源名称输出(接线端):是由VISA函数返回的VISA资源名称的副本。

读取缓冲区(接线端):包含从设备读取的数据。

返回数(接线端):包含实际读取的字节数。

错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

labview和485串口通信

8VISA关闭:该节点主要用于关闭已打开的串口,释放串口资源,以便串口被其他程序所调用,如图所示。

VISA资源名称(接线端):指定要打开的资源。VISA资源名称控件也可指定会话句柄和类。

错误输入(接线端):是节点运行前发生的错误。在下列情况下,该输入可作为标准错误输入。 即使在节点运行前发生错误,节点仍正常运行。

错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

labview和485串口通信

9VISA设置I/O缓冲区大小 :设置I/O缓冲区大小。如需设置串口缓冲区大小,须先运行VISA配置串口VI。

VISA资源名(接线端):称指定要打开的资源。VISA资源名称控件也可指定会话句柄和类。

屏蔽(接线端):指明要设置大小的缓冲区。 (I/O接收缓冲区,I/O传输缓冲区,I/O接收和传输缓冲区)

大小(接线端):指明I/O缓冲区的大小,以字节为单位。大小应略大于要传输或接收的数据数量。如在未指定缓冲区大小的情况下调用该函数,函数可设置缓冲区大小为4096字节。如未调用该函数,缓冲区大小取决于VISA和操作系统的设置。

错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。

错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能

labview和485串口通信

10VISA清空I/O缓冲区:清空由屏蔽指定的I/O缓冲区。

VISA资源名称(接线端):指定要打开的资源。VISA资源名称控件也可指定会话句柄和类。

屏蔽(接线端):指明要刷新的缓冲区。 该输入支持下列值【1,清空接收缓存区域;2,向设备写入传输缓存区域;3,清空接收缓冲区并放弃内容(设备不执行任何I/O);4,清空传输缓冲区域】。

错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。

VISA资源名称输出(接线端):是由VISA函数返回的VISA资源名称的副本。

错误输出包含错误信息。该输出将提供标准错误输出功能。

labview和485串口通信

11VISA串口中断 VI:发送指定端口上的中断。通过连线数据至VISA资源名称输入端可确定要使用的多态实例,也可手动选择实例。

VISA资源名称(接线端):指定要打开的资源。VISA资源名称控件也可指定会话句柄和类。

持续时间(接线端):指定中断的长度,以毫秒为单位。 VI运行时,该值暂时重写VISA Serial SetTIng:Break Length属性的当前设置。此后,VI将把当前设置返回到初始值。

错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。

VISA资源名称输出(接线端):是由VISA函数返回的VISA资源名称的副本。

错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

labview和485串口通信

范例

在LabVIEW 中,进行串口通信的基本步骤分为3步:

第一:串口初始化,利用Visa Configure Serial Port.vi节点设定串口的端口号、波特率、停止位、校验位、数据位。

第二:读写串口,根据需要利用Visa Write节点和Visa Read节点对串口进行读写(写入指令和读取指令之间加入适当的延迟)。

第三:关闭串口,停止所有读写操作。

labview和485串口通信

labview和485串口通信

labview与485通讯

LabVIEW下面互连接口,VISA里面就有模块,初始化串口,写入串口、读取串口等,按操作流程做就可以。

LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。 LabVIEW软件是NI设计平台的核心,也是开发测量或控制系统的理想选择

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
声明:电子发烧友网转载作品均尽可能注明出处,该作品所有人的一切权利均不因本站而转移。
作者如不同意转载,既请通知本站予以删除或改正。转载的作品可能在标题或内容上或许有所改动。
收藏 人收藏
分享:

相关阅读

发表评论

elecfans网友

分享到:

用户评论(0