资源描述
Modbus通讯协议及其应用1 Modbus 协议简介Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。图1 主-从 查询-回应周期表1.1 在Modbus网络上转输标准的Modbus口是使用一RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。控制器能直接或经由Modem组网。控制器通信使用主-从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。典型的主设备:主机和可编程仪表。典型的从设备:可编程控制器。主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。Modbus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。从设备回应消息也由Modbus协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。1.2 查询-回应周期1.2.1 查询查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如功能代码03是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。1.2.2 回应如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据:象寄存器值或状态。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。2 两种传输方式控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus网络通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。所选的ASCII或RTU方式仅适用于标准的Modbus网络,它定义了在这些网络上连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何解码。2.1 ASCII模式当控制器设为在Modbus网络上以ASCII(美国标准信息交换代码)模式通信,在消息中的每个8Bit字节都作为两个ASCII字符发送。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。代码系统十六进制,ASCII字符0.9,A.F消息中的每个ASCII字符都是一个十六进制字符组成每个字节的位1个起始位7个数据位,最小的有效位先发送1个奇偶校验位,无校验则无1个停止位(有校验时),2个停止位(无校验时)错误检测域LRC(纵向冗长检测)2.2 RTU模式当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。代码系统8位二进制,十六进制数0.9,A.F消息中的每个8位域都是一个两个十六进制字符组成每个字节的位1个起始位8个数据位,最小的有效位先发送1个奇偶校验位,无校验则无1个停止位(有校验时),2个Bit(无校验时)错误检测域CRC(循环冗长检测)3 Modbus消息帧两种传输模式中(ASCII或RTU),传输设备以将Modbus消息转为有起点和终点的帧,这就允许接收的设备在消息起始处开始工作,读地址分配信息,判断哪一个设备被选中(广播方式则传给所有设备),判知何时信息已完成。部分的消息也能侦测到并且错误能设置为返回结果。由于RTU模式的可以传输更多的信息,现在已被广泛应用,下面我们来分析一下RTU传输模式。3.1 RTU帧使用RTU模式,消息发送至少要以3.5个字符时间的停顿间隔开始。在网络波特率下多样的字符时间,这是最容易实现的(如下图的T1-T2-T3-T4所示)。传输的第一个域是设备地址。可以使用的传输字符是十六进制的0.9,A.F。网络设备不断侦测网络总线,包括停顿间隔时间内。当第一个域(地址域)接收到,每个设备都进行解码以判断是否发往自己的。在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束。一个新的消息可在此停顿后开始。整个消息帧必须作为一连续的流转输。如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续。这将导致一个错误,因为在最后的CRC域的值不可能是正确的。一典型的消息帧如下所示:3.2 地址域消息帧的地址域包含8Bit。可能的从设备地址是0.247 (十进制)。单个设备的地址范围是1.247。主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备。当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应。地址0是用作广播地址,以使所有的从设备都能认识。当Modbus协议用于更高水准的网络,广播可能不允许或以其它方式代替。3.3 如何处理功能域消息帧中的功能代码域包含了8Bit。可能的代码范围是十进制的1.255。当然,有些代码是适用于所有控制器,有此是应用于某种控制器,还有些保留以备后用。Modbus功能代码分类:公用功能码、用户自定义功能码、预留功能码。其中公用功能码经Modbus组织团体验证,保证每一代码的唯一性,基本上可以满足大部分用户需要。公用功能码的主要代码定义见下表:当消息从主设备发往从设备时,功能代码域将告之从设备需要执行哪些行为。例如去读取输入的开关状态,读一组寄存器的数据内容,读从设备的诊断状态,允许调入、记录、校验在从设备中的程序等。当从设备回应时,它使用功能代码域来指示是正常回应(无误)还是有某种错误发生(称作异议回应)。对正常回应,从设备仅回应相应的功能代码。对异议回应,从设备返回一等同于正常代码的代码,但最重要的位置为逻辑1。例如:一从主设备发往从设备的消息要求读一组保持寄存器,将产生如下功能代码:0 0 0 0 0 0 1 1 (十六进制03H)对正常回应,从设备仅回应同样的功能代码。对异议回应,它返回:1 0 0 0 0 0 1 1 (十六进制83H)除功能代码因异议错误作了修改外,从设备将一独特的代码放到回应消息的数据域中,这能告诉主设备发生了什么错误。主设备应用程序得到异议的回应后,典型的处理过程是重发消息,或者诊断发给从设备的消息并报告给操作员。3.4 数据域数据域是由两个十六进制数集合构成的,范围00.FF。从主设备发给从设备消息的数据域包含附加的信息:从设备必须用于进行执行由功能代码所定义的所为。这包括了象不连续的寄存器地址,要处理项的数目,域中实际数据字节数。例如,如果主设备需要从设备读取一组保持寄存器(功能代码03),数据域指定了起始寄存器以及要读的寄存器数量。如果主设备写一组从设备的寄存器(功能代码10十六进制),数据域则指明了要写的起始寄存器以及要写的寄存器数量,数据域的数据字节数,要写入寄存器的数据。如果没有错误发生,从从设备返回的数据域包含请求的数据。如果有错误发生,此域包含一异议代码,主设备应用程序可以用来判断采取下一步行动。在某种消息中数据域可以是不存在的(0长度)。例如,主设备要求从设备回应通信事件记录(功能代码0B十六进制),从设备不需任何附加的信息。3.5 错误检测域当选用RTU模式作字符帧,错误检测域包含一16Bits值(用两个8位的字符来实现)。错误检测域的内容是通过对消息内容进行循环冗长检测方法得出的。CRC域附加在消息的最后,添加时先是低字节然后是高字节。故CRC的高位字节是发送消息的最后一个字节。3.6 字符的连续传输当消息在标准的Modbus系列网络传输时,每个字符或字节以如下方式发送(从左到右):最低有效位.最高有效位使用RTU字符帧时,位的序列是:3.7 错误检测方法标准的Modbus串行网络采用两种错误检测方法。奇偶校验对每个字符都可用,帧检测(LRC或CRC)应用于整个消息。它们都是在消息发送前由主设备产生的,从设备在接收过程中检测每个字符和整个消息帧。用户要给主设备配置一预先定义的超时时间间隔,这个时间间隔要足够长,以使任何从设备都能作为正常反应。如果从设备测到一传输错误,消息将不会接收,也不会向主设备作出回应。这样超时事件将触发主设备来处理错误。发往不存在的从设备的地址也会产生超时。3.7.1 奇偶校验用户可以配置控制器是奇或偶校验,或无校验。这将决定了每个字符中的奇偶校验位是如何设置的。如果指定了奇或偶校验,1的位数将算到每个字符的位数中(ASCII模式7个数据位,RTU中8个数据位)。例如RTU字符帧中包含以下8个数据位:1 1 0 0 0 1 0 1整个1的数目是4个。如果便用了偶校验,帧的奇偶校验位将是0,便得整个1的个数仍是4个。如果便用了奇校验,帧的奇偶校验位将是1,便得整个1的个数是5个。如果没有指定奇偶校验位,传输时就没有校验位,也不进行校验检测。代替一附加的停止位填充至要传输的字符帧中。3.7.2 CRC检测使用RTU模式,消息包括了一基于CRC方法的错误检测域。CRC域检测了整个消息的内容。CRC域是两个字节,包含一16位的二进制值。它由传输设备计算后加入到消息中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。CRC是先调入一值是全1的16位寄存器,然后调用一过程将消息中连续的8位字节各当前寄存器中的值进行处理。仅每个字符中的8Bit数据对CRC有效,起始位和停止位以及奇偶校验位均无效。CRC产生过程中,每个8位字符都单独和寄存器内容相或(OR),结果向最低有效位方向移动,最高有效位以0填充。LSB被提取出来检测,如果LSB为1,寄存器单独和预置的值或一下,如果LSB为0,则不进行。整个过程要重复8次。在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当前值相或。最终寄存器中的值,是消息中所有的字节都执行之后的CRC值。CRC添加到消息中时,低字节先加入,然后高字节。4 Modbus在我厂的应用我厂新完成的3号竖炉的生球计量秤及熟球计量秤的仪表采用Modbus协议与主机(AC800F)通讯,实现了产量的计量,现将通讯格式及数据转换过程说明如下:3号竖炉的计量仪表(XR2001)采用RTU传输模式,1个启始位,无校验位,2个停止位,通过485物理接口与主机相连,联接速率为19200bps。消息帧格式如下:主站(AC800F)查询从站(XR2001)数据-功能码03H 主站发送格式:地址 *功能码 03H数据地址H 66H数据地址L *寄存器数量H 00H寄存器数量L *CRC16 LO *CRC16 HI *从站响应格式:地址 *功能码 03H字节数量 *数据MSB *.数据LSB *CRC16 LO *CRC16 HI *注:1、数据地址L为40H时,为读仪表数据。寄存器数量L应为1AH。仪表发送26字节数据:流量-4字节(浮点数),设定值-4字节(浮点数),累计量-8字节(定点数),速度-4字节(浮点数),载荷-4字节(浮点数),灯状态-1字节,报警信息-1字节采用Modbus通讯统计球团矿,数据采集设备和计算机设备,不必投入很大的实施费用,不仅可以对这两台仪表进行远程实时监测,而且充分用计算机的特点,可以对球团矿生产数据进行存盘,方便以后调用、查阅;可以多点显示,在工长室及布料操作室都可直接显示这两台秤的数据,布料工根据这些数据对整个竖炉生产进行最优化控制。系统投运以来运行稳定可靠。5 结束语由于Modbus串行通讯技术有着实现简便、系统集成费用低以及通讯距离远(RS485/422)等特点,所以,在各个行业的应用也都很广泛。伴随着多种通讯方式可以融合并存的发展趋势,Modbus串行通讯技术仍会保持广泛的应用前景。无线应用通讯协议目录概述 应用和原理 WAP协议 技术特点 WAP能做什么 抵御恶意攻击方法概述 WAP(Wireless Application Protocol) 为无线应用协议,是一项全球性的网络通信协议。WAP使移动Internet 有了一个通行的标准,其目标是将Internet的丰富信息及先进的业务引入到移动电话等无线终端之中。WAP定义可通用的平台,把目前Internet网上HTML语言的信息转换成用WML(Wireless Markup Language)描述的信息,显示在移动电话的显示屏上。WAP只要求移动电话和WAP代理服务器的支持,而不要求现有的移动通信网络协议做任何的改动,因而可以广泛地应用于GSM、CDMA、TDMA、3G等多种网络。 编辑本段应用和原理用户可以借助无线手持设备,如掌上电脑,手机,呼机,双向广播,智能电话等,通过WAP获取信息。 WAP支持绝大多数无线网络,包括GSM, CDMA, CDPD, PDC, PHS, TDMA, FLEX, ReFLEX, iDen, TETEA, DECT, DataTAC, 和Mobitex。 所有操作系统都支持WAP,其中专门为手持设备设计的有PalmOS, EPOC, Windows CE, FLEXOS, OS/9及JavaOS。 一些手持设备,如掌上电脑,安装微型浏览器后,借助WAP接入Internet。 微型浏览器文件很小,可较好的解决手持设备内存小和无线网络带宽不宽的限制。 虽然WAP能支持HTML和XML,但WML才是专门为小屏幕和无键盘手持设备 服务的语言。WAP也支持WMLScript。这种脚本语言类似与JavaScript,但对内存和CPU的要求更低,因为它基本上没有其他脚本语言所包含的无用功能。 编辑本段WAP协议WAP(无线通讯协议)是在数字移动电话、互联网或其他个人数字助理机(PDA)、计算机应用乃至未来的信息家电之间进行通讯的全球性开放标准。这一标准的诞生是WAP论坛成员努力的结果,WAP论坛是在1997年6月,由诺基亚、爱立信、 摩托罗拉和无线星球(Unwi redPlanet)共同组成的。 通过WAP这种技术,就可以将Internet 的大量信息及各种各样的业务引入到移动电话、PALM等无线终端之中。无论你在何地、何时只要你需要信息,你就可以打开你的WAP手机,享受无穷无尽的网上信息或者网上资源。 WAP能够运行于各种无线网络之上,如GSM、GPRS、CDMA等。WML是无线注标语言(Wireless Markup language)的英文缩写。支持WAP技术的手机能浏览由WML描述的Internet内容。 WML是以XML为基础的标记语言,用在规范窄频设备,如手机、呼叫器等如何显示内容和使用者接口的语言。因为窄频使得WML受到部分限制,如较小型的显示器、有限的使用者输入设备、窄频网络联机、有限的内存和资源等。 WML支持文字和图片显示,内容组织上,一个页面为一个Card,而一组Card则构成一个Deck。当使用者向服务器提出浏览要求后,WML会将整个Deck发送至客户端的浏览器,使用者就可以浏览Deck里面所有Card的内容,而不需要从网络上单独下载每个Card。 通过WAP这种技术,就可以将Internet的大量信息及各种各样的业务引入到移动电话、PALM等无线终端之中。无论在何时、何地只要需要信息,打开WAP手机,用户就可以享受无穷无尽的网上信息或者网上资源。如:综合新闻、天气预报、股市动态、商业报道、当前汇率等。电子商务、网上银行也将逐一实现。通过WAP手机用户还可以随时随地获得体育比赛结果、娱乐圈趣闻等,为生活增添情趣,也可以利用网上预定功能,把生活安排的有条不紊。 WAP协议包括以下几种: 1、WirelessApplicationEnvironment(WAE) 2、WirelessSessionLayer(WSL) 3、WirelessTransactionLayer(WTP) 4、WirelessTransportLayerSecurity(WTLS) 5、Wireless Datagram Protocol(WDP) 其中,WAE层含有微型浏览器、WML、WMLSCRIPT的解释器等等功能。WTLS 层为无线电子商务及无线加密传输数据时提供安全方面的基本功能。 WAP论坛一个很重要的指导思想是让WAP尽可能多的与现有的标准一致,以最大限度地保护制造商和应用开发者的投资。在很大程度上利用了现有的WWW编程模型,应用开发人员可以继续使用自己熟悉的编程模型、能够利用现有的工具(如Web 服务器、XML工具)等。另外,WAP 编程模型还针对无线环境的通信特点, 对原有的 WWW编程模型进行了优化和扩展。 在带宽考虑方面,WAP用“轻量级协议栈”优化现在的协议层对话, 将无线手机接入Internet的带宽需求降到最低,保证了现有无线网络能够符合WAP规范。 手机通过使用WAP协议栈可以为无线网络节省大量的无线带宽,例如, 完成一个股票指数的查询操作,如果通过使用HTTP1.0的台式机浏览器来完成要比通过一个WAP浏览器来完成所涉及的包通信量要大一倍以上。 WAP 协议使用的包数量不到标准的 HTTP /TCP/IP协议栈使用的一半。 目前,WAP在很多方面还不够成熟,但是已经足够打开一个新的通讯领域, 为无线网络提供了足够的技术标准基础,让互联网能够真正无所不在。 WAP目前主要使用1.2和2.0两个版本,后者是趋势,低端手机只能浏览1.2版本,目前主流的手机都已经支持2.0版本.有了2.0版本使用手机浏览的内容更生动,也可以像电脑站一样有背景音乐,有背景图片,使原本单调的手机网页变得色彩斑斓。 编辑本段技术特点过去,无线Internet接入一直受到手机设备和无线网络的限制。WAP充分利用了诸如XML,UDP和IP等 关于wap图片Internet 标准,它的许多规程建立在HTTP和TLS等Internet标准之上,但进行了优化,克服了原无线环境下低带宽、高延迟和连接稳定性差的弊病。 原来的Internet标准诸如HTML,HTTP,TLS和TCP用于移动网络是远远不能满足要求的,因为极大的文本数据信息需要传送。标准的HTML内容已不可能有效地显示在袖珍手机和寻呼机狭小的屏幕上。 WAP采用二进制传输以更大地压缩数据,同时它的优化功能适于更长的等待时间(long latency)和低带宽。WAP的会话系统可以处理间歇覆盖(intermittent coverage),同时可在无线传输的各种变化条件下进行操作。 WML和WML Script用于制作WAP内容,这样可最大限度地利用小屏幕显示。WAP的内容可从一个最新式的智能电话或其它通信器的两行文字的屏幕上显示出来,也可以转变为一个全图像屏幕显示。 轻巧的WAP规程栈式存储器的设计可使需要的带宽达到最小化,同时使能提供WAP内容的无线网络类型达到最多。它适用于多种网络,诸如全球移动通信系统GSM900,GSM1800和GSM1900;过渡性标准(IS)136;欧洲制式DECT;时分多址接入;个人通信业务,高速寻呼(FLEX)和码分多址等。同时它也支持所有的网络技术和承载业务,包括短消息业务(SMS)、非结构式辅助业务数据(USSD)、电路交换蜂窝移动数据(DSD)、蜂窝移动数字分组数据(CDPD)和通用分组无线业务(GPRS)。由于WAP建立在可升级的分层结构基础上,每一个分层可独立于其它分层而发展。这就使得在不需要对其它分层改变的情况下就可以引进其它承载业务或使用新的传输规程。 WAP使得那些持有小型无线设备诸如可浏览Internet的移动电话和PDA等的用户也能实现移动上网以获取信息。WAP顾及到了那些设备所受的限制并考虑到了这些用户对于灵活性的要求。 手持式WAP设备的局限性 WAP设备与PC相比: 低分辨率的小显示屏 输入装置容量有限,重要的是没有提供定点装置 低功率CPU,内存较少及能量较不稳定 网络带宽较窄且连接较不稳定 WAP带来的灵活性 与HTML-C相比,WAP标准没有规定WAP设备应为何种形态。这对设备制造商极为有利,可使其能够生产出各种不同类型的设备以满足不同需要。在不久的将来,市场对WAP设备的要求会以浏览器的显示屏尺寸、输入装置及内存大小等不同为根据,从而促使WAP设备在新技术及解决方案上得以发展进步。 通过使用移动电话连上互联网不久将成为一种标准,而WAP就是实现这一标准的技术工具。如今,移动电话上网数量的增长速度要比PC上网数量的增长速度更快。这也就意味着不久以后,大多数新的移动电话都将配有WAP浏览器。 持有WAP设备的无线用户可得到通过互联网提供的相关服务,网络页面的编制采用HTML格式。 届时对许多甚而是绝大多数用户而言,WAP设备将成为其获取这些服务的常用工具。 编辑本段WAP能做什么WAP能给生活带来极大的便利,使不方便使用电脑的你也可以通过WAP上网下载手机图片,手机软件,手机主题,与世界各地的网友进行无线互动,也可上BBS灌水与好友分享自己新拍的照片乃至可以通过WAP购买你需要的东西。 编辑本段抵御恶意攻击方法该方法为:在WAP网关中设置IP控制内容,其中,设置IP控制内容包括:设置允许使用WAP网关的IP和该IP允许访问的服务提供商SP;WAP网关根据设置的IP控制内容对该用户请求判断该用户的IP是否为允许使用WAP网关的IP,如不允许,则该WAP网关直接拒绝该用户请求;否则再判断请求访问的SP是否允许访问,如允许,则该WAP网关向该SP转发该用户请求,该WAP网关继续后续流程;否则该WAP网关拒绝该用户请求。
展开阅读全文