西門子Step7培訓教程-第5a章S7程序結構課件_第1頁
西門子Step7培訓教程-第5a章S7程序結構課件_第2頁
西門子Step7培訓教程-第5a章S7程序結構課件_第3頁
西門子Step7培訓教程-第5a章S7程序結構課件_第4頁
西門子Step7培訓教程-第5a章S7程序結構課件_第5頁
已閱讀5頁,還剩97頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第5章S7程序結構和程序設計夏日雜詩【清】陳文述水窗低傍畫欄開,枕簟蕭疏玉漏催。一夜雨聲涼到夢,萬荷葉上送秋來。講解人:feilt第5章S7程序結構和程序設計夏日雜詩講解人:feilt第5章S7程序結構與程序設計§5.1S7CPU中的程序§5.2

數據塊中的數據存儲§5.3

邏輯塊(FC和FB)的結構及編程§5.4

編輯并調用無參功能(FC)——分部程序設計§5.5

編輯并調用有參功能(FC)——結構化程序設計§5.6

編輯并調用無靜態參數的功能塊(FB)§5.7

編輯并調用有靜態參數的功能塊(FB)§5.8

使用多重背景——結構化程序設計第5章S7程序結構與程序設計§5.1S7CPU中§5.1S7CPU中的程序§5.1.1用戶程序中的塊結構§5.1.2用戶程序結構§5.1.3I/O過程映像§5.1.4程序循環執行§5.1S7CPU中的程序§5.1.1用戶程序中的§5.1.1用戶程序中的塊結構§5.1.1用戶程序中的塊結構§5.1.2用戶程序結構線性程序(線性編程)分部式程序(分部編程、分塊編程)結構化程序(結構化編程或模塊化編程)§5.1.2用戶程序結構線性程序(線性編程)1.線性程序(線性編程)

所謂線性程序結構,就是將整個用戶程序連續放置在一個循環程序塊(OB1)中,塊中的程序按順序執行,CPU通過反復執行OB1來實現自動化控制任務。這種結構和PLC所代替的硬接線繼電器控制類似,CPU逐條地處理指令。事實上所有的程序都可以用線性結構實現,不過,線性結構一般適用于相對簡單的程序編寫。1.線性程序(線性編程)所謂線性程序結構,就是將整2.分部式程序(分部編程、分塊編程)

所謂分部程序,就是將整個程序按任務分成若干個部分,并分別放置在不同的功能(FC)、功能塊(FB)及組織塊中,在一個塊中可以進一步分解成段。在組織塊OB1中包含按順序調用其他塊的指令,并控制程序執行。在分部程序中,既無數據交換,也不存在重復利用的程序代碼。功能(FC)和功能塊(FB)不傳遞也不接收參數,分部程序結構的編程效率比線性程序有所提高,程序測試也較方便,對程序員的要求也不太高。對不太復雜的控制程序可考慮采用這種程序結構。2.分部式程序(分部編程、分塊編程)所謂分部程序,3.結構化程序(結構化編程或模塊化編程)

所謂結構化程序,就是處理復雜自動化控制任務的過程中,為了使任務更易于控制,常把過程要求類似或相關的功能進行分類,分割為可用于幾個任務的通用解決方案的小任務,這些小任務以相應的程序段表示,稱為塊(FC或FB)。OB1通過調用這些程序塊來完成整個自動化控制任務。結構化程序的特點是每個塊(FC或FB)在OB1中可能會被多次調用,以完成具有相同過程工藝要求的不同控制對象。這種結構可簡化程序設計過程、減小代碼長度、提高編程效率,比較適合于較復雜自動化控制任務的設計。3.結構化程序(結構化編程或模塊化編程)所謂結構§5.1.3I/O過程映像§5.1.3I/O過程映像§5.1.4程序循環執行§5.1.4程序循環執行§5.2數據塊中的數據存儲§5.2.1數據存儲區§5.2.2數據塊§5.2.3數據塊的數據結構§5.2.4建立數據塊§5.2.5訪問數據塊§5.2數據塊中的數據存儲§5.2.1數據存儲區§5.2.1數據存儲區

數據以用戶程序變量的形式存儲,且具有唯一性。數據可以存儲在輸入過程映像存儲器(PII)、輸出過程映像存儲器(PIQ)、位存儲器(M)、局部數據堆棧(L堆棧)及數據塊(DB)中。可以采用基本數據類型、復雜數據類型或參數類型。根據訪問方式的不同,這些數據可以在全局符號表或共享數據塊中聲明,稱為全局變量;也可以在OB、FC和FB的變量聲明表中聲明,稱為局部變量。當塊被執行時,變量將固定地存儲在過程映像區(PII或PIQ)、位存儲器區(M)、數據塊(DB)或局部堆棧(L)中。§5.2.1數據存儲區數據以用戶程序變量的形式§5.2.2數據塊

數據塊定義在S7CPU的存儲器中,用戶可在存儲器中建立一個或多個數據塊。每個數據塊可大可小,但CPU對數據塊數量及數據總量有限制。數據塊(DB)可用來存儲用戶程序中邏輯塊的變量數據(如:數值)。與臨時數據不同,當邏輯塊執行結束或數據塊關閉時,數據塊中的數據保持不變。用戶程序可以位、字節、字或雙字操作訪問數據塊中的數據,可以使用符號或絕對地址。§5.2.2數據塊數據塊定義在S7CPU的存1.數據塊的分類

共享數據塊又稱全局數據塊。用于存儲全局數據,所有邏輯塊(OB、FC、FB)都可以訪問共享數據塊存儲的信。

背景數據塊用作“私有存儲器區”,即用作功能塊(FB)的“存儲器”。FB的參數和靜態變量安排在它的背景數據塊中。背景數據塊不是由用戶編輯的,而是由編輯器生成的。

用戶定義數據塊(DBofType)是以UDT為模板所生成的數據塊。創建用戶定義數據塊(DBofType)之前,必須先創建一個用戶定義數據類型,如UDT1,并在LAD/STL/FBDS7程序編輯器內定義。1.數據塊的分類共享數據塊又稱全局數據塊。用于存儲全2.數據塊寄存器CPU有兩個數據塊寄存器:DB和DI寄存器。這樣,可以同時打開兩個數據塊。

2.數據塊寄存器CPU有兩個數據塊寄存器:DB和DI§5.2.3數據塊的數據結構

在STEP7中數據塊的數據類型可以采用基本數據類型、復雜數據類型或用戶定義數據類型(UDT)。基本數據類型復雜數據類型用戶定義數據類型§5.2.3數據塊的數據結構在STEP7中數據基本數據類型根據IEC1131-3定義,長度不超過32位,可利用STEP7基本指令處理,能完全裝入S7處理器的累加器中。基本數據類型包括:位數據類型:BOOL、BYTE、WORD、DWORD、CHAR數字數據類型:INT、DINT、REAL定時器類型:S5TIME、TIME、DATE、TIME_OF_DAY基本數據類型復雜數據類型復雜數據類型只能結合共享數據塊的變量聲明使用。復雜數據類型可大于32位,用裝入指令不能把復雜數據類型完全裝入累加器,一般利用庫中的標準塊(“IEC”S7程序)處理復雜數據類型。復雜數據類型包括:時間(DATE_AND_TIME)類型矩陣(ARRAY)類型結構(STRUCT)類型字符串(STRING)類型復雜數據類型用戶定義數據類型(UDT)

STEP7允許利用數據塊編輯器,將基本數據類型和復雜數據類型組合成長度大于32位用戶定義數據類型(UDT:User-DefineddataType)。用戶定義數據類型不能存儲在PLC中,只能存放在硬盤上的UDT塊中。可以用用戶定義數據類型作“模板”建立數據塊,以節省錄入時間。可用于建立結構化數據塊、建立包含幾個相同單元的矩陣、在帶有給定結構的FC和FB中建立局部變量。用戶定義數據類型(UDT)【5-2-1】

創建用戶定義數據類型:UDT1。

創建一個名稱為UDT1的用戶定義數據類型,數據結構如下,則可按以下幾個步驟完成。【5-2-1】創建用戶定義數據類型:UDT1。【5-2-1】創建用戶定義數據類型【5-2-1】創建【5-2-1】編輯UDT1【5-2-1】編輯UDT1§5.2.4建立數據塊

在STEP7中,為了避免出現系統錯誤,在使用數據塊之前,必須先建立數據塊,并在塊中定義變量(包括變量符號名、數據類型以及初始值等)。數據塊中變量的順序及類型決定了數據塊的數據結構,變量的數量決定了數據塊的大小。數據塊建立后,還必須同程序塊一起下載到CPU中,才能被程序塊訪問。建立數據塊定義變量并下載數據塊§5.2.4建立數據塊在STEP7中,為了避免方法1:用SIMATICManager創建數據塊。

方法1:用SIMATICManager創建數據塊。方法2:用LAD/STL/FBDS7程序編輯器創建數據塊。

方法2:用LAD/STL/FBDS7程序編輯器創建數據塊。新DB類型選擇窗口新DB類型選擇窗口編輯數據塊(變量定義)

變量定義完成后,應單擊保存按鈕保存并編譯(測試)。如果沒有錯誤則需要單擊下載按鈕,像邏輯塊一樣,將數據塊下載到CPU。編輯數據塊(變量定義)變量定義完成后,應單擊保存按§5.2.5訪問數據塊

在用戶程序中可能存在多個數據塊,而每個數據塊的數據結構并不完全相同,因此在訪問數據塊時,必須指明數據塊的編號、數據類型與位置。如果訪問不存在的數據單元或數據塊,而且沒有編寫錯誤處理OB塊,CPU將進入STOP模式。尋址數據塊訪問數據塊直接訪問數據塊§5.2.5訪問數據塊在用戶程序中可能存在多個數尋址數據塊尋址數據塊訪問數據塊

在STEP7中可以采用傳統訪問方式,即先打開后訪問;也可以采用完全表示的直接訪問方式。【例5-2-2】

打開并訪問共享數據塊。訪問數據塊在STEP7中可以采用傳統訪問方式,即先訪問數據塊

用指令“OPNDB...”打開共享數據塊(自動關閉之前打開的共享數據塊),如果DB已經打開,則可用裝入(L)或傳送(T)指令訪問數據塊。【例5-2-3】

打開并訪問背景數據塊。訪問數據塊用指令“OPNDB...”打開共享數據直接訪問數據塊所謂直接訪問數據塊,就是在指令中同時給出數據塊的編號和數據在數據塊中的地址。可以用絕對地址,也可以用符號地址直接訪問數據塊。用絕對地址直接訪問數據塊,如:

用符號地址直接訪問數據塊,如:直接訪問數據塊用符號地址直接訪問數據塊,如:

功能(FC)、功能塊(FB)和組織塊(OB)統稱為邏輯塊(或程序塊)。功能塊(FB)有一個數據結構與該功能塊的參數完全相同的數據塊,稱為背景數據塊,背景數據塊依附于功能塊,它隨著功能塊的調用而打開,隨著功能塊的結束而關閉。存放在背景數據塊中的數據在功能塊結束時繼續保持。而功能(FC)則不需要背景數據塊,功能調用結束后數據不能保持。組織塊(OB)是由操作系統直接調用的邏輯塊。§5.3.1邏輯塊(FC和FB)的結構§5.3.1邏輯塊(FC和FB)的編程§5.3邏輯塊(FC和FB)的結構及編程功能(FC)、功能塊(FB)和組織塊(OB)統稱為邏

邏輯塊(OB、FB、FC)由變量聲明表、代碼段及其屬性等幾部分組成。局部變量聲明表(局部數據)邏輯塊局部變量的數據類型邏輯塊的調用過程及內存分配§5.3.1邏輯塊(FC和FB)的結構邏輯塊(OB、FB、FC)由變量聲明表、代碼段及其屬

每個邏輯塊前部都有一個變量聲明表,稱為局部變量聲明表。1.局部變量聲明表

局部數據分為參數和局部變量兩大類,局部變量又包括靜態變量和臨時變量(暫態變量)兩種。每個邏輯塊前部都有一個變量聲明表,稱為局部變量聲明表

對于功能塊(FB),操作系統為參數及靜態變量分配的存儲空間是背景數據塊。這樣參數變量在背景數據塊中留有運行結果備份。在調用FB時,若沒有提供實參,則功能塊使用背景數據塊中的數值。操作系統在L堆棧中給FB的臨時變量分配存儲空間。對于功能(FC),操作系統在L堆棧中給FC的臨時變量分配存儲空間。由于沒有背景數據塊,因而FC不能使用靜態變量。輸入、輸出、I/O參數以指向實參的指針形式存儲在操作系統為參數傳遞而保留的額外空間中。對于組織塊(OB)來說,其調用是由操作系統管理的,用戶不能參與。因此,OB只有定義在L堆棧中的臨時變量。對于功能塊(FB),操作系統為參數及靜態變量分配的存

局部變量可以是基本數據類型或復式數據類型,也可以是專門用于參數傳遞的所謂的“參數類型”。參數類型包括定時器、計數器、塊的地址或指針等。2.邏輯塊局部變量的數據類型局部變量可以是基本數據類型或復式數據類型,也可以是專CPU提供塊堆棧(B堆棧)來存儲與處理被中斷塊的有關信息。3.邏輯塊的調用過程及內存分配CPU提供塊堆棧(B堆棧)來存儲與處理被中斷塊的有關

局部數據堆棧簡稱L堆棧,是CPU中單獨的存儲器區,可用來存儲邏輯塊的局部變量(包括OB的起始信息)、調用功能(FC)時要傳遞的實際參數、梯形圖程序中的中間邏輯結果等。可以按位、字節、字和雙字來存取。

塊堆棧簡稱B堆棧,是CPU系統內存中的一部分,用來存儲被中斷的塊的類型、編號、優先級和返回地址;中斷時打開的共享數據塊和背景數據塊的編號;臨時變量的指針(被中斷塊的L堆棧地址)。

中斷堆棧簡稱I堆棧,用來存儲當前累加器和地址寄存器的內容、數據塊寄存器DB和DI的內容、局域數據的指針、狀態字、MCR(主控繼電器)寄存器和B堆棧的指針。用戶程序使用的堆棧局部數據堆棧簡稱L堆棧,是CPU中單獨的存儲器區,可

當調用功能塊(FB)時,會有以下事件發生:①調用塊的地址和返回位置存儲在塊堆棧中,調用塊的臨時變量壓入L堆棧;②數據塊DB寄存器內容與DI寄存器內容交換;③新的數據塊地址裝入DI寄存器;④被調用塊的實參裝入DB和L堆棧上部;⑤當功能塊FB結束時,先前塊的現場信息從塊堆棧中彈出,臨時變量彈出L堆棧;⑥DB和DI寄存器內容交換。當調用功能塊(FB)時,STEP7并不一定要求給FB形參賦予實參,除非參數是復式數據類型的I/O形參或參數類型形參。如果沒有給FB的形參賦予實參,則功能塊(FB)就調用背景數據塊內的數值,該數值是在功能塊(FB)的變量聲明表或背景數據塊內為形參所設置初始數值。調用功能塊(FB)時的堆棧操作當調用功能塊(FB)時,會有以下事件發生:調用功能塊

當調用功能(FC)時會有以下事件發生:功能(FC)實參的指針存到調用塊的L堆棧;調用塊的地址和返回位置存儲在塊堆棧,調用塊的局部數據壓入L堆棧;功能(FC)存儲臨時變量的L堆棧區被推入L堆棧上部;當被調用功能(FC)結束時,先前塊的信息存儲在塊堆棧中,臨時變量彈出L堆棧。因為功能(FC)不用背景數據塊,不能分配初始數值給功能(FC)的局部數據,所以必須給功能(FC)提供實參。調用功能(FC)時的堆棧操作

當調用功能(FC)時會有以下事件發生:調用功能(FC

以功能(FC)調用為例,L堆棧操作示意如圖所示。調用功能(FC)時的堆棧操作

以功能(FC)調用為例,L堆棧操作示意如圖所

對邏輯塊編程時必須編輯下列三個部分:

變量聲明:分別定義形參、靜態變量和臨時變量(FC塊中不包括靜態變量);確定各變量的聲明類型(Decl.)、變量名(Name)和數據類型(DataType),還要為變量設置初始值(InitialValue)。如果需要還可為變量注釋(Comment)。在增量編程模式下,STEP7將自動產生局部變量地址(Address)。代碼段:對將要由PLC進行處理的塊代碼進行編程。

塊屬性:塊屬性包含了其它附加的信息,例如由系統輸入的時間標志或路徑。此外,也可輸入相關詳細資料。§5.3.2邏輯塊(FC和FB)的編程對邏輯塊編程時必須編輯下列三個部分:§5.3.21.臨時變量的定義和使用1.臨時變量的定義和使用2.查看局部數據堆棧的占用2.查看局部數據堆棧的占用3.查看塊所需字節數3.查看塊所需字節數4.定義形式參數4.定義形式參數

編寫邏輯塊(FC和FB)程序時,可以用以下兩種方式使用局部變量:①使用變量名,此時變量名前加前綴“#”,以區別于在符號表中定義的符號地址。增量方式下,前綴會自動產生。②直接使用局部變量的地址,這種方式只對背景數據塊和L堆棧有效。在調用FB塊時,要說明其背景數據塊。背景數據塊應在調用前生成,其順序格式與變量聲明表必須保持一致。5.編寫控制程序編寫邏輯塊(FC和FB)程序時,可以用以下兩種方式使思考1、S7CPU中的程序結構?2、數據塊中的數據存儲形式?3、邏輯塊(FC和FB)的結構及編程方式?思考1、S7CPU中的程序結構?西門子Step7培訓教程——第5a章S7程序結構演講完畢,謝謝觀看!演講完畢,謝謝觀看!第5章S7程序結構和程序設計夏日雜詩【清】陳文述水窗低傍畫欄開,枕簟蕭疏玉漏催。一夜雨聲涼到夢,萬荷葉上送秋來。講解人:feilt第5章S7程序結構和程序設計夏日雜詩講解人:feilt第5章S7程序結構與程序設計§5.1S7CPU中的程序§5.2

數據塊中的數據存儲§5.3

邏輯塊(FC和FB)的結構及編程§5.4

編輯并調用無參功能(FC)——分部程序設計§5.5

編輯并調用有參功能(FC)——結構化程序設計§5.6

編輯并調用無靜態參數的功能塊(FB)§5.7

編輯并調用有靜態參數的功能塊(FB)§5.8

使用多重背景——結構化程序設計第5章S7程序結構與程序設計§5.1S7CPU中§5.1S7CPU中的程序§5.1.1用戶程序中的塊結構§5.1.2用戶程序結構§5.1.3I/O過程映像§5.1.4程序循環執行§5.1S7CPU中的程序§5.1.1用戶程序中的§5.1.1用戶程序中的塊結構§5.1.1用戶程序中的塊結構§5.1.2用戶程序結構線性程序(線性編程)分部式程序(分部編程、分塊編程)結構化程序(結構化編程或模塊化編程)§5.1.2用戶程序結構線性程序(線性編程)1.線性程序(線性編程)

所謂線性程序結構,就是將整個用戶程序連續放置在一個循環程序塊(OB1)中,塊中的程序按順序執行,CPU通過反復執行OB1來實現自動化控制任務。這種結構和PLC所代替的硬接線繼電器控制類似,CPU逐條地處理指令。事實上所有的程序都可以用線性結構實現,不過,線性結構一般適用于相對簡單的程序編寫。1.線性程序(線性編程)所謂線性程序結構,就是將整2.分部式程序(分部編程、分塊編程)

所謂分部程序,就是將整個程序按任務分成若干個部分,并分別放置在不同的功能(FC)、功能塊(FB)及組織塊中,在一個塊中可以進一步分解成段。在組織塊OB1中包含按順序調用其他塊的指令,并控制程序執行。在分部程序中,既無數據交換,也不存在重復利用的程序代碼。功能(FC)和功能塊(FB)不傳遞也不接收參數,分部程序結構的編程效率比線性程序有所提高,程序測試也較方便,對程序員的要求也不太高。對不太復雜的控制程序可考慮采用這種程序結構。2.分部式程序(分部編程、分塊編程)所謂分部程序,3.結構化程序(結構化編程或模塊化編程)

所謂結構化程序,就是處理復雜自動化控制任務的過程中,為了使任務更易于控制,常把過程要求類似或相關的功能進行分類,分割為可用于幾個任務的通用解決方案的小任務,這些小任務以相應的程序段表示,稱為塊(FC或FB)。OB1通過調用這些程序塊來完成整個自動化控制任務。結構化程序的特點是每個塊(FC或FB)在OB1中可能會被多次調用,以完成具有相同過程工藝要求的不同控制對象。這種結構可簡化程序設計過程、減小代碼長度、提高編程效率,比較適合于較復雜自動化控制任務的設計。3.結構化程序(結構化編程或模塊化編程)所謂結構§5.1.3I/O過程映像§5.1.3I/O過程映像§5.1.4程序循環執行§5.1.4程序循環執行§5.2數據塊中的數據存儲§5.2.1數據存儲區§5.2.2數據塊§5.2.3數據塊的數據結構§5.2.4建立數據塊§5.2.5訪問數據塊§5.2數據塊中的數據存儲§5.2.1數據存儲區§5.2.1數據存儲區

數據以用戶程序變量的形式存儲,且具有唯一性。數據可以存儲在輸入過程映像存儲器(PII)、輸出過程映像存儲器(PIQ)、位存儲器(M)、局部數據堆棧(L堆棧)及數據塊(DB)中。可以采用基本數據類型、復雜數據類型或參數類型。根據訪問方式的不同,這些數據可以在全局符號表或共享數據塊中聲明,稱為全局變量;也可以在OB、FC和FB的變量聲明表中聲明,稱為局部變量。當塊被執行時,變量將固定地存儲在過程映像區(PII或PIQ)、位存儲器區(M)、數據塊(DB)或局部堆棧(L)中。§5.2.1數據存儲區數據以用戶程序變量的形式§5.2.2數據塊

數據塊定義在S7CPU的存儲器中,用戶可在存儲器中建立一個或多個數據塊。每個數據塊可大可小,但CPU對數據塊數量及數據總量有限制。數據塊(DB)可用來存儲用戶程序中邏輯塊的變量數據(如:數值)。與臨時數據不同,當邏輯塊執行結束或數據塊關閉時,數據塊中的數據保持不變。用戶程序可以位、字節、字或雙字操作訪問數據塊中的數據,可以使用符號或絕對地址。§5.2.2數據塊數據塊定義在S7CPU的存1.數據塊的分類

共享數據塊又稱全局數據塊。用于存儲全局數據,所有邏輯塊(OB、FC、FB)都可以訪問共享數據塊存儲的信。

背景數據塊用作“私有存儲器區”,即用作功能塊(FB)的“存儲器”。FB的參數和靜態變量安排在它的背景數據塊中。背景數據塊不是由用戶編輯的,而是由編輯器生成的。

用戶定義數據塊(DBofType)是以UDT為模板所生成的數據塊。創建用戶定義數據塊(DBofType)之前,必須先創建一個用戶定義數據類型,如UDT1,并在LAD/STL/FBDS7程序編輯器內定義。1.數據塊的分類共享數據塊又稱全局數據塊。用于存儲全2.數據塊寄存器CPU有兩個數據塊寄存器:DB和DI寄存器。這樣,可以同時打開兩個數據塊。

2.數據塊寄存器CPU有兩個數據塊寄存器:DB和DI§5.2.3數據塊的數據結構

在STEP7中數據塊的數據類型可以采用基本數據類型、復雜數據類型或用戶定義數據類型(UDT)。基本數據類型復雜數據類型用戶定義數據類型§5.2.3數據塊的數據結構在STEP7中數據基本數據類型根據IEC1131-3定義,長度不超過32位,可利用STEP7基本指令處理,能完全裝入S7處理器的累加器中。基本數據類型包括:位數據類型:BOOL、BYTE、WORD、DWORD、CHAR數字數據類型:INT、DINT、REAL定時器類型:S5TIME、TIME、DATE、TIME_OF_DAY基本數據類型復雜數據類型復雜數據類型只能結合共享數據塊的變量聲明使用。復雜數據類型可大于32位,用裝入指令不能把復雜數據類型完全裝入累加器,一般利用庫中的標準塊(“IEC”S7程序)處理復雜數據類型。復雜數據類型包括:時間(DATE_AND_TIME)類型矩陣(ARRAY)類型結構(STRUCT)類型字符串(STRING)類型復雜數據類型用戶定義數據類型(UDT)

STEP7允許利用數據塊編輯器,將基本數據類型和復雜數據類型組合成長度大于32位用戶定義數據類型(UDT:User-DefineddataType)。用戶定義數據類型不能存儲在PLC中,只能存放在硬盤上的UDT塊中。可以用用戶定義數據類型作“模板”建立數據塊,以節省錄入時間。可用于建立結構化數據塊、建立包含幾個相同單元的矩陣、在帶有給定結構的FC和FB中建立局部變量。用戶定義數據類型(UDT)【5-2-1】

創建用戶定義數據類型:UDT1。

創建一個名稱為UDT1的用戶定義數據類型,數據結構如下,則可按以下幾個步驟完成。【5-2-1】創建用戶定義數據類型:UDT1。【5-2-1】創建用戶定義數據類型【5-2-1】創建【5-2-1】編輯UDT1【5-2-1】編輯UDT1§5.2.4建立數據塊

在STEP7中,為了避免出現系統錯誤,在使用數據塊之前,必須先建立數據塊,并在塊中定義變量(包括變量符號名、數據類型以及初始值等)。數據塊中變量的順序及類型決定了數據塊的數據結構,變量的數量決定了數據塊的大小。數據塊建立后,還必須同程序塊一起下載到CPU中,才能被程序塊訪問。建立數據塊定義變量并下載數據塊§5.2.4建立數據塊在STEP7中,為了避免方法1:用SIMATICManager創建數據塊。

方法1:用SIMATICManager創建數據塊。方法2:用LAD/STL/FBDS7程序編輯器創建數據塊。

方法2:用LAD/STL/FBDS7程序編輯器創建數據塊。新DB類型選擇窗口新DB類型選擇窗口編輯數據塊(變量定義)

變量定義完成后,應單擊保存按鈕保存并編譯(測試)。如果沒有錯誤則需要單擊下載按鈕,像邏輯塊一樣,將數據塊下載到CPU。編輯數據塊(變量定義)變量定義完成后,應單擊保存按§5.2.5訪問數據塊

在用戶程序中可能存在多個數據塊,而每個數據塊的數據結構并不完全相同,因此在訪問數據塊時,必須指明數據塊的編號、數據類型與位置。如果訪問不存在的數據單元或數據塊,而且沒有編寫錯誤處理OB塊,CPU將進入STOP模式。尋址數據塊訪問數據塊直接訪問數據塊§5.2.5訪問數據塊在用戶程序中可能存在多個數尋址數據塊尋址數據塊訪問數據塊

在STEP7中可以采用傳統訪問方式,即先打開后訪問;也可以采用完全表示的直接訪問方式。【例5-2-2】

打開并訪問共享數據塊。訪問數據塊在STEP7中可以采用傳統訪問方式,即先訪問數據塊

用指令“OPNDB...”打開共享數據塊(自動關閉之前打開的共享數據塊),如果DB已經打開,則可用裝入(L)或傳送(T)指令訪問數據塊。【例5-2-3】

打開并訪問背景數據塊。訪問數據塊用指令“OPNDB...”打開共享數據直接訪問數據塊所謂直接訪問數據塊,就是在指令中同時給出數據塊的編號和數據在數據塊中的地址。可以用絕對地址,也可以用符號地址直接訪問數據塊。用絕對地址直接訪問數據塊,如:

用符號地址直接訪問數據塊,如:直接訪問數據塊用符號地址直接訪問數據塊,如:

功能(FC)、功能塊(FB)和組織塊(OB)統稱為邏輯塊(或程序塊)。功能塊(FB)有一個數據結構與該功能塊的參數完全相同的數據塊,稱為背景數據塊,背景數據塊依附于功能塊,它隨著功能塊的調用而打開,隨著功能塊的結束而關閉。存放在背景數據塊中的數據在功能塊結束時繼續保持。而功能(FC)則不需要背景數據塊,功能調用結束后數據不能保持。組織塊(OB)是由操作系統直接調用的邏輯塊。§5.3.1邏輯塊(FC和FB)的結構§5.3.1邏輯塊(FC和FB)的編程§5.3邏輯塊(FC和FB)的結構及編程功能(FC)、功能塊(FB)和組織塊(OB)統稱為邏

邏輯塊(OB、FB、FC)由變量聲明表、代碼段及其屬性等幾部分組成。局部變量聲明表(局部數據)邏輯塊局部變量的數據類型邏輯塊的調用過程及內存分配§5.3.1邏輯塊(FC和FB)的結構邏輯塊(OB、FB、FC)由變量聲明表、代碼段及其屬

每個邏輯塊前部都有一個變量聲明表,稱為局部變量聲明表。1.局部變量聲明表

局部數據分為參數和局部變量兩大類,局部變量又包括靜態變量和臨時變量(暫態變量)兩種。每個邏輯塊前部都有一個變量聲明表,稱為局部變量聲明表

對于功能塊(FB),操作系統為參數及靜態變量分配的存儲空間是背景數據塊。這樣參數變量在背景數據塊中留有運行結果備份。在調用FB時,若沒有提供實參,則功能塊使用背景數據塊中的數值。操作系統在L堆棧中給FB的臨時變量分配存儲空間。對于功能(FC),操作系統在L堆棧中給FC的臨時變量分配存儲空間。由于沒有背景數據塊,因而FC不能使用靜態變量。輸入、輸出、I/O參數以指向實參的指針形式存儲在操作系統為參數傳遞而保留的額外空間中。對于組織塊(OB)來說,其調用是由操作系統管理的,用戶不能參與。因此,OB只有定義在L堆棧中的臨時變量。對于功能塊(FB),操作系統為參數及靜態變量分配的存

局部變量可以是基本數據類型或復式數據類型,也可以是專門用于參數傳遞的所謂的“參數類型”。參數類型包括定時器、計數器、塊的地址或指針等。2.邏輯塊局部變量的數據類型局部變量可以是基本數據類型或復式數據類型,也可以是專CPU提供塊堆棧(B堆棧)來存儲與處理被中斷塊的有關信息。3.邏輯塊的調用過程及內存分配CPU提供塊堆棧(B堆棧)來存儲與處理被中斷塊的有關

局部數據堆棧簡稱L堆棧,是CPU中單獨的存儲器區,可用來存儲邏輯塊的局部變量(包括OB的起始信息)、調用功能(FC)時要傳遞的實際參數、梯形圖程序中的中間邏輯結果等。可以按位、字節、字和雙字來存取。

塊堆棧簡稱B堆棧,是CPU系統內存中的一部分,用來存儲被中斷的塊的類型、編號、優先級和返回地址;中斷時打開的共享數據塊和背景數據塊的編號;臨時變量的指針(被中斷塊的L堆棧地址)。

中斷堆棧簡稱I堆棧,用來存儲當前累加器和地址寄存器的內容、數據塊寄存器DB和DI的內容、局域數據的指針、狀態字、MCR(主控繼電器)寄存器和B堆棧的指針。用戶程序使用的堆棧局部數據堆棧簡稱L堆棧,是CPU中單獨的存儲器區,可

當調用功能塊(FB)時,會有以下事件發生:①調用塊的地址和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論