0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

西门子博图中带有背景数据块的基本指令不同实例的区别和应用

机电信息杂志 来源:机电信息杂志 2023-05-09 15:20 次阅读

葛东霞

济南工程职业技术学院

摘 要:

西门子博图的PLC编程软件中,带有背景数据块的基本指令有单个实例、多重实例、参数实例三种背景数据块应用形式。现介绍了三种形式的区别,希望能够帮助大家掌握正确的应用方法。

0 引言

西门子博图的PLC编程软件中,带有背景数据块的基本指令主要是定时器和计数器指令。这两个指令在编程时使用率是极高的,这两个指令的背景数据块在主程序OB、功能块FC和FB块中有单个实例、多重实例、参数实例三种不同的应用形式[1]。本文将详细介绍这两个指令三种背景数据块形式的区别和应用。

1 指令的背景数据块

西门子博图的PLC编程软件中,有些指令是不带背景数据块的,比如位逻辑运算指令、比较指令、数学运算指令、移位循环指令等。即使个别指令需要数据存储通常也是1个存储位就可以解决,不再单独设立背景数据块,比如边沿指令会把上一个扫描周期的数据存储在中间寄存器区M的1个位中以便进行比较,这个位在添加指令时直接设置即可。

基本指令中的定时器、计数器指令除了有输入、输出信号,还有其他的设置信号和过程数据,比如定时器指令会设置定时时间、复位信号等,过程数据会有当前时间;计数器会设置计数个数、复位信号或加载信号,过程数据会有当前个数等。为了提升指令使用的便利性,博图专门为这样的指令设计了对应的数据块用于存储数据。在添加指令时,博图会自动加载对应的数据块支持指令的运行,这个数据块称作指令带有的背景数据块。当然,工艺指令比如PID指令、运动控制等指令也是带有背景数据块的,但是这些指令不属于本文提到的基本指令类型,其应用也是不同的,请读者注意区分。

基本指令背景数据块单个实例、多重实例、参数实例这三种应用形式主要是根据指令的背景数据块的来源及使用特点进行区分的。下面介绍三种应用形式在主程序OB块和功能块FC、FB块中的特点和应用。

2 在主程序OB块中的应用

以定时器为例,在主程序OB块中添加定时器指令时,博图弹出的调用选项对话框中只有单个实例的背景数据块可以选择。指令添加后,该数据块可以在“项目树”中通过“程序块—系统块—程序资源”路径进行查看,并且数据块会显示在指令上方。而且,每使用一个定时器就会在程序资源处生成一个对应的背景数据块,当使用较多的定时器或者计数器指令时会占用较多的数据块资源,同时也不方便管理。这里需要注意的是,在使用定时器时,不同的定时器严禁共用背景数据块,否则会导致定时错误。

2 在功能块FC块中的应用

功能块FC块是没有专用存储区的函数块[2-3],在FC块中使用定时器、计数器指令时,它们的背景数据块如何存储就成为一个问题。以定时器为例,在功能块FC块中添加定时器指令时,博图弹出的调用选项对话框中有单个实例和参数实例两种背景数据块形式可以选择,下面分别进行介绍。

3.1 单个实例

FC块中添加定时器使用单个实例的背景数据块与在OB块中的单个实例形式是相同的,数据块仍是在程序资源中可以查看,同样存在占用数据块资源、不方便管理的问题。

3.2 参数实例

FC块中添加定时器使用参数实例是指函数块将指令的背景数据块保存在指定块参数的实例中,这里提到的指定块是指用户为存储数据单独设置的数据块,具体操作如下:

在程序块中添加一个名为“数据块_1”的全局类型的数据块,在“数据块_1”中添加名为“定时器”、数据类型为“IEC_TIMER”的数据,这就为FC块中的定时器准备好了数据存储空间,如图1所示。

f4f3ac7e-ec65-11ed-90ce-dac502259ad0.png

在FC功能块中添加定时器指令,选择参数实例,此时指令的背景数据块将作为输入/输出(InOut)类型参数[1],出现在功能块接口参数的输入/输出类型参数中,如图2所示。

f51fdeca-ec65-11ed-90ce-dac502259ad0.png

由于是输入/输出类型参数,当在OB1中调用FC块时需要对其赋值,这时则需要将提前建好的指定数据块“数据块_1”中的“定时器”数据赋值给定时器的背景数据块。此时,定时器的具体定时时间仍是未知的,可以在程序中使用MOVE指令将具体定时时间传送到“数据块_1”.定时器.PT中,这样在FC功能块中为添加的定时器选择参数实例背景数据块的操作步骤就结束了。

建立专有数据块使用参数实例,将指令的背景数据块整合在指定数据块中,可以解决占用很多数据块资源和背景数据块不方便管理的问题。在建立数据块时,如果同种类型的背景数据块较多,可以通过在指定数据块中设置该类型的数组来实现并提高效率。另外,建立用户数据类型(UDT)也是提高工作效率的好方法,本文最后会进行介绍。

4 在功能块FB块中的应用

FB块是带有自身存储区的函数块[2-3]。主程序OB每一次调用FB块,博图软件都会自动给FB块分配对应的背景数据块用于存储数据。函数块的所有数据都可以永久存储在自身的背景数据块中,块执行结束后这些数据也不会丢失,这样对于需要存储数据的指令来说就会方便许多。

仍然以定时器为例,在功能块FB块中添加定时器指令时,博图软件弹出的调用选项对话框中有单个实例、多重实例和参数实例三种背景数据块形式可以选择,下面分别进行介绍。

4.1 单个实例

FB块中添加定时器使用单个实例的背景数据块与在OB块、FC块中的单个实例形式相同。

4.2 多重实例

FB块中添加定时器使用多重实例的背景数据块是指将指令本身的数据保存在调用函数块的背景数据块中。因为只有FB功能块在调用时博图会分配背景数据块,所以多重实例形式只有FB块可以使用,FC块由于没有存储区是不能使用的。在FB功能块中添加定时器指令,选择多重实例,指令的背景数据块作为静态(Static)类型参数,将出现在功能块接口参数的静态类型参数中,如图3所示。当在主程序0B块中调用FB块时,可以在博图分配的函数块背景数据块中看到定时器的数据块,如图4所示。由于静态类型参数不同于输入/输出类型参数,在功能块调用时是不产生赋值端口的,定时器的具体定时时间仍然可以在程序中使用MOVE指令赋值到FB块背景数据块对应的定时器中(本例位置“块_2_DB”.IEC_Timer_0_Instance.PT),如图5所示,注意这里赋值的目的地与FC块参数实例的赋值到指定数据块不同。

f567511a-ec65-11ed-90ce-dac502259ad0.png

f5a0f334-ec65-11ed-90ce-dac502259ad0.png

f5d11aa0-ec65-11ed-90ce-dac502259ad0.png

多重实例实现了数据的集中,又不像FC块那样需要单独建立数据块,是很多编程人员的首选。

4.3 参数实例

FB块中添加定时器使用参数实例的背景数据块与在FC功能块中的参数实例形式相同,指令的背景数据块出现在功能块接口参数的输入/输出(InOut)类型参数中。用户需要建立指定数据块以支持指令数据的存储,此时在FB块本身的背景数据块中出现的指令数据块是不可用的。

5 用户数据类型(UDT)的应用[1]

对于一组多类型变量需要多次重复设置并使用时,为提高工作效率,会使用到用户数据类型。由于本文讨论的是带有背景数据块的基本指令,所以假设用户数据类型仅为使用定时器而设立。在“项目树”PLC数据类型中添加名为“定时器组”的新数据类型,并在该类型中建立多个定时器需要的“IEC_TIMER”类型的数据,如图6所示。在功能块FC、FB中可以选择“定时器组”数据类型快速完成参数的建立。

f615742a-ec65-11ed-90ce-dac502259ad0.png

5.1 多重实例形式

如果在添加定时器指令时选用多重实例形式,则需要将“定时器组”用户数据类型添加在功能块接口参数的静态(Static)类型参数中。其他操作与前面讲到的多重实例应用相同,与此对应,所有指令数据将归到FB块的背景数据块中,如图7所示。当然,此种用途只有FB功能块可以支持。

f65c42d8-ec65-11ed-90ce-dac502259ad0.png

5.2 参数实例形式

如果在添加定时器指令时选用参数实例形式,则需要将“定时器组”用户数据类型添加在功能块接口参数的输入/输出(InOut)类型参数中。其他操作与前面讲到的参数实例应用相同,与此对应,用户需要建立指定数据块以支持指令数据存储,如图7所示。功能块FC、FB块均可以使用。

6 结语

带有背景数据块的基本指令的单个实例、多重实例、参数实例三种背景数据块应用形式中,单个实例有占用数据块资源、不方便管理的特点。多重实例可以将指令本身的数据保存在调用函数块的背景数据块中,只有FB块可以使用。参数实例将指令本身的数据保存在用户建立的指定块参数的实例中,FC块、FB块都可以使用。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    4975

    文章

    12257

    浏览量

    454927
  • 西门子
    +关注

    关注

    92

    文章

    2850

    浏览量

    113778
  • 指令
    +关注

    关注

    1

    文章

    580

    浏览量

    35377
  • 定时器
    +关注

    关注

    23

    文章

    3148

    浏览量

    112041
  • 编程软件
    +关注

    关注

    3

    文章

    131

    浏览量

    22740

原文标题:西门子博图中带有背景数据块的基本指令不同实例的区别和应用

文章出处:【微信号:机电信息杂志,微信公众号:机电信息杂志】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    西门子S7-200PLC与西门子变频器MM440通讯程序实例

    西门子S7-200PLC与西门子变频器MM440通讯程序实例
    的头像 发表于 05-04 09:54 3596次阅读
    <b class='flag-5'>西门子</b>S7-200PLC与<b class='flag-5'>西门子</b>变频器MM440通讯程序<b class='flag-5'>实例</b>

    西门子PLC实例电子教程

    本书为西门子PLC实例电子教程,第一章就对PLC进行了概述,通过实例西门子 PLC进行了深度阐述,适合广大西门子PLC研究者研究学习之用
    发表于 07-19 16:09 0次下载
    <b class='flag-5'>西门子</b>PLC<b class='flag-5'>实例</b>电子教程

    西门子S7-200应用实例(入门经典)

    西门子S7-200应用实例(入门经典)。
    发表于 03-22 14:14 130次下载

    西门子PLC指令

    西门子PLC指令
    发表于 10-16 10:28 37次下载

    图解西门子与三菱PLC高级指令区别

    图解西门子与三菱PLC高级指令区别
    的头像 发表于 05-02 10:09 5955次阅读
    图解<b class='flag-5'>西门子</b>与三菱PLC高级<b class='flag-5'>指令</b>的<b class='flag-5'>区别</b>

    正确区分西门子和三菱指令

    史上最全西门子与三菱指令对照表
    的头像 发表于 07-04 10:34 5672次阅读
    正确区分<b class='flag-5'>西门子</b>和三菱<b class='flag-5'>指令</b>表

    西门子S7-200模拟量编程实例

    西门子S7-200模拟量编程实例说明。
    发表于 04-22 11:17 91次下载

    详解西门子S7-300基本指令应用

    详解西门子S7-300基本指令应用说明。
    发表于 04-22 14:58 23次下载

    西门子PLC的等时模式和非等时模式的区别

    西门子PLC的等时模式和非等时模式的区别说明。
    发表于 04-23 15:58 3次下载

    西门子PLC指令和程序设计

    西门子PLC指令和程序设计方法免费下载。
    发表于 05-07 09:42 116次下载

    LABVIEW与西门子S1200 通讯读写操作实例

    LABVIEW与西门子S1200 通讯读写操作实例
    发表于 10-08 16:22 93次下载

    西门子PLC数据传送指令的功能介绍

    西门子PLC数据传送指令用于各个编程元件之间进行数据传送,根据每次传送数据的多少可分为单个数据
    的头像 发表于 06-28 16:29 6709次阅读

    西门子基础指令大全

    西门子基础指令
    的头像 发表于 09-14 09:59 3786次阅读

    西门子常用PLC指令

    西门子常用PLC指令
    的头像 发表于 02-09 14:34 3782次阅读

    三菱or西门子品牌PLC的区别

    三菱PLC是日系品牌,编程直观易懂,学习起来会比较轻松,但指令较多。而西门子PLC是德国品牌,指令比较抽象,学习难度较大,但指令较少,所以学习三菱和学习
    发表于 02-20 14:09 204次阅读