[西门子] 如何使用SCL编写一个FIFO的功能块

[复制链接]
查看239 | 回复0 | 2025-2-8 21:28:13 | 显示全部楼层 |阅读模式

一、 导读   

    前几天一位搞电气的朋友问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工程师都应该去学习掌握的。有需要SCL手册和该文章FIFO案例的可扫描下面二维码,添加客服微信,领取手册和案例。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则