您好,欢迎访问泰安宏盛自动化科技有限公司!
20年专注工控自动化研发制造 系统设计\制作\安装一条龙服务
全国咨询热线:18605386049
当前位置: 首页 > 技术资料 > 程序案例

西门子博图 | FB284库指令输入输出详解

作者:小编 时间:2025-08-30 18:32:15 点击:

西门子博图 FB284 库指令详细手册

1. 概述

FB284 是西门子 TIA Portal(博图)中用于 PROFINET 通信的标准功能块,主要实现 PROFINET IO 控制器与 PROFIBUS DP 从站之间的数据交换。该功能块通过 PROFINET 到 PROFIBUS 的网关设备,使传统 PROFIBUS DP 从站能够接入 PROFINET 网络,实现与 S7-1200/1500 等 PLC 的通信。


FB284 属于 "PROFIBUS DP/S7-1200/S7-1500 as DP Master" 库,支持在 S7-1200/S7-1500 PLC 中作为 DP 主站与 PROFIBUS DP 从站进行通信。

2. 功能块基本信息

  • 功能块类型:FB(功能块)
  • 所属库SIMATIC_NET_CP
  • 兼容 PLC:S7-1200 (固件 V4.0 及以上)、S7-1500 (固件 V1.8 及以上)
  • 作用:建立和管理与 PROFIBUS DP 从站的通信连接,实现数据交换

  • image.png

  • image.png

3. 引脚定义详解

3.1 输入参数 (Inputs)

参数名称数据类型描述取值范围
ModeINT操作模式选择1: 运行模式(正常数据交换)
2: 停止模式(暂停数据交换)
3: 复位模式(清除错误状态)
ControlWORD控制字,用于触发特定功能位 0: 1 = 启动数据交换
位 1: 1 = 复位错误状态
位 2: 1 = 保存参数到从站
其他位:保留,按设备手册定义
InputsANY指向 PLC 发送到 DP 从站的数据缓冲区需指向全局数据块 (DB),数据长度与从站匹配
OutputsANY接收 DP 从站数据的缓冲区需指向全局数据块 (DB),数据长度与从站匹配
DP_Slave_AddrINTDP 从站的物理地址1-126(PROFIBUS 标准地址范围)
Max_Input_LenINT最大输入接收的最大数据长度(字节)0-1440(根据从站支持的最大输入长度设置)
Max_Output_LenINT发送的最大数据长度(字节)0-1440(根据从站支持的最大输出长度设置)
Watchdog_TimeINT通信看门狗时间(ms)10-65535 ms(建议值:100-1000 ms)
HW_IDDWORD硬件标识符,指向 PROFIBUS 接口模块从硬件配置中获取的接口模块 ID
TimeoutTIME通信超时时间T#100MS - T#30S(默认 T#1S)

3.2 输出参数 (Outputs)

参数名称数据类型描述状态说明
StatusWORD功能块工作状态字位 0: 1 = 数据交换正常
位 1: 1 = 存在错误
位 2: 1 = 看门狗超时
位 3: 1 = 从站未就绪
位 4: 1 = 参数错误
位 5: 1 = 数据长度不匹配
Error_CodeINT错误代码0: 无错误
16#01: 初始化错误
16#05: 通信超时
16#0A: 数据长度不匹配
16#10: 从站未响应
16#15: 地址无效
Input_LenINT实际接收的数据长度(字节)0 到 Max_Input_Len 之间
Output_LenINT实际发送的数据长度(字节)0 到 Max_Output_Len 之间
BusyBOOL忙信号TRUE: 功能块正在处理数据交换
FALSE: 空闲状态
DoneBOOL完成信号TRUE: 一次数据交换完成
FALSE: 未完成
ErrorBOOL错误信号TRUE: 存在错误
FALSE: 无错误
DP_StatusWORDDP 从站状态信息反映从站的具体状态(参考从站手册)

3.3 静态参数 (Static)

参数名称数据类型描述
Last_ErrorINT上一次发生的错误代码
Cycle_CounterUINT数据交换循环计数器
StateINT功能块内部状态机值

4. 典型应用配置步骤

4.1 硬件配置

  1. 在 TIA Portal 中创建新项目,添加相应的 PLC(如 S7-1214C)
  2. 添加 PROFINET 到 PROFIBUS 网关(如 SCALANCE XP208-2IRT)
  3. 在网关下添加 PROFIBUS DP 从站设备
  4. 记录 PROFIBUS 接口模块的 HW_ID(硬件标识符)
  5. 配置 DP 从站地址,确保与实际设备地址一致

4.2 软件配置

  1. 从库中调用 FB284,生成背景数据块(如 DB284)
  2. 定义输入输出数据缓冲区(如 DB10 为发送区,DB11 为接收区)
  3. 配置 FB284 的输入参数:
    plaintext
    Mode := 1;                  // 运行模式
    Control := 16#0001;         // 启动数据交换
    Inputs := P#DB10.DBX0.0 BYTE 8;  // 发送缓冲区,8字节
    Outputs := P#DB11.DBX0.0 BYTE 8; // 接收缓冲区,8字节
    DP_Slave_Addr := 3;         // DP从站地址为3
    Max_Input_Len := 8;         // 最大接收长度8字节
    Max_Output_Len := 8;        // 最大发送长度8字节
    Watchdog_Time := 500;       // 看门狗时间500ms
    HW_ID := "PROFIBUS接口模块".HW_ID;  // 硬件标识符

4.3 程序调用

在 OB1(主循环组织块)中调用 FB284:


plaintext
CALL "DP_Master" , DB284
     Mode            := 1
     Control         := 16#0001
     Inputs          := P#DB10.DBX0.0 BYTE 8
     Outputs         := P#DB11.DBX0.0 BYTE 8
     DP_Slave_Addr   := 3
     Max_Input_Len   := 8
     Max_Output_Len  := 8
     Watchdog_Time   := 500
     HW_ID           := "PROFIBUS接口".HW_ID
     Timeout         := T#1S
     Status          => DB284.Status
     Error_Code      => DB284.Error_Code
     Input_Len       => DB284.Input_Len
     Output_Len      => DB284.Output_Len
     Busy            => DB284.Busy
     Done            => DB284.Done
     Error           => DB284.Error
     DP_Status       => DB284.DP_Status

5. 错误处理与诊断

5.1 常见错误及解决方法

错误代码描述解决方法
16#05通信超时检查 PROFIBUS 物理连接
确认从站电源已上电并正常运行
增大 Watchdog_Time 值
16#0A数据长度不匹配检查 Max_Input_Len/Max_Output_Len 是否与从站规格一致
确认 Inputs/Outputs 指向的缓冲区大小是否正确
16#10从站未响应检查从站地址是否正确
确认从站是否正确接入网络
检查从站是否故障
16#15地址无效确认 DP_Slave_Addr 在 1-126 范围内
确认该地址的从站是否存在

5.2 错误处理程序示例

plaintext
// 错误处理逻辑
IF "DB284".Error THEN
    "Error_Flag" := TRUE;
    "Error_Message" := "DB284".Error_Code;
    
    // 尝试复位错误
    "DB284".Control := 16#0002;  // 置位错误复位位
    "Reset_Timer" := T#2S;       // 保持复位信号2秒
    "Reset_Active" := TRUE;
END_IF

// 复位信号处理
IF "Reset_Active" THEN
    IF "Reset_Timer" <= T#0S THEN
        "DB284".Control := 16#0001;  // 恢复正常控制字
        "Reset_Active" := FALSE;
        "Error_Flag" := FALSE;
    END_IF
END_IF

6. 使用注意事项

  1. 数据一致性:确保 Inputs/Outputs 指向的数据块具有足够的长度,且不与其他程序块冲突
  2. 地址设置:DP_Slave_Addr 必须与实际从站的物理地址完全一致,可通过从站设备上的拨码开关或软件配置修改
  3. 看门狗时间:Watchdog_Time 应设置为从站响应时间的 2-3 倍,过短会导致频繁超时,过长则会延长故障检测时间
  4. 循环调用:FB284 应在 OB1 中循环调用,调用间隔应小于 Watchdog_Time 的一半
  5. 参数保存:如需将参数永久保存到从站,可将 Control 的位 2 置 1(16#0004),完成后需复位该位
  6. 硬件标识符:HW_ID 必须正确指向 PROFIBUS 接口模块,否则会导致通信失败


QQ在线咨询
联系电话
17658151177
售后服务
17658151177