博途通过 PN 周期通信读写 G120 变频器参数:PKW 通道

AI摘要本文以标准报文353为例,讲解SINAMICS G120与S7-1200/1500的PROFINET周期PKW参数通道,剖析PKE/IND/PWE四字结构及任务/应答机制,并结合读r2902[5]、写P1210及BICO参数P845实例,说明参数号偏移、分区索引、BICO编码和DPRD_DAT/DPWR_DAT一致性读写要点。

前言

在基于 TIA Portal 的驱动系统集成中,SINAMICS G120 与 S7-1200/1500 之间的 PROFINET 通信通常以周期过程数据(PZD)为主——控制字、主设定值下发,状态字、实际转速上传。但在很多现场场景中,我们还需要在 PLC 程序里直接读写变频器参数,例如在线修改 P1210(自动再启动)、读取 r2902 组态数据、动态修改 BICO 互联 P845 等。

本文基于西门子官方教程(CS Drive team),以S7-1200 + CU250S-2 PN、标准报文 353为例,系统讲解 PROFINET 周期通信中的PKW 参数通道的数据结构、任务/应答机制与编程实现。

一、周期通信与参数访问的两种方式

G120 中带 PN 接口的控制单元(CU240E-2PN、CU250S-2PN 等)均支持基于 PROFINET 的周期过程数据交换和参数访问。

周期过程数据交换:IO 控制器周期性向变频器发送控制字和主设定值,并周期性读取状态字和实际转速。该通信使用 PZD 通道(过程数据区),不同报文类型定义不同数量的过程数据。

变频器参数访问有两种途径:

方式 说明 特点
① 周期性 PKW 通道 参数数据区嵌入周期报文 每次只能读/写一个参数,长度固定 4 个字
② 非周期性通信 访问变频器数据记录区 每次可读/写多个参数,单次任务最大 240 字节

本文聚焦第①种——周期 PKW 通信,以组态标准报文 353 为例。

二、PKW 通道的数据结构

2.1 工作模式

PKW 通信是请求—应答模式:主站(PLC)发出请求 → 变频器处理请求 → 将处理结果应答给主站。请求和应答数据总是包含 4 个字:

字段 字 内容

PKE
第 1 个字 任务 ID / 应答 ID + 参数号(PNU)

IND
第 2 个字 子索引 + 分区索引

PWE1 / PWE2
第 3、4 个字 参数值(32 位双字)

2.2 第 1 个字:PKE

位 15 … 12 | 位 11 | 位 10 … 0
AK | SPM | PNU

  • AK(位 12~15):任务 ID(请求)或应答 ID(应答),见下文表 1-1 / 表 1-2。
  • SPM(位 11):始终为 0。
  • PNU(位 0~10):参数号。
  • 参数号 < 2000:PNU = 参数号;
  • 参数号 ≥ 2000:PNU = 参数号 − 偏移,偏移写入分区索引(IND 位 0~7)。

表 1-1 控制器发送给变频器的任务 ID:

任务 ID 描述
0 无任务
1 请求参数值
2 修改参数值(单字)
3 修改参数值(双字)
4 请求描述性元素¹
6² 请求参数值(数组)¹
7² 修改参数值(数组、单字)¹
8² 修改参数值(数组、双字)¹
9 请求数组元素数量

¹ 所需参数元素在 IND(第 2 个字)中规定。

² 任务 ID 1≡6、2≡7、3≡8,建议使用 ID 6、7、8。

表 1-2 变频器发送给控制器的应答 ID:

应答 ID 描述
0 无应答
1 传送参数值(单字)
2 传送参数值(双字)
3 传送描述性元素
4 传送参数值(数组、单字)
5 传送参数值(数组、双字)
6 传送数组元素数量
7 变频器无法处理任务(错误号在 PWE1 高位字中返回)
8 无主站控制权限 / 无权限修改参数通道接口

常见错误号(应答 ID = 7 时 PWE1 中的错误码):

编号 描述
00 hex 参数号错误(参数不存在)
01 hex 参数值无法修改
02 hex 超出数值下限或上限
03 hex 错误的子索引
04 hex 没有数组
05 hex 错误的数据类型
0B hex 没有操作权限(另见 p0927)
0C hex 缺少密码
11 hex 因运行状态无法执行任务
6A hex 没有收到任务 / 不支持任务
6B hex 控制器使能时无修改权限
86 hex 调试时仅允许写访问(p0010 = 15)
87 hex 专有技术保护生效,禁止访问
C8/C9 hex 修改任务低于/高于当前有效限值
CC hex 不允许执行修改任务(无访问口令)

2.3 第 2 个字:IND

位 15 … 8 | 位 7 … 0
子索引 | 分区索引

  • 子下标(子索引):标识参数的下标值,如 P840[1] 中的"1"。
  • 分区下标(分区索引):配合 PNU 确定参数号。例如 P2902 的分区下标 = 0x80。

参数号 ≥ 2000 时的偏移对照表:

参数号 偏移 分区索引 Hex
0000…1999 0 00
2000…3999 2000 80
6000…7999 6000 90
8000…9999 8000 20
10000…11999 10000 A0
20000…21999 20000 50
30000…31999 30000 F0
60000…61999 60000 74

2.4 第 3、4 个字:PWE

参数值 PWE 总是以双字(32 位)方式发送,一条报文只传送一个参数值:

  • 32 位值:PWE1(高位字)+ PWE2(低位字);
  • 16 位值:放在 PWE2 中,PWE1 = 0;
  • 8 位值:放在 PWE2 的位 0…7,PWE2 高 8 位和 PWE1 为 0。

BICO 参数(CI/CO 互联参数)的编码方式:

  • PWE1 = 参数号(CI/CO 编号);
  • PWE2 位 10…15 全为 1(即 3F hex);
  • PWE2 位 0…9 = 参数的索引或位号。

例:r722.1 → PWE1 = 722 = 2D2 hex;PWE2 = 3F hex << 10 | 1 hex。

三、TIA Portal 编程实现

3.1 实验环境

设备 订货号 版本
CPU 1214C DC/DC/Rly 6ES7214-1HH50-0XB0 V1.0
CU250S-2 PN 6SL3246-0BA22-1FA0 FW4.7
PM240 6SL3224-0BE13-7UA0 B01
电机 1LA7060-4AB10-Z –
软件 TIA Portal + Startdrive V20

3.2 硬件组态

硬件组态

在 TIA Portal 中组态 CU250S-2 PN,报文选择SIEMENS_telegram_353, _PKW+PZD-2_2(PKW 4 字 + PZD 2 字,共 12 字节)。

3.3 程序块:DPRD_DAT / DPWR_DAT

image

由于报文包含 PKW 区,I/O 数据长度超过 4 字节,不能用普通装载/传送指令,必须使用DPRD_DAT(SFC14 对应)和DPWR_DAT(SFC15 对应)进行一致性数据读写,该指令需成对使用:

DPRD_DAT(读取变频器应答数据):

参数 说明
LADDR 变频器组态起始地址(报文 353 的硬件标识符,如 284)
RECORD 读取缓存区,如P#M100.0 BYTE 12(包含 PKW+PZD)
RET_VAL 执行状态,如 MW10

DPWR_DAT(向变频器发送请求数据):

参数 说明
LADDR 变频器组态起始地址(同一报文硬件标识符)
RECORD 发送缓存区,如P#M200.0 BYTE 12
RET_VAL 执行状态,如 MW20

3.4 数据布局

MB200/MB201 → PKE (如 16#74BA:写 P1210)
MB202/MB203 → IND (子索引 + 分区索引)
MB204/MB205 → PWE1 (高位字)
MB206/MB207 → PWE2 (低位字,如 16#001A)
MB208…MB211 → PZD (控制字/主设定值,本例不用可置 0)

读回应答在 MB100 开始的镜像区,校验应答 ID(PKE 位 12…15):1/2/4/5 表示成功,7 表示错误(错误号在 PWE1)。

3.5 实验任务

  1. 读参数 r2902[5](B56 hex);
  2. 写参数 P1210 = 26(4BA hex);
  3. 写 BICO 参数 P845 = 722.2(34D hex)。

3.5.1 读参数 r2902[5]

r2902 参数号 ≥ 2000,必须做偏移拆分:2902 − 2000 = 902 = 386 hex 写入 PNU,偏移 2000 对应分区索引 80 hex;下标 [5] 写入子索引。读取数组参数用任务 ID 6。

字 字段 取值 (Hex) 位分配 说明
字1 PKE 6386 位 15…12 = 6(AK,任务 ID:请求参数值(数组));位 11 = 0(SPM);位 10…0 = 386(PNU) PNU = 2902 − 2000 = 902 = 386 hex
字2 IND 0580 位 15…8 = 05(子索引,即下标 [5]);位 7…0 = 80(分区索引,对应偏移 2000) 查偏移对照表:2000…3999 → 80 hex
字3 PWE1 0000 – 读请求不携带参数值
字4 PWE2 0000 – 读请求不携带参数值

完整报文:6386 0580 0000 0000

应答检查:应答 ID = 1(单字)或 2(双字)为成功,参数值在 PWE2/PWE1+PWE2 中;若返回 7,则错误号在应答 PWE1 中。

3.5.2 写参数 P1210 = 26

P1210 为 16 位参数(参数号 1210 < 1999,无需偏移,分区索引为 0),无下标。写单字参数用任务 ID 7(修改参数值,数组、单字)。

字 字段 取值 (Hex) 位分配 说明
字1 PKE 74BA 位 15…12 = 7(AK,任务 ID:修改参数值(数组、单字));位 11 = 0;位 10…0 = 4BA(PNU) PNU = 1210 = 4BA hex,无偏移
字2 IND 0000 位 15…8 = 00(无子索引);位 7…0 = 00(分区索引,无偏移) 参数无下标、参数号 < 2000
字3 PWE1 0000 参数值位 16…31 16 位参数高位字恒为 0
字4 PWE2 001A 参数值位 0…15 26 = 1A hex

完整报文:74BA 0000 0000 001A

应答检查:应答 ID = 1 表示写入成功。

3.5.3 写 BICO 参数 P845 = 722.2

BICO(CI/CO 互联)参数按 32 位双字编码,用任务 ID 8(修改参数值,数组、双字)。PWE1 填 CI/CO 参数号,PWE2 高 6 位置 3F hex 作为 BICO 标识,低 10 位填索引或位号。

字 字段 取值 (Hex) 位分配 说明
字1 PKE 834D 位 15…12 = 8(AK,任务 ID:修改参数值(数组、双字));位 11 = 0;位 10…0 = 34D(PNU) PNU = 845 = 34D hex,无偏移
字2 IND 0000 位 15…8 = 00(无子索引);位 7…0 = 00(分区索引) 参数无下标
字3 PWE1 02D2 CI/CO 编号 连接源参数号 722 = 2D2 hex
字4 PWE2 FC02 位 15…10 = 111111b(3F hex,BICO 标识);位 9…0 = 2 位号 2(即连接 r722.2)

完整报文:834D 0000 02D2 FC02

PWE2 计算:3F hex 左移 10 位 = FC00 hex,再或上位号 2 → FC02 hex。漏掉这个 3F 标识是最常见错误,会返回 05 hex(错误的数据类型)。

3.5.4 发送缓存区布局

地址 内容 任务1 任务2 任务3
MW200 PKE 16#6386 16#74BA 16#834D
MW202 IND 16#0580 16#0000 16#0000
MW204 PWE1 16#0000 16#0000 16#02D2
MW206 PWE2 16#0000 16#001A 16#FC02
MD208 PZD(控制字/设定值) 不用可置 0 不用可置 0 不用可置 0

每个任务写完后,通过 DPRD_DAT 读取 MB100 开始的应答区,先判 PKE 高 4 位应答 ID,再取参数值或错误号。三个任务不能同时下发——PKW 通道一次只能处理一个请求,需按"发送 → 等应答 → 再发下一个"的顺序轮询执行。

四、工程实践要点与排错

  1. 优先使用任务 ID 6/7/8:数组参数(带下标)必须配合 IND 子索引;单参数时下标填 0。
  2. 参数号 ≥ 2000 必须做偏移拆分:如 r2902 → PNU = 2902 − 2000 = 902(386 hex),分区索引 = 80 hex。漏写分区索引是最常见的错误,会返回 00 hex(参数号错误)。
  3. BICO 参数别忘了 PWE2 高 6 位置 3F hex 的标识,否则返回 05 hex(数据类型错误)。
  4. 错误号 6B / 86 / CC通常与运行状态有关:变频器使能运行中、处于调试模式(p0010=15)或未获得控制权时,部分参数禁止修改。
  5. 一次只传一个参数:如需批量读写,改用非周期通信(数据记录区,单次最大 240 字节)或 RDREC/WRREC。
  6. 一致性读写:PKW+PZD 共 12 字节,务必用 DPRD_DAT/DPWR_DAT 整体读写,避免数据撕裂。

结语

PKW 周期通道的优势在于无需额外通信资源、与过程数据同周期刷新,非常适合在 PLC 程序中在线修改少量参数或读取诊断值。掌握"任务 ID + PNU + 分区索引 + 双字参数值"这套 4 字结构,配合 DPRD_DAT/DPWR_DAT,即可在任意支持报文 353(或含 PKW 的报文)的 G120 PN 控制单元上快速实现参数读写。

纪小年

Jing

您可能还喜欢...

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。