您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Modbus高级通讯教程
第一章:控制设备通信慨况1慨念说明于自动控制系统的各种设备,相互之间的通信及资料交换是非常重要的基本功能之一。早期通信方式是使用串行式硬件架构,然后定义通信步骤及资料格式等基本通信规格,也就是通信协议(CommunicationProtocol)。外部计算机依据此通信协议即可与该自控设备读取或写入资料。也可以看做读取该控制设备所控制的结果,写入一些控制命令要求该控制设备执行所指定的功能。PLC(ProgrammableLogicalController)是自动控制系统的核心设备,肩负着主要的控制功能,所以PLC对外通信能力也是格外的重要。各种厂牌的PLC都会制定自有的通信协议接口标准。其中Modbus通信协议是ModiconPLC所定义的通信协议。因为Modicon是最早开发出PLC的设备,故其所制定的通信协议,也广泛被其它厂商所接受,无形中成为自控界主流的通信协议。2通信硬件两种设备之间的通信及资料交换处理,首先经由通信硬件传送信号,此基本模式如下图所示:图(1-1):通信硬件系统基本模式两端设备都配置「接/发收器」将数据转换成电器信号往外传送或接收外部传来的信号。以信号的传输处理来看,早期的系统当然遵循电信系统的规格最为方便,所以RS232C的规格,基本上是电信系统的规格,也就是非同步串行式。此规格只是提供一对一的通信,而无法一对多或者多对多的通信,所以后来才发展出同步串行式及Ethernet网络通信。以下各点试着以简单方式,说明通信硬件运作的基本慨念。因为本书是以软件设计者为主要对象,但是对于硬件必须有一个清晰的认识,才能设计完美的通信应用系统。接/发送器传送媒体接/发送器控制设备计算机设备2.1异步串行式通信方式异步串行式传输信号,基本上是一次一个基本单位,包含起始位(StartBit)、资料位(DataBit)、同位位(ParityBit)及停止位(StopBit)等组成。也就是资料的每一个字符(Byte)都整理成上述的格式,然后传送出去。于硬设备上传送信号时必须做到下列三件事:z位(Bit)同步:认出每个位的开始及结束。z字符(Byte)的同步:认出每个字符的开始及结束。一个段落或讯息的同步:认出大单元数据的开头。图(1-2):信号传送示意图解决同步问题的一个方法是:每次传送一小段的位后,马上寻求同步,最早使用的方法是「起止法(Start-Stop)」或称做「异步传输法」。也就是通信双方的「接/发送器」随时检查起始位,然后才认定此字符的资料已经进来,再检查停止位后才认定此字符的资料结束,最后再依据同步位作资料的检查以排除噪声的干扰。当每次有字符传送时,其信号是位于一个闲置状态,为二进制的1,也就是有电压及电流的存在。当字符的开头的起始位,其值为二进制的0,所以当「接/发送器」可以检查到起始位,然后接下来为正式资料位、同位位等,最后检查停止位后,该字符(Byte)接收正式完成。停止位与闲置都为二进制的1,所以发送器会不断地发送停止位直到准备发送下一个字符为止。由以上的叙述可以明白有几个通信硬件的系数非常重要,必须于通信前将双方的系数设定为一样,才能于位传送及接收间,依据一样的规格区分每个位的状态为二进制的0或1。第一字符1111001起始位第二字符闲置状态每个字符按顺序传送之同步位停止位z传送速度(BaudRate):以此速度切割一个位电位的维持时间,然后断定为二进制值0或1。z同位位(Parity):None、Odd、Even等三种检测错误位方式。z资料位数(DataBits):所要传送的一个字符内的位数5、6、7、8等四种。z停止位(StopBits):规定最小长度有1、1.5、2等位长度三种。也就是表示超过此长度就是接到停止位。举例说明:如果设定停止位为1位、资料位为7位、同位位为None(也就是不做同位检查)、传送速度9600bps等通信系数。传送ABC三个英文字母的ASCIICode,首先起始位(0)激活以下8个单位的时序,这8个单位包含7个位的ASCII码,以及1个停止位。在闲置状态时,接收器利用的这种转变来作为接收字符的开始,然后去取样输入的信号,每一个位一个区间,共7个位代表一个ASCII码。这种设计的时序简单且便宜,但是每一字符须有两个或三个的虚耗位,整体的通信效率较差,所以就有同步串行通信的发展,以克服此问题。2.2同步串行式通信方式这种模式中,字符或位的传输段落没有起始及终止位,而且每一种位的发出及到达的确切时间都可以预见,也就是为了防止发送器及接收器之间的时间偏移,所以必须采用某种方法的同步。可能的方法之一就是提供单独一个时钟线,否则就必须将同步时钟的信息插在资料信号当中。除了基本的同步传输外,还需要另一个阶层的同步,使得接收器能够决定一个数据段落的开头及结尾。所以每一个段落的开头,须有一个开头序幕的位型式,最后亦以结尾位型式作为结束。同时于数据链中还要包含一些控制信息且有一定的格式,用来做为接收或传送的真正资料的控制用。故所制定格式的不同,代表不同通信规格接口,一般常用的有SDLC,HDLC等,在此不做此格式的细部说明,不过以简单方式来叙述一些基本慨念。图(1-3):字符取向同步传输示意图图(1-4):位取向同步传输示意图在字符取向的传输中,资料的段落是以一个字符(一般为8位的字符)来处理。同步字符通常为SYN(16进位的0x16),用来告知接收器这是一个段落开头的信号。然后于控制字符中规定将整个传送资料的长度存入,如此接收器就读进所指示的长度,就是实际资料部份。再等待另一个SYN,以开始另一个资料的读取。另外一个方式为结尾为另一个型式位,以作为数据段落结束。以位取向的传输,数据段落是当作一序列的位来处理。有一个特殊位型式8位的旗号作为资料开头,再结尾也采用同样旗号。接收器等待旗号SYNSYN……1个或多个同步字符控制字符数据字符控制字符FF8位旗号控制域数据域控制域8位旗号的到来代表传输的开始,随后跟着某些数量的控制栏,然后是可变长度的数据域,然后又再度是控制栏,最后重复开头旗号作为结尾。这种方法与字符取向方法的差别,决定于资料格式的细节以及控制字段的定义。对于可订定大小的数据段落,同步传输要比异步传输有更高的效率,一般异步传输至少超过20%的虚耗位。以HDLC来看,此为位取向设计中被广泛使用的一种,包含48个位的控制信息(包含旗号),因此对于一个1000位的讯息,其虚耗只有48/1048*100%=4.6%。Modbus是使用异步传输的方式,但是由于速度较慢,应用上有其限制,尤其当两台PLC要互相交换资料,其传输资料量大,异步方式已经无法满足整体系统反应时间的要求。所以就有ModbusPlus出现,使用同步传输的技术,但是资料格式与Modbus一样。对于软件设计者来看,是相同的设计方式,所以下面章节以Modbus说明为主。2.3Ethernet网络通信方式Ethernet是一种共享式总线技术,支持广播(Broadcast)所有的网络上主机都可以接到传输资料,因此一次可以传送一个封包资料至多台主机。当主机有封包资料要传送时,会先监听网络是否有资料正在传送,如果无就开始传送。每一个Ethernet硬件都有唯一的48位的地址。EthernetFrame为硬件间的连接层,其长度可变,最小64位,最大1518字节(包含标头、资料及CRCCheck等),如下图所示:图(1-5):EthernetFrameformat由目的地址,可使得网络硬件判定取入传给它的封包资料,由来源地址可以得知哪一个网址传来的资料。Frametype可区分何种型式的数据,例如:TCP、UDP….等等。以CRC侦测传输的资料错误,发送端先计算CRC值写入Frame内,接收端再重新计算一次比对CRC是否相同。由以上的简单描述,可知基本的通信慨念,其实与串行式一样的。EthernetIPAddress等于串行式的StationNo.。CRC检查用法一至。串行式资料Frame依设计自行规定,Ethernet则为标准规格。于Ethernet以上各点的处理,已经由网络硬件或操作系统处理完成。由应用系统设计者观点来看,只要依照操作系统所提供的API,就很容易将网络资料取入或传出。例如:TCP/IP通信协议,只要使用socket方式,就可以达到此目的,而且无论于Windows、Unix、DOS等操作系统,其设计方式都一样,反而比串行式通信容易设计。8字节6字节6字节2字节46-1500字节CRCDataFrametype来源地址目的地址前置4字节的通信协议资料格式,除了再加上前面6byte做网络用资料,其后面的资料与Modbus/232完全一样,设计TCP应用程序,反而依照socket方式就可以收送资料,不像RS232应用程序必须处理所有步骤,例如:CRC计算,Frame自行规定,每一位都要处理….等等工作。3通信协议:通信协议(CommunicationProtocol)是为资料交换所制定的一种接口标准及程序。外部计算机的通信软件只要依据此接口标准设计,就可以达到双方互相通信的目的。通信协议除了规定所要使用的通信硬设备外,就是规定两种标准:一是资料互相传送的程序步骤,也就是规定开始通信、通信中及结束通信等通信流程中所要遵循的步骤。好象人们相互交谈时必须先确定当一方要求被接受处理后,再响应所处理的结果。以电话系统为比喻,可以将通信硬件视为电话设备,通讯协议为双方所用的语言,双方所谈论的语言内容就是通信协议内的资料格式。3.1主要PLC厂牌的通信协议各种厂牌的PLC因为所定义的资料内容格式都有所不同,所以都制定自有厂牌使用的通信协议,兹将主要通信协议列于下表:PLC通信协议硬件规格ModiconModbus/232异步串行ModbusPlus同步串行Modbus/TCPEthernetTCP/IPAllen-BrandleyDF1异步串行EtherentIPEthernetSimatic(Siemens)Profibus异步串行及EthernetMPI异步串行SimaticTIPLCTaskCode异步串行GESNP异步串行及EthernetMitsubishiMelsecAPC-Link异步串行及EthernetMitsubishiFX2PC-Link异步串行OMRONHostLink异步串行FINSEthernetKoyoU-01DM/G-01DM异步串行图(1-6):主要厂牌通信协议表3.2Modbus通信协议的由来Modbus通信协议,是ModiconPLC所制定的资料交换通信接口标准,于1979年首先制定串行通信标准(含Modbus异步及ModbusPlus同步),于1997年制定网络通信标准(Modbus/TCP)。是属于OSI所定义的通信层次的第七层应用层次(ApplicationLayer)。是为Client/Server或称为Master/Slave型式的通信协议。由于Modbus的通信协议简单容易设计,结果广被许多控制设备或外围信号设备所采用,因此无形中成为自控业界的标准。Modbus异步的硬件架构简单,被使用的比率最高。ModbusPlus同步的协议可以提供高速的通信速度,适合主控制设备间大量资料交换。Modbus/TCP则是因应Ethernet网络的架构,近年来被大量使用的通信协议,也因为其速度及资料传送量远比ModbusPlus更快更大,所以已渐渐取代其功能。本书内容就Modbus及Modbus/TCP两种通信协议,说明其架构及应用例。第二章:Modbus通信协议说明Modbus通信协议基本上是遵循MasterandSlave的通信步骤,有一方扮演Master角色采取主动询问方式,送出QueryMessage给Slave方,然后由Slave方依据接到的QueryMessage内容准备R
本文标题:Modbus高级通讯教程
链接地址:https://www.777doc.com/doc-4919762 .html