一、 導讀
前幾天一位搞電氣的朋友問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文章
390瀏覽量
43881 -
SCL
+關注
關注
1文章
240瀏覽量
17182
原文標題:如何使用SCL編寫一個FIFO的功能塊
文章出處:【微信號:gkongbbs,微信公眾號:工控論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
什么是FB功能塊?為什么要使用FB功能塊?如何制作一個FB功能塊?
![什么是FB<b class='flag-5'>功能塊</b>?為什么要使用FB<b class='flag-5'>功能塊</b>?如何制作一個FB<b class='flag-5'>功能塊</b>?](https://file1.elecfans.com/web2/M00/AD/41/wKgaomVMlDiAKv11AAF4xq0wQf4632.jpg)
基于FF現場總線的先進PID功能塊設計
基于EPA的PID功能塊的設計及實現
騰控MODBUS主站功能塊通迅詳解
![騰控MODBUS主站<b class='flag-5'>功能塊</b>通迅詳解](https://file.elecfans.com/web2/M00/49/FA/pYYBAGKhvIGAO3HWAAA2_sQMrMg453.png)
西門子PLC系統功能塊和系統功能
SCL編輯器創建功能塊
調用功能塊(FB或SFB)
使用SCL函數塊編寫計算保質期的應用程序
基于PLC編程報警功能塊的實現
![基于PLC編程報警<b class='flag-5'>功能塊</b>的實現](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論