基于LabVIEW的Modbus协议两种校验码的实现方法

最新更新时间:2011-11-30来源: 互联网关键字:基于LabVIEW  Modbus协议  校验码 手机看文章 扫描二维码
随时随地手机看文章

基于LabVIEW的Modbus协议两种校验码的实现方法

介绍基于LabVIEW的Modbus协议两种校验码的实现方法,该方法可在基于PC机的测控系统中加以实际运用。
  关键词:Modbus协议;LabVIEW;CRC校验;LRC校验

  下面仅讨论与本文有关的Modbus协议的内容。
1.1Modbus协议的数据传输方式
  Modbus协议定义了两种数据传输方式,即ASCII模式和RTU模式(表1、表2)。控制器可以设置为两种传输方式(ASCII或RTU)中的任何一种,在标准的Modbus网络中进行通信。用户可选择想要的模式,包括串口通信参数(波特率、检验方式等);在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。
?
1.2.1ASCII帧
  使用ASCII模式,消息以冒号(:)字符(ASCII码3AH)开始,以回车换行符结束(ASCII码0DH,0AH)。
  其他域可以使用的传输字符是十六进制的0…9,A…F。网络上的设备不断侦测“:”字符,当有一个冒号接收到时,每个设备都解码下个域(地址域)来判断是否发给自己。
  消息中字符间发送的时间间隔最长不能超过1s,否则接收的设备将认为传输错误。一个典型消息帧如表3所示。
?
?
  选用ASCII模式作字符帧,错误检测域包含两个ASCII字符。这是使用LRC(纵向冗余检测)方法对消息内容计算得出的,不包括开始的冒号符及回车换行符。LRC字符附加在回车换行符前面。?
1.3.2RTU模式
  选用RTU模式作字符帧,错误检测域包含一16Bits值(用两个8位的字符来实现)。错误检测域的内容是通过对消息内容进行循环冗余检测得出的。CRC域附加在消息的最后,添加时先是低字节然后是高字节。故CRC高字节是发送消息的最后一个字节。
1.4Modbus的数据校验方式
1.4.1CRC-16(循环冗余错误校验)
  冗余循环码(CRC)包含2个字节,即16位二进制。CRC码由发送设备计算,放置于发送信息的尾部。接收信息的设备再重新计算接收到信息的CRC码,比较计算得到的CRC码是否与接收到的相符,如果两者不相符,则表明出错。
  在进行CRC码计算时只用8位数据位。起始位、停止位、奇偶校验位都不参与CRC码计算。
  计算CRC码的步骤为:
  ① 预置16位寄存器为十六进制FFFF(即全为1)。称此寄存器为CRC寄存器。
  ② 把第一个8位数据与16位CRC寄存器的低位相异或运算,把结果放于CRC寄存器。
  ③ 把寄存器的内容右移一位,用0填补最高位,检查最低位。
  ④ 如果最低位为0:重复第3步,再次右移一位;如果最低位为1:CRC寄存器与多项式A001(1010 0000 0000 0001)进行异或运算。
  ⑤ 重复步骤③和④,直到右移8次,这样整个8位数据全部进行了处理。
  ⑥ 重复步骤②到⑤,进行下个8位数据的处理。
  ⑦ 最后得到的CRC寄存器的值即为CRC码。
  ⑧ 将CRC码分成高8位和低8位,按低位在先,高位在后,将它们加到传送数据之后。
1.4.2LRC(纵向冗余错误校验)
  LRC错误校验用于ASCII模式。这个错误校验码是一个8位二进制数,可作为2个ASCII十六进制字节传送。计算LRC码时,仅设备地址、功能代码、数据块字节参加运算,而冒号(:)、回车符号(CR)、换行字符(LF)不参加运算。具体计算LRC码的步骤为:
  ① 需运算的所有字节相加,所得之和丢弃进位。
  ② 将上步计算出的8位字节取反或由FFH减去该8位字节。
  ③ 将取反后的值加1即为LRC码。
  接收端判断接收到的信息是否正确的简单方法是:将除冒号(:)、回车符号(CR)、换行字符(LF)以外的所有字节,包括LRC码相加并丢弃进位,若结果为0,则表明信息传送正确,否则出错。?
  遵照1.4.1节中计算CRC码的步骤进行软件设计如图1所示。
关键字:基于LabVIEW  Modbus协议  校验码 编辑:神话 引用地址:基于LabVIEW的Modbus协议两种校验码的实现方法

上一篇:基于虚拟仪器的CO2弧焊分析仪的研制
下一篇:LabVIEW编程实时控制KEITHLEY 6517A静电计

推荐阅读最新更新时间:2023-10-12 20:32

基于LabVIEW的气象监测系统
自动气象站体积比较庞大,而且使用时地点和空间会受到地点、空问上的影响。如果借助虚拟仪器技术中易开发、小体积和方便使用等优点,就可以利用虚拟仪器替代自动气象站的数据采集器和数据预处理器。 虚拟仪器技术是利用计算机的硬件资源(CPU、存储器、显示器、键盘、鼠标)、标准数字电路(GPIB、RS 232接口总线、新型的VXI接口总线、信号调理和转换电路、图像采集电路、现场总线等),经过有针对性的开发测试,使之成为一套相当于使用者自己专门设计的传统仪器。LabVIEW(laboratory virtual instrumentengineering workbench)是NI(national instruments)美国国家仪器公
[测试测量]
<font color='red'>基于</font><font color='red'>LabVIEW</font>的气象监测系统
基于MCS51的低成本LabVIEW实验教学系统
  在此利用廉价的MCS51 单片机设计 了包含常用传感器、数据采集模块与USB通信接口的LabVIEW 实验教学系统。该系统使用USB接口与上位机通信并提供电源,而上位机编程直接调用VISA驱动USB接口,大大降低了数据采集程序设计的难度。该系统可以满足大学虚拟仪器实验教学的需要,性价比高,具有良好的推广前景。   0 引言   NI 公司于20 世纪70 年代提出了虚拟仪器的概念。虚拟仪器是在以计算机为核心的平台上,由用户设计,具有虚拟面板,由软件实现测试功能的计算机仪器系统,是计算机与测试仪器相结合的产物。虚拟仪器最常用的编程语言为LabVIEW,是NI公司的基于图形化编程语言的虚拟仪器 开发工具 ,利用它可以轻松组
[单片机]
<font color='red'>基于</font>MCS51的低成本<font color='red'>LabVIEW</font>实验教学系统
基于LabVIEW的温度继电器测试系统设计
温度继电器是一种温度敏感元件,它的输出状态完全由所需控制温度高低决定。温度继电器的关键工序是温度特性(升温时的动作温度和降温时的回复温度)的检测。目前,对温度继电器的测量还采用手工测试,测试人员要不停地调整温度,当温度达到要求时,需要手工记录下每个数据,操作步骤十分繁琐,工作量也非常大。为了简化测试工作,提高工作效率及提高测试数据的可靠性,本文介绍的是一种利用KEITHLEY2700数据采集仪器,并在LabVIEW虚拟仪器平台上开发的温度继电器测试系统。 1 检测原理及系统的组成 1.1 检测原理 温度继电器的温度特性检测,实质上是判断温度继电电器是断开还是闭合那瞬间的温度是否符合技术指标。对温度继电器检测方法有3种
[测试测量]
<font color='red'>基于</font><font color='red'>LabVIEW</font>的温度继电器测试系统设计
基于LabVIEW语言的信号采集与处理
  1 概述   实验室虚拟仪器工程平台(LabVIEW)是一种专门用于数据采集、分析及仪器控制的图形化软件,它所开发的虚拟仪器将计算机强大的数据处理能力与仪器的硬件测试控制能力很好地结合在一起。   LabVIEW 的图形化开发环境具有精确、高效、功能强大、开发简易、实时性强、界面友好等优点,为用户提供了强大功能和使用的灵活性, 非常适合用于进行仿真、实时检测和控制。目前,LabVIEW 已经成为测试领域应用最广泛和最有前途的软件开发平台之一,也是应用最广、发展最快、功能最强的图形化软件开发集成环境之一。   虚拟仪器可以利用高性能的模块化硬件, 结合高效灵活的软件来完成各种测试、测量和自动化应用,与传统的测量
[测试测量]
<font color='red'>基于</font><font color='red'>LabVIEW</font>语言的信号采集与处理
基于LabVIEW的航天执行器的软硬件测试方案
  The Challenge:   开发基于PC机的寿命测试系统来替换传统的基于人工的系统,用于航天执行器的寿命测试。   The Solution:   借助于NI LabVIEW软件,使用PCI数据采集硬件进行寿命仿真,使用NI CompactRIO硬件用于传感器输入,我们制造出全自动化的寿命测试系统。   利用基于LabVIEW的解决方案,我们的客户可以比以往更全面地对执行器进行测试。同时,它还可以在短得多的时间内提供对执行器的特性和性能的更好分析。   系统综述   为了测试新型的电子执行器,我们决定对原来的人工流程进行自动化。通过这种自动化,工程师们可以定位执行器中的故障进而确定潜在的故障点。以前,驱动
[测试测量]
基于LabVIEW和PCI-5124的数据采集系统设计
传统数据采集系统一般由单片机与硬件采集电路或数据采集卡配置计算机组成。这种数据采集系统存在开发难度大、可移植性差、数据采集效率低、实时存储容量小等缺点。其存储容量取决于数据采集卡的板载内存的大小,一般只有8 MB或12 MB,而现代工程运用中的数据采集系统需具有很高的采样速率,完成海量数据的实时存储。针对传统数据采集系统存在的不足,这里采用虚拟仪器(LabVIEW)和高速数字化仪NI PCI-5124设计一种可以长时间连续采集、实时存储的数据采集系统。 本系统只使用PC机、数据采集卡以及编程语言即可在Windows操作系统下实现对数据的采集、存储、处理,开发成本低,通讯能力强,易于使用。系统改善了传统数据采集系统的存储量小
[测试测量]
<font color='red'>基于</font><font color='red'>LabVIEW</font>和PCI-5124的数据采集系统设计
基于LabVIEW的湿敏元件性能测试分析系统
0 引言 湿敏元件用于局部环境的湿度监测与自动控制,近年来随着新材料(如稀土掺杂)的出现及纳米级元件的制作,人们对其电学特性、感湿机理及其等效电路的研究日益增多。在湿敏元件性能的测试工作中,传统的人工测试依然占据着主导地位,这种手动测试方法因为其测试精度差、测试速度慢、数据处理过程复杂、繁琐等缺点,不利于湿敏元件的分析与改进。通过GPIB接口卡将程控设备与计算机连接起来,基于虚拟仪器技术组建多功能的湿度传感器自动测试系统。由于采用了虚拟仪器技术,用户可以在计算机的虚拟面板上进行所有操作,具有使用方便、功能强及性能可扩展等优点,与传统仪器相比在数据处理、人机交换等方面显示出巨大的优势,能够对湿敏元件性能参数做出快速准确的测试与分
[测试测量]
<font color='red'>基于</font><font color='red'>LabVIEW</font>的湿敏元件性能测试分析系统
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved