labview串口通信实现过程.docx
- 文档编号:11927775
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:25
- 大小:2.14MB
labview串口通信实现过程.docx
《labview串口通信实现过程.docx》由会员分享,可在线阅读,更多相关《labview串口通信实现过程.docx(25页珍藏版)》请在冰豆网上搜索。
labview串口通信实现过程
labview--串口通信实现过程
Labview实现串口通信步骤
1.在程序面板上添加VISA配置接口
2.添加后,开启帮助文档的显示。
菜单的Help->showcontexthelp,如下图
鼠标选择目标则会显示帮助框。
如下图所示。
鼠标移动到循环条件控制的引脚上,创建个control。
用于调试,不对条件处理,会报错。
6前面板放置个按钮,用于控制数据的发送
7.创建个事件,用于响应发送按钮
鼠标移动到timeout的位置,鼠标右键选择editevents…如下图所示。
操作上面后,出现如下界面:
选择需要响应的控件,这里选择“okbutton”,选择鼠标按下。
点击ok后,事件的名称也变化了。
如下图所示。
如果鼠标点击按键,则会进入事件处理。
8创建VISA写函数
9连接端口和写函数
10添加个关闭函数
11.创建字符串控件,传递给写函数,用于发送
选中VISAWrite的writebuffer,右键create->control,
12界面如下所示
13.安装虚拟串口,提供一个下载地址
用虚拟串口配置两个端口,配置好后,这两个串口之间是自动连接上,模拟硬件上两个串口对接上的。
如上图,指定好端口,点击Addpair。
14运行串口工具,提供一个下载地址
15.运行串口工具,打开串口,运行VI,发送数据
我的电脑配置的是COM12和COM13,vi选择COM12.
运行VI,在writebuffer里面填写test,点击OK发送。
每点击一次,发送一次。
16.建立接收模块
添加个while循环,
创建while循环,用于接收。
创建VISARead,在Readbuffer引脚上点击鼠标右键create->indicator,建立个显示控件。
使能串口事件,添加个VISAEnableEvent.
17在VISAEnableEvent的eventtype,创建个常量
然后在常量的下拉列表中选择SerialCharacter。
这个表示串口接收到数据,可以进入帮助文档查看详细的说明。
18.创建事件等待
19.连接事件,等待事件的类型直接连接在VISAEnableEvent的Eventtype即可。
20.添加个属性节点,VisaBytesatserialport,获取串口中的字节数
连接字节数,这样告诉需要读取的字节数。
也能保证每次都把串口中的数据读完。
21.添加个case结构
如果字节数大于0,那么读取数据并显示。
事件的超时时间设置为1000ms。
22.运行效果
23.调整下界面
24程序无法结束
按理说,点击两个stop按键,程序应该结束才对,但是事实不是这样的。
点击之后会卡住哪?
发送循环中,事件是一直等待按键的时间处理。
即使点击stop后程序也会等待按键的处理,现象是:
点击两个结束按钮后,还需要点击一次发送“ok按钮”才能结束程序。
处理办法:
在发送按钮事件创建个超时处理。
1.如下图所示,中事件的超时时间设置1000ms的常量
2.将鼠标放置在图中的红框中,点击鼠标右键,选择AddEventCase..
3.添加应用超时判断,如下图所示。
选择点击ok
添加后如下:
这样运行程序中,点击两个STOP按钮后就可以结束程序了。
25.使用一个按钮来结束程序
删除stop和STOP2按钮,在界面面板上添加个结束按键,如下图所示。
鼠标移动到按键上,右键,创建stop按钮的value属性节点,如下图所示。
创建两个结束按键的value属性节点,连接在循环条件上。
但是注意上面图中,连接线后,是错误的。
处理办法如下:
修改按键的行为,默认是第二排第二个,修改为上面第一个即可。
26优化1后的结果
运行程序后,点击一下stop,程序就结束了。
27.优化显示框
28将接收的字符追加显示
添加一个移位寄存器,将鼠标移动到while循环的左右边界上,点击鼠标右键,选择addshiftRegister如下图所示。
添加一个字符串连接函数,如下图所示。
连接线路,如下图所示:
这样程序是错误的:
点击下图所示,可以查看错误的地方,提示。
问题是在,添加了移位寄存器,然后两边的值连接经过case结构,我们只连接了True情况,False情况还没处理。
连接false下面的线路,如下图所示。
29优化2运行效果
30.添加滚动条
鼠标移动到显示框上右键,选择属性。
界面如下。
选中ShowVerticalscrollbar,显示框的滚动条就出来了,点击ok。
31还有一问题,接收数据中,滚动条不会跟着动
处理办法是,设置滚动条的位置。
创建滚动条位置属性节点,ScrollPosition.
鼠标移动到属性节点上,右键,选择ChangetoWrite。
那么控制的引脚方向转到前面了。
然后创建个常量1000,如下图所示。
这样呢,接收的字符显示的行数在1000以内,那么都会定位刚接收的字符位置。
32点击stop后,再运行程序的时候,stop还是那个状态
处理办法是在初始化过程中,对stop的按键值进行初始化。
创建stop的value属性节点。
如下图所示。
33.累加接收的字符数并显示
创建个移位寄存器,连接VISARead的Returncount,与上一次的值相加,再传给移位寄存器,作下一次使用,并显示相加的数字。
34优化3后
35可以对接收字符数判断,超过多少字符数后就清空显示框,重新开始显示
处理办法是:
对字符数做个判断,如果超过多少,加个case结构,超了就赋值个空字符串,未超就追加。
这个是初学做的记录,也希望能帮助到大家。
有疑问或建议可以发送到,大家交流下。
tangbinjob@.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- labview 串口 通信 实现 过程