潍坊乾发机电有限公司
 
 
新闻资讯
当前位置:首页 >> 新闻资讯 >> 行业新闻

西门子FB284功能块详解

浏览:13    发布日期:2026-04-24


西门子FB284(功能块名称SINA_POS)是西门子TIA博途环境下,用于控制SINAMICS系列伺服驱动器(如V90 PN、S120)实现EPOS(基本定位/增强型定位系统)功能的标准功能块,核心作用是通过PROFINET通信,向驱动器发送定位控制指令(如定位、回零、点动),同时接收驱动器反馈的状态信息,实现单轴高精度定位控制,适配S7-1200、S7-1500系列PLC,是工业自动化中伺服定位控制的核心功能块之一。

FB284无需手动编写复杂的通信和定位逻辑,仅需正确配置管脚参数、匹配驱动器参数,即可快速实现多种定位场景,相较于PLCopen标准指令,其更贴合西门子SINAMICS驱动器的底层逻辑,兼容性更强,可直接调用驱动器内置的EPOS功能,简化编程流程,提升定位控制的稳定性和精度。

一、核心基础信息(必懂前提)

1. 适配范围

  • PLC机型:仅适配S7-1200、S7-1500系列PLC(TIA博途软件环境),S7-300/400、S7-200 SMART不支持。

  • 驱动器机型:主要适配SINAMICS V90 PN、S120伺服驱动器,需确保驱动器支持EPOS定位模式。

  • 通信要求:必须采用PROFINET通信,且PLC与驱动器需配置标准报文111(EPOS控制专用报文),报文配置需与功能块参数保持一致,否则无法实现正常通信和控制。

  • 功能块获取:需安装Startdrive软件(自动集成驱动库),或在TIA博途中安装SINAMICS Blocks DriveLib驱动库,即可在全局库中找到FB284(SINA_POS)功能块。

2. 核心功能定位

FB284的核心功能是实现单轴EPOS定位控制,无法实现多轴同步控制(多轴同步需S7-1500(T)组态工艺对象),其核心可实现的功能如下:

  1. 定位控制:支持相对定位、绝对定位两种核心定位模式,可精准控制轴移动到指定位置或移动指定距离。

  2. 回零控制:支持主动回零、被动回零(运行中回零)、直接设置回零位置三种方式,适配增量编码器、绝对值编码器的回零需求。

  3. 手动控制:支持按指定速度点动、按指定距离点动,适配设备调试和手动操作场景。

  4. 连续运行:支持按指定速度连续运行,无需固定目标位置,适用于匀速运动场景。

  5. 程序段运行:可调用驱动器内部预设的程序段(V90支持最多16个程序段),实现预设运动序列的自动执行。

  6. 状态监控:实时反馈驱动器运行状态、当前位置、当前速度,以及故障信息,便于故障排查和运行监控。

二、FB284核心管脚详解(按输入/输出分类)

FB284的管脚分为输入、输出两大类,部分管脚为输入输出双向管脚,核心管脚需严格按照实际需求配置,参数错误会导致定位失败或驱动器报警,以下是常用核心管脚的详细说明(适配V90 PN、S120,通用且必用):

1. 输入管脚(核心必设)

管脚名称

数据类型

默认值

核心功能说明

ModePos

INT

0

运行模式选择,核心取值:1=相对定位;2=绝对定位;3=连续运行;4=主动回零;5=直接设置回零位置;6=运行程序段;7=按指定速度点动;8=按指定距离点动;0~63为扩展模式。

EnableAxis

BOOL

FALSE

轴使能信号,置1时激活驱动器轴控制,置0时轴停止运行,需保持置1直到定位任务完成,否则会中断运行。

ExecuteMode

BOOL

FALSE

动作触发信号,上升沿触发对应ModePos模式的动作(如启动定位、回零),高电平保持时间建议≥10ms,避免触发失败。

ConfigEPos

DWORD

16#00000003

EPOS模式配置位,核心位定义:BIT0=OFF2自由停车(1=无禁止脉冲);BIT1=OFF3紧急停车(1=无禁止脉冲);BIT2=激活软限位;BIT3=激活硬限位;BIT6=外部零位开关信号源;使能轴时,至少需保持BIT0、BIT1为1。

Position

REAL

0.0

目标位置值,单位由驱动器机械参数(电子齿轮比)决定,仅在定位模式(1、2)下有效,需与驱动器配置的单位一致。

Velocity

REAL

0.0

目标速度值,单位通常为mm/s或r/min,需与驱动器参数(P2000参考转速)匹配,可通过OverV参数调整倍率。

OverV/OverAc/OverDec

REAL

1.0

速度、加速度、减速度倍率(1.0=100%),用于调整实际运行的速度、加减速度,需根据设备工况合理设置,避免过载。

CancelTraversing

BOOL

TRUE

取消运动信号,除点动模式外均有效;置0时,轴按最大减速度停止,丢弃工作数据;置1时,允许正常运动。

IntermediateStop

BOOL

TRUE

中间停止信号,除点动模式外均有效;置0时,轴按当前减速度斜坡停车,不丢弃工作数据;置1时,轴继续运行(相当于暂停功能)。

HWIDSTW/HWIDZSW

HW_IO

硬件标识符,指向111通信报文的控制字(STW)和状态字(ZSW),可在TIA硬件组态中查看,或通过管脚下拉菜单选择配置的111报文。

2. 输出管脚(核心反馈)

管脚名称

数据类型

核心功能说明

Status

DWORD

功能块运行状态码,核心取值:16#7002=正常运行;16#8401=驱动错误;16#8402=驱动禁止启动,可通过状态码快速排查故障。

DiagID

WORD

诊断代码,反馈具体故障原因(如通信中断、参数错误),需结合驱动器故障代码和功能块手册解读。

ActPosition

REAL

轴当前实际位置值,实时反馈轴的运行位置,与输入管脚Position单位一致,可用于位置监控和闭环调节。

ActVelocity

REAL

轴当前实际速度值,需通过计算转换为实际物理速度(计算公式:实际速度=ActVelocity/1073741824.0×P2000参考转速)。

AxisRef

BOOL

回零完成信号,回零操作成功后置1,否则置0,可用于判断回零是否完成,触发后续定位动作。

EPosZSW1/EPosZSW2

WORD

驱动器状态字,EPosZSW1反馈定位完成、轴移动状态等核心信息,EPosZSW2反馈回零状态、限位开关状态等辅助信息。

三、核心运行模式(ModePos取值详解)

FB284的运行模式由输入管脚ModePos决定,不同模式对应不同的定位功能,需结合实际场景选择,核心模式的操作要点如下(适配V90 PN为例):

1. 相对定位(ModePos=1)

核心功能:从轴的当前位置出发,移动指定的距离(Position管脚设定值),适用于分步定位、固定步长移动场景(如传送带分步送料)。

操作要点:

  • 需提前设置Position(移动距离)、Velocity(移动速度)、OverAc/OverDec(加减速度倍率)。

  • 确保CancelTraversing、IntermediateStop均置1,EnableAxis置1激活轴。

  • 通过ExecuteMode上升沿触发定位,定位完成后,EPosZSW1的BIT0置1(定位完成)。

2. 绝对定位(ModePos=2)

核心功能:轴移动到预设的绝对坐标位置(Position管脚设定值),坐标基准为回零后的零位,适用于固定位置定位场景(如工件加工定位)。

操作要点:

  • 定位前必须完成回零操作(AxisRef=1),否则绝对坐标基准错误,导致定位偏差。

  • Position管脚需设置绝对坐标值,单位与驱动器机械参数一致,不可超出软限位、硬限位范围。

  • 触发方式与相对定位一致,定位完成后,ActPosition与Position偏差需在允许范围内(可通过驱动器参数设置偏差阈值)。

3. 连续运行(ModePos=3)

核心功能:轴按Velocity管脚设定的速度连续运行,无固定目标位置,适用于匀速运动场景(如主轴匀速转动)。

操作要点:

  • 无需设置Position值,仅需配置Velocity、OverV(速度倍率)参数。

  • 停止运行可通过CancelTraversing置0(紧急停止)或IntermediateStop置0(暂停)。

4. 主动回零(ModePos=4)

核心功能:轴主动寻找参考点完成回零,适配参考挡块+编码器零脉冲的回零方式,是最常用的回零模式,适用于增量编码器。

操作要点(以V90 PN+增量编码器为例):

  1. 驱动器参数设置:P29240=1(选择参考挡块+零脉冲回零方式)。

  2. 硬件连接:回零开关连接到PLC数字量输入点,PLC编程将其状态关联到ConfigEPos的BIT6。

  3. 功能块参数:OverV、OverAc、OverDec设为1.0(100%倍率),CancelTraversing、IntermediateStop置1,Jog1、Jog2置0。

  4. 触发方式:ExecuteMode上升沿触发回零,回零完成后AxisRef置1,ActPosition清零。

5. 直接设置回零位置(ModePos=5)

核心功能:无需物理回零操作,直接将当前轴位置设为零位,适用于绝对值编码器或无需精准回零的场景。

操作要点:ExecuteMode上升沿触发后,ActPosition立即清零,AxisRef置1,无需依赖回零开关。

6. 点动模式(ModePos=7/8)

  • ModePos=7(按指定速度点动):通过Jog1(正向点动)、Negative(反向点动)信号控制轴的启停,速度由Velocity设定,适用于设备调试。

  • ModePos=8(按指定距离点动):触发后,轴按设定速度移动指定距离(Position),移动完成后自动停止,适用于手动微调定位。

四、完整配置与编程步骤(S7-1200+V90 PN为例)

核心流程:硬件组态→驱动器参数设置→FB284调用与编程→调试运行,每一步需严格匹配参数,避免通信或定位错误。

1. 硬件组态(TIA博途)

  1. 新建项目,添加S7-1200 PLC(如1214C),配置PROFINET网络,设置PLC的IP地址。

  2. 通过Startdrive添加V90 PN驱动器,选择“基本位置控制(EPOS)”模式,配置PROFINET通信,选择标准报文111

  3. 关联PLC与驱动器的PROFINET网络,分配驱动器的IO地址和硬件标识符(HWID),记录HWIDSTW、HWIDZSW的标识符,用于后续FB284参数配置。

  4. 保存硬件组态,下载到PLC中,确保PLC与驱动器通信正常(无通信报警)。

2. 驱动器参数设置(V-ASSISTANT或Startdrive)

  1. 机械参数配置:设置电子齿轮比(P29293分子、P29294分母),匹配电机与机械传动比,确保位置指令与实际机械移动一致。

  2. 回零参数配置:若使用增量编码器,设置P29240=1(参考挡块+零脉冲);若使用绝对值编码器,可通过V-ASSISTANT或BOP面板设置回零位置(P2599)。

  3. 限位参数配置:如需激活软限位,设置P2580(负向软限位)、P2581(正向软限位);如需激活硬限位,将硬件限位开关连接到驱动器CWL、CCWL接口。

  4. 保存参数到驱动器ROM,确保参数生效,重启驱动器。

3. FB284编程(TIA博途SCL语言示例)

需求:实现V90 PN驱动器的绝对定位,回零后移动到绝对坐标100mm,速度50mm/s,加减速度100%。

// 1. 变量定义
VAR
    FB284_Instance: SINA_POS;  // FB284功能块实例
    Axis_Enable: BOOL := FALSE; // 轴使能信号
    Trigger: BOOL := FALSE;     // 动作触发信号
    Target_Pos: REAL := 100.0;  // 目标绝对位置(100mm)
    Target_Vel: REAL := 50.0;   // 目标速度(50mm/s)
    Config: DWORD := 16#00000003; // 配置位(BIT0、BIT1置1)
END_VAR

// 2. FB284功能块调用
FB284_Instance(
    ModePos := 2,               // 绝对定位模式
    EnableAxis := Axis_Enable,  // 轴使能
    ExecuteMode := Trigger,     // 动作触发
    ConfigEPos := Config,       // 配置位
    Position := Target_Pos,     // 目标位置
    Velocity := Target_Vel,     // 目标速度
    OverV := 1.0,               // 速度倍率100%
    OverAc := 1.0,              // 加速度倍率100%
    OverDec := 1.0,             // 减速度倍率100%
    CancelTraversing := TRUE,   // 允许运动
    IntermediateStop := TRUE,   // 允许连续运行
    HWIDSTW := HW_1,            // 硬件标识符(STW),从硬件组态获取
    HWIDZSW := HW_2,            // 硬件标识符(ZSW),从硬件组态获取
    // 输出参数,可用于监控
    Status := ,
    ActPosition := ,
    ActVelocity := ,
    AxisRef := 
);

// 3. 控制逻辑(简化)
// 轴使能:按下启动按钮(I0.0),Axis_Enable置1
Axis_Enable := I0.0;

// 定位触发:按下触发按钮(I0.1),Trigger产生上升沿
Trigger := I0.1 AND NOT I0.1_Prev;
I0.1_Prev := I0.1;

// 定位完成:EPosZSW1.BIT0置1,触发后续动作(如Q0.0输出)
IF FB284_Instance.EPosZSW1.%X0 THEN
    Q0.0 := TRUE;
ELSE
    Q0.0 := FALSE;
END_IF;

4. 调试运行

  1. 下载程序到PLC,切换PLC到RUN模式,确保驱动器无故障报警。

  2. 先执行回零操作(ModePos=4),触发后观察AxisRef是否置1,确认回零完成。

  3. 触发绝对定位动作,观察ActPosition是否逐步接近Target_Pos,定位完成后EPosZSW1.%X0是否置1。

  4. 若定位偏差过大,调整电子齿轮比或定位速度、加减速度;若出现报警,根据Status状态码和DiagID诊断代码排查故障。


上一篇:西门子间接寻址

下一篇:电压互感器

返回列表
Copyright © 2026 潍坊乾发机电有限公司 XML