点击学习>>《龙哥手把手教你学LabVIEW视觉设计》视频教程
虚拟串口一般是跟串口调试小助手一起用来调试的。下面讲一下它的应用。主要分跟仪器在线连接调试,还有测试自己的程序。
①,调试下位机指令,使用串口调试小助手,连接仪器调试。
一般你拿到一台仪器,得到指令后,建议用串口调试小助手来测试指令,指令测试没问题后,再用
labview 来进行编程。
很多人指令都没弄清楚,然后用 LabVIEW 编写了程序,然后收不到数据之类的,很可能你指令不对,可能发送的不是 16 进制的,或者发送的末尾没加校验叫终止符之类。所以,循序渐进的来的话,先用串口调试小助手测试指令,然后把指令在写到 VISA 写入里面。
串口调试小助手,网上有很多。注意,有些串口调试助手,写的可能不好,我以前见过一些从网上随便下的,然后发送指令有问题。后来发现,十六进制下,字符串之中的空格符没给自动的去除,还有各种的,所以,前提是,保证你串口助手没问题。
我用的是这个,挺好用的。常见的,就是字符串输入框输入命令,记得分清是不是 HEX发送。然后还可以多条字符串发送。
先配置好串口的参数,有些可选项,像 DTR 和 RTS 的,按要求选或者不选。
正常情况下,用单一的字符串发送就可以了。比如你的协议发送是 SETV12.000(假定是程控
电源的,设置电压为 12.000V)。如果通讯没问题,程控电源回送一个 OK。在串口助手里,就可以看到 OK。如上图所示。
如果你连串口调试助手都木有收到信息,那你用 LabVIEW 编写肯定是有问题的。所以,前期一定要弄个明白这个协议没问题。
另外,像 Keithley2400,在 LabVIEW 设置里,貌似有个终止符的,要加个 OD 回车符,前面我讲过,属性里有个终止符输出,而说明书里没有写明,这里注意一下。
很多时候,你调试不通,其实都是细节问题。自己要养成良好的处理事情的习惯。自己多琢磨一下,然后实际调试去验证。
② 调试自己的上位机程序,即自己写的 LabVIEW 程序。
问:当你用串口调试小助手跟仪器调试时候,指令都正确了。可是自己写的程序,老是不对,或者收不到数据,或者乱七八糟,该怎么办?
答:
请使用串口调试小助手。
操作方法:先使用虚拟串口创建一对串口(如果创建了,就不必再重复了)。比如你创建的是 COM3 和 COM4。你打开串口调试小助手,选择 COM3,然后自己写的 LabVIEW 程序选择 COM4,配置好对应的参数,然后你的 LabVIEW 程序就可以跟你的串口调试小助手进行读写通讯了。
然后你把你下位机给上位机的指令,给自己的 LabVIEW 程序发送一遍,看自己的程序怎么样。第一,能不能收到。这个一般都可以收到。第二,处理后的数值对不对。这个就需要自己截取然后各种操作得到想要的。慢慢琢磨。
有时候,上位机收到的是一串字符,可能是不同的间断的,那可能就需要多条字符串发送。一般串口调试小助手有多条循环发送的功能,见下图,我这个就自带的,他会轮流发送字符串。
另外,可能很多人 LabVIEW 进行串口读取
(注意,这里只是读取,没有写入串口)的程序,大多是如下的组合。
请看 WHILE 循环里面,一个“读取串口字节数”和“VISA 读取”。前面已经说了,这两个函数的功能就是读取串口缓冲区已有的字符串。好比你有个水缸,每次使用一次这个组合,就是把水缸的一下子取干净。我加了个判断,没有数据就不读,节约效率。
有些人可能用这个“黄金组合”,收不到数据,那你最好程序里高亮试试,有时候,是下位机发送数据太慢,或者读取的太快,或是读取的是不能正常显示的,如 0A0D 之类的。
经验:用这种
读取串口字节数+VISA 读取组合,可以防止下图错误发生,因为有数据就读,没数据就不读。而如果你指定要读的字节数,当超时时间到之后,如果还没读到指定直接,就会报错。
但是,我写过一个协议,是先发送一段字符,过几毫秒马上又发送结束符 0D,所以,前面数据刚读出来,就被后面的覆盖了,导致我每次都只能看到 0D,后来才知道,不是一起发的,是间断发的。用这种组合,不容易掌握字符串的字数。因为它有数据就读出来,所以,调试的时候,自己多小心。
调试问题就讲这么多。具体靠自己琢磨。
编写者:浅浅的小草