<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

西門子博圖中帶有背景數據塊的基本指令不同實例的區別和應用

機電信息雜志 ? 來源:機電信息雜志 ? 2023-05-09 15:20 ? 次閱讀

葛東霞

濟南工程職業技術學院

摘 要:

西門子博圖的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所示。

f4f3ac7e-ec65-11ed-90ce-dac502259ad0.png

在FC功能塊中添加定時器指令,選擇參數實例,此時指令的背景數據塊將作為輸入/輸出(InOut)類型參數[1],出現在功能塊接口參數的輸入/輸出類型參數中,如圖2所示。

f51fdeca-ec65-11ed-90ce-dac502259ad0.png

由于是輸入/輸出類型參數,當在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塊參數實例的賦值到指定數據塊不同。

f567511a-ec65-11ed-90ce-dac502259ad0.png

f5a0f334-ec65-11ed-90ce-dac502259ad0.png

f5d11aa0-ec65-11ed-90ce-dac502259ad0.png

多重實例實現了數據的集中,又不像FC塊那樣需要單獨建立數據塊,是很多編程人員的首選。

4.3 參數實例

FB塊中添加定時器使用參數實例的背景數據塊與在FC功能塊中的參數實例形式相同,指令的背景數據塊出現在功能塊接口參數的輸入/輸出(InOut)類型參數中。用戶需要建立指定數據塊以支持指令數據的存儲,此時在FB塊本身的背景數據塊中出現的指令數據塊是不可用的。

5 用戶數據類型(UDT)的應用[1]

對于一組多類型變量需要多次重復設置并使用時,為提高工作效率,會使用到用戶數據類型。由于本文討論的是帶有背景數據塊的基本指令,所以假設用戶數據類型僅為使用定時器而設立。在“項目樹”PLC數據類型中添加名為“定時器組”的新數據類型,并在該類型中建立多個定時器需要的“IEC_TIMER”類型的數據,如圖6所示。在功能塊FC、FB中可以選擇“定時器組”數據類型快速完成參數的建立。

f615742a-ec65-11ed-90ce-dac502259ad0.png

5.1 多重實例形式

如果在添加定時器指令時選用多重實例形式,則需要將“定時器組”用戶數據類型添加在功能塊接口參數的靜態(Static)類型參數中。其他操作與前面講到的多重實例應用相同,與此對應,所有指令數據將歸到FB塊的背景數據塊中,如圖7所示。當然,此種用途只有FB功能塊可以支持。

f65c42d8-ec65-11ed-90ce-dac502259ad0.png

5.2 參數實例形式

如果在添加定時器指令時選用參數實例形式,則需要將“定時器組”用戶數據類型添加在功能塊接口參數的輸入/輸出(InOut)類型參數中。其他操作與前面講到的參數實例應用相同,與此對應,用戶需要建立指定數據塊以支持指令數據存儲,如圖7所示。功能塊FC、FB塊均可以使用。

6 結語

帶有背景數據塊的基本指令的單個實例、多重實例、參數實例三種背景數據塊應用形式中,單個實例有占用數據塊資源、不方便管理的特點。多重實例可以將指令本身的數據保存在調用函數塊的背景數據塊中,只有FB塊可以使用。參數實例將指令本身的數據保存在用戶建立的指定塊參數的實例中,FC塊、FB塊都可以使用。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • plc
    plc
    +關注

    關注

    4980

    文章

    12309

    瀏覽量

    455494
  • 西門子
    +關注

    關注

    92

    文章

    2865

    瀏覽量

    113921
  • 指令
    +關注

    關注

    1

    文章

    580

    瀏覽量

    35396
  • 定時器
    +關注

    關注

    23

    文章

    3150

    瀏覽量

    112283
  • 編程軟件
    +關注

    關注

    3

    文章

    131

    瀏覽量

    22751

原文標題:西門子博圖中帶有背景數據塊的基本指令不同實例的區別和應用

文章出處:【微信號:機電信息雜志,微信公眾號:機電信息雜志】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    西門子S7-200PLC與西門子變頻器MM440通訊程序實例

    西門子S7-200PLC與西門子變頻器MM440通訊程序實例
    的頭像 發表于 05-04 09:54 ?3769次閱讀
    <b class='flag-5'>西門子</b>S7-200PLC與<b class='flag-5'>西門子</b>變頻器MM440通訊程序<b class='flag-5'>實例</b>

    西門子PLC實例電子教程

    本書為西門子PLC實例電子教程,第一章就對PLC進行了概述,通過實例西門子 PLC進行了深度闡述,適合廣大西門子PLC研究者研究學習之用
    發表于 07-19 16:09 ?0次下載
    <b class='flag-5'>西門子</b>PLC<b class='flag-5'>實例</b>電子教程

    西門子S7-200應用實例(入門經典)

    西門子S7-200應用實例(入門經典)。
    發表于 03-22 14:14 ?130次下載

    西門子PLC指令

    西門子PLC指令
    發表于 10-16 10:28 ?37次下載

    圖解西門子與三菱PLC高級指令區別

    圖解西門子與三菱PLC高級指令區別
    的頭像 發表于 05-02 10:09 ?5986次閱讀
    圖解<b class='flag-5'>西門子</b>與三菱PLC高級<b class='flag-5'>指令</b>的<b class='flag-5'>區別</b>

    正確區分西門子和三菱指令

    史上最全西門子與三菱指令對照表
    的頭像 發表于 07-04 10:34 ?5734次閱讀
    正確區分<b class='flag-5'>西門子</b>和三菱<b class='flag-5'>指令</b>表

    西門子S7-200模擬量編程實例

    西門子S7-200模擬量編程實例說明。
    發表于 04-22 11:17 ?101次下載

    詳解西門子S7-300基本指令應用

    詳解西門子S7-300基本指令應用說明。
    發表于 04-22 14:58 ?23次下載

    西門子PLC的等時模式和非等時模式的區別

    西門子PLC的等時模式和非等時模式的區別說明。
    發表于 04-23 15:58 ?3次下載

    西門子PLC指令和程序設計

    西門子PLC指令和程序設計方法免費下載。
    發表于 05-07 09:42 ?116次下載

    LABVIEW與西門子S1200 通訊讀寫操作實例

    LABVIEW與西門子S1200 通訊讀寫操作實例
    發表于 10-08 16:22 ?93次下載

    西門子PLC數據傳送指令的功能介紹

    西門子PLC數據傳送指令用于各個編程元件之間進行數據傳送,根據每次傳送數據的多少可分為單個數據
    的頭像 發表于 06-28 16:29 ?6899次閱讀

    西門子基礎指令大全

    西門子基礎指令
    的頭像 發表于 09-14 09:59 ?3863次閱讀

    西門子常用PLC指令

    西門子常用PLC指令
    的頭像 發表于 02-09 14:34 ?3907次閱讀

    三菱or西門子品牌PLC的區別

    三菱PLC是日系品牌,編程直觀易懂,學習起來會比較輕松,但指令較多。而西門子PLC是德國品牌,指令比較抽象,學習難度較大,但指令較少,所以學習三菱和學習
    發表于 02-20 14:09 ?232次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>