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

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

3天内不再提示

使用SCL编写FIFO功能块

工控论坛 来源:工控论坛 2025-02-09 10:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、 导读

前几天一位搞电气的朋友问S7-1200中如何做个先入先出的功能,说原来用S7-200SMART的时候有填表指令和FIFO指令可以实现该功能,现在S7-1200中找了一圈都没有找到相关的指令。 其实要实现这个功能可直接使用SCL的编程方法编写一个这样的功能块就可以了,(在文章的结尾会为大家提供参考示例程序和SCL相关的学习资料,供有需要的朋友下载学习)。

二、FIFO功能的条件分析

1)设置一个堆栈的缓存区,大小可自由指定,如指定大小为10个字的存储空间。 2)设置一个入栈条件变量和一个出栈条件的变量,数据类型为BOOL。 3)设置一个需要入栈的数据地址,该地址使用和缓存区指定的相同的数据类型。 4)设置一个出栈后数据存放的地址,该地址使用和缓存区指定的相同的数据类型。 5)设置一个指针,用来指示缓冲区中的地址 6)入栈时把需要入栈的数据放入到通过指针指定的缓存区的地址中,数据放完后指针加1,指向下一个地址。 7)出栈的时候,把缓冲区中的第一地址数据独处到出栈数据存储的地址,然后原缓冲器中的数据每个数据都往前移动。

三、FIFO程序块编写

新建一个FB块并对该FB块命名为”FB_FIFO”,该块的编程语言选着SCL编程语言,在该FB块的接口区中建立如下图所示的接口区变量。

fe5e1496-e625-11ef-9310-92fbcf53809c.png

接口区定义完成后,使用SCL编写对应的程序,通过REGION指令把程序范围入栈操作和出栈操作两段。

fe7eff94-e625-11ef-9310-92fbcf53809c.png

fe9625c0-e625-11ef-9310-92fbcf53809c.png

在OB块中调用该功能块,并新建一个DB块,按在FB块接口区中定义的变量建立相关的变量。

feb2f268-e625-11ef-9310-92fbcf53809c.png

四、结语

西门子PLC中很多没有的指令或是功能块我们可根据要求自行搭建,这对应后续使用来说会很方便,在搭建功能块或是指令时SCL编程语言的应用就极为重要了,所以对于SCL编程语言的学习 ,个人认为是每一位PLC工程师都应该去学习掌握的。

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

    关注

    3

    文章

    406

    浏览量

    45499
  • SCL
    SCL
    +关注

    关注

    1

    文章

    244

    浏览量

    17937

原文标题:如何使用SCL编写一个FIFO的功能块

文章出处:【微信号:gkongbbs,微信公众号:工控论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是FB功能块?为什么要使用FB功能块?如何制作一个FB功能块

      FB功能块是一种封装了特定逻辑功能的模块。它类似于一个子程序或函数,但是它有自己的内部变量和接口。FB功能块可以被多次调用,并且每次调用都会创建一个新的实例。
    的头像 发表于 11-09 16:13 6624次阅读
    什么是FB<b class='flag-5'>功能块</b>?为什么要使用FB<b class='flag-5'>功能块</b>?如何制作一个FB<b class='flag-5'>功能块</b>?

    NX1P2编写功能块有哪些注意事项

    NX1P2编写功能块有哪些注意事项?有哪些建议?
    发表于 09-29 07:37

    如何去使用TwinCAT的功能块

    如何去使用TwinCAT的功能块
    发表于 10-08 06:02

    基于FF现场总线的先进PID功能块设计

    本文在基金会现场总线的标准PID 功能块结构的基础上,结合自适应模糊PID 控制理论和功能块技术,提出了自适应模糊PID 功能块的设计方法,并且在水箱温度控制系统中进行验证
    发表于 08-14 08:59 12次下载

    基于EPA的PID功能块的设计及实现

    本文介绍了EPA功能块基本模型及功能块定义;并主要描述了PID功能块在单片机上的设计方案及PID功能块过程控制算法的具体实现,并通过组态软件验证了PID的过程控制算法及抗干
    发表于 09-26 14:40 7次下载

    腾控MODBUS主站功能块通迅详解

    TCMODBUS功能块编程非常简单,只需要把要读写的从站参数配置好,一一的写好所有的功能块后,调用TCMODBUSRUN功能块即可,无需要各功能块时间上的配合,由系统主动的进行调度,通
    发表于 10-11 11:21 8次下载
    腾控MODBUS主站<b class='flag-5'>功能块</b>通迅详解

    西门子PLC系统功能块和系统功能

    系统功能块(SFB )和系统功能(SFC ) 已经编好程序 用户不需要每个功能都自己编程。S7 CPU为用户提供了一些已经编好程序,这些
    的头像 发表于 12-23 17:55 1.3w次阅读

    CPM功能块使用入门

    CPM功能块使用入门免费下载。
    发表于 05-09 09:58 27次下载

    SCL编辑器创建功能块

    FUNCTION_BLOCK :定义号或者的符号名称。若是一个符号,例如 SIM _VAL,则在编译SCL代码中的以前,需要在符号表中为该符号名分配一个
    的头像 发表于 04-19 11:13 2078次阅读

    调用功能块(FB或SFB)

    功能块调用时输出赋值是不可能的。声明的输出参数的值存贮在实例数据中。在那它能够被所有功能块存取。要读取输出数据,必须在功能块中定义存取。
    的头像 发表于 04-20 15:35 5161次阅读

    使用SCL函数编写计算保质期的应用程序

    在以下部分中,将创建 SCL 函数SCL_Best_before_date” 。 可使用 SCL 函数计算保质期。
    的头像 发表于 10-18 15:15 1718次阅读

    SuperImposed位置控制功能块讲解

    本节主要讲解SuperImposed位置控制功能块: MC_MoveSuperImposed MC_HaltSuperImposed MC_MoveSuperImposed可在基础运动控制功能块
    发表于 03-08 14:29 3476次阅读

    SCL语言设计一键启停功能块

    设计一个具有一键启停功能功能块,具有以下功能
    的头像 发表于 03-26 11:45 3010次阅读

    基于PLC编程报警功能块的实现

    ,报警程序的编写是不可或缺的,但是如何给相同或类似的报警汇总出一个功能块来,还没有定论,当然有 各种各样可以实现的方法,以下是我在平常的程序编写中已经习惯性用的FB报警功能块,感觉有
    发表于 04-18 11:30 4次下载
    基于PLC编程报警<b class='flag-5'>功能块</b>的实现

    Freelance函数和功能块使用指南 V9.1

    函数 在执行过程中,一个函数返回一个确定的数据,函数不含状态信息。当一个函数带相同的参数(输入参数)调用时,总是获得相同的结果。 功能块 在执行过程中,功能块可以提供一个或多个数据元素,相同
    发表于 08-09 15:25 2次下载