《西門子S7-300400PLC技術(shù)與應(yīng)用》課件 第5-7章 S7-300400的非線性化編程 -SIMATIC NET工業(yè)通信網(wǎng)絡(luò)_第1頁
《西門子S7-300400PLC技術(shù)與應(yīng)用》課件 第5-7章 S7-300400的非線性化編程 -SIMATIC NET工業(yè)通信網(wǎng)絡(luò)_第2頁
《西門子S7-300400PLC技術(shù)與應(yīng)用》課件 第5-7章 S7-300400的非線性化編程 -SIMATIC NET工業(yè)通信網(wǎng)絡(luò)_第3頁
《西門子S7-300400PLC技術(shù)與應(yīng)用》課件 第5-7章 S7-300400的非線性化編程 -SIMATIC NET工業(yè)通信網(wǎng)絡(luò)_第4頁
《西門子S7-300400PLC技術(shù)與應(yīng)用》課件 第5-7章 S7-300400的非線性化編程 -SIMATIC NET工業(yè)通信網(wǎng)絡(luò)_第5頁
已閱讀5頁,還剩306頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

5.1用戶程序的基本結(jié)構(gòu)5.2組織塊OB5.3數(shù)據(jù)塊5.4功能塊和功能5.5模塊化編程綜合實例5.6控制指令27六月2025第5章S7-300/400的非線性化編程27六月20255.1用戶程序的基本結(jié)構(gòu)PLC中的程序分為操作系統(tǒng)和用戶程序。操作系統(tǒng)——用來實現(xiàn)與特定的控制任務(wù)無關(guān)的功能、處理PLC的啟動、刷新輸入輸出的過程映像表、調(diào)用用戶程序、處理中斷和錯誤、管理存儲區(qū)和處理通信等。用戶程序——用戶程序包括用戶特定的自動化任務(wù)所需要的所有功能,例如指定CPU暖啟動或熱啟動的啟動條件處理過程數(shù)據(jù)、指定對中斷的響應(yīng)、處理程序正常運行中的干擾等。由用戶在STEP7中生成,然后將其下載到CPU。5.1.1用戶程序中的塊

27六月2025

STEP7將用戶編寫的程序和程序所需要的數(shù)據(jù)存放在塊中,使單個的程序部件標準化。通過在塊內(nèi)和塊間類似子程序的調(diào)用,使用戶程序結(jié)構(gòu)化,以簡化程序組織結(jié)構(gòu),使程序易于修改、查錯和調(diào)試。塊結(jié)構(gòu)顯著地增加了PLC程序的組織透明性、可理解性和可維護性。5.1.1用戶程序中的塊

27六月2025

STEP7將用戶分類歸并為不同的塊:邏輯塊數(shù)據(jù)塊組織塊OB功能塊FB功能FC系統(tǒng)功能塊SFB系統(tǒng)功能SFC背景數(shù)據(jù)塊DI共享數(shù)據(jù)塊DB27六月20255.1.1用戶程序中的塊

OB1是主程序循環(huán)塊,在任何情況下,它都是需要的。功能和功能塊實際上是用戶子程序。功能塊FB帶背景數(shù)據(jù)塊(InstanceDataBlock),在FB塊結(jié)束時繼續(xù)保持,即帶“記憶”;功能塊FC沒有背景數(shù)據(jù)塊,即不帶“記憶”。數(shù)據(jù)塊是用戶定義的用于存取數(shù)據(jù)的存儲區(qū),可以被打開或關(guān)閉。DB可以是屬于某個FB的背景數(shù)據(jù)塊,也可以是通用的全局數(shù)據(jù)塊,用于FB或FC。系統(tǒng)功能塊集成在S7CPU中的功能程序庫中,是操作系統(tǒng)的一部分,不需將其作為用戶程序下載到PLC,用戶可以直接調(diào)用它們。STEP7調(diào)用塊過程示意圖:27六月20255.1.1用戶程序中的塊

5.2組織塊

組織塊(OB)是CPU操作系統(tǒng)和用戶程序的接口,操作系統(tǒng)可以調(diào)用,用于控制程序的循環(huán)掃描和中斷程序的執(zhí)行、PLC的熱啟動和錯誤處理等。組織塊由操作系統(tǒng)調(diào)用,組織塊中的程序是用戶編寫的。STEP7提供了大量的組織塊用于執(zhí)行用戶程序。OB被嵌在用戶程序中,根據(jù)某個事件的發(fā)生,執(zhí)行相應(yīng)的中斷,并自動調(diào)用相應(yīng)的OB。S7PLC的組織塊用來創(chuàng)建在特定的時間執(zhí)行的程序或響應(yīng)特定事件的程序,例如延時中斷OB、外部硬件中斷OB和錯誤處理OB等。

27六月2025中斷處理用來實現(xiàn)對特殊內(nèi)部事件或外部事件的快速響應(yīng)。

如果沒有中斷,CPU循環(huán)執(zhí)行組織塊OB1。CPU檢測到中斷源的中斷請求時,操作系統(tǒng)在執(zhí)行完當前程序的當前指令(即斷點處)后,立即響應(yīng)中斷。CPU暫停正在執(zhí)行的程序,調(diào)用中斷源對應(yīng)的中斷組織塊(OB)來處理。執(zhí)行完中斷組織塊后,返回被中斷的程序的斷點處繼續(xù)執(zhí)行原來的程序。有中斷事件發(fā)生時,如果沒有下載對應(yīng)的組織塊,CPU將會進入STOP模式。PLC的中斷源可能來自I/O模塊的硬件中斷,或者來自CPU模塊內(nèi)部的軟件中斷,例如時間中斷、延時中斷、循環(huán)中斷和編程錯誤引起的中斷。27六月20255.2.2組織塊的分類

1)循環(huán)執(zhí)行的組織塊:需要連續(xù)執(zhí)行的程序安排在OB1中,執(zhí)行完后又開始新的循環(huán);2)啟動組織塊:用于系統(tǒng)的初始化,在CPU上電或操作模式改為RUN時,根據(jù)不同的啟動方式來執(zhí)行OB100~OB102中的一個。3)定期執(zhí)行的組織塊:有日期時間中斷組織塊(OB10~OB17)和循環(huán)中斷組織塊(OB30~OB38),可以根據(jù)日期時間或時間間隔執(zhí)行中斷。4)事件驅(qū)動的組織塊:有延時中斷(OB20~OB23)、硬件中斷(OB40~OB47)、異步錯誤中斷(OB80~OB87)和同步中斷(OB121、OB122)。5)背景組織塊:如果CPU設(shè)置的最小掃描時間比實際的掃描時間長,在循環(huán)結(jié)束后CPU可執(zhí)行背景組織塊OB90,避免循環(huán)等待時間。27六月202527六月20255.2.3組織塊應(yīng)用實例

27六月2025

如果用戶需要在某個特定的日期和時間執(zhí)行某個操作,或?qū)嵭心硞€時間開始重復(fù)執(zhí)行某種操作,或者CPU從STOP切換到RUN模式后就周期性的這行某種操作。在這種情況下,需要調(diào)用定期執(zhí)行的組織塊。定期執(zhí)行的組織塊日期時間中斷組織塊(OB10~OB17)循環(huán)中斷組織塊(OB30~OB38)【例5.1】使用STEP7設(shè)置并激活時間中斷。要求每分鐘中斷一次,調(diào)用OB10。首先建立一個完整項目,打開其硬件組態(tài)圖,如圖5.6所示。在硬件組態(tài)畫面,雙擊機架上的CPU312C,將彈出CPU屬性畫面。27六月202527六月2025在CPU屬性畫面點擊“Time-of-DayInterrupts(時刻中斷)”,打開時間中斷設(shè)置畫面。選擇“激活”,要求每分鐘執(zhí)行并寫上開始執(zhí)行OB10的日期和時間。圖中的開始日期時間是2017年9月2日18時50分,然后點擊“OK(確定)”。最后在硬件組態(tài)畫面點擊保存和編譯快捷圖標

,完成保存和編譯。在管理畫面點擊“Blocks(塊)”,然后在右邊塊的目錄下點擊鼠標右鍵。在彈出的畫面中點擊“InsertNewObject(插入新對象)”

“OrganizationBlock(組織塊)”。27六月202527六月2025在生成組織塊的過程中,選擇組織塊OB10及寫上一些相關(guān)的信息,如圖所示,然后點擊“OK(確定)”。27六月2025

在管理畫面的塊目錄里點擊“SIMATIC300(1)",然后點擊下載快捷圖標,把整個項目的信息下載到PLCSIM仿真軟件中。運行在管理畫面塊的目錄里雙擊OB10的圖標,打開OB10編程界面,如圖5.10所示。

圖5.10OB10中的程序

該程序?qū)崿F(xiàn)每過一分鐘MW4加上2,并且在MW8中顯示Step7的間隔時,可以監(jiān)控到OB10的運行情況,如圖5.11所示。

27六月2025圖5.11OB10程序監(jiān)控畫面2.循環(huán)中斷組織塊循環(huán)中斷組織塊用于按精確的時間間隔循環(huán)執(zhí)行中斷程序。S7提供了9個循環(huán)中斷OB(OB30~OB38),可以指定的固定時間間隔來中斷用戶程序。大多數(shù)S7-300CPU只能使用OB35,CPU可以使用的循環(huán)中斷OB的個數(shù)與CPU的型號有關(guān)。循環(huán)中斷OB的等距啟動時間是由時間間隔和相位偏移量決定的。27六月20252.循環(huán)中斷組織塊用戶編寫程序時,必須確保每個循環(huán)中斷OB的運行時間遠遠小于其時間間隔。如果時間間隔過短,還沒有執(zhí)行完循環(huán)中斷程序又開始調(diào)用它,將會產(chǎn)生時間錯誤事件,調(diào)用OB80。如果沒有創(chuàng)建和下載OB80,CPU將進人STOP模式。一般情況下時間間隔不能小于5ms。用戶編寫程序時可使用SFC39~SFC42來禁用或延遲,并重新啟用循環(huán)中斷。使用SFC39來取消激活循環(huán)中斷,使用SFC40來激活循環(huán)中斷。27六月20253.延時中斷組織塊PLC的普通定時器的工作與掃描工作方式有關(guān),其定時精度較差。如果需要高精度的延時,應(yīng)使用延時中斷OB。用SFC32“SRT_DINT”啟動延時中斷,延遲時間是SFC32的一個輸入?yún)?shù)。延遲時間為1~60000ms,精度為1ms。

當用戶程序調(diào)用SFC32(SRT_DINT)時,需要提供OB編號、延遲時間和用戶專用的標識符。延時時間到時觸發(fā)中斷,調(diào)用SFC32指定的OB。使用SFC33取消尚未啟動的延時中斷,使用SFC34訪問延時中斷組織塊的狀態(tài)。使用SFC39~SFC42來禁用或延遲并重新使能延遲中斷。27六月20253.延時中斷組織塊設(shè)置延時中斷,最基本的步驟是:調(diào)用SFC32“SRT_DINT”,并將延時中斷OB作為用戶程序的一部分下載到CPU。如果發(fā)生了操作系統(tǒng)試圖啟動一個尚未裝載的OB,并且用戶在調(diào)用SFC32“SRTDINT”時指定了其編號,或在完全執(zhí)行延時OB之前發(fā)生延時中斷的下一個啟動事件時,操作系統(tǒng)將調(diào)用異步錯誤OB。27六月20254.硬件中斷組織塊硬件中斷組織塊(OB40~OB47)用于對信號模塊(SM,即輸入/輸出模塊)、通信處理器(CP)和功能模塊(FM)的信號變化進行中斷響應(yīng)。具有硬件中斷功能的上述模塊將中斷信號傳送到CPU時,將觸發(fā)硬件中斷。S7提供了8個獨立的硬件中斷,每一中斷都具有自己的OB。但是絕大多數(shù)S7-300CPU只能使用OB40。

如果在處理某硬件中斷的同時,又出現(xiàn)了其他硬件中斷事件,新的中斷按以下方法處理方法是:如果出現(xiàn)的是同一模塊同一通道產(chǎn)生的完全相同的中斷事件,那么新的中斷事件將丟失,即不處理它。如果出現(xiàn)的是同一模塊其他通道或其他模塊的中斷事件,新的請求將被記錄,當前的中斷組織塊執(zhí)行完后,再處理被記錄的中斷。27六月20254.硬件中斷組織塊對于具有中斷能力的通信處理器(CP)和功能模塊(FM),可以使用STEP7軟件在硬件組態(tài)時按照向?qū)У膶υ捒蛟O(shè)置相應(yīng)的參數(shù)來實現(xiàn)設(shè)置中斷。對于具有中斷能力的數(shù)字量信號模塊(SM),可以使用STEP7軟件在硬件組態(tài)時設(shè)置硬件中斷,也可以使用SFC55~SFC57為模塊的硬件中斷分配參數(shù)來實現(xiàn)設(shè)置硬件中斷。對于具有中斷能力的數(shù)字量信號模塊(SM),在硬件組態(tài)時,可選擇在輸入信號的上升沿或下降沿觸發(fā)硬件中斷。也可以使用SFC39~SFC42來禁用或延遲,并重新啟用硬件中斷。27六月20255.3數(shù)據(jù)塊

數(shù)據(jù)塊(DB)用來分類存儲用戶程序運行所需的大量數(shù)據(jù)或變量值,也是用來實現(xiàn)各邏輯塊之間的數(shù)據(jù)交換、數(shù)據(jù)傳遞和共享數(shù)據(jù)的重要途徑。

數(shù)據(jù)塊豐富的數(shù)據(jù)結(jié)構(gòu),有助于程序高效率地管理復(fù)雜的變量組合,提高程序設(shè)計的靈活性。與邏輯塊不同,數(shù)據(jù)塊只有變量聲明部分,沒有程序指令部分。

數(shù)據(jù)塊定義在S7CPU的存儲器中,用戶可在存儲器中建立一個或多個數(shù)據(jù)塊。每個數(shù)據(jù)塊可大可小,但CPU對數(shù)據(jù)塊數(shù)量及數(shù)據(jù)總量有限制,如對于CPU314用作數(shù)據(jù)塊的存儲器最多為8KB,用戶定義的數(shù)據(jù)總量不能超出這個限制。在編寫程序時,對數(shù)據(jù)塊必須遵循先定義后使用的原則,否則,將造成系統(tǒng)錯誤。

27六月20255.3數(shù)據(jù)塊

根據(jù)訪問方式的不同,這些數(shù)據(jù)可以在全局符號表或共享數(shù)據(jù)塊(又稱全局數(shù)據(jù)塊)中聲明,稱為全局變量;也可以在OB,FC和FB的變量聲明表中聲明,稱為局部變量。當塊被執(zhí)行時,變量將固定地存儲在過程映像區(qū)(PII或PIQ)、位存儲器區(qū)(M)、數(shù)據(jù)塊(DB)或局部堆棧(L)中。27六月20255.3.1數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)

在STEP7中,數(shù)據(jù)塊的數(shù)據(jù)類型可以采用基本數(shù)據(jù)類型、復(fù)雜數(shù)據(jù)類型或用戶定義數(shù)據(jù)類型(UDT)。1.基本數(shù)據(jù)類型

長度不超過32位,可利用STEP7基本指令處理,能完全裝入S7處理器的累加器中。基本數(shù)據(jù)類型包括:1)位數(shù)據(jù)類型:BOOL、BYTE、WORD、DWORD、CHAR;

2)數(shù)字數(shù)據(jù)類型:INT、DINT、REAL;3)定時器類型:S5TIME、TIME、DATE、TIME_OF_DAY。

2.復(fù)雜數(shù)據(jù)類型

只能結(jié)合共享數(shù)據(jù)塊的變量聲明使用??纱笥?2位,用裝入指令不能把復(fù)雜數(shù)據(jù)類型完全裝入累加器,一般要利用庫中的標準塊處理復(fù)雜數(shù)據(jù)類型。

復(fù)雜數(shù)據(jù)類型包括:時間(DATE_AND_TIME)、矩陣(ARRAY)、結(jié)構(gòu)(STRUCT)和字符串(STRING)等類型27六月2025

3.用戶定義數(shù)據(jù)類型STEP7允許利用數(shù)據(jù)塊編輯器將基本數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型組合成長度大于32位用戶定義數(shù)據(jù)類型(User-DefineddataType,UDT)。

用戶定義數(shù)據(jù)類型不能存儲在PLC中,只能存放在硬盤上的UDT塊中。

可以將用戶定義數(shù)據(jù)類型作為“模板”建立數(shù)據(jù)塊,以節(jié)省錄入時間。還可用于建立結(jié)構(gòu)化數(shù)據(jù)塊,建立包含幾個相同單元的矩陣,在帶有給定結(jié)構(gòu)的FC和FB中建立局部變量。27六月20255.3.2數(shù)據(jù)塊的分類

數(shù)據(jù)塊是用于存放執(zhí)行用戶程序所需變量的數(shù)據(jù)區(qū),分為背景數(shù)據(jù)塊(InstanceDataBlock,DI)和共享數(shù)據(jù)塊(SharedDateBlock,DB)。STEP7按數(shù)據(jù)生成的順序自動為數(shù)據(jù)塊中的變量分配地址。1.背景數(shù)據(jù)塊27六月2025背景數(shù)據(jù)塊是與某個FB或SFB相關(guān)聯(lián)的,其內(nèi)部數(shù)據(jù)的結(jié)構(gòu)與其對應(yīng)的FB或SFB的變量聲明表一致。只能用于被指定的FB訪問,因此在創(chuàng)建背景數(shù)據(jù)塊時,必須指定它所屬的FB,并且該FB必須已經(jīng)存在。在調(diào)用一個FB時,也必須指明背景數(shù)據(jù)塊的編號和符號。背景數(shù)據(jù)塊用作“私有存儲器區(qū)”,即用作功能塊(FB)的“存儲器”。FB的參數(shù)和靜態(tài)變量安排在它的背景數(shù)據(jù)塊中。5.3.2數(shù)據(jù)塊的分類

1.背景數(shù)據(jù)塊27六月2025背景數(shù)據(jù)塊中的數(shù)據(jù)信息不是由用戶編輯的,而是由程序編輯器生成的,它們是FB變量聲明表中的內(nèi)容(不包括臨時變量TEMP),也應(yīng)首先生成功能塊FB,然后生成它的背景數(shù)據(jù)塊。功能塊FB建好后,創(chuàng)建背景數(shù)據(jù)塊的方法為:在Blocks目錄下的右側(cè)空白區(qū)域單擊右鍵,在彈出的快捷菜單中選擇“InsertNewObject(插入新對象)”→“DataBlock(數(shù)據(jù)塊)”,即插入了一個DB,如圖5.22所示。5.3.2數(shù)據(jù)塊的分類

1.背景數(shù)據(jù)塊27六月2025在彈出的對話框“NameandType(名稱和類型)”中填寫DB的名稱,例如DB1;選擇“InstanceDB(背景數(shù)據(jù)塊)”和已經(jīng)建立的功能塊,例如FB1;“SymbolicName(符號名)”和“SymbolComment(符號注解)”:為可選項,如電動機1的數(shù)據(jù)塊DB1和電動機的數(shù)據(jù)塊;編寫完成后單擊OK按鈕,就完成了背景數(shù)據(jù)塊的插入和屬性設(shè)置。如圖5.23所示。2.共享數(shù)據(jù)塊27六月2025共享數(shù)據(jù)塊的主要目的是為用戶程序提供一個可保存的數(shù)據(jù)區(qū),它的數(shù)據(jù)結(jié)構(gòu)和大小并不依賴于特定的程序塊,而是用戶自己定義。共享數(shù)據(jù)塊又稱全局數(shù)據(jù)塊。用于存儲全局數(shù)據(jù),所有邏輯塊(OB、FC、FB)都可以訪問共享數(shù)據(jù)塊存儲的信息。共享數(shù)據(jù)塊中的數(shù)據(jù)不會被刪除,具有數(shù)據(jù)保護功能,其數(shù)據(jù)容量與具體的PLC有關(guān)。共享數(shù)據(jù)塊的生成方法為:在Block,目錄下的右側(cè)空白區(qū)域單擊右鍵,在彈出的快捷菜單中選擇“InsertNewObject(插入新對象)”→“DataBlock(數(shù)據(jù)塊)”,即插入了一個DB,在彈出的對話框“NameandType(名稱和類型)”中填入共享數(shù)據(jù)塊名稱,選擇“SharedDataBlock(共享數(shù)據(jù)塊)”,則FB選項框自動變灰不能選擇。2.共享數(shù)據(jù)塊27六月2025利用LAD/STL/FBDS7程序編輯器或用已經(jīng)生成的用戶定義數(shù)據(jù)類型可建立共享數(shù)據(jù)塊。當調(diào)用FB時,系統(tǒng)將產(chǎn)生背景數(shù)據(jù)塊。背景數(shù)據(jù)塊和共享數(shù)據(jù)塊有不同的用途:

任何FB,F(xiàn)C或DB均可讀寫存放在共享數(shù)據(jù)塊中的數(shù)據(jù)。背景數(shù)據(jù)塊是FB運行時的工作存儲區(qū),它存放FB的部分運行變量。調(diào)用FB時,必須指定一個相關(guān)的背景數(shù)據(jù)塊。作為規(guī)則,只有FB塊才能訪問存放在背景數(shù)據(jù)塊中的數(shù)據(jù)。27六月2025一般情況下,每個FB都有一個對應(yīng)的背景數(shù)據(jù)塊,一個FB也可以使用不同的背景數(shù)據(jù)塊。如果幾個FB需要的背景數(shù)據(jù)完全相同,為節(jié)省存儲器,則可以定義一個背景數(shù)據(jù)塊,供它們分別使用。通過多重背景數(shù)據(jù),也可將幾個FB需要的不同的背景數(shù)據(jù)定義在一個背景數(shù)據(jù)塊中,以優(yōu)化數(shù)據(jù)管理。各數(shù)據(jù)塊在CPU的存儲器中是沒有區(qū)別的,只是由于打開方式不同,才在打開時有背景數(shù)據(jù)塊和共享數(shù)據(jù)塊之分。原則上,任何一個數(shù)據(jù)塊都可以當作背景數(shù)據(jù)塊或共享數(shù)據(jù)塊使用。實際上,一個數(shù)據(jù)塊由FB當作背景數(shù)據(jù)塊使用時,必須與FB的要求格式相符。3.定義共享數(shù)據(jù)塊的變量并下載數(shù)據(jù)塊27六月2025共享數(shù)據(jù)塊DB1建立后,可以在S7的塊文件夾內(nèi)雙擊右側(cè)頁面的數(shù)據(jù)塊DB1的圖標,啟動LAD/STL/FBDS7程序編輯器,并打開數(shù)據(jù)塊。以前而所創(chuàng)建的DB1為例,DB1的原始窗口如圖5.24所示,數(shù)據(jù)塊窗口的第1行和最后1行,標有“STRUCT”(結(jié)構(gòu))和“END-STRUCT”(結(jié)束結(jié)構(gòu))。3.定義共享數(shù)據(jù)塊的變量并下載數(shù)據(jù)塊27六月2025

在數(shù)據(jù)塊編輯窗口現(xiàn)有的結(jié)構(gòu)框架下,輸入需要的變量即可。變量定義完成后,應(yīng)單擊按鈕。如果沒有錯誤,則需要單擊下載按鈕,像邏輯塊一樣將數(shù)據(jù)塊下載到CPU或者仿真軟件中。如圖5.25所示。27六月2025該共享數(shù)據(jù)塊定義了一個名為PRESS的2*3的數(shù)組,數(shù)據(jù)類型是INT,初始值為“4,

5,

-4,

3(0)”,其中的3(0),表示后三個元素都是0,這是一種簡化的寫法。當數(shù)據(jù)塊第一次存盤的時,若用戶沒有明確的聲明實際值,則初值將被用于實際值。27六月2025隨后定義了一個名為stack的結(jié)構(gòu),該結(jié)構(gòu)包括:總量(AMOUNT)數(shù)據(jù),類型為整數(shù)INT;速度(SPEED)數(shù)據(jù),類型為整數(shù)INT;溫度(TEMPRATURE)數(shù)據(jù),類型為實數(shù)REAL;結(jié)束(End)數(shù)據(jù),類型為BOOL。初始值可修改也可直接采用其默認值。最后定義一個單獨的變量VOLTAGE,類型為整數(shù)INT,初值為10。27六月2025數(shù)據(jù)塊有兩種顯示方式,即聲明顯示方式和數(shù)據(jù)顯示方式,用菜單命令“View(視圖)”→“DeclarationView(聲明視圖)”和“View(視圖)”→“DataView(數(shù)據(jù)視圖)”可分別來指定這兩種顯示方式。圖5.25即使聲明視圖,而圖5.26即數(shù)據(jù)視圖。聲明視圖是樹狀結(jié)構(gòu)顯示數(shù)據(jù),而數(shù)據(jù)視圖則是顯示每一個元素的值。5.3.3訪問數(shù)據(jù)塊

27六月2025

在用戶程序中可能存在多個數(shù)據(jù)塊。而每個數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)并不完全相同。因此在訪問數(shù)據(jù)塊時,必須指明要訪問哪一個數(shù)據(jù)塊(數(shù)據(jù)塊編號),訪問哪一個數(shù)據(jù)(數(shù)據(jù)類型與位置)。STEP7中有兩種訪問數(shù)據(jù)塊中數(shù)據(jù)的方式傳統(tǒng)訪問方式(即先打開后訪問)直接訪問方式5.3.3訪問數(shù)據(jù)塊

1)傳統(tǒng)訪問方式

在訪問某數(shù)據(jù)塊中的數(shù)據(jù)前,先“打開”這個數(shù)據(jù)塊,也就是將數(shù)據(jù)塊號(數(shù)據(jù)塊的起始地址)裝入數(shù)據(jù)塊寄存器。這樣存放在數(shù)據(jù)塊中的數(shù)據(jù),就可利用數(shù)據(jù)塊起始地址加偏移量的方法來訪問。

可用指令“OPNDB”打開共享數(shù)據(jù)塊(自動關(guān)閉之前打開的共享數(shù)據(jù)塊)或用指令“OPNDI”打開背景數(shù)據(jù)塊(自動關(guān)閉之前打開的背景數(shù)據(jù)塊)。27六月20255.3.3訪問數(shù)據(jù)塊

(2)直接訪問方式

直接訪問方式就是在指令中間同時給出數(shù)據(jù)塊的編號和數(shù)據(jù)塊中的地址??梢杂媒^對地址,也可以用符號地址直接訪問數(shù)據(jù)塊。

使用絕對地址訪問數(shù)據(jù)塊時,必須手動定位程序中的數(shù)據(jù)塊單元;采用符號地址時,就可以很容易地用源程序調(diào)整。

數(shù)據(jù)塊中的存儲單元的地址由兩部分組成,如DB1.DBW2表示數(shù)據(jù)塊DB1的第2個數(shù)據(jù)字。27六月20255.3.3訪問數(shù)據(jù)塊

(2)直接訪問方式用絕對地址直接訪問數(shù)據(jù)塊如下所示:LDB1.DBW2//打開數(shù)據(jù)塊DB1,并裝入地址為2的字數(shù)據(jù)單元TDB1.DBW4//將數(shù)據(jù)傳送到數(shù)據(jù)塊DB1的數(shù)據(jù)字單元DBW4

要用符號地址直接訪問數(shù)據(jù)塊,必須在符號表中為DB分配一個符號名,同時為數(shù)據(jù)塊中的數(shù)據(jù)單元用LAD/STL程序編輯器分配符號名,如:L"My_DB".VI//打開符號名為“My_DB的數(shù)據(jù)塊,并裝入名為VI的數(shù)據(jù)單元27六月20255.3.3訪問數(shù)據(jù)塊

(2)直接訪問方式在用戶程序中可能定義了許多數(shù)據(jù)塊,而每個數(shù)據(jù)塊中又有許多不同類型的數(shù)據(jù),因此訪問時需要明確數(shù)據(jù)塊號和數(shù)據(jù)塊中的數(shù)據(jù)類型與位置。根據(jù)明確數(shù)據(jù)塊號的不同方法,可以用多種方法訪問數(shù)據(jù)塊中的數(shù)據(jù)。沒有專門的數(shù)據(jù)塊關(guān)閉指令,在打開一個數(shù)據(jù)塊時,先打開的數(shù)據(jù)塊將自動關(guān)閉。由于有兩個數(shù)據(jù)塊寄存器(DB和DI寄存器),所以最多可同時打開兩個數(shù)據(jù)塊。一個作為背景數(shù)據(jù)塊,數(shù)據(jù)塊的起始地址存儲在DI寄存器中;另一個作為共享數(shù)據(jù)塊,數(shù)據(jù)塊的起始地址存儲在DB寄存器中。打開背景數(shù)據(jù)塊,在調(diào)用FB時可以自動實現(xiàn),由于調(diào)用FB時使用DI寄存器,所以一般不在FB程序中用OPNDIx指令打開數(shù)據(jù)塊。27六月2025復(fù)習導(dǎo)入5.1用戶程序的基本結(jié)構(gòu)5.2組織塊OB5.3數(shù)據(jù)塊分為背景數(shù)據(jù)塊(InstanceDataBlock,DI)和共享數(shù)據(jù)塊(SharedDateBlock,DB)。27六月20255.4功能塊和功能

一個程序由許多部分(子程序)組成,STEP7將這些部分稱為邏輯塊,并允許塊間的相互調(diào)用。

塊的調(diào)用指令中止當前塊(調(diào)用塊)的運行調(diào)用,然后執(zhí)行被調(diào)用塊的所有指令。一旦被調(diào)用塊執(zhí)行完成,調(diào)用指令的塊繼續(xù)執(zhí)行調(diào)用指令后的指令,如圖5.27所示給出了塊的調(diào)用過程。調(diào)用塊可以是任何邏輯塊、被調(diào)用塊只能是功能塊(除OB外的邏輯塊)。27六月202527六月2025功能塊有兩個主要部分組成:每個功能塊的變量聲明表,變量聲明表聲明此塊的局部數(shù)據(jù);邏輯指令組成的程序,程序要用到變量聲明表中給出的局部數(shù)據(jù)。

當調(diào)用功能塊時,需提供塊執(zhí)行時要用到的數(shù)據(jù)或變量,也就是將外部數(shù)據(jù)傳遞給功能塊,這被稱為參數(shù)傳遞。

參數(shù)傳遞的方式使得功能塊具有通用性,它可被其他塊調(diào)用,以完成多個類似的控制任務(wù)。27六月2025功能塊與功能一樣,都是用戶自己編寫的程序模塊,可以被其他程序塊(OB、FB、FC)調(diào)用,這與C語言中的函數(shù)非常類似,而且也有自己的參數(shù)。

在FB中以名稱的方式給出的參數(shù)稱作形式參數(shù)(形參),在調(diào)用FB時給形式參數(shù)賦的具體數(shù)值就是實際參數(shù)(實參)。FB不同于FC的是,F(xiàn)B擁有自己的存儲區(qū),即背景數(shù)據(jù)塊,而FC沒有自己的存儲區(qū)。

在調(diào)用任何一個FB時,都必須指定一個背景數(shù)據(jù)塊。當調(diào)用FB時,如果沒有傳遞實參,則將使用背景數(shù)據(jù)塊中保存的值。27六月2025

創(chuàng)建一個FB的方法:

在Blocks目錄下的右側(cè)空白區(qū)域單擊右鍵,在彈出的快捷菜單中選擇“InsertNewObject(插入新對象)”→“FunctionBlock(功能塊)”,即插入了一個FB,在彈出的對話框中填入FB的名稱,如FB1,輸入符號名和注釋,并選擇編程語言,如LAD,單擊OK,就完成了功能塊FB1的插入和屬性設(shè)置。創(chuàng)建一個FC的方法:

在管理器中打開Blocks文件夾,用鼠標右鍵點擊右邊的窗口,在彈出的菜單中選擇“InsertNewObject(插入新對象)”→“Function(功能)”。5.4.1變量聲明表

為了使程序易于理解,可以給變量指定符號,符號表中定義的變量是全局變量,可供所有的邏輯塊使用。每個邏輯塊前部都有一個變量聲明表,在變量聲明表中定義邏輯塊用到的局域數(shù)據(jù)。局域數(shù)據(jù)分為局域變量和參數(shù)兩大類:局域變量(只在它所在的一個塊中有效)又包括靜態(tài)變量和臨時變量(暫態(tài)變量)兩種。參數(shù)是在調(diào)用塊和被調(diào)用塊間傳遞的數(shù)據(jù),靜態(tài)變量和臨時變量是供邏輯塊本身使用的數(shù)據(jù)。27六月2025

5.4.1變量聲明表

1.變量聲明表的打開和作用

打開某一邏輯塊的程序編輯器窗口,在程序編輯器窗口的右側(cè)頁面上半部分為“變量聲明表”的顯示頁面,右側(cè)頁面的下半部分為程序指令編輯部分,左側(cè)頁面為編程元素分類目錄區(qū)。27六月20255.4.1變量聲明表

1.變量聲明表的打開和作用在變量聲明表中,用戶應(yīng)聲明本塊中專用的變量,塊的形參和參數(shù)的系統(tǒng)屬性。聲明變量的作用如下:1)聲明變量后,在本地數(shù)據(jù)堆棧中為臨時變量即局部變量。局部變量包括(TMEP)保留一個有效存儲空間,對于功能塊,還要為聯(lián)合使用的背景數(shù)據(jù)塊的靜態(tài)變量(STAT)保留空間。2)當設(shè)置“IN”(輸入)、“OUT”(輸出)和“IN-OUT”(輸入/輸出)類型參數(shù)時,用戶還要在程序中聲明塊調(diào)用的接口。3)通過設(shè)置系統(tǒng)特性,用戶為信息和連接組態(tài)操作接口功能分配特殊的屬性,以及參數(shù)的過程控制組態(tài)。4)當用戶給某功能塊聲明變量時,除了臨時變量外,它們將自動出現(xiàn)在功能塊對應(yīng)的背景數(shù)據(jù)塊中。每個背景數(shù)據(jù)塊中的數(shù)據(jù)在結(jié)構(gòu)中聲明。

27六月20255.4.1變量聲明表

1.變量聲明表的打開和作用邏輯塊中的變量聲明表和指令部分是緊密聯(lián)系的,由于在變量聲明中為進行編程所指定的名稱也將用于指令表中,即在指令部分的程序中要用到變量聲明表中的名稱,因此,變量表中的任何變化都將影響整個指令部分的程序。但文字注釋內(nèi)容的修改,一個新變量的不正確輸入,改變初始值或刪除一個未使用的變量,均對指令部分沒有影響。27六月2025

2.局部變量的分類

在STEP7中,局部變量按照信號的性質(zhì)與用途可以分為以下五種類型:27六月20253.變量聲明表的編輯

變量聲明表的編輯方法與符號表基本相同,但需要注意以下幾點:1)變量聲明表的名稱需要通過編輯輸入,但必須遵守下述的規(guī)則:塊中的局域變量名必須以字母開始,并只能由英語字母、數(shù)字和下劃線組成,不能使用漢字,但是在符號表中定義的共享數(shù)據(jù)的符號名可以使用其他字符(包括漢字)。在程序中,操作系統(tǒng)在局域變量前面自動加上“#”號,共享變量名被自動加上雙引號,共享變量可以在整個用戶程序中使用。2)變量聲明表中局部變量的地址在編輯時不需要進行輸入,即不需要指定存儲器地址。根據(jù)各變量的數(shù)據(jù)類型,程序編輯器會自動地為所有局部變量指定存儲器地址。27六月20253.變量聲明表的編輯3)變量聲明表的數(shù)據(jù)類型需要指定,可以根據(jù)需要選擇二進制位(Bool)、字節(jié)(Byte)、字(Word)、雙字(Dword)、整數(shù)(Int)、雙字長整數(shù)(Dint)、浮點數(shù)(Real)、S5時間(S5Time)

等;4)局部變量絕對地址以L進行存儲,可以使用二進制位信號(如L1.0等)、字節(jié)信號(如LB2等)和字信號(如LW2等);5)不同類型的邏輯塊可以使用的變量類型有所不同。

對于功能塊FB,操作系統(tǒng)為參數(shù)及靜態(tài)變量分配的存儲空間是背景數(shù)據(jù)塊,這樣參數(shù)變量在背景數(shù)據(jù)塊中留有運行結(jié)果備份。在調(diào)用FB時若沒有提供實際參數(shù),則功能塊使用背景數(shù)據(jù)塊中的數(shù)值,操作系統(tǒng)在L堆棧中給FB的臨時變量分配存儲空間。27六月2025

對于功能塊FC,操作系統(tǒng)在L堆棧中給FC的臨時變量分配存儲空間,由于沒有背景數(shù)據(jù)塊,因而FC不能使用靜態(tài)變量,輸入、輸出、I/O參數(shù)以指向?qū)嶋H參數(shù)的指針形式存儲在操作系統(tǒng)為參數(shù)傳遞而保留的額外空間中。對于組織塊OB來說,其調(diào)用是由操作系統(tǒng)管理的,用戶不能參與,因此OB只有定義在L堆棧中的臨時變量。6)變量聲明表中所顯示、定義的變量對于不同類型的變量有所不同。例如,對于臨時變量“TEMP”只有名稱、數(shù)據(jù)類型、地址與注釋四項的內(nèi)容。7)在變量聲明表中的“初始值”欄可以設(shè)定變量的初始值,但是STEP7可以根據(jù)變量的類型,白動生成默認值,所以編輯時一般也可以不輸入初值。27六月202527六月2025變量聲明表顯示頁面的左側(cè)為變量表的樹狀結(jié)構(gòu),右側(cè)為變量詳細視圖。雙擊變量表樹狀結(jié)構(gòu)的相應(yīng)圖標。即可以打開變量聲明表的編輯頁面,例如雙擊“IN”,在表的右側(cè)將顯示出該類型局域變量的詳細情況。變量聲明表編輯完成后,執(zhí)行菜單命令“File(文件)”→“SAVE(保存)”,可以將當前編輯的變量聲明表連同項目一起進行保存;而執(zhí)行菜單命令“File(文件)”→“Saveas(另存為)”可改變文件名和文件夾保存位置。5.4.2功能應(yīng)用實例【例5.5】編寫一個功能。要求啟動按鈕I0.0,Q4.0以2s亮2s滅進行閃爍,按下停止按鈕0.1,Q4.0停止閃爍。本例編寫兩個功能FC1和FC2,F(xiàn)C1用來實現(xiàn)按鈕的啟??刂?;FC2用來控制LED燈的閃爍。首先進行硬件的組態(tài)工作,并完善項目中的目錄,并在塊目錄中插入兩個功能FC1和FC2。27六月2025雙擊圖中的FC1圖標,表示打開FC1的編程界面。27六月2025在FC1里的局域變量表里定義輸入、輸出等符號參數(shù),如上圖變量申明部分所示,最后完成啟動/停止功能的控制邏輯程序,如圖程序編寫部分所示。27六月2025然后在FC2里的局域變量表里定義輸入、輸出等符號參數(shù),如圖變量申明部分所示,最后完成LED燈閃爍功能的控制邏輯程序,如圖程序編寫部分所示。雙擊SIMATICManager里的FC2圖標,表示打開FC2的編程界面。27六月2025為使一個功能能夠被CPU處理,必須在程序分級結(jié)構(gòu)中的上一級調(diào)用它,本例在OB1里調(diào)用FC1和FC2,如圖5.37所示。根據(jù)控制功能的需要,可以有條件或無條件調(diào)用。最后把項目中所有信息下載到CPU中即可實現(xiàn)需要的控制。在控制系統(tǒng)中有多個同樣的啟動/停止控制單元,可以調(diào)用相同的一個功能(使用參數(shù)傳遞),在每個調(diào)用中寫上相應(yīng)的輸入/輸出參數(shù)就可以完成控制。【例5.6】編寫一個星三角電動機啟動的功能塊。要求實現(xiàn)油泵和水泵兩種泵的星三角延時啟動,兩者的延時時間分別為油泵10s,水泵15s。27六月2025首先進行硬件的組態(tài)工作,并完善項目中的目錄:在塊目錄中先插入一個功能FB1在塊目錄里插入數(shù)據(jù)塊DB1在塊目錄里插入數(shù)據(jù)塊DB2插入的DB1、DB2需要指明屬于哪一個功能塊(本例是FB1)。完善好的塊目錄如圖所示。5.4.2功能塊應(yīng)用實例在管理畫面里點擊“S7Program(S7程序)”下,雙擊“Symbols(符號)”圖標,可以打開全局符號表,在全局符號表里可以編輯全局符號,如圖所示。27六月202527六月2025在管理畫面里雙擊FB1圖標,表示打開FB1的編程界面,然后在FB1里的局域變量表里定義輸入、輸出等符號參數(shù),如下圖變量申明部分所示,最后完成星三角延時啟動程序,如下圖程序編寫部分所示。27六月202527六月2025在管理畫面的塊目錄里打開DB1。打開的方法是雙擊塊目錄里的DB1,自動彈出數(shù)據(jù)塊的參數(shù)分配方式對話框,如圖所示。點擊“是’,默認以“數(shù)據(jù)視圖”方式打開數(shù)據(jù)塊。在上圖所示“數(shù)據(jù)視圖”界面中可以編輯數(shù)據(jù)塊的當前值及在線監(jiān)控數(shù)據(jù)塊,并可以將當前值下載至PLC,無需下載整個塊。例如改變上圖所示DB1里的“beng-time”的當前值:點擊DB1中名稱為“beng-time"的“ActualValue實際值”一欄并改寫實際值為“S5T#10S",然后點擊菜單欄的“Save保存”,這樣就把DB1的“beng-time”當前值更改為“S5T#10S”了。27六月202527六月2025同樣的方式將DB2中“beng-time”的“ActualValue實際值”改寫為“S5T#15S”,如下圖5.43所示。這樣就實現(xiàn)調(diào)用不同的數(shù)據(jù)塊,就實現(xiàn)油泵和水泵星三角啟動不同的延時時間設(shè)置。27六月2025為使一個功能塊能夠被CPU處理,必須在程序分級結(jié)構(gòu)中的上一級調(diào)用它,本例在OB1里兩次調(diào)用FB1,實現(xiàn)油泵和水泵的星三角延時啟動,如下圖5.44所示。背景數(shù)據(jù)塊分別為DB1和DB2。27六月2025方框的左邊是塊的輸入?yún)?shù)和輸入/輸出參數(shù),右邊是輸出參數(shù)。方框內(nèi)的start等是FB1的變量聲明表中定義的IN和OUT參數(shù),稱為“形式參數(shù)”(FormalParameter),簡稱為“形參”。方框外的符號地址“youbeng-start”等是形參對應(yīng)的“實際參數(shù)”(AcwatParameter),簡稱為“實參”。形參是局部變量在邏輯塊中的名稱,實參是調(diào)用塊時指定的具體的輸入、輸出參數(shù)。調(diào)用功能或功能塊時應(yīng)將實參賦值給形參,并保證實參與形參數(shù)據(jù)類型一致。27六月20255.5模塊化編程綜合實例

5.5.1飲料灌裝生產(chǎn)線實例

模擬一個飲料灌裝線的控制系統(tǒng),系統(tǒng)中有兩條飲料灌裝線和一個操作員面板。每條灌裝線上都有一個電機驅(qū)動傳送帶。兩個瓶子傳感器能夠檢測到瓶子經(jīng)過,并產(chǎn)生電平信號。傳送帶上中部上方有一個可控制的灌裝漏斗,打開即可開始灌裝。當傳送帶中部的傳感器檢測到瓶子經(jīng)過時,傳送帶停止,灌裝漏斗打開開始灌裝:1號線,灌裝時間為5秒(小瓶);2號線灌裝時間為10秒(大瓶)。灌裝完畢后,傳送帶繼續(xù)運輸。位于傳送帶末端的傳感器,對灌裝完畢的瓶子計數(shù)。27六月20255.5模塊化編程綜合實例

在控制面板部分:四個點動式按鈕分別控制每條灌裝線的啟動和停止;一個總控制按鈕,可以停止所有生產(chǎn)線;兩個狀態(tài)指示燈,分別表示生產(chǎn)線的運行狀態(tài);兩個數(shù)碼管顯示器分別顯示每條線灌裝的數(shù)目。步驟一、硬件組態(tài)步驟二、編輯符號表步驟三、編輯FC1步驟四、編輯FB1步驟五、編輯DB1和DB2步驟六、編輯主程序OB1步驟七、最后把項目中所有信息下載到PLCSIM中并運行27六月2025步驟一、硬件組態(tài)27六月2025根據(jù)現(xiàn)有的PLC相關(guān)模塊的型號選擇合適的電源模塊、CPU模塊和DI模塊和DO模塊進行組態(tài)。根據(jù)任務(wù)描述,可以將上述系統(tǒng)功能劃分為以下兩個子功能:1、啟停,操作控制,負責將用戶操作面板的輸入邏輯信號轉(zhuǎn)換為灌裝線的啟停信號。2、灌裝線控制,負責處理灌裝定時和滿瓶計數(shù),為灌裝線傳送帶電機和灌裝漏斗提供控制信號,向數(shù)碼管提供BCD碼技術(shù),第一個子功能有一個功能FC1實現(xiàn),第二個子功能有一個功能塊FB1實現(xiàn),兩條灌裝線的定時時間分別保存在兩個背景數(shù)據(jù)塊DB1和DB2中。27六月2025步驟二、編輯符號表27六月2025在

“S7程序”目錄下雙擊“符號”圖標,打開符號表。符號表可以為絕對地址,如I2.0,Q0.0的,并提供一個符號名,如tingzhi-quanbu,xian-1-zhuangtai等,以便編程及程序閱讀,如圖5.46所示之后,對其進行編譯并保存。步驟三、編輯FC127六月2025在FC1里的局域變量表里定義輸入、輸出等符號參數(shù),如圖5.47變量申明部分所示,最后完成罐裝生產(chǎn)線的啟動停止控制程序,如圖5.47程序編寫部分所示。步驟四、編輯FB127六月2025在FB1里的局域變量表里定義輸入、輸出等符號參數(shù),如圖5.48所示。步驟四、編輯FB127六月2025在FB1中完成罐裝生產(chǎn)線的罐裝和計數(shù)控制程序,如圖5.49程序編寫部分所示。步驟五、編輯DB1和DB227六月2025特別注意這時需要指明DB1和DB2都是屬于功能塊FB1的背景數(shù)據(jù)塊。DB1和DB2分別為線1和線2的背景數(shù)據(jù)。改變圖5.50所示DB1里的“zhuangrushijian”的實際值為“S5T#5S”,然后點擊菜單欄的“Save保存”。步驟五、編輯DB1和DB227六月2025同樣的方式改變圖5.51所示DB2里的“zhuangrushijian”的實際值為“S5T#10S"。這樣就實現(xiàn)調(diào)用不同的數(shù)據(jù)塊,就實現(xiàn)小瓶和大瓶罐裝時間的不同。步驟六、編輯主程序OB127六月2025步驟六、編輯主程序OB127六月2025步驟六、編輯主程序OB127六月2025步驟六、編輯主程序OB127六月2025步驟六、編輯主程序OB127六月2025步驟七、最后把項目中所有信息下載到PLCSIM中并運行27六月2025當接通I2.1時可以啟動一號小瓶生產(chǎn)線的運行,這時Q0.3運行,代表傳送帶在傳動;當接通I2.5時,罐裝的傳感器信號為1,則Q0.3變?yōu)?,傳送帶停止傳動,Q0.2變?yōu)?,罐裝漏斗開始罐裝飲料;延時10s后,Q0.2變?yōu)?,罐裝漏斗停止罐裝飲料,同時Q0.3變?yōu)?,傳送帶繼續(xù)傳動;當接通裝滿傳感器I2.6時,計數(shù)器開始計數(shù),并顯示在QW4中。5.5.2液體混合裝置控制

模擬一個開關(guān)量液位采集的液體混合裝置。如圖5.51所示,系統(tǒng)由3個開關(guān)量液位傳感器分別檢測液位的低、中、高。按下“啟動”按鈕后,系統(tǒng)自動運行,首先打開進料泵1,開始加入液料A,中液位傳感器動作后,關(guān)閉進料泵1,打開進料泵2,開始加入液料B,高液位傳感器動作后,關(guān)閉進料泵2,啟動混料泵,攪拌10s后,關(guān)閉混料泵,開啟放料泵,當?shù)鸵何粋鞲衅鲃幼骱?延時5s關(guān)閉放料泵。按下“停止”按鈕后,系統(tǒng)立即停止運行。步驟一:建立項目與硬件組態(tài)。新建項目“液體混合裝置”,選擇合適的電源模塊、CPU模塊、DI模塊、DO模塊進行組態(tài),如圖5.52所示。設(shè)置DI、DO的起始地址為“0”。步驟二:規(guī)劃程序結(jié)構(gòu)。液體混合裝置程序結(jié)構(gòu)如圖5.53所示。OB1為主循環(huán)組織塊,OB100為初始化程序,FC1為液料A-進料泵1控制程序,FC2為液料B-進料泵2控制程序,FC3為混料泵控制程序,FC4為出料泵控制程序。步驟三:編輯符號表。在“S7程序”目錄下雙擊“符號”圖標,打開符號表,如圖5.54所示,編譯后保存。步驟四:編輯功能FC。在項目內(nèi)選擇“塊”文件夾,用鼠標右鍵單擊“插人新對象”一“功能”,分別創(chuàng)建4個功能:FC1、FC2、FC3、FC4。編譯各功能的程序如圖5.55~圖5.58所示。步驟四:編輯功能FC。在項目內(nèi)選擇“塊”文件夾,用鼠標右鍵單擊“插人新對象”一“功能”,分別創(chuàng)建4個功能:FC1、FC2、FC3、FC4。編譯各功能的程序如圖5.55~圖5.58所示。步驟五:編輯初始化程序OB100。在塊文件夾中添加OB100,OB100為啟動組織塊,程序如圖5.59所示。步驟六:編輯主程序OB1。主循環(huán)OB1中編譯程序如圖5.60所示。步驟七:仿真。打開仿真器,下載系統(tǒng)數(shù)據(jù)和所有塊后,切換到“RUN”模式。按下“啟動”按鈕I0.0,依次操作10.3、10.2、10.4,模擬到達中、高、低液位的狀態(tài),觀察輸出的變化。使用PLCSIM的仿真畫面如圖5.61所示。

1、數(shù)據(jù)塊中的數(shù)據(jù)類型有哪些?2、簡述組織塊的分類和優(yōu)先級。3、編寫求10的階乘的程序。27六月20255.7習題27六月2025第6

章S7-300/400的順序編程

6.2順序功能圖的構(gòu)成6.1順序控制的編程6.3順序功能圖的基本結(jié)構(gòu)6.4順序功能圖的梯形圖編程方法6.5順序功能圖的Graph編程方法27六月20256.1順序控制的編程

用傳統(tǒng)的經(jīng)驗設(shè)計法設(shè)計梯形圖時,沒有一套固定的方法和步驟可以遵循,對于不同的控制系統(tǒng),沒有一種通用的容易掌握的設(shè)計方法。在設(shè)計復(fù)雜系統(tǒng)的梯形圖時,用大量的中間單元來完成記憶、聯(lián)鎖和互鎖等功能,由于需要考慮的因素很多,它們往往又交織在一起,分析起來非常困難,一般不可能把所有的問題都考慮得很周到。

程序設(shè)計出來后,需要模擬調(diào)試或在現(xiàn)場調(diào)試,發(fā)現(xiàn)問題后再針對問題對程序進行修改。即使是非常有經(jīng)驗的工程師,也很難做到設(shè)計出的程序試車能一次成功。

修改某一局部電路時,很可能會引發(fā)出別的問題,往往花了很長的時間還得不到一個滿意的結(jié)果。

27六月2025

對于復(fù)雜順序控制系統(tǒng)僅靠基本指令系統(tǒng)編程會感到很不方便,其梯形圖復(fù)雜且不直觀。

PLC引入順序控制這個概念。所謂順序控制,就是按照生產(chǎn)工藝預(yù)先規(guī)定的順序,在各個輸入信號的作用下,根據(jù)內(nèi)部狀態(tài)和時間的順序,在生產(chǎn)過程中各個執(zhí)行機構(gòu)自動地有秩序地進行操作。

順序功能圖(SequentialFunctionChar,SFC)是描述控制系統(tǒng)的控制過程、功能和特性的一種圖形,也是設(shè)計PLC的順序控制程序的有力工具。順序功能圖是IEC61131-3標準中的編程語言。

有的PLC為用戶提供了順序功能圖語言,例如S7-300/400的S7-Graph語言,在編程軟件中生成順序功能圖后便完成了編程工作,從而提高工作效率。27六月2025

但是有些PLC(包括S7-200和S7-1200)并沒有配備順序功能圖語言。沒有配備順序功能圖語言的PLC也可以用順序功能圖來描述系統(tǒng)的功能,并根據(jù)它來設(shè)計梯形圖程序——順序控制設(shè)計法。

順序控制設(shè)計法是一種先進的設(shè)計方法,它很容易被初學者接受,對于有經(jīng)驗的工程師,也會提高設(shè)計的效率,程序的調(diào)試、修改和閱讀也很方便。27六月20256.2順序功能圖的構(gòu)成順序功能圖主要由步、有向連線、轉(zhuǎn)換條件和動作等組成。

下面以機械手為例來了解這些概念。圖6.1機械手順序控制示意圖機械手臂控制系統(tǒng)27六月2025左邊為傳送帶,由電機M驅(qū)動,在傳送帶的右端(E點)設(shè)有工件傳感器B5,A缸可使機械手左右移動,并設(shè)置有左限位開關(guān)B1和右限位開關(guān)B2;B缸可使機械手上下移動,并設(shè)置有下限位開關(guān)B3和上限位開關(guān)B4;C缸為氣動抓手,通電時抓手動作將工件抓緊,斷電時抓手松開。27六月2025原點位置:A缸縮回到最右端、B缸縮回到最上端、C缸松開狀態(tài)。動作過程:當人工將工件放置在D點時,B5動作→機械手下降→下降到位,工件抓取,然后延時2s→機械手上升→上升到位,左移→左移到位,機械手下降→下降到位,放開工件,延時2s→機械手臂上升→上限到位,機械手臂右移返回到原點待命。

27六月2025表6.1機械手實例的輸入輸出分配表元件作用端口號元件作用端口號SB0啟動I1.1YV0機械手上升Q0.2B4上限位檢測I0.2YV1機械手下降Q0.0B3下限位檢測I0.1YV2機械手左移Q0.3B1左限位檢測I0.3YV3機械手右移Q0.4B2右限位檢測I0.4YV4機械手夾緊Q0.1B5有料檢測I0.5

機械手實例的I/O分配表如表6.1所示。27六月2025圖6.2機械手順序功能圖順序功能圖如圖6.2所示。27六月2025

6.2.1

順序控制設(shè)計法最基本的思想是將系統(tǒng)的一個工作周期劃分為若干個順序相連的階段,這些階段稱為步(Step)。

然后用編程元件(例如圖6.2中的S1)來代表各步。步是根據(jù)輸出量的ON/OFF狀態(tài)的變化來劃分的,在任何一步之內(nèi),各輸出量的狀態(tài)不變,但是相鄰兩步輸出量總的狀態(tài)是不同的,步的這種劃分方法使代表各步的編程元件的狀態(tài)與各輸出量的狀態(tài)之間有著極為簡單的邏輯關(guān)系。

順序控制設(shè)計法用轉(zhuǎn)換條件控制代表各步的編程元件,讓它們的狀態(tài)按一定的順序變化,然后用代表各步的編程元件去控制PLC的各輸出位。27六月2025

圖6.2的機械手的順序功能圖中。設(shè)機械手在初始位置時停在右上位,限位開關(guān)I0.2和I0.4都是為1狀態(tài),Q0.0~Q0.4是控制機械手的動作。

根據(jù)Q0.0~Q0.4的ON/OFF狀態(tài)的變化,一個工作周期可以分為下降、夾緊、上升、左移、下降、松開、上升和右移共8步,另外還應(yīng)設(shè)置等待起動的初始步,圖中分別用S1~S9來代表這9步。圖中用矩形方框表示步,可以用方框中的數(shù)字表示各步的編號,也可以用代表各步的存儲器位的地址作為步的代號,例如M0.0等。這樣在根據(jù)順序功能圖設(shè)計梯形圖時較為方便。27六月2025步主要分為初始步、活動步和非活動步。初始步

初始狀態(tài)一般是系統(tǒng)等待啟動命令的相對靜止的狀態(tài)。系統(tǒng)在開始進行自動控制之前,首先應(yīng)進人規(guī)定的初始狀態(tài)。與系統(tǒng)的初始狀態(tài)相對應(yīng)的步稱為“初始步”。

初始步用雙線方框來表示,每一個順序功能圖至少應(yīng)該有一個初始步?;顒硬?/p>

當系統(tǒng)正處于某一步所在的階段時,則該步處于活動狀態(tài),被稱為“活動步”。步處于活動狀態(tài)時,執(zhí)行相應(yīng)的非存儲型動作。非活動步

處于不活動狀態(tài)的步稱為“非活動步”,此時,停止執(zhí)行非存儲型動作。27六月2025

6.2.2

動作或命令可以將一個控制系統(tǒng)劃分為被控系統(tǒng)和施控系統(tǒng)。例如在機械手控制系統(tǒng)中,編程和PLC裝置是施控系統(tǒng),而機械手是被控系統(tǒng)。對于被控系統(tǒng),在某一步中要完成某些“動作”(action);對于施控系統(tǒng),在某一步中向被控系統(tǒng)發(fā)出某些“命令”(command)。為了敘述方便,下面將命令或動作統(tǒng)稱為動作,并用矩形框中的文字或符號來表示動作,該矩形框與相應(yīng)的步的方框用平短線相連。如果某一步有幾個動作,畫狀態(tài)轉(zhuǎn)移圖時候,可以上下排列,也可以左右排列,如圖6.3所示,步Sn對應(yīng)的兩個動作就有(a)和(b)兩種畫法來表示,但是并不隱含這些動作之間的任何順序。圖6.3動作27六月2025

說明命令的語句應(yīng)清楚地表明該命令是存儲型的還是非存儲型的。非存儲型動作“機械手左移”,是指該步為活動步時機械手左移,為不活動步時機械手不動作。非存儲型動作與它所在的步是“同生共死”的,例如圖6.2中S2對應(yīng)的動作Q0.0就是非存儲型動作。某些動作在連續(xù)的若干步都應(yīng)為1狀態(tài)(見圖6.2中的Q0.1),可以在順序功能圖中,用動作的修飾詞“S”將它在應(yīng)為1狀態(tài)的第一步置位,用動作的修飾詞“R”將它在應(yīng)為1狀態(tài)的最后一步的下一步復(fù)位為0狀態(tài)。這種動作是存儲型動作,在程序中用置位、復(fù)位指令來實現(xiàn)。27六月2025除了以上的基本結(jié)構(gòu)之外,使用動作的修飾詞可以在一步中完成不同的動作。修飾詞允許在不增加邏輯的情況下控制動作。例如,可以使用修飾詞L來限制某一動作執(zhí)行的時間。

不過在使用動作的修飾詞時比較容易出錯,初學者在使用動作的修飾詞時要特別小心。在順序功能圖語言S7-Graph中,將動作的修飾詞稱為動作中的命令,在后續(xù)章節(jié)將詳細地介紹它。27六月2025

6.2.3有向連線與轉(zhuǎn)換

1.有向連線

有向連線就是狀態(tài)間的連接線,它決定了狀態(tài)的轉(zhuǎn)換方向和轉(zhuǎn)換途徑。

在順序功能圖程序設(shè)計中,步的活動狀態(tài)一般的進展方向是從上到下或從左至右,在這兩個方向有向連線上的箭頭可以省略。如果不是上述的方向,應(yīng)在有向連線上用箭頭注明進展方向。27六月20252.轉(zhuǎn)換步的活動狀態(tài)的進展是由轉(zhuǎn)換的實現(xiàn)來完成的,并與控制過程的發(fā)展相對應(yīng)。轉(zhuǎn)換用有向連線上與有向連線垂直的短劃線來表示,轉(zhuǎn)換將相鄰兩步分隔開。

在順序功能圖中,步的活動狀態(tài)的進展是由轉(zhuǎn)換的實現(xiàn)來完成的。

轉(zhuǎn)換實現(xiàn)必須同時滿足兩個條件:1)該轉(zhuǎn)換所有的前級步都是活動步。2)相應(yīng)的轉(zhuǎn)換條件得到滿足。

轉(zhuǎn)換實現(xiàn)時應(yīng)完成以下兩個操作:1)使所有由有向連線與相應(yīng)轉(zhuǎn)換符號相連的后續(xù)步都變?yōu)榛顒硬健?)使所有由有向連線與相應(yīng)轉(zhuǎn)換符號相連的前級步變?yōu)椴换顒硬健?/p>

轉(zhuǎn)換實現(xiàn)的基本規(guī)則是根據(jù)順序功能圖設(shè)計梯形圖的基礎(chǔ),它適用于順序功能圖中的各種基本結(jié)構(gòu)。27六月20253.轉(zhuǎn)換條件

促使系統(tǒng)由當前步進入下一步的信號稱為轉(zhuǎn)換條件。

轉(zhuǎn)換條件可以是:外部的輸入信號,例如按鈕、指令開關(guān)、限位開關(guān)的接通或斷開等;也可以是PLC內(nèi)部產(chǎn)生的信號,例如定時器、計數(shù)器常開觸點的接通等;還可以是若干個信號的與、或、非邏輯組合。27六月2025S7-Graph中的轉(zhuǎn)換條件用梯形圖或功能塊圖來表示,如圖6.4中的(a)和(b)所示,如果沒有使用S7-Graph語言,一般用布爾代數(shù)表達式來表示轉(zhuǎn)換條件,如圖6.4中的(c)所示。

圖6.4的(c)圖中,用布爾代數(shù)表示的轉(zhuǎn)換條件I0.1表示I0.1為1狀態(tài)時轉(zhuǎn)換實現(xiàn),轉(zhuǎn)換條件表示M0.0的常開觸點閉合或I0.2的常閉觸點閉合時轉(zhuǎn)換實現(xiàn),在梯形圖中則用兩個觸點的并聯(lián)來表示這樣的“或”邏輯關(guān)系。27六月2025有時候也用符號↑和↓加在觸點的前面分別表示該觸點出現(xiàn)上升沿或者下降沿的時候轉(zhuǎn)換實現(xiàn)。

例如:↓I2.3就表示一旦I2.3出現(xiàn)下降沿,則轉(zhuǎn)換實現(xiàn)。

一般情況下,轉(zhuǎn)換條件↑I2.3和I2.3是等效的。27六月20256.3順序功能圖的基本結(jié)構(gòu)

在順序控制功能圖程序中,由于控制要求或設(shè)計思路的不同,步與步之間的連接形式也不同,從而形成了順序控制功能圖程序的3種不同的基本結(jié)構(gòu)形式:單序列、選擇序列、并行序列。27六月20251.單序列

單序列由一系列相繼激活的步組成,每一步的后面僅有一個轉(zhuǎn)換,每一個轉(zhuǎn)換的后面只有一個步,如圖6.5的(a)所示。單序列沒有分支與合并。單序列結(jié)構(gòu)的特點如下:1)步與步之間采用自上而下的串聯(lián)連接方式;2)狀態(tài)的轉(zhuǎn)換方向始終是自上而下且固定不變(起始狀態(tài)和結(jié)束狀態(tài)除外);3)除轉(zhuǎn)換瞬間,通常僅有一個步處于活動狀態(tài)?;诖耍趩涡蛄兄锌梢允褂谩爸貜?fù)線圈”(如輸出線圈、內(nèi)部輔助繼電器等)。27六月20252.選擇序列

流程中存在兩條或者兩條以上路徑,而只能選擇其中一條路徑來走,這種分支方式稱為選擇分支。如圖6.5中的(2)和(3)所示。選擇序列的開始稱為分支。轉(zhuǎn)換符號只能標在水平連線之下。27六月20252.選擇序列在分支處,同一時間轉(zhuǎn)移條件只能滿足一個,體現(xiàn)選擇性分支的唯一性。例如圖6.5的(b)中,如果步Sn-1是活動步,并且轉(zhuǎn)換條件d為1,則系統(tǒng)由步Sn-1轉(zhuǎn)換到步Sn。如果步Sn-1是活動步,并且d為0,則系統(tǒng)由步Sn-1轉(zhuǎn)換到步Sn+2。27六月2025

選擇序列的結(jié)束稱為合并。幾個選擇序列合并到一個公共序列時,用需要重新組合的序列相同數(shù)量的轉(zhuǎn)換符號和水平連線來表示,轉(zhuǎn)換符號只允許標在水平連線之上。如果步Sn+1是活動步,并且轉(zhuǎn)換條件f變?yōu)?,則系統(tǒng)由步Sn+1轉(zhuǎn)換到步Sn+4。如果步Sn+3是活動步,并且h變?yōu)?,則系統(tǒng)由步Sn+3轉(zhuǎn)換到步Sn+4。2.選擇序列27六月2025允許選擇序列的某一條分支上沒有步。但是必須有一個轉(zhuǎn)換。這種結(jié)構(gòu)稱為“跳步”。

跳步是選擇序列的一種特殊情況,如圖6.5中的(3)號示例。2.選擇序列27六月20253.并行序列

流程中若有兩條或者兩條以上路徑且必須同時執(zhí)行,這樣的分支方式稱為并行序列。并行序列的開始稱為分支。例如圖6.5中的示例(d),當步Sn-1是活動的,并且轉(zhuǎn)換條件m變?yōu)?,Sn和Sn+2這兩步同時激活為活動步,每個序列中活動步的進展將是獨立的;同時步Sn-1變?yōu)椴换顒硬?。為了強調(diào)轉(zhuǎn)換的同步實現(xiàn),水平連線用雙線表示。在表示同步的水平雙線之上,只允許有一個轉(zhuǎn)換符號。27六月2025并行序列的結(jié)束稱為合并,當直接連在雙線上的所有前級步(步Sn+1和Sn+3)都處于活動狀態(tài),并且轉(zhuǎn)換條件p變?yōu)?時,系統(tǒng)才會從步Sn+1和Sn+3轉(zhuǎn)換到步Sn+4的進展,即步Sn+1和Sn+3同時變?yōu)椴换顒硬剑絊n+4變?yōu)榛顒硬?。在表示同步的水平雙線之下,只允許有一個轉(zhuǎn)換符號。3.并行序列27六月20256.4

順序功能圖的梯形圖編程方法在STEP7環(huán)境下,順序功能圖既可以用S7GRAPH進行編程,也可以用梯形圖進行編程。梯形圖編程是一種通用的編程方法,適用于各種廠家各種型號的PLC,是PLC工程技術(shù)人員必須掌握的編程方法。順序功能圖的每一步用梯形圖編程時都需要用2個程序段來表示:第1個程序段實現(xiàn)從當前步到下一步的轉(zhuǎn)換。第2個程序段實現(xiàn)轉(zhuǎn)換以后的步的功能。

一般用一系列的位存儲器(如M0.0、M0.1…)分別表示順序功能圖的各步(S1、S2……),要實現(xiàn)步的轉(zhuǎn)換,就要用當前步及其轉(zhuǎn)換條件的邏輯輸出去置位下一步,同時復(fù)位當前步。27六月2025

6.4.1單流程的梯形圖編程1.單流程的梯形圖編程說明

圖6.6(a)所示的單流程序列對應(yīng)的梯形圖編程程序如圖6.7(b)所示。步的輸出邏輯部分可根據(jù)設(shè)備工藝要求,采用一般的輸出指令(如輸出2、輸出4),或保持性的置位指令(如輸出1)及復(fù)位指令(如輸出3)。圖6.6單流程的梯形圖編程說明27六月20252.單流程的梯形圖編程舉例設(shè)動力滑臺在初始位置時停在左邊,限位開關(guān)I1.3為1狀態(tài),Q0.0~Q0.2是控制動力滑臺運動的3個電磁閥。按下起動按鈕后,動力滑臺的一個工作周期由快進、工進、暫停和快退組成,返回初始位置后停止運動。圖6.7

液壓動力滑臺的進給運動示意圖

和輸入/輸出信號的時序圖27六月2025根據(jù)Q0.0~Q0.2的ON/OFF狀態(tài)的變化,一個工作周期可以分為快進、工進、暫停和快退這4步,另外還應(yīng)設(shè)置等待起動的初始步,圖中分別用M1.0~M1.4來代表這5步。順序功能圖中用矩形方框表示步??梢杂梅娇蛑械臄?shù)字來作各步的編號,例如S0等;也可以用代表各步的存儲器位的地址作為步的代號,例如M1.0等,這樣在根據(jù)順序功能圖設(shè)計梯形圖時較為方便。27六月2025該順序功能圖對應(yīng)的梯形圖程序分為兩個部分:一個是初始化程序OB100,用來進入第一個步序M1.0,如圖6.8所示,通過將MW0賦值為W#16#1,來置位M1.0;另一個則是主程序OB1,用來實現(xiàn)步序之間的轉(zhuǎn)換,如圖6.9所示。圖6.8工作臺實例的OB100程序27六月2025圖6.9工作臺實例的OB1程序注意:Network4的寫法。因為步序中M1.1和M1.2都是輸出Q0.0,如果分開編寫程序會造成Q0.0按照后一個驅(qū)動程序的結(jié)果來顯示,所以要將M1.1和M1.2并聯(lián)來驅(qū)動Q0.0。27六月2025

6.4.2

選擇分支流程的梯形圖編程1.選擇分支流程的梯形圖編程說明

以圖6.10所示的選擇流程為例,其對應(yīng)的梯形圖編程程序如圖6.11所示。選擇分支流程用梯形圖編程時,用分支前的最后一步(Sn-1)及其轉(zhuǎn)換條件(條件a或者條件b)的邏輯輸出置位2個分支中其中一個分支的第一步(Sn或Sn+2),并對分支前的最后一步(Sn-1)復(fù)位;其中一個選擇分支的最后一步(Sn+1或Sn+2)及其轉(zhuǎn)換條件(條件c或條件e)的邏輯輸出置位匯合后的第一步(Sn+3),并對相應(yīng)分支的最后一步(Sn+1或Sn+2)復(fù)位。27六月2025圖6.10選擇分支流程示例圖6.11選擇流程的梯形圖編程說明27六月2025圖6.11選擇流程的梯形圖編程說明圖6.10選擇分支流程示例27六月20252.選擇分支流程的梯形圖編程舉例圖6.12為小球分類傳送系統(tǒng)示意圖。左上為原點,動作順序為:下降→吸收→上升→右行→下降→釋放→上升→左行。當機械臂下降時,若電磁鐵吸住大球,下限位開關(guān)LS2斷開;若吸住小球,LS2接通。27六月2025圖6.13小球分類系統(tǒng)功能轉(zhuǎn)移圖27六月2025該順序功能圖對應(yīng)的梯形圖程序分為兩個部分:一個是初始化程序OB100,用來進入第一個步序M1.0,如圖6.14所示,通過將MW0賦值為W#16#1,來置位M1.0;另一個則是主程序OB1,用來實現(xiàn)步序之間的轉(zhuǎn)換,如圖6.15所示。圖6.14工作臺實例的OB100程序27六月2025圖6.15小球分類系統(tǒng)實例的OB1程序圖27六月2025圖6.15

小球分類系統(tǒng)實例的OB1程序圖27六月2025

6.4.3并行分支流程的梯形圖編程

1.并行分支流程的梯形圖編程說明圖6.16所示的并行分支流程對應(yīng)的梯形圖編程程序如圖6.17所示。并行分支流程用梯形圖編程時,用分支前的最后一步(Sn-1)及其轉(zhuǎn)換條件(條件a)的邏輯輸出同時置位各并行分支的第一步(Sn和Sn+2),并對分支前的最后一步(Sn-1)復(fù)位;用各并行分支的最后一步(Sn+1和Sn+2)及其轉(zhuǎn)換條件(條件c)的邏輯輸出置位并行分支匯合后的第一步(Sn+3),并對相應(yīng)分支的最后一步(Sn+1和Sn+2)復(fù)位。27六月2025

圖6.16

選擇分支流程示例圖6.17

選擇分支流程的梯形圖編程說明27六月2025圖6.17

選擇分支流程的梯形圖編程說明圖6.16

選擇分支流程示例27六月20252.并行分支流程的梯形圖編程舉例

某專用鉆床用來加工圓形零件上均勻分布的6個孔(見圖6.18),上面是側(cè)視圖,下面是工件的俯視圖。在進入自動運行之前,兩個鉆頭應(yīng)在最上面,上限位開關(guān)I0.3和I0.5為1狀態(tài),系統(tǒng)處于初始步,減計數(shù)器C1的設(shè)定值3被送入計數(shù)器字。圖6.18

并行鉆孔實例示意圖27六月2025圖6.19

并行鉆孔系統(tǒng)功能轉(zhuǎn)移圖在圖6.19中用存儲器位M來代表各步,順序功能圖中包含了選擇序列和并行序列。操作人員放好工件,按下啟動按鈕I0.0,轉(zhuǎn)換條件I0.0、I0.3和I0.5同時滿足,由初始步轉(zhuǎn)換到步M1.1,Q0.0置位為1,工件被夾緊。夾緊后壓力繼電器I0.1為1狀態(tài),由步M1.1轉(zhuǎn)換到步M1.2和M

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論