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文件及主站配置决定。
二、循环数据交换原理:周期性的“请求—响应”
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帧。
四、实际配置中的关键判断
在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的映射关系必须一致,否则会出现“控制字发了但变频器不动作”或“实际值读回来全是零”的情况。
另一个需要关注的是PKW区域。PKW用于非循环的参数读写,例如读取故障代码、修改加减速时间等。PKW的报文结构比PZD复杂,包含参数号、子索引、读写请求和返回值。在ACS变频器中,PKW通常映射到参数52组,用于访问传动参数。如果应用只需要循环控制,PKW可以设为0长度;如果需要在线修改参数,则必须保留PKW区域。
总结来说,PROFIBUS DP与ACS变频器的集成,本质上是“报文—映射—控制”三层结构的协同。报文层保证数据在总线上正确传输,映射层将总线数据绑定到传动内部信号,控制层则根据这些信号执行电机控制。理解这三层的关系,就能在配置和排障时快速定位问题所在。