第5章 PROFIBUSDP现场总线 PROFIBUS(Process Fieldbus)是一种国际化的、开放的、不依赖于设备生产商的现场总线标准。它广泛应用于制造业自动化,流程工业自动化和楼宇、交通、电力等自动化领域。 本章讲述了如下内容: (1) 对PROFIBUS进行了概述,介绍了其在工业自动化中的重要性和基本功能。 (2) 深入讨论了PROFIBUS的协议结构,包括PROFIBUSDP(用于分布式I/O)、PROFIBUSFMS(用于场景管理系统)以及PROFIBUSPA(用于过程自动化)的协议结构。 (3) 讲述了PROFIBUSDP现场总线系统,包括其版本、系统组成、总线访问控制以及系统的工作过程。 (4) 讲述了PROFIBUSDP的通信模型,包括物理层、数据链路层和用户层,以及用户接口的细节。 (5) 探讨了PROFIBUSDP的总线设备类型和数据通信,包括设备类型、设备间的数据通信以及设备描述(GSD)文件的作用。 (6) 介绍了用于PROFIBUS通信的专用集成电路(ASIC),包括DPC31、SPC3和ASPC2等从站和主站通信控制器。 (7) 详细讲述了PROFIBUSDP从站通信控制器SPC3,包括其功能、引脚说明、存储器分配以及接口细节。 (8) 介绍了主站通信控制器ASPC2和网络接口卡(如CP5611),提供了主站通信控制器与网络接口卡的详细介绍。 (9) 详述了PROFIBUSDP从站的设计,包括硬件设计和软件设计,为从站设备的开发提供了具体的指导。 本章为读者提供了深入了解PROFIBUSDP现场总线技术的全面资料,从基本概念到详细的技术规范,再到系统设计和实现,旨在帮助读者掌握PROFIBUSDP技术,以便在工业自动化领域有效地应用这一重要的通信协议。 5.1PROFIBUS概述 PROFIBUS技术的发展经历了如下过程:  1987年由德国SIEMENS公司等13家企业和5家研究机构联合开发;  1989年成为德国工业标准DIN19245;  1996年成为欧洲标准EN50170 V.2(PROFIBUSFMSDP);  1998年PROFIBUSPA被纳入EN50170V.2;  1999年PROFIBUS成为国际标准IEC 61158的组成部分(TYPE Ⅲ);  2001年成为中国的机械行业标准JB/T 10308.3—2001。 PROFIBUS由以下3个兼容部分组成。 PROFIBUSDP: 用于传感器和执行器级的高速数据传输,它以DIN19245的第一部分为基础,根据其所需要达到的目标对通信功能加以扩充,DP的传输速率可达12Mb/s,一般构成单主站系统,主站、从站间采用循环数据传输方式工作。 其设计目的是用于设备一级的高速数据传输。在这一级,中央控制器(如PLC/PC)通过高速串行线同分散的现场设备(如I/O、驱动器、阀门等)进行通信,同这些分散的设备进行数据交换多数是周期性的。 PROFIBUSPA: 对于安全性要求较高的场合,制定了PROFIBUSPA协议,这由DIN19245的第四部分描述。PROFIBUSPA具有本质安全特性,它实现了IEC 11582规定的通信规程。 PROFIBUSPA是PROFIBUS的过程自动化解决方案,PA将自动化系统和过程控制系统与现场设备,如压力、温度和液位变送器等连接起来,代替了4~20mA模拟信号传输技术,在现场设备的规划、敷设电缆、调试、投入运行和维修等方面可节约成本40%,并大大提高了系统功能和安全可靠性,因此PROFIBUSPA尤其适用于石油、化工、冶金等行业的过程自动化控制系统。 PROFIBUSFMS: 其设计目的是完成车间一级通用性通信任务,FMS提供了大量的通信服务,用于完成以中等传输速率进行的循环和非循环的通信任务。由于它是完成控制器和智能现场设备之间的通信以及控制器之间的信息交换,因此它考虑的主要是系统的功能而不是系统响应时间,应用过程通常要求的是随机的信息交换(如改变设定参数等)。强有力的FMS服务向人们提供了广泛的应用范围和更大的灵活性,可用于大范围和复杂的通信系统。 为了满足苛刻的实时要求,PROFIBUS协议具有如下特点: (1) 不支持长信息段>235B(实际最大长度为255B,数据最大长度244B,典型长度120B)。 (2) 不支持短信息组块功能。由许多短信息组成的长信息包不符合短信息的要求,因此,PROFIBUS不提供这一功能(实际使用中可通过应用层或用户层的制定或扩展来克服这一约束)。 (3) 不提供由网络层支持运行的功能。 (4) 除规定的最小组态外,根据应用需求可以建立任意的服务子集。这对小系统(如传感器等)尤其重要。 (5) 其他功能是可选的,如口令保护方法等。 (6) 网络拓扑是总线型,两端带终端器或不带终端器。 (7) 介质、距离、站点数取决于信号特性,如对屏蔽双绞线,单段长度小于或等于12km,不带中继器,每段32个站点(网络规模: 双绞线,最大长度9.6km; 光纤,最大长度90km; 最大站数,127个)。 (8) 传输速率取决于网络拓扑和总线长度,从9.6kb/s到12Mb/s不等。 (9) 可选第二种介质(冗余)。 (10) 在传输时,使用半双工、异步、滑差(Slipe)保护同步(无位填充)。 (11) 报文数据的完整性,通过几种方法来保证: 首先,使用海明距离HD=4的编码技术提高数据传输的可靠性,即使在有噪声的环境中也能确保数据不易出错。其次,通过同步滑差检查来防止数据在传输过程中的错位。最后,使用特殊序列来标记数据的开始和结束,避免数据丢失或错误增加。这些措施共同确保了数据传输的高度完整性和准确性。 (12) 地址定义范围为0~127(对广播和群播而言,127是全局地址),对区域地址、段地址的服务存取地址(服务存取点LSAP)的地址扩展,每个6bit。 (13) 使用两类站: 主站(主动站,具有总线存取控制权)和从站(被动站,没有总线存取控制权)。如果对实时性要求不苛刻,那么最多可用32个主站,总站数可达127个。 (14) 总线存取基于混合、分散、集中3种方式: 主站间用令牌传输,主站与从站之间用主从方式。令牌在由主站组成的逻辑令牌环中循环。如果系统中仅有一个主站,则不需要令牌传输。这是一个单主站多从站的系统。最小的系统配置由一个主站和一个从站或两个主站组成。 (15) 数据传输服务有两类。 ① 非循环的: 有/无应答要求的发送数据; 有应答要求的发送和请求数据。 ② 循环的(轮询): 有应答要求的发送和请求数据。 PROFIBUS广泛应用于制造业自动化,流程工业自动化和楼宇、交通、电力等其他自动化领域,PROFIBUS的典型应用如图51所示。 图51PROFIBUS的典型应用 5.2PROFIBUS的协议结构 PROFIBUS的协议结构如图52所示。 图52PROFIBUS的协议结构 从图52可以看出,PROFIBUS协议采用了ISO/OSI模型中的第1层、第2层,必要时还会采用第7层。第1层和第2层的导线和传输协议依据美国标准EIA RS485、国际标准IEC 87051和欧洲标准EN 6087051、总线存取程序、数据传输和管理服务基于DIN 19241标准的第1~3部分和IEC 955标准。管理功能(FMA7)采用ISO DIS 74984(管理框架)的概念。 5.2.1PROFIBUSDP的协议结构 PROFIBUSDP使用第1层、第2层和用户接口层,第3~7层未用,这种精简的结构确保了高速数据传输。物理层采用RS485标准,规定了传输介质、物理连接和电气等特性。PROFIBUSDP的数据链路层称为现场总线数据链路层(Fieldbus Data Link layer,FDL),包括与PROFIBUSFMS、PROFIBUSPA兼容的总线介质访问控制MAC以及现场总线链路控制(Fieldbus Link Control,FLC),FLC向上层提供服务存取点的管理和数据的缓存。第1层和第2层的现场总线管理(FieldBus Management layer 1 and 2,FMA1/2)完成第2层待定总线参数的设定和第1层参数的设定,它还完成这两层出错信息的上传。PROFIBUSDP的用户层包括直接数据链路映射(Direct Data Link Mapper,DDLM)、DP的基本功能、扩展功能以及设备行规。DDLM提供了方便访问FDL的接口,DP设备行规是对用户数据含义的具体说明,规定了各种应用系统和设备的行为特性。 这种为高速传输用户数据而优化的PROFIBUS协议特别适用于可编程控制器与现场级分散I/O设备之间的通信。 5.2.2PROFIBUSFMS的协议结构 PROFIBUSFMS使用了第1层、第2层和第7层。应用层(第7层)包括FMS(现场总线报文规范)和LLI(低层接口)。FMS包含应用协议和提供的通信服务。LLI建立各种类型的通信关系,并给FMS提供不依赖于设备的对第2层的访问。 FMS处理单元级(PLC和PC)的数据通信。功能强大的FMS服务可在广泛的应用领域使用,并为解决复杂通信任务提供了很大的灵活性。 PROFIBUSDP和PROFIBUSFMS使用相同的传输技术和总线存取协议。因此,它们可以在同一根电缆上同时运行。 5.2.3PROFIBUSPA的协议结构 PROFIBUSPA使用扩展的PROFIBUSDP协议进行数据传输。此外,它执行规定现场设备特性的PROFIBUSPA设备行规。传输技术依据IEC 11582标准,确保本质安全和通过总线对现场设备供电。使用段耦合器可将PROFIBUSPA设备很容易地集成到PROFIBUSDP网络之中。 PROFIBUSPA是为满足过程自动化工程中的高速、可靠的通信要求而特别设计的。用PROFIBUSPA可以把传感器和执行器连接到通常的现场总线(段)上,即使在防爆区域的传感器和执行器也可如此。 5.3PROFIBUSDP现场总线系统 由于SIEMENS公司在离散自动化领域具有较深的影响,并且PROFIBUSDP在国内具有广大的用户,本节以PROFIBUSDP为例介绍PROFIBUS现场总线系统。 5.3.1PROFIBUSDP的三个版本 PROFIBUSDP经过功能扩展,一共有DPV0、DPV1和DPV2三个版本,有时将DPV1简写为DPV1。 1. 基本功能(DPV0) (1) 总线存取方法。 各主站间为令牌传送,主站与从站间为主从循环传送,支持单主站或多主站系统,总线上最多126个站。可以采用点对点用户数据通信、广播(控制指令)方式和循环主从用户数据通信。 (2) 循环数据交换。 DPV0可以实现中央控制器(PLC、PC或过程控制系统)与分布式现场设备(从站,例如I/O、阀门、变送器和分析仪等)之间的快速循环数据交换,主站发出请求报文,从站收到后返回响应报文。这种循环数据交换是在被称为MS0的连接上进行的。 总线循环时间应小于中央控制器的循环时间(约10ms),DP的传送时间与网络中站的数量和传输速率有关。每个从站可以传送224B的输入或输出数据。 (3) 诊断功能。 经过扩展的PROFIBUSDP诊断,能对站级、模块级、通道级这3级故障进行诊断和快速定位,诊断信息在总线上传输并由主站采集。 (4) 保护功能。 所有信息的传输按海明距离HD=4进行。对DP从站的输出进行存取保护,DP主站用监控定时器监视与从站的通信,对每个从站都有独立的监控定时器。 DP从站用看门狗(Watchdog Timer,监控定时器)检测与主站的数据传输,如果在设置的时间内没有完成数据通信,那么从站会自动将输出切换到故障安全状态。 (5) 通过网络的组态功能与控制功能。 通过网络可以实现下列功能: 动态激活或关闭DP从站,对DP主站(DPM1)进行配置,可以设置站点的数目、DP从站的地址、输入/输出数据的格式、诊断报文的格式等,以及检查DP从站的组态。控制命令可以同时发送给所有的从站或部分从站。 (6) 同步与锁定功能。 主站可以发送命令给一个从站或同时发给一组从站。接收到主站的同步命令后,从站进入同步模式。这些从站的输出被锁定在当前状态。在这之后的用户数据传输中,输出数据存储在从站,但是它的输出状态保持不变。同步模式可用UNSYNC命令来解除。 FREEZE(锁定)命令使指定的从站组进入锁定模式,即将各从站的输入数据锁定在当前状态,直到主站发送下一个锁定命令时才可以刷新。可用UNFREEZE命令来解除锁定模式。 (7) DPM1和DP从站之间的循环数据传输。 DPM1与有关DP从站之间的用户数据传输是由DPM1按照确定的递归顺序自动进行的。在对总线系统进行组态时,用户定义DP从站与DPM1的关系,确定哪些DP从站被纳入信息交换的循环。 DMP1和DP从站之间的数据传送分为3个阶段: 参数化、组态和数据交换。在前两个阶段进行检查,每个从站将自己的实际组态数据与从DPM1接收到的组态数据进行比较。设备类型、格式、信息长度与输入/输出的个数都应一致,以防止由于组态过程中的错误造成系统的检查错误。 只有系统检查通过后,DP从站才进入用户数据传输阶段。在自动进行用户数据传输的同时,也可以根据用户的需要向DP从站发送用户定义的参数。 (8) DPM1和系统组态设备间的循环数据传输。 PROFIBUSDP允许主站之间的数据交换,即DPM1和DPM2之间的数据交换。该功能使组态和诊断设备通过总线对系统进行组态,改变DPM1的操作方式,动态地允许或禁止DPM1与某些从站之间交换数据。 2. DPV1的扩展功能 (1) 非循环数据交换。 除了DPV0的功能外,DPV1最主要的特征是具有主站与从站之间的非循环数据交换功能,可以用它来进行参数设置、诊断和报警处理。非循环数据交换与循环数据交换是并行执行的,但是优先级较低。 1类主站DPM1可以通过非循环数据通信读写从站的数据块,数据传输在DPM1建立的MS1连接上进行,可以用主站来组态从站和设置从站的参数。 在启动非循环数据通信之前,DPM2用初始化服务建立MS2连接。MS2用于读/写和数据传输服务。一个从站可以同时保持几个激活的MS2连接,但是连接的数量受到从站的资源的限制。DPM2与从站建立或中止非循环数据通信连接,读/写从站的数据块。数据传输功能向从站非循环地写指定的数据,如果需要,可以在同一周期读数据。 对数据寻址时,PROFIBUS假设从站的物理结构是模块化的,即从站由称为“模块”的逻辑功能单元构成。在基本DP功能中,这种模型也用于数据的循环传送。每一模块的输入/输出字节数为常数,在用户数据报文中按固定的位置来传送。寻址过程基于标识符,用它来表示模块的类型,包括输入、输出或二者的结合,所有标识符的集合产生了从站的配置。在系统启动时由DPM1对标识符进行检查。 循环数据通信也是建立在这一模型的基础上的。所有能被读写访问的数据块都被认为属于这些模块,它们可以用槽号和索引来寻址。槽号用来确定模块的地址,索引号用来确定指定给模块的数据块的地址,每个数据块最多244B。读写服务寻址如图53所示。 图53读写服务寻址 对于模块化的设备,模块被指定槽号,从1号槽开始,槽号按顺序递增,0号留给设备本身。紧凑型设备被视为虚拟模块的一个单元,也可以用槽号和索引来寻址。 在读/写请求中,通过长度信息可以对数据块的一部分进行读写。如果读/写数据块成功,DP从站发送正常的读写响应。反之将发送否定的响应,并对问题进行分类。 (2) 工程内部集成的EDD与FDT。 在工业自动化中,由于历史的原因,GSD文件使用得较多,它适用于较简单的应用; EDD(Electronic Device Description,电子设备描述)适用于中等复杂程度的应用; FDT/DTM(Field Device Tool/Device Type Manager,现场设备工具/设备类型管理)是独立于现场总线的“万能”接口,适用于复杂的应用场合。 (3) 基于IEC 611313的软件功能块。 为了实现与制造商无关的系统行规,应为现存的通信平台提供应用程序接口(API),即标准功能块。PNO(PROFIBUS用户组织)推出了“基于IEC 611313的通信与代理(Proxy)功能块”。 (4) 故障安全通信(PROFIsafe)。 PROFIsafe定义了与故障安全有关的自动化任务,以及故障安全设备怎样用故障安全控制器在PROFIBUS上通信。PROFIsafe考虑了在串行总线通信中可能发生的故障,例如,数据的延迟、丢失、重复,不正确的时序,地址和数据的损坏。 PROFIsafe采取了下列的补救措施: 输入报文帧的超时及其确认; 发送者与接收者之间的标识符(口令); 附加的数据安全措施(CRC校验)。 (5) 扩展的诊断功能。 DP从站通过诊断报文将突发事件(报警信息)传送给主站,主站收到后发送确认报文给从站。从站收到后只能发送新的报警信息,这样可以防止多次重复发送同一报警报文。状态报文由从站发送给主站,不需要主站确认。 3. DPV2的扩展功能 (1) 从站与从站间的通信。 在2001年发布的PROFIBUS协议功能扩充版本DPV2中,广播式数据交换实现了从站之间的通信,从站作为出版者(Publisher),不经过主站直接将信息发送给作为订户(Subscribers)的从站。这样从站可以直接读入其他从站的数据。这种方式最多可以减少90%的总线响应时间。从站与从站的数据交换如图54所示。 图54从站与从站的数据交换 (2) 同步(Isochronous)模式功能。 同步功能激活主站与从站之间的同步,误差小于1ms。通过“全局控制”广播报文,所有有关的设备被周期性地同步到总线主站的循环。 (3) 时钟控制与时间标记(Time Stamps)。 通过用于时钟同步的新的连接MS3,实时时间(Real Time)主站将时间标记发送给所有从站,将从站的时钟同步到系统时间,误差小于1ms。 (4) 上载与下载(区域装载)。 这一功能允许用少量的命令装载任意现场设备中任意大小的数据区。例如,不需要人工装载就可以更新程序或更换设备。 (5) 功能请求(Function Invocation)。 功能请求服务用于DP从站的程序控制(启动、停止、返回或重新启动)和功能调用。 (6) 从站冗余。 在很多应用场合,要求现场设备的通信有冗余功能。冗余的从站有两个PROFIBUS接口: 一个是主接口,一个是备用接口。它们可能是单独的设备,也可能分散在两个设备中。 5.3.2PROFIBUSDP系统组成和总线访问控制 PROFIBUSDP是一种专为制造自动化和过程控制优化的数字通信系统,支持高速数据交换。该系统由至少一个主站(如PLC)、多个从站(如传感器和执行器)、总线电缆及接口构成,使用RS485或光纤作传输介质。通过主从通信机制和令牌传递协议,主站控制通信流程,确保数据实时、准确地传输。从站仅响应主站请求,利用轮询机制保证所有从站均被访问。此设计可有效地避免数据冲突,保障通信的高效和可靠性,满足工业自动化对实时性的高要求。 1. 系统的组成 PROFIBUSDP总线系统设备包括主站(主动站,有总线访问控制权,包括1类主站和2类主站)和从站(被动站,无总线访问控制权)。当主站获得总线访问控制权(令牌)时,它能占用总线,可以传输报文,从站仅能应答所接收的报文或在收到请求后传输数据。 (1) 1类主站。 1类DP主站能够对从站设置参数,检查从站的通信接口配置,读取从站诊断报文,并根据已经定义好的算法与从站进行用户数据交换。1类主站还能用一组功能与2类主站进行通信。所以1类主站在DP通信系统中既可作为数据的请求方(与从站的通信),也可作为数据的响应方(与2类主站的通信)。 (2) 2类主站。 在PROFIBUSDP系统中,2类主站是一个编程器或一个管理设备,可以执行一组DP系统的管理与诊断功能。 (3) 从站。 从站是PROFIBUSDP系统通信中的响应方,它不能主动发出数据请求。DP从站可以与2类主站或(对其设置参数并完成对其通信接口配置的)1类主站进行数据交换,并向主站报告本地诊断信息。 2. 系统的结构 一个DP系统既可以是一个单主站结构,也可以是一个多主站结构。主站和从站采用统一编址方式,可选用0~127共128个地址,其中127为广播地址。一个PROFIBUSDP网络最多可以有127个主站,在应用实时性要求较高时,主站个数一般不超过32个。 单主站结构是指网络中只有一个主站,且该主站为1类主站,网络中的从站都隶属于这个主站,从站与主站进行主从数据交换。 多主站结构是指在一条总线上连接几个主站,主站之间采用令牌传递方式获得总线控制权,获得令牌的主站与受其控制的从站之间进行主从数据交换。总线上的主站和各自控制的从站构成多个独立的主从结构子系统。 典型DP系统的组成结构如图55所示。 图55典型DP系统的组成结构 3. 总线访问控制 PROFIBUSDP系统的总线访问控制要保证满足两个方面的需求: 一方面,总线主站节点必须在确定的时间范围内获得足够的机会来处理它自己的通信任务; 另一方面,主站与从站之间的数据交换必须是快速且具有很少的协议开销。 DP系统支持使用混合的总线访问控制机制,主站之间采取令牌控制方式: 令牌在主站之间传递,拥有令牌的主站拥有总线访问控制权; 主站与从站之间采取主从控制方式: 主站具有总线访问控制权,从站仅在主站要求它发送时才可以使用总线。 当一个主站获得令牌后,它就可以执行主站功能,与其他主站节点或所控制的从站节点进行通信。总线上的报文用节点地址来组织,每个PROFIBUS主站节点和从站节点都有一个地址,而且此地址在整个总线上必须是唯一的。 在PROFIBUSDP系统中,这种混合总线访问控制方式允许有如下的系统配置: ① 纯主主系统(执行令牌传递过程)。 ② 纯主从系统(执行主从数据通信过程)。 ③ 混合系统(执行令牌传递和主从数据通信过程)。 (1) 令牌传递过程。 连接到DP网络的主站按节点地址的升序组成一个逻辑令牌环。控制令牌按顺序从一个主站传递到下一个主站。令牌提供访问总线的权利,并通过特殊的令牌帧在主站间传递。具有HAS(Highest Address Station,最高站地址)的主站将令牌传递给具有最低总线地址的主站,以使逻辑令牌环闭合。 令牌经过所有主站节点轮转一次所需的时间叫作令牌循环时间(Token Rotation Time)。现场总线系统中令牌轮转一次所允许的最大时间叫作目标循环时间(Target Rotation Time,TTR),其值是可调整的。 在系统的启动总线初始化阶段,总线访问控制通过辨认主站地址来建立令牌环,并将主站地址都记录在活动主站表(List of Active Master Stations,LAS,用于记录系统中所有主站地址)中。对于令牌管理而言,有两个地址概念特别重要: 前驱站(Previous Station,PS)地址,即传递令牌给自己的站的地址; 后继站(Next Station,NS)地址,即将要传递令牌的目的站地址。在系统运行期间,为了从令牌环中去掉有故障的主站或在令牌环中添加新的主站而不影响总线上的数据通信,需要修改LAS。纯主主系统中的令牌传递过程如图56所示。 图56纯主主系统中的令牌传递过程 (2) 主从数据通信过程。 一个主站在得到令牌后,可以主动发起与从站的数据交换。主从访问过程允许主站访问主站所控制的从站设备,主站可以发送信息给从站或从从站获取信息。其数据传递如图57所示。 图57主从数据通信过程 如果一个DP总线系统中有若干个从站,而它的逻辑令牌环只含有一个主站,那么这样的系统称为纯主从系统。 5.3.3PROFIBUSDP系统工作过程 下面以如图58所示的PROFIBUSDP系统为例,介绍PROFIBUS系统的工作过程。这是一个由多个主站和多个从站组成的PROFIBUSDP系统,包括: 2个1类主站、1个2类主站和4个从站。2号从站和4号从站受控于1号主站,5号从站和9号从站受控于6号主站,主站在得到令牌后对其控制的从站进行数据交换。通过用户设置,2类主站可以对1类主站或从站进行管理监控。上述系统搭建过程可以通过特定的组态软件(如Step7)组态而成,限于篇幅,这里只讨论1类主站和从站的通信过程,而不讨论有关2类主站的通信过程。 图58PROFIBUSDP系统实例 系统从上电到进入正常数据交换工作状态的整个过程可以概括为以下4个工作阶段。 1. 主站和从站的初始化 上电后,主站和从站进入Offline状态,执行自检。当所需要的参数都被初始化后(主站需要加载总线参数集,从站需要加载相应的诊断响应信息等),主站开始监听总线令牌,而从站开始等待主站对其设置参数。 2. 总线上令牌环的建立 主站准备好进入总线令牌环,处于听令牌状态。在一定时间(Timeout)内主站如果没有听到总线上有信号传递,就开始自己生成令牌并初始化令牌环。然后该主站做一次对全体可能主站地址的状态询问,根据收到应答的结果确定活动主站表和本主站所辖站地址范围GAP,GAP是指从本站地址(This Station,TS)到令牌环中的后继站地址NS之间的地址范围。LAS的形成即标志着逻辑令牌环初始化的完成。 3. 主站与从站通信的初始化 DP系统的工作过程如图59所示。 图59DP系统的工作过程 在主站可以与DP从站设备交换用户数据之前,主站必须设置DP从站的参数并配置此从站的通信接口,因此主站首先检查DP从站是否在总线上。如果从站在总线上,则主站通过请求从站的诊断数据来检查DP从站的准备情况。如果DP从站报告它已准备好接收参数,则主站给DP从站设置参数数据并检查通信接口配置,正常情况下DP从站将分别给予确认。收到从站的确认回答后,主站再请求从站的诊断数据以查明从站是否准备好进行用户数据交换。只有在这些工作正确完成后,主站才能开始循环地与DP从站交换用户数据。 在上述过程中,交换了下述3种数据。 (1) 参数数据。 参数数据包括预先给DP从站的一些本地和全局参数以及一些特征和功能。参数报文的结构除包括标准规定的部分外,必要时还包括DP从站和制造商特有的部分。参数报文的长度不超过244B,重要的参数包括从站状态参数、看门狗定时器参数、从站制造商标识符、从站分组及用户自定义的从站应用参数等。 (2) 通信接口配置数据。 DP从站的输入/输出数据的格式通过标识符来描述。标识符指定了在用户数据交换时输入/输出字节或字的长度及数据的一致刷新要求。在检查通信接口配置时,主站发送标识符给DP从站,以检查在从站中实际存在的输入/输出区域是否与标识符所设定的一致。如果一致,则可以进入主从用户数据交换阶段。 (3) 诊断数据。 在启动阶段,主站使用诊断请求报文来检查是否存在DP从站和从站是否准备好接收参数报文。由DP从站提交的诊断数据包括符合标准的诊断部分以及此DP从站专用的外部诊断信息。DP从站发送诊断报文告知DP主站其运行状态、出错时间及原因等。 4. 用户的交换数据通信 如果前面所述的过程没有错误而且DP从站的通信接口配置与主站的请求相符,则DP从站发送诊断报文报告它已为循环地交换用户数据做好准备。从此时起,主站与DP从站交换用户数据。在交换用户数据期间,DP从站只响应对其设置参数和通信接口配置检查正确的主站发来的Data_Exchange请求帧报文,如循环地向从站输出数据或者循环地读取从站数据。其他主站的用户数据报文均被此DP从站拒绝。在此阶段,当从站出现故障或其他诊断信息时,将会中断正常的用户数据交换。DP从站可以通过将应答时的报文服务级别从低优先级改变为高优先级来告知主站当前有诊断报文中断或其他状态信息。然后,主站发出诊断请求,请求DP从站的实际诊断报文或状态信息。处理后,DP从站和主站返回到交换用户数据状态,主站和DP从站可以双向交换最多244B的用户数据。DP从站报告出现诊断报文的流程如图510所示。 图510DP从站报告出现诊断报文的流程 5.4PROFIBUSDP的通信模型 PROFIBUSDP的通信模型有几个关键要点,它们共同定义了这一协议的通信行为和结构。 (1) 主站和从站模型。 主站(Master): 在PROFIBUSDP网络中,主站负责控制网络上的通信。它发起数据交换,并且可以配置、监控和控制从站。主站通常是可编程逻辑控制器(PLC)或者工业PC。 从站(Slave): 从站是网络上的设备,如传感器、执行器或驱动器等,它们执行主站下达的命令,并向主站报告状态或测量值。从站不会主动发起通信。 (2) 通信组织。 周期性通信: 主站定期(周期性地)与从站交换数据,确保实时性控制和监测。这种通信模式支持快速响应和高效的数据同步。 非周期性通信: 除了周期性通信外,主站还可以与从站进行非周期性的数据交换,用于参数配置、诊断等需要。 (3) 数据交换模型。 输入/输出(I/O)数据: 最常见的数据交换类型,涉及将控制命令从主站发送到从站(输出数据),以及将状态信息或测量值从从站回送到主站(输入数据)。 参数数据: 用于设备配置和参数设置的数据。这些数据通常在设备启动时或维护期间交换。 (4) 数据传输速率。 PROFIBUSDP支持多种数据传输速率,从9.6kb/s到12Mb/s不等,用户可以根据具体的应用需求选择合适的数据传输速率。 (5) 地址分配。 PROFIBUSDP网络中的每个设备都有一个唯一的地址。主站通过这些地址识别和访问网络上的从站。 (6) 配置和诊断。 网络配置: 在网络投入运行前,需要对其进行配置,包括设定主站和从站的参数,以及网络的布局。 网络诊断: PROFIBUSDP支持网络诊断功能,主站可以通过诊断信息监控网络状态和从站的健康状况。 (7) 标准和互操作性。 PROFIBUSDP遵循IEC 61158和IEC 61784标准,确保了不同制造商的设备之间的互操作性。 通过这些通信模型的要点,PROFIBUSDP能够提供一种高效、可靠的方式来支持工业自动化系统中的设备通信。 5.4.1PROFIBUSDP的物理层 PROFIBUSDP的物理层支持屏蔽双绞线和光缆两种传输介质。 1. DP(RS485)的物理层 对于屏蔽双绞电缆的基本类型来说,PROFIBUS的物理层(第1层)实现对称的数据传输,符合EIA RS485标准(也称为H2)。一个总线段内的导线是屏蔽双绞电缆,段的两端各有一个终端器,如图511所示。传输速率从9.6kb/s到12Mb/s可选,所选用的波特率适用于连接到总线(段)上的所有设备。 图511RS485总线段的结构 (1) 传输程序。 用于PROFIBUS RS485的传输程序是以半双工、异步、无间隙同步为基础的。数据的发送用NRZ(不归零)编码,即1个字符帧为11位(bit),如图512所示。当发送位(bit)时,由二进制0到1转换期间的信号形状不改变。 图512PROFIBUS UART数据帧 在传输期间,二进制1对应RXD/TXDP(Receive/TransmitDataP)线上的正电位,而在RXD/TXDN线上则相反。各报文间的空闲(idle)状态对应二进制1信号,如图513所示。 2根PROFIBUS数据线也常称为A线和B线。A线对应RXD/TXDN信号,B线则对应RXD/TXDP信号。 (2) 总线连接。 国际性的PROFIBUS标准EN 50170推荐使用9针D形连接器用于总线站与总线的相互连接。D形连接器的插座与总线站相连接,而D形连接器的插头与总线电缆相连接,9针D形连接器如图514所示。 图513用NRZ传输时的信号形状 图5149针D形连接器 9针D形连接器的针脚分配如表51所示。 表519针D形连接器的针脚分配 针脚号信 号 名 称设 计 含 义 1SHIELD屏蔽或功能地 2M2424V输出电压的地(辅助电源) 3RXD/TXDP①接收/发送数据正,B线 4CNTRP方向控制信号P 5DGND①数据基准电位(地) 6VP①供电电压正 7P24正24V输出电压(辅助电源) 8RXD/TXDN①接收/发送数据负,A线 9CMTRN方向控制信号N ① 该类信号是强制性的,它们必须使用。 (3) 总线终端器。 根据EIA RS485标准,在数据线A和B的两端均加接总线终端器。PROFIBUS的总线终端器包含一个下拉电阻(与数据基准电位DGND相连接)和一个上拉电阻(与供电正电压VP相连接)(见图411)。当在总线上没有站发送数据时,也就是说,在两个报文之间总线处于空闲状态时,这两个电阻确保在总线上有一个确定的空闲电位。几乎在所有标准的PROFIBUS总线连接器上都组合了所需要的总线终端器,而且可以由跳接器或开关来启动。 当总线系统运行的传输速率大于1.5Mb/s时,由于所连接站的电容性负载而引起导线反射,因此必须使用附加有轴向电感的总线连接插头,如图515所示。 图515传输速率大于1.5Mb/s的连接结构 RS485总线驱动器可采用SN75176,当数据传输速率超过1.5Mb/s时,应当选用高速型总线驱动器,如SN75ALS1176等。 2. DP(光缆)的物理层 PROFIBUS第1层的另一种类型是以PNO(PROFIBUS用户组织)的导则“用于PROFIBUS的光纤传输技术,版本1.1,1993年7月版”为基础的,它通过光纤导体中光的传输来传送数据。光缆允许PROFIBUS系统站之间的距离最大到15km。光缆对电磁干扰不敏感并能确保总线站之间的电气隔离。近年来,由于光纤的连接技术已大大简化,因此这种传输技术已经普遍用于现场设备的数据通信,特别是塑料光纤的简单单工连接器的使用成为这一发展的重要组成部分。 用玻璃或塑料纤维制成的光缆可用作传输介质。根据所用导线的类型,目前玻璃光纤能处理的连接距离达到15km,而塑料光纤只能达到80m。 5.4.2PROFIBUSDP的数据链路层 根据OSI参考模型,数据链路层规定总线存取控制、数据安全性以及传输协议和报文的处理。在PROFIBUSDP中,数据链路层(第2层)称为FDL层(现场总线数据链路层)。 PROFIBUSDP的报文格式如图516所示。 图516PROFIBUSDP的报文格式 1. 帧字符和帧格式 (1) 帧字符。 每个帧由若干帧字符(UART字符)组成,它把一个8位字符扩展成11位: 首先是一个开始位0,接着是8位数据,之后是奇偶校验位(规定为偶校验),最后是停止位1。 (2) 帧格式。 第2层的报文格式(帧格式)如图516所示。 其中, L信息字段长度; SC单一字符(E5H),用在短应答帧中; SD1~SD4开始符,区别不同类型的帧格式: SD1=0x10,SD2=0x68,SD3=0xA2,SD4=0xDC; LE/LEr长度字节,指示数据字段的长度,LEr=LE; DA目的地址,指示接收该帧的站; SA源地址,指示发送该帧的站; FC帧控制字节,包含用于该帧服务和优先权等的详细说明; DU数据字段,包含有效的数据信息; FCS帧校验字节,所有帧字符的和,不考虑进位; ED帧结束界定符(16H)。 这些帧既包括主动帧,也包括应答/回答帧,帧中字符间不存在空闲位(二进制1)。主动帧和应答/回答帧的帧前的间隙有一些不同。每个主动帧帧头都有至少33个同步位,也就是说,每个通信建立握手报文前必须保持至少33位长的空闲状态(二进制1对应电平信号),这33个同步位长作为帧同步时间间隔,称为同步位SYN。而应答和回答帧前没有这个规定,响应时间取决于系统设置。应答帧与回答帧也有一定的区别: 应答帧是指从站对主站的响应帧中无数据字段(DU)的帧,而回答帧是指响应帧中存在数据字段(DU)的帧。另外,短应答帧只供应答使用,它是无数据字段固定长度的帧的一种简单形式。 (3) 帧控制字节。 FC的位置在帧中SA之后,用来定义报文类型,表明该帧是主动请求帧还是应答/回答帧,FC还包括了防止信息丢失或重复的控制信息。 (4) 扩展帧。 在有数据字段(DU)的帧(开始符是SD2和SD3)中,DA和SA的最高位(第7位)指示是否存在地址扩展位(EXT),0表示无地址扩展,1表示有地址扩展。 (5) 报文循环。 在DP总线上,一次报文循环过程包括主动帧和应答/回答帧的传输。除令牌帧外,其余3种帧: 无数据字段的固定长度的帧、有数据字段的固定长度的帧和有数据字段无固定长度的帧,既可以是主动请求帧,也可以是应答/回答帧(令牌帧是主动帧,它不需要应答/回答)。 2. 现场总线第1/2层管理(FMA 1/2) 前面介绍了PROFIBUSDP规范中FDL为上层提供的服务。而事实上,FDL的用户除了可以申请FDL的服务之外,还可以对FDL以及物理层PHY进行一些必要的管理,例如,强制复位FDL和PHY、设定参数值、读状态、读事件及进行配置等。在PROFIBUSDP规范中,这一部分叫作FMA 1/2(第1、2层现场总线管理)。 FMA 1/2用户和FMA 1/2之间的接口服务功能主要有: (1) 复位物理层、数据链路层(Reset FMA 1/2),此服务是本地服务。 (2) 请求和修改数据链路层、物理层以及计数器的实际参数值(Set Value/Read Value FMA 1/2),此服务是本地服务。 (3) 通知意外的事件、错误和状态改变(Event FMA 1/2),此服务可以是本地服务,也可以是远程服务。 (4) 请求站的标识和链路服务存取点(LSAP)配置(Ident FMA 1/2、LSAP Status FMA 1/2),此服务可以是本地服务,也可以是远程服务。 (5) 请求实际的主站表(Live List FMA 1/2),此服务是本地服务。 (6) SAP激活及解除激活(SAP Activate/SAP Deactivate FMA 1/2),此服务是本地服务。 5.4.3PROFIBUSDP的用户层 PROFIBUSDP协议的用户层定义了应用程序接口(API),使得应用程序能够访问网络通信服务。用户层位于PROFIBUS通信模型的最高层,直接与应用程序交互,负责处理高级数据交换、设备参数配置、诊断和监控等任务。PROFIBUSDP用户层的几个关键点如下: (1) 数据交换和访问。 ① 过程数据交换: 用户层提供了机制,允许周期性地交换过程数据(即从传感器、执行器等从站设备收集的数据)并发送控制信号。这种数据交换是实时的,支持自动化系统的实时控制需求。 ② 参数化和诊断数据访问: 用户层还提供了非周期性数据访问的机制,使得可以读取和写入设备参数,以及访问诊断信息,这对于设备配置、故障分析和系统维护至关重要。 (2) 设备描述文件(GSD文件)。 ① 设备描述: 每个PROFIBUSDP从站设备都有一个与之关联的设备描述文件(GSD文件),其中包含了设备的重要信息,如设备标识、通信能力、I/O配置和参数列表等。用户层通过解析GSD文件来识别和配置从站设备。 ② 参数化支持: 用户层利用GSD文件中的信息对设备进行参数化,这是实现设备按需配置的基础。 (3) 服务原语(Service Primitives)。 用户层通过一组定义明确的服务原语(如请求、响应、指示和确认)提供通信服务。这些原语定义了应用程序与用户层之间的接口,使得应用程序能够请求数据交换、设备配置和诊断服务。 (4) 确定性通信。 PROFIBUSDP用户层支持确定性通信,确保数据在预定的时间内可靠传输,这对于实现工业自动化过程中的同步和实时控制非常重要。 (5) 诊断和监控。 用户层提供了丰富的诊断功能,允许应用程序访问从站和网络的状态信息,包括错误报告、设备状态和网络通信质量等。这些信息对于系统的故障检测和维护至关重要。 (6) 互操作性和兼容性。 用户层遵循PROFIBUS标准,提供了标准化的应用程序接口,确保了不同制造商生产的设备和系统之间的互操作性和兼容性。 PROFIBUSDP的用户层是实现高效、可靠工业通信的关键,它通过提供标准化的服务和接口,支持复杂的自动化任务,包括设备控制、参数配置、系统诊断和维护。 1. PROFIBUSDP的用户层概述 PROFIBUSDP的用户层包含以下主要内容: 数据链路层管理(DDLM)、用户接口和用户。DDLM负责处理通信协议的底层细节,如数据的发送和接收、错误检测与恢复。用户接口提供了一个框架,允许应用程序与网络设备进行交互,实现数据交换和设备控制。用户部分则涉及到实际的操作人员,他们通过用户接口与系统互动,进行设备配置、监控和管理。这三者共同确保了系统的有效运行和高效的数据处理。它们在通信中实现各种应用功能[在PROFIBUSDP协议中没有定义第7层(应用层),而是在用户接口中描述其应用]。DDLM是预先定义的直接数据链路映射程序,将所有的在用户接口中传送的功能都映射到第2层FDL和FMA 1/2服务。它向第2层发送功能调用中SSAP、DSAP和Serv_class等必需的参数,接收来自第2层的确认和指示,并将它们传送给用户接口/用户。 PROFIBUSDP系统的通信模型如图517所示。 图517PROFIBUSDP系统的通信模型 在图517中,2类主站中不存在用户接口,DDLM直接为用户提供服务。在1类主站中,除DDLM外,还存在用户、用户接口以及用户与用户接口之间的接口。用户接口与用户之间的接口被定义为数据接口与服务接口,在该接口上处理与DP从站之间的通信。在DP从站中,存在着用户与用户接口,而用户和用户接口之间的接口被创建为数据接口。主站与主站之间的数据通信由2类主站发起,在1类主站中数据流直接通过DDLM到达用户,不经过用户接口而1类主站与DP从站两者的用户经由用户接口,利用预先定义的DP通信接口进行通信。 2. PROFIBUSDP行规 PROFIBUSDP只使用了第1层和第2层。用户接口定义了PROFIBUSDP设备可使用的应用功能以及各种类型的系统和设备的行为特性。 PROFIBUSDP协议的任务只是定义用户数据怎样通过总线从一个站点传送到另一个站点。在这里,传输协议并没有对所传输的用户数据进行评价,这是DP行规的任务。由于精确规定了相关应用的参数和行规的使用,从而使不同制造商生产的DP部件能容易地交换使用。目前已制定了如下的DP行规: (1) NC/RC行规(3.052)——该行规介绍了人们怎样通过PROFIBUSDP对操作机床和装配机器人进行控制。根据详细的顺序图解,从高一级自动化设备的角度,介绍了机器人的动作和程序控制情况。 (2) 编码器行规(3.062)——该行规介绍了回转式、转角式和线性编码器与PROFIBUSDP的连接,这些编码器带有单转或多转分辨率。有两类设备定义了它们的基本和附加功能,如标定、中断处理和扩展诊断。 (3) 变速传动行规(3.071)——传动技术设备的主要生产厂商共同制定了PROFIDRIVE行规。行规具体规定了传动设备怎样参数化,以及设定值和实际值怎样进行传递,这样不同厂商生产的传动设备就可互换,此行规也包括了速度控制和定位必需的规格参数。传动设备的基本功能在行规中有具体规定,但会根据具体应用留有进一步扩展的余地。行规描述了DP或FMS应用功能的映射。 (4) 操作员控制和过程监视行规(HMI)——HMI行规具体说明了如何通过PROFIBUSDP把这些设备与更高一级自动化部件的连接,此行规使用了扩展的PROFIBUSDP的功能来进行通信。 5.4.4PROFIBUSDP用户接口 PROFIBUSDP用户接口是指用户(通常指的是自动化系统的开发人员和维护人员)与PROFIBUSDP网络之间交互的接口,其中包括软件编程接口(API)、配置工具、诊断功能等。通过这些接口和工具,用户可以配置网络、设备,以及进行通信和故障诊断。PROFIBUSDP用户接口具有如下要点: (1) 设备描述文件(GSD文件)。 每个PROFIBUSDP设备都有一个对应的设备描述(General Station Description,GSD)文件,它包含了设备的基本信息、通信参数和功能。用户通过这些信息来配置和集成设备。 (2) 配置工具。 ① 网络配置: 用户通过配置工具来设置网络的拓扑结构、为设备分配地址、配置设备参数等。这些工具通常提供图形界面,简化了配置过程。 ② 设备参数设置: 配置工具也用于设备的参数化,例如,设置传感器的量程、执行器的操作模式等。 (3) 编程接口(API)。 应用程序接口: PROFIBUSDP提供了一套编程接口,允许开发人员在自己的应用程序中集成PROFIBUSDP通信。这些API简化了数据交换、设备控制和诊断信息访问的过程。 (4) 实时数据交换。 过程数据通信: 用户接口支持实时的过程数据交换,使得控制系统能够实时监控和控制现场设备。 (5) 诊断和监控。 网络和设备诊断: 用户接口提供了诊断功能,使用户能够监控网络状态、检测和诊断故障。这包括从简单的设备状态指示到复杂的故障分析和记录。 (6) 互操作性。 标准化接口: 由于PROFIBUSDP遵循国际标准,其用户接口保证了不同设备和系统之间的互操作性,即使它们来自不同的制造商。 (7) 安全性。 网络安全: 虽然PROFIBUSDP本身不专注于网络安全,但是用户接口需要考虑到安全性的配置,如通过安全网关或加密手段保护通信数据。 通过这些用户接口的功能和特点,PROFIBUSDP支持了广泛的工业自动化应用,从简单的I/O设备控制到复杂的过程控制和监控系统。用户可以根据自己的需求,利用这些接口和工具来构建高效、可靠的自动化解决方案。 下面讲述PROFIBUSDP的用户接口。 1. 1类主站的用户接口 1类主站用户接口与用户之间的接口包括数据接口和服务接口。在该接口上处理与DP从站通信的所有信息交互,1类主站的用户接口如图518所示。 图5181类主站的用户接口 (1) 数据接口。 数据接口包括主站参数集、诊断数据、输入数据和输出数据。其中主站参数集包含总线参数集和DP从站参数集,是总线参数和从站参数在主站上的映射。 ① 总线参数集。 总线参数集的内容包括总线参数长度、FDL地址、波特率、时隙时间、最小和最大响应从站延时、静止和建立时间、令牌目标轮转时间、GAL更新因子、最高站地址、最大重试次数、用户接口标志、最小从站轮询时间间隔、请求方得到响应的最长时间、主站用户数据长度、主站(2类)的名字和主站用户数据。 ② DP从站参数集。 DP从站参数集的内容包括从站参数长度、从站标志、从站类型、参数数据长度、参数数据、通信接口配置数据长度、通信接口配置数据、从站地址分配表长度、从站地址分配表、从站用户数据长度和从站用户数据。 ③ 诊断数据。 诊断数据Diagnostic_Data是指由用户接口存储的DP从站诊断信息、系统诊断信息、数据传输状态表(Data_Transfer_List)和主站状态(Master_Status)的诊断信息。 ④ 输入数据和输出数据。 输入数据(Input Data)和输出数据(Output Data)包括DP从站的输入数据和1类主站用户的输出数据。该区域的长度由DP从站制造商指定,输入数据和输出数据的格式由用户根据其DP系统来设计,格式信息保存在DP从站参数集的Add_Tab参数中。 (2) 服务接口。 通过服务接口,用户可以在用户接口的循环操作中异步调用非循环功能。非循环功能分为本地和远程功能。本地功能由Scheduler或Service_Handler处理,远程功能由Scheduler处理。用户接口不提供附加出错处理。在这个接口上,服务调用顺序执行,只有在接口上传送了Mark.req并产生Global_Control.req的情况下才允许并行处理。服务接口包括以下几种服务。 ① 设定用户接口操作模式(Set_Mode)。 用户可以利用该功能设定用户接口的操作模式(USIF_State),并可以利用DDLM_Get_Master_Diag读取用户接口的操作模式。2类主站也可以利用DDLM_Download来改变操作模式。 ② 指示操作模式改变(Mode_Change)。 用户接口用该功能指示其操作模式的改变。如果用户通过Set_Mode改变操作模式,该指示将不会出现。如果在本地接口上发生了一个严重的错误,则用户接口将操作模式改为Offline。 ③ 加载总线参数集(Load_Bus_Par)。 用户用该功能加载新的总线参数集。用户接口将新加载的总线参数集传送给当前的总线参数集并将改变的FDL服务参数传送给FDL控制。在用户接口的操作模式Clear和Operate下不允许改变FDL服务参数Baud_Rate或FDL_Add。 ④ 同步数据传输(Mark)。 利用该功能,用户可与用户接口同步操作,用户将该功能传送给用户接口后,当所有被激活的DP从站至少被询问一次后,用户将收到一个来自用户接口的应答。 ⑤ 对从站的全局控制命令(Global_Control)。 利用该功能可以向一个(单一)或数个(广播)DP从站传送控制命令Sync和Freeze,从而实现DP从站的同步数据输出和同步数据输入功能。 ⑥ 读统计计数器(Read_Value)。 利用该功能读取统计计数器中的参数变量值。 ⑦ 清零统计计数器(Delete_SC)。 利用该功能清零统计计数器,各个计数器的寻址索引与其FDL地址一致。 2. 从站的用户接口 在DP从站中,用户接口通过从站的主从DDLM功能和从站的本地DDLM功能与DDLM通信,用户接口被创建为数据接口,从站用户接口状态机实现对数据交换的监视。用户接口分析本地发生的FDL和DDLM错误并将结果放入DDLM_Fault.ind中。用户接口保持与实际应用过程之间的同步,并且该同步的实现依赖于一些功能的执行过程。在本地,同步由3个事件来触发: 新的输入数据、诊断信息(Diag_Data)改变和通信接口配置改变。主站参数集中Min_Slave_Interval参数的值应根据DP系统中从站的性能来确定。 5.5PROFIBUSDP的总线设备类型和数据通信 PROFIBUSDP支持高速通信并用于连接控制器和现场设备(如传感器和执行器)。PROFIBUSDP的设计旨在简化自动化系统的通信,提高数据传输的效率和可靠性。PROFIBUSDP总线设备类型和数据通信的要点如下。 (1) 总线设备类型。 ① 主站(Master)。 1类主站: 通常是可编程逻辑控制器(PLC)或工业PC,负责控制过程,周期性地执行数据交换,向从站发送控制命令,并读取从站状态。 2类主站: 通常用于工程和维护任务,如参数设置、项目配置、启动和诊断。2类主站可以与1类主站并行工作,不参与周期性数据交换。 ② 从站(Slave)。 从站设备包括传感器、执行器、驱动器等现场设备。它们接收来自主站的控制命令,并向主站报告状态或测量值。从站不会主动发起通信,只在主站请求时响应。 (2) 数据通信。 ① 周期性通信。 主要用于过程数据的交换。1类主站周期性地轮询每个从站,发送控制命令并接收状态信息。这确保了实时性和同步性,适用于需要快速响应的自动化控制任务。 ② 非周期性通信。 用于参数化、配置和诊断等任务。2类主站通常负责这些非实时的通信需求,可以在不干扰周期性数据交换的情况下,随时访问从站进行配置或故障诊断。 ③ 实时性和确定性。 PROFIBUSDP通过精确的总线访问控制和时间同步机制,保证了通信的实时性和确定性。这对于确保工业自动化系统中严格的时间要求至关重要。 ④ 数据传输速率。 PROFIBUSDP支持多种数据传输速率,从9.6kb/s到12Mb/s。高速传输能力使其适用于各种工业应用,包括那些需要高速数据交换的场景。 ⑤ 地址分配。 PROFIBUSDP网络中的每个设备都有一个唯一的地址。地址分配可以是手动进行的,也可以通过软件自动完成。正确的地址分配对于网络的顺利通信至关重要。 ⑥ 通信协议和服务。 PROFIBUSDP定义了一系列的通信协议和服务,包括数据交换格式、错误检测和纠正机制、设备状态监测等。这些协议和服务确保了数据通信的可靠性和效率。 基于PROFIBUSDP为工业自动化领域提供了一种高效、可靠的通信解决方案,支持从简单的I/O设备控制到复杂的过程自动化和监控系统的广泛应用。 5.5.1概述 PROFIBUSDP协议是为自动化制造工厂中分散的I/O设备和现场设备所需要的高速数据通信而设计的。典型的DP配置是单主站结构,如图519所示。DP主站与DP从站间的通信基于主从原理。也就是说,只有当主站请求时总线上的DP从站才可能活动。DP从站被DP主站按轮询表依次访问。DP主站与DP从站间的用户数据连续地交换,而并不考虑用户数据的内容。 图519DP单主站结构 在DP主站上处理轮询表的情况如图520所示。 图520在DP主站上处理轮询表 DP主站与DP从站间的一个报文循环由DP主站发出的请求帧(轮询报文)和由DP从站返回的有关应答或响应帧组成。 由于按EN 50170标准规定的PROFIBUS节点在第1层和第2层的特性,一个DP系统也可能是多主结构。实际上,这就意味着一条总线上可能连接几个主站节点,在一个总线上DP主站/从站、FMS主站/从站和其他的主动节点或被动节点也可以共存,如图521所示。 图521PROFIBUSDP多主站结构 5.5.2DP设备类型 在PROFIBUSDP网络中,设备类型主要分为两大类: 主站(Master)和从站(Slave)。这两类设备在网络中扮演不同的角色,以确保进行高效、可靠的数据通信。 1. DP主站(1类) 1类DP主站循环地与DP从站交换用户数据。它使用如下的协议功能执行通信任务。 (1) Set_Prm和Chk_Cfg。 在启动、重启动和数据传输阶段,DP主站使用这些功能发送参数集给DP从站。对个别DP从站而言,其输入和输出数据的字节数在组态期间进行定义。 (2) Data_Exchange。 此功能循环地与指定给它的DP从站进行输入/输出数据交换。 (3) Slave_Diag。 在启动期间或循环的用户数据交换期间,用此功能读取DP从站的诊断信息。 (4) Global_Control。 DP主站使用此控制命令将它的运行状态告知给各DP从站。此外,还可以将控制命令发送给个别从站或规定的DP从站组,以实现输出数据和输入数据的同步(使用Sync和Freeze命令)。 2. DP从站 DP从站只与装载此从站的参数并组态它的DP主站交换用户数据。DP从站可以向此主站报告本地诊断中断和过程中断。 3. DP主站(2类) 2类DP主站是编程装置、诊断和管理设备。除了已经描述的1类主站的功能外,2类DP主站通常还支持下列特殊功能: (1) RD_Inp和RD_Outp。 在与1类DP主站进行数据通信的同时,利用这些功能可读取DP从站的输入数据和输出数据。 (2) Get_Cfg。 用此功能读取DP从站的当前组态数据。 (3) Set_Slave_Add。 此功能允许DP主站(2类)分配一个新的总线地址给一个DP从站。当然,此从站是支持这种地址定义方法的。 此外,2类DP主站还提供一些功能用于与1类DP主站的通信。 4. DP组合设备 可以将1类DP主站、2类DP主站和DP从站组合在一个硬件模块中形成一个DP组合设备。实际上,这样的设备是很常见的。一些典型的设备组合如下: (1) 1类DP主站与2类DP主站的组合。 (2) DP从站与1类DP主站的组合。 5.5.3DP设备之间的数据通信 PROFIBUSDP旨在实现高速、可靠的数据通信。它特别适用于自动化和过程控制领域。PROFIBUSDP设备之间数据通信的要点如下: (1) 主站与从站架构。 主站(Master): 通常是可编程逻辑控制器(PLC)或工业PC,负责初始化通信、周期性地轮询从站,并处理从站发送的数据。 从站(Slave): 如传感器、执行器或驱动器,执行主站的命令,向主站报告其状态和测量数据。从站不会主动发起通信。 (2) 通信方式。 周期性通信: 主站周期性地轮询每个从站,进行数据交换。这种方式用于实时控制任务,确保了通信的实时性和确定性。 非周期性通信: 用于参数配置、诊断和监控等操作。这种通信可以由主站或特定的配置工具发起,不受周期性数据交换的影响。 (3) 数据交换模式。 输出数据: 从主站到从站的数据,用于控制从站的行为(如设置执行器的状态)。 输入数据: 从从站到主站的数据,包括传感器读数或从站的状态信息。 (4) 数据传输速率。 PROFIBUSDP支持多种数据传输速率,从9.6kb/s到12Mb/s,以适应不同的应用需求和网络长度。 (5) 地址分配。 每个从站在PROFIBUSDP网络中有一个唯一的地址,这使得主站能够识别并与特定的从站通信。 (6) 数据一致性。 通过使用循环冗余检查(CRC)和确认机制,PROFIBUSDP确保数据的准确性和一致性。 (7) 通信协议。 PROFIBUSDP定义了一套严格的通信协议,包括数据帧格式、错误处理和设备配置。 (8) 网络配置和诊断。 网络配置工具允许用户配置网络参数、设备地址和数据传输速率。同时,PROFIBUSDP支持网络诊断功能,帮助检测和解决网络问题。 (9) 互操作性。 由于遵循国际标准,不同制造商的PROFIBUSDP设备可以在同一网络中互操作。 1. DP通信关系和DP数据交换 按PROFIBUSDP协议,通信作业的发起者称为请求方,而相应的通信伙伴称为响应方。所有1类DP主站的请求报文以第2层中的“高优先权”(High_Priority)报文服务级别处理。与此相反,由DP从站发出的响应报文使用第2层中的“低优先权”(Low_Priority)报文服务级别。DP从站可将当前出现的诊断中断或状态事件通知给DP主站,仅在此刻,可通过将Data_Exchange的响应报文服务级别从低优先权改变为高优先权来实现。数据的传输是非连接的一对一或一对多连接(仅控制命令和交叉通信)。表52列出了DP主站和DP从站的通信能力,按请求方和响应方分别列出。 表52各类DP设备间的通信关系 功能/服务 依据EN 50170DP从站DP主站(1类)DP主站(2类) RequRespRequRespRequResp 使用的 SAP号使用的 第2层服务 DataExchangeMMO缺省SAPSRD RDInpMO56SRD RD_OutpMO57SRD Slave_DiagMMO60SRD Set_PrmMMO61SRD Chk_CfgMMO62SRD Get_CfgMO59SRD Global_ControlMMO58SDN Set_Slave_AddOO55SRD M_M_CommunicationOOOO54SRD/SDN DPV1 ServicesOOO51/50SRD 注: Requ=请求方,Resp=响应方,M=强制性功能,O=可选功能。 2. 初始化阶段,重启动和用户数据通信 在DP主站可以与从站设备交换用户数据之前,DP主站必须定义DP从站的参数并组态此从站。为此,DP主站首先检查DP从站是否在总线上。如果是,则DP主站通过请求从站的诊断数据来检查DP从站的准备情况。当DP从站报告它已准备好参数定义时,则DP主站装载参数集和组态数据。DP主站再请求从站的诊断数据以查明从站是否准备就绪。只有在这些工作完成后,DP主站才开始循环地与DP从站交换用户数据。 DP从站初始化阶段的主要顺序如图522所示。 图522DP从站初始化阶段的主要顺序 (1) 参数数据(Set_Prm)。 参数集包括预定给DP从站的重要的本地和全局参数、特征和功能。为了规定和组态从站参数,通常使用装有组态工具的DP主站来进行。若使用直接组态方法,则需填写由组态软件的图形用户接口提供的对话框。若使用间接组态方法,则要用组态工具存取当前的参数和有关DP从站的GSD数据。参数报文的结构包括EN 50170标准规定的部分,必要时还包括DP从站和制造商特指的部分。参数报文的长度不能超过244B。以下列出了最重要的参数报文的内容。 ① Station Status。 Station Status包括与从站有关的功能和设定。例如,它规定了定时监视器(Watchdog)是否要被激活,它还规定了是否允许其他DP主站存取此DP从站。 ② Watchdog。 Watchdog(定时监视器,“看门狗”)检查DP主站的故障。如果定时监视器被启用,且DP从站检查出DP主站有故障,则本地输出数据被删除或进入规定的安全状态(替代值被传送给输出)。在总线上运行的一个DP从站,可以带定时监视器也可以不带。根据总线配置和所选用的传输速率,组态工具建议此总线配置可以使用的定时监视器的时间。 ③ Ident_Number。 DP从站的标识号(Ident_Number)是由PNO在认证时规定的。DP从站的标识号放在此设备的主要文件中。只有当参数报文中的标识号与此DP从站本身的标识号一致时,此DP从站才接收此参数报文。这样就防止了偶尔出现的从站设备的错误参数定义。 ④ Group_Ident。 Group_Ident可将DP从站分组组合,以便使用Sync和Freeze控制命令。最多可允许组成8组。 ⑤ User_Prm_Data。 DP从站参数数据(User_Prm_Data)为DP从站规定了有关应用数据。例如,这可能包括默认设定或控制器参数。 (2) 组态数据(Chk_Cfg)。 在组态数据报文中,DP主站发送标识符格式给DP从站,这些标识符格式告知DP从站要被交换的输入/输出区域的范围和结构。这些区域(也称“模块”)是按DP主站和DP从站约定的字节或字结构(标识符格式)形式定义的。标识符格式允许指定各模块的输入/输出区域。当定义组态报文时,必须依据DP从站设备类型考虑下列特性: ① DP从站有固定的输入/输出区域。 ② 依据配置,DP从站有动态的输入/输出区域。 ③ DP从站的输入/输出区域由此DP从站及其制造商特指的标识符格式来规定。 那些包括连续的信息而又不能按字节或字结构安排的输入/输出数据区域被称为“连续的”数据。例如,它们包含用于闭环控制器的参数区域或用于驱动控制的参数集。使用特殊的标识符格式(与DP从站和制造商有关的)可以规定最多64个字节或字的输入/输出数据区域(模块)。DP从站可使用的输入/输出域(模块)存放在设备描述文件(GSD文件)中。在组态此DP从站时它们将由组态工具推荐给用户。 (3) 诊断数据(Slave_Diag)。 在启动阶段,DP主站使用请求诊断数据来检查DP从站是否存在以及是否准备好接收参数信息。 (4) 用户数据(Data_Exchange)。 DP从站在验证接收到的参数和配置信息无误且符合主站要求后,会发送诊断数据,表明已准备好周期性地交换用户数据。此后,DP主站与从站将开始交换配置的用户数据。期间,DP从站只响应为其定义参数并进行配置的特定DP主站的Data_Exchange请求帧,而拒绝其他所有非指定的用户数据请求,确保仅传输关键的相关数据。 DP主站与DP从站循环交换用户数据如图523所示。DP从站报告当前的诊断中断如图524所示。 图523DP主站与DP从站循环交换用户数据 图524DP从站报告当前的诊断中断 在图524中,DP从站可以使用将应答时的报文服务级别从低优先权改变为高优先权来告知DP主站当前的诊断中断或现有的状态信息。然后,DP主站在诊断报文中作出一个由DP从站发来的实际诊断或状态信息请求。在获取诊断数据之后,DP从站和DP主站返回到交换用户数据状态。使用请求/响应报文,DP主站与DP从站可以双向交换最多244B的用户数据。 5.5.4设备描述(GSD)文件 PROFIBUS设备具有不同的性能特征,特性的不同在于现有功能(即I/O信号的数量和诊断信息)的不同或可能的总线参数,如波特率和时间的监控不同。这些参数对每种设备类型和每家生产厂商来说均各有差别,为达到PROFIBUS简单的即插即用配置,这些特性均在电子数据单中具体说明,有时称为设备描述文件。标准化的GSD数据将通信扩大到操作员控制一级,使用基于GSD的组态工具可将不同厂商生产的设备集成在一个总线系统中。 GSD以一种准确定义的格式对一种设备类型的特性给出了全面而明确的描述。GSD文件由生产厂商分别针对每一种设备类型准备并以设备数据库清单的形式提供给用户,这种明确定义的文件格式便于读出任何一种PROFIBUSDP设备的设备描述文件,并且在组态总线系统时自动使用这些信息。GSD分为以下3部分。 (1) 总体说明。 包括厂商和设备名称、软硬件版本情况、支持的波特率、可能的监控时间间隔及总线插头的信号分配。 (2) DP主站相关规格。 包括所有只适用于DP主站的参数(例如,可连接的从站的最多台数或加载和卸载能力)。从设备没有这些规定。 (3) 从站的相关规格。 包括与从站有关的所有规定(例如,I/O通道的数量和类型、诊断测试的规格及I/O数据的一致性信息)。 每种类型的DP从站和每种类型的1类DP主站都有一个标识号。主站用此标识号识别哪种类型设备连接后不产生协议的额外开销。主站将所连接的DP设备的标识号与在组态数据中用组态工具指定的标识号进行比较,直到具有正确地址的设备类型连接到总线上后,用户数据才开始传输。这可避免组态错误,从而大大提高安全级别。 5.6PROFIBUS通信用ASIC SIEMENS公司提供的PROFIBUS通信用ASIC主要有DPC31、LSPM2、SPC3、SPC41和ASPC2。 其中一些PROFIBUS通信用ASIC内置Intel 80C31内核CPU; 供电电源有5V或33V; 一些PROFIBUS通信控制器需要外加微控制器; 一些PROFIBUS通信用ASIC不需要外加微控制器,但均支持DP/FMS/PA通信协议中的一种或多种。 由于AMIS Holdings,Inc. 被安森美半导体公司(ON Semiconductor Corporation)收购,PROFIBUS 通信控制器ASPC2、DPC31 STEP C1和SPC3 ASIC的标签已于2009年3月使用新的安森美半导体公司的ON标志代替之前的 AMIS 标志,标签的更改对于部件的功能性和兼容性没有影响。 5.6.1SPC3从站通信控制器 SPC3从站通信控制器具有如下特点: (1) ASIC芯片SPC3是一种用于从站的智能通信芯片,支持PROFIBUSDP协议。 (2) SPC3具有1.5KB的信息报文存储器。 (3) SPC3可独立完成全部 PROFIBUSDP通信功能,这样可加速通信协议的执行,而且可以减少接口模板微处理器中的软件程序。总线存取由硬件驱动,数据传送来自一个15KB的DPRAM。 SPC3从站通信控制器主要技术指标如下: (1) 支持PROFIBUSDP协议。 (2) 最大数据传输速率12Mb/s,可自动检测并调整数据传输速率。 (3) 与80C32、80C166和HC11、HC16系列芯片兼容。 (4) 44引脚的PQFP封装。 (5) 可独立处理 PROFIBUSDP通信协议。 (6) 集成的WDT(Watch Dog Timer)。 (7) 外部时钟接口24MHz或48MHz。 (8) 5VDC供电。 5.6.2ASPC2主站通信控制器 ASPC2主站通信控制器具有如下特点: (1) ASIC芯片ASPC2是一种用于主站的智能通信芯片,支持 PROFIBUSDP和 PROFIBUSFMS协议。通过段耦合器也可接PROFIBUSPA。这种芯片可使可编程序控制器、PC、驱动控制器、人机接口等设备减轻通信任务负担。 (2) ASPC 2采用100引脚的MQFP封装。如果用于本征安全场合,那么还需要一个外界信号转换器(如段耦合器等)才能接到PROFIBUSPA上。 (3) ASPC 2可完成信息报文、地址码、备份数据序列的处理。ASPC 2与相关固态程序可支持PROFIBUSFMS/DP的全部协议。ASPC2可寻址1MB的外部信息报文存储器。总线存取驱动由硬件完成。ASPC2需要一个独立的微处理器和必要的固态程序一起工作。ASPC2可以方便地连接到所有标准类型的微处理器上。 ASPC2主站通信控制器主要技术指标如下: (1) 支持PROFIBUSDP、PROFIBUSFMS和PROFIBUSPA协议。 (2) 最大数据传输速率12Mb/s。 (3) 最多可连接125个主动/被动站点。 (4) 100引脚的MQFP封装。 (5) 16位数据线,2个中断线。 (6) 可寻址1MB的外部信息报文存储器。 (7) 功能支持: Ident、request FDL status、SDN、SDA、SRD、带有分布式数据库的SDR、SM。 (8) 5VDC供电,最大功率损耗0.8W。 5.7PROFIBUSDP从站通信控制器SPC3 SPC3(Serial Peripheral Controller 3)是SIEMENS公司开发的一款专用于PROFIBUSDP从站通信的微控制器。它被设计用于简化从站设备的实现和提高其在PROFIBUSDP网络中的通信效率。 5.7.1SPC3功能简介 SPC3为PROFIBUS智能从站提供了廉价的配置方案,可支持多种处理器。与SPC2相比,SPC3存储器内部管理和组织有所改进,并支持PROFIBUS_DP。 SPC3只集成了传输技术的部分功能,而没有集成模拟功能(RS485驱动器)、FDL(现场总线数据链路,Fieldbus Data Link)传输协议。它支持接口功能、FMA功能和整个DP从站协议。第二层的其余功能(软件功能和管理)需要通过软件来实现。 SPC3内部集成了1.5KB的双口RAM作为SPC3与软件/程序的接口。整个RAM被分为192段,每段8字节。用户寻址由内部MS(Microsequencer)通过基址指针(BasePointer)来实现。基址指针可位于存储器的任何段。所以,任何缓存都必须位于段首。 如果SPC3工作在DP方式下,那么SPC3将自动完成所有的DPSAP的设置。在数据缓冲区生成各种报文(如参数数据和配置数据),为数据通信提供3个可变的缓存器、2个输出、1个输入。通信时经常用到变化的缓存器,因此不会发生任何资源问题。SPC3为最佳诊断提供两个诊断缓存器,用户可存入刷新的诊断数据。在这个过程中,有一个诊断缓存总是分配给SPC3。 总线接口是一种参数化的8位同步/异步接口,可使用各种Intel和Motorola处理器/微处理器。用户可通过11位地址总线直接访问1.5KB的双口RAM或参数存储器。 处理器上电后,程序参数(站地址、控制位等)必须传送到参数寄存器和方式寄存器。 任何时候状态寄存器都能监视MAC的状态。 各种事件(诊断、错误等)都能进入中断寄存器,通过屏蔽寄存器使能,然后通过响应寄存器响应。SPC3有一个共同的中断输出。 看门狗定时器有3种状态: Baud_Search、Baud_Control、Dp_Control。 微顺序控制器(MS)控制整个处理过程。 程序参数(缓存器指针、缓存器长度、站地址等)和数据缓存器包含在内部1.5KB的双口RAM中。 在UART中,并行、串行数据相互转换,SPC3能自动调整波特率。 空闲定时器(Idle Timer)直接控制串行总线的时序。 5.7.2SPC3引脚说明 SPC3为44引脚PQFP封装,引脚说明如表53所示。 表53SPC3引脚说明 引脚引 脚 名 称描述 1XCS片选C32方式: 接VDD C165方式: 片选信号 2XWR/E_Clock写信号/EI_CLOCK 对Motorola总线时序 3DIVIDER设置CLKOUT2/4的分频系数 低电平表示4分频 4XRD/R_W读信号/Read_Write Motorola 5CLK时钟脉冲输入 6VSS地 7CLKOUT2/42或4分频时钟脉冲输出 8XINT/MOT 0=Intel接口 1=Motorola接口 9X/INT中断 10AB10地址总线 C32方式: 0 C165方式: 地址总线 11DB0 12DB1 数据总线C32方式: 数据/地址复用 C165方式: 数据/地址分离 13XDATAEXCHPROFIBUSDP的数据交换状态 14XREADY/XDTACK外部CPU的准备好信号 15DB2 16DB3 数据总线C32方式: 数据地址复用 C165方式: 数据地址分离 17VSS地 18VDD电源 19DB4 20DB5 21DB6 22DB7 数据总线C32方式: 数据地址复用 C165方式: 数据地址分离 23MODE 0=80c166数据地址总线分离; 准备信号 1=80c32数据地址总线复用; 固定定时 24ALE/AS地址锁存使能 C32方式: ALE C165方式: 0 25AB9地址总线 C32方式: 0 C165方式: 地址总线 26TXD串行发送端口 27RTS请求发送 28VSS地 29AB8地址总线 C32方式: 0 C165方式: 地址总线 30RXD串行接收端口 31AB7地址总线 32AB6地址总线 33XCTS清除发送0=发送使能 34XTEST0必须接VDD 35XTEST1必须接VDD 36RESET接CPU RESET 输入 37AB4地址总线 38VSS地 39VDD电源 40AB3地址总线 41AB2地址总线 42AB5地址总线 43AB1地址总线 44AB0地址总线 注意: (1) 所有以X开头的信号均为低电平有效。 (2) VDD=+5V,VSS=GND。 5.7.3SPC3存储器分配 SPC3内部1.5KB双口RAM的分配如表54所示。 表54SPC3内存分配 地址功能 000H处理器参数锁存器/寄存器(22B)内部工作单元 016H组织参数(42B) 040H  5FFHDP缓存器Data In(3)* Data Out(3)** Diagnostics(2) Parameter Setting Data(1) Configuration Data(2) Auxiliary Buffer(2) SSABuffer(1) 注: HW禁止超出地址范围,也就是说,如果用户写入或读取超出存储器末端,用户将得到一个新的地址,即原地址 减去400H。禁止覆盖处理器参数,在这种情况下,SPC3产生一个访问中断。如果由于MS缓冲器初始化有 误导致地址超出范围,也会产生这种中断。 * Date In指数据由PROFIBUS 从站到主站。 ** Date Out指数据由 PROFIBUS 主站到从站。 内部锁存器/寄存器位于前22字节,用户可以读取或写入。一些单元只读或只写,用户不能访问的内部工作单元也位于该区域。 组织参数位于以16H开始的单元,这些参数会影响整个缓存区(主要是DPSAP)的使用。另外,一般参数(站地址、标识号等)和状态信息(全局控制命令等)都存储在这些单元中。 与组织参数的设定一致,用户缓存(UserGenerated Buffer)位于40H开始的单元,所有的缓存器都开始于段地址。 SPC3的整个RAM被划分为192段,每段包括8字节,物理地址是按8的倍数建立的。 1. 处理器参数(锁存器/寄存器) 这些单元为只读或只写,在Motorola方式下SPC3访问00H~07H单元(字寄存器),此时将进行地址交换,也就是高低字节交换。内部参数锁存器分配如表55和表56所示。 表55内部参数锁存器分配(读) 地址 (Intel/Motorola)名称位号说明(读访问) 00H01HInt_Req_Reg 7..0 01H00HInt_Req_Reg 15..8 02H03HInt_Reg 7..0 03H02HInt_Reg 15..8 04H05HStatus_Reg 7..0 05H04HStatus_Reg 15..8 中断控制寄存器 状态寄存器 状态寄存器 06H07H 07H06HReserved保留 08HDin_Buffer_SM 7..0Dp_Din_Buffer_State_Machine缓存器设置 09HNew_DIN_Buffer_Cmd 1..0用户在N状态下得到可用的DP Din缓存器 0AHDOUT_Buffer_SM 7..0DP_Dout_Buffer_State_Machine 缓存器设置 0BHNext_DOUT_Buffer_Cmd 1..0用户在N状态下得到可用的DP Dout缓存器 0CHDIAG_Buffer_SM 3..0DP_Diag_Buffer_State_Machine缓存器设置 0DHNew_DIAG_Buffer_Cmd 1..0SPC3中用户得到可用的DP Diag缓存器 0EHUser_Prm_Data_OK 1..0用户肯定响应Set_Param报文的参数设置数据 0FHUser_Prm_Data_NOK 1..0用户否定响应Set_Param报文的参数设置数据 10HUser_Cfg_Data_OK 1..0用户肯定响应Check_Config报文的配置数据 11HUser_Cfg_Data_NOK 1..0用户否定响应Check_Config报文的配置数据 12HReserved保留 13HReserved保留 14HSSA_Bufferfreecmd用户从SSA缓存器中得到数据并重新使该缓存使能 15HReserved保留 表56内部参数锁存器分配(写) 地址(Intel/Motorola)名称位号说明(写访问) 00H01HInt_Req_Reg7..0 01H00HInt_Req_Reg15..8 02H03HInt_Ack_Reg7..0 03H02HInt_Ack_Reg15..8 04H05HInt_Mask_Reg7..0 05H04HInt_Mask_Reg15..8中断控制寄存器 06H07HMode_Reg0 7..0 07H06HMode_Reg0_S15..8 对每位设置参数 08HMode_Reg1_S7..0 09HMode_Reg1_R7..0 0AHWD Baud Ctrl Val7..0波特率监视基值(root value) 0BHMinTsdr_Val 7..0从站响应前应该等待的最短时间 0CH ODH 0EH保留 0FH 10H 11H 12H 13H 14H 15H 保留 2. 组织参数(RAM) 用户把组织参数存储在特定的内部RAM中,用户可读也可写。组织参数说明如表57所示。 表57组织参数说明 地址 (Intel/Motorola)名称位号说明 16HR_TS_Adr7..0设置SPC3相关从站地址 17H保留默认为0FFH 18H 19HR_User_WD_Value 7..0 19H18HR_User_WD_Value 15..8 16位看门狗定时器的值,DP 方式下监视用户 1AHR_Len_Dout_Buf3个输出数据缓存器的长度 1BHR_Dout_Buf_Ptr1输出数据缓存器1的段基值 1CHR_Dout_Buf_Ptr2输出数据缓存器2的段基值 1DHR_Dout_Buf_Ptr3输出数据缓存器3的段基值 1EHR_Len_Din_Buf3个输入数据缓存器的长度 1FHR_Din_Buf_Ptr1输入数据缓存器1的段基值 20HR_Din_Buf_Ptr2输入数据缓存器2的段基值 21HR_Din_Buf_Ptr3输入数据缓存器3的段基值 22H保留默认为00H 23H保留默认为00H 24HR Len Diag Buf1诊断缓存器1的长度 25HR_Len Diag Buf2诊断缓存器2的长度 26HR_Diag_Buf_Ptr1诊断缓存器1的段基值 27HR_Diag_Buf_Ptr2诊断缓存器2的段基值 28HR_Len_Cntrl Buf1辅助缓存器1的长度,包括控制缓存器,如SSA_Buf、Prm_Buf、Cfg_Buf、Read_Cfg_Buf 29HR_Len_Cntrl_Buf2辅助缓存器2的长度,包括控制缓存器,如SSA_Buf、Prm_Buf、Cfg_Buf、Read_Cfg_Buf 2AHR _Aux _Buf _Sel Aux_buffers1/2可被定义为控制缓存器,如SSA_Buf、Prm_Buf、Cfg_Buf 2BHR_Aux_Buf_Ptr1辅助缓存器1的段基值 2CHR_Aux_Buf_Ptr2辅助缓存器2的段基值 2DHR_Len_SSA_Data在Set _Slave_Address_Buffer中输入数据的长度 2EHR_SSA_Buf_PtrSet _Slave_Address_Buffer的段基值 2FHR_Len_Prm_Data在Set_Param_Buffer中输入数据的长度 30HR_Prm_Buf_PtrSet_Param_Buffer段基值 31HR_Len_Cfg_Data在Check_Config_Buffer中的输入数据的长度 32HR Cfg Buf PtrCheck_Config_Buffer段基值 33HR_Len_Read_Cfg_Data在Get_Config_Buffer中的输入数据的长度 34HR_Read_Cfg_Buf_PtrGet_Config_Buffer段基值 35H保留默认为00H 36H保留默认为00H 37H保留默认为00H 38H保留默认为00H 39HR_Real_No_Add_Change这一参数规定了DP从站地址是否可改变 3AHR_Ident_Low标识号低位的值 3BHR_Ident_High标识号高位的值 3CHR_GC_Command最后接收的Global_Control_Command 3DHR_Len_Spec_Prm_Buf如果设置了Spec_Prm_Buffer_Mode,这一单元定义为参数缓存器的长度 5.7.4PROFIBUSDP接口 下面是DP缓存器结构。 DP_Mode=1时,SPC3 DP方式使能。在这个过程中,下列SAP服务于DP方式。 Default SAP: 数据交换(Write_Read_Data) SAP53: 保留 SAP55: 改变站地址(Set_Slave_Address) SAP56: 读输入(Read_Inputs) SAP57: 读输出(Read_Outputs) SAP58: DP从站的控制命令(Global_Control) SAP59: 读配置数据(Get_Config) SAP60: 读诊断信息(Slave_Diagnosis) SAP61: 发送参数设置数据(Set_Param) SAP62: 检查配置数据(Check_Config) DP从站协议完全集成在SPC3中,并独立执行。用户必须相应地参数化ASIC,处理和响应传送报文。除了Default SAP、SAP56、SAP57和SAP58,其他的SAP一直使能,这4个SAP在DP从站状态机制进入数据交换状态才使能。用户也可以使SAP55无效,这时相应的缓存器指针R_SSA_Buf_Ptr设置为00H。在RAM初始化时已设置过使DDB单元无效。 用户在离线状态下配置所有的缓存器(长度和指针),在操作中除了Dout/Din缓存器长度外,其他的缓存配置不可改变。 用户在配置报文以后(Check_Config),等待参数化时,仍可改变这些缓存器。在数据交换状态下只可接收相同的配置。 输出数据和输入数据都有3个长度相同的缓存器可用,这些缓存器的功能是可变的。一个缓存器分配给D(数据传输),一个缓存器分配给U(用户),第三个缓存器出现在N(Next State)或F(Free State)状态,然而其中一个状态不常出现。 两个诊断缓存器长度可变。一个缓存器分配给D,用于SPC3发送数据; 另一个缓存器分配给U,用于准备新的诊断数据。 SPC3首先将不同的参数设置报文(Set_Slave_Address和Set_Param)和配置报文(Check_Config),读取到辅助缓存1和辅助缓存2中。 与相应的目标缓存器交换数据(SSA缓存器,PRM缓存器,CFG缓存器)时,每个缓存器必须有相同的长度,用户可在R_Aux_Puf_Sel参数单元定义使用哪一个辅助缓存。辅助缓存器1一直可用,辅助缓存器2可选。如果DP报文的数据不同,比如设置参数报文长度大于其他报文,则使用辅助缓存器2(Aux_Sel_Set_Param=1),其他的报文则通过辅助缓存器1读取(Aux_Sel_Set_Param)。如果缓存器太小,那么SPC3将给出“无资源”响应。 用户可用Read_Cfg缓存器读取Get_Config缓存中的配置数据,但二者必须有相同的长度。 在D状态下可从Din缓存器中进行Read_Input_Data操作。在U状态下可从Dout缓存中进行Read_Output_Data操作。 由于SPC3内部只有8位地址寄存器,因此所有的缓存器指针都是8位段地址。访问 RAM时,SPC3将段地址左移3位与8位偏移地址相加(得到11位物理地址)。关于缓存器的起始地址,在这8个字节中是明确规定的。 5.7.5SPC3输入/输出缓冲区的状态 SPC3输入缓冲区有3个,并且长度一样; 输出缓冲区也有3个,长度也一样。输入/输出缓冲区都有3个状态,分别是U、N和D。在同一时刻,各个缓冲区处于不同的状态。SPC3的08H~0BH寄存器单元表明了各个缓冲区的状态,并且表明了当前用户可用的缓冲区。U状态的缓冲区分配给用户使用,D状态的缓冲区分配给总线使用,N状态是U、D状态的中间状态。 SPC3输入/输出缓冲区UDN状态的相关寄存器如下: (1) 寄存器08H(Din_ Buffer_SM 7..0),各个输入缓冲区的状态。 (2) 寄存器09H(New_Din_Buffer_Cmd 1..0),用户通过这个寄存器从N状态下得到可用的输入缓冲区。 (3) 寄存器0AH(Dout_Buffer_SM 7..0),各个输出缓冲区的状态。 (4) 寄存器0BH(Next_Dout_Buffer_Cmd 1..0),用户从最近的处于N状态的输出缓冲区中得到输出缓冲区。 SPC3输入/输出缓冲区UDN状态的转变如图525所示。 图525SPC3输入/输出缓冲区UDN状态的转变 1. 输出数据缓冲区状态的转变 当持有令牌的PROFIBUSDP主站向本地从站发送输出数据时,SPC3在D缓存中读取接收到的输出数据,当SPC3接收到的输出数据没有错误时,就将新填充的缓冲区从D状态转到N状态,并且产生DX_OUT中断,这时用户读取Next_Dout_Buffer_Cmd寄存器,处于N状态的输出缓冲区由N状态变到U状态,用户同时知道哪一个输出缓冲区处于U状态,通过读取输出缓冲区得到当前输出数据。 如果用户程序循环时间短于总线周期时间,也就是说,用户非常频繁地查询Next_Dout_Buffer_Cmd寄存器,那么用户使用Next_Dout_Buffer_Cmd在N状态下得不到新缓存,因此,缓存器的状态将不会发生变化。在12Mb/s数据传输速率的情况下,用户程序循环时间长于总线周期时间,这就有可能使用户在取得新缓存之前,在N状态下能得输出数据,保证了用户能得到最新的输出数据。但是在数据传输速率比较低的情况下,只有在主站得到令牌,并且与本地从站通信后,用户才能在输出缓冲区中得到最新数据,如果从站比较多,输入/输出的字节数又比较多,那么用户得到最新数据通常要花费很长的时间。 用户可以通过读取Dout_Buffer_SM寄存器的状态,查询各个输出缓冲区的状态。共有4种状态: 无(Nil)、Dout_Buf_ptr1~Dout_Buf_ptr3,表明各个输出缓冲区处于什么状态。Dout_Buffer_SM寄存器定义如表58所示。 表58Dout_Buffer_SM寄存器定义 地址位状态值编码 寄存器0AH7 6FX1 X2 5 4UX1 X2 3 2NX1 X2 1 0DX1 X2 X1 X2 0 0: 无 0 1: Dout_Buf_Prt1 1 0: Dout_Buf_Prt2 1 1: Dout_Buf_Prt3 用户读取Next_Dout_Buffer_Cmd寄存器,可得到交换后哪一个缓存处于U状态,即属于用户,或者没有发生缓冲区变化。然后用户可以从处于U状态的输出数据缓冲区中得到最新的输出数据。Next_Dout_Buffer_Cmd寄存器定义如表59所示。 2. 输入数据缓冲区状态的转变 输入数据缓冲区有3个,长度一样(初始化时已经规定),输入数据缓冲区也有3个状态,即U、N和D。同一时刻,3个缓冲区处于不同的状态,即一个缓冲区处于U,一个处于N,一个处于D。处于U状态的缓冲区用户可以使用,并且在任何时候用户都可更新。处于D状态的缓冲区SPC3使用,也就是SPC3将输入数据从处于该状态的缓冲区中发送到主站。 SPC3从D缓存中发送输入数据。在发送以前,处于N状态的输入缓冲区转为D状态,同时处于U状态的输入缓冲区变为N状态,原来处于D状态的输入缓冲区变为U状态,处于D状态的输入缓冲区中的数据发送到主站。 表59Next_Dout_Buffer_Cmd寄存器定义 地址位状态编码 寄存器0BH 70 60 50 40 3U_Buffer_cleared 2State_U_buffer 1 0 Ind_U_buffer 0: U缓冲区包含数据 1: U缓冲区被清除 0: 没有U缓冲区 1: 存在U缓冲区 00: 无 01: Dout_Buf_ptr1 10: Dout_Buf_ptr2 11: Dout_Buf_ptr3 用户可使用U状态下的输入缓冲区,通过读取New_Din_Buffer_Cmd寄存器,用户可以知道哪一个输入缓冲区属于用户。如果用户赋值周期时间短于总线周期时间,将不会发送每次更新的输入数据,只能发送最新的数据。但在12Mb/s传输速率的情况下,用户赋值时间长于总线周期时间,在此时间内,用户可多次发送当前的最新数据。但是在传输速率比较低的情况下,不能保证每次更新的数据能及时发送。用户把输入数据写入处于U状态的输入缓冲区,只有U状态变为N状态,再变为D状态,然后SPC3才能将该数据发送到主站。 用户可以通过读取Din_Buffer_SM寄存器的状态,查询各个输入缓冲区的状态。共有4种值: 无(Nil)、Din_Buf_ptr1~ Din_Buf_ptr 3,表明了各个输入缓冲区处于什么状态。Din_Buffer_SM寄存器定义如表510所示。 表510Din_Buffer_SM寄存器定义 地址位状态值编码 寄存器08H 7 6FX1 X2 5 4UX1 X2 3 2NX1 X2 1 0DX1 X2 X1 X2 0 0: 无 0 1: Din_Buf_Prt1 1 0: Din_Buf_Prt2 1 1: Doin_Buf_Prt3 读取New_Din_Buffer_Cmd寄存器,用户可得到交换后哪一个缓存属于用户。New_Din_Buffer_Cmd寄存器定义如表511所示。 表511New_Din_Buffer_Cmd寄存器定义 地址位状态编码 寄存器09H 70 60 50 40 30 20 1 0 X1 X2 无 X1X2 0 0: Din_Buf_ptr1 0 1: Din_Buf_ptr2 1 0: Din_Buf_ptr3 1 1: 无 5.7.6通用处理器总线接口 SPC3有一个11位地址总线的并行8位接口。SPC3支持基于Intel 的80C51/52(80C32)处理器和微处理器、Motorola的HC11处理器和微处理器,SIEMENS 80C166、Intel x86、Motorola HC16和HC916系列处理器和微处理器。由于Motorola和Intel的数据格式不兼容,SPC3在访问以下16位寄存器(中断寄存器、状态寄存器、方式寄存器0)和16位RAM单元(R_User_Wd_Value)时,会自动进行字节交换。这就使Motorola处理器能够正确读取16位单元的值。通常对于读或写,要通过两次访问完成(8位数据线)。 由于使用了11位地址总线,SPC3不再与SPC2(10位地址总线)完全兼容。然而,SPC2的XINTCI引脚在SPC3的AB10引脚处,且这一引脚至今未用。而SPC3的AB10输入端有一内置下拉电阻。如果SPC3使用SPC2硬件,那么用户只能使用1KB的内部RAM; 否则,AB10引脚必须置于相同的位置。 总线接口单元(BIU)和双口RAM控制器(DPC)控制着SPC3处理器内部RAM的访问。 另外,SPC3内部集成了一个时钟分频器,能产生2分频(DIVIDER=1)或4分频(DIVIDER=0)输出,因此,不需要额外费用就可实现与低速控制器相连。SPC3的时钟脉冲是48MHz。 1. 总线接口单元(BIU) BIU是连接处理器/微处理器的接口,有11位地址总线,是同步或异步8位接口。接口配置由2个引脚(XINT/MOT和MODE)决定,XINT/MOT引脚决定连接的处理器系列(总线控制信号,如XWR、XRD、R_W和数据格式),MODE引脚决定同步或异步。 2. 双口RAM控制器 SPC3内部1.5KB的RAM是单口RAM。然而,由于内部集成了双口RAM控制器,因此允许总线接口和处理器接口同时访问RAM。此时,总线接口具有优先权。从而使访问时间最短。如果SPC3与异步接口处理器相连,则SPC3产生Ready信号。 3. 接口信号 在复位期间,数据输出总线呈高阻状态。微处理器总线接口信号如表512所示。 表512微处理器总线接口信号 名称输入/输出说明 DB(7..0)I/O复位时高阻 AB(10..0)IAB10带下拉电阻 MODEI设置: 同步/异步接口 XWR/E_CLOCKIIntel: 写/Motorola: E_CLK XRD/R_WIIntel: 读/Motorola: 读/写 XCSI片选 ALE/ASIIntel/Motorola: 地址锁存允许 DIVIDERICLKOUT2/4的分频系数2/4 X/INTO极性可编程 XRDY/XDTACKOIntel/Motorola: 准备好信号 CLKI48MHz XINT/MOTI设置: Intel/Motorola方式 CLKOUT2/4O24MHz/12MHz RESETI最少4个时钟周期 5.7.7SP3的UART接口 发送器将并行数据结构转变为串行数据流。在发送第一个字符之前,产生RequesttoSend(RTS)信号,XCTS输入端用于连接调制器。RTS激活后,发送器必须等到XCTS激活后才发送第一个报文字符。 接收器将串行数据流转换成并行数据结构,并以4倍的传输速率扫描串行数据流。为了测试,可关闭停止位(方式寄存器0中DIS_STOP_CONTROL=1或DP的Set_Param_Telegram报文),PROFIBUS协议的一个要求是报文字符之间不允许出现其他状态,SPC3发送器保证满足此规定。通过DIS_START_CONTROL=1(模式寄存器0或DP的Set_Param报文中),关闭起始位测试。 5.7.8PROFIBUSDP接口 PROFIBUS接口数据通过RS485传输,SPC3通过RTS、TXD、RXD引脚与电流隔离接口驱动器相连。PROFIBUSDP的RS485传输接口电路如图526所示。 图526PROFIBUSDP的RS485传输接口电路 PROFIBUS接口是一带有下列引脚的9针D形接插件,下面给出其引脚定义。 引脚1: 悬空。 引脚2: 悬空。 引脚3: B线。 引脚4: 请求发送(RTS)。 引脚5: 5V地(M5)。 引脚6: 5V电源(P5)。 引脚7: 悬空。 引脚8: A线。 引脚9: 悬空。 在图526中,M、2M为不同的电源地,P5、2P5为两组不共地的+5V电源。74HC132为施密特与非门。 5.8主站通信控制器ASPC2与网络接口卡 ASPC2(Advanced Serial Peripheral Controller 2)是针对PROFIBUSDP主站应用设计的通信控制器。它通常用于实现主站设备(如可编程逻辑控制器PLC、工业PC等)与PROFIBUSDP网络之间的高效通信。网络接口卡(NIC)则是连接计算机或其他设备到网络的硬件组件,包括用于PROFIBUSDP网络的专用接口卡。 5.8.1ASPC2介绍 ASPC2是SIEMENS公司生产的主站通信控制器,该通信控制器可以完全处理PROFIBUS EN 50170的第一层和第二层,同时ASPC2还为PROFIBUSDP和使用段耦合器的PROFIBUSPA提供一个主站。 ASPC2通信控制器用作一个DP主站时需要庞大的软件(约64KB),软件使用要有许可证且需要支付费用。 如此高度集成的控制芯片可以用于制造业和过程工程中。 对于可编程控制器、个人计算机、电动机控制器、过程控制系统直至下面的操作员监控系统来说,ASPC2有效地减轻了通信任务。 PROFIBUS ASIC可用于从站应用,连接低级设备(如,控制器、执行器、测量变送器和分散I/O设备)。 1. ASPC2通信控制器的特性 ASPC2通信控制器具有如下特性: (1) 单片支持PROFIBUSDP、PROFIBUSFMS和PROFIBUSPA。 (2) 用户数据吞吐量高。 (3) 支持DP在非常短的反应时间内完成通信。 (4) 所有令牌管理和任务处理。 (5) 与所有普及的处理器类型优化连接,无须在处理器上安排时间帧。 2. ASPC2与主机接口 (1) 处理器接口,可设置为8位/16位,可设置为Intel/Motorola Byte Ordering。 (2) 用户接口,ASPC2可外部寻址1MB作为共享RAM。 (3) 存储器和微处理器可与ASIC连接为共享存储器模式或双口存储器模式。 (4) 在共享存储器模式下,几个ASIC共同工作等价于一个微处理器。 3. 支持的服务 (1) 标识。 (2) 请求FDL状态。 (3) 不带确认发送数据(SDN)广播或多点广播。 (4) 带确认发送数据(SDA)。 (5) 发送和请求数据带应答(SRD)。 (6) SRD带分布式数据库(ISP扩展)。 (7) SM服务(ISP扩展)。 4. 传输速率 ASPC2支持的传输速率为: (1) 9.6kb/s、19.2kb/s、93.75kb/s、187.5kb/s、500kb/s。 (2) 1.5Mb/s、3Mb/s、6Mb/s、12Mb/s。 5. 站点数 (1) 最大期望值127个主站或从站。 (2) 每站64个服务访问点(SAP)及一个默认SAP。 6. 物理设计 采用100引脚的PMQFP封装。 5.8.2CP5611网络接口卡 CP5611是SIEMENS公司推出的网络接口卡,购买时需额外支付软件使用费。CP5611用于工控机连接到PROFIBUS和SIMATIC S7的MPI,同时支持PROFIBUS的主站和从站、PG/OP、S7通信。OPC Server软件包已包含在通信软件产品中,但是需要SOFTNET支持。 1. CP5611网络接口卡主要特点 (1) 不带有微处理器。 (2) 经济的PROFIBUS接口。 (3) OPC作为标准接口。 (4) CP5611是基于PCI总线的PROFIBUSDP 网络接口卡,可以插在PC及其兼容机的PCI总线插槽上,在PROFIBUSDP网络中作为主站或从站使用。 (5) 作为PC上的编程接口,可使用NCM PC和STEP 7软件。 (6) 作为PC上的监控接口,可使用WinCC、Fix、组态王等。 (7) 支持的数据传输速率最大为12Mb/s。 (8) 设计可用于工业环境。 2. CP5611与从站通信的过程 当CP5611作为网络上的主站时,CP5611通过轮询方式与从站进行通信。这就意味着主站要想和从站通信,应首先发送一个请求数据帧,从站得到请求数据帧后,向主站发送一个响应帧。请求帧包含主站给从站的输出数据,如果当前没有输出数据,则向从站发送一个空帧。从站必须向主站发送响应帧,响应帧包含从站给主站的输入数据,如果没有输入数据,则必须发送一个空帧,才完成一次通信。通常按地址增序轮询所有的从站,当与最后一个从站通信完以后,接着再进行下一个周期的通信。这样就保证所有的数据(包括输出数据、输入数据)都是最新的。 主要报文有令牌报文、固定长度没有数据单元的报文、固定长度带数据单元的报文、变数据长度的报文。 5.9PROFIBUSDP从站的设计 如果开发一个比较复杂的智能系统,那么最好选择SPC3。下面介绍采用SPC3进行PROFIBUSDP从站的开发过程。 5.9.1PROFIBUSDP从站的硬件设计 在设计PROFIBUSDP从站的硬件时,使用SPC3作为通信控制器是一种常见的选择,因为它提供了专门的支持,使得从站能够高效地与PROFIBUS网络通信。SPC3通过内置的1.5KB双口RAM与CPU进行数据交换,这种设计允许CPU和PROFIBUSDP网络同时访问双口RAM,而不会相互干扰。 1. SPC3与CPU的接口 (1) 双口RAM地址。SPC3内部的双口RAM为从站提供了数据缓冲区,其地址范围为1000H到15FFH。CPU通过这个地址范围与双口RAM交换数据。 (2) 多种CPU支持。SPC3设计为兼容多种CPU架构,包括Intel、SIEMENS、Motorola等,这意味着它可以通过标准的接口电路与不同类型的CPU连接。 2. 接口电路设计 对于AT89S52微控制器,SPC3的接口电路包括以下几个关键部分。 (1) 数据和控制信号。SPC3与CPU之间的数据交换通过并行接口进行,这通常涉及数据线、地址线和控制线(如读/写信号、中断信号等)。 (2) 光电隔离。为了提高系统的可靠性和抗干扰能力,SPC3与CPU之间的接口可以包括光电隔离部分。这有助于隔离电气噪声和潜在的高电压,保护CPU和SPC3。 (3) RS485驱动。PROFIBUSDP使用RS485作为物理层标准,因此SPC3与网络的连接需要包括RS485驱动电路。这个电路负责将SPC3的通信信号转换为适合在RS485网络上传输的电信号。 3. 设计注意事项 (1) 电源设计。确保为SPC3和CPU提供稳定的电源,可能需要使用电源滤波和稳压电路来提高供电质量。 (2) 布线和布局。在设计PCB时,应该注意信号线的布局,尽量减少长信号线和高速信号线的干扰,特别是在与SPC3和RS485驱动电路的连接中。 (3) 接口保护。在SPC3与CPU的接口电路中加入过电压和过电流保护措施,以防止可能的损坏。 在实际设计中,具体的接口电路和组件选择将取决于所选CPU的具体要求、预期的网络性能以及系统的整体设计目标。设计时,还应考虑到从站设备的最终应用环境,例如,工业现场的电磁兼容性(EMC)要求。 SPC3与AT89S52 CPU的接口电路如图527所示。 在图527中,光电隔离及RS485驱动部分可采用如图526所示电路。 SPC3中双口RAM的地址为1000H~15FFH。 图527SPC3与AT89S52 CPU的接口电路 5.9.2PROFIBUSDP从站的软件设计 SPC3的软件开发难点是在系统初始化时对其64字节的寄存器进行配置,这个工作必须与设备的GSD文件相符,否则将会导致主站对从站的误操作。这些寄存器包括输入、输出、诊断、参数等缓存区的基地址以及大小等,用户可在器件手册中找到具体的定义。当设备初始化完成后,芯片开始进行波特率扫描,为了解决现场环境与电缆延时对通信的影响,SIEMENS所有的PROFIBUS ASIC芯片都支持波特率自适应,当SPC3加电或复位时,它将自己的波特率设置为最高,如果设定的时间内没有接收到3个连续完整的包,则将它的波特率调低一个档次并开始新的扫描,直到找到正确的波特率为止。当SPC3正常工作时,它会进行波特率跟踪,如果接收到一个给自己的错误包,则会自动复位并延时一个指定的时间再重新开始波特率扫描,同时它还支持对主站回应超时的监测。当主站完成所有轮询后,如果还有多余的时间,那么它将开始通道维护和新站扫描,这时它将对新加入的从站进行参数化,并对其进行预定的控制。 SPC3完成了物理层和数据链路层的功能,与数据链路层的接口是通过服务存取点来完成的,SPC3支持10种服务,这些服务大部分都由SPC3来自动完成,用户只能通过设置寄存器来影响它。SPC3是通过中断与单片微控制器进行通信的,但是单片微控制器的中断显然不够用,所以SPC3内部有一个中断寄存器,在接收到中断后再从该寄存器查中断号以确定具体操作。 在开发包4中有SPC3接口单片微控制器的C源代码(Keil C51编译器),用户只要对其做少量改动就可在项目中运用。从站的代码共有4个文件,分别是Userspc3.c、Dps2spc3.c、Intspc3.c、Spc3dps2.h,其中,Userspc3.c是用户接口代码,所有的工作就是找到标有example的地方将用户自己的代码放进去,其他接口函数源文件和中断源文件都不必改。如果认为6KB的通信代码太大,则可以根据SPC3的器件手册编写自己的程序,当然这样是比较花时间的。 在开发完从站后一定要记住GSD文件要与从站类型相符,比方说,从站是不许在线修改从站地址的,如果GSD文件中: Set_Slave_Add_supp=1(意思是支持在线修改从站地址) 那么在系统初始化时,主站将参数化信息送给从站,从站的诊断包则会返回一个错误提示“Diag.Not_Supported Slave doesnt support requested function”。 PROFIBUSDP从站设备通常是传感器、执行器或其他工业设备,它们通过PROFIBUS网络与控制系统(如PLC)进行数据通信。在设计PROFIBUSDP从站的软件时,需要考虑以下几个关键方面。 1. 理解PROFIBUSDP协议 (1) 协议层次: 熟悉PROFIBUSDP的OSI七层模型,尤其是数据链路层和应用层。 (2) 通信模式: 了解PROFIBUSDP支持的通信模式,如DPV0(标准通信)、DPV1(循环数据交换以外的通信,如参数读取/写入)、DPV2(等时性通信)。 (3) 地址配置: 了解如何配置从站地址,这通常在设备的硬件上或通过软件实现。 2. 设计从站应用程序接口(API) (1) 数据交换: 设计API以便于应用程序读取和写入过程数据。过程数据是从站与主站之间交换的实时数据。 (2) 参数化和诊断: 提供接口以支持从站的参数化(如配置或设置设备参数)和诊断信息的读取(如设备状态或错误代码)。 3. 实现PROFIBUSDP通信堆栈 (1) 硬件抽象层(HAL): 设计用于与从站硬件接口进行交互的底层驱动程序,如串行通信接口。 (2) 协议栈实现: 实现PROFIBUSDP协议栈,包括数据链路层和应用层的处理。可以选择使用现成的协议栈实现或根据PROFIBUS标准自行开发。 (3) 数据映射: 实现应用数据与PROFIBUSDP过程数据之间的映射。确保从站能够正确地解析来自主站的数据,并将应答数据格式化后发送回主站。 4. 设备描述文件(GSD文件) 创建一个GSD(General Station Description)文件,该文件是一个描述从站设备功能和通信特性的标准化文件。主站使用这个文件来识别从站设备并进行正确的配置。 5. 测试和调试 (1) 测试工具: 使用专门的PROFIBUS分析工具进行通信测试和故障诊断。 (2) 模拟和实际测试: 先在模拟环境中测试从站软件的通信功能,然后在实际的PROFIBUS网络中进行测试,以验证从站的性能和稳定性。 设计PROFIBUSDP从站软件需要深入理解PROFIBUSDP协议、精心设计软件架构,并进行充分的测试。通过遵循这些步骤,可以确保从站设备能够高效、可靠地与PROFIBUS网络中的其他设备通信。 习题 1. PROFIBUS现场总线由哪几部分组成? 2. PROFIBUS现场总线有哪些主要特点? 3. PROFIBUSDP现场总线有哪几个版本? 4. 说明PROFIBUSDP总线系统的组成结构。 5. 简述PROFIBUSDP系统的工作过程。 6. PROFIBUSDP的物理层支持哪几种传输介质? 7. 画出PROFIBUSDP现场总线的RS485总线段结构。 8. 说明PROFIBUSDP用户接口的组成。 9. 什么是GSD文件?它主要由哪几部分组成? 10. PROFIBUSDP协议的实现方式有哪几种? 11. SPC3与INTEL总线CPU接口时,其XINT/MOT和MODE引脚如何配置? 12. SPC3是如何与CPU接口的? 13. CP5611板卡的功能是什么? 14. DP从站初始化阶段的主要顺序是什么?