labview串口接收数据_labview串口被动接收数据

虚拟仪器

25人已加入

描述

点击学习>>《龙哥手把手教你学LabVIEW视觉设计》视频教程

1.程序界面:

串口

功能介绍:左边上方串口接收区,下方为串口字符发送区。右方为一个波形图表,在程序内部每次将串口发送过来的数据,以f%格式化,显示在波形图表上。

按钮介绍:从左至右依次,发送按钮;清除计数按钮;打开/关闭串口按钮;清除接收区数据;清除波形图表;保存波形;退出程序。

2.主程序框图:

串口

主程序框图介绍:主程序框图主要由3个状态组成:程序的初始化,程序事件的响应,程序的退出。

状态Init:程序初始化,主要把OpenCom等按钮,串口状态,串口接收字符串,波形图标,TX/RX计数等控件,置为False或清零。初始化状态只执行一次,接下来就进入状态Event。

状态Event:程序事件响应,由一个事件结构构成,共需响应8个事件:Open/CloseCom按钮事件;串口号或波特率改变事件;发送按钮事件;清空计数按钮事件;清空接收区按钮事件;清空波形区按钮事件;保存波形按钮事件;菜单选择事件;退出按钮事件。如果在此状态,按下退出按钮,则进入状态Exit,否则程序将一直运行在此状态。

状态Exit:程序退出。退出前需关闭已打开的VISA句柄。

3.串口接收程序框图:

串口

串口接收程序框图介绍:当串口状态为真时,调用串口属性节点”BytesatPort”,如果串口缓冲区有X字节的数据就接收X字节的数据。最后,用一个状态机来实现相邻两个字符串的判断。如果串口在相邻两个字符串之间接收时间大于50ms,则判断为两个独立的字符串;如果小于50ms,则自动拼接前后两个字符串。

4、labview串口被动接收数据

这里labview被动接收传感器发送来的数据,即在开发板获取传感器的数据来进行计算控制时,labview用来数据的采集。

串口

这是labview串口配置和指令发送,指令发送用于主动发送再接收时,此处不需要用到该模块,直接将if结构置假即可,或者直接删除。这其中用到的CRC子vi主要是在输入指令不同时自己计算出校验位,如果程序始终只用到一个电机运行速度读取命令,可以直接手工计算并发送校验位。

由于被动接收数据,所以接收到的数据不一定是刚刚好从标识位开始,所以要进行识别。这里用到while循环的移位寄存器,每次连续读取15位,因为一串完整的命令为8位,所以连续15位中肯定存在一组完整的数据,但这样读取数据的弊端在于每读取一串数据必定损失掉一串数据,考虑到labview读取的速度跟不上传感器发送数据的速度,所以这其中会损失掉很多数据,但读取的数据还是可以整体上反应出倾角传感器倾角的变化情况。

串口

串口数据读入并寻找帧头

串口

未找到帧头

读取15位数据后进行帧头寻找,第一位为68,第二位为07,注意都是16进制表示的。如果找到帧头,就输出帧头索引值,如果找不到帧头就将索引值置为14,即最后一位,使得后面索引到的数据都为0,即倾角为0。

串口

组索引和数值转化

根据通信协议,将索引值开始的3位数据读出并转为所需要的角度值,注意正负的转换。

接线问题

在倾角传感器-开发板-电脑labview连接中,开发板和传感器之间严格进行着发送一串数据接收一串数据的传输,而电脑labview只是来接收传感器数据,所以电脑labview只用RXD端连接传感器的TXD端,TXD置空,因为发现TXD如果接入三者连线中,会导致单片机和传感器间发送接收异常,这个问题在电机控制器-开发板-电脑labview中应该注意避免。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
無心9899 2019-08-09
0 回复 举报
您好,您的源程序能否有偿给我发一 收起回复
目夏秋 2019-05-13
0 回复 举报
您好,您的源程序能否有偿发给我,可以QQ联系,是否可以帮我设计个功能,有偿QQ1032859516 收起回复
全部评论

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分