4. PROFIdrive报文结构与状态机

PROFIdrive报文是SINAMICS驱动器与上位控制器之间周期数据交换的“语言”。报文本身并不神秘,它本质上是一段固定长度、固定含义的PZD(过程数据)字节序列,其中每个位、每个字都对应驱动器内部的一个参数或状态。理解报文结构,就是理解“控制器发什么、驱动器回什么、这些位如何驱动状态机”。

一、标准报文的帧格式与适用场景

PROFIdrive为不同应用定义了多种标准报文,常用类型包括1、2、3、5、102等。它们的区别在于PZD长度和内容组织:

  • 标准报文1(PZD2/2):2个字输出(STW1、NSOLL_A)+ 2个字输入(ZSW1、NIST_A)。适用于基本转速控制,是最精简的闭环结构。
  • 标准报文2(PZD4/4):在报文1基础上增加2个字,通常用于带附加设定值或实际值的场合,如转矩限幅、附加编码器值。
  • 标准报文3(PZD2/2,含位置):常用于定位控制,输出含STW1和位置设定,输入含ZSW1和位置实际值。
  • 标准报文5(PZD4/4):与报文3类似但扩展了附加数据,适合复杂定位或同步应用。
  • 标准报文102(PZD6/6):用于安全集成或扩展工艺,包含更多控制字和状态字,如STW1、STW2、MOMRED等。

选择报文时,核心依据是:控制对象需要几个设定值、反馈需要几个实际值、是否涉及安全或位置控制。报文长度一旦确定,PLC的I/O地址映射和SINAMICS的互联参数(如P0922)就必须一致,否则会出现“数据错位”或“控制字无效”。

二、控制字STW1与状态字ZSW1的位定义

控制字STW1是控制器发给驱动器的“命令字”,状态字ZSW1是驱动器回给控制器的“反馈字”。以标准报文1为例,STW1的常用位定义如下:

位名称含义
0ON/OFF10=OFF1停车,1=运行使能
1OFF20=自由停车,1=正常运行
2OFF30=快速停车,1=正常运行
3脉冲使能0=禁止脉冲,1=使能脉冲
4斜坡函数发生器使能0=禁止,1=使能
5斜坡函数发生器继续0=保持,1=继续
6设定值使能0=禁止,1=使能
7故障复位0→1上升沿复位故障
8点动10=停止,1=点动
9点动20=停止,1=点动
10PLC控制0=由PLC控制,1=由本地控制
11反转0=正转,1=反转
12未使用—
13电动电位计升0=停止,1=升速
14电动电位计降0=停止,1=降速
15CDS位0命令数据组选择

状态字ZSW1的位定义与STW1形成对应关系:

位名称含义
0准备接通1=驱动器准备好,可以接收ON命令
1准备运行1=运行准备就绪
2运行使能1=运行使能已激活
3故障1=存在故障
4OFF2无效1=OFF2未激活
5OFF3无效1=OFF3未激活
6禁止接通1=禁止接通
7报警1=存在报警
8设定值-实际值偏差1=在容差范围内
9PLC控制请求1=请求PLC控制
10达到设定值1=实际值达到设定值
11I²t过载1=电机过载预报警
12制动打开1=制动器已打开
13电机过载1=电机过载报警
14电机正转1=电机正转运行
15电机反转1=电机反转运行

实际编程时,PLC通常用“控制字模板”来组织这些位。例如,要让驱动器以正转、斜坡使能、设定值使能的方式启动,STW1应写入十六进制0x047F(二进制0000 0100 0111 1111),即:位0=1、位1=1、位2=1、位3=1、位4=1、位5=1、位6=1、位7=0、位8=0、位9=0、位10=1、位11=0。这个值在西门子PLC中常写作W#16#047F。

三、状态机转换条件

PROFIdrive状态机描述了驱动器从“接通禁止”到“运行”的完整路径。核心状态包括:S1(接通禁止)、S2(准备接通)、S3(准备运行)、S4(运行)、S5(快速停车)、S6(自由停车)等。转换条件由STW1的位组合决定:

  • S1→S2:ZSW1.6=0(无禁止接通)且ZSW1.0=1(准备接通)。
  • S2→S3:STW1.0=1(ON/OFF1)且STW1.1=1(OFF2)且STW1.2=1(OFF3)。
  • S3→S4:STW1.3=1(脉冲使能)且STW1.4=1(斜坡使能)且STW1.6=1(设定值使能)。
  • S4→S5:STW1.2=0(OFF3触发),驱动器按快速停车斜坡制动。
  • S4→S6:STW1.1=0(OFF2触发),驱动器自由停车,脉冲立即封锁。
  • 任意状态→S1:STW1.7=1(故障复位)且故障已消除。

这些转换条件不是“建议”,而是驱动器内部逻辑的硬性判断。如果STW1的位顺序写错,例如先给脉冲使能再给ON命令,驱动器会停留在S2或S3,ZSW1.0和ZSW1.1会给出明确反馈,帮助定位问题。

四、SINAMICS参数映射

报文中的每个PZD字,最终都映射到SINAMICS的参数连接器(BICO)。以标准报文1为例:

  • STW1 → r2090.0~r2090.15(控制字1的位)
  • NSOLL_A → r2050.1(转速设定值)
  • ZSW1 → r2089.0~r2089.15(状态字1的位)
  • NIST_A → r2050.2(转速实际值)

在SINAMICS中,报文选择通过P0922参数完成。例如P0922=1对应标准报文1,P0922=2对应标准报文2,P0922=102对应标准报文102。选择后,驱动器会自动配置BICO互联,但用户仍需检查关键参数:P0840(ON/OFF1)、P0844(OFF2)、P0845(OFF3)、P0852(脉冲使能)、P1140(斜坡使能)、P1141(斜坡继续)、P1142(设定值使能)等是否与报文位对应。如果使用自由报文(P0922=999),则需要手动逐位互联。

实操提示:调试时,可先通过STARTER或Startdrive在线观察r2090和r2089的实时值,确认PLC发出的控制字与驱动器接收到的位一致。若ZSW1.0始终为0,检查P0840是否已连接到STW1.0,以及驱动器是否有故障未复位。
PROFIdrive标准报文1(PZD2/2)结构与状态机映射 PLC控制器 输出:STW1 + NSOLL_A 输入:ZSW1 + NIST_A W#16#047F 启动 W#16#047E 停车 PZD输出 PZD输入 SINAMICS驱动器 P0922 = 1(标准报文1) r2090 ← STW1 r2050.1 ← NSOLL_A r2089 → ZSW1 r2050.2 → NIST_A BICO互联自动配置 状态机转换 S1 接通禁止 ZSW1.6=0 S2 准备接通 STW1.0=1 S3 准备运行 STW1.3=1 S4 运行 STW1.2=0 S5 快速停车 STW1.1=0 S6 自由停车 STW1关键位与ZSW1反馈对照 STW1(控制字) 位0 ON/OFF1 → P0840 位1 OFF2 → P0844 位2 OFF3 → P0845 位3 脉冲使能 → P0852 位6 设定值使能 → P1142 ZSW1(状态字) 位0 准备接通 → r2089.0 位1 准备运行 → r2089.1 位2 运行使能 → r2089.2 位3 故障 → r2089.3 位6 禁止接通 → r2089.6

从图中可以清晰看到:PLC发出的STW1位通过PZD通道进入驱动器,映射到r2090,再经BICO互联驱动P0840等参数;驱动器状态机根据这些位在S1~S6之间转换,最终通过ZSW1将当前状态回传给PLC。整个闭环中,任何一个位写错或互联遗漏,都会导致状态机停在某个中间状态,而ZSW1的反馈位就是最直接的诊断依据。

常见排障:若驱动器不启动,先查ZSW1.0(准备接通)是否为1。若为0,检查P0840是否已连接、是否有故障未复位(ZSW1.3=1)。若ZSW1.0=1但ZSW1.2=0,检查STW1.3、STW1.4、STW1.6是否同时为1。若ZSW1.6=1,说明驱动器处于禁止接通状态,通常与OFF2/OFF3未释放或硬件使能缺失有关。

掌握报文结构、控制字/状态字位定义、状态机转换条件和SINAMICS参数映射,是PROFIdrive通信调试的基本功。实际工程中,建议先以标准报文1跑通基本启停,再根据工艺需求切换到报文2、3、5或102,并逐项核对BICO互联,避免“报文选对但位接错”的低级问题。