最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

PROFIBUS-DP知识

IT圈 admin 48浏览 0评论

2024年4月6日发(作者:荀静槐)

什么是PROFIBUS-DP

在有的电厂或化工厂中应用的控制系统是和利时的,和利时控制系统的控制网采用

Profibus-DP,Profibus-DP工业现场总线与自动化系统各个 I/O 模块及智能设备连接通

讯,实时、快速、高效的完成过程或现场通讯任务。而且我们都在使用,所以有必要了解

一下

什么是PROFIBUS-DP。

1. PROFIBUS-DP 是目前欧洲乃至全球应用最广泛的总线系统, 安装简单、 拓

扑结构多样、 易于实现冗余、通信实时可靠、功能比较完善,卓越的性能使得它适用于各

种工业自动化领域。随着 PROFIBUS-DP 控制系统在我国越来越广泛的应用,将原有的不

符合 DP 标准的设备连接到 PROFIBUS-DP 现场总线网络中,就需要开发 DP 通讯转换

接口。因此,进行 DP 通讯转换接口的开发是很有必要的。本文主要讨论采用 SPC3 通

信协议芯片实现 DP 通讯转换接口的硬件和软件。

2. PROFIBUS-DP 现场总线

2.1 PROFIBUS-DP 基本特性

PROFIBUS-DP 用于现场级的高速数据传输,中央控制器(如 PLC/PC)通过串行连

接与分散的现场设备(如 I/O、驱动器和阀门及测量变送器)进行通信。中央控制器(主

站)期的读取从站的输入信息并周期的向从站发送输出信息,除周期性数据传输外,

PROFIBUS-DP 还提供智能化设备所需的非周期通讯以进行组态、诊断和报警处理。

PROFIBUS-DP 具有快速、即插即用、高效低成本等优点。

2.2 PROFIBUS-DP 总线拓扑

PROFIBUS-DP 系统有两种总线拓扑结构:一种是 RS-485,采用屏蔽双绞线,拓扑

结构为总线型,通信速率为 9.6Kbps~12Mbps;另一种是采用光纤,用于电磁兼容性要求

高和长距要求的场合。

2.3 PROFIBUS-DP 总线协议

PROFIBUS-DP 协议根据 ISO7498 国际标准以开放系统互联网络 OSI 参考模型为

基础, 用了参考模型的第 1 层物理层,第 2 层数据链路层和用户自己定义的用户接口

层,第 3 层到第 7 层未使用;这种精简的结构确保了快速、高效的数据传输。物理层定义

了物理传输特性;数据链路层定义了总线存取协议,直接数据链路映像程序 DDLM 提供对

第 2 层的访问;用户接口规定了 PROFIBUS-DP 设备的应用功能, 以及各种类型

的系统和设备的行为特性。PROFIBUS-DP 总线存取协议,主站之间采用令牌传递方

式,主站与从站之间采用主从方式。令牌传递程序保证每个主站在一个确切规定的时间内

得到总线存取权(令牌),在 PROFIBUS 中,令牌传递仅在各主站之间进行。 主站得到

令牌时可与从站通信, 每个主站均可向从站发送或读取信息。 因此, 有 3 种系统配置:

纯主-从系统、纯主-主系统、混合系统。系统中相应地使用令牌传递方式和主-从方式

完成数据通信。

3. PROFIBUS-DP 通讯转换接口的开 发

3.1 硬件设计

在接口电路的设计中主要有两种方法: 一是使用微处理器利用软件来模拟

PROFIBUS 现场总线协议。 此设计的成本很低,但需要充分了解 PROFIBUS-DP 协议和

运行机制,软件编程工作量大,可靠性不易保证,通信速度也受到限制。二是使用

PROFIBUS 专用协议芯片 ASIC。此设计的成本较高,技术指标高,自主性高,只需了解

ASIC 的工作原理。在本次通讯接口的设计中采用的是第二种方法,使用的是 ASIC 结合

微处理器来完成设计。

为使 PROFIBUS-DP 接口实现简单、方便,达到快速提供产品的目的,采用西门子公

司的专用通信协议芯片 SPC3 完成 PROFIBUS-DP 总线的协议。SPC3 集成了完整的

PROFIBUS-DP 协议,能自动检测总线的波特率从 9.6Kbps 到 12Mbps,集成了 1.5KB

的双口 RAM,它本身具有地址锁存和片选功能,上电后自动执行 PROFIBUS-DP 的从站

状态机。SPC3 内部 1.5KB 双口 RAM 地址空间为 00H~5FFH, 以 8 个字节为一个

单元 (段) , 分成 192 段 (0~191)。按功能可分为三个区域:00H~15H 为处理

器参数区,包括工作模式寄存器、从站最小延迟时间寄存器、内部集成看门狗定时器寄存

器、用于中断的寄存器以及状态寄存器等;16H~3FH 为组织参数区, 用于设置 DP 缓冲

区中各个缓冲块(BUF)的指针(首地址)和长度,并且这些设置必须在 SPC3 的离线状

态下完成;40H~5FFH 为 DP 缓冲区,是 DP 数据的缓冲区,包括 3 个输入数据 BUF、

3 个输出数据 BUF、2 个诊断 BUF、2 个辅助 BUF、设置参数 BUF、通信接口配置 BUF

和可读通信接口配置 BUF 等。SPC3 内部集成一个看门狗定时器,操作于三种不同的状

态:波特率监测、波特率控制和 DP 控制。内部的异步串行收发器(UART)实现串并数

据流的相互转换,空闲定时器控制串行总线电缆上的时序微序列器(MS,

microsequencer)控制整个 SPC3 的工作过程。

PROFIBUS-DP 通讯转换接口采用 89C52 微处理器作为中央处理器, DP 接口芯片

采用 SPC3。 89C52负责将现场采集的信号进行处理、 分析和分类, 然后通过SPC3

传送到PROFIBUS-DP总线, 同时监测SPC3,接收 DP 主站送来的指令和数据,并进

行相应的操作。电路结构示意图如图 1 所示。

图 1 电路结构示意图

图 2 PROFIBUS-DP 状态机

89C52 微处理器扩展了 32KB 的数据存储器(RAM),时钟信号是通过 SPC3 分频

得到的,外围电路还包括了带 EEPROM 的看门狗,模数(A/D)转换、数模(D/A)转

换、DI/DO 接口和数码显示电路。其中,EEPROM 主要用于存放从站地址、ID 号等配

置信息;数码显示电路主要用于显示一些从站信息;而模数A/D)转换、数模(D/A)转换、

DI/DO 接口使通讯转换接口能够胜任 AI、AO、DI、DO 等多方面工作。

PROFIBUS-DP 一般采用 RS-485 传输技术,电缆采用屏蔽双绞线,能够较好地改善

电磁兼容性,传输速率为 9.6Kbps~12Mbps。连接采用符合 PROFIBUS-DP 开放标准

的 9 针 D 型插头,在不带中继时,每分段可以连接 32 个站;在使用中继时,可以扩展

到 127 个站,包括中继站。当信号在总线上传输时,若发生阻抗不连续,将形成信号反

射,导致传输信号畸变,因此在传输线的末端,需要加终端电阻来消除这种阻抗不连续,

所加电阻阻值应尽量接近传输线的特性阻抗。为消除来自零线的干扰,在 SPC3 和

RS-485 收发器之间须加光耦隔离,为提高传输速率,应尽量选择高速光耦合 RS-485 收

发器,本设计采用 HCPL7720 高

速光耦和 SN75ALS176 总线收发器。

3.2 软件设计

软件设计是开发 PROFIBUS-DP 通讯转换接口的一个重要环节,也是其难点所在。开

发者必须了解PROFIBUS-DP 协议,熟悉 SPC3 芯片的工作原理和状态机原理,熟知

SPC3 的各种 DP 服务。PROFIBUS-DP 的状态机描述 DP 从站在每种情况下的行为以

保证它符合一致性,SPC3 内部集成了状态机,用户对状态机的控制是很有限的。

PROFIBUS-DP 状态机如图 2 所示。各个椭圆表示不同的状态,带箭头的连线表示状态

间的转换,而连线上的文字表示状态的转换所需满足的条件。在 POWER_ON 状态, 从

站能从二类主站接收 Set_Slave_Address 报文来改变它的地址, 然后从站进入

Wait_Prm 状态,等待参数化,此状态从站还可以接受 Get_Cfg,Slave_ Diag 报文。参

数化完成后,从站进入 Wait_Cfg 状态,等待 Check_Cfg 报文,另外还可以接收

Slave_Diag,Set_Prm ,Get_Cfg报文。如果 Check_Cfg 完成后,从站将进入 Data_Exch

状态,进行数据通信。此时从站还可接收Writing_Outputs,Reading_Inputs,

Gloable_Control,Slave_Diag,Chk_Diag,Get_Cfg 报文,若组态和数据交换不成功,就

会返回到参数化阶段。Wait_Prm 在对从站进行组态时,必须要编写它的 GSD 文

件。GSD 文件是设备数据库文件,描述 PROFIBUS 设备具有的性能特征。GSD 文

件包括三个部分:总体说明(厂商和设备名称、软硬件版本、支持的波特率等)、DP 主设

备相关的规范(如可连接从设备的最多台数或卸载能力) 、 从设备相关的规范 (如 I/O

通道的数量和类型、 诊断测试的规格及 I/O 数据的一致性信息) 。标准化的 GSD 数据

将通信扩大到操作员控制一级, 使用基于 GSD 的组态工具可将不同厂商生产的设备集成

在一个总线系统中,简单,用户界面友好。SPC3 集成了完整的 PROFIBUS-DP 协议,能

独立地处理 PROFIBUS-DP 协议的所有通信任务,从而大大减轻微处理器的负载,保证系

统的通信速度和数据交换的可靠性。微处理器的主要任务是根据 SPC3 产生的中断,对

SPC3 接收到的主站发送的输出数据进行转存,组织需通过 SPC3 发送给主站的数据,并

根据要求组织外部诊断等。PROFIBUS-DP 通信的服务存取点(SAP)由 SPC3 自动建立,

各种报文信息呈现在用户面前的是不同 BUF 的内部数据。用户可以通过此总线接口访问

这些内部数据。主程序流程图如图 3 所示,其中 SPC3 的初始化包括设置 SPC3 允许的

中断,写入从站识别号和地址,

设置 SPC3 方式寄存器,设置诊断缓冲区、参数缓冲区、配置缓冲区、地址缓冲区、

初始长度,并根据以上初始值求出各个缓冲区的指针及辅助缓冲区的指针,根据传输的数

据长度确定输出缓冲区及指针(在赋各缓冲区指针变量值时,指针值是段序号)。中断程序

流程图如图 4 所示,主要用来处理 PRM 报文、CFG 报文和 SSA 报文。

用汇编语言编写的部分初始化程序如下:

MOV DPTR,#R_DIAG_BUF_PTR1 ; 如果 SPC3 离线,初始化 SPC3

MOV A,#D_DIAG_BUF_PTR1

MOVX @DPTR,A; 诊断缓冲区指针

INC DPTR

MOV A,#D_DIAG_BUF_PTR2

MOVX @DPTR,A

MOV DPTR,#R_CFG_BUF_PTR ; 配置缓冲区指针

MOV A,#D_CFG_BUF_PTR

MOVX @DPTR,A

MOV DPTR,#R_READ_CFG_BUF_PTR

2024年4月6日发(作者:荀静槐)

什么是PROFIBUS-DP

在有的电厂或化工厂中应用的控制系统是和利时的,和利时控制系统的控制网采用

Profibus-DP,Profibus-DP工业现场总线与自动化系统各个 I/O 模块及智能设备连接通

讯,实时、快速、高效的完成过程或现场通讯任务。而且我们都在使用,所以有必要了解

一下

什么是PROFIBUS-DP。

1. PROFIBUS-DP 是目前欧洲乃至全球应用最广泛的总线系统, 安装简单、 拓

扑结构多样、 易于实现冗余、通信实时可靠、功能比较完善,卓越的性能使得它适用于各

种工业自动化领域。随着 PROFIBUS-DP 控制系统在我国越来越广泛的应用,将原有的不

符合 DP 标准的设备连接到 PROFIBUS-DP 现场总线网络中,就需要开发 DP 通讯转换

接口。因此,进行 DP 通讯转换接口的开发是很有必要的。本文主要讨论采用 SPC3 通

信协议芯片实现 DP 通讯转换接口的硬件和软件。

2. PROFIBUS-DP 现场总线

2.1 PROFIBUS-DP 基本特性

PROFIBUS-DP 用于现场级的高速数据传输,中央控制器(如 PLC/PC)通过串行连

接与分散的现场设备(如 I/O、驱动器和阀门及测量变送器)进行通信。中央控制器(主

站)期的读取从站的输入信息并周期的向从站发送输出信息,除周期性数据传输外,

PROFIBUS-DP 还提供智能化设备所需的非周期通讯以进行组态、诊断和报警处理。

PROFIBUS-DP 具有快速、即插即用、高效低成本等优点。

2.2 PROFIBUS-DP 总线拓扑

PROFIBUS-DP 系统有两种总线拓扑结构:一种是 RS-485,采用屏蔽双绞线,拓扑

结构为总线型,通信速率为 9.6Kbps~12Mbps;另一种是采用光纤,用于电磁兼容性要求

高和长距要求的场合。

2.3 PROFIBUS-DP 总线协议

PROFIBUS-DP 协议根据 ISO7498 国际标准以开放系统互联网络 OSI 参考模型为

基础, 用了参考模型的第 1 层物理层,第 2 层数据链路层和用户自己定义的用户接口

层,第 3 层到第 7 层未使用;这种精简的结构确保了快速、高效的数据传输。物理层定义

了物理传输特性;数据链路层定义了总线存取协议,直接数据链路映像程序 DDLM 提供对

第 2 层的访问;用户接口规定了 PROFIBUS-DP 设备的应用功能, 以及各种类型

的系统和设备的行为特性。PROFIBUS-DP 总线存取协议,主站之间采用令牌传递方

式,主站与从站之间采用主从方式。令牌传递程序保证每个主站在一个确切规定的时间内

得到总线存取权(令牌),在 PROFIBUS 中,令牌传递仅在各主站之间进行。 主站得到

令牌时可与从站通信, 每个主站均可向从站发送或读取信息。 因此, 有 3 种系统配置:

纯主-从系统、纯主-主系统、混合系统。系统中相应地使用令牌传递方式和主-从方式

完成数据通信。

3. PROFIBUS-DP 通讯转换接口的开 发

3.1 硬件设计

在接口电路的设计中主要有两种方法: 一是使用微处理器利用软件来模拟

PROFIBUS 现场总线协议。 此设计的成本很低,但需要充分了解 PROFIBUS-DP 协议和

运行机制,软件编程工作量大,可靠性不易保证,通信速度也受到限制。二是使用

PROFIBUS 专用协议芯片 ASIC。此设计的成本较高,技术指标高,自主性高,只需了解

ASIC 的工作原理。在本次通讯接口的设计中采用的是第二种方法,使用的是 ASIC 结合

微处理器来完成设计。

为使 PROFIBUS-DP 接口实现简单、方便,达到快速提供产品的目的,采用西门子公

司的专用通信协议芯片 SPC3 完成 PROFIBUS-DP 总线的协议。SPC3 集成了完整的

PROFIBUS-DP 协议,能自动检测总线的波特率从 9.6Kbps 到 12Mbps,集成了 1.5KB

的双口 RAM,它本身具有地址锁存和片选功能,上电后自动执行 PROFIBUS-DP 的从站

状态机。SPC3 内部 1.5KB 双口 RAM 地址空间为 00H~5FFH, 以 8 个字节为一个

单元 (段) , 分成 192 段 (0~191)。按功能可分为三个区域:00H~15H 为处理

器参数区,包括工作模式寄存器、从站最小延迟时间寄存器、内部集成看门狗定时器寄存

器、用于中断的寄存器以及状态寄存器等;16H~3FH 为组织参数区, 用于设置 DP 缓冲

区中各个缓冲块(BUF)的指针(首地址)和长度,并且这些设置必须在 SPC3 的离线状

态下完成;40H~5FFH 为 DP 缓冲区,是 DP 数据的缓冲区,包括 3 个输入数据 BUF、

3 个输出数据 BUF、2 个诊断 BUF、2 个辅助 BUF、设置参数 BUF、通信接口配置 BUF

和可读通信接口配置 BUF 等。SPC3 内部集成一个看门狗定时器,操作于三种不同的状

态:波特率监测、波特率控制和 DP 控制。内部的异步串行收发器(UART)实现串并数

据流的相互转换,空闲定时器控制串行总线电缆上的时序微序列器(MS,

microsequencer)控制整个 SPC3 的工作过程。

PROFIBUS-DP 通讯转换接口采用 89C52 微处理器作为中央处理器, DP 接口芯片

采用 SPC3。 89C52负责将现场采集的信号进行处理、 分析和分类, 然后通过SPC3

传送到PROFIBUS-DP总线, 同时监测SPC3,接收 DP 主站送来的指令和数据,并进

行相应的操作。电路结构示意图如图 1 所示。

图 1 电路结构示意图

图 2 PROFIBUS-DP 状态机

89C52 微处理器扩展了 32KB 的数据存储器(RAM),时钟信号是通过 SPC3 分频

得到的,外围电路还包括了带 EEPROM 的看门狗,模数(A/D)转换、数模(D/A)转

换、DI/DO 接口和数码显示电路。其中,EEPROM 主要用于存放从站地址、ID 号等配

置信息;数码显示电路主要用于显示一些从站信息;而模数A/D)转换、数模(D/A)转换、

DI/DO 接口使通讯转换接口能够胜任 AI、AO、DI、DO 等多方面工作。

PROFIBUS-DP 一般采用 RS-485 传输技术,电缆采用屏蔽双绞线,能够较好地改善

电磁兼容性,传输速率为 9.6Kbps~12Mbps。连接采用符合 PROFIBUS-DP 开放标准

的 9 针 D 型插头,在不带中继时,每分段可以连接 32 个站;在使用中继时,可以扩展

到 127 个站,包括中继站。当信号在总线上传输时,若发生阻抗不连续,将形成信号反

射,导致传输信号畸变,因此在传输线的末端,需要加终端电阻来消除这种阻抗不连续,

所加电阻阻值应尽量接近传输线的特性阻抗。为消除来自零线的干扰,在 SPC3 和

RS-485 收发器之间须加光耦隔离,为提高传输速率,应尽量选择高速光耦合 RS-485 收

发器,本设计采用 HCPL7720 高

速光耦和 SN75ALS176 总线收发器。

3.2 软件设计

软件设计是开发 PROFIBUS-DP 通讯转换接口的一个重要环节,也是其难点所在。开

发者必须了解PROFIBUS-DP 协议,熟悉 SPC3 芯片的工作原理和状态机原理,熟知

SPC3 的各种 DP 服务。PROFIBUS-DP 的状态机描述 DP 从站在每种情况下的行为以

保证它符合一致性,SPC3 内部集成了状态机,用户对状态机的控制是很有限的。

PROFIBUS-DP 状态机如图 2 所示。各个椭圆表示不同的状态,带箭头的连线表示状态

间的转换,而连线上的文字表示状态的转换所需满足的条件。在 POWER_ON 状态, 从

站能从二类主站接收 Set_Slave_Address 报文来改变它的地址, 然后从站进入

Wait_Prm 状态,等待参数化,此状态从站还可以接受 Get_Cfg,Slave_ Diag 报文。参

数化完成后,从站进入 Wait_Cfg 状态,等待 Check_Cfg 报文,另外还可以接收

Slave_Diag,Set_Prm ,Get_Cfg报文。如果 Check_Cfg 完成后,从站将进入 Data_Exch

状态,进行数据通信。此时从站还可接收Writing_Outputs,Reading_Inputs,

Gloable_Control,Slave_Diag,Chk_Diag,Get_Cfg 报文,若组态和数据交换不成功,就

会返回到参数化阶段。Wait_Prm 在对从站进行组态时,必须要编写它的 GSD 文

件。GSD 文件是设备数据库文件,描述 PROFIBUS 设备具有的性能特征。GSD 文

件包括三个部分:总体说明(厂商和设备名称、软硬件版本、支持的波特率等)、DP 主设

备相关的规范(如可连接从设备的最多台数或卸载能力) 、 从设备相关的规范 (如 I/O

通道的数量和类型、 诊断测试的规格及 I/O 数据的一致性信息) 。标准化的 GSD 数据

将通信扩大到操作员控制一级, 使用基于 GSD 的组态工具可将不同厂商生产的设备集成

在一个总线系统中,简单,用户界面友好。SPC3 集成了完整的 PROFIBUS-DP 协议,能

独立地处理 PROFIBUS-DP 协议的所有通信任务,从而大大减轻微处理器的负载,保证系

统的通信速度和数据交换的可靠性。微处理器的主要任务是根据 SPC3 产生的中断,对

SPC3 接收到的主站发送的输出数据进行转存,组织需通过 SPC3 发送给主站的数据,并

根据要求组织外部诊断等。PROFIBUS-DP 通信的服务存取点(SAP)由 SPC3 自动建立,

各种报文信息呈现在用户面前的是不同 BUF 的内部数据。用户可以通过此总线接口访问

这些内部数据。主程序流程图如图 3 所示,其中 SPC3 的初始化包括设置 SPC3 允许的

中断,写入从站识别号和地址,

设置 SPC3 方式寄存器,设置诊断缓冲区、参数缓冲区、配置缓冲区、地址缓冲区、

初始长度,并根据以上初始值求出各个缓冲区的指针及辅助缓冲区的指针,根据传输的数

据长度确定输出缓冲区及指针(在赋各缓冲区指针变量值时,指针值是段序号)。中断程序

流程图如图 4 所示,主要用来处理 PRM 报文、CFG 报文和 SSA 报文。

用汇编语言编写的部分初始化程序如下:

MOV DPTR,#R_DIAG_BUF_PTR1 ; 如果 SPC3 离线,初始化 SPC3

MOV A,#D_DIAG_BUF_PTR1

MOVX @DPTR,A; 诊断缓冲区指针

INC DPTR

MOV A,#D_DIAG_BUF_PTR2

MOVX @DPTR,A

MOV DPTR,#R_CFG_BUF_PTR ; 配置缓冲区指针

MOV A,#D_CFG_BUF_PTR

MOVX @DPTR,A

MOV DPTR,#R_READ_CFG_BUF_PTR

发布评论

评论列表 (0)

  1. 暂无评论