3. PROFIBUS DP基础与ACS变频器数据模型

PROFIBUS DP(Decentralized Periphery)是ABB ACS系列变频器接入现场总线时最常用的协议之一。理解它,不能只停留在“接上线就能通”的层面,而要同时看清三件事:DP报文在物理线上到底长什么样、循环数据交换是如何按周期自动完成的、以及ABB传动侧的参数与过程数据对象(PZD)之间是怎样一一映射的。这三者构成了ACS变频器PROFIBUS集成的底层逻辑。

一、DP报文结构:从帧头到数据区的完整解剖

PROFIBUS DP采用RS-485物理层,报文以帧为单位传输。一个典型的DP数据帧由以下几个字段顺序组成:

  • SD(Start Delimiter):起始定界符,标识帧的开始。无数据字段的固定长度帧用0x10,有数据字段的变长帧用0x68。
  • LE(Length):数据长度字节,表示后续数据区的字节数,范围0~246。
  • LEr:重复的长度字节,用于校验。
  • SD2:第二个起始定界符,固定为0x68。
  • DA(Destination Address):目标站地址,7位地址加1位方向位。
  • SA(Source Address):源站地址,格式同DA。
  • FC(Function Code):功能码,决定报文类型,如请求、响应、诊断等。
  • Data Unit:数据单元,承载实际的过程数据或参数数据。
  • FCS(Frame Check Sequence):帧校验序列,对DA、SA、FC、Data Unit做模256求和。
  • ED(End Delimiter):结束定界符,固定为0x16。

对于ACS变频器集成而言,最需要关注的是Data Unit部分。在循环数据交换中,Data Unit直接承载PZD(过程数据)和PKW(参数数据)。PZD用于实时控制与状态反馈,PKW用于读写传动参数。两者在报文中的排列顺序和长度由GSD文件及主站配置决定。

DP报文中的地址字段决定了主站与从站之间的寻址关系。ACS变频器作为从站,其站地址通常通过参数或拨码开关设定,必须与主站组态中的地址一致,否则报文无法被正确接收。

二、循环数据交换原理:周期性的“请求—响应”

PROFIBUS DP的核心机制是循环数据交换。主站按照预设的扫描周期,依次向各个从站发送请求报文,从站收到后立即返回响应报文。这个过程不需要从站主动发起通信,完全由主站调度。

对于ACS变频器,循环交换的数据主要包括:

  • 控制字(STW):主站发给变频器的命令字,如启动、停止、使能、复位等。
  • 状态字(ZSW):变频器返回给主站的状态字,如运行就绪、运行使能、故障、报警等。
  • 给定值(PZD2):主站发给变频器的速度或转矩给定。
  • 实际值(PZD3):变频器返回的实际速度、电流、转矩等。

循环交换的周期通常在1ms到几十毫秒之间,具体取决于主站配置和总线负载。ACS变频器内部有一个通信接口芯片(如SPC3或类似ASIC),负责处理DP帧的接收、校验和响应。当主站请求到达时,接口芯片将接收到的PZD数据写入传动侧的映射区,同时将传动侧准备好的状态字和实际值装入响应帧返回。

这里有一个关键点:循环数据交换是“透明”的。主站并不关心中间经过了多少层,它只看到自己发出的控制字和给定值被变频器接收,并收到对应的状态字和实际值。而变频器内部,这些数据需要经过参数映射才能作用于实际的电机控制。

三、ABB传动参数与过程数据对象的映射关系

ABB ACS变频器的参数体系非常庞大,但用于PROFIBUS循环通信的,主要是参数组50(现场总线适配器)和参数组51(现场总线数据)。这些参数决定了PZD对象如何与传动内部的功能块连接。

以ACS880为例,典型的映射关系如下:

PZD位置 主站→变频器 变频器→主站 对应参数
PZD1 控制字(STW) 状态字(ZSW) 50.01 / 50.02
PZD2 速度给定 实际速度 51.01 / 51.02
PZD3 转矩给定 实际转矩 51.03 / 51.04
PZD4 备用 实际电流 51.05 / 51.06

参数50.01用于选择控制字源,通常设为“现场总线”或“PROFIBUS”。参数51.01~51.06则定义了每个PZD对象连接到传动的哪个信号。例如,51.01可以指向“速度给定”,51.02指向“速度实际值”。这些参数的值不是固定的,用户可以根据实际需求重新映射。

映射的本质是“地址绑定”。传动内部有一个数据表,每个PZD对象对应一个索引。当DP报文到达时,接口芯片根据索引将数据写入对应的数据表位置;传动控制程序再从数据表中读取这些值,用于速度环、转矩环等控制逻辑。反过来,传动控制程序将状态和实际值写入数据表,接口芯片在响应时从数据表中取出并打包成DP帧。

PROFIBUS DP循环数据交换与ACS变频器PZD映射 PROFIBUS主站 PLC / 控制器 发送:STW + 给定值 接收:ZSW + 实际值 DP报文 ACS变频器 PROFIBUS接口芯片 帧校验 / 地址识别 PZD数据打包/解包 参数映射区 50.01 控制字源 51.01 PZD2给定 51.02 PZD2实际 51.03 PZD3给定 51.04 PZD3实际 传动控制程序 速度环 / 转矩环 电机控制逻辑 电机 / 负载 实际速度 / 电流 / 转矩 状态字 + 实际值反馈 循环周期:主站按扫描周期发送请求 → 从站响应 → 数据经参数映射作用于传动控制 → 实际值回传

四、实际配置中的关键判断

在TIA Portal或STEP 7中组态ACS变频器时,需要从GSD文件中选择正确的模块。GSD文件描述了从站支持的PZD长度和PKW长度。例如,选择“PPO Type 3”表示2个PZD字加2个PKW字,而“PPO Type 5”表示10个PZD字加2个PKW字。选择哪种PPO类型,取决于实际需要交换多少过程数据。

配置完成后,主站会按照组态的I/O地址映射PZD数据。例如,主站输出区的前2个字节对应控制字,接下来的2个字节对应速度给定;输入区的前2个字节对应状态字,接下来的2个字节对应实际速度。这些地址与ACS变频器参数51.01~51.06的映射关系必须一致,否则会出现“控制字发了但变频器不动作”或“实际值读回来全是零”的情况。

常见问题:如果主站组态的PZD长度与变频器参数50.01/51.01设置不匹配,DP通信可能建立但数据无效。此时应检查GSD文件中的模块选择是否与变频器实际支持的PPO类型一致,并确认参数51组中每个PZD对象的源和目的地址是否正确。

另一个需要关注的是PKW区域。PKW用于非循环的参数读写,例如读取故障代码、修改加减速时间等。PKW的报文结构比PZD复杂,包含参数号、子索引、读写请求和返回值。在ACS变频器中,PKW通常映射到参数52组,用于访问传动参数。如果应用只需要循环控制,PKW可以设为0长度;如果需要在线修改参数,则必须保留PKW区域。

总结来说,PROFIBUS DP与ACS变频器的集成,本质上是“报文—映射—控制”三层结构的协同。报文层保证数据在总线上正确传输,映射层将总线数据绑定到传动内部信号,控制层则根据这些信号执行电机控制。理解这三层的关系,就能在配置和排障时快速定位问题所在。