0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用Labview写一个电子称的485串口程序

手把手LabVIEW 项目实践 来源:手把手LabVIEW 项目实践 作者:手把手LabVIEW 项目 2025-03-06 09:54 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Labview写一个电子称的485串口程序

关键词:Labview +串口程序

232、485串口通讯是最常见的仪器仪表通讯方式之一,本文详细介绍,用Labview编写一个电子秤的485串口程序.

一.前面板的编写

串口指示灯:如图,当串口通讯正常时,通讯等亮(绿色),BOOL控件。

串口指示窗口:当串口通讯正常时,显示:串口on,字符串控件。

数字显示窗口:显示电子秤的读数,112.345,字符串控件。

时间显示窗口:显示当前时间,16:56:25,字符串控件。

单位显示窗口:单位:g,字符串控件。

wKgZO2fI_ZGAc9UFAAE6nBkWq30374.png图1:电子秤的前面板

报文显示窗口:显示时间和报文,用于实时看到电子秤的报文显示,用表格控件显示。

wKgZO2fI_ayAa2B9AAFff0ks0H4584.png图2:电子秤的前面板

二.各个功能的实现

系统时间的显示

wKgZO2fI_cuAUT2UAANOXK-cr5Y631.png系统时间的显示

按钮的禁用和变灰操作

当串口打开时:串口打开按钮需要变灰和禁用,当串口关闭时:串口关闭和零点标定等按钮需要禁用变灰。

如图所示,通过对对应按钮的属性节点的操作,完成相对应的功能,需要其变灰和隐藏时,写入禁用变灰,需要其有效时,写入Enabled值即可。

wKgZO2fI_q6AeEuUAACUvTcqciQ611.png按钮禁用变灰处理 wKgZPGfI_ryATkKiAACaGRaxiDQ062.png按钮禁用变灰处理

打开串口和关闭串口的操作

打开串口和关闭串口可以通过状态机+消息队列+串口的对象化编程来实现,本文要实现的功能比较简单,介绍一种简单的方式。通过条件结构和循环来实现。

wKgZPGfI_1iAd1Q9AABBL1j8YJw988.png

通过循环和条件结构的嵌套,即可完成打开串口和关闭串口的功能实现。这种框架的弊端在于,处理错误时比较费事。用消息队列状态机来实现,就会很好的处理一些串口错误的发生,后期会讲到。

串口读写及配置

wKgZPGfI_3OAECQgAAJP510RQFw734.png

如图所示,串口的配置比较简单,本电子秤的配置为:9600 N 8 1。如图配置皆可。没什么可讲的。

如图所示,报文的读取是通过VISA读取VI来实现的,指定需要读取的字节数即可,没什么好讲的,需要说的是,需要把读取放入条件结构中,然后放一个读取字节数的属性节点来检测读取到的报文,当缓冲区有报文时再触发读取VISA来读取。如果没有这个结构,读取VISA VI将一直等待,直到指定的字节数再读取出来。

如图所示,报文的吸入是通过VISA写入 VI来实现的,需要写入时触发条件结构把报文发出即可。

着重需要说明的是报文的处理。

写入报文的处理

wKgZO2fI_32AA6fIAAAu0m0DXg0358.png

如图所示,读取重量的报文为 01 03 00 00 00 02 XX,刚入门时,不需要去理解特定的报文结构,有些报文时是标准格式,有些报文是自定义的,只需要直到这么发出去,电子秤就会返回重量报文。本条报文01是地址,03是功能码,00 00寄存器地址,后面的XX表示CRC检验码。需要注意的是,都是16进制。把几个16进制字节用字符串连接VI连接起来发出去即可。

如果报文时固定的,直接用一个字符串产量发出去即可。

wKgZO2fI_5iAEgMjAABkbsTvhdk257.png

如图所示的CRC检验子VI是本作者(Labview十年工控702)自己用公式节点写的,需要的可以留言。

wKgZPGfI_7OAGb-AAAEB_NmnK9k112.png

16进制报文的正常显示

如图所示,因为写入报文为16进制,要在表格控件中正常显示,需要转换一下。

wKgZO2fI_96AQZBNAAG5UsewdXc493.png

读取报文的处理

读取报文的处理,主要就是把需要的数据解析出来, Labview读取出来的报文是十六进制的字符串格式。

如本文介绍的这种,一条报文只有一个数据的,可以把需要的字符串截取出来,用强制转换VI转换成16位的U16数据,然后转换成需要的带小数点的实数数据即可。

wKgZO2fI_-2AeC7uAABzNON4S3o542.png

如果是一条报文里面有好几个数据,比如XX XX 01 02 03 04 05 06 XX XX这条报文里面01 02表示温度,03 04表示压力,05 06表示二氧化碳浓度。可以用上的方法,先截取在转换。也可以批量处理更简单便利一些,先截取6个字节,然后转成U16数组,然后通过索引的方式处理数据。

wKgZO2fI__SAI9MLAACWakrea5E408.png

报文的校验和乱码的处理

在实际项目中,经常会遇到报文错位和乱码的情况。尤其是一些仪器仪表抗干扰能力比较弱的时候。此时所有解析出来的数据都是错位的,都是错的。这时候就需要来校验和乱码处理了。

在解析报文时,加一个判断即可,可以用地址+功能码判断,也可以用CRC判断。作者(Labview十年工控702)喜欢简单一点,直接用前两个字节来判断即可。只有判断报文没乱时再解析,如果判断出来报文有误,清空缓冲区即可。

有其余问题,请加群交流。需要CRC校验源码和16进制转字符串显示源码的,请留言或加群交流。Labview项目分享Q群:241388930

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • LabVIEW
    +关注

    关注

    2013

    文章

    3681

    浏览量

    344157
  • 串口通讯
    +关注

    关注

    2

    文章

    266

    浏览量

    26210
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    UWB650串口测距通信定位模块规格书

    UWB650串口测距通信定位模块规格书
    发表于 11-03 17:40 0次下载

    请问各位大神,我要用串口控制12台串联的气体流量计,想要做好点该怎么修改程序

    要点好几次才能将操作指令顺利传输进去,我想求助各位大佬,碰到这种很多台相同的仪器需要串联串口通信,同时又要实现可以每台单独读写的操作,这种la
    发表于 09-30 11:13

    ZP-RS485-PNWG02 规格书

    RS485ZP-RS485-PNWG1010路RS485硬 件 RS485串口数量2路(
    发表于 09-18 11:43 0次下载

    DTU的S485/232串口能够复用吗?

    想问下,DTU的S485/232串口能够复用吗?就是窗口下面接很多传感器设备那种,主要是传感器数量过大,传感器接
    发表于 08-06 06:58

    RS485串口服务器:双向透传,自动重连

    RS485串口服务器是种专门针对RS485通信接口设计的网络化设备,其核心功能是将基于RS485协议的
    的头像 发表于 05-27 15:03 558次阅读

    PL2303串口驱动

    PL2303串口驱动
    发表于 04-09 16:02 4次下载

    PL2303串口驱动win10版本

    PL2303串口驱动win10版本
    发表于 04-09 16:02 1次下载

    cp2102串口驱动

    cp2102串口驱动
    发表于 04-09 16:01 9次下载

    STM32串口下载软件(FLYMCU)

    STM32串口下载软件(FLYMCU),经典版本,亲试可用。
    发表于 04-09 15:59 5次下载

    使用Labview一个485串口电子程序

    232、485串口通讯是最常见的仪器仪表通讯方式之,本文详细介绍,Labview编写
    发表于 03-06 18:11 0次下载

    3.5英寸高清智能串口屏 8位MCU并口通信的COG裸屏 或带驱动板232串口通信的智能屏

    3.5英寸高清智能串口屏 8位MCU并口通信的COG裸屏 或带驱动板232串口通信的智能屏
    的头像 发表于 02-18 14:49 759次阅读
    3.5英寸高清智能<b class='flag-5'>串口</b>屏 8位MCU并口通信的COG裸屏 或带驱动板232<b class='flag-5'>串口</b>通信的智能屏

    MSC1201串口编程如何实现?

    我有温度变送器用的是MSC1201我想对它进行串口编程,需要TI DOWNLOADER,MSC1201串口编程如何实现,在电路板上有接口,接口脚为TXRXPSEN. 那里有TIDOWNLOADER啊,ISP如何实现,有温度变
    发表于 02-13 06:36

    OpenHarmony测试RS232/RS485串口方法,触觉智能SBC3528工控主板演示

    为大家介绍在鸿蒙系统下,没有串口工具的情况下如何测试RS232/RS485,触觉智能SBC3528工控主板演示
    的头像 发表于 12-17 14:29 1400次阅读
    OpenHarmony测试RS232/RS<b class='flag-5'>485</b><b class='flag-5'>串口</b>方法,触觉智能SBC3528工控主板演示

    使用ADS1232做一个电子称时遇到的疑问求解

    您好!我最近在使用ADS1232做一个电子称时遇到下面的问题,请指点:1,我使用的是数据手册上的P25中的figure 42.因为我的MCU是5V供电的,3V电源也是5V,也就是电路中的电源就只
    发表于 12-13 08:29

    RS232串口连接方式及注意事项

    数据交换。 RS-232串口简介 RS-232标准最初由电子工业联盟(EIA)在1960年制定,用于定义串行通信的电气特性、信号定时和数据格式。RS-232串口使用25针的D型连接器(DB-25),但后来更常用的是9针的D型连接
    的头像 发表于 12-10 16:23 6565次阅读