當前位置: 首頁 > 工業控制產品 > 自動化控制 > PLC可編程控制器 > 大型PLC可編程控制器
發布日期:2022-04-22 點擊率:25 品牌:西門子_Siemens
一、前言 FIFO功能即FirstInputFirstOutput先進先出,在很多情況下要用到此功能。以前此技術主要在計算機高級語言開發和數據結構設計中應用,但隨著PLC技術的日益突飛猛進,需要通過PLC進行數據傳送、緩存存儲的事件越來越多,尤其是在數據緩存過程中,對FIFO功能使用場合越來越多。西門子S7-300/400PLC是德國西門子公司的中型、大型PLC,也是當今世界上工控行業的主流產品。在SiemensS7系列PLC開發軟件SimaticSTEP7工具中,Siemens公司提供了兩個專用功能FC84ATT和FC85FIFO,通過這兩個FC功能完成對FIFO功能數據的寫入和導出,但是每次只能允許一字,也就兩字節長的數據。為了實現每次多字節的FIFO功能,需要用戶自己開發相應的功能塊FB來實現,在本文中就介紹了實現每次20字節FIFO功能FB200功能塊的代碼,以及實際應用舉例。 二、SiemensFC84ATT和FC85FIFO功能的介紹 1、FC84ATT 1.1、FC84ATT功能和構成介紹 FC84ATT是實現增加數據到FIFO功能的數據存儲區中,通過每次執行此指令實現把一字的數據增加到FIFO功能數據存儲區中,FIFO功能存儲區中以字為單位,具體組成如下: l存儲區表中第一字為FIFO存儲區允許的最大數據存儲個數,即最多可以存儲多少個字的數據。 l存儲區表中第二字為FIFO存儲區當前已經存儲數據的個數,即已經存儲了多少個字的數據。 l存儲區表中從第三字開始為FIFO存儲區實際存儲的數據。 1.2、FC84ATT功能參數說明 通過SimaticSTEP7進行程序開發時,調用FC84ATT功能,出現如下圖: 從圖2-1中可以看到,FC84ATT共有四個參數,分別為EN、DATA、TABLE和ENO,在四門子資料中對其描述如下表2-1: 1.3、舉例說明 如果信號M100.0的狀態為1(即被激活),FC84ATT功能被執行。在下面的例子中,增加的數據寫到FIFO表中的第五行,FIFO的容量也就是FIFO表中第二行由4變為5。如果FC84ATT被執行而且沒有錯誤發生,那么使能輸出ENO置為1,具體如下: 2、FC85FIFO 2.1、FC85FIFO功能和構成介紹 FC85FIFO是完成把FIFO表中的數據按照先進先出原則,依次讀出,以供使用,與FC84ATT配合使用,完成FIFO的寫進與讀出功能。通過每次執行此指令實現把一個字的數據從FIFO功能數據存儲區中讀出,FIFO功能存儲區中以字為單位,具體組成如下: l存儲區表中第一字為FIFO存儲區允許的最大數據存儲個數,即最多可以存儲多少個字的數據。 l存儲區表中第二字為FIFO存儲區當前已經存儲數據的個數,即已經存儲了多少個字的數據。 l存儲區表中從第三字開始為FIFO存儲區實際存儲的數據,也是FIFO指針所指向的數據。 2.2、FC85FIFO功能參數說明 通過SimaticSTEP7進行程序開發時,調用FC85FIFO功能,出現如下圖: 從圖2-1中可以看到,FC85FIFO共有四個參數,分別為EN、ENO、TABLE和RET_VAL,在西門子資料中對其描述如下表2-2: 2.3、舉例說明 如果信號M100.0的狀態為1(即被激活),FC85FIFO功能被執行。在下面的例子中,從FIFO存儲區域中讀出的數據寫到RET_VAL指定的地址中,FIFO的容量也就是FIFO表中第二行由5變為4。同時整個FIFO中存儲的數據依次向上移動一行。如果FC85FIFO被執行而且沒有錯誤發生,那么使能輸出ENO被置為1。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV