S7-1200 与 G120 CU250S-2PN 的 PROFINET 通讯(周期通讯读写变频器参数)
1、PROFINET IO 通讯功能概述
SINAMICS G120 的控制单元CU250S-2 PN 支持基于PROFINET 的周期过程数据交换和变频器参数访问。
周期过程数据交换
PROFINET IO 控制器可以将控制字和主给定值等过程数据周期性的发送至变频器,并从变频器周期性的读取状态字和实际转速等过程数据。
变频器参数访问
提供PROFINET IO 控制器访问变频器参数的接口,有两种方式能够访问变频器的参数:
1. 周期性通讯的PKW 通道(参数数据区):通过PKW 通道PROFINET IO 控制器可以读写变频器参数,每次只能读或写一个参数,PKW 通道的长度固定为4 个字。
2. 非周期通讯:PROFINET IO 控制器通过非周期通讯访问变频器数据记录区,每次可以读或写多个参数。
本文通过示例介绍S7-1200 与G120 CU250S-2 PN 的PROFINET PKW 通讯,以组态标准报文353 为例介绍通过S7-1200 如何通过PKW通讯读r2902[5]参数值、写P1121 参数。
2、参数通道(PKW)的数据结构
PKW 通讯工作模式:主站发出请求,变频器收到主站请求后处理请求,并将处理结果应答给主站。
图 2-1 PKW 通讯原理
图 2-2 PKW 参数通道的结构
PKW 通讯的请求和应答数据总是包含4 个字,第1 个字和第2 个字传送参数号、索引以及任务类型(读或写),第3 个和第4 个字传送参数内容。
2.1 PKE:PKW 第 1 个字
· AK:位 12~15 包含了任务 ID 或应答 ID,任务 ID 参考表 2-1,应答 ID参考表 2-2 ;
· SPM:始终为 0;
· PNU:参数号 < 2000 PNU = 参数号。参数号≥ 2000 PNU = 参数
号减去偏移,将偏移写入分区索引中( IND 位 7 … 0 )。
图 2-3 PKE 结构
表2-1 控制器发送给变频器的任务ID
1) 所需参数元素在 IND(第 2 个字)中规定。
2) 以下的任务 ID 是相同的:1 ≡ 6、2 ≡ 7、3 ≡ 8。
我们建议使用 ID 6、7 和 8。
表2-2 变频器发送给控制器的应答 ID
1) 所需参数元素在 IND(第 2 个字)中规定。
2) 所需含索引的参数元素在 IND(第 2 个字)中规定。
表2-3 应答 ID = 7 中的错误号
2.2 参数索引 IND:PKW 第 2 个字
· 子下标(参数下标):标识变频器参数的子索引(参数下标)值。例如P0840[1]中括号中的“1”即为参数下标。
· 分区下标:变频器参数偏移量,配合 PNU 确定参数号。例如 P2902 的分区下标 = 0x80,分区下表查询请参考表 2-4。
图2-4 IND 结构
表2-4 分区下标设置
2.3 参数值 PWE:PKW 第 3、4 个字
参数值 PWE 总是以双字方式( 32 位)发送,一条报文只能传送一个参数值。
· 32 位的参数值由 PWE1(第 3 个字)和 PWE2(第 4 个字)两个字组成;
· 16 位的参数值以 PWE2 表示,PWE1 为 0;
· 8位的参数值以 PWE2 中位 0…7 表示,高 8 位和 PWE1 为 0;
· BICO 参数:PWE1 表示参数号,PWE2 位 10…15 为 1,PWE2 位0…9 表示参数的索引或位号。
3、S7-1200 与CU250S-2 PN 的PROFINET PKW 通讯实例
3.1 S7-1200 组态
CU250S-2 PN 控制单元支持两种 PKW 通讯报文:353 报文和 354 报文,它们的区别在于过程值通道 PZD 数量的不同,PKW 通道功能完全相同。本示例以组态 353 报文为例。
S7-1200 与 CU250S-2 PN 的 PROFINET 通讯基本组态过程以及变频器通讯参数设置请参考《S7-1200 与 G120 CU250S-2 PN 的 PROFINET PZD 通讯》文档,在此不做详细介绍。
3.1.1 组态 CU250S-2 PN 通讯报文
1. 将硬件目录中“SIEMENS 353, PKW+PZD-2/2”模块拖拽到“设备概览”视图的插槽中,系统自动分配了输入输出地址,本示例中分配PKW 的输入地址 IB68~IB75,输出地址 QB64~QB71,分配 PZD 的输入地址 IW76、IW78,输出地址 QW72、QW74。
图 3-1 组态与 CU250S-2 PN 通讯报文
3.1.2 编程
在 S7-1200 中调用扩展指令“DPRD_DAT”读取 PKW 区数据,调用扩展指令“DPWR_DAT”写入PKW 区数据。
1. 双击项目树下的“Main(OB1)”打开 OB1 程序编辑窗口;
2. 扩展指令目录中“分布式 I/O -> 其它 -> DPRD_DAT 和 DPWR_DAT ”指令拖拽到程序编辑窗口中。
图 3-2 S7-1200 编程
3.1.3 为系统功能“DPRD_DAT”、“DPWR_DAT”分配硬件标识
1. 单击块参数“LADDR”;
2.在下拉列表中选择“SIEMENS__353,_PKW+PZD-2_2[AI/AO]”。
图 3-3 分配硬件标识符
3.1.4 为系统功能“DPRD_DAT”、“DPWR_DAT”分配其他参数
1. DPRD_DAT 读取缓冲区从MB100 开始的 12 个字节;
2. DPWR_DAT 发送缓冲区从MB200 开始的 12 个字节;
注意:也可以使用 DB 块作为缓冲区,创建 DB 时请将块访问模式定义为“标准-与 S7-300/400 兼容”模式。
图 3-4 分配其它参数
3.2 示例 1:读取参数r2902[5]数值
将 MB200~MB207 的 8 个字节请求数据发送到变频器,变频器返回的响应数据保存在MW100~MB107 的 8 个字节中。读取参数 P2902[5]值的请求数据格式参考表 3-1,变频器响应数据格式参考表 3-2。
r2902 参数范围在 2000…3999 之间,根据表 2-4 设置分区索引值为 0x80。PNU = 2902-2000 = 902(十进制)= 386 (十六进制)。
通过变量表模拟程序读取参数 r2902[5] = 100.0,参考图 3-5。
图3-5 S7-1200 读r2902[5]参数
表3-1 读取参数r2902[5]值的请求数据格式,PLC-〉变频器
表3-2 读取参数r2902[5]值的响应数据格式,变频器 -> PLC
3.3 示例2:修改参数P1121 数值
将MB200~MB207 的8 个字节请求数据发送到变频器,变频器返回的响应数据保存在MW100~MB107 的8 个字节中。修改参数P1121 值的请求数据格式参考表3-3,变频器响应数据格式参考表3-4。
P1121 参数范围在0…1999 之间,根据表2-1 设置分区索引值为0x00。
PNU = 1121(十进制)= 461 (十六进制)。
通过变量表模拟程序修改参数P1121 = 5.0,参考图3-6。
图3-6 S7-1200 写P1121 参数
表3-3 修改参数P1121 值的请求数据格式,PLC -> 变频器