加入收藏 在线留言 联系我们
关注微信
手机扫一扫 立刻联系商家
全国服务热线18475208684

西门子授权代理商-华东区西门子PLC-S7-1500 S7-400PLC 西门子s7 200 smart代理商

更新时间
2024-11-05 08:00:00
价格
请来电询价
PLC触摸屏代理商
西门子代理商
伺服电机驱动电缆
西门子一级代理商
变频器直流调速器
西门子一级总代理商
联系电话
13922889745
联系手机
18475208684
联系人
向小姐
立即询价

详细介绍

基本过程库(LBP)三:纯干货!手把手教你如何使用LBP_Aggr8库应用及仿真(附实例程序下载)

前言

基本控制库 (LBP)系列的文章一和文章二(文末有跳转链接),分享了LBP相关的说明及使用实施前的一些通用设置,本系列中所有实例均基于此设置,如未进行设置可能造成编译报错,无法使用的情况出现。请在进行实例测试前,先进行基础设置。

图片image-20240826170029776

01 测试环境

软件:

  • TIA Portal V17
  • STEP 7 Professional
  • Wincc Comfort(TP900 Comfort)
  • S7-PLCSIM (仿真工具)
  • S7-PLCSIM Advanced V6.0 (仿真工具)
  • 硬件:

  • CPU 1513-1 PN (仿真环境,非必须)
  • TP900 Comfort (仿真环境,非必须)
  • 注:小编电脑已安装软件如下:

    图片image-20240826111028433

    02 LBP_Aggr8--控制Zui多8个集合

    功能描述:

    该块管理多达八个集合的自动开/关和切换。以下是可能的模式:

  • 根据优先级顺序切换
  • 开启:释放的具有Zui高优先级的集合
  • 关闭:运行中的具有Zui低优先级的集合 优先级控制的驱动在参数化了不同的优先级时激活。
  • 考虑运行时间的切换
  • 开启:释放的具有Zui短总运行时间的集合
  • 关闭:运行中具有Zui长总运行时间的集合 如果输入“parSwitchByTime”为TRUE,并且仅适用于具有相同优先级的集合,则此操作模式激活。
  • 考虑周期时间的切换
  • 开启:释放的具有Zui短Zui后一个周期时间的集合
  • 关闭:运行中具有Zui长当前周期时间的集合
  • 图片image-20240826103154302

    输入参数说明:

    参数数据类型描述
    identNameString[30]识别名称
    switchCmdBool每个上升沿执行切换
    parSwitchByTimesBool当设置为true时,根据时间控制切换
    requestUInt请求的集合数量(0到8)
    indAggr1 至 indAggr8Byte集合1至8的状态,位0 - 真:集合就绪,位1 - 真:集合已开启,位4至7 - 开启序列中的位置(优先级)
    delayTimeTime开启延迟时间
    limitSecsDInt时间控制切换的运行时间(如果parSwitchByTimes = true)
    restTimeTime关闭后的休息时间(如果parSwitchByTimes = true)
    resetBool真:重置错误

    输出参数说明:

    参数数据类型描述
    onByte位0-7 – 对集合1-8的开启(true)或关闭(false)命令
    errNoSwitchBooltrue: 没有集合可用
    errAggrByte一个或多个集合的错误
    switchEnableBooltrue: 开关操作可能
    switchActiveBooltrue: 开关操作活跃
    intErrorWord位0 - true: 系统错误(读取系统时间失败)

    输入输出接口参数(panels):

    参数数据类型描述
    settingsPLCUDT位0-7 – 对集合1-8的开启(true)或关闭(false)命令
    settingsHMIUDTtrue: 没有集合可用
    statusHMIUDT一个或多个集合的错误
    alarms1WordComfort/Advanced面板离散量报警集合
    alarms2WordComfort/Advanced面板离散量报警集合

    注:panels参数类型为数组,数组大小由链接HMI数量决定;

    用户定义类型--settingsHMI

    参数数据类型描述
    parSwitchByTimesBooltrue: 开关时间控制
    requestUInt所需集合的数量
    priosArray[0..7] of UInt集合1至8的开关顺序位置
    delayTimeTime延迟时间(再次开启前的空闲时间)
    limitSecsTime时间控制开关的Zui大运行时间
    restTimeTime关闭后剩余的运行时间
    noteString[80]参见“note”
    resetBool重置错误,开关命令和剩余时间
    opStationString[16]参见“opStation”
    overwriteWord参见“overwrite”位分配:位0 – 开关命令/时间开关/全部开关(“over”)位1 – 开关命令(“cmd”)位2 – 时间开关(“cmd”)位3 – 请求(“over”)位4 – 延迟时间(“over”)位5 – 休息时间(“over”)... 位7 – 限制时间(“over”)位8 – 开关顺序位置(“over”)
    opSecsArray[0..7] of Time集合1至8的运行时间
    alarmsInfoUDInt报警信息
    alarmsAckUDInt报警确认

    用户定义类型--settingsPLC

    参数数据类型描述
    parSwitchByTimesBooltrue: 开关时间控制。
    requestUInt所需集合的数量。
    priosArray[0..7] of UInt集合1到8的开关顺序位置。
    delayTimeTime延迟时间(再次开启前的空闲时间)。
    limitSecsTime时间控制开关的Zui大运行时间。
    restTimeTime关闭后的休息时间。

    用户定义类型--statusHMI

    参数数据类型描述
    identNameString[30]识别名称
    nextUpInt下一个要启动的集合编号。
    nextDownInt下一个要关闭的集合编号。
    diffLimitTime运行时间和Zui大执行时间之间的差异。
    cycleSecsArray[0..7] of Time集合1至8的运行时间(数组字段0对应集合1)。
    restTimesArray[0..7] of Time集合1至8剩余的休息时间(数组字段0对应集合1)。
    readysArray[0..7] of Booltrue: 集合准备就绪可以启动(数组字段0对应集合1)。
    errorsArray[0..7] of Booltrue: 集合被中断(数组字段0对应集合1)。
    runCmdsArray[0..7] of Bool集合1至8的启动命令(数组字段0对应集合1)。
    onsArray[0..7] of Booltrue: 集合已启动(数组字段0对应集合1)。
    requestUInt请求的集合数量。
    errNoSwitchBooltrue: 没有集合可用。
    runUpDownBool集合正在启动或关闭。
    switchenableBooltrue: 开关操作可能。
    03 LBP_Aggr8功能块在PLC中配置

    LBP_Aggr8功能块使用步骤如下(新建TIA Portal 项目,添加PLC,并完成系列文章一和文章二中的设置,过程不在赘述);

    1. 在Main程序中调用LBP_Aggr8功能块,并指定背景数据块;(相应UDT,自动复制完成)

      图片image-20240826112750011
    2. 新建全局DB,根据功能块接口建立IO变量;(实际应用中可使用结构体,实现快速添加)

      图片image-20240826133459846

      注:参数panels使用数据块PanelsBlock(库文件中已有,拖拽使用),数组数量由链接HMI数量决定

    04 LBP_Aggr8功能块在HMI中的应用

    基本控制库 (LBP)主要应用于相同对象的快速批量处理,因此LBP库提供了相应的图形面板库。本系列实例均基于Wincc Comfort面板进行分享,使用步骤如下:(本实例基于系列文章一和二中的设置进行,因此HMI新建及设置不在赘述

    1. 在HMI变量中新建变量表“LBP_Aggr8”(也可不用新建),并将PLC程序中LBP_Aggr8背景数据块中“LBP_typeAggr8Sym”数据类型拖入变量表中,并重命名该变量;

      图片image-20240826151422990
    2. 从项目库中将“LBP_Aggr8” 及 “LBP_General”画面模板拖扩HMI画面导航栏中

      图片image-20240826161708661
    3. 从项目库中模板副本中复制“LBP_Templates”到HMI画面管理中的模板;

      图片image-20240826143921630
    4. 在项目库中选择报警类别,并拖入到HMI报警中

      图片image-20240826144352529
    5. 从Demo项目中,将HMI报警中与“Aggr8”相关的离线报警全部复制到当前项目中;

      图片image-20240826145008243

      注:每个FB实例都需要,单独的一组报警信息;

    6. 将报警信息中的名称,和HMI确认变量前缀或后缀(Demo中:InstDemo_2_1_instAggr8),批量替换为项目HMI变量中实例名称;

      图片image-20240826151804587
    7. 打开HMI根画面(实际应用中根据需要选择画面),并从项目库中选择“LBP_SmAggr8”图例,并拖入到HMI画面中

      图片vmware_cAML1PMhc8
    8. 打开图例属性窗口,并选择接口选项,将接口参数与PLC FB背景数据块中的“statSymbolAggr8”进行链接

      图片image-20240826152745114
    05 LBP_Aggr8功能块仿真调试

    完成程序和HMI设计,即可使用PLC-Sim进行仿真测试,步骤如下:

    1. 使用PLC-SIM启动PLC仿真,并启动该实例,功能块运行;

      图片image-20240826170524096
    2. 点击TP900,启动仿真器;

      图片image-20240826170844764
    3. 点击功能块图标,进入样例测试模板;

      图片image-20240826170942915
    4. 以上配置仿真测试完成,更多功能请自行测试;

    06 常见问题
    1. LBP_Aggr8拖入后,接口参数数据类型与实际不符,需要更新数据接口;

      图片image-20240826115203959

      处理方法:打开LBP,点击功能块上方警告信息,选择“编辑类型”后,右键出错的接口选择“更新界面”问题解决;

      图片image-20240826115234502图片image-20240826115256891


    相关产品

    联系方式

    • 电  话:13922889745
    • 经理:向小姐
    • 手  机:18475208684
    • 微  信:18475208684