一、 导读
前几天一位搞电气的朋友问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块的接口区中建立如下图所示的接口区变量。

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


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

四、结语
在西门子PLC中很多没有的指令或是功能块我们可根据要求自行搭建,这对应后续使用来说会很方便,在搭建功能块或是指令时SCL编程语言的应用就极为重要了,所以对于SCL编程语言的学习 ,个人认为是每一位PLC工程师都应该去学习掌握的。
-
fifo
+关注
关注
3文章
406浏览量
45499 -
SCL
+关注
关注
1文章
244浏览量
17937
原文标题:如何使用SCL编写一个FIFO的功能块
文章出处:【微信号:gkongbbs,微信公众号:工控论坛】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
什么是FB功能块?为什么要使用FB功能块?如何制作一个FB功能块?
基于FF现场总线的先进PID功能块设计
基于EPA的PID功能块的设计及实现
腾控MODBUS主站功能块通迅详解
西门子PLC系统功能块和系统功能
SCL编辑器创建功能块
调用功能块(FB或SFB)
使用SCL函数块编写计算保质期的应用程序
SuperImposed位置控制功能块讲解
基于PLC编程报警功能块的实现

使用SCL编写FIFO功能块
评论