前面介绍S7-1200运动控制的文章曾讲过:根据连接驱动方式的不同,S7-1200有三种运动控制的方式,即:PTO、模拟量和PROFIdrive协议。PROFIdrive协议在西门子运动控制中使用非常广泛,它其实是一种连接驱动器/变频器/编码器的标准协议,今天这篇文章,我们就来认识下这个协议。本文包括如下几个主题:
PROFIdrive简介;
控制器与驱动器之间的数据交换;
PROFIdrive常用报文介绍;
1、PROFIdrive简介
PROFIdrive是PI国际组织(PROFIBUS and PROFINET International)推出的一种标准驱动控制协议,用于控制器与驱动器之间的数据交换,其底层可以使用PROFIBUS总线或者PROFINET网络。
PI国际组织将驱动控制的场合的分为几个不同的应用等级(Application Class,AC),包括:AC1~AC5。其中:
AC1和AC2用于速度控制,比如风机、水泵、传送带的控制等场合;
AC3是普通的位置控制、转矩控制的场合;
AC4和AC5是高级运动控制、等时同步通信控制,比如伺服、数控系统等场合;
2、控制器与驱动器之间的数据交换
控制器与驱动器之间可以通过PROFIdrive协议进行周期性的数据交换,控制器发送控制命令,驱动器返回命令执行的状态及自身的状态,其示意图如下:
通过周期性的交换PROFIdrive报文,控制器可以实现驱动器的启动、停止、以设定的速度运行、获取编码器位置、读写变频器参数等功能。PROFIdrive报文由三部分组成:头部,尾部和中间的数据区,如下图所示:
数据区由两部分组成:PKW和PZD。其中:
PKW是参数数据,用于变频器参数的读写(不是所有的报文都有PKW区);
PZD是过程数据,包括控制器发送的命令、变频器的状态值、编码器的数据等;
PROFIdrive协议为典型应用定义了特定的报文并分配了固定的报文编号,下面我们来介绍下常用的报文。
3、PROFIdrive常用报文介绍
PROFIdrive常用报文包括:标准报文1、2、3、4、20等,我们先来认识下前三个:
3.1、标准报文1
标准报文1用于速度控制,包括两部分:
控制器发出的控制字STW1和速度设定值(NSOLL_A);
驱动器反馈的状态字(ZSW1)和实际速度(NACT_A);
如下面的表格所示:
来源 | PZD01 | PZD02 |
---|---|---|
控制器 | STW1 | NSOLL_A |
驱动器 | ZSW1 | NACT_A |
注:STW和ZSW均为16位无符号整数,NSOLL_A和NACT_A为16位整数;
3.2、标准报文2
标准报文2也用于速度控制。与标准报文1不同的地方在于,它的速度设定值(NSOLL_B)和实际速度值(NACT_B)是32位整数;另外它还增加了控制字STW3和状态字ZSW3,如下面的表格所示:
来源 | PZD01 | PZD02 | PZD03 | PZD04 |
---|---|---|---|---|
控制器 | STW1 | NSOLL_B | STW3 | |
驱动器 | ZSW1 | NACT_B | ZSW3 |
3.3、标准报文3
标准报文3用于速度控制并带有1个编码器位置反馈,它是在标准报文2的基础上,增加了编码器1的控制字(G1_STW)、状态字(G1_ZSW)、实际位置1(G1_XIST1)和实际位置2(G1_XIST2),它的报文长度为9个PZD,如下面的表格所示:
来源 | PZD01 | PZD02 | PZD03 | PZD04 | PZD05 |
---|---|---|---|---|---|
控制器 | STW1 | NSOLL_B | STW3 | G1_STW | |
驱动器 | ZSW1 | NACT_B | ZSW3 | G1_ZSW |
来源 | PZD06 | PZD07 | PZD08 | PZD09 |
---|---|---|---|---|
控制器 | ||||
驱动器 | G1_XIST1 | G1_XIST2 |
由于PROFIdrive的常用报文比较多,本文就先介绍到这里。将在后续的文章中继续介绍PROFdrive报文及西门子PLC与驱动器之间的PROFIdrive通信。
我的微信视频号已经开通,以视频的方式分享工控小知识,欢迎扫描次下方的二维码查看:
发表评论