葛東霞
濟南工程職業技術學院
摘 要:
在西門子博圖的PLC編程軟件中,帶有背景數據塊的基本指令有單個實例、多重實例、參數實例三種背景數據塊應用形式?,F介紹了三種形式的區別,希望能夠幫助大家掌握正確的應用方法。
0 引言
西門子博圖的PLC編程軟件中,帶有背景數據塊的基本指令主要是定時器和計數器指令。這兩個指令在編程時使用率是極高的,這兩個指令的背景數據塊在主程序OB、功能塊FC和FB塊中有單個實例、多重實例、參數實例三種不同的應用形式[1]。本文將詳細介紹這兩個指令三種背景數據塊形式的區別和應用。
1 指令的背景數據塊
西門子博圖的PLC編程軟件中,有些指令是不帶背景數據塊的,比如位邏輯運算指令、比較指令、數學運算指令、移位循環指令等。即使個別指令需要數據存儲通常也是1個存儲位就可以解決,不再單獨設立背景數據塊,比如邊沿指令會把上一個掃描周期的數據存儲在中間寄存器區M的1個位中以便進行比較,這個位在添加指令時直接設置即可。
基本指令中的定時器、計數器指令除了有輸入、輸出信號,還有其他的設置信號和過程數據,比如定時器指令會設置定時時間、復位信號等,過程數據會有當前時間;計數器會設置計數個數、復位信號或加載信號,過程數據會有當前個數等。為了提升指令使用的便利性,博圖專門為這樣的指令設計了對應的數據塊用于存儲數據。在添加指令時,博圖會自動加載對應的數據塊支持指令的運行,這個數據塊稱作指令帶有的背景數據塊。當然,工藝指令比如PID指令、運動控制等指令也是帶有背景數據塊的,但是這些指令不屬于本文提到的基本指令類型,其應用也是不同的,請讀者注意區分。
基本指令背景數據塊單個實例、多重實例、參數實例這三種應用形式主要是根據指令的背景數據塊的來源及使用特點進行區分的。下面介紹三種應用形式在主程序OB塊和功能塊FC、FB塊中的特點和應用。
2 在主程序OB塊中的應用
以定時器為例,在主程序OB塊中添加定時器指令時,博圖彈出的調用選項對話框中只有單個實例的背景數據塊可以選擇。指令添加后,該數據塊可以在“項目樹”中通過“程序塊—系統塊—程序資源”路徑進行查看,并且數據塊會顯示在指令上方。而且,每使用一個定時器就會在程序資源處生成一個對應的背景數據塊,當使用較多的定時器或者計數器指令時會占用較多的數據塊資源,同時也不方便管理。這里需要注意的是,在使用定時器時,不同的定時器嚴禁共用背景數據塊,否則會導致定時錯誤。
2 在功能塊FC塊中的應用
功能塊FC塊是沒有專用存儲區的函數塊[2-3],在FC塊中使用定時器、計數器指令時,它們的背景數據塊如何存儲就成為一個問題。以定時器為例,在功能塊FC塊中添加定時器指令時,博圖彈出的調用選項對話框中有單個實例和參數實例兩種背景數據塊形式可以選擇,下面分別進行介紹。
3.1 單個實例
FC塊中添加定時器使用單個實例的背景數據塊與在OB塊中的單個實例形式是相同的,數據塊仍是在程序資源中可以查看,同樣存在占用數據塊資源、不方便管理的問題。
3.2 參數實例
FC塊中添加定時器使用參數實例是指函數塊將指令的背景數據塊保存在指定塊參數的實例中,這里提到的指定塊是指用戶為存儲數據單獨設置的數據塊,具體操作如下:
在程序塊中添加一個名為“數據塊_1”的全局類型的數據塊,在“數據塊_1”中添加名為“定時器”、數據類型為“IEC_TIMER”的數據,這就為FC塊中的定時器準備好了數據存儲空間,如圖1所示。
在FC功能塊中添加定時器指令,選擇參數實例,此時指令的背景數據塊將作為輸入/輸出(InOut)類型參數[1],出現在功能塊接口參數的輸入/輸出類型參數中,如圖2所示。
由于是輸入/輸出類型參數,當在OB1中調用FC塊時需要對其賦值,這時則需要將提前建好的指定數據塊“數據塊_1”中的“定時器”數據賦值給定時器的背景數據塊。此時,定時器的具體定時時間仍是未知的,可以在程序中使用MOVE指令將具體定時時間傳送到“數據塊_1”.定時器.PT中,這樣在FC功能塊中為添加的定時器選擇參數實例背景數據塊的操作步驟就結束了。
建立專有數據塊使用參數實例,將指令的背景數據塊整合在指定數據塊中,可以解決占用很多數據塊資源和背景數據塊不方便管理的問題。在建立數據塊時,如果同種類型的背景數據塊較多,可以通過在指定數據塊中設置該類型的數組來實現并提高效率。另外,建立用戶數據類型(UDT)也是提高工作效率的好方法,本文最后會進行介紹。
4 在功能塊FB塊中的應用
FB塊是帶有自身存儲區的函數塊[2-3]。主程序OB每一次調用FB塊,博圖軟件都會自動給FB塊分配對應的背景數據塊用于存儲數據。函數塊的所有數據都可以永久存儲在自身的背景數據塊中,塊執行結束后這些數據也不會丟失,這樣對于需要存儲數據的指令來說就會方便許多。
仍然以定時器為例,在功能塊FB塊中添加定時器指令時,博圖軟件彈出的調用選項對話框中有單個實例、多重實例和參數實例三種背景數據塊形式可以選擇,下面分別進行介紹。
4.1 單個實例
FB塊中添加定時器使用單個實例的背景數據塊與在OB塊、FC塊中的單個實例形式相同。
4.2 多重實例
FB塊中添加定時器使用多重實例的背景數據塊是指將指令本身的數據保存在調用函數塊的背景數據塊中。因為只有FB功能塊在調用時博圖會分配背景數據塊,所以多重實例形式只有FB塊可以使用,FC塊由于沒有存儲區是不能使用的。在FB功能塊中添加定時器指令,選擇多重實例,指令的背景數據塊作為靜態(Static)類型參數,將出現在功能塊接口參數的靜態類型參數中,如圖3所示。當在主程序0B塊中調用FB塊時,可以在博圖分配的函數塊背景數據塊中看到定時器的數據塊,如圖4所示。由于靜態類型參數不同于輸入/輸出類型參數,在功能塊調用時是不產生賦值端口的,定時器的具體定時時間仍然可以在程序中使用MOVE指令賦值到FB塊背景數據塊對應的定時器中(本例位置“塊_2_DB”.IEC_Timer_0_Instance.PT),如圖5所示,注意這里賦值的目的地與FC塊參數實例的賦值到指定數據塊不同。
多重實例實現了數據的集中,又不像FC塊那樣需要單獨建立數據塊,是很多編程人員的首選。
4.3 參數實例
FB塊中添加定時器使用參數實例的背景數據塊與在FC功能塊中的參數實例形式相同,指令的背景數據塊出現在功能塊接口參數的輸入/輸出(InOut)類型參數中。用戶需要建立指定數據塊以支持指令數據的存儲,此時在FB塊本身的背景數據塊中出現的指令數據塊是不可用的。
5 用戶數據類型(UDT)的應用[1]
對于一組多類型變量需要多次重復設置并使用時,為提高工作效率,會使用到用戶數據類型。由于本文討論的是帶有背景數據塊的基本指令,所以假設用戶數據類型僅為使用定時器而設立。在“項目樹”PLC數據類型中添加名為“定時器組”的新數據類型,并在該類型中建立多個定時器需要的“IEC_TIMER”類型的數據,如圖6所示。在功能塊FC、FB中可以選擇“定時器組”數據類型快速完成參數的建立。
5.1 多重實例形式
如果在添加定時器指令時選用多重實例形式,則需要將“定時器組”用戶數據類型添加在功能塊接口參數的靜態(Static)類型參數中。其他操作與前面講到的多重實例應用相同,與此對應,所有指令數據將歸到FB塊的背景數據塊中,如圖7所示。當然,此種用途只有FB功能塊可以支持。
5.2 參數實例形式
如果在添加定時器指令時選用參數實例形式,則需要將“定時器組”用戶數據類型添加在功能塊接口參數的輸入/輸出(InOut)類型參數中。其他操作與前面講到的參數實例應用相同,與此對應,用戶需要建立指定數據塊以支持指令數據存儲,如圖7所示。功能塊FC、FB塊均可以使用。
6 結語
帶有背景數據塊的基本指令的單個實例、多重實例、參數實例三種背景數據塊應用形式中,單個實例有占用數據塊資源、不方便管理的特點。多重實例可以將指令本身的數據保存在調用函數塊的背景數據塊中,只有FB塊可以使用。參數實例將指令本身的數據保存在用戶建立的指定塊參數的實例中,FC塊、FB塊都可以使用。
審核編輯:湯梓紅
-
plc
+關注
關注
4980文章
12309瀏覽量
455494 -
西門子
+關注
關注
92文章
2865瀏覽量
113921 -
指令
+關注
關注
1文章
580瀏覽量
35396 -
定時器
+關注
關注
23文章
3150瀏覽量
112283 -
編程軟件
+關注
關注
3文章
131瀏覽量
22751
原文標題:西門子博圖中帶有背景數據塊的基本指令不同實例的區別和應用
文章出處:【微信號:機電信息雜志,微信公眾號:機電信息雜志】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論