微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > 小草手把手教你 LabVIEW 串口仪器控制——通信协议(指令)

小草手把手教你 LabVIEW 串口仪器控制——通信协议(指令)

时间:10-02 整理:3721RD 点击:
这一节是最重要的部分。懂串口通信的,可以绕过。
问题是:很多学 LabVIEW 的各种基础都没有,真让人捉摸不透,没学过 C 或者 C++,不懂数据结构,不过,如果你真的不懂懂,我还是讲一讲。
首先你要看说明书,保证物理连接正确。其次,找到你需要的协议。
假设你找到一个仪器模块的指令,如下。一般都会有输入命令,跟返回的。
首先,用串口助手测试下。先看自己需要的功能,一般仪器的功能都特别多。而自己一般需要测试输入通道或者输出即可。所以,先找到自己需要的功能。
上位机仪器的通信方式主要分为下面几种;
①,只发送指令,不接受指令。
②,不用发送命令,就只用读取响应。
③,发送一次指令,只读取一次响应。
④,发送一次命令,就一直连续读取响应
很多人,如果自己写单片机的话,大多都一直发送命令出来,就是第②种。正常的仪器,是第①③④种居多。
所以,首先分清你的仪器的指令,有没有返回字符串等。


如上图所示,如果是这个仪器,你就按后面的功能发送。注意那些 dd 和 nn 是格式说明符。上图的仪器,dd 指仪器的 ID 号,如果你仪器是 01,你要输入 ASCII 格式,就是输入 *01A。注意不要混淆了格式符。

下面看看 Keithley2000 的指令怎么用。


如果是国外的仪器,说明手册里面,都会有个 Remote Operation.见上图,是 Keithley2000万用表的说明书。自己看相关章节指令。

如果我们要读取 Keithley2000 测量读数,就可以用下面的 SCPI 指令。


在串口调试助手里或者 LabVIEW 发送一个 :READ?然后就会返回仪器读数。其他指令参照说明书即可。不过国外的一些仪器,有些指令可能有先后顺序,需要按一定顺序发送。具体看说明书。
--------------------------------------------
如下是,另一个仪器的说明片段,差不多告诉了用户格式。
注意看我红框部分。每个仪器差不多都会有的。都有发送命令,和相应命令。然后发送的命令和相应的命令都是有格式的。按照说明书的格式来。这个,是发送一次指令,就返回一次响应的。后面会详细解释。


这台仪器,还提供了例子,自己可以用这个例子测试一下仪器通不通。后面的接受数据部分,请看字符串那一节。

下面,我们把上图的例子部分,用 LabVIEW 写一下。
注意:命令串:$012B7(cr)中$012 是 ASCII 显示下的,而 B7 是十六进制显示下的。cr是回车符,即 16 进制的 OD。

由于显示不一样,所以我用连接字符串来组合。


这样,最简单的收发式的仪器通信就完成了。

问:我看自带的范例,在 VISA 写之后,都有个延时,这个延时,起个什么作用?


这个延时,主要是因为编程人员用的是这种组合。前面已经讲过了,它读取串口缓冲区所有数据,当你发送一个数据,要等待仪器回送完响应数据,再读取才是完整的数据,所以,要等待仪器响应。这个时间,看自己摸索,最好刚好合适,毕竟一直等待也不是最好的方法。
如果是本例,由于回送的字符串是固定的,如下图,有 11 个,那你就可以不要用延时。直接用固定字符串,这样,程序自己会自动等待 11 个字符串接受完再执行下一个。

正常情况下,如果接受的字符串是固定的,推荐使用固定字符串个数,就是如下图的方式来编程,等待延时这种方式不推荐。


注意:以上程序是发送一次指令,仪器回送一次响应的。有些仪器的指令,可能不需要返回指令。

下面举例一下:
比如某个仪器的开关接口,开关的命令如下,没有返回值;
输出允许:OUT1
禁止:OUT0
那么最简单的程序如下,控制开


有些仪器,检测到串口连接或者打开电源就会往串口发送数据,利用如下组合就可以了。因为上位机只需要读串口,不需要写串口。



编写者:浅浅的小草

论坛账号:happyarrow


推荐阅读:

小草手把手教你 LabVIEW 串口仪器控制——字符串处理

小草手把手教你 LabVIEW 串口仪器控制——VISA 串口配置

小草手把手教你 LabVIEW 串口仪器控制——初识VISA串口

小草手把手教你LabVIEW串口仪器控制—安装使用仪器现有驱动
小草手把手教你 LabVIEW 串口仪器控制——VISA 驱动下载安装篇


小草写的太好了,通俗易懂,真新感动,我是你的忠实粉丝.!
能讲些DAQ采集以及蓝牙方面的方面的知识吗,好期待啊!

感谢小草,我们要好好学习

感谢小草,想问问怎么加群呢

厉害!佩服!多多学习你!

很好的经验,学习了。谢谢小编分享。

沒C基礎,學習!

谢谢小编分享。

感谢小编                           

小草君写的真是太好了

好。

请教小编如何实现modbus控制变频器

学习了,很好的资料,谢谢分享!希望更多labview资料可以分享

好厉害的说。赞赞赞

哇,好东西。好东西……。

看完了,知识增长了不少,感谢小编!1

小编讲的都很详细,谢谢!

谢谢小编分享,学习中

感谢小草,我们要好好学习

还是很不错的啊。

感谢小草,我们要好好学习

入门,一直在看小草的教程,很详细很细致,感谢~~~

学习                                                           

解释得很不错哇。谢谢分享~~

写的超级棒,受益良多

学习了,希望我能学号仪器控制和单片机~~

感谢小草

不错

谢谢小草小编

很详细,希望小草继续努力发好贴。

好崇拜啊

谢谢小编分享,顶一下

很好,学习一下

哇塞好好学习一下

谢谢

谢谢!

谢谢讲解,学习中。

小草,labview水平什么级别了。

谢谢小编的无私奉献啊

干货,果断收藏,小编无敌

学习了,很好的资料,谢谢分享!

学习了。

学习一下,谢谢分享!

非常棒

感谢

感谢大神

收藏看下。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top