labview实例之IO输入.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验名称: LabVIEWIO输出实验 组号: 62 同组者: 吕隆斐 日期: 5.5 实验目的 掌握LabVIEW串口通信的工作原理、功能和使用方法; 掌握LabVIEW的编程方法。 实验主要仪器设备 一台安装LabVIEW 、Proteus、IN_VISA串口通讯协议驱动和虚拟串口软件VSPD的PC 机; 实验原理 被动接收型的串口通信稍微麻烦一点,由于上位机是被动接收的,上位机不知道什么时候开始下位机就已经有数据上来了,很有可能下位机发送到一半时,上位机刚好开始接收数据,这时只能接收到后面一半的数据了,所以对于这种通信,一般是采用数据帧的方式进行通信。 这种数据帧的通信方式至少由三部分数据组成:帧头、数据、帧尾(如果数据是固定长度的话,似乎帧尾也可以省掉)。 帧头是为了告诉上位机:从这以后的数据就是有用的数据了,相当于约定好的暗号。一般,帧头至少会用二个以上字节,如果只用一个字节的话,万一数据中的数据和这个帧头一样,就会误以为这个数据是帧头,从而导致解析数据出错;帧尾的作用也差不多,告诉上位机从这之前的数据才是有用的数据。但实际上一般的数据帧远不止这几个部分,还会加上一些校验字节、时间信息、帧计数器之类的信息在上面。 其中校验字节是为了检查数据在传输过程中有没有出错的,跟串口的校验位要区分清楚,校验位也是检查数据传输时有没有出错的,但由底层硬件来实现,校验方法由标准规定好,但有几种可以选择,只有一个位(Bit,只能是0或1)。 校验字节是由软件层来实现的,至少有一个字节(Byte,有8个位),而且校验方式由用户定义,非常灵活。 ?? 由于被动方式中串口的缓冲区中一直会有数据在,为了保持数据的连续性,在读取数据时跟第一种仪器控制类型不一样,而是将读取的所有的串口数据都保存在移位寄存器中,在软件上处理完这些数据后再将它们从移位寄存器中删除。 由于VISA READ的输出是字符串,所以一般使用“连接字符串”这个函数将它们连接起来,然后接到循环结构中的移位寄存器中进行保存,当移位寄存器中的数据量达到一定时或满足数据处理的条件时,才停止这个循环输出读取到的数据。 在接收下位机发送的帧数据时,一定要先了解帧格式,这样才能正确地解析出帧内的数据。 下面以例子来说明数据帧格式的通信。 设定通信数据帧每7个字节为一帧数据,其中以0xAC、0x96二个字节作为数据帧头,第3、4个字节为帧计数器,最大值为0xFFFF,到达最大值后重新从0开始计数。第5、6、7三个字节是数据信息,分别代表数据的高中低位。在实际应用中,数据帧格式可以根据需求自己定义。LabVIEW中接收到的数据都是以字符串的形式显示出来的,所以需要将字符串转换为ASCII码,一般可以直接使用“转换为U8数组”这个函数,如下图所示: 图8-1字符串转换为U8字节 转换为U8字节后,得到的是所传输字符的ASCII码,我们就很容易进行数据帧的判断了。现收到以下的字符串数据: , 图8-2 实际接收到的字符串 上图中下半部分显示的数组是使用“字符串转换为U8数组”的函数转换之后得到的数组,一个是十六进制显示,另一个为十进制显示。对照定义的数据帧格式,就很容易得到我们需要的数据了。 首先是要看从哪里开始才是完整的第一帧,从上面十六进制显示的数组中我们可以看到,并不是第一个字节就是我们需要的帧头,因为下位机是一直处于发送数据的状态,很可能在串口发送一帧数据的过程中串口就被初始化或者被清空了一次缓冲区,那么这一帧数据的前面部分数据可能就会丢失,只留下后面一部分数据。 以上图为例子,第一二个字节为0x32、0x22,显示不是我们要的帧头,我们要的帧头是在第6、7个字节。以程序来实现的话就是先查找第一个帧头,使用“有哪些信誉好的足球投注网站字符串”,如果找到则判断它下一个字节是否是第二个帧头,如果是,表明已经找到帧头,输出帧头的位置;如果它下一个字节不是第二个帧头,说明这里不是真正的帧头,继续查找下一个帧头,直到找到帧头或有哪些信誉好的足球投注网站完整个字符串都找不到帧头。 这是一个程序的算法问题,具体实现的程序如下图所示: 图8-3帧头查找程序 查找帧头到以后,再找数据就容易了。根据之前的定义,第5、6、7个字节是才是我们要的数据,所以直接使用索引号进行索引输出即可(注意数组下标) 图8-4获取实际数据 一般情况下,如果是用三个字节表示一个数据的话,那么这三个字节分别表示为一个数据的高中低字节,即高字节要乘以25536再加上中字节乘以256再加上低字节的值 另外,帧格式中定义了最后一个字节为状态标志位,所以提取数据前还要检查一下这个标志位是否正常,不正常时要进行相应的处理,这里不再详细描述。 至此完成一次数据帧的提取。 有一些对测

文档评论(0)

dashewan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档