版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Date: 2021-10-14 Page: 1Date: 2021-10-14 Page: 2第第5 5章章 S7S7程序結(jié)構(gòu)與程序設(shè)計(jì)程序結(jié)構(gòu)與程序設(shè)計(jì) 5.15.1 S7 CPU S7 CPU中的程序中的程序5.25.2 數(shù)據(jù)塊中的數(shù)據(jù)存儲數(shù)據(jù)塊中的數(shù)據(jù)存儲 5.35.3 邏輯塊(邏輯塊(FCFC和和FBFB)的結(jié)構(gòu)及編程)的結(jié)構(gòu)及編程 5.45.4 編輯并調(diào)用無參功能(編輯并調(diào)用無參功能(FCFC)分部程序設(shè)計(jì)分部程序設(shè)計(jì)5.55.5 編輯并調(diào)用有參功能(編輯并調(diào)用有參功能(FCFC)結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)5.65.6 編輯并調(diào)用無靜態(tài)參數(shù)的功能塊(編輯并調(diào)用無靜態(tài)參數(shù)的功能塊(
2、FBFB)5.75.7 編輯并調(diào)用有靜態(tài)參數(shù)的功能塊(編輯并調(diào)用有靜態(tài)參數(shù)的功能塊(FBFB)5.85.8 使用多重背景使用多重背景結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)5.95.9 思考與練習(xí)思考與練習(xí)返回首頁返回首頁Date: 2021-10-14 Page: 35.1 S7 CPU中的程序中的程序 5.1.1 5.1.1 用戶程序中的塊結(jié)構(gòu)用戶程序中的塊結(jié)構(gòu)5.1.2 5.1.2 用戶程序結(jié)構(gòu)用戶程序結(jié)構(gòu)5.1.3 I/O5.1.3 I/O過程映像過程映像5.1.4 5.1.4 程序循環(huán)執(zhí)行程序循環(huán)執(zhí)行返回本章返回本章Date: 2021-10-14 Page: 45.1.1 5.1.1 用戶程序
3、中的塊結(jié)構(gòu)用戶程序中的塊結(jié)構(gòu) 返回本節(jié)返回本節(jié)Date: 2021-10-14 Page: 55.1.2 用戶程序結(jié)構(gòu)用戶程序結(jié)構(gòu) 線性程序(線性編程)線性程序(線性編程)分部式程序(分部編程、分塊編程)分部式程序(分部編程、分塊編程) 結(jié)構(gòu)化程序(結(jié)構(gòu)化編程或模塊化編程)結(jié)構(gòu)化程序(結(jié)構(gòu)化編程或模塊化編程) 返回本節(jié)返回本節(jié)Date: 2021-10-14 Page: 61. 線性程序(線性編程)線性程序(線性編程) 所謂線性程序結(jié)構(gòu),就是將整個用戶程序連續(xù)放置在一所謂線性程序結(jié)構(gòu),就是將整個用戶程序連續(xù)放置在一個循環(huán)程序塊(個循環(huán)程序塊(OB1OB1)中,塊中的程序按順序執(zhí)行,)中,塊中的
4、程序按順序執(zhí)行,CPUCPU通通過反復(fù)執(zhí)行過反復(fù)執(zhí)行OB1OB1來實(shí)現(xiàn)自動化控制任務(wù)。這種結(jié)構(gòu)和來實(shí)現(xiàn)自動化控制任務(wù)。這種結(jié)構(gòu)和PLCPLC所所代替的硬接線繼電器控制類似,代替的硬接線繼電器控制類似,CPUCPU逐條地處理指令。事實(shí)逐條地處理指令。事實(shí)上所有的程序都可以用線性結(jié)構(gòu)實(shí)現(xiàn),不過,線性結(jié)構(gòu)一般上所有的程序都可以用線性結(jié)構(gòu)實(shí)現(xiàn),不過,線性結(jié)構(gòu)一般適用于相對簡單的程序編寫。適用于相對簡單的程序編寫。返回上級返回上級Date: 2021-10-14 Page: 72.2.分部式程序(分部編程、分塊編程)分部式程序(分部編程、分塊編程) 所謂分部程序,就是將整個程序按任務(wù)分成若干個部分,所謂
5、分部程序,就是將整個程序按任務(wù)分成若干個部分,并分別放置在不同的功能(并分別放置在不同的功能(FCFC)、功能塊()、功能塊(FBFB)及組織塊中,)及組織塊中,在 一 個 塊 中 可 以 進(jìn) 一 步 分 解 成 段 。 在 組 織 塊在 一 個 塊 中 可 以 進(jìn) 一 步 分 解 成 段 。 在 組 織 塊 O B 1O B 1 中中包含按順序調(diào)用其他塊的指令,并控制程序執(zhí)行。包含按順序調(diào)用其他塊的指令,并控制程序執(zhí)行。 在分部程序中,既無數(shù)據(jù)交換,也不存在重復(fù)利用的程在分部程序中,既無數(shù)據(jù)交換,也不存在重復(fù)利用的程序代碼。功能(序代碼。功能(FCFC)和功能塊()和功能塊(FBFB)不傳遞
6、也不接收參數(shù),)不傳遞也不接收參數(shù),分部程序結(jié)構(gòu)的編程效率比線性程序有所提高,程序測試也分部程序結(jié)構(gòu)的編程效率比線性程序有所提高,程序測試也較方便,對程序員的要求也不太高。對不太復(fù)雜的較方便,對程序員的要求也不太高。對不太復(fù)雜的控制程序可考慮采用這種程序結(jié)構(gòu)。控制程序可考慮采用這種程序結(jié)構(gòu)。 返回上級返回上級Date: 2021-10-14 Page: 83. 3. 結(jié)構(gòu)化程序(結(jié)構(gòu)化編程或模塊化編程)結(jié)構(gòu)化程序(結(jié)構(gòu)化編程或模塊化編程) 所謂結(jié)構(gòu)化程序,就是處理復(fù)雜自動化控制任務(wù)的過程所謂結(jié)構(gòu)化程序,就是處理復(fù)雜自動化控制任務(wù)的過程中,為了使任務(wù)更易于控制,常把過程要求類似或相關(guān)的功中,為了
7、使任務(wù)更易于控制,常把過程要求類似或相關(guān)的功能進(jìn)行分類,分割為可用于幾個任務(wù)的通用解決方案的小任能進(jìn)行分類,分割為可用于幾個任務(wù)的通用解決方案的小任務(wù),這些小任務(wù)以相應(yīng)的程序段表示,稱為塊(務(wù),這些小任務(wù)以相應(yīng)的程序段表示,稱為塊(FCFC或或FBFB)。)。O B 1O B 1 通 過 調(diào) 用 這 些 程 序 塊 來 完 成 整 個 自 動 化 控 制 任通 過 調(diào) 用 這 些 程 序 塊 來 完 成 整 個 自 動 化 控 制 任務(wù)。務(wù)。 結(jié)構(gòu)化程序的特點(diǎn)是每個塊(結(jié)構(gòu)化程序的特點(diǎn)是每個塊(FCFC或或FBFB)在)在OB1OB1中可能會中可能會被多次調(diào)用,以完成具有相同過程工藝要求的不同
8、控制對象。被多次調(diào)用,以完成具有相同過程工藝要求的不同控制對象。這種結(jié)構(gòu)可簡化程序設(shè)計(jì)過程、減小代碼長度、提高這種結(jié)構(gòu)可簡化程序設(shè)計(jì)過程、減小代碼長度、提高編程效率,比較適合于較復(fù)雜自動化控制任務(wù)的設(shè)計(jì)。編程效率,比較適合于較復(fù)雜自動化控制任務(wù)的設(shè)計(jì)。返回上級返回上級Date: 2021-10-14 Page: 95.1.3 I/O5.1.3 I/O過程映像過程映像 返回本節(jié)返回本節(jié)Date: 2021-10-14 Page: 105.1.4 5.1.4 程序循環(huán)執(zhí)行程序循環(huán)執(zhí)行 返回本節(jié)返回本節(jié)Date: 2021-10-14 Page: 115.2 5.2 數(shù)據(jù)塊中的數(shù)據(jù)存儲數(shù)據(jù)塊中的數(shù)據(jù)
9、存儲 5.2.1 數(shù)據(jù)存儲區(qū)數(shù)據(jù)存儲區(qū)5.2.2 數(shù)據(jù)塊數(shù)據(jù)塊5.2.3 數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)5.2.4 建立數(shù)據(jù)塊建立數(shù)據(jù)塊5.2.5 訪問數(shù)據(jù)塊訪問數(shù)據(jù)塊返回本章返回本章Date: 2021-10-14 Page: 125.2.1 5.2.1 數(shù)據(jù)存儲區(qū)數(shù)據(jù)存儲區(qū) 數(shù)據(jù)以用戶程序變量的形式存儲,且具有唯一性。數(shù)據(jù)數(shù)據(jù)以用戶程序變量的形式存儲,且具有唯一性。數(shù)據(jù)可以存儲在輸入過程映像存儲器(可以存儲在輸入過程映像存儲器(PIIPII)、輸出過程映像存)、輸出過程映像存儲器(儲器(PIQPIQ)、位存儲器()、位存儲器(M M)、局部數(shù)據(jù)堆棧()、局部數(shù)據(jù)堆棧(L L堆棧)及堆棧)
10、及數(shù)據(jù)塊(數(shù)據(jù)塊(DBDB)中??梢圆捎没緮?shù)據(jù)類型、復(fù)雜數(shù)據(jù)類)中??梢圆捎没緮?shù)據(jù)類型、復(fù)雜數(shù)據(jù)類型或參數(shù)類型。型或參數(shù)類型。 根據(jù)訪問方式的不同,這些數(shù)據(jù)可以在全局符號表或共根據(jù)訪問方式的不同,這些數(shù)據(jù)可以在全局符號表或共享數(shù)據(jù)塊中聲明,稱為全局變量;也可以在享數(shù)據(jù)塊中聲明,稱為全局變量;也可以在OBOB、FCFC和和FBFB的的變量聲明表中聲明,稱為局部變量。當(dāng)塊被執(zhí)行時,變量將變量聲明表中聲明,稱為局部變量。當(dāng)塊被執(zhí)行時,變量將固定地存儲在過程映像區(qū)(固定地存儲在過程映像區(qū)(PIIPII或或PIQPIQ)、位存儲器區(qū))、位存儲器區(qū)(M M)、數(shù)據(jù)塊()、數(shù)據(jù)塊(DBDB)或局部堆棧(
11、)或局部堆棧(L L)中。)中。返回本節(jié)返回本節(jié)Date: 2021-10-14 Page: 135.2.2 5.2.2 數(shù)據(jù)塊數(shù)據(jù)塊 數(shù)據(jù)塊定義在數(shù)據(jù)塊定義在S7 CPUS7 CPU的存儲器中,用戶可在存儲器中的存儲器中,用戶可在存儲器中建立一個或多個數(shù)據(jù)塊。每個數(shù)據(jù)塊可大可小,但建立一個或多個數(shù)據(jù)塊。每個數(shù)據(jù)塊可大可小,但CPUCPU對數(shù)對數(shù)據(jù)塊數(shù)量及數(shù)據(jù)總量有限制。據(jù)塊數(shù)量及數(shù)據(jù)總量有限制。 數(shù)據(jù)塊(數(shù)據(jù)塊(DBDB)可用來存儲用戶程序中邏輯塊的變量數(shù))可用來存儲用戶程序中邏輯塊的變量數(shù)據(jù)(如:數(shù)值)。與臨時數(shù)據(jù)不同,當(dāng)邏輯塊執(zhí)行結(jié)束或據(jù)(如:數(shù)值)。與臨時數(shù)據(jù)不同,當(dāng)邏輯塊執(zhí)行結(jié)束或數(shù)
12、據(jù)塊關(guān)閉時,數(shù)據(jù)塊中的數(shù)據(jù)保持不變。數(shù)據(jù)塊關(guān)閉時,數(shù)據(jù)塊中的數(shù)據(jù)保持不變。 用戶程序可以是位、字節(jié)、字或雙字操作訪問數(shù)據(jù)塊中用戶程序可以是位、字節(jié)、字或雙字操作訪問數(shù)據(jù)塊中的數(shù)據(jù),可以使用符號或絕對地址。的數(shù)據(jù),可以使用符號或絕對地址。 返回本節(jié)返回本節(jié)Date: 2021-10-14 Page: 141.1.數(shù)據(jù)塊的分類數(shù)據(jù)塊的分類 共享數(shù)據(jù)塊共享數(shù)據(jù)塊又稱全局?jǐn)?shù)據(jù)塊。用于存儲全局?jǐn)?shù)據(jù),所有又稱全局?jǐn)?shù)據(jù)塊。用于存儲全局?jǐn)?shù)據(jù),所有邏輯塊(邏輯塊(OBOB、FCFC、FBFB)都可以訪問共享數(shù)據(jù)塊存儲的)都可以訪問共享數(shù)據(jù)塊存儲的信。信。 背景數(shù)據(jù)塊背景數(shù)據(jù)塊用作用作“私有存儲器區(qū)私有存儲器區(qū)”
13、,即用作功能塊,即用作功能塊(FBFB)的)的“存儲器存儲器”。FBFB的參數(shù)和靜態(tài)變量安排在它的背景的參數(shù)和靜態(tài)變量安排在它的背景數(shù)據(jù)塊中。背景數(shù)據(jù)塊不是由用戶編輯的,而是由編輯器數(shù)據(jù)塊中。背景數(shù)據(jù)塊不是由用戶編輯的,而是由編輯器生成的。生成的。 用戶定義數(shù)據(jù)塊用戶定義數(shù)據(jù)塊(DB of TypeDB of Type)是以)是以UDTUDT為模板所生成為模板所生成的數(shù)據(jù)塊。創(chuàng)建用戶定義數(shù)據(jù)塊(的數(shù)據(jù)塊。創(chuàng)建用戶定義數(shù)據(jù)塊(DB of TypeDB of Type)之前,必)之前,必須 先 創(chuàng) 建 一 個 用 戶 定 義 數(shù) 據(jù) 類 型 , 如須 先 創(chuàng) 建 一 個 用 戶 定 義 數(shù) 據(jù) 類
14、 型 , 如 U D T 1U D T 1 , 并 在, 并 在LAD/STL/FBD S7LAD/STL/FBD S7程序編輯器內(nèi)定義。程序編輯器內(nèi)定義。返回上級返回上級Date: 2021-10-14 Page: 152.2.數(shù)據(jù)塊寄存器數(shù)據(jù)塊寄存器 CPU有兩個數(shù)據(jù)塊寄存器:有兩個數(shù)據(jù)塊寄存器:DB和和DI寄存器。這樣,可以寄存器。這樣,可以同時打開兩個數(shù)據(jù)塊。同時打開兩個數(shù)據(jù)塊。 返回上級返回上級Date: 2021-10-14 Page: 165.2.3 5.2.3 數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu) 在在STEP 7STEP 7中數(shù)據(jù)塊的數(shù)據(jù)類型可以采用基本數(shù)據(jù)類中數(shù)據(jù)塊的數(shù)據(jù)類型可
15、以采用基本數(shù)據(jù)類型、復(fù)雜數(shù)據(jù)類型或用戶定義數(shù)據(jù)類型(型、復(fù)雜數(shù)據(jù)類型或用戶定義數(shù)據(jù)類型(UDTUDT)。)?;緮?shù)據(jù)類型基本數(shù)據(jù)類型復(fù)雜數(shù)據(jù)類型復(fù)雜數(shù)據(jù)類型用戶定義數(shù)據(jù)類型用戶定義數(shù)據(jù)類型 返回本節(jié)返回本節(jié)Date: 2021-10-14 Page: 17基本數(shù)據(jù)類型基本數(shù)據(jù)類型 根據(jù)根據(jù)IEC1131-3IEC1131-3定義,長度不超過定義,長度不超過3232位,可利用位,可利用STEP 7STEP 7基本指令處理,能完全裝入基本指令處理,能完全裝入S7S7處理器的累加器中?;緮?shù)處理器的累加器中?;緮?shù)據(jù)類型包括:據(jù)類型包括:位數(shù)據(jù)類型位數(shù)據(jù)類型:BOOLBOOL、BYTEBYTE、WO
16、RDWORD、DWORDDWORD、CHARCHAR數(shù)字?jǐn)?shù)據(jù)類型數(shù)字?jǐn)?shù)據(jù)類型:INTINT、DINTDINT、REALREAL定時器類型定時器類型:S5TIMES5TIME、TIMETIME、DATEDATE、TIME_OF_DAY TIME_OF_DAY 返回上級返回上級Date: 2021-10-14 Page: 18復(fù)雜數(shù)據(jù)類型復(fù)雜數(shù)據(jù)類型 復(fù)雜數(shù)據(jù)類型只能結(jié)合共享數(shù)據(jù)塊的變量聲明使用。復(fù)復(fù)雜數(shù)據(jù)類型只能結(jié)合共享數(shù)據(jù)塊的變量聲明使用。復(fù)雜數(shù)據(jù)類型可大于雜數(shù)據(jù)類型可大于3232位,用裝入指令不能把復(fù)雜數(shù)據(jù)類型完位,用裝入指令不能把復(fù)雜數(shù)據(jù)類型完全裝入累加器,一般利用庫中的標(biāo)準(zhǔn)塊(全裝入累加
17、器,一般利用庫中的標(biāo)準(zhǔn)塊(“IEC”S7IEC”S7程序)程序)處 理 復(fù) 雜 數(shù) 據(jù) 類 型 。 復(fù) 雜 數(shù) 據(jù) 類 型 包 括 :處 理 復(fù) 雜 數(shù) 據(jù) 類 型 。 復(fù) 雜 數(shù) 據(jù) 類 型 包 括 :時間時間(DATE_AND_TIMEDATE_AND_TIME)類型)類型矩陣矩陣(ARRAYARRAY)類型)類型結(jié)構(gòu)結(jié)構(gòu)(STRUCTSTRUCT)類型)類型字符串字符串(STRINGSTRING)類型)類型返回上級返回上級Date: 2021-10-14 Page: 19用戶定義數(shù)據(jù)類型(用戶定義數(shù)據(jù)類型(UDTUDT) STEP 7允許利用數(shù)據(jù)塊編輯器,將基本數(shù)據(jù)類型和復(fù)允許利用數(shù)據(jù)塊
18、編輯器,將基本數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型組合成長度大于雜數(shù)據(jù)類型組合成長度大于32位用戶定義數(shù)據(jù)類型(位用戶定義數(shù)據(jù)類型(UDT:User-Defined dataType)。用戶定義數(shù)據(jù)類型不能存儲在)。用戶定義數(shù)據(jù)類型不能存儲在PLC中,只能存放在硬盤上的中,只能存放在硬盤上的UDT塊中。可以用用戶定義塊中??梢杂糜脩舳x數(shù)據(jù)類型作數(shù)據(jù)類型作“模板模板”建立數(shù)據(jù)塊,以節(jié)省錄入時間??捎糜诮?shù)據(jù)塊,以節(jié)省錄入時間??捎糜诮?立 結(jié) 構(gòu) 化 數(shù) 據(jù) 塊 、 建 立 包 含 幾 個 相 同 單 元 的建 立 結(jié) 構(gòu) 化 數(shù) 據(jù) 塊 、 建 立 包 含 幾 個 相 同 單 元 的矩陣、在帶有給定結(jié)構(gòu)
19、的矩陣、在帶有給定結(jié)構(gòu)的FC和和FB中建立局部變量。中建立局部變量。 返回上級返回上級Date: 2021-10-14 Page: 20【5-2-1】 創(chuàng)建用戶定義數(shù)據(jù)類型:創(chuàng)建用戶定義數(shù)據(jù)類型:UDT1。 創(chuàng)建一個名稱為創(chuàng)建一個名稱為UDT1UDT1的用戶定義數(shù)據(jù)類型,數(shù)據(jù)結(jié)構(gòu)的用戶定義數(shù)據(jù)類型,數(shù)據(jù)結(jié)構(gòu)如下,則可按以下幾個步驟完成。如下,則可按以下幾個步驟完成。 返回上級返回上級Date: 2021-10-14 Page: 21【5-2-1】 數(shù)據(jù)類型屬性 對話框 選擇插入“數(shù)據(jù)類型” 點(diǎn)擊塊文件夾 輸入 UDT 的名稱 確認(rèn) 創(chuàng)建創(chuàng)建用戶定義用戶定義數(shù)據(jù)類型數(shù)據(jù)類型返回上級返回上級Dat
20、e: 2021-10-14 Page: 22【5-2-1】編輯編輯UDT1UDT1 返回上級返回上級Date: 2021-10-14 Page: 235.2.4 5.2.4 建立數(shù)據(jù)塊建立數(shù)據(jù)塊 在在STEP 7STEP 7中,為了避免出現(xiàn)系統(tǒng)錯誤,在使用數(shù)據(jù)塊中,為了避免出現(xiàn)系統(tǒng)錯誤,在使用數(shù)據(jù)塊之前,必須先建立數(shù)據(jù)塊,并在塊中定義變量(包括變量符之前,必須先建立數(shù)據(jù)塊,并在塊中定義變量(包括變量符號名、數(shù)據(jù)類型以及初始值等)。數(shù)據(jù)塊中變量的順序及類號名、數(shù)據(jù)類型以及初始值等)。數(shù)據(jù)塊中變量的順序及類型決定了數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),變量的數(shù)量決定了數(shù)據(jù)塊的大型決定了數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),變量的數(shù)量決定
21、了數(shù)據(jù)塊的大小。數(shù)據(jù)塊建立后,還必須同程序塊一起下載到小。數(shù)據(jù)塊建立后,還必須同程序塊一起下載到CPUCPU中,才中,才能被程序塊訪問。能被程序塊訪問。建立數(shù)據(jù)塊建立數(shù)據(jù)塊 定義變量并下載數(shù)據(jù)塊定義變量并下載數(shù)據(jù)塊 返回本節(jié)返回本節(jié)Date: 2021-10-14 Page: 24 數(shù)據(jù)塊屬性 對話框 選擇 DB 的類型 輸入 DB 的名稱 選擇插入 DB 點(diǎn) 擊 塊 文 件夾 可選擇輸入數(shù)據(jù)塊的符號名 My_DB 方法方法1 1:用用SIMATIC SIMATIC ManagerManager創(chuàng)建數(shù)據(jù)塊。創(chuàng)建數(shù)據(jù)塊。 返回上級返回上級Date: 2021-10-14 Page: 25 選擇項(xiàng)
22、目類型 選擇S7 項(xiàng)目 選擇 “數(shù)據(jù)塊” 類型 輸入數(shù)據(jù)塊名稱 點(diǎn)擊“新建”圖標(biāo) 方法方法2 2:用用LAD/STL/FBD S7LAD/STL/FBD S7程序編輯器創(chuàng)建數(shù)據(jù)塊。程序編輯器創(chuàng)建數(shù)據(jù)塊。 返回上級返回上級Date: 2021-10-14 Page: 26 創(chuàng)建共享數(shù)據(jù)塊 創(chuàng)建 UDT 數(shù)據(jù)塊 創(chuàng)建背景數(shù)據(jù)塊 指定相配套的 UDT 指定相配套的 FB 新新DBDB類型選擇窗口類型選擇窗口 返回上級返回上級Date: 2021-10-14 Page: 27編輯數(shù)據(jù)塊(變量定義)編輯數(shù)據(jù)塊(變量定義) DB1 原始窗口 在 DB1 內(nèi) 聲明 5 個變量 變量定義完成變量定義完成后,應(yīng)
23、單擊保存按后,應(yīng)單擊保存按鈕保存并編譯(測鈕保存并編譯(測試)。如果沒有錯試)。如果沒有錯誤則需要單擊下載誤則需要單擊下載按鈕,像邏輯塊一按鈕,像邏輯塊一樣,將數(shù)據(jù)塊下載樣,將數(shù)據(jù)塊下載到到CPUCPU。 返回上級返回上級Date: 2021-10-14 Page: 285.2.5 5.2.5 訪問數(shù)據(jù)塊訪問數(shù)據(jù)塊 在用戶程序中可能存在多個數(shù)據(jù)塊,而每個數(shù)據(jù)塊的數(shù)在用戶程序中可能存在多個數(shù)據(jù)塊,而每個數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)并不完全相同,因此在訪問數(shù)據(jù)塊時,必須指明數(shù)據(jù)據(jù)結(jié)構(gòu)并不完全相同,因此在訪問數(shù)據(jù)塊時,必須指明數(shù)據(jù)塊的編號、數(shù)據(jù)類型與位置。如果訪問不存在的數(shù)據(jù)單元或塊的編號、數(shù)據(jù)類型與位置。如果
24、訪問不存在的數(shù)據(jù)單元或數(shù)據(jù)塊,而且沒有編寫錯誤處理數(shù)據(jù)塊,而且沒有編寫錯誤處理OBOB塊,塊,CPUCPU將進(jìn)入將進(jìn)入STOPSTOP模式。模式。尋址數(shù)據(jù)塊尋址數(shù)據(jù)塊 訪問數(shù)據(jù)塊訪問數(shù)據(jù)塊直接訪問數(shù)據(jù)塊直接訪問數(shù)據(jù)塊 返回本節(jié)返回本節(jié)Date: 2021-10-14 Page: 29尋址數(shù)據(jù)塊尋址數(shù)據(jù)塊返回上級返回上級Date: 2021-10-14 Page: 30訪問數(shù)據(jù)塊訪問數(shù)據(jù)塊 在在STEP 7STEP 7中可以采用傳統(tǒng)訪問方式,即先打開后訪問;中可以采用傳統(tǒng)訪問方式,即先打開后訪問;也可以采用完全表示的直接訪問方式。也可以采用完全表示的直接訪問方式?!纠纠?-2-25-2-2】
25、打開并訪問共享數(shù)據(jù)塊。打開并訪問共享數(shù)據(jù)塊。 返回上級返回上級Date: 2021-10-14 Page: 31訪問數(shù)據(jù)塊訪問數(shù)據(jù)塊 用指令用指令“OPN DB.”O(jiān)PN DB.”打開共享數(shù)據(jù)塊(自動關(guān)閉之前打開共享數(shù)據(jù)塊(自動關(guān)閉之前打開的共享數(shù)據(jù)塊),如果打開的共享數(shù)據(jù)塊),如果DBDB已經(jīng)打開,則可用裝入(已經(jīng)打開,則可用裝入(L L)或或傳送(傳送(T T)指令訪問數(shù)據(jù)塊。)指令訪問數(shù)據(jù)塊。 【例【例5-2-35-2-3】 打開并訪問背景數(shù)據(jù)塊。打開并訪問背景數(shù)據(jù)塊。 返回上級返回上級Date: 2021-10-14 Page: 32直接訪問數(shù)據(jù)塊直接訪問數(shù)據(jù)塊 所謂直接訪問數(shù)據(jù)塊,就
26、是在指令中同時給出數(shù)據(jù)塊的所謂直接訪問數(shù)據(jù)塊,就是在指令中同時給出數(shù)據(jù)塊的編號和數(shù)據(jù)在數(shù)據(jù)塊中的地址。可以用絕對地址,也可以用編號和數(shù)據(jù)在數(shù)據(jù)塊中的地址??梢杂媒^對地址,也可以用符號地址直接訪問數(shù)據(jù)塊。符號地址直接訪問數(shù)據(jù)塊。 用用絕對地址絕對地址直接訪問數(shù)據(jù)塊,如:直接訪問數(shù)據(jù)塊,如: 用用符號地址符號地址直接訪問數(shù)據(jù)塊直接訪問數(shù)據(jù)塊 ,如:,如:返回上級返回上級Date: 2021-10-14 Page: 33 功能功能(FCFC)、)、功能塊功能塊(FBFB)和)和組織塊組織塊(OBOB)統(tǒng)稱為邏輯)統(tǒng)稱為邏輯塊(或程序塊)。功能塊(塊(或程序塊)。功能塊(FBFB)有一個數(shù)據(jù)結(jié)構(gòu)與該功
27、能塊)有一個數(shù)據(jù)結(jié)構(gòu)與該功能塊的參數(shù)完全相同的數(shù)據(jù)塊,的參數(shù)完全相同的數(shù)據(jù)塊,稱為背景數(shù)據(jù)塊稱為背景數(shù)據(jù)塊,背景數(shù)據(jù)塊依,背景數(shù)據(jù)塊依附于功能塊,它隨著功能塊的調(diào)用而打開,隨著功能塊的結(jié)附于功能塊,它隨著功能塊的調(diào)用而打開,隨著功能塊的結(jié)束而關(guān)閉。存放在背景數(shù)據(jù)塊中的數(shù)據(jù)在功能塊結(jié)束時繼續(xù)束而關(guān)閉。存放在背景數(shù)據(jù)塊中的數(shù)據(jù)在功能塊結(jié)束時繼續(xù)保持。而功能(保持。而功能(FCFC)則不需要背景數(shù)據(jù)塊,功能調(diào)用結(jié)束后)則不需要背景數(shù)據(jù)塊,功能調(diào)用結(jié)束后數(shù)據(jù)不能保持。組織塊(數(shù)據(jù)不能保持。組織塊(OBOB)是由操作系統(tǒng)直接調(diào)用的邏輯)是由操作系統(tǒng)直接調(diào)用的邏輯塊。塊。 5.3.1 5.3.1 邏輯塊(
28、邏輯塊(FCFC和和FBFB)的結(jié)構(gòu))的結(jié)構(gòu) 5.3.1 5.3.1 邏輯塊(邏輯塊(FCFC和和FBFB)的編程)的編程 5.3 5.3 邏輯塊(邏輯塊(FCFC和和FBFB)的結(jié)構(gòu)及編程)的結(jié)構(gòu)及編程 返回本章返回本章Date: 2021-10-14 Page: 34 邏輯塊(邏輯塊(OBOB、FBFB、FCFC)由變量聲明表、代碼段及其屬性)由變量聲明表、代碼段及其屬性等幾部分組成。等幾部分組成。局部變量聲明表(局部數(shù)據(jù))局部變量聲明表(局部數(shù)據(jù)) 邏輯塊局部變量的數(shù)據(jù)類型邏輯塊局部變量的數(shù)據(jù)類型 邏輯塊的調(diào)用過程及內(nèi)存分配邏輯塊的調(diào)用過程及內(nèi)存分配 5.3.1 5.3.1 邏輯塊(邏輯
29、塊(FCFC和和FBFB)的結(jié)構(gòu))的結(jié)構(gòu)返回本節(jié)返回本節(jié)Date: 2021-10-14 Page: 35 每個邏輯塊前部都有一個變量聲明表,稱為每個邏輯塊前部都有一個變量聲明表,稱為局部變量聲局部變量聲明表明表。1. 1. 局部變量聲明表局部變量聲明表 局部數(shù)據(jù)分為局部數(shù)據(jù)分為參數(shù)參數(shù)和和局部變量局部變量兩大類,局部變量又包括兩大類,局部變量又包括靜態(tài)變量靜態(tài)變量和和臨時變量臨時變量(暫態(tài)變量)兩種。(暫態(tài)變量)兩種。返回上級返回上級Date: 2021-10-14 Page: 36 對于對于功能塊功能塊(FBFB),操作系統(tǒng)為參數(shù)及靜態(tài)變量分配的),操作系統(tǒng)為參數(shù)及靜態(tài)變量分配的存儲空間是
30、背景數(shù)據(jù)塊。這樣參數(shù)變量在背景數(shù)據(jù)塊中留有存儲空間是背景數(shù)據(jù)塊。這樣參數(shù)變量在背景數(shù)據(jù)塊中留有運(yùn)行結(jié)果備份。在調(diào)用運(yùn)行結(jié)果備份。在調(diào)用FBFB時,若沒有提供實(shí)參,則功能塊使時,若沒有提供實(shí)參,則功能塊使用背景數(shù)據(jù)塊中的數(shù)值。操作系統(tǒng)在用背景數(shù)據(jù)塊中的數(shù)值。操作系統(tǒng)在L L堆棧中給堆棧中給FBFB的臨時變的臨時變量分配存儲空間。量分配存儲空間。 對于對于功能功能(FCFC),操作系統(tǒng)在),操作系統(tǒng)在L L堆棧中給堆棧中給FCFC的臨時變量的臨時變量分配存儲空間。由于沒有背景數(shù)據(jù)塊,因而分配存儲空間。由于沒有背景數(shù)據(jù)塊,因而FCFC不能使用靜態(tài)不能使用靜態(tài)變量。輸入、輸出、變量。輸入、輸出、I/O
31、I/O參數(shù)以指向?qū)崊⒌闹羔樞问酱鎯υ趨?shù)以指向?qū)崊⒌闹羔樞问酱鎯υ诓僮飨到y(tǒng)為參數(shù)傳遞而保留的額外空間中。操作系統(tǒng)為參數(shù)傳遞而保留的額外空間中。 對于對于組織塊組織塊(OBOB)來說,其調(diào)用是由操作系統(tǒng)管理的,)來說,其調(diào)用是由操作系統(tǒng)管理的,用戶不能參與。因此,用戶不能參與。因此,OBOB只有定義在只有定義在L L堆棧中的臨時變量。堆棧中的臨時變量。返回上級返回上級Date: 2021-10-14 Page: 37 局部變量可以是基本數(shù)據(jù)類型或復(fù)式數(shù)據(jù)類型,也可以局部變量可以是基本數(shù)據(jù)類型或復(fù)式數(shù)據(jù)類型,也可以是專門用于參數(shù)傳遞的所謂的是專門用于參數(shù)傳遞的所謂的“參數(shù)類型參數(shù)類型”。參數(shù)類型包
32、括。參數(shù)類型包括定時器、計(jì)數(shù)器、塊的地址或指針等。定時器、計(jì)數(shù)器、塊的地址或指針等。2.2.邏輯塊局部變量的數(shù)據(jù)類型邏輯塊局部變量的數(shù)據(jù)類型 返回上級返回上級Date: 2021-10-14 Page: 38 CPU CPU提供提供塊堆棧塊堆棧(B B堆棧)來存儲與處理被中斷塊的有關(guān)堆棧)來存儲與處理被中斷塊的有關(guān)信息。信息。3.3.邏輯塊的調(diào)用過程及內(nèi)存分配邏輯塊的調(diào)用過程及內(nèi)存分配 先前塊的數(shù)據(jù)(仍是激活的)DB寄存器(DB和DI)臨時數(shù)據(jù)指針塊號返回地址先前塊的數(shù)據(jù)(仍是激活的)DB寄存器(DB和DI)臨時數(shù)據(jù)指針塊號返回地址塊堆棧(B堆棧)可執(zhí)行的用戶程序邏輯塊數(shù)據(jù)塊工作內(nèi)存仍是激活的
33、先前塊的臨時數(shù)據(jù)L堆棧數(shù)據(jù)塊寄存器打開的數(shù)據(jù)塊號當(dāng)前塊的臨時數(shù)據(jù)打開的背景數(shù)據(jù)塊號被中斷塊的數(shù)據(jù)DB寄存器(DB和DI)臨時數(shù)據(jù)指針塊號返回地址返回上級返回上級Date: 2021-10-14 Page: 39 局部數(shù)據(jù)堆棧局部數(shù)據(jù)堆棧簡稱簡稱L L堆棧堆棧,是,是CPUCPU中單獨(dú)的存儲器區(qū),可中單獨(dú)的存儲器區(qū),可用來存儲邏輯塊的局部變量(包括用來存儲邏輯塊的局部變量(包括OBOB的起始信息)、調(diào)用功的起始信息)、調(diào)用功能(能(FCFC)時要傳遞的實(shí)際參數(shù)、梯形圖程序中的中間邏輯結(jié))時要傳遞的實(shí)際參數(shù)、梯形圖程序中的中間邏輯結(jié)果等。可以按位、字節(jié)、字和雙字來存取。果等??梢园次弧⒆止?jié)、字和雙
34、字來存取。 塊堆棧塊堆棧簡稱簡稱B B堆棧堆棧,是,是CPUCPU系統(tǒng)內(nèi)存中的一部分,用來存系統(tǒng)內(nèi)存中的一部分,用來存儲被中斷的塊的類型、編號、優(yōu)先級和返回地址;中斷時打儲被中斷的塊的類型、編號、優(yōu)先級和返回地址;中斷時打開的共享數(shù)據(jù)塊和背景數(shù)據(jù)塊的編號;臨時變量的指針(被開的共享數(shù)據(jù)塊和背景數(shù)據(jù)塊的編號;臨時變量的指針(被中斷塊的中斷塊的L L堆棧地址)。堆棧地址)。 中斷堆棧中斷堆棧簡稱簡稱I I堆棧堆棧,用來存儲當(dāng)前累加器和地址寄存,用來存儲當(dāng)前累加器和地址寄存器的內(nèi)容、數(shù)據(jù)塊寄存器器的內(nèi)容、數(shù)據(jù)塊寄存器DBDB和和DIDI的內(nèi)容、局域數(shù)據(jù)的指針、的內(nèi)容、局域數(shù)據(jù)的指針、狀態(tài)字、狀態(tài)字、
35、MCRMCR(主控繼電器)寄存器和(主控繼電器)寄存器和B B堆棧的指針。堆棧的指針。 用戶程序使用的堆棧用戶程序使用的堆棧 返回上級返回上級Date: 2021-10-14 Page: 40 當(dāng)調(diào)用功能塊(當(dāng)調(diào)用功能塊(FBFB)時,會有以下事件發(fā)生:)時,會有以下事件發(fā)生: 調(diào)用塊的地址和返回位置存儲在塊堆棧中,調(diào)用塊的臨時調(diào)用塊的地址和返回位置存儲在塊堆棧中,調(diào)用塊的臨時變量壓入變量壓入L L堆棧;堆棧;數(shù)據(jù)塊數(shù)據(jù)塊DBDB寄存器內(nèi)容與寄存器內(nèi)容與DIDI寄存器內(nèi)容交換;寄存器內(nèi)容交換;新的數(shù)據(jù)塊地址裝入新的數(shù)據(jù)塊地址裝入DIDI寄存器;寄存器;被調(diào)用塊的實(shí)參裝入被調(diào)用塊的實(shí)參裝入DBD
36、B和和L L堆棧堆棧上部;上部;當(dāng)功能塊當(dāng)功能塊FBFB結(jié)束時,先前塊的現(xiàn)場信息從塊堆棧中彈結(jié)束時,先前塊的現(xiàn)場信息從塊堆棧中彈出,臨時變量彈出出,臨時變量彈出L L堆棧;堆棧;DBDB和和DIDI寄存器內(nèi)容交換。寄存器內(nèi)容交換。 當(dāng)調(diào)用功能塊(當(dāng)調(diào)用功能塊(FBFB)時,)時,STEP 7STEP 7并不一定要求給并不一定要求給FBFB形參賦予形參賦予實(shí)參,除非參數(shù)是復(fù)式數(shù)據(jù)類型的實(shí)參,除非參數(shù)是復(fù)式數(shù)據(jù)類型的I/OI/O形參或參數(shù)類型形參。如果形參或參數(shù)類型形參。如果沒有給沒有給FBFB的形參賦予實(shí)參,則功能塊(的形參賦予實(shí)參,則功能塊(FBFB)就調(diào)用背景數(shù)據(jù)塊內(nèi))就調(diào)用背景數(shù)據(jù)塊內(nèi)的數(shù)
37、值,該數(shù)值是在功能塊(的數(shù)值,該數(shù)值是在功能塊(FBFB)的變量聲明表或背景數(shù)據(jù)塊內(nèi))的變量聲明表或背景數(shù)據(jù)塊內(nèi)為形參所設(shè)置初始數(shù)值。為形參所設(shè)置初始數(shù)值。調(diào)用功能塊(調(diào)用功能塊(FBFB)時的堆棧操作)時的堆棧操作 返回上級返回上級Date: 2021-10-14 Page: 41 當(dāng)調(diào)用功能(當(dāng)調(diào)用功能(FCFC)時會有以下事件發(fā)生:)時會有以下事件發(fā)生: 功能(功能(FCFC)實(shí)參的指針存到調(diào)用塊的)實(shí)參的指針存到調(diào)用塊的L L堆棧;調(diào)用塊的堆棧;調(diào)用塊的地址和返回位置存儲在塊堆棧,調(diào)用塊的局部數(shù)據(jù)壓入地址和返回位置存儲在塊堆棧,調(diào)用塊的局部數(shù)據(jù)壓入L L堆堆棧;功能(棧;功能(FCFC
38、)存儲臨時變量的)存儲臨時變量的L L堆棧區(qū)被推入堆棧區(qū)被推入L L堆棧上部;堆棧上部;當(dāng)被調(diào)用功能(當(dāng)被調(diào)用功能(FCFC)結(jié)束時,先前塊的信息存儲在塊堆棧)結(jié)束時,先前塊的信息存儲在塊堆棧中,臨時變量彈出中,臨時變量彈出L L堆棧。堆棧。 因?yàn)楣δ埽ㄒ驗(yàn)楣δ埽‵CFC)不用背景數(shù)據(jù)塊,不能分配初始數(shù)值給)不用背景數(shù)據(jù)塊,不能分配初始數(shù)值給功能(功能(FCFC)的局部數(shù)據(jù),所以必須給功能()的局部數(shù)據(jù),所以必須給功能(FCFC)提供實(shí)參。)提供實(shí)參。 調(diào)用功能(調(diào)用功能(FCFC)時的堆棧操作)時的堆棧操作 返回上級返回上級Date: 2021-10-14 Page: 42 以功能(以功能(
39、FC)調(diào)用為例,調(diào)用為例,L堆棧操堆棧操作示意如圖所示。作示意如圖所示。 調(diào)用功能(調(diào)用功能(FCFC)時的堆棧操作)時的堆棧操作 返回上級返回上級Date: 2021-10-14 Page: 43 對邏輯塊編程時必須編輯下列三個部分:對邏輯塊編程時必須編輯下列三個部分: 變量聲明變量聲明:分別定義形參、靜態(tài)變量和臨時變量(:分別定義形參、靜態(tài)變量和臨時變量(FCFC塊塊中不包括靜態(tài)變量);確定各變量的聲明類型(中不包括靜態(tài)變量);確定各變量的聲明類型(Decl.Decl.)、)、變量名(變量名(NameName)和數(shù)據(jù)類型()和數(shù)據(jù)類型(Data TypeData Type),還要為變量設(shè))
40、,還要為變量設(shè)置初始值(置初始值(Initial ValueInitial Value)。如果需要還可為變量注釋)。如果需要還可為變量注釋(CommentComment)。在增量編程模式下,)。在增量編程模式下,STEP 7STEP 7將自動產(chǎn)生局部將自動產(chǎn)生局部變量地址(變量地址(AddressAddress)。)。 代碼段代碼段:對將要由:對將要由PLCPLC進(jìn)行處理的塊代碼進(jìn)行編程。進(jìn)行處理的塊代碼進(jìn)行編程。 塊屬性塊屬性:塊屬性包含了其它附加的信息,例如由系統(tǒng)輸:塊屬性包含了其它附加的信息,例如由系統(tǒng)輸入的時間標(biāo)志或路徑。此外,也可輸入相關(guān)詳細(xì)資料。入的時間標(biāo)志或路徑。此外,也可輸入相
41、關(guān)詳細(xì)資料。 5.3.2 5.3.2 邏輯塊(邏輯塊(FCFC和和FBFB)的編程)的編程 返回本節(jié)返回本節(jié)Date: 2021-10-14 Page: 441.1.臨時變量的定義和使用臨時變量的定義和使用返回上級返回上級Date: 2021-10-14 Page: 45 選中 Blocks 執(zhí)行菜單命令 選擇程序結(jié)構(gòu) 查看局部數(shù)據(jù)的字?jǐn)?shù) 2.2.查看局部數(shù)據(jù)堆棧的占用查看局部數(shù)據(jù)堆棧的占用 返回上級返回上級Date: 2021-10-14 Page: 46 選擇邏輯塊并單擊右鍵 選擇對象屬性命令 查看塊所需字節(jié)數(shù) 3.3.查看塊所需字節(jié)數(shù)查看塊所需字節(jié)數(shù) 返回上級返回上級Date: 2021
42、-10-14 Page: 47 定義輸入?yún)?shù) 定義輸出參數(shù) 選擇參數(shù)類型 輸入?yún)?shù)名稱 從下拉列表中選擇數(shù)據(jù)類型 參數(shù)注解 定義輸入/輸出參數(shù) 數(shù)據(jù)類型下拉列表 4.4.定義形式參數(shù)定義形式參數(shù) 返回上級返回上級Date: 2021-10-14 Page: 48 編寫邏輯塊(編寫邏輯塊(FCFC和和FBFB)程序時,可以用以下兩種方式使)程序時,可以用以下兩種方式使用局部變量:用局部變量: 使用變量名,此時變量名前加前綴使用變量名,此時變量名前加前綴“# #”,以區(qū)別于,以區(qū)別于在符號表中定義的符號地址。增量方式下,前綴會自動產(chǎn)生。在符號表中定義的符號地址。增量方式下,前綴會自動產(chǎn)生。 直接使
43、用局部變量的地址,這種方式只對背景數(shù)據(jù)塊直接使用局部變量的地址,這種方式只對背景數(shù)據(jù)塊和和L L堆棧有效。堆棧有效。 在調(diào)用在調(diào)用FBFB塊時,要說明其背景數(shù)據(jù)塊。背景數(shù)據(jù)塊應(yīng)在塊時,要說明其背景數(shù)據(jù)塊。背景數(shù)據(jù)塊應(yīng)在調(diào)用前生成,其順序格式與變量聲明表必須保持一致。調(diào)用前生成,其順序格式與變量聲明表必須保持一致。5.5.編寫控制程序編寫控制程序返回上級返回上級Date: 2021-10-14 Page: 49 所謂所謂無參功能無參功能(FCFC),是指在編輯功能(),是指在編輯功能(FCFC)時,在局)時,在局部變量聲明表不進(jìn)行形式參數(shù)的定義,在功能(部變量聲明表不進(jìn)行形式參數(shù)的定義,在功能(
44、FCFC)中直接)中直接使用絕對地址完成控制程序的編程。這種方式一般應(yīng)用于分使用絕對地址完成控制程序的編程。這種方式一般應(yīng)用于分部式結(jié)構(gòu)的程序編寫,每個功能(部式結(jié)構(gòu)的程序編寫,每個功能(FCFC)實(shí)現(xiàn)整個控制任務(wù)的)實(shí)現(xiàn)整個控制任務(wù)的一部分,不重復(fù)調(diào)用。一部分,不重復(fù)調(diào)用。5.4.1 5.4.1 編輯無參功能(編輯無參功能(FCFC)5.4.2 5.4.2 在在OB1OB1中調(diào)用無參功能(中調(diào)用無參功能(FCFC)5.4 5.4 編輯并調(diào)用無參功能(編輯并調(diào)用無參功能(FCFC)分部程序設(shè)計(jì)分部程序設(shè)計(jì) 返回本章返回本章Date: 2021-10-14 Page: 50【例【例5-4-15-
45、4-1】 攪拌控制系統(tǒng)程序設(shè)計(jì)攪拌控制系統(tǒng)程序設(shè)計(jì)使用開關(guān)量。使用開關(guān)量。 攪 拌 器 低 液 位 傳 感 器 高 液 位 傳 感 器 進(jìn) 料 泵 1 進(jìn) 料 泵 2 中 液 位 傳 感 器 放 料 泵 啟 動 停 止 料 A 料 B 料 C 起動 返回本節(jié)返回本節(jié)Date: 2021-10-14 Page: 51控制說明控制說明 如圖所示為一攪拌控制系統(tǒng),由如圖所示為一攪拌控制系統(tǒng),由3 3個開關(guān)量液位傳感器,個開關(guān)量液位傳感器,分別檢測液位的高、中和低?,F(xiàn)要求對分別檢測液位的高、中和低?,F(xiàn)要求對A A、B B兩種液體原兩種液體原料按等比例混合,請編寫控制程序。料按等比例混合,請編寫控制程序
46、。 要求:按起動按鈕后系統(tǒng)自動運(yùn)行,首先打開進(jìn)料泵要求:按起動按鈕后系統(tǒng)自動運(yùn)行,首先打開進(jìn)料泵1 1,開始加入液料開始加入液料AA中液位傳感器動作后,則關(guān)閉進(jìn)料泵中液位傳感器動作后,則關(guān)閉進(jìn)料泵1 1,打,打開進(jìn)料泵開進(jìn)料泵2 2,開始加入液料,開始加入液料BB高液位傳感器動作后,關(guān)閉進(jìn)高液位傳感器動作后,關(guān)閉進(jìn)料泵料泵2 2,起動攪拌器,起動攪拌器攪拌攪拌10s10s后,關(guān)閉攪拌器,開啟放料泵后,關(guān)閉攪拌器,開啟放料泵當(dāng)?shù)鸵何粋鞲衅鲃幼骱?,延時當(dāng)?shù)鸵何粋鞲衅鲃幼骱?,延時5s5s后關(guān)閉放料泵。按后關(guān)閉放料泵。按停止按鈕,系統(tǒng)應(yīng)立即停止運(yùn)行。停止按鈕,系統(tǒng)應(yīng)立即停止運(yùn)行。 返回上級返回上級Da
47、te: 2021-10-14 Page: 521.1.創(chuàng)建創(chuàng)建S7S7項(xiàng)目項(xiàng)目 按照第按照第3 3章所介紹的方法,創(chuàng)建章所介紹的方法,創(chuàng)建S7S7項(xiàng)目,并命名為項(xiàng)目,并命名為“無無參參FC”FC”,項(xiàng)目包含組織塊,項(xiàng)目包含組織塊OB1OB1和和OB100OB100。2.2.硬件配置硬件配置 在在 “無參無參FC”FC”項(xiàng)目內(nèi)打開項(xiàng)目內(nèi)打開“SIMATIC 300 Station”SIMATIC 300 Station”文文件夾,打開硬件配置窗口,并完成硬件配置。件夾,打開硬件配置窗口,并完成硬件配置。 5.4.1 5.4.1 編輯無參功能(編輯無參功能(FCFC) 返回本節(jié)返回本節(jié)Date:
48、2021-10-14 Page: 533.3.編輯符號表編輯符號表 返回上級返回上級Date: 2021-10-14 Page: 54 O B 1 主 循 環(huán) O B 100:初 始 化 程 序 FC 1: 液 料 A 控 制 程 序 FC 2: 液 料 B 控 制 程 序 FC 3: 攪 拌 器 控 制 程 序 FC 4: 出 料 控 制 程 序 操 作 系 統(tǒng) 4.4.規(guī)劃程序結(jié)構(gòu)規(guī)劃程序結(jié)構(gòu) 返回上級返回上級Date: 2021-10-14 Page: 555.5.編輯功能(編輯功能(FC FC ) 在在“無參無參FC”FC”項(xiàng)目內(nèi)選擇項(xiàng)目內(nèi)選擇“Blocks”Blocks”文件夾,然后
49、反復(fù)文件夾,然后反復(fù)執(zhí)行菜單命令【執(zhí)行菜單命令【InsertInsert】【S7 BlockS7 Block】【FunctionFunction】,】,分別創(chuàng)建分別創(chuàng)建4 4個功能(個功能(FCFC):):FC1FC1、FC2FC2、FC3FC3和和FC4FC4。由于在符。由于在符號表內(nèi)已經(jīng)為號表內(nèi)已經(jīng)為FC1FC1FC4FC4定義了符號名,因此在創(chuàng)建定義了符號名,因此在創(chuàng)建FCFC的屬性的屬性對話對話框內(nèi)系統(tǒng)會自動添加符號名??騼?nèi)系統(tǒng)會自動添加符號名。FC1FC1控制程序控制程序FC2FC2控制程序控制程序FC3FC3控制程序控制程序FC4FC4控制程序控制程序OB100OB100控制程序控
50、制程序返回上級返回上級Date: 2021-10-14 Page: 56FC1FC1的控制程序的控制程序FC2FC2的控制程序的控制程序返回上級返回上級Date: 2021-10-14 Page: 57 FC3FC3的控制程序的控制程序返回上級返回上級Date: 2021-10-14 Page: 58 FC4FC4的控制程序的控制程序返回上級返回上級Date: 2021-10-14 Page: 59OB100OB100的控制程序的控制程序返回上級返回上級Date: 2021-10-14 Page: 605.4.2 5.4.2 在在OB1OB1中調(diào)用無參功能(中調(diào)用無參功能(FCFC) 可調(diào)用的
51、功能 FC 在 OB1 內(nèi)調(diào)用FC1FC4 返回本節(jié)返回本節(jié)Date: 2021-10-14 Page: 61 OB1OB1的控制程序的控制程序返回上級返回上級Date: 2021-10-14 Page: 62 所謂所謂有參功能有參功能(FCFC),是指編輯功能(),是指編輯功能(FCFC)時,在局部)時,在局部變量聲明表內(nèi)定義了形式參數(shù),在功能(變量聲明表內(nèi)定義了形式參數(shù),在功能(FCFC)中使用了)中使用了虛擬虛擬的符號地址的符號地址完成控制程序的編程,以便在其他塊中能重復(fù)調(diào)完成控制程序的編程,以便在其他塊中能重復(fù)調(diào)用有參功能(用有參功能(FCFC)。這種方式一般應(yīng)用于結(jié)構(gòu)化程序編寫。)。
52、這種方式一般應(yīng)用于結(jié)構(gòu)化程序編寫。5.5.1 5.5.1 編輯有參功能(編輯有參功能(FCFC) 5.5.2 5.5.2 在在OB1OB1中調(diào)用有參功能(中調(diào)用有參功能(FCFC)5.5 5.5 編輯并調(diào)用有參功能(編輯并調(diào)用有參功能(FCFC)結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì) 返回本章返回本章Date: 2021-10-14 Page: 63【例【例5-5-15-5-1】 多級分頻器控制程序設(shè)計(jì)。多級分頻器控制程序設(shè)計(jì)。 本例擬在功能本例擬在功能FC1FC1中編寫二分頻器控制程序,然后在中編寫二分頻器控制程序,然后在OB1OB1中通過調(diào)用中通過調(diào)用FC1FC1實(shí)現(xiàn)多級分頻器的功能。多級分頻器的時
53、序?qū)崿F(xiàn)多級分頻器的功能。多級分頻器的時序關(guān)系如圖所示。其中關(guān)系如圖所示。其中I0.0I0.0為多級分頻器的脈沖輸入端;為多級分頻器的脈沖輸入端;Q4.0Q4.0Q4.3Q4.3分別為分別為2 2、4 4、8 8、1616分頻的脈沖輸出端;分頻的脈沖輸出端;Q4.4Q4.4Q4.7Q4.7分別為分別為2 2、4 4、8 8、1616分頻指示燈驅(qū)動輸出端。分頻指示燈驅(qū)動輸出端。I0.0Q4.0/Q4.4/M0.0Q4.1/Q4.5/M0.1Q4.2/Q4.6/M0.2Q4.3/Q4.7/M0.31234567891011121314151617181920212223242526272829303
54、132返回本節(jié)返回本節(jié)Date: 2021-10-14 Page: 645.5.1 5.5.1 編輯有參功能(編輯有參功能(FCFC) 創(chuàng)建多級分頻器的創(chuàng)建多級分頻器的S7S7項(xiàng)目項(xiàng)目硬件配置硬件配置編寫符號表編寫符號表 規(guī)劃程序結(jié)構(gòu)規(guī)劃程序結(jié)構(gòu) 創(chuàng)建有參功能創(chuàng)建有參功能FC1 FC1 返回本節(jié)返回本節(jié)Date: 2021-10-14 Page: 651.1.創(chuàng)建多級分頻器的創(chuàng)建多級分頻器的S7S7項(xiàng)目項(xiàng)目 使用菜單【使用菜單【FileFile】【“New Project”WizardNew Project”Wizard】創(chuàng)建】創(chuàng)建多多級分頻器的級分頻器的S7S7項(xiàng)目,并命名為項(xiàng)目,并命名為“
55、有參有參FCFC”。2.2.硬件配置硬件配置 打開打開“SIMATIC 300 Station”SIMATIC 300 Station”文件夾,雙擊硬件配置文件夾,雙擊硬件配置圖圖標(biāo)打開硬件配置窗口,并按圖所示完成標(biāo)打開硬件配置窗口,并按圖所示完成硬件配置硬件配置。返回上級返回上級Date: 2021-10-14 Page: 663. 3. 編寫符號表編寫符號表 返回上級返回上級Date: 2021-10-14 Page: 674. 4. 規(guī)劃程序結(jié)構(gòu)規(guī)劃程序結(jié)構(gòu) OB1 主循環(huán) 調(diào)用 FC1:實(shí)現(xiàn) 2 分頻 調(diào)用 FC1: 實(shí)現(xiàn) 4 分頻 調(diào)用 FC1: 實(shí)現(xiàn) 8 分頻 調(diào)用 FC1: 實(shí)現(xiàn)
56、 16 分頻 操作系統(tǒng) 返回上級返回上級Date: 2021-10-14 Page: 685. 5. 創(chuàng)建有參創(chuàng)建有參FC1 FC1 選擇選擇“有參有參FC”FC”項(xiàng)目的項(xiàng)目的“Blocks”Blocks”文件夾,然后執(zhí)行菜文件夾,然后執(zhí)行菜單命令【單命令【InsertInsert】【S7 BlockS7 Block】【FunctionFunction】,在塊文】,在塊文件夾件夾內(nèi)創(chuàng)建一個功能,并命名為內(nèi)創(chuàng)建一個功能,并命名為“FC1”FC1”。編輯編輯FC1FC1的變量聲明表的變量聲明表 在在FC1FC1的變量聲明表內(nèi),聲明的變量聲明表內(nèi),聲明4 4個參數(shù),見下表。個參數(shù),見下表。返回上級返
57、回上級Date: 2021-10-14 Page: 69編輯編輯FC1FC1的控制程序的控制程序 二分頻器的時序如圖所示。分析二分頻器的時序圖可二分頻器的時序如圖所示。分析二分頻器的時序圖可以看到,輸入信號每出現(xiàn)一個上升沿,輸出便改變一次狀以看到,輸入信號每出現(xiàn)一個上升沿,輸出便改變一次狀態(tài),據(jù)此可采用上跳沿檢測指令實(shí)現(xiàn)。態(tài),據(jù)此可采用上跳沿檢測指令實(shí)現(xiàn)。 S_INS_OUTF_P 如果輸入信號如果輸入信號S_INS_IN出現(xiàn)上升沿,則對出現(xiàn)上升沿,則對S_OUTS_OUT取反,然后取反,然后將將S_OUTS_OUT的信號狀態(tài)送的信號狀態(tài)送LEDLED顯示;否則,程序直接跳轉(zhuǎn)到顯示;否則,程序
58、直接跳轉(zhuǎn)到LP1LP1,將將S_OUTS_OUT的信號狀態(tài)送的信號狀態(tài)送LEDLED顯示。顯示。返回上級返回上級Date: 2021-10-14 Page: 70 FC1FC1的控制程序的控制程序返回上級返回上級Date: 2021-10-14 Page: 715.5.2 5.5.2 在在OB1OB1中調(diào)用有參功能(中調(diào)用有參功能(FCFC) 使使用用絕絕對對地地址址使使用用符符號號地地址址返回本節(jié)返回本節(jié)Date: 2021-10-14 Page: 72 功能塊(功能塊(FBFB)在程序的體系結(jié)構(gòu)中位于組織塊之下。它)在程序的體系結(jié)構(gòu)中位于組織塊之下。它包含程序的一部分,這部分程序在包含程序
59、的一部分,這部分程序在OB1OB1中可以多次調(diào)用。功中可以多次調(diào)用。功能塊的所有能塊的所有形參形參和和靜態(tài)數(shù)據(jù)靜態(tài)數(shù)據(jù)都存儲在一個單獨(dú)的、被指定給都存儲在一個單獨(dú)的、被指定給該功能塊的數(shù)據(jù)塊(該功能塊的數(shù)據(jù)塊(DBDB)中,該數(shù)據(jù)塊被稱為)中,該數(shù)據(jù)塊被稱為背景數(shù)據(jù)塊背景數(shù)據(jù)塊。當(dāng)調(diào)用當(dāng)調(diào)用FBFB時,該背景數(shù)據(jù)塊會自動打開,實(shí)際參數(shù)的值被存時,該背景數(shù)據(jù)塊會自動打開,實(shí)際參數(shù)的值被存儲在背景數(shù)據(jù)塊中;當(dāng)塊退出時,背景數(shù)據(jù)塊中的數(shù)據(jù)仍然儲在背景數(shù)據(jù)塊中;當(dāng)塊退出時,背景數(shù)據(jù)塊中的數(shù)據(jù)仍然保持。保持。 5.6.1 5.6.1 編輯無靜態(tài)參數(shù)的功能塊(編輯無靜態(tài)參數(shù)的功能塊(FBFB)5.6.2
60、5.6.2 在在OB1OB1中調(diào)用無靜態(tài)參數(shù)的功能塊(中調(diào)用無靜態(tài)參數(shù)的功能塊(FBFB) 5.6 5.6 編輯無靜參的功能塊(編輯無靜參的功能塊(FB FB )返回本章返回本章Date: 2021-10-14 Page: 73【例【例5-6-15-6-1】 水箱水位控制系統(tǒng)程序設(shè)計(jì)。水箱水位控制系統(tǒng)程序設(shè)計(jì)。 Y2 Y1 UL1 UH1 Y4 Y3 UL2 UH2 Y6 Y5 UL3 UH3 水箱 1 水箱 2 水箱 3 SB1 SB2 SB3 SB4 SB5 SB6 返回本節(jié)返回本節(jié)Date: 2021-10-14 Page: 74【例【例5-6-15-6-1】 系統(tǒng)有系統(tǒng)有3 3個貯水箱
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年西寧市城東區(qū)數(shù)學(xué)三年級第一學(xué)期期末質(zhì)量跟蹤監(jiān)視試題含解析
- 2024-2025學(xué)年烏蘭浩特市數(shù)學(xué)三上期末學(xué)業(yè)水平測試模擬試題含解析
- 2025年再生橡膠項(xiàng)目立項(xiàng)申請報告
- 2024年片石供需協(xié)議
- 建筑實(shí)習(xí)報告范文錦集10篇
- 專業(yè)求職信匯編八篇
- 社會實(shí)踐心得50字
- 理想演講稿模板錦集5篇
- 個人簡歷自我評價(15篇)
- 元旦主題晚會策劃書匯編15篇
- 安徽省安慶市四中學(xué)2022-2023學(xué)年數(shù)學(xué)七上期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 2022年八九年級物理課本實(shí)驗(yàn)歸納
- 年產(chǎn)萬噸甲醇制二甲醚生產(chǎn)工藝的初步設(shè)計(jì)說明書
- 膠原蛋白行業(yè)報告
- 新生兒科:換血療法的操作流程
- 《新媒體文案寫作》試卷1
- 二年級數(shù)學(xué)興趣小組活動記錄全記錄
- 毛坯房驗(yàn)房專用表格詳細(xì)
- 車輛維修保養(yǎng)服務(wù)方案(完整版)
- 幼兒園大班主題《我自己》個別化學(xué)習(xí)
- 派出所立體化勤務(wù)指揮室建設(shè)模式探析――以大連市公
評論
0/150
提交評論