LabVIEW串口通信

简介: 串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节的通信方式。在LabVIEW中串口通信使用范围非常广泛,例如,通过串口使用ModBus协议驱动仪器、串口驱动PLC设备等。

目录


1、串口写入数据


2、串口读取数据


3、清除缓存区


4、设置缓存区


5、数据超时


6、数据终止符


串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节的通信方式。在LabVIEW中串口通信使用范围非常广泛,例如,通过串口使用ModBus协议驱动仪器、串口驱动PLC设备等。


在LabVIEW中有专业的VI(VISA)可以驱动串口进行数据读、写操作,在函数面板 → 仪器I/O → 串口子面板中,如下图所示:


f10534901a3c485096eb4a4ca43bbd35.png


相应的说明可参见帮助文档,如下图所示:


327156355e8c416bab9c2f1e2b0c1bef.png


通过几个简单的Demo示例了解VISA串口函数的使用方法。


代码下载:https://download.csdn.net/download/m0_38106923/85272661


1、串口写入数据

打开串口COM3,通信速率115200/bps,写入数据:A1$,示例代码如下所示:


70d169d92df544e1be66da78d6c24ea0.png


2、串口读取数据

打开串口COM8,通信速率115200/bps,读取20个字节长度数据,示例代码如下所示:


b3c7c737fcea4294a8b7b7ec48570f11.png


3、清除缓存区

以上两种方法介绍了LabVIEW串口最基本的读、写操作,实际上直接这样使用的存在问题的。


因为在大多数情况下串口设备不管在LabVIEW执行或着关闭的状态都一直在上传数据。端口在收到第一个字符的时候可能没有被配置好,所以它读到的是无效的缓冲区信息,这样直接开启后进行读、写数据极其容易导致错误。


48397cb88bbc4ac6bd17a3fbb9074fd3.png


为了解决这样的问题,在串口配置后需要放一个延时(大约XXXms),就可以让Serial port有足够的时间完成设定。再来使用VISA清空I/O缓冲区函数,就可以将接收缓冲区中不正确的资料清除。对串口读取功能进行优化,示例代码如下所示:


79a0aa39587749d7bf475c2b46d354e6.png


以下示例中读取数据长度的方式进行优化,通过属性节点(Bytes at Port)获取字节长度,无需再手动定义长度,避免定义长度太短导致接收不全或者定义数据过长导致浪费情况。


7707cbd8d4ff49ec9cd0842504208877.png


4、设置缓存区

目前VISA串口缓冲区大小最大可达到 2的32次方(4,294,967,296 字节),可以在该范围内定义缓存区大小,例如以下示例,定义缓冲区大小为80000字节。


c954641c7b28496886a29883d8bdb19e.png


5、数据超时

在初始化VISA串口时,可以设置超时时间,当读、写数据超出时间,会提示错误信息。


1b97f83514bc4d848a0c7e3b32547d93.png


以下示例定义串口通信超时时间是10秒。


9feafcd1eddd47b5996e1673c0c119ed.png


6、数据终止符

在初始化VISA串口时,可以设置终止符,通过调用终止读取操作,从串行设备读取终止字符后读取操作会自动终止。例如以下示例,读取到“$”字符(十六进制:0X36)时,会停止读取操作。


6b248c88091a487ba63414cab7961145.png


代码下载:https://download.csdn.net/download/m0_38106923/85272661


相关文章
|
XML 存储 程序员
LabVIEW开发LabVIEW类
LabVIEW开发LabVIEW类
248 0
|
SQL 数据库
20、绕过去除and、or、union select、空格的sql注入
20、绕过去除and、or、union select、空格的sql注入
333 0
|
数据采集 数据处理
LabVIEW
【7月更文挑战第6天】
432 1
|
API UED 开发者
Labview串口通信VISA实现串口收发
Labview串口通信VISA实现串口收发
314 0
|
5月前
|
监控 API 开发工具
HarmonyOS Next的HiLog日志系统完全指南:从入门到精通
本文深入解析HarmonyOS Next的HiLog日志系统,涵盖日志级别、核心API、隐私保护与高级回调功能,助你从入门到精通掌握这一重要开发工具。
302 1
|
API Windows
LabVIEW使用共享变量在两台计算机之间进行通信
LabVIEW使用共享变量在两台计算机之间进行通信
386 0
|
人工智能 弹性计算 自然语言处理
体验Comfyui后迷上了GenAI
《触手可及,函数计算玩转 AI 大模型》解决方案通过阿里云函数计算的无服务器架构,详细介绍了从选择模型模板到部署和调用的全过程。描述清晰,涵盖技术架构、部署步骤和示例代码,适合初学者。建议增加更多场景介绍(有时候用户不知道怎么变现)、常见问题解答和视频教程,以进一步提升用户体验。部署过程中未遇异常,函数计算的按需付费和弹性伸缩优势明显,适用于多种业务场景。建议提供更多性能优化、实际案例和安全合规建议。
246 0
LabVIEW开发中对RS-232、RS-485、RS-422通讯的比较及注意事项
LabVIEW开发中对RS-232、RS-485、RS-422通讯的比较及注意事项
686 0
|
网络协议
Labview 的TCP通信
Labview 的TCP通信
585 0
基于simiulink的flyback反激型电路建模与仿真
该文探讨了Flyback反激型电路的建模与仿真,这种电路常见于低至中功率应用,以其简单结构和低成本著称。文章详细介绍了电路原理、数学建模及仿真方法,包括储能和释能阶段的工作过程。使用MATLAB2022a进行仿真,并提到了电路搭建、参数设置及优化设计步骤。通过本文,读者可深入了解Flyback电路,为未来研究和优化设计打下基础,随着技术进步,该电路将在更多领域发挥潜力。