s51-scm-based-on-modbus-protocol(基于modbus协议的pc机和msc51单片机之间的通信)外文翻译大学论文_第1页
s51-scm-based-on-modbus-protocol(基于modbus协议的pc机和msc51单片机之间的通信)外文翻译大学论文_第2页
s51-scm-based-on-modbus-protocol(基于modbus协议的pc机和msc51单片机之间的通信)外文翻译大学论文_第3页
s51-scm-based-on-modbus-protocol(基于modbus协议的pc机和msc51单片机之间的通信)外文翻译大学论文_第4页
s51-scm-based-on-modbus-protocol(基于modbus协议的pc机和msc51单片机之间的通信)外文翻译大学论文_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

附录1:外文资料翻译出处:FaydorLLitvin,AlfonsoFuentes,TelecontrolequipmentTransmissionprotocols,PeachpitPress,2007基于MODBUS协议的PC机和MSC-51单片机之间的通信摘要:这篇文章讲述了一个可靠的方法去接收RTU(远方终端)方式的信息帧[12],它是通过使用MSCOMM控制,与在用VB6.0控制下的定时器相联系,这是根据信息的特征来确定的。这种信息的开始与完成都是通过时间间隙长度来做记号的,它的长度一般是不会变的,而且用微机接收信息的过程通常都会被简短的描述一下。此外,在这篇文章中也讲述了PC和MSC-51SCM(单片机)的连接是通过使用RS-485网络连接通信的。关键字:MODBUS(控制总线)协议;MSCOMM(微软商业)控制;串行通信1前言目前,工业控制已经趋向集中控制和M&C(测量和控制)的分配测量、MODBUS作为现在在工业应用领域最广泛的网络适用协议,已经被广泛的使用在电力仪器和M&C系统使用一个PC作为主要装置,其他许多智能设备都是建立在微机的基础上,这样可以通过自己的从属装置串行端口和其他设备相互通信。主要装置和从属装置都是通过串行端口通信。在MODBUSM&C系统中错误信息的传送模式是远方终端(RTU).在RTU方式下,信息帧通常被默认间隔至少是3.5倍字符时间所分离.当帧的长度是可变的时,在分析了MODBUS协议和MSCOMM控制性能的基础上,这篇文章还为PC和智能设备之间提供了一个非常有效的RTU通信方式,而且还包括了一些过程提示.2MODBUS协议的产生少量公司在1979年被SchneiderAutomation合并时,已经开展了MODBUS协议,当时在世界上这个协议已经变成了在工业领域最不相关的信息协议。为了确定工业通信标准对外开放,SchneiderElectric已经在2004年4月将MODBUS版权交给了MODBUS-IDA.瞄准了工业通信的进展,MODBUS-IDA是一个在2002年被MODBUS组织和IDA组织建立的非营利的组织.在2004年的九月份,该协议已经被IEC使用作为PAS(公共利用特权).MODBUS是一个合法的信息协议,定位在OSI模例的7级,是提供了”客户机/服务器”通信在装置连接在不同类型的总线上或网络上,如TCP/IP,RS-232,RS-485,MODBUS正偏差.因此,每种类型的装置都可以使用MODBUS协议去进行一个远程的操作,甚至不同的公司产品.MODBUS协议规定了一个不管在什么总线上或网络上的简单信息帧结构.它是这样描述的:控制程序的过程是如何去询问其它装置的,怎样去响应其它的询问和怎样去感知错误并注意.MODBUS网络标准是使用RS-232兼容性的串行接口界面.它规定了引脚,电缆,信号比特,波特率和奇偶校验.控制器可以将总线直接或通过MODBUS装置和其他的主—从装置一一通信.主要装置可以寻址一个从属装置,或者引用一个广播信息给所有的从属装置.MODBUS标准的网络使用二分之一上午传送类型的方式:ASCII方式,或者远方终端方式.为了和SCM通信,通常使用RTU方式,它的开始和结束都有一个默认间隙.一个典型的RTU帧由”从属寻址(1),功能代码(1byte),CRC(2byte)”组成.MODBUS协议需要控制器必须知道从属装置的寻址,而且能够根据调入寻址,判别信息和响应.3PC和MCS-51SCM通信的硬件连接一个多路的异步串口通常由RS-485总线完成.当这些连接在PC上的串口是RS-232的,SCM上的接口是TTL水平.因此,在PC和SCM替换为RS-485是必须有一个转接,这也是为了通信.在TTL和RS-485之间的转换芯片是MAX485.图A1.1PC和SCM的连接4用PC和MCS-51单片机接受实现MODBUS远方终端信息帧4.1MODBUS远方终端信息帧的定义MODBUS协议定义PDU的三种类型,它可以查询PDU(数据协议单元),响应PDU和错误响应PDU.但是实际的传输信息帧是ADU(应用数据单元),ADU就是MODBUS协议在特定的总线或网络下,将驱动器字母分配给特定的逻辑磁盘驱动器.在RS-485总线下,一个典型的ADU是”寻址代码(1bytes)+PDU+CRC校验(2bytes)”表A1典型RTU信息帧结构表格1说明了典型的RTU信息帧(没有开始间隔时间区段和结束间隔时间区).RTU信息开始必须至少有个3.5倍字节时间的默认间隔.第一被连接的是从属装置,MODBUS装置没有专门的寻址,只有从属装置才有寻址.这种寻址在MODBUS串口总线上必须是唯一的,0寻址就是作为广播寻址被保留.所有从属装置指令必须能够识别广播寻址。有个别的从属装置被分配寻址在1~247范围之内。当一个从属装置返回它的响应时,在信息编址区段置入它的寻址去让主要装置知道哪个从属装置做出了响应。MODBUS数据的功能代码区段是被定义在一个字节之内,有效代码是在1~255之间。当一个信息从一个客户程序发送到一个主机时,功能代码区段会告诉主机该做出什么样的反应。功能代码“0”是无效的。当主机对客户段做出反应时,它利用功能代码段去指示正常响应或一些中断响应。作为一个正常响应,主机简单地应答原始的功能代码。作为一个中断响应,主机通过PDU的有效字节去返回原来的功能代码段。在数据区段,两个字节的数据先发送高字节,后发送低字节。MODBUS网络使用两种方法检查错误:奇偶校验必须用在每个字节里。帧结构校验必须用在整个信息里。奇偶校验是定向于在RTU方式中的每个字节。其RTU是由1个开始字节,8个数据字节,1个奇偶校验完成字节和一个停止字节组成的。被默认的奇偶校验必须适合于任何一个奇偶校验,其目前是为了确定和其它的机子有最大程度的兼容性,它时常也支持没有奇偶校验方式。没有奇偶校验的要两个终止字节。在传送方式中有两种帧结构校验。RTU或ASCII在RTU方式中,信息包括一个错误校验区段,它是建立于CRC(循环冗余校验方法)的基础之上的。通常当使用CRC校验时,也就不需要奇偶校验了。CRC字段是两个字节,包括一个16字节的二进制值。CRC值是通过传送装置计算的。在CRC收到信息的过程中,该装置还要重算,而且还要比较其计算值和在CRC区段接收的实际值。假如这两种值不相等,就有一个错误结果。最后,该信息帧必须在默认间隔为1.5字符时间的情况下结束。RTU方式的CRC检验多项式值是A001,CRC的开始是通过第一个预加载的16字节的CRC寄存器完成的,该有效字节有零位置入MSB(最有效的字节),LSB是摘取和检验。假如LSB是一个1,则寄存器就是一个有预置值的互坼段。假如LSB是一个0,没有互坼段使用,这种过程将会不断重复直到8个替换完成。最后一个替换结束以后,下一个8字节字符是寄存器当前容量下的互坼段(ExclusiveOred),而且过程不断重复,它自己的8个替换已经在上面描绘过。在所有信息字节被应用过以后,CRC寄存器最后的容量就是CRC的值。4.2用PC实现MODBUSRTU方式对于PC,我们通过VB编程,用MSCOMM控制,MSCOMM控制为异步串行通信提供了两种方法:轮询和事件驱动技术。事件驱动的实现是通过使用MSCOMM控制ONCOMM事件。这种方法能够自动地检测到通信事件,而且能够开始进行一系列的串行中断服务子程序。这种中断只有当通信发生时才会产生。因此,当没有通信发生时,CPU能够做其他的事情。为了完成整个的功能,门限属性必须正确,当阈值等于N时,它意味着当存储器缓冲区接收到N字节时,ONCOMM事件就会有所反应。因此,事件驱动对于接收不固定长度的信息帧是不理想的。换句话说,轮询的方法可以周期地读取寄存器缓冲标志去判断一个事件是否发生。当轮询完成时,它不需要硬件中断,而且不丢失任何数据或事件。但是这种轮询方法需要一步一步地接收或者发送信息不全的数据。考虑到各种方法的优点,这篇文章讲了一种方法是通过建立有定时器中断的轮询机构去接收MODBUS信息帧。正是因为发送信息的过程很简单,这里我们只讲述一下在PC中怎样去接收那些不固定长度的信息帧。为了连续地观测串行口数据发送或接收状态,在同一时间里,整个过程在一个很大的范围内进行,它容许去交换对整个操作系统的控制权,这种技术也就确保当操作系统事件能够被响应时,应用程序集中到了它想要做的事件上。编程的关键就是当帧开始和结束时,怎样去发现应用程序监管的许多字节已接收到,而且当两个接收字节的时间间隔超过最大的计划发送信息帧所包涵的两个字节的时间间隔时,要接收每个字节时都要先复位计时器。定时器会产生一个中断事件而且置帧的结束标志位为“frame_end=True”,而且假如主要循环程序校验到帧结束标志时,它将停止计时。而且发送接收数据,使其给过程排列。正确的计时时间是在结束了帧之后的一个3.5字符默认间隔时间。主要程序如下:DiminAa()asByteNewcount=0Oldcount=0DoNewcount=MSComm1.InBufferCountIfnewcount<>oldcountThenTimer1.Enabled=FalseTimer1.Enabled=TureEndIfIfframe-endThenTimer1.Enabled=FalseFrame-end=FalseinA=MSComm1InputinAa=inA’savingthewholeframedatareceivedintoinAaarrayMSComm1.InBufferCount=0Newcount=0Oldcount=0CalldataprocessEndIfDoEventsLoopUntil04.3用SCM实现MODBUS协议和PC相比较,在SCM上实现MODBUS协议是会简单的多,因为SCM能够明确地执行计时,而且还能够更精确地判断帧间隔。此外,装配语言的强大数据计算能力,能够使它更方便地计算CRC的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论