【Labview】通过串口通信从上位机读取和写入数据

最近博主需要通过Labview的上位机控制一个温控仪表,主要实现在上位机读取实时温度和设定的目标温度,以及通过上位机设定目标温度。这里将其中遇到的问题和心得分享给大家,博主自己也做一个记录。

由于温控仪表采用的485通讯,modbus RTU协议,因此这里相当于分享的是在Labview中如何通过modbus RTU协议,实现读数据和写数据。

1、读取过程温度与设定的目标温度。

这里先说一下,从GUI面板跳转到程序框图的快捷键是“Ctrl+E”。原始的Labview程序框图如下图:

这里重点要注意写入的时候,一定要定义写入值的模式,比如“十六进制显示”(Hex Display),而不是普通(Normal display)。

写入值Modbus RTU协议的数据结构是:设备地址(如01)+RTU功能码(如03,表示读取单一寄存器)+寄存器地址(如0002,可以在设备通讯说明上看到)+读取的字节数(如0002,是两个字节)+CRC校验码(可以用在线CRC校验码在线计算器得到)。CRC校验码在线计算器的网址如下:16进制(CRC16)(MODBUS RTU通讯)校验码在线计算器 (23bei.com),在空白处输入数据中除CRC校验码的部分,然后点击计算,会在CRC-16 Modbus中看到自动生成的CRC校验码,将其复制到Labview中即可。

然后强制转换的格式一定要是U16的,如果不缺定是哪种数据类型,可以多尝试几种。

温度显示的时候,也一定要注意设定显示数据的格式,比如DBL双浮点。

2、写入设定的温度。

这里和上述读取数据不同的地方在于,数据结构中modbus RTU功能码改为了06,即写入寄存器,因为是十六进制数据,因此要将十进制数据转化为十六进制的,这里为手动提前将十进制的温度转为十六进制后,直接复制到Labview中。

设备ID是01,功能码是06,寄存器地址是0002,写入值的十六进制是0078,CRC校验码是2828,所以整条modbus通讯数据的形式就是“0106 0002 0078 2828”。

例子框图程序中,设定目标温度为120℃,因此120的十六进制数是78,即0078;然后末尾的2828CRC校验码,为通过上面在线计算器求得的。这里一定要注意,输入数值的形式要选择Hex Display;

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: LabVIEW是一款强大的集成开发环境(IDE),可用于快速创建图形用户界面(GUI)和数据采集和分析应用程序。在串口通信方面,LabVIEW可以作为上位机语言使其功能更加强大。 首先,使用LabVIEW进行串口通信上位机需要了解串口通信的基本知识,例如如何打开和关闭串口,如何配置串口的波特率,数据位,停止位等参数。 其次,需要熟悉在LabVIEW中如何使用串口控件和VISA(Virtual Instrument Software Architecture)API。串口控件使用户可以轻松地设置串口参数,如波特率和数据位,而VISA API则提供了用于与串口通信进行交互的函数和命令。 使用LabVIEW进行串口通信上位机最常见的用途是在嵌入式系统,如单片机或传感器节点中收集实时数据。使用串口通信,可以在设备上实时采集数据并将其传输到主机计算机上,在LabVIEW中实时分析和可视化数据。 总之,使用LabVIEW进行串口通信上位机是一项非常有用的能力,使得用户可以轻松地创建具有高度定制化和维护能力的数据采集和控制系统。 ### 回答2: 使用LabVIEW串口通信上位机,可以通过NI-VISA和NI-Serial两个LabVIEW中的常用工具来完成。 首先,需要在LabVIEW中安装NI-VISA和NI-Serial工具。通过NI-VISA可以实现与串口设备的通信,而NI-Serial则可以帮助我们方便地进行串口的配置与操作。 其次,需要在LabVIEW中编写串口通信的程序。可以使用串口VISA接口函数来实现串口通信写操作。通过配置COM口号、波特率、数据位、校验位和停止位等输入参数信息,设置相应的串口通信波特率、数据位数和校验位等,来保证数据的正确传输和通信的稳定性。 在LabVIEW串口通信上位机程序中,可以设计用户界面显示数据、输入输出控制等功能,利用LabVIEW数据流控制技术和图形化编程界面,可以快速地实现对设备的控制和数据的采集处理,并进行数据的图形化显示和计算分析等操作。 总之,LabVIEW作为一款强大的工程师专业工具,可以快速、方便、高效地实现串口通信上位机编程,为工程师带来更加便利的开发体验和快速开发成功的机会。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值