关于Labview串口通讯的进制转换

我们在编写串口通讯或者modbus的时候,往往读到数据但是总是解析出错,这个原因是在串口通讯中实际传输的是ASCLL码,但是一般字符串控件显示出来的并不是ASCLL码,则造成解析出错。

        解决此方法需要正常显示和16进制强制转换,那么现在我们就来分析一下如何转换并得到正确的数据。

 那么何问正常显示?何为16机制显示?

        正常显示:可打印字符以控件字体显示。

       16进制显示:每个字符显示为其十六进制的ASCII值,字符本身并不显示。

关于Labview串口通讯的进制转换

众说周知机器读取二进制数据他是怎么转换成正常显示呢?我们需要用到ASCLL码表 然后转换为正常显示。

               二进制和ASCLL直接的对应关系

关于Labview串口通讯的进制转换

关于Labview串口通讯的进制转换

计算机编程相关的工作都是遵循相同的计算机基本原理与规则。

        那么在串口通讯中数据发送与接收都是基于字符控件进行的。字符串控件有两种表达形式即:正常显示和16进制显示。

关于Labview串口通讯的进制转换

 LABVIEW字符串正常显示与16进制显示转换:

    正常显示致16进制强制转换,VISA Write:

关于Labview串口通讯的进制转换

十六进制显示至正常显示强制转换,VISA Read:

关于Labview串口通讯的进制转换

 ok 以上就是正常显示和16进制之间的转换程序。那么我们在实际操作的时候还会遇到问题即:在Modbus通讯时候10功能吗必须写2个地址 (modus通讯我们后期文章在做介绍) 那么我们就需要做补0操作 例如:十进制100  发送 0064 而不是64 那么我们程序该怎么写呢 判断加补0即可:

关于Labview串口通讯的进制转换

关于Labview串口通讯的进制转换

 

上一篇:LabVIEW实现录音和播放功能


下一篇:LabVIEW实现PCB电路板坐标定位(实战篇—2)