如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
附录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寻址就是作为广播寻址被保留