1、PROFIBUS 现场总线的通信原理1 引言PROFIBUS 是一种国际性的开放式现场总线标准,是唯一的全集成 H1(过程)和H2(工厂自动化)现场总线解决方案 1,它不依赖于产品制造商,不同厂商生产的设备无须对其接口进行特别调整就可通信,因此它广泛应用于制造加工、楼宇和过程自动化等自动控制领域。它包括 3 个兼容版本,Profibus-DP(H2) 、Profibus-PA(H1)、Profibus-FMS。DP 是经过优化的高速、廉价的通信接口,专为自动控制系统和设备级分散 I/O 之间通信设计,可取代 24V 或 020mA 并行信号线。也可用于分布式控制系统的高速数据传输。FMS 用于
2、车间级通用性中等传输速度的循环和非循环通信,适用于传感器、执行器、 PLC等一般自动控制系统。PA 是专为过程自动化设计的标准本质安全传输技术,满足IEC1158-2 中规定的通信规程,适用于安全性要求高以及由总线供电的场合。 PROFIBUS可使分散式数字化控制器从现场底层到车间级网络化,总线系统分为主站和从站,主站决定总线的数据通信,从站仅对接收到的信息给予确认或当主站发出请求时向它发送信息 2。2 PROFIBUS 的协议结构PROFIBUS 的协议结构是根据 ISO7498 国际标准化开发式互联网络(OSI)作为参考模型,具体结构如图 1 所示。图 1 PROFIBUS 协议结构图PR
3、OFIBUS-DP 使用了第 1、2 层和用户接口,这样确保了数据传输快速和有效地进行,FMS DP PAIEC1158-2IECRS-485/FDLFMS FMSDP PADPDP12367.直接数据链路映像(DDLM)使用户接口易于进入第 2 层。 PROFIBUS-FMS 对第 1、2、7层均加以定义。应用层包括现场总线信息规范(FMS)和底层接口(LLI ) 。FMS 包括了应用协议并向用户提供可广泛选用的通信服务;LLI 协调不同通信关系并保证 FMS 不依赖设备访问第二层,第二层(FDL)提供总线访问控制并保证数据的可靠性。PROFIBUS-PA 的数据传输采用扩展的 PROFIB
4、US-DP 协议,另外还使用了 PA 行规。这种传输技术可确保其本征的安全性并可通过总线为现场设备供电 1,2。3 PROFIBUS 总线存取协议三种 PROFIBUS(DP、FMS 和 PA)均使用一致的总线存取协议,该协议是通过 OSI参考模型的第 2 层来实现的,它包括数据的可靠性以及传输协议和报文的处理。其总线存取协议如图 2 所示。图 2 PROFIBUS 总线存取协议在 PROFIBUS 中,第二层称为现场总线数据链路层(FDL ) ,介质存取控制(MAC )具体控制数据传输的程序。MAC 必须确保在任何一个时刻只能有一个站点发送数据,PROFIBUS 总线存取协议包括主站之间的令
5、牌传递方式和主站与从站之间的主从方式。在图 2 中,首先由 PROFIBUS 总线上的主站(不一定全部)组成逻辑环,让一个令牌在逻辑环中按一定方向依次流动。凡获得令牌的站就获得了总线的控制权,并获得批准的令牌持有时间,在这段时间内,该站就成为整个网络的主站,执行主站工作,可依照主-从关系表与所有从站通信,也可依照主- 主关系表与所有主站通信,这就是所谓令牌控制主站浮动。根据这一定义,总线有三种控制方式:N:M 方式(总线共有 M 个站,其中 N 个主站,NM) ; N:N 方式(共 N 个站,且都为主站) ;1:N 方式(共 N 个站,1 个主站) 。图 2中,PS 为前站地址,TS 为本站地
6、址, NS 为下站地址。令牌环是所有主站的组织链,按照它们的地址构成逻辑环。在这个环中,令牌(总线存取权)在规定的时间内按照次序(地址的升序)在各主站中依次传递。在总线系统初建时,主站介质存取控制制定总线上的站点分配并建立逻辑环。在总线运行期间,断电或损坏的主站必须从环中删除,新上电的主站必须加入逻辑环。总线存取控制保证令牌按地址升序依次在各主站间传送,各主站的令牌保持时间长短取决于该令牌配置的循环时间。另外,PROFIBUS 介质存取控制还可监测传输介质及收发器是否有故障,检查站点地址是否出错(如地址重复)以及令牌错误(如多个令牌或令牌丢失) 。下面重点介绍令牌在逻辑环中的传递和逻辑环的维护
7、。3.1 令牌的传递在逻辑环中的每一个站内都存放着一张 LAS 表,在 LAS 表中列出 PS、TS、NS。在正常情况下,每一个站都按 LAS 表进行令牌传递。对于具体某个站而言,令牌一定是从它的PS 传来,传到它的 NS 去,图 2 中各站的 LAS 表如表 1 所示。 123456789PSTNNSPSTNNS PSTNNSPSTNNS.当一个站把令牌传递给自己的下一个站后,它还应当监听一个时间片(Slot time),看下一站是否收到令牌。当下一站收到令牌,无论是发送数据还是再向它的下一站传递令牌,都将在帧的 SA 段填入监听站的 NS。若监听不到则再次向自己的 NS 发令牌,若连试两次
8、仍表 1 PROFIBUS 的 LAS 表收不到 SA 等于自己 NS 的帧,则表明自己的下一站 NS 出了故障。于是此站应向再下一站传递令牌。若找到新的下一站,则令牌绕过故障站继续流动;若失败,则再向下找一站。如果一直没有找到下一站,则表明现有令牌持有站是逻辑环上唯一的站,必须重新建立逻辑环。3.2 逻辑环的建立PROFIBUS 协议首先人为设定逻辑环中地址最小的主站为环首,环首首先自己给自己发一令牌帧,这一特殊的令牌帧用来通知其它主站要开始建立逻辑环了,然后环首用“Request FDL Status”,按地址增大顺序发给自己的下一站。若下一站用“Not Ready”或者“Passive”
9、应答,则首环把此站地址登记到 GAPL 表中;若下一站用 “Ready for the Logical ring”应答,则环首把此站地址登记到 LAS 表中,这样逻辑环就建立起来了。3.3 站的增减在逻辑环上的站,必须在 LAS 表上登记增加的新站或者删去退出的站,同时 LAS 表随着站的增减而变化。在逻辑环上从本站到自己的下站这段地址空间叫 GAP,GAP 的状态表叫 GAPL 表,逻辑环上的每个站都要对自己的 GAP 进行检查,检查和应答的方式同 3.2 节中的描述,如果主站退出逻辑环,则相应的 GAPL 表应相应修改。例假若图 2 中主站 4 退出逻辑环,则站 2 的 GAPL 表变成表
10、 2 的形式。逻辑环中主站的增减是通过周期性询问GAP 后,对 LAS 以及 GAPL 表修改实现的。表 2 站 2 的 GAPL 表3.4 主从方式的优先级调度 4,5在 PROFIBUS 总线协议中,一旦某主站获得了令牌,它就按主从方式控制和管理全网,并按优先级进行调度。首先进行逻辑环维护,这段时间不计入令牌持有时间。然后处理高优先级任务,最后处理低优先级任务。高优先级服务即使超过了令牌持有时间,也应全部处理完。在处理完高优先级任务后,再根据所剩的令牌持有时间对低优先级任务进行调度。优先级的高低是由主站提出通信要求,用户进行选择的,选择高服务优先级,则该任务为246824682468246
11、8TSTSTSTSNSNSNSNSPSPSPSPS2 LAS 4 LAS 6 LAS 8 LAS. .PassivePassive?345. .高优先级任务;反之为低优先级任务。这类由主站随机提出的通信任务,采用非周期发送请求方式传输数据。如果通信任务是由用户预先在每个主站中输入一张轮询表(Polling list) ,该表定义了此主站获得令牌后应轮询的从站及其他主站,并规定此主站与轮询表中各站按周期发送/请求方式传输数据。对于这类任务, PROFIBUS 一律按低优先级任务调度,即:当处理完高优先级任务后,如果剩有令牌持有时间,则安排轮询表规定的任务,按照轮询表规定的顺序,在令牌持有时间内,
12、采用周期发送/请求方式向各站发送数据,并要求立即给予带数据的应答。4 FDL 帧的结构PROFIBUS 协议结构中 FDL 帧由异步格式的字符组成,字符格式为 11 位,其中一个起始位,8 个数据位,一个偶校验位,一个停止位,其组成结构如下图所示.FDL 帧的组成结构FDL 帧的格式总共有三种:(1)不带数据且长度固定的帧;它包括请求帧、应答帧、简短应答帧。 (2)带数据且长度固定的帧;它包括发送/请求帧、响应帧。 (3)数据段长度可变的帧。本文重点介绍这种帧的结构 6。它包括三种帧: 发送/请求帧,其结构如下图所示,其中 L=4bit 响应帧,其结构如下: 令牌帧上述帧结构中,SYN 为同步
13、字段,只在请求帧和令牌帧前出现,不允许在字符之间出现;SD2 为开始界定符,10H;SD4 开始界定符,DCH;LE 和 LEr 都表示长度占一个字节,它是 DA+SA+FC+DATA-UNIT 的字节数的总和;FCS 校验段,占一个字节;DA 目的站地址,SA源站地址;DA 和 SA 各占一个字节,其格式如下:地址中 EXT 为扩展位,EXT=0 表示不扩展,EXT=1 表示地址扩展,扩展形式如下:当 DA 的 EXT=1 时,其扩展地址为 DAE;当 SA 的 EXT=1 时,其扩展地址为 SAE。DAE 和SAE 的格式如下:b1b2 b3b4 b5 b6 b7b8 p0 1 . .SY
14、N SD2 LE LEr SD2 DA SA FC DATA-UNITFCS EDL. . .SD2 LE LEr SD2 DA SA FC DATA-UNITFCS EDL.SADASD4SYNEXT 2 2 2 2 2 2 20123456DA SA FC DAE SAE FCS EDDATA-UNITEXT=1EXT=1. .EXT 2 2 2 2 2 2012345TYP.其中 EXT 为附加地址扩展标示符;TYP=0 时,DAE 和 SAE 中为服务访问点地址 SSAP 及DSAP;当 TYP=1 时,DAE 和 SAE 中为带桥的多级总线段地址。当 TYP=0 时,令牌持有站与其下
15、一站的连接如图 3 所示。DAE 中的 DSAP 为目的服务访问站地址,SAE 中的 SSAP 为源服务访问站(即令牌持有站)地址,DA 中的目的站地址,SA 为源站地址组成两级地址,并建立连接,为数据传输服务。图 3 两个主站连接的建立FC 帧控制段,帧控制段是最关键的字段,其格式如下:其中 b8 为 Res,表示预留位;b7 为帧类型,b7=1 表示发送/请求帧,b7=0 表示响应帧;此时 b6b5 作 Stn 类型,即表示站类型及 FDL 状态,如 b6b5=00,表示从站;b6b5=01 表示主站未准备好;b6b5=10 表示主站准备进入逻辑环;b6b5=11 表示该站已是逻辑环上的主
16、站。当 b7=1 时,b6b5 表示 FCB 与 FCV,FCB 位为帧计数位, 0/1 交错。FCV=1 表示帧计数位有效。FCB 位与 FCV 位联合使用以防帧丢失或帧重叠。5 结束语PROFIBUS 是一种用于工厂自动化车间级监控和现场设备层数据通信与控制的现场总线技术,可实现现场设备层到车间级监控的分散式数字控制和现场通信网络,从而实现工厂综合自动化和现场设备智能化。它是一种无知识产权保护的标准,任何用户都可以利用这个标准设计各自的软、硬件解决方案。理论上,PROFIBUS 协议在任何微处理器上都可以实现,在微处理器内部或外部安装异步串行通信接口(UART)即可完成。但当数据传输速率超
17、过 500K bit/s、或需要使用 IEC1158-2 传输技术时,则必须使用协议专用芯片 7。PROFIBUS 现场总线有着无可比拟的优点,如开放性、实时性好,系统简单、成本低、可靠性高等,掌握了这种总线的通信原理,对于更好地利用这种总线技术有着重要的意义。 参考文献1 阳宪惠 现场总线技术及应用M 北京:清华大学出版社 ,1999 年2 吴秋峰 自动化系统计算机网络M 北京:机械工业出版社 ,2001 年3 邱公伟 可编程控制器网络通信及应用 M 北京:清华大学出版社 ,2000 年4 IEC SC65,IEC1158-7 Digital data communication for m
18、easurement and control-fieldbus 1 2SAE(SSAP) DAE(DSAP)SA DADA SADAE(DSAP) SAE(SSAP)Profibus. .Res FCBFCVb1b2b3b4b5b6b7b8Stn . .for use in industrial control systemJ. IEC 19975 IEC.TC65 Fieldbus standard for use in industrial control systemA, IEC 61158 C. SI. IEC. TC65, 2006 廖延常 、方彦军 基于 PROFIBUS 现场总线的控制系统通信互连研究J电气自动化 2002(3):52 557 SIMATIC STEP7 V5.1 Configuring Hardware and Communication Connections Manual