当前位置:文档之家› 工业通信协议Modbus,Profibus-DP,Devicenet和Ethernet

工业通信协议Modbus,Profibus-DP,Devicenet和Ethernet

工业通信协议Modbus,Profibus-DP,Devicenet和Ethernet

工业通信协议Modbus,Profibus-DP,Devicenet和Ethernet

目前在工业领域使用较为广泛的RS485接口,很多支持Modbus,Profibus-DP,Devicenet 和Ethernet这几种协议;不知道大家是否对这些协议有没有研究,小弟愿意与你一起切磋切磋!

还有那个4-20mA,支持HART协议方面的!

谢谢,互助合作,相互提高!

通信协议

所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。

目前,采用的通信协议有两类:异步协议和同步协议。同步协议又有面向字符和面向比特以及面向字节计数三种。其中,面向字节计数的同步协议主要用于DEC 公司的网络体系结构中。

一、物理接口标准

1.串行通信接口的基本任务

(1)实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。

(2)进行串-并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。因此串并转换是串行接口电路的重要任务。

(3)控制数据传输速率:串行通信接口电路应具有对数据传输速率——波特率进行选择和控制的能力。

(4)进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。

(5)进行TTL与EIA电平转换:CPU和终端均采用TTL电平及正逻辑,它们与EIA采用的电平及负逻辑不兼容,需在接口电路中进行转换。

(6)提供EIA-RS-232C接口标准所要求的信号线:远距离通信采用MODEM时,需要9根信号线;近距离零MODEM方式,只需要3根信号线。这些信号线由接口电路提供,以便与MODEM或终端进行联络与控制。

2、串行通信接口电路的组成

为了完成上述串行接口的任务,串行通信接口电路一般由可编程的串行接口芯片、波特率发生器、EIA与TTL电平转换器以及地址译码电路组成。其中,串行接口芯片,随着大规模继承电路技术的发展,通用的同步(USRT)和异步(UART)接口芯片种类越来越多,如下表所示。它们的基本功能是类似的,都能实现上面提出的串行通信接口基本任务的大部分工作,且都是可编程的。才用这些芯片作为串行通信接口电路的核心芯片,会使电路结构比较简单。

芯片

同步(USRT)

异步(UART)(起止式)

传输速率b/s

面向字符

HDLC

同步

异步

INS8250

56K

MC6850

1M

MC6852

1.5M

MC6854

1.5M

Int8251A

64K

19.2K

Int8273

64K

Z-80 SIO

800K

3.有关串行通信的物理标准

为使计算机、电话以及其他通信设备互相沟通,现在,已经对串行通信建立了几个一致的概念和标准,这些概念和标准属于三个方面:传输率,电特性,信号名称和接口标准。

1、传输率:所谓传输率就是指每秒传输多少位,传输率也常叫波特率。国际上规定了一个标准波特率系列,标准波特率也是最常用的波特率,标准波特率系列为110、300、600、1200、4800、9600和19200。大多数CRT终端都能够按110到9600范围中的任何一种波特率工作。打印机由于机械速度比较慢而使传输波特率受到限制,所以,一般的串行打印机工作在110波特率,点针式打印机由于

其内部有较大的行缓冲区,所以可以按高达2400波特的速度接收打印信息。大多数接口的接收波特率和发送波特率可以分别设置,而且,可以通过编程来指定。

2、RS-232-C标准:RS-232-C标准对两个方面作了规定,即信号电平标准和控制信号线的定义。RS-232-C采用负逻辑规定逻辑电平,信号电平与通常的TTL电平也不兼容,RS-232-C将-5V~-15V规定为“1”,+5V~+15V规定为“0”。图1是TTL标准和RS-232-C标准之间的电平转换。

图1

二、软件协议

1.OSI协议和TCP/IP协议

图2

(1)OSI协议

OSI七层参考模型不是通讯标准,它只给出一个不会由于技术发展而必须修改的稳定模型,使有关标准和协议能在模型定义的范围内开发和相互配合。

一般的通讯协议只符合OSI七层模型的某几层,如: EIA-RS-232-C:实现了物理层。 IBM的SDLC(同步数据链路控制规程):数据链路层。ANSI的ADCCP(先进数据通讯规程):数据链路层IBM的BSC(二进制同步通讯协议):数据链路层。应用层的电子邮件协议SMTP只负责寄信、POP3只负责收信。

(2)TCP/IP协议

实现了五层协议。

(1)物理层:对应OSI的物理层。

(2)网络接口层:类似于OSI的数据链路层。

(3)Internet层:OSI模型在Internet网使用前提出,未考虑网间连接。(4)传输层:对应OSI的传输层。

(5)应用层:对应OSI的表示层和应用层。

2.串行通信协议

串行通信协议分同步协议和异步协议。

(1)异步通信协议的实例——起止式异步协议

图3

特点与格式:

起止式异步协议的特点是一个字符一个字符传输,并且传送一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。其格式如图3所示。每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本身有5~7位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位,或意味半,或二位停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平(逻辑值),这样就保证起始位开始处一定有一个下跳沿。

从图中可以看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起始式协议。传送时,数据的低位在前,高位在后,图4表示了传送一个字符E的ASCAII码的波形1010001。当把它的最低有效位写到右边时,就是E的ASCII码1000101=45H。

图4

起/止位的作用:起始位实际上是作为联络信号附加进来的,当它变为低电平时,告诉收方传送开始。它的到来,表示下面接着是数据位来了,要准备接收。而停止位标志一个字符的结束,它的出现,表示一个字符传送完毕。这样就为通信双方提供了何时开始收发,何时结束的标志。传送开始前,发收双方把所采用的起止式格式(包括字符的数据位长度,停止位位数,有无校验位以及是奇校验还是偶校验等)和数据传输速率作统一规定。传送开始后,接收设备不断地检测传输线,看是否有起始位到来。当收到一系列的“1”(停止位或空闲位)之后,检测到一个下跳沿,说明起始位出现,起始位经确认后,就开始接收所规定的数据位和奇偶校验位以及停止位。经过处理将停止位去掉,把数据位拼装成一个并行字节,并且经校验后,无奇偶错才算正确的接收一个字符。一个字符接收完毕,接收设备有继续测试传输线,监视“0”电平的到来和下一个字符的开始,直到全部数据传送完毕。

由上述工作过程可看到,异步通信是按字符传输的,每传输一个字符,就用起始位来通知收方,以此来重新核对收发双方同步。若接收设备和发送设备两者的时钟频率略有偏差,这也不会因偏差的累积而导致错位,加之字符之间的空闲位也

为这种偏差提供一种缓冲,所以异步串行通信的可靠性高。但由于要在每个字符的前后加上起始位和停止位这样一些附加位,使得传输效率变低了,只有约80%。因此,起止协议一般用在数据速率较慢的场合(小于19.2kbit/s)。在高速传送时,一般要采用同步协议。

(2)面向字符的同步协议

特点与格式:这种协议的典型代表是IBM公司的二进制同步通信协议(BSC)。它的特点是一次传送由若干个字符组成的数据块,而不是只传送一个字符,并规定了10个字符作为这个数据块的开头与结束标志以及整个传输过程的控制信息,它们也叫做通信控制字。由于被传送的数据块是由字符组成,故被称作面向字符的协议。

特定字符(控制字符)的定义:由上面的格式可以看出,数据块的前后都加了几个特定字符。SYN是同步字符(synchronous Character),每一帧开始处都有SYN,加一个SYN的称单同步,加两个SYN的称双同步设置同步字符是起联络作用,传送数据时,接收端不断检测,一旦出现同步字符,就知道是一帧开始了。接着的SOH是序始字符(Start Of Header),它表示标题的开始。标题中包括院地址、目的地址和路由指示等信息。STX是文始字符(Start Of Text),它标志着传送的正文(数据块)开始。数据块就是被传送的正文内容,由多个字符组成。数据块后面是组终字符ETB(End Of Transmission Block)或文终字符ETX(End Of Text),其中ETB用在正文很长、需要分成若干个分数据块、分别在不同帧中发送的场合,这时在每个分数据块后面用文终字符ETX。一帧的最后是校验码,它对从SOH开始到ETX(或ETB)字段进行校验,校验方式可以是纵横奇偶校验或CRC。另外,在面向字符协议中还采用了一些其他通信控制字,它们的名称如下表所示:

名称

ASCII

EBCDIC

序始(SOH)

0000001

00000001

文始(STX)

0000010

00000010

组终(ETB)

0010111

00100110

文终(ETX)

0000011

00000011

同步(SYN)

0010110

00110010

送毕(EOT)

0000100

00110111

询问(ENQ)

0000101

00101101

确认(ACK)

0000110

00101110

否认(NAK)

0010101

00111101

转义(DLE)

0010000

00010000

数据透明的实现:面向字符的同步协议,不象异步起止协议那样,需要在每个字符前后附加起始和停止位,因此,传输效率提高了。同时,由于采用了一些传输控制字,故增强了通信控制能力和校验功能。但也存在一些问题,例如,如何区别数据字符代码和特定字符代码的问题,因为在数据块中完全有可能出现与特定字符代码相同的数据字符,这就会发生误解。比如正文有个与文终字符ETX的代码相同的数据字符,接收端就不会把它当作为普通数据处理,而误认为是正文结束,因而产生差错。因此,协议应具有将特定字符作为普通数据处理的能力,这种能力叫做“数据透明”。为此,协议中设置了转移字符DLE(Data Link Escape)。当把一个特定字符看成数据时,在它前面要加一个DLE,这样接收器收到一个DLE就可预知下一个字符是数据字符,而不会把它当作控制字符来处理了。DLE本身也是特定字符,当它出现在数据块中时,也要在它前面加上另一个DLE。这种方法叫字符填充。字符填充实现起来相当麻烦,且依赖于字符的编码。正是由于以上的缺点,故又产生了新的面向比特的同步协议。

(3)面向比特的同步协议

特点与格式:面向比特的协议中最具有代表性的是IBM的同步数据链路控制规程SDLC(Synchronous Data Link Control),国际标准化组织ISO(International Standard Organization)的高级数据链路控制规程HDLC(High Level Data link Control),美国国家标准协会(Americal National Standard Institute)的先进数据通信规程ADCCP(Advanced Data Communication Control Procedure)。这些协议的特点是所传输的一帧数据可以是任意位,而且它是靠约定的位组合模式,而不是靠特定字符来标志帧的开始和结束,故称“面向比特”的协议。这中协议的一般帧格式如图5所示:

图5

帧信息的分段:由图5可见,SDLC/HDLC的一帧信息包括以下几个场(Filed),所有场都是从有效位开始传送。

(1)SDLC/HDLC标志字符:SDLC/HDLC协议规定,所有信息传输必须以一个标志字符开始,且以同一个字符结束。这个标志字符是 01111110,称标志场(F)。从开始标志到结束标志之间构成一个完整的信息单位,称为一帧(Frame)。所有的信息是以帧的形传输的,而标志字符提供了每一帧的边界。接收端可以通过搜索“01111110”来探知帧的开头和结束,以此建立帧同步。

(2)地址场和控制场:在标志场之后,可以有一个地址场A(Address)和一个控制场C(Control)。地址场用来规定与之通信的次站的地址。控制场可规定若干个命令。SDLC规定A场和C场的宽度为8位或16位。接收方必须检查每个地址字节的第一位,如果为“0”,则后面跟着另一个地址字节;若为“1”,则该字节就是最后一个地址字节。同理,如果控制场第一个字节的第一位为为“0”,则还有第二个控制场字节,否则就只有一个字节。

(3)信息场:跟在控制场之后的是信息场I(Information)。I场包含有要传送的数据,并不是每一帧都必须有信息场。即数据场可以为0,当它为0时,则这一帧主要是控制命令。

(4)帧校验信息:紧跟在信息场之后的是两字节的争校验,帧校验场称为

FC(Frame Check)场或称为帧校验序列FCS(Frame check Squence)。SDLC/HDLC 均采用16位循环冗余校验码CRC(Cyclic Redundancy Code)。除了标志场和自动插入的“0”以外,所有的信息都参加CRC计算。

实际应用时的两个技术问题:

(1)“0”位插入/删除:如上所述,SDLC/HDLC协议规定以01111110为标志字节,但在信息场中也完全有可能有同一种模式的字符,为了把它与标志区分开来,所以采取了“0”位插入和删除技术。具体作法是发送端在发送所有信息(除标志字节外)时,只要遇到连续5个“1”,就自动插入一个“0”,当接收端在接

收数据时(除标志字节)如果连续收到5个“1”,就自动将其后的一个“0”删除是,以恢复信息的原有形式。这种“0”位的插入和删除过程是由硬件自动完成的。

(2)SDLC/HDLC异常结束:若在发送过程中出现错误,则SDLC/HDLC协议常用异常结束(Abort)字符,或称为失效序列使本帧作废。在HDLC规程中,7个连续的“1”被作为失效字符,而在SDLC中失效字符是8个连续的“1”。当然在试销序列中不使用“0”位插入/删除技术。SDLC/HDLC协议规定,在一帧之内不允许出现数据间隔。在两帧之间,发送器可以连续输出标志字符序列,也可以输出连续的高电平,它被称为空闲(Idle)信号。

IEC 61158 8种类型现场总线

IEC 61158标准包括8种类型的现场总线,构成了8种现场总线控制系统体系结构。

3.1 Type 1 现场总路线

1999年1季度出版的IEC 61158 TS 技术规范全面定义的现场总线称作Type 1现场总线。该现场总线的网络协议是按照ISO OSI参考模型建立的,它由物理层、数据链路层、应用层,以及考虑到现场装置的控制功能和具体应用而增加的用户层组成。

3.2 Type 2现场总线

Type 2现场总线得到Contro1Net International(CI)组织的支持。ContrlNet的基础技术最早于1995年面世。该总线网络是一种用于对信息传送有时间苛刻要求的、高速确定性网络,同时,它允许传送无时间苛求的报文数据。由Type 2现场总线构成的系统结构可以看出,从工厂到设备的五层结构简化为信息层(ethernet)、控制层(controlNet)和现场层(deviceNet)三层结构。 3.3 Type 3 现场总线

Type 3 现场总线得到Profibus用户组织PNO的支持,德国西门子公司则是Profibus 产品的主要供应商。由该总线构成的系统体系结构可以看出,通信网络体系结构共分4级,最低一级执行器/变送器级采用ASI位总线(IEC TC17B 标准),现场一级采用Profilbus-DP现场总线,车间单元一级采用Profibus-FMS 总线,工厂一级使用工业Ethernet网络。

3.4 Type 4 现场总线

Type 4现场总线由丹麦Process-Data Sikebory Aps 从1983年开始开发,主要应用于啤酒、食品、农业和饲养业,现已成为EN50170欧洲标准的第1部分。它得到P—NET(Process automation Net)用户组织的支持,在现场大约有5000个应用系统。

3.5 Type 5现场总线

Type 5现场总线即为IEC定义的H2总线,它由Fieldbus Foundation(FF)组织负责开发,并于1998年决定全面采用已广泛应用于IT产业的高速以太网

(highspeed ethernet HSE)标准。该总线使用框架式以太网(Shelf Ethernet)技术,传输速率从100Mbps到1Gbps或更高。HSE完全支持Type 1现场总线的各项功能,诸如功能块和装置描述语言等,并允许基于以太网的装置通过一种连接装置与H1装置相连接。连接到一个连接装置上的H1装置无须主系统的干予就可以进行对等层通信。连接到一个连接装置上的H1装置同样无须主系统的干预也可以与另一个连接装置上的H1装置直接进行通信。

HSE总线成功地采用CSMA/CD链路控制协议和TCP/IP传输协议,并使用了高速以太网IEEE802.3μ标准的最新技术。

3.6 Type 6现场总线

Type 6 Swiftnet现场总线由美国SHIP STAR协会主持制定,得到美国波音公司的支持,主要用于航空和航天等领域。该总线是一种结构简单、实时性高的总线,协议仅包括物理层和数据链路层,在标准中没有定义应用层。

3.7 Type 7现场总线

成立于1987年的WorldFIP协会制定并大力推广Type 7现场总线。WorldFIP 协议是EN50170欧洲标准的第3部分,物理层采用IEC 61158.2标准,其产品在法国占有60%市场,在欧洲市场占有大约25%份额。它们广泛用于发电与输配电、加工自动化、铁路运输、地铁和过程自动化等领域。

3.8 Type 8现场总线

Type 8现场总线由德国Phoenix Contact公司开发,Interbus Club俱乐部支持。它是一种串行总线系统,适用于分散输入/输出,以及不同类型控制系统间的数据传输。协议包括物理层、数据链路层和应用层,它已成为德国DIN19258标准。

4.市场和技术发展需要单一的现场总线

5.现场总线转向Ethernet网络

Ethernet网络出现于1975年,随后3 COM公司致力于使以太网的使用成为一个多供应商标准。1990年国际标准化组织采纳了其1982年定的标准,正式成为ISO/IEC802.3国际标准。Ethernet从最初10Mbps以太网,过渡到100Mbps 快速以太网和交换式以太网,直至发展到今天的千兆以太网和光纤以太网。可以说,开放的Ethernet是20多年来发展最成功的网络技术,并导致了一场信息技术的革命。

过去一直认为,Ethernet是为IT领域应用而开发的,在工业自动化领域只能得到有限应用,这是由于:

①Ethernet采用CSMA/CD碰撞检测方式,在网络负荷较重(大约40%)时,网络的确定性(determinism)不能满足工业控制的实时要求;

②Ethernet所用的接插件(connector)、集线器(hub)、交换机(switches)和电缆(cable)等是为办公室应用而设计的,不符合工业现场恶劣环境的要求;

③在工厂环境中,Ethernet抗干扰(EMI)性能较差。若用于危险场合,以太网不具备本质安全性能;

④Ethernet网还不具备通过信号线向现场仪表供电的性能。

随着网络技术的发展,上述问题正在讯速得到解决。为了促进Ethernet在工业领域的应用,国际上成立了工业以太网协会(Industrial Ethernet

Association),并与美国ARC Advisory Group、AMR Research研究中心和Gartner Group等机构合作开展工业以太网关键技术的研究。加上各大网络公司、自动化公司(如西门子公司)等的努力,可以预见,象当年PC进入工业自动化领域一样,Ethernet/IP将会十分迅速地进入工业控制系统的各级网络

匈奴未灭!:引用加为好友发送留言 2005-6-8 14:57:00 当前流行的几类现场总线

5.3.1 基金会现场总线FF

基金会现场总线FF是在过程自动化领域得到广泛支持和具有良好发展前景的一种技术。其前身是以美国Fisher-Rosemount公司为首,联合Foxboro、横河、ABB、西门子等80家公司制定的ISP协议和以Honeywell公司为首,联合欧洲等地150家公司制定的World FIP协议。这两大集团于1994年9月合并,成立了现场总线基金会,致力于开发出国际上统一的现场总线协议。

基金会现场总线分为H1和高速H2两种通信速率。H1的传输速率为

31.25Kbps,通信距离可达1.9km,可支持总线供电和本质安全防暴环境。H2的传输速率可为1Mbps和2.5Mbps两种,通信距离为750m和500m。物理传输介质可为双绞线、光缆和无线,其传输信号采用曼切斯特编码。基金会现场总线以ISO/OSI开放系统互连模型为基础,取其物理层、数据链路层、应用层为FF通信模型的相应层次,并在应用层上增加了用户层。用户层主要针对自动化测控应用的需要,定义了信息存取的统一规则,采用设备描述语言规定了通用的功能块集。FF总线包括FF通信协议、ISO模型中的2~7层通信协议的通栈、用于描述设备特性及操作接口的DDL设备描述语言、设备描述字典,用于实现测量、控制、工程量转换的应用功能块,实现系统组态管理功能的系统软件技术以及构筑集成自动化系统、网络系统的系统集成技术。

5.3.2 CAN总线

CAN总线最早是由德国Bosch公司推出,用于汽车内部测量与执行部件之间的数据通信协议。其总线规范已被ISO国际标准组织制定为国际标准,并且广泛应用于离散控制领域。它也是基于OSI模型,但进行了优化,采用了其中的物理层、数据链路层、应用层,提高了实时性。其节点有优先级设定,支持点对点、一点对多点、广播模式通信。各节点可随时发送消息。传输介质为双绞线,通信速率与总线长度有关。CAN总线采用短消息报文,每一帧有效字节数为8个;当节点出错时,可自动关闭,抗干扰能力强,可靠性高。

5.3.3 LonWorks总线

LonWorks技术是美国ECHELON公司开发,并与Motorola和东芝公司共同倡导的现场总线技术。它采用了OSI参考模型全部的七层协议结构。LonWorks技术的核心是具备通信和控制功能的Neuron芯片。Neuron芯片实现完整的

LonWorks的LonTalk通信协议。其上集成有三个8位CPU。一个CPU完成OSI 模型第一和第二层的功能,称为介质访问处理器。一个CPU是应用处理器,运行操作系统与用户代码。还有一个CPU为网络处理器,作为前两者的中介,它进行网络变量寻址、更新、路径选择、网络通信管理等。由神经芯片构成的节点之间可以进行对等通信。LonWorks支持多种物理介质并支持多种拓扑结构,组网方式灵活,其IS-78本安物理通道使得它可以应用于危险区域。LonWorks应用范围主要包括楼宇自动化、工业控制等,在组建分布式监控网络方面有较优越的性能。

5.3.4 PROFIBUS总线

PROFIBUS是符合德国国家标准DIN19245和欧洲标准EN50179的现场总线,包括 PROFIBUS-DP、PROFIBUS-FMS、PROFIBUS-PA三部分。它也只采用了OSI 模型的物理层、数据链路层、应用层。PROFIBUS支持主从方式、纯主方式、多主多从通信方式。主站对总线具有控制权,主站间通过传递令牌来传递对总线的控制权。取得控制权的主站,可向从站发送、获取信息。PROFIBUS-DP用于分散外设间的高速数据传输,适合于加工自动化领域。FMS型适用于纺织、楼宇自动化、可编程控制器、低压开关等。而PA型则是用于过程自动化的总线类型。

PROFIBUS – DP

1.PROFIBUS –Dp用于现场层的高速数据传送。主站周期地读取从站的输入信息并周期地向从站发送输出信息。总线循环时间必须要比主站(PLC)程序循环时间短。除周期性用户数据传输外,PROFIBUS-Dp还提供智能化设备所需的非周期性通信以进行组态.诊断和报警处理。

①传输技术:RS-485双绞线.双线电缆或光缆。波特率从9.6K bit/s到12M bit/s。

②总线存取:各主站间令牌传递,主站与从站间为主-从传送。支持单主或多主系统。总线上最站点(主-从设备)数为126。

③通信:点对点(用户数据传送)或广播(控制指令)。循环主-从用户数据传送和非循环主-主数据传送。

④运行模式:运行.清除.停止。

⑤同步:控制指令允许输入和输出同步。同步模式:输出同步;锁定模式:输入同步。

⑥功能:DP主站和DP从站间的循环用户有数据传送。各DP从站的动态激活和可激活。DP从站组态的检查。强大的诊断功能,三级诊断诊断信息。输入或输出的同步。通过总线给DP从站赋予地址。通过部线对DP主站(DPM1)进行配置,每DP从站的输入和输出数据最大为246字节。

⑦可靠性和保护机制:所有信息的传输按海明距离HD=4进行。DP从站带看门狗定时器(Watchdog Timer)。对DP从站的输入/输出进行存取保护。DP主站上带可变定时器的用户数据传送监视。

⑧设备类型:第二类DP主站(DPM2)是可进行编程.组态.诊断的设备。第一类DP 主站(DPM1)是中央可编程控制器,如PLC.PC等。DP从站是带二进制值或模拟量输入输出的驱动器.阀门等。

(1)PROFIBUS – DP基本特征

①速率:在一个有着32个站点的分布系统中,PROFIBUS-DP对所有站点传送512 bit/s

输入和512bit/s输出,在12Mbit/s时只需1毫秒。

②诊断功能:经过扩展的PROFIBUS-DP诊断能对故障进行快速定位。诊断信息在总线上传输并由主站采集。诊断信息分三级:

(本站诊断操作:本站设备的一般操作状态,如温度过高.压力过低。

(模块诊断操作:一个站点的某具体I/O模块故障。

(通过诊断操作:一个单独输入/输出位的故障。

(2)PROFIBUS-DP允许构成单主站或多主站系统。在同一总线上最多可连接126个站点。系统配置的描述包括:站数.站地址.输入/输出地址.输入/输出数据格式.诊断信息格式及所使用的总线参数。每个PROFIBUS-DP系统可包括以下三种坏同类型设备:

①一级DP主站(DPM1):一级DP主站是中央控制器,它在预定的周期内与分散的站(如DP从站)交换信息。典型的DPM1如PLC或PC。

②二级DP主站(DPM2):二级DP主站是编程器.组态设备或操作面板,在DP系统组态操作时使用,完成系统操作和监视目的。

③DP从站:DP从站是进行输入和输出信息采集和发送的外围设备(I/O设备.驱动器.HMI.阀门等)。

④单主站系统:在总线系统的运行阶段,只有一个活动主站。

⑤多主站系统:总线上连有多个主站。这些主站与各自从站构成相互独立的子系统。每个子系统包括一个DPMI.指定的若干从站及可能的DPM2设备。任何一个主站均可读取DP从站的输入/输出映象,但只有一个DP主站允许对DP从站写入数据。

(3)系统行为

系统行为主要取决于DPM1的操作状态,这此状态由本地或总线的配置设备所控制。主要有以下三种状态:

(停止:在这种状态下,DPM1和DP从站之间没有数据传输。

(清除:在这种状态下,DPM1读取DP从站的输入信息并使输出信息保持在故障安全状态。

(运行:在这种状态下,DPM1处于数据传输阶段,循环数据通信时,DPM1从DP站读取输入信息并向从站写入输出信息。

①DPM1设备在一个预先设定的时间间隔内,以有选择的广播方式将其本地状态周期性地发送到每一个有关的DP从站。

②如果在DPM1的数据传输阶段中发生错误,DPM1将所有有关的DP从站的输出数据立即转入清除状态,而DP从站将不在发送用户数据。在次之后,DPM1转入清除状态。

(4)DPM1和DP从站间的循环数据传输

DPM1和相关DP从站之间的用户数据传输是由DPM1按照确定的递归顺序自动进行。在对总线系统进行组态时,用户对DP从站与DPM1的关系作出规定,确定哪些DP从站被纳入信息交换的循环周期,哪些被排斥在外。

DMP1和DP从站之间的数据传送分三个阶段:参数设定.组态.数据交换。在参数设定阶段,每个从站将自己的实际组态数据与从DPM1接受到的组态数

据进行比较。只有当实际数据与所需的组态数据相匹配时,DP从站才进入用户数据传输阶段。因此,设备类型.数据格式.长度以及输入输出数量必须与实际组态一致。

(5)DPM1和系统组态设备间的循环数据传输

除主-从功能外,PROFIBUS-DP允许主-主之间的数据通信,这些功能使组态和诊断设备通过总线对系统进行组态。

(6)同步和锁定模式

除DPM1设备自动执行的用户数据循环传输外,DP主站设备也可向单独的DP从站.一组从站或全体从站同时发送控制命令。这些命令通过有选择的广播命令发送的。使用这一功能将打开DP从站的同及锁定模式,用于DP从站的事件控制同步。

主站发送同步命令后,所选的从站进入同步模式。在这种模式中,所编址的从站输出数据锁定在当前状态下。在这之后的用户数据传输周期中,从站存储接收到

输出的数据,但它的输出状态保持不变;当接收到下一同步命令时,所存储的输出数据才发送到外围设备上。用户可通过非同步命令退出同步模式。

锁定控制命令使得编址的从站进入锁定模式。锁定模式将从站的输入数据锁定在当前状态下,直到主站发送下一个锁定命令时才可以更新。用户可以通过非锁定命令退出锁模式。

(7)保护机制

对DP主站DPM1使用数据控制定时器对从站的数据传输进行监视。每个从站都采用独立的控制定时器。在规定的监视间隔时间中,如数据传输发生差错,定

时器就会超时。一旦发生超时,用户就会得到这个信息。如果错误自动反应功能―使能‖,DPM1将脱离操作状态,并将所有关联从站的输出置于故障安全状态,

并进入清除状态。

2.扩展DP功能

DP扩展功能是对DP基本功能的补充,与DP基本功能兼容。

(1)DPM1与DP从站间非循环的数据传输。

(2)带DDLM读和DDLM写的非循环读/写功能,可读写从站任何希望数据。

(3)报警响应,DP基本功能允许DP从站用诊断信息向主站自发地传输事件,而新增的DDLM-ALAM-ACK功能被用来直接响应从DP从站上接收的报警数据。

(4)DPM2与从站间的非循环的数据传输。

3.电子设备数据文件(GSD)

为了将不同厂家生产的PROFIBUS产品集成在一起,生产厂家必须以GSD文件(电子设备数据库文件)方式将这些品的功能参数(如I/O点数.诊断

信息.波特率.时间监视等)。标准的GSD数据将通信扩大到操作员控制级。使用根据GSD所作的组态工具可将不同厂商生产的设备集成在同一总线系统中。

GSD文件可分为三个部分:

(1)总规范:包括了生产厂商和设备名称.硬件和软件版本.波特率.监视时间间隔.总线插头指定信号。

(2)与DP有关的规范:包括适用于主站的各项参数,如允许从站个数.上装/下装能力。

(3)与DP从站有关的规范:包括了与从站有关的一切规范,如输入/输出通道数.类型.诊断数据等。

4.PROFIBUS-DP行规

PROFIBUS–DP协议明确规定了用户数据怎样在总线各站之间传递,但用户数据的含义是在PROFIBUS行规中具体说明的。另外,行规还具体规定了PROFIBUS -DP如何用于应用领域。使用行规可使不同厂商所生产的不同设备互换使用,而工厂操作人员毋须关心两者之间的差异。因为与应用有关的含义在行规中均作了精确的规定说明。下面是PROFIBUS-DP行规,括弧中数字是文件编号:

(1)NC/RC行规(3.052)

(2)编码器行规(3.062)

(3)变速传动行规(3.071)

(4)操作员控制和过程监视行规(HMI)

Profibus是作为德国国家标准DIN 19245和欧洲标准prEN 50170的现场总线。ISO/OSI模型也是它的参考模型。由Profibus -Dp、Profibus -FMS、Profibus-PA组成了Profibus系列。DP 型用于分散外设间的高速传输,适合于加工自动化领域的应用。FMS意为现场信息规范,适用于纺织、楼宇自动化、可编程控制器、低压开关等一般自动化,而PA型则是用于过程自动化的总线类型,它遵从IEC1158-2标准。该项技术是由西门子公司为主的十几家德国公司、研究所共同推出的。它采用了OSI模型的物理层、数据链路层,由这两部分形成了其标准第一部分的子集,DP型隐去了3~7 层,而增加了直接数据连接拟合作为用户接口,FMS型只隐去第3~6层,采用了应用层,作为标准的第二部分。PA型的标准目前还处于制定过程之中,其传输技术遵从IEC1158-2 (1 )标准,可实现总线供电与本质安全防爆。

Porfibus支持主—从系统、纯主站系统、多主多从混合系统等几种传输方式。主站具有对总线的控制权,可主动发送信息。对多主站系统来说,主站之间采用令牌方式传递信息,得到令牌的站点可在一个事先规定的时间内拥有总线控制权,共事先规定好令牌在各主站中循环一周的最长时间。按Profibus的通信规范,令牌在主站之间按地址编号顺序,沿上行方向进行传递。主站在得到控制权时,可以按主—从方式,向从站发送或索取信息,实现点对点通信。主站可采取对所有站点广播(不要求应答),或有选择地向一组站点广播。

Profibus的传输速率为96~12kbps最大传输距离在12kbps时为1000m,15Mbps时为400m,可用中继器延长至10km。其传输介质可以是双绞线,也可以是光缆,最多可挂接127个站点。

请问modbus profibus tcp/ip通讯协议的差别?

悬赏分:15 解决时间:2008-12-06 11:51

请了解的大虾指点一下这三种协议具体是怎么通信的,他们的传输方式各是怎么样的,各有什么优点,各自用在什么方面,感激不尽。献上仅有的15分,等过几天有了分再给您加上谢谢了。

modbus profibus都用在现代工业的现场总线中

https://www.doczj.com/doc/1418773591.html,/cdbbs/2007-8/31/07831D1C488F957.html

https://www.doczj.com/doc/1418773591.html,/cdbbs/2008-1/18/0811812D193E51.html

https://www.doczj.com/doc/1418773591.html,/cdbbs/2007-8/31/0783115499D8606.html

TCP/IP 被确定为因特网的通信协议,是一组通信协议的代名词。TCP/IP是OSI七层模型的简化,共分为4层:应用层,传输层,IP层和物理网络接口层。 a)互联网络层(IP层)互联网络层提供无连接的分组交换服务,其任务是允许主机将分组放在网上,让每个分组独立的道达目的地。 b)传输层(TCP)传输控制协议(TCP),是一个可靠的面向连接的协

议,保障某一机器的字节流准确无误的投递到互联网上的另一个机器。用户数据报协议(UDP),提供无连接的服务,无重发和纠错功能,不保障数据的可靠传输。在快速交付重于准确交付的应用中广泛应用。 c)信息流动过程下面以试用TCP协议传送文件为例说明TCP/IP的工作原理。 1)在源主机上应用层上将一串字节流传给传输层; 2)传输层将子节流分成TCP段,加上TCP包头交给互联网络(IP)层; 3) IP层生成一个包,将TCP 段放入其数据域,并加上源和目的主机的目的地址。将IP包交给数据链路层; 4)数据链路层在其帧的数据部分装入IP包,发往目的主机或者IP路由器。 5)在目的主机,数据链路层将数据链路层帧头去掉,将IP包交给IP层; 6) IP层检查IP包头,如果包头中的校验与计算出来的不一致,则丢弃该包; 7)如果校验和一致,IP层去掉IP头,将TCP段交给TCP层,TCP层检查顺序好来判断是否为正确的TCP段; 8) TCP层为TCP包头计算TCP头和数据。如果不对,TCP层丢弃这个包,若对,则向源主机发送确认; 9)在目的主机,TCP层去掉 TCP头,将字节流传给应用程序; 10)于是目的主机收到了源主机发来的字节流,就像直接从源主机发来的一样。 d)网络互连路由器互联网络需要某些计算机能自动的把报文以分组形式(IP数据报)从一个网络转发到另一个网络。互连两个网络并且将报文分组从一个网络传递到另一个网络的计算机叫做Internet路由器。在一个TCP/IP 网络上,路由器提供所有物理网络之间的互连,路由器负责为报文分组选择路由,送往目的地。路由选择是基于目标网络,而不是基于目标主机,所以路由器需要保存的信息量与TCP/IP网络中的网络数成比例。 e) IP 地址划分网络号由网络信息中心(NIC,Network Information Center)分配。五类IP 1字节 2字节 3字节 4字节 A类地址 0 网络标示主机标示 B类地址 1 0 网络标示主机标示 C类地址 1 1 0 网络标示主机标示 D类地址 1 1 1 0 多投点地址 E类地址 1 1 1 1 0 保留将来试用特殊IP地址网络号主机号本机全0 本网主机00….00主机号局域网广播全1 向网络定向广播网络号全1 回路 127 随机(通常是1) f)子网掩码说明IP地址中的主机地址段如何被划分成子网地址本地主机地址两部分。子网掩码为一个32位的数字。其中所有的1表示IP地址中的网络地址段和子网地址段,所有的0表示IP地址中的主机地址段。 g)直接/间接路由通信将位于同一IP网上的两台计算机之间的通信称为直接路由通信;不位于同一网上的两台计算机之间的通信称为间接路由通信。判断一目标地址是否在与本计算机直接连接的一个物理网络上的方法是:发送者抽出目标IP地址的网络部分,与自己IP地址的网络部分比较,如果相同,就直接投递。对于间接路由,帧发送到路由器,路由器抽出分组,路由选择程序选择下一个通往目的地主机路径的下一个路由器,如此继续下去,直到该IP分组可以直接投递为止。

https://www.doczj.com/doc/1418773591.html,/cdbbs/2006-8/18/9023017.html

1.Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。

标准的Modbus口是使用一RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号

位、传输波特率、奇偶校验。控制器能直接或经由Modem组网。控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。典型的主设备:主机和可编程仪表。典型的从设备:可编程控制器。主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。Modbus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。从设备回应消息也由Modbus协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。

2.(1) PROFIBUS是一种国际化.开放式.不依赖于设备生产商的现场总线标准。广泛适用于制造业自动化.流程工业自动化和楼宇.交通电力等其他领域自动化。

(2) PROFIBUS 由三个兼容部分组成,即PROFIBUS-DP ( Decentralized Periphery).PROFIBUS-PA(Process Automation ).PROFIBUS- FMS (Fieldbus Message Specification )。

(3) PROFIBUS–DP: 是一种高速低成本通信,用于设备级控制系统与分散式I/O的通信。使用PROFIBUS-DP可取代办24VDC或4-20mA信号传输。

(4) PORFIBUS-PA:专为过程自动化设计,可使传感器和执行机构联在一根总线上,并有本征安全规范。

(5) PROFIBUS-FMS:用于车间级监控网络,是一个令牌结构.实时多主网络。

(6) PROFIBUS是一种用于工厂自动化车间级监控和现场设备层数据通信与控制的现场总线技术。可实现现场设备层到车间级监控的分散式数字控制和现场通信网络,从而为实现工厂综合自动化和现场设备智能化提供了可行的解决方案。

(7)与其它现场总线系统相比,PROFIBUS的最大优点在于具有稳定的国际标准EN50170作保证,并经实际应用验证具有普遍性。目前已应用的领域包括加工制造.过程控制和自动化等。PROFIBUS开放性和不依赖于厂商的通信的设想,已在10多万成功应用中得以实现。市场调查确认,在德国和欧洲市场中PROFIBUS占开放性工业现场总线系统的市场超过40%。PROFIBUS有国际著名自动化技术装备的生产厂商支持,它们都具有各自的技术优势并能提供广泛的优质新产品和技术服务。

3.TCP/IP其实是两个网络基础协议:IP协议、TCP协议名称的组合。

IP协议

IP(Internet Protocol)协议的英文名直译就是:因特网协议。从这个名称我们就可以知道IP协议的重要性。在现实生活中,我们进行货物运输时都是把货物包装成一个个的纸箱或者是集装箱之后才进行运输,在网络世界中各种信息也是通过类似的方式进行传输的。IP 协议规定了数据传输时的基本单元和格式。如果比作货物运输,IP协议规定了货物打包时的包装箱尺寸和包装的程序。除了这些以外,IP协议还定义了数据包的递交办法和路由选

择。同样用货物运输做比喻

MODBUS通讯协议及编程

通讯协议及编程 通讯协议分为协议和协议,我公司的多种仪表都采用通讯协议,如:2000智能电力监测仪、巡检表、数显表、光柱数显表等。下面就协议简要介绍如下: 一、通讯协议 (一)、通讯传送方式: 通讯传送分为独立的信息头,和发送的编码数据。以下的通讯传送方式定义也与通讯规约相兼容: 初始结构= ≥4字节的时间 地址码 = 1 字节 功能码 = 1 字节 数据区 = N 字节 错误校检 = 16位码 结束结构= ≥4字节的时间 地址码:地址码为通讯传送的第一个字节。这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。 功能码:通讯传送的第二个字节。通讯规约定义功能号为1到127。本仪表只利用其中的一部分功能码。作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。如果从机发送的功能码的最高位为1(比如功能码大与此同时127),则表明从机没有响应操作或发送出错。 数据区:数据区是根据不同的功能码而不同。数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址。 码:二字节的错误检测码。 (二)、通讯规约: 当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。返送的信息

中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。如果出错就不发送任何信息。 1.信息帧结构 地址码:地址码是信息帧的第一字节(8位),从0到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送。当从机回送信息时,相当的地址码表明该信息来自于何处。 功能码:主机发送的功能码告诉从机执行什么任务。表1-1列出的功能码都有具体的含义及操作。 数据区:数据区包含需要从机执行什么动作或由从机采集的返送信息。这些信息可以是数值、参考地址等等。例如,功能码告诉从机读取寄存器的值,则数据区必需包含要读取寄存器的起始地址及读取长度。对于不同的从机,地址和数据信息都不相同。 错误校验码:主机或从机可用校验码进行判别接收信息是否出错。有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程中出错的信息不起作用。这样增加了系统的安全和效率。错误校验采用16校验方法。 注:信息帧的格式都基本相同:地址码、功能码、数据区和错误校验码。 2.错误校验 冗余循环码()包含2个字节,即16位二进制。码由发送设备计算,放置于发送信息的尾部。接收信息的设备再重新计算接收到信息的码,比较计算得到的码是否与接收到的相符,如果两者不相符,则表明出错。 码的计算方法是,先预置16位寄存器全为1。再逐步把每8位数据信息进行处理。在进行码计算时只用8位数据位,起始位及停止位,如有奇偶校验位的话也包括奇偶校验位,都不参与码计算。 在计算码时,8位数据与寄存器的数据相异或,得到的结果向低位移一字节,用0 填补最高位。再检查最低位,如果最低位为1,把寄存器的内容与预置数相异或,如果最低位为0,不进行异或运算。 这个过程一直重复8次。第8次移位后,下一个8位再与现在寄存器的内容相相异或,这个过程与以上一样重复8次。当所有的数据信息处理完后,最后寄存器的内容即为码值。码中的数据发送、接收时低字节在前。 计算码的步骤为:

modbus_通讯协议_实例

上海安标电子有限公司 ——PC39A接地电阻仪通信协议 通信协议: 波特率:9600数据位:8校验位:无停止位:1 上位机(计算机): 字节号 1 2 3 4 5 6 7 8 意义ID Command 数据地址V alue CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,读:3或4,写:6 3 数据地址:2个字节,寄存器地址,读从100开始,写从200开始 4 V alue:2个字节,读:个数(以整型为单位),写:命令/ 数据(以整型为单位) 5 CRC:计算出CRC 下位机(PC39A): 读数据,若正确 字节号 1 2 3 3+N (N=个数*2) 3+N+1 3+N+2 意义ID Command=3 / 4 数据个数数据CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,收到的上位机命令 3数据个数:1个字节,返回数据个数(以字节为单位) 4 V alue:N个字节,是返回上位机的数据 5 CRC:计算出CRC 写命令,若正确 返回收到的数据: 若错误 字节号 1 2 3 4 5 意义ID Command 数据CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,收到的上位机命令或上0x80, 如收到3,返回0x83 3数据:1个字节,错误的指令 错误指令 1:表示command不存在 2:表示数据地址超限 4 CRC:计算出CRC

例如读PC39A 电流数据: 机器地址为12,电流的数据地址100,数据为15.45(A) (一个整型数据) 主机: ID Command 数据地址 V alue CRC 16进制 0x0c 0x03 0x0064 0x0001 CRC_H CRC_L 10进制 12 3 100 1 CRC_H CRC_L 从机返回 如正确: ID Command 数据个数(以字节为单位) V alue CRC 16进制 0x0c 0x03 0x002 0x0609 CRC_H CRC_L 10进制 12 3 2 1545 CRC_H CRC_L 如错误: ID Command 数据 CRC 16进制 0x0c 0x83 0x02 CRC_H CRC_L 10进制 12 131 2 CRC_H CRC_L 例如发PC39A 启动命令: 机器地址为12,命令的地址200,数据为25000(25000表示启动) 主机: ID Command 数据地址 V alue CRC 16进制 0x0c 0x06 0x00c8 0x61a8 CRC_H CRC_L 10进制 12 6 200 25000 CRC_H CRC_L 从机返回 如正确: ID Command 数据地址 V alue CRC 16进制 0x0c 0x06 0x00c8 0x61a8 CRC_H CRC_L 10进制 12 6 200 25000 CRC_H CRC_L 如错误: ID Command 数据 CRC 16进制 0x0c 0x86 0x02 CRC_H CRC_L 10进制 12 134 2 CRC_H CRC_L 0011 10000110 错误码0x83 功能码0x06错误码0x86

modbus协议及modbus_RTU的C51程序

查看完整版本: [-- modbus协议及modbus RTU的C51程序--] 电子工程师之家-> 51单片机论坛-> modbus协议及modbus RTU的C51程序[打印本页]登录-> 注册-> 回复主 题-> 发表主题 一线工人2007-11-15 21:44 modbus协议及modbus RTU的C51程序 完整的程序请下载[attachment=1488] Modbus通讯协议 Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。 Modbus 协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。 Modbus 协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus协议的可靠性较好。 下面我来简单的给大家介绍一下,对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU 协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。所以在这里我仅介绍一下Modbus的ASCII和RTU协议。

Modbus 通讯协议的原理和标准

Modbus 通讯协议的原理和标准 工业控制已从单机控制走向集中监控、集散控制,如今已进入网络时代,工业控制器连网也为网络管理提供了方便。Modbus 就是工业控制器的网络协议中的一种。 一、Modbus 协议简介 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 当在一Modbus 网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus 协议发出。在其它网络上,包含了Modbus 协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。 1、在Modbus 网络上转输 标准的Modbus 口是使用一RS-232C 兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。控制器能直接或经由Modem 组网。 控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据做出相应反应。典型的主设备:主机和可编程仪表。典型的从设备:可编程控制器。 主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。Modbus 协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。 从设备回应消息也由Modbus 协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。 2、在其它类型网络上转输 在其它网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。提供的多个内部通道可允许同时发生的传输进程。 在消息位,Modbus 协议仍提供了主—从原则,尽管网络通信方法是“对等”。如果一控制器发送一消息,它只是作为主设备,并期望从从设备得到回应。同样,当控制器接收到一消息,它将建立一从设备回应格式并返回给发送的控制器。 3、查询—回应周期 (1)查询 查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如功能代码03 是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。

基于Modbus协议实现单片机与PLC之间的通讯

基于Modbus协议实现单片机与PLC之间的通讯 来源:PLC&FA 作者:蔡晓燕赵兴群万遂人董鹏云 关键词:可编程控制器 Modbus 通讯协议 1 引言 HMI(人机界面)以其体积小,高性能,强实时等特点,越来越多的应用于工业自动化系统和设备中。它有字母、汉字、图形和图片等不同的显示,界面简单友好。配有长寿命的薄膜按钮键盘,操作简单。它一般采用具有集成度高、速度快、高可靠且价格低等优点的单片机[1]作为其核心控制器,以实现实时快速处理。PLC和单片机结合不仅可以提PLC的数据处理能力,还可以给用户带来友好简洁的界面。本文以Modbus通讯协议为例,详细讨论了一个人机系统中,如何用C51实现单片机和PLC之间通讯的实例。 2 Modbus通讯协议[4] Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信。 Modbus协议提供了主—从原则,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。主设备查询的格式:设备地址(或广播,此时不需要回应)、功能代码、所有要发送的数据、和一错误检测域。从设备回应消息包括确认地址、功能码、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。 控制器能设置为两种传输模式:ASCII和RTU,在同样的波特率下,RTU可比ASCII方式传送更多的数据,所以采用KTU模式。 (1) 典型的RTU消息帧 典型的RTU消息帧如表1所示。

RTU消息帧的地址域包含8bit。可能的从设备地址是0...127(十进制)。其中地址0是用作广播地址,以使所有的从设备都能认识。主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备。当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应。 RTU消息帧中的功能代码域包含了8bits,当消息从主设备发往从设备时,功能代码域将告之从设备需要执行哪些行为;当从设备回应时,它使用功能代码域来指示是正常回应(无误)还是有某种错误发生(称作异议回应,一般是将功能码的最高位由0改为1)。 从主设备发给从设备消息的数据域包含附加的信息:从设备必须用于进行执行由功能代 码所定义的行为。这包括了像不连续的寄存器地址,要处理项的数目,域中实际数据字节数。如果没有错误发生,从从设备返回的数据域包含请求的数据。如果有错误发生,此域包含一异议代码,主设备应用程序可以用来判断采取下一步行动。 当选用RTU模式作字符帧时,错误检测域包含一16Bits值(用两个8位的字符来实现)。错误检测域的内容是通过对消息内容进行循环冗长检测(CRC)方法得出的。CRC域附加在消息的最后,添加时先是低字节然后是高字节。 (2) 所有的Modbus功能码 Modbus的功能码定义如表2所示。

Modbus RTU通讯协议

要实现Modbus RTU通信, 一、需要STEP 7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装STEP 7-Micro/WIN32 V3.2 Instruction Library(指令库)。Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。 Modbus RTU从站指令库只支持CPU上的通信0口(Port0) 基本步骤: 1. 检查Micro/WIN的软件版本,应当是STEP 7-Micro/WIN V3.2以上版本。 2. 检查Micro/WIN的指令树中是否存在Modbus RTU从站指令库(图1),库中应当 包括MBUS_INIT和MBUS_SLAVE两个子程序。 如果没有,须安装Micro/WIN32 V3.2的Instruction Library(指令库)软件包; 1. 西门子编程时使用SM0.1调用子程序MBUS_INIT进行初始化,使用SM0.0调用 MBUS_SLAVE,并指定相应参数。 关于参数的详细说明,可在子程序的局部变量表中找到; 调用Modbus RTU通信指令库图中参数意义如下: a. 模式选择:启动/停止Modbus,1=启动;0=停止 b. 从站地址:Modbus从站地址,取值1~247 c. 波特率:可选1200,2400,4800,9600,19200,38400,57600,115200 d. 奇偶校验:0=无校验;1=奇校验;2=偶校验 e. 延时:附加字符间延时,缺省值为0 f. 最大I/Q位:参与通信的最大I/O点数,S7-200的I/O映像区为128/128, 缺省值为128 g. 最大AI字数:参与通信的最大AI通道数,可为16或32 h. 最大保持寄存器区:参与通信的V存储区字(VW) i. 保持寄存器区起始地址:以&VBx指定(间接寻址方式) j. 初始化完成标志:成功初始化后置1

什么是ModBusRTU通讯协议

什么是ModBusRTU通讯协议 Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。 Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave 端的数据,实现双向读写。

Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus协议的可靠性较好。 对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP 网络协议发送出去即可。 (一)、通讯传送方式: 通讯传送分为独立的信息头,和发送的编码数据。以下的通讯传送方式定义也与ModBusRTU通讯规约相兼容: 初始结构= ≥4字节的时间 地址码= 1 字节 功能码= 1 字节 数据区= N 字节 错误校检= 16位CRC码

(完整版)MODBUS通讯协议-RTU要点

Modbus 通讯协议 (RTU传输模式)本说明仅做内部参考,详细请参阅英文版本。

第一章Modbus协议简介 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。 协议在一根通讯线上使用应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,在相反的方向上终端设备发出的应答信号传输给主机。协议只允许在主计算机和终端设备之间,而不允许独立的设备之间的数据交换,这就不会在使它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。 1.1 传输方式 传输方式是一个信息帧内一系列独立的数据结构以及用于传输数据的有限规则,以RTU 模式在Modbus总线上进行通讯时,信息中的每8位字节分成2个4位16进制的字符,每个信息必须连续传输下面定义了与Modebus 协议– RTU方式相兼容的传输方式。 代码系统 ?8位二进制,十六进制数0...9,A...F ?消息中的每个8位域都是一个两个十六进制字符组成 每个字节的位 ?1个起始位 ?8个数据位,最小的有效位先发送 ?1个奇偶校验位,无校验则无 ?1个停止位(有校验时),2个Bit(无校验时) 错误检测域 ?CRC(循环冗长检测)

MODBUS-RTU通讯协议简介

MODBUS-RTU通讯协议简介 2008-10-10 17:27 1.1 Modbus协议简述 ACRXXXE系列仪表使用的是Modbus-RTU通讯协议,MODBUS协议详细定义了校验码、数据序列等,这些都是特定数据交换的必要内容。MODBUS协议在一根通讯线上使用主从应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,终端设备发出的应答信号以相反的方向传输给主机。 Modbus协议只允许在主机(PC,PLC等)和终端设备之间通讯,而不允许独立的终端设备之间的数据交换,这样各终端设备不会在它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。 1.2 查询—回应周期 1.2.1 查询 查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如功能代码03是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。 1.2.2 回应 如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据:如寄存器值或状态。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。 1.3 传输方式 传输方式是指一个数据帧内一系列独立的数据结构以及用于传输数据的有限规则,下面定义了与Modbus 协议– RTU方式相兼容的传输方式。 每个字节的位: · 1个起始位 · 8个数据位,最小的有效位先发送 ·无奇偶校验位 · 1个停止位 错误检测(Error checking):CRC(循环冗余校验) 1.4 协议 当数据帧到达终端设备时,它通过一个简单的“端口”进入被寻址到的设备,该设备去掉数据帧的“信封”(数据头),读取数据,如果没有错误,就执行数据所请求的任务,然后,它将自己生成的数据加入到取得的“信封”中,把数据帧返回给发送者。返回的响应数据中包含了以下内容:终端从机地址(Address)、被执行了的命令(Function)、执行命令生成的被请求数据(Data)和一个校验码(Check)。发生任何错误都不会有成功的响应,或者返回一个错误指示帧。 1.4.1 数据帧格式 Address Function Data Check 8-Bits 8-Bits N x 8-Bits 16-Bits 1.4.2 地址(Address)域 地址域在帧的开始部分,由一个字节(8位二进制码)组成,十进制为0~255,

很好的威纶通MODBUSRTU通讯协议与变频器通讯案例

很好的威纶通 M O D B U S R T U通讯协议与变频器通讯案例 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

本文研究的是触摸屏通过MODBUS RTU通讯协议与变频器通讯实现变频器的控制。触摸屏采用威纶通TK6070IP,变频器用汇川MD380通用系列。通过触摸屏编程软件,编辑控制画面实现变频器的启动、停止、速度调节、多段速速度设置,通过宏指令实现工程值与实际值的转换。 一、MODBUS RTU 简介: 为了在自动化系统之间、自动化系统和所连接的分散的现场设备之间进行信息交换,如今串行现场总线被主要用作通讯系统。成千上万的应用已经强烈地证明了通过使用现场总线技术,可以节省多至40%的接线、调试及维护的费用。仅仅使用两根电线就可以传送现场设备的所有相关信息,比如输入和输出数据、参数、诊断数据。过去使用的现场总线往往是制造商的特定现场总线,并且同其它现场总线不兼容。如今使用的现场总线几乎是完全公开和标准化的。这就意味者用户可以以最合理的价格选择最好的产品,而不用依赖于每个独立的制造商。Modbus RTU是一种国际的、开放的现场总线标准。作为一种很容易实现的现场总线协议,在全世界范围内,Modbus得到了成功的应用。应用领域包括生产过程中的自动化、过程控制和楼宇自控。MODBUS RTU通讯协议的报文如图1。 图1 MODBUS RTU 通讯协议的报文功能码如下: 01H 读取线圈状态。从执行机构上读取线圈(单个位)的内容; 02H 读取离散量输入。从执行机构上读取离散量输入(多个位)的内容; 03H 读取保持寄存器。从执行机构上读取保持寄存器(16位字)的内容; 04H 读取输入寄存器。从执行机构上读取输入寄存器(16位字)的内容; 05H 强置单线圈。写数据到执行机构的线圈(单个位)为“通”(“1”)或“断”(“0”); 06H 预置单寄存器。写数据到执行机构的单个保持寄存器(16位字); 0FH 强置多线圈。写数据到执行机构的几个连续线圈(单个位)为“通”(“1”) 或“断”(“0”); 10H 预置多寄存器。写数据到执行机构的几个连续的保持寄存器(16位字)。 二、威纶通编程软件介绍: EB8000软件中MODBUS协议的设备类型为0x、1x、3x、4x、5x、6x,还有 3x_bit,4x_bit,6x_bit,0x_multi_coils等,下面分别说明这些设备类型在MODBUS协议中支持哪些功能码。 0x:是一个可读可写的设备类型,相当于操作PLC的输出点。该设备类型读取位状态的时候,发出的功能码是01H,写位状态的时候发出的功能码是05H。写多个寄存器时发出的功能码是0fH。

Modbus+RTU+标准通讯协议格式

HLP_SV Modbus RTU 标准通讯协议格式 通信资料格式 Address Function Data CRC check 8 bits 8 bits N×8bits 16bits 1)Address通讯地址:1-247 2)Function:命令码8-bit命令 01 读线圈状态 上位机发送数据格式: ADDRESS 01 ADDRH ADDRL NUMH NUML CRC 注: ADDR: 00000 --- FFFF(ADDR=线圈地址-1);NUM: 0010-----0040 (NUM为要读线圈状态值的二进制数位数) 正确时变频器返回数据格式: ADDRESS 01 BYTECOUNT DA TA1 DA TA2 DA TA3 DA TAN CRC 注: BYTECOUNT:读取的字数 错误时变频器返回数据格式: ADDRESS 0X81 Errornum CRC 注: Errornum为错误类型代码 如:要检测变频器的输出频率 应发送数据:01 01 00 30 00 10 3D C9(16进制) 变频器返回数据:01 01 02 00 20 B8 24(16进制) 发送数据:0030hex(线圈地址49) 返回的数据位为“0020”(16进制),高位与低位互换,为2000。即输出频率为 303(Max Ref)的50%。关于2000对应50%,具体见图1。

03读保持寄存器 上位机发送数据格式: ADDRESS 03 ADDRH ADDRL NUMH NUML CRC 注:ADDR: 0 --- 0XFFFF;NUM: 0010-----0040 (NUM为要读取数据的字数) ADDR=Parameter Numbe r×10-1 正确时变频器返回数据格式: ADDRESS 03 BYTECOUNT DA TA1 DA TA 2 DA TA 3 DA TAN CRC 注: BYTECOUNT:读取的字节数 错误时变频器返回数据格式: ADDRESS 0X83 Errornum CRC 如:要读变频器参数303的设定值 应发送数据:01 03 0B D5 00 02 95 BC (16进制) Parameter 303(3029)=0BD5HEX 变频器返回数据:“:”01 03 04 00 00 EA 60 B5 7B 返回的数据位为“00 00 EA 60”(16进制)转换为10进制数为60000, 表示303设置值为60.000 ※当参数值为双字时,NUM的值必须等于2。否则无法读取或读取错误。 05 写单个线圈状态 上位机发送数据格式: ADDRESS 05ADDRH ADDRL DA TAH DA TAL CRC 注:ADDR: 0 ---- 0XFFFF(ADDR=线圈地址-1);DATA=0000HEX(OFF) OR FF00(ON) HEX 正确时变频器返回数据格式: ADDRESS 05 DATAH DATAL BYTECOUNT CRC 错误时变频器返回数据格式: ADDRESS 0X85 Errornum CRC 如:要使写参数为写入RAM和EEPROM 应发送数据:01 05 00 40 FF 00 CRC(16进制) 变频器返回数据:01 05 FF 00 00 01 CRC(16进制) 发送数据:0040hex(线圈地址65) 06 写单个保持寄存器值(只能写参数值为单个字的参数) 上位机发送数据格式: ADDRESS 06 ADDRH ADDRL DA TAH DA TAL CRC 注:ADDR: ADDR=Parameter Numbe r×10-1 正确时变频器返回数据格式: ADDRESS 06 ADDRH ADDRL DA TAH DA TAL CRC 错误时变频器返回数据: ADDRESS 0X86 Errornum CRC 如:要对变频器参数101写入1 应发送数据:01 06 00 03 F1 00 01 19 BD(16进制) 变频器返回数据:01 06 03 F1 00 01 19 BD(16进制) PARAMETER 101(1009)=03F1 HEX

modbus通讯协议

Modbus通讯协议 图片: 图片: 图片:

Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。 Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master 端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。

Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP 协议是一个面向连接的可靠协议。另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus协议的可靠性较好。 下面我来简单的给大家介绍一下,对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。所以在这里我仅介绍一下Modbus的ASCII和RTU协议。 下表是ASCII协议和RTU协议进行的比较: 通过比较可以看到,ASCII协议和RTU协议相比拥有开始和结束标记,因此在进行程序处理时能更加方便,而且由于传输的都是可见的ASCII字符,所以进行调试时就更加的直观,另外它的LRC校验也比较容易。但是因为它传输的都是可见的ASCII 字符,RTU传输的数据每一个字节ASCII都要用两个字节来传输,比如RTU传输一个十六进制数0xF9,ASCII就需要传输’F’’9’的ASCII码0x39和0x46两个字节,这样它的传输的效率就比较低。所以一般来说,如果所需要传输的数据量较小可以考虑使用ASCII协议,如果所需传输的数据量比较大,最好能使用RTU协议。

modbus协议下上位机编程实例

竭诚为您提供优质文档/双击可除modbus协议下上位机编程实例 篇一:modbus协议下的上位机地址 Rs485采取流量计数据,经串口com1的2号地址读到int ouch中来,双字40001、40002为浮点型瞬时流量,读到上位机项目为40001F双字40004、40005为长整型累计流量,读到上位机项目为40004l 驱动设置与intouch标记名的设置 驱动设置: 项目名设置 注:在不修改驱动设置的情况下,s=s1+s2*65535 s=s2+s1*65535 根据各个厂家的仪表,上面工式有区别,设计时各个测试一下。 篇二:modbus通讯协议实例 上海安标电子有限公司 ——pc39a接地电阻仪通信协议 通信协议:

波特率:9600数据位:8校验位:无停止位:1 上位机(计算机): 注:1id:1个字节,由单机来定(0~255) 2command:1个字节,读:3或4,写:6 3数据地址:2个字节,寄存器地址,读从100开始,写从200开始4Value:2个字节,读:个数(以整型为单位),写:命令/数据(以整型为单位)5cRc:计算出cRc下位机(pc39a ):注:1id:1个字节,由单机来定(0~255) 2command:1个字节,收到的上位机命令 3数据个数:1个字节,返回数据个数(以字节为单位)4Value:n个字节,是返回上位机的数据5cRc:计算出cRc 写命令,若正确返回收到的数据:若错误注:1id:1个字节,由单机来定(0~255) 2command:1个字节,收到的上位机命令或上0x80, 如收到3,返回0x83 3数据:1个字节,错误的指令错误指令 1:表示command不存在2:表示数据地址超限 4cRc:计算出cRc 例如读pc39a电流数据: 机器地址为12,电流的数据地址100,数据为15.45(a)(一个整型数据)

MODBUS_RTU通讯协议

精品文档 . ?MODBUS通讯协议 使用手册

1. RTU 方式通讯协议 1.1. 硬件采用RS -485,主从式半双工通讯,主机呼叫从机地址,从机应答方式通讯。 1. 2. 数据帧10位,1个起始位,8个数据位,1个停止位,无校验。 波特率:9600;19200 38400 1.3. 功能码03H : 读寄存器值 主机发送: 第1字节 ADR : 从机地址码(=001~254) 第2字节 03H : 读寄存器值功能码 第3、4字节 : 要读的寄存器开始地址 要读FCC 下挂仪表, 第5、6字节 : 要读的寄存器数量 第7、8字节 : 从字节1到6的CRC16校验和 从机回送: 第1字节 ADR : 从机地址码(=001~254) 第2字节 03H : 返回读功能码 第3字节 : 从4到M (包括4及M )的字节总数 第4到M 字节 : 寄存器数据 第M +1、M+2字节 : 从字节1到M 的CRC16校验和 当从机接收错误时,从机回送: 第1字节 ADR : 从机地址码(=001~254) 第2字节 83H : 读寄存器值出错 第3字节 信息码 : 见信息码表 第4、5字节 : 从字节1到3的CRC16校验和 1.4. 功能码06H : 写单个寄存器值 主机发送:

当从机接收正确时,从机回送: 当从机接收错误时,从机回送: 第1字节 ADR :从机地址码(=001~254) 第2字节 86H :写寄存器值出错功能码 第3字节 错误数息码 : 见信息码表 第4、 5字节 : 从字节1到3的CRC16校验和 1.5. 功能码10H : 连续写多个寄存器值 当从机接收正确时,从机回送: 当从机接收错误时,从机回送: 第1字节 ADR : 从机地址码(=001~254) 第2字节 90H : 写寄存器值出错 第3字节 错误信息码 : 见信息码表

Modbus 通讯协议简化V1.0(含具体说明).

Modbus通讯协议简化 V1.0 2004-5-21 1 Modbus协议概述 Modbus协议是主从站通讯协议,用异步串行口完成通讯,物理层采用RS485或RS232。传输速率可以达到115kbps,理论上可接(寻址)一台主站和至多247台从站。受线路和设备的限制,最多可接一台主站和32台从站。 Modbus理,以及所执行的功能等,都不能随便改动。其他特性属于用户可选的,如传输介质、波特率、字符奇偶校验、停止位的个数等等,传输模式为RTU。用户所选择的参数对于各个站必须一致,在系统运行时不能改变。 1.1 Modbus协议传输模式 Modbus的传输模式:RTU方式。 表1-1 RTU传输模式的特性 特性编码系统 每个字符的位数起始位 数据位 奇偶校验位 停止位 1.2 帧 Modbus协议的帧(报文)格式:RTU帧。 下表是RTU传输模式的一般格式命令帧。 从站地址 8位 2 Modbus协议 2.1 通讯方式 Modbus有两种通讯方式:应答方式和广播方式。 应答方式是主站向某个从站(地址1~247)发出命令,然后等待从站的应答;从站接到主站命令后,执行命令,并将执行结果返回给主站作为应答,然后等待下一个命令。 广播方式是主站向所有从站发送命令(从站地址为0),不需要等待从站应答;从站接到广播命令后,执行命令,也不向主站应答。 除了会送诊断校验外,只有05、06、15、16这四项功能(见2.3)对广播方式有效。功能码数据校验和 8位位位十六进制 1位 8位 0或1位 1或2位校验和(循环冗余校验) 2.2 Modbus帧

Modbus的帧按应答方式分为命令帧(询问帧)和应答帧。命令帧为一般格式命令帧,应答帧有显长度帧和隐长度帧之分,图2-1、2-3、2-4给出了典型的帧格式。从站地址 功能码 数据 数据起始寄存器高位 数据起始寄存器地位 数据寄存器高位 数据寄存器地位 校验和 图2-1 一般格式命令帧 从站地址 从站地址 2.2.1 功能码 从站地址字段 数据 图2-4 隐长度应答帧 帧中的从站地址字段表示接收主站报文的从站地址。当从站地址字段为0时,表示所有从站,此时的报文是广播报文。 用户必须设定每台从站的专用地址。只有被编址的设备才能对主机的命令(询问)做出应答。从站发送应答报文时,报文中地址的作用是向主站报告正在通讯的是哪台从站。 2.2.2 功能码字段 功能码字段同志从站应执行何种功能。表2-1列出了功能码的意义和作用。2.3节给出了各个功能码对应报文的详细格式和功能。表2-1 Modbus功能码 功能码 01 02 03 04 05 06 07 08 09 10 11 12 名称 读取开出状态读取开入状态读取模出状态读取模入状态强制单路开出强制单路模出读取异常状态回送诊断校验编程探询读取事件计数读取通讯事件记录 作用(对主站而言) 取得一组开关量输出的当前状态取得一组开关量输入的当前状态取得一组模拟量输出的当前状态取得一组模拟量输入的当前状态强制设定某个开关量输出的值强制设定某个模拟量输出的值取得从站的一些状态(8位)

Modbus通讯协议(TCP和RTU)

1MODBUS RTU 读寄存器请求序号意义所占字节字节存放格式 1从设备地址1个字节0x00?0xff 2功能码1个字节0x03 3起始寄存器基地址两个字节高字节在前 4寄存器个数两个字节高字节在前 5CRC校验码两个字节低字节在前 读寄存器回应序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节0x03 3数据长度1个字节寄存器个数×2 4数据寄存器个数×2个字节每个寄存器高字节在前5CRC校验码两个字节低字节在前 写单个寄存器请求序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节0x06 3起始寄存器地址两个字节高字节在前 4寄存器值两个字节 高字节在前 5CRC校验码 两个字节 低字节在前 写单个寄存器回应序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节0x10 3起始寄存器地址两个字节高字节在前 4寄存器值两个字节 高字节在前 5CRC校验码 两个字节 低字节在前 1

写多个寄存器请求序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节0x10 3起始寄存器地址两个字节高字节在前 4寄存器个数两个字节 高字节在前 5数据长度 1个字节 寄存器个数×2  6数据寄存器个数×2个字节每个寄存器高字节在前7CRC校验码 两个字节 低字节在前 写多个寄存器回应序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节0x10 3起始寄存器地址两个字节高字节在前 4寄存器个数两个字节 高字节在前 5CRC校验码 两个字节 低字节在前 错误返回序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节请求功能码+0x80 3错误码1个字节 其代号见下面表格4CRC校验码 两个字节 低字节在前 错误代号错误代号意义 0x01不支持该功能码 0x02越界 0x03寄存器数量超出范围 0x04读写错误 2

相关主题
相关文档 最新文档