第5、6章 SIMATIC S7-1500 PLC的結(jié)構(gòu)化程序設(shè)計(jì)、SIMATIC S7-1500 PLC的GRAPH編程_第1頁
第5、6章 SIMATIC S7-1500 PLC的結(jié)構(gòu)化程序設(shè)計(jì)、SIMATIC S7-1500 PLC的GRAPH編程_第2頁
第5、6章 SIMATIC S7-1500 PLC的結(jié)構(gòu)化程序設(shè)計(jì)、SIMATIC S7-1500 PLC的GRAPH編程_第3頁
第5、6章 SIMATIC S7-1500 PLC的結(jié)構(gòu)化程序設(shè)計(jì)、SIMATIC S7-1500 PLC的GRAPH編程_第4頁
第5、6章 SIMATIC S7-1500 PLC的結(jié)構(gòu)化程序設(shè)計(jì)、SIMATIC S7-1500 PLC的GRAPH編程_第5頁
已閱讀5頁,還剩104頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

S7-1500PLC技術(shù)及應(yīng)用高等職業(yè)系列教材第五章5.1比較操作指令及其應(yīng)用教學(xué)導(dǎo)航

SIMATIC

S7-1500PLC的結(jié)構(gòu)化程序設(shè)計(jì)數(shù)學(xué)函數(shù)指令及其應(yīng)用移動(dòng)操作指令及其應(yīng)用5.25.35.1程序結(jié)構(gòu)與程序塊5.1.1知識(shí):用戶程序的結(jié)構(gòu)1.線性化編程

圖5-1所示為一個(gè)線性程序示意圖:“Main1”程序循環(huán)OB包含整個(gè)用戶程序。這種在程序循環(huán)OB中線性設(shè)計(jì)處理小型自動(dòng)化任務(wù)解決方案的程序,本書第3章、第4章的程序普遍采用這種結(jié)構(gòu)。通常建議僅對(duì)簡(jiǎn)單程序采用線性編程。圖5-1線性程序示意圖5.1程序結(jié)構(gòu)與程序塊5.1.1知識(shí):用戶程序的結(jié)構(gòu)2.結(jié)構(gòu)化編程

所謂結(jié)構(gòu)化編程,是將復(fù)雜自動(dòng)化任務(wù)分割成與過程工藝功能相對(duì)應(yīng)或可重復(fù)使用的更小的子任務(wù),將更易于對(duì)這些復(fù)雜任務(wù)進(jìn)行處理和管理。這些子任務(wù)在用戶程序中以塊來表示。因此,每個(gè)塊是用戶程序的獨(dú)立部分。圖5-2結(jié)構(gòu)化程序示意圖

結(jié)構(gòu)化程序有以下優(yōu)點(diǎn):①通過結(jié)構(gòu)化更容易進(jìn)行大程序編程。②各個(gè)程序段都可實(shí)現(xiàn)標(biāo)準(zhǔn)化,通過更改參數(shù)反復(fù)使用。③程序結(jié)構(gòu)更簡(jiǎn)單。④更改程序變得更容易。⑤可分別測(cè)試程序段,因而可簡(jiǎn)化程序排錯(cuò)過程。⑥簡(jiǎn)化了調(diào)試。

圖5-2所示,為一個(gè)結(jié)構(gòu)化程序示意圖:“Main1”程序循環(huán)OB依次調(diào)用一些子程序,它們執(zhí)行所定義的子任務(wù)。5.1程序結(jié)構(gòu)與程序塊5.1.1知識(shí):用戶程序的結(jié)構(gòu)

要執(zhí)行用戶程序中的塊,必須通過其他塊對(duì)它們進(jìn)行調(diào)用。當(dāng)一個(gè)塊調(diào)用另一個(gè)塊時(shí),將執(zhí)行被調(diào)用塊的指令。只有完成被調(diào)用塊的執(zhí)行后,才會(huì)繼續(xù)執(zhí)行調(diào)用塊。并且繼續(xù)執(zhí)行塊調(diào)用后的指令。圖5-3所示為用戶程序中塊調(diào)用的順序。圖4-1等于與不等于指令

調(diào)用塊時(shí),必須給塊接口中的參數(shù)賦值。通過提供輸入?yún)?shù),用戶可以指定用于執(zhí)行塊的數(shù)據(jù)。通過提供輸出參數(shù)用戶可以指定執(zhí)行結(jié)果的保存位置。塊調(diào)用的順序和嵌套稱為調(diào)用層級(jí)??捎玫那短咨疃热Q于CPU。圖5-4所示為在一個(gè)執(zhí)行周期內(nèi)的塊調(diào)用順序和嵌套深度示例。圖5-4在一個(gè)執(zhí)行周期內(nèi)的塊調(diào)用順序和嵌套深度5.1程序結(jié)構(gòu)與程序塊5.1.1知識(shí):用戶程序的結(jié)構(gòu)

分配有自己的背景數(shù)據(jù)塊的函數(shù)塊調(diào)用稱為單個(gè)背景數(shù)據(jù)塊。通過分配背景數(shù)據(jù)塊,可以指定要存儲(chǔ)函數(shù)塊實(shí)例數(shù)據(jù)的位置。通過為每次調(diào)用分配不同的背景數(shù)據(jù)塊,可以多次使用相同的函數(shù)塊,而每次具有不同的實(shí)例數(shù)據(jù)。

圖5-5所示,為使用一個(gè)函數(shù)塊和三個(gè)不同的數(shù)據(jù)塊來控制三臺(tái)電機(jī)??梢允褂靡粋€(gè)函數(shù)塊控制多臺(tái)電機(jī)。為實(shí)現(xiàn)此目的,需要為執(zhí)行電機(jī)控制的每個(gè)函數(shù)塊調(diào)用分配一個(gè)不同的背景數(shù)據(jù)塊。不同電機(jī)的不同數(shù)據(jù)(例如,速度、加速時(shí)間、總運(yùn)行時(shí)間)保存在不同的背景數(shù)據(jù)塊中。不同的電機(jī)將根據(jù)所分配的背景數(shù)據(jù)塊進(jìn)行控制。圖5-5使用一個(gè)函數(shù)塊和三個(gè)不同的數(shù)據(jù)塊來控制三臺(tái)電機(jī)5.1程序結(jié)構(gòu)與程序塊5.1.1知識(shí):用戶程序的結(jié)構(gòu)

多重背景允許被調(diào)用函數(shù)塊將其數(shù)據(jù)存儲(chǔ)在調(diào)用函數(shù)塊的背景數(shù)據(jù)塊中。這樣便可將實(shí)例數(shù)據(jù)集中放在一個(gè)背景數(shù)據(jù)塊中,從而更有效地使用可用的背景數(shù)據(jù)塊。

同樣也可以將一個(gè)背景數(shù)據(jù)塊用于不同函數(shù)塊的實(shí)例。圖5-6所示為多個(gè)不同的函數(shù)塊如何將數(shù)據(jù)存儲(chǔ)在同一個(gè)調(diào)用塊中。FBWorkpiece逐個(gè)調(diào)用以下塊:FBGrid、FBPunch和FBConveyor。被調(diào)用的塊將其數(shù)據(jù)存儲(chǔ)在DBWorkpiece中,它是調(diào)用塊的背景數(shù)據(jù)塊。圖5-6多個(gè)不同的函數(shù)塊將數(shù)據(jù)存儲(chǔ)在同一個(gè)調(diào)用塊中5.1程序結(jié)構(gòu)與程序塊5.1.1知識(shí):用戶程序的結(jié)構(gòu)

圖5-7所示為在多個(gè)實(shí)例中調(diào)用的一個(gè)函數(shù)塊如何在一個(gè)背景數(shù)據(jù)塊中存儲(chǔ)所有實(shí)例的數(shù)據(jù)。圖5-7調(diào)用的一個(gè)函數(shù)塊如何在一個(gè)背景數(shù)據(jù)塊中存儲(chǔ)所有實(shí)例的數(shù)據(jù)

函數(shù)塊FBMotors調(diào)用FBMotor的三個(gè)實(shí)例。實(shí)例為“Motor1”、“Motor2”和“Motor_3”。每個(gè)調(diào)用使用不同的實(shí)例數(shù)據(jù)。然而,所有實(shí)例數(shù)據(jù)都位于同一個(gè)背景數(shù)據(jù)塊DBMotorData中。5.1程序結(jié)構(gòu)與程序塊5.1.1知識(shí):用戶程序的結(jié)構(gòu)

傳送ARRAY

可以將ARRAY作為參數(shù)傳送。如果塊具有ARRAY類型的輸入?yún)?shù),則必須傳送具有相同結(jié)構(gòu)的ARRAY作為實(shí)參。也可以傳送ARRAY的個(gè)別元素作為實(shí)參,但這些元素必須與形參的數(shù)據(jù)類型一致。

傳送PLC數(shù)據(jù)類型

也可以將聲明為PLC數(shù)據(jù)類型的變量作為實(shí)參來傳送。如果形參在變量聲明中聲明為PLC數(shù)據(jù)類型,則必須傳送與實(shí)參具有相同PLC數(shù)據(jù)類型的變量。通過PLC數(shù)據(jù)類型聲明的變量的元素也可以作為實(shí)參在塊調(diào)用時(shí)傳送,前提是變量元素的數(shù)據(jù)類型與形參數(shù)據(jù)類型相匹配。

傳送結(jié)構(gòu)(STRUCT)

可以將結(jié)構(gòu)作為參數(shù)傳送。如果塊具有STRUCT類型的輸入?yún)?shù),則必須傳送具有相同結(jié)構(gòu)的STRUCT作為實(shí)參。這意味著所有結(jié)構(gòu)組件的名稱和數(shù)據(jù)類型都必須相同。也可以傳送STRUCT的個(gè)別元素作為實(shí)參,但這些元素必須與形參的數(shù)據(jù)類型一致。

調(diào)用塊為被調(diào)用塊提供要使用的值。這些值稱為塊參數(shù)。輸入?yún)?shù)向被調(diào)用塊提供其必須處理的值。該塊通過輸出參數(shù)返回結(jié)果。因此,塊參數(shù)是調(diào)用塊和被調(diào)用塊之間的接口。若僅要查詢或讀取值,使用輸入?yún)?shù):若要設(shè)置或?qū)懭胫?,則使用輸出參數(shù)。若要讀取和寫入塊參數(shù),則必須創(chuàng)建輸入/輸出參數(shù)。

塊參數(shù)在被調(diào)用塊的接口中定義。這些參數(shù)稱為形參。它們是調(diào)用塊時(shí)傳遞給該塊的參數(shù)的占位符。調(diào)用塊時(shí)傳遞給塊的參數(shù)稱為實(shí)參。

在塊內(nèi)使用塊參數(shù)時(shí),同樣可選擇輸入?yún)?shù)只可讀取、輸出參數(shù)只可寫入和輸入/輸出參數(shù)可以讀取和寫入三種形式。調(diào)用帶有塊參數(shù)的塊時(shí),可以讀取和寫入三種形式。調(diào)用帶有塊參數(shù)的塊時(shí),可為其形參分配實(shí)參。常見數(shù)據(jù)類型如下:5.1程序結(jié)構(gòu)與程序塊5.1.2知識(shí):程序塊的類型1.組織塊(OB)

組織塊(OB)構(gòu)成了操作系統(tǒng)和用戶程序之間的接口。組織塊由操作系統(tǒng)調(diào)用,可以控制:自動(dòng)化系統(tǒng)的啟動(dòng)特性、循環(huán)程序處理、中斷驅(qū)動(dòng)的程序執(zhí)行、錯(cuò)誤處理等操作。用戶可以對(duì)組織塊進(jìn)行編程并同時(shí)確定CPU的特性。根據(jù)使用的CPU,提供有各種不同的組織塊。啟動(dòng)某些組織塊之后,操作系統(tǒng)將提供可以在用戶程序中進(jìn)行評(píng)估的信息。組織塊(OB)的基本信息,如表5-1所示。表5-1組織塊(OB)的基本信息事件源的類型優(yōu)先級(jí)(默認(rèn)優(yōu)先級(jí))可能的OB編號(hào)默認(rèn)的系統(tǒng)響應(yīng)支持的OB數(shù)量啟動(dòng)1100>=123忽略100循環(huán)程序11>=123忽略100時(shí)間中斷2到24(2)10到17,>=123不適用20狀態(tài)中斷2到24(4)55忽略1更新中斷2到24(4)56忽略1制造商或配置文件特定的中斷2到24(4)57忽略1延時(shí)中斷2到24(3)20到23,>=123不適用20循環(huán)中斷2到24(8到17,取決于循環(huán)時(shí)間)30到38,>=123不適用20硬件中斷2到26(18)40到47,>=123忽略50等時(shí)同步模式中斷16到26(21)61到64,>=123忽略20(每個(gè)等時(shí)同步接口一個(gè))MC伺服中斷17到31(25)91不適用1MC插補(bǔ)器中斷16到30(24)92不適用1時(shí)間錯(cuò)誤2280忽略15.1程序結(jié)構(gòu)與程序塊5.1.2知識(shí):程序塊的類型“啟動(dòng)”(Startup)組織塊將在PLC的工作模式從STOP切換為RUN時(shí)執(zhí)行一次。完成后,將開始執(zhí)行主“循環(huán)程序”組織塊。啟動(dòng)組織塊只在CPU啟動(dòng)時(shí)執(zhí)行一次,以后不再被執(zhí)行,可以將一些初始化的指令編寫在啟動(dòng)組織塊中循環(huán)執(zhí)行組織塊要啟動(dòng)用戶程序執(zhí)行,項(xiàng)目中至少要有一個(gè)程序循環(huán)OB。循環(huán)程序OB也稱“主程序”(Main),優(yōu)先級(jí)最低,在每個(gè)循環(huán)掃描周期都被掃描執(zhí)行。對(duì)于S7-1500和S7-1200PLC,循環(huán)程序OB允許有多個(gè),每個(gè)循環(huán)程序OB的編號(hào)均不同,執(zhí)行程序時(shí),多個(gè)循環(huán)程序OB按照OB的編號(hào)升序順序執(zhí)行。對(duì)于S7-200/300/400PLC,循環(huán)程序OB只有一個(gè)。中斷組織塊(OB)

細(xì)分為延時(shí)中斷OB、循環(huán)中斷OB、硬件中斷OB和時(shí)間中等,中斷服務(wù)程序編寫在中斷OB中。在CPU進(jìn)入RUN模式下,當(dāng)發(fā)生中斷源事件時(shí)、若已分配了對(duì)應(yīng)的OB,則操作系統(tǒng)會(huì)中斷當(dāng)前低優(yōu)先級(jí)的組織塊(如循環(huán)程序OB)的執(zhí)行而轉(zhuǎn)向執(zhí)行對(duì)應(yīng)的高優(yōu)先級(jí)的中斷組織塊一次,執(zhí)行完畢后返回?cái)帱c(diǎn)處繼續(xù)執(zhí)行。5.1程序結(jié)構(gòu)與程序塊5.1.2知識(shí):程序塊的類型2.函數(shù)(FC)

函數(shù)(FC)是不帶存儲(chǔ)器的代碼塊。由于沒有可以存儲(chǔ)塊參數(shù)值的數(shù)據(jù)存儲(chǔ)器。因此,調(diào)用函數(shù)時(shí),必須給所有形參分配實(shí)參。函數(shù)可以使用全局?jǐn)?shù)據(jù)塊永久性存儲(chǔ)數(shù)據(jù)。函數(shù)包含一個(gè)程序,在其他代碼塊調(diào)用該函數(shù)時(shí)將執(zhí)行此程序。例如,可以將函數(shù)用于下列目的:1.將函數(shù)值返回給調(diào)用塊,例如,數(shù)學(xué)函數(shù)2.執(zhí)行工藝功能,例如,通過位邏輯運(yùn)算進(jìn)行單個(gè)的控制可以在程序中的不同位置多次調(diào)用同一個(gè)函數(shù)。因此,函數(shù)塊簡(jiǎn)化了對(duì)重復(fù)發(fā)生的函數(shù)的編程。5.1程序結(jié)構(gòu)與程序塊5.1.2知識(shí):程序塊的類型3.函數(shù)塊(FB)

函數(shù)塊是一種代碼塊,它將輸入、輸出和輸入/輸出參數(shù)永久地存儲(chǔ)在背景數(shù)據(jù)塊中,從而在執(zhí)行塊之后,這些值依然有效。所以函數(shù)塊也稱為“有存儲(chǔ)器”的塊。函數(shù)塊也可以使用臨時(shí)變量。臨時(shí)變量并不存儲(chǔ)在背景數(shù)據(jù)塊中,而用于一個(gè)循環(huán)。函數(shù)塊包含總是在其他代碼塊調(diào)用該函數(shù)塊時(shí)執(zhí)行的子例程??梢栽诔绦蛑械牟煌恢枚啻握{(diào)用同一個(gè)函數(shù)塊。因此,函數(shù)塊簡(jiǎn)化了對(duì)重復(fù)發(fā)生的函數(shù)的編程。5.1程序結(jié)構(gòu)與程序塊5.1.2知識(shí):程序塊的類型4.數(shù)據(jù)塊(DB)

1.全局?jǐn)?shù)據(jù)塊(DB)圖5-8不同的數(shù)據(jù)塊訪問

數(shù)據(jù)塊用于存儲(chǔ)程序數(shù)據(jù)。因此,數(shù)據(jù)塊包含由用戶程序使用的變量數(shù)據(jù)。全局?jǐn)?shù)據(jù)塊存儲(chǔ)所有其他塊都可使用的數(shù)據(jù)。數(shù)據(jù)塊的最大大小因CPU的不同而各異??梢砸宰约合矚g的方式定義全局?jǐn)?shù)據(jù)塊的結(jié)構(gòu)。還可以選擇使用PLC數(shù)據(jù)類型(UDT)作為創(chuàng)建全局?jǐn)?shù)據(jù)塊的模板。每個(gè)函數(shù)塊、函數(shù)或組織塊都可以從全局?jǐn)?shù)據(jù)塊中讀取數(shù)據(jù)或向其中寫入數(shù)據(jù)。即使在退出數(shù)據(jù)塊后,這些數(shù)據(jù)仍然會(huì)保存在其中??梢酝瑫r(shí)打開一個(gè)全局?jǐn)?shù)據(jù)塊和一個(gè)背景數(shù)據(jù)塊。

不同的數(shù)據(jù)塊訪問情況如圖5-8所示。

S7-1500提供兩種不同的全局?jǐn)?shù)據(jù)塊訪問選項(xiàng),可在調(diào)用函數(shù)塊時(shí)分配給函數(shù)塊:①可優(yōu)化訪問的數(shù)據(jù)塊無固定定義的存儲(chǔ)器結(jié)構(gòu)。在聲明中,數(shù)據(jù)元素僅包含一個(gè)符號(hào)名,因此在塊中沒有固定的地址。②可一般訪問的數(shù)據(jù)塊(與S7-300/400兼容)具有固定的存儲(chǔ)器結(jié)構(gòu)。聲明元素在聲明中包含一個(gè)符號(hào)名,并且在塊中有固定地址。5.1程序結(jié)構(gòu)與程序塊5.1.2知識(shí):程序塊的類型

ARRAY數(shù)據(jù)塊是一種特殊類型的全局?jǐn)?shù)據(jù)塊。這些數(shù)據(jù)塊包含一個(gè)任意數(shù)據(jù)類型的ARRAY。例如,可以是PLC數(shù)據(jù)類型(UDT)的ARRAY。但這種數(shù)據(jù)塊不能包含除ARRAY之外的其他元素。由于采用平面結(jié)構(gòu),ARRAY數(shù)據(jù)塊可訪問ARRAY元素,并將這些元素傳遞給被調(diào)用塊。ARRAY數(shù)據(jù)塊中始終啟用“優(yōu)化塊訪問”(Optimizedblockaccess)屬性。ARRAY數(shù)據(jù)塊不可能進(jìn)行標(biāo)準(zhǔn)訪問??赏ㄟ^“指令”(Instructions)任務(wù)卡上“移動(dòng)操作”(Moveoperations)部分中的選項(xiàng),對(duì)ARRAY數(shù)據(jù)塊進(jìn)行尋址。

2.ARRAY數(shù)據(jù)塊(S7-1500)

函數(shù)塊的調(diào)用稱為實(shí)例。函數(shù)塊的每個(gè)實(shí)例都需要一個(gè)背景數(shù)據(jù)塊;其中包含函數(shù)塊中所聲明的形參的實(shí)例特定值。函數(shù)塊可以將實(shí)例特定的數(shù)據(jù)存儲(chǔ)在自己的背景數(shù)據(jù)塊中,也可以存儲(chǔ)在調(diào)用塊的背景數(shù)據(jù)塊中。S7-1500提供可優(yōu)化訪問的數(shù)據(jù)塊和可一般訪問的數(shù)據(jù)塊(與S7-300/400兼容)兩種不同的背景數(shù)據(jù)塊訪問選項(xiàng)。

3.背景數(shù)據(jù)塊5.1程序結(jié)構(gòu)與程序塊5.1.2知識(shí):程序塊的類型

CPU數(shù)據(jù)塊由CPU在運(yùn)行期間生成。為此,在用戶程序中插入“CREATEDB”指令可以使用在運(yùn)行期間生成的數(shù)據(jù)塊來保存數(shù)據(jù)。CPU數(shù)據(jù)塊由可用節(jié)點(diǎn)“程序塊”文件夾中的小CPU圖標(biāo)來表示。與監(jiān)視其他數(shù)據(jù)塊類型的值類似,可以在在線模式中監(jiān)視CPU數(shù)據(jù)塊的變量值。無法在離線項(xiàng)目中創(chuàng)建CPU數(shù)據(jù)塊。

將CPU數(shù)據(jù)塊加載到離線項(xiàng)目中之后,可以打開并查看這些數(shù)據(jù)塊的內(nèi)容。但是請(qǐng)注意項(xiàng)目中的CPU數(shù)據(jù)塊受到寫保護(hù)。因此,項(xiàng)目中的CPU數(shù)據(jù)塊受到以下限制:

4.CPU數(shù)據(jù)塊①無法編輯CPU數(shù)據(jù)塊,或?qū)⑦@些數(shù)據(jù)塊轉(zhuǎn)換為其他數(shù)據(jù)塊類型;②無法為CPU數(shù)據(jù)塊指定專有技術(shù)保護(hù);③無法更改CPU數(shù)據(jù)塊的編程語言;④無法編譯CPU數(shù)據(jù)塊或?qū)⑵湎螺d到設(shè)備。5.2邏輯塊(FC和FB)的結(jié)構(gòu)及編程5.2.1知識(shí):邏輯塊(FC和FB)的結(jié)構(gòu)1.局部變量聲明表

每個(gè)邏輯塊前部都有一個(gè)變量聲明表,稱為局部變量聲明表。局部變量聲明表所包含的內(nèi)容,如表5-2所示。表5-2局部變量聲明表變量名類型說明輸入?yún)?shù)In由調(diào)用邏輯塊的塊提供數(shù)據(jù),輸入給邏輯塊的指令輸出參數(shù)Out向調(diào)用邏輯塊的塊返回參數(shù),即從邏輯塊輸出結(jié)果數(shù)據(jù)I/O參數(shù)In_Out參數(shù)的值由調(diào)用該塊的其他塊提供,由邏輯塊處理修改,然后返回靜態(tài)變量Stat靜態(tài)變量存儲(chǔ)在背景數(shù)據(jù)塊中,塊調(diào)用結(jié)束后,其內(nèi)容被保留狀態(tài)變量Temp臨時(shí)變量存儲(chǔ)在L堆棧中,塊執(zhí)行結(jié)束變量的值因被其他內(nèi)容覆蓋而丟失

邏輯塊(OB、FB、FC)由變量聲明表、代碼段及其屬性等幾部分組成。5.2邏輯塊(FC和FB)的結(jié)構(gòu)及編程5.2.1知識(shí):邏輯塊(FC和FB)的結(jié)構(gòu)2.邏輯塊局部變量的數(shù)據(jù)類型

局部數(shù)據(jù)分為參數(shù)和局部變量?jī)纱箢?,局部變量又包括靜態(tài)變量和臨時(shí)變量(暫態(tài)變量)兩種。對(duì)于功能塊(FB),操作系統(tǒng)為參數(shù)及靜態(tài)變量分配的存儲(chǔ)空間是背景數(shù)據(jù)塊。這樣參數(shù)變量在背景數(shù)據(jù)塊中留有運(yùn)行結(jié)果備份。在調(diào)用FB時(shí),若沒有提供實(shí)參,則功能塊使用背景數(shù)據(jù)塊中的數(shù)值。操作系統(tǒng)在L堆棧中給FB的臨時(shí)變量分配存儲(chǔ)空間。

對(duì)于功能(FC),操作系統(tǒng)在L堆棧中給FC的臨時(shí)變量分配存儲(chǔ)空間。由于沒有背景數(shù)據(jù)塊,因而FC不能使用靜態(tài)變量。輸入、輸出、I/O參數(shù)以指向?qū)崊⒌闹羔樞问酱鎯?chǔ)在操作系統(tǒng)為參數(shù)傳遞而保留的額外空間中。

對(duì)于組織塊(OB)來說,其調(diào)用是由操作系統(tǒng)管理的,用戶不能參與。因此,OB只有定義在L堆棧中的臨時(shí)變量。

局部變量可以是基本數(shù)據(jù)類型或復(fù)式數(shù)據(jù)類型,也可以是專門用于參數(shù)傳遞的所謂的“參數(shù)類型”。參數(shù)類型包括定時(shí)器、計(jì)數(shù)器、塊的地址或指針等,如表5-3所示。圖4-1等于與不等于指令參數(shù)類型大小說明定時(shí)器2Byte在功能塊中定義一個(gè)定時(shí)器形參,調(diào)用時(shí)賦予定時(shí)器實(shí)參計(jì)數(shù)器2Byte在功能塊中定義一個(gè)計(jì)數(shù)器形參,調(diào)用時(shí)賦予定時(shí)器實(shí)參FB、FC、DB、SDB2Byte在功能塊中定義一個(gè)功能塊或數(shù)據(jù)塊形參變量,調(diào)用時(shí)給功能塊類或數(shù)據(jù)塊類形參賦予實(shí)際的功能塊或數(shù)據(jù)塊編號(hào)指針6Byte在功能塊中定義一個(gè)形參,該形參說明的是內(nèi)存的地址指針。例如,調(diào)用時(shí)可給形參賦予實(shí)參:P#M50.0以訪問內(nèi)存M500.0ANY10Byte當(dāng)實(shí)參的數(shù)據(jù)未知時(shí),可以使用該類型5.2邏輯塊(FC和FB)的結(jié)構(gòu)及編程5.2.1知識(shí):邏輯塊(FC和FB)的結(jié)構(gòu)3.邏輯塊的調(diào)用過程及內(nèi)存分配

CPU提供塊堆棧(B堆棧)來存儲(chǔ)與處理被中斷塊的有關(guān)信息。其調(diào)用時(shí)的工作過程與內(nèi)存分配,如圖5-9所示。圖5-9B堆棧調(diào)用時(shí)的工作過程與內(nèi)存分配5.2邏輯塊(FC和FB)的結(jié)構(gòu)及編程5.2.1知識(shí):邏輯塊(FC和FB)的結(jié)構(gòu)

1.用戶程序使用的堆棧有以下幾類:局部數(shù)據(jù)堆棧簡(jiǎn)稱L堆棧,是CPU中單獨(dú)的存儲(chǔ)器區(qū),可用來存儲(chǔ)邏輯塊的局部變量(包括OB的起始信息)、調(diào)用功能(FC)時(shí)要傳遞的實(shí)際參數(shù)、梯形圖程序中的中間邏輯結(jié)果等??梢园次?、字節(jié)、字和雙字來存取。塊堆棧簡(jiǎn)稱B堆棧,是CPU系統(tǒng)內(nèi)存中的一部分,用來存儲(chǔ)被中斷的塊的類型、編號(hào)、優(yōu)先級(jí)和返回地址;中斷時(shí)打開的共享數(shù)據(jù)塊和背景數(shù)據(jù)塊的編號(hào);臨時(shí)變量的指針(被中斷塊的L堆棧地址)。中斷堆棧簡(jiǎn)稱I堆棧,用來存儲(chǔ)當(dāng)前累加器和地址寄存器的內(nèi)容、數(shù)據(jù)塊寄存器DB和DI的內(nèi)容、局域數(shù)據(jù)的指針、狀態(tài)字、MCR(主控繼電器)寄存器和B堆棧的指針。5.2邏輯塊(FC和FB)的結(jié)構(gòu)及編程5.2.1知識(shí):邏輯塊(FC和FB)的結(jié)構(gòu)當(dāng)調(diào)用功能塊(FB)時(shí),會(huì)有以下事件發(fā)生:①調(diào)用塊的地址和返回位置存儲(chǔ)在塊堆棧中,調(diào)用塊的臨時(shí)變量壓入L堆棧;②數(shù)據(jù)塊DB寄存器內(nèi)容與DI寄存器內(nèi)容交換;③新的數(shù)據(jù)塊地址裝入DI寄存器;④被調(diào)用塊的實(shí)參裝入DB和L堆棧上部;⑤當(dāng)功能塊FB結(jié)束時(shí),先前塊的現(xiàn)場(chǎng)信息從塊堆棧中彈出,臨時(shí)變量彈出L堆棧;⑥D(zhuǎn)B和DI寄存器內(nèi)容交換。當(dāng)調(diào)用功能塊(FB)時(shí),STEP7并不一定要求給FB形參賦予實(shí)參,除非參數(shù)是復(fù)式數(shù)據(jù)類型的I/O形參或參數(shù)類型形參。如果沒有給FB的形參賦予實(shí)參,則功能塊(FB)就調(diào)用背景數(shù)據(jù)塊內(nèi)的數(shù)值,該數(shù)值是在功能塊(FB)的變量聲明表或背景數(shù)據(jù)塊內(nèi)為形參所設(shè)置初始數(shù)值。

2.調(diào)用功能塊(FB)時(shí)的堆棧操作5.2邏輯塊(FC和FB)的結(jié)構(gòu)及編程5.2.1知識(shí):邏輯塊(FC和FB)的結(jié)構(gòu)

當(dāng)調(diào)用功能(FC)時(shí)會(huì)有以下事件發(fā)生:功能(FC)實(shí)參的指針存到調(diào)用塊的L堆棧;調(diào)用塊的地址和返回位置存儲(chǔ)在塊堆棧,調(diào)用塊的局部數(shù)據(jù)壓入L堆棧;功能(FC)存儲(chǔ)臨時(shí)變量的L堆棧區(qū)被推入L堆棧上部;當(dāng)被調(diào)用功能(FC)結(jié)束時(shí),先前塊的信息存儲(chǔ)在塊堆棧中,臨時(shí)變量彈出L堆棧。

因?yàn)楣δ埽‵C)不用背景數(shù)據(jù)塊,不能分配初始數(shù)值給功能(FC)的局部數(shù)據(jù),所以必須給功能(FC)提供實(shí)參。以功能(FC)調(diào)用為例,L堆棧操作示意如圖5-10所示。圖5-10功能(FC)調(diào)用時(shí)L堆棧操作示意

3.調(diào)用功能(FC)時(shí)的堆棧操作5.2邏輯塊(FC和FB)的結(jié)構(gòu)及編程5.2.2知識(shí):邏輯塊(FC和FB)的編程

對(duì)邏輯塊編程時(shí)必須編輯下列三個(gè)部分:01變量聲明分別定義形參、靜態(tài)變量和臨時(shí)變量(FC塊中不包括靜態(tài)變量);確定各變量的聲明類型(Decl.)、變量名(Name)和數(shù)據(jù)類型(DataType),還要為變量設(shè)置初始值(InitialValue)。如果需要還可為變量注釋(Comment)。在增量編程模式下,STEP7將自動(dòng)產(chǎn)生局部變量地址(Address)。02代碼段對(duì)將要由PLC進(jìn)行處理的塊代碼進(jìn)行編程。03塊屬性塊屬性包含了其他附加的信息,例如由系統(tǒng)輸入的時(shí)間標(biāo)志或路徑。此外,也可輸入相關(guān)詳細(xì)資料。5.2邏輯塊(FC和FB)的結(jié)構(gòu)及編程5.2.2知識(shí):邏輯塊(FC和FB)的編程

臨時(shí)變量的定義和使用如圖5-11所示。圖5-11臨時(shí)變量的定義和使用

1.臨時(shí)變量的定義和使用5.2邏輯塊(FC和FB)的結(jié)構(gòu)及編程5.2.2知識(shí):邏輯塊(FC和FB)的編程

定義形式參數(shù)的操作,如圖5-12所示。圖4-1等于與不等于指令

2.定義形式參數(shù)

3.編寫控制程序

編寫邏輯塊(FC和FB)程序時(shí),可以用以下兩種方式使用局部變量:①使用變量名,此時(shí)變量名前加前綴“#”,以區(qū)別于在符號(hào)表中定義的符號(hào)地址。增量方式下,前綴會(huì)自動(dòng)產(chǎn)生。②直接使用局部變量的地址,這種方式只對(duì)背景數(shù)據(jù)塊和L堆棧有效。在調(diào)用FB塊時(shí),要說明其背景數(shù)據(jù)塊。背景數(shù)據(jù)塊應(yīng)在調(diào)用前生成,其順序格式與變量聲明表必須保持一致。5.3邏輯塊編程實(shí)例5.3.1案例:編輯并調(diào)用無參功能(FC)——攪拌控制系統(tǒng)

所謂無參功能(FC),是指在編輯功能(FC)時(shí),在局部變量聲明表中不進(jìn)行形式參數(shù)的定義,在功能(FC)中直接使用絕對(duì)地址完成控制程序的編程。這種方式一般應(yīng)用于分部式結(jié)構(gòu)的程序編寫,每個(gè)功能(FC)實(shí)現(xiàn)整個(gè)控制任務(wù)的一部分,不重復(fù)調(diào)用。

如圖5-13所示為一攪拌控制系統(tǒng),由3個(gè)開關(guān)量液位傳感器,分別檢測(cè)液位的高、中和低?,F(xiàn)要求對(duì)A、B兩種液體原料按等比例混合,請(qǐng)編寫控制程序。

控制要求:按起動(dòng)按鈕后系統(tǒng)自動(dòng)運(yùn)行,首先打開進(jìn)料泵1,開始加入液料A→中液位傳感器動(dòng)作后,則關(guān)閉進(jìn)料泵1,打開進(jìn)料泵2,開始加入液料B→高液位傳感器動(dòng)作后,關(guān)閉進(jìn)料泵2,起動(dòng)攪拌器→攪拌10s后,關(guān)閉攪拌器,開啟放料泵→當(dāng)?shù)鸵何粋鞲衅鲃?dòng)作后,延時(shí)5s后關(guān)閉放料泵。按停止按鈕,系統(tǒng)應(yīng)立即停止運(yùn)行。設(shè)定I/O分配表如表5-4所示。5.3邏輯塊編程實(shí)例5.3.1案例:編輯并調(diào)用無參功能(FC)——攪拌控制系統(tǒng)圖5-13攪拌控制系統(tǒng)示意圖表5-4PLC控制攪拌控制系統(tǒng)I/O分配表輸入輸出輸入設(shè)備輸入編號(hào)輸出設(shè)備輸出編號(hào)啟動(dòng)按鈕SB1I0.0進(jìn)料泵1Q4.0停止按鈕SB2I0.1進(jìn)料泵2Q4.1高液位檢測(cè)I0.2攪拌器Q4.2中液位檢測(cè)I0.3放料泵Q4.3低液位檢測(cè)I0.45.3邏輯塊編程實(shí)例5.3.1案例:編輯并調(diào)用無參功能(FC)——攪拌控制系統(tǒng)1.創(chuàng)建新項(xiàng)目并完成硬件配置

創(chuàng)建新項(xiàng)目,并命名為“攪拌控制系統(tǒng)”,項(xiàng)目包含組織塊OB1和OB100。在“攪拌控制系統(tǒng)”項(xiàng)目?jī)?nèi)點(diǎn)擊【添加新設(shè)備】→【控制器】,打開“SIMATICS7-1500”文件夾,打開硬件配置窗口,并完成硬件配置,如圖5-14所示。本例采用緊湊型CPU1511C-1PN,完成硬件配置后的界面如圖5-15所示。圖5-14創(chuàng)建新項(xiàng)目并完成硬件配置圖5-15完成硬件配置后的界面5.3邏輯塊編程實(shí)例5.3.1案例:編輯并調(diào)用無參功能(FC)——攪拌控制系統(tǒng)2.編輯變量表

根據(jù)I/O分配表,設(shè)定編輯變量表,如圖5-16所示。圖5-16編輯變量表5.3邏輯塊編程實(shí)例5.3.1案例:編輯并調(diào)用無參功能(FC)——攪拌控制系統(tǒng)3.規(guī)劃程序結(jié)構(gòu)

考慮整個(gè)控制過程可分為四個(gè)獨(dú)立的控制過程:液料A控制程序、液料B控制程序、攪拌器控制程序、出料控制程序。針對(duì)四個(gè)控制過程,分別用FC1~FC4實(shí)現(xiàn)相應(yīng)的控制功能,規(guī)劃程序結(jié)構(gòu),如圖5-17所示。圖5-17規(guī)劃程序結(jié)構(gòu)5.3邏輯塊編程實(shí)例5.3.1案例:編輯并調(diào)用無參功能(FC)——攪拌控制系統(tǒng)4.編輯功能(FC)

在“攪拌控制系統(tǒng)”項(xiàng)目樹內(nèi)選擇“程序塊”文件夾,然后反復(fù)執(zhí)行菜單命令【添加新塊】→【函數(shù)】,分別創(chuàng)建4個(gè)功能(FC):FC1、FC2、FC3和FC4并分別命名為液料A控制程序、液料B控制程序、攪拌器控制程序、出料控制程序。編寫FC1~FC4控制程序如圖5-18~圖5-21所示。圖5-18FC1液料A控制程序圖5-19FC2液料B控制程序5.3邏輯塊編程實(shí)例5.3.1案例:編輯并調(diào)用無參功能(FC)——攪拌控制系統(tǒng)圖5-20FC3攪拌器控制程序圖5-21FC4出料控制程序5.3邏輯塊編程實(shí)例5.3.1案例:編輯并調(diào)用無參功能(FC)——攪拌控制系統(tǒng)5.編寫組織塊控制程序

編寫OB100的控制程序,初始化所有輸出變量,如圖5-22所示。圖5-22OB100的控制程序5.3邏輯塊編程實(shí)例5.3.1案例:編輯并調(diào)用無參功能(FC)——攪拌控制系統(tǒng)圖5-23在OB1中調(diào)用無參功能(FC)

在OB1中設(shè)置初始標(biāo)志,并啟動(dòng)進(jìn)料泵,調(diào)用無參功能(FC),如圖5-23所示。5.3邏輯塊編程實(shí)例5.3.2案例:編輯并調(diào)用有參功能(FC)——多級(jí)分頻器

所謂有參功能(FC),是指編輯功能(FC)時(shí),在局部變量聲明表內(nèi)定義了形式參數(shù),在功能(FC)中使用了虛擬的符號(hào)地址完成控制程序的編程,以便在其他塊中能重復(fù)調(diào)用有參功能(FC)。這種方式一般應(yīng)用于結(jié)構(gòu)化程序編寫。

多級(jí)分頻器的時(shí)序關(guān)系如圖5-24所示,設(shè)定I/O分配表如表5-5所示。

控制要求:其中I0.0為多級(jí)分頻器的脈沖輸入端;Q4.0~Q4.3分別為2、4、8、16分頻的脈沖輸出端;Q4.4~Q4.7分別為2、4、8、16分頻指示燈驅(qū)動(dòng)輸出端。圖5-24多級(jí)分頻器控制表5-5PLC控制多級(jí)分頻器系統(tǒng)I/O分配表輸入輸出輸入設(shè)備輸入編號(hào)輸出設(shè)備輸出編號(hào)脈沖信號(hào)輸入端I0.02分頻脈沖信號(hào)輸出端Q4.04分頻脈沖信號(hào)輸出端Q4.18分頻脈沖信號(hào)輸出端Q4.216分頻脈沖信號(hào)輸出端Q4.32分頻脈沖信號(hào)指示燈Q4.44分頻脈沖信號(hào)指示燈Q4.58分頻脈沖信號(hào)指示燈Q4.616分頻脈沖信號(hào)指示燈Q4.75.3邏輯塊編程實(shí)例5.3.2案例:編輯并調(diào)用有參功能(FC)——多級(jí)分頻器

1.創(chuàng)建的新項(xiàng)目并完成硬件配置圖5-25編輯變量表

使用菜單【項(xiàng)目】→【新建】創(chuàng)建多級(jí)分頻器的新項(xiàng)目,并命名為“多級(jí)分頻器”,點(diǎn)擊【添加新設(shè)備】→【控制器】打開“SIMATICS7-1500”文件夾,雙擊硬件配置圖標(biāo)打開硬件配置窗口,并完成硬件配置。

2.編寫變量表

根據(jù)I/O分配表,設(shè)定編輯變量表,如圖5-25所示。5.3邏輯塊編程實(shí)例5.3.2案例:編輯并調(diào)用有參功能(FC)——多級(jí)分頻器

考慮4分頻信號(hào)實(shí)質(zhì)就是對(duì)2分頻信號(hào)再次進(jìn)行二分頻,而8分頻信號(hào)實(shí)質(zhì)就是對(duì)4分頻信號(hào)再次進(jìn)行二分頻,同理16分頻信號(hào)實(shí)質(zhì)就是對(duì)8分頻信號(hào)再次進(jìn)行二分頻。因此只需在功能FC1中編寫二分頻器控制程序,然后在OB1中通過調(diào)用FC1實(shí)現(xiàn)多級(jí)分頻器的功能。規(guī)劃程序結(jié)構(gòu)如圖5-26所示。圖5-26規(guī)劃程序結(jié)構(gòu)

3.規(guī)劃程序結(jié)構(gòu)5.3邏輯塊編程實(shí)例5.3.2案例:編輯并調(diào)用有參功能(FC)——多級(jí)分頻器

在項(xiàng)目樹中,選擇“程序塊”文件夾,然后執(zhí)行菜單命令【添加新塊】→【函數(shù)】,在塊文件夾內(nèi)創(chuàng)建一個(gè)功能,并命名為“FC1”。編輯FC1的變量聲明表如圖5-27所示。圖5-27FC1的變量聲明表

4.創(chuàng)建有參FC1

二分頻器的時(shí)序如圖5-28所示。分析二分頻器的時(shí)序圖可以看到,輸入信號(hào)每出現(xiàn)一個(gè)上升沿,輸出便改變一次狀態(tài),據(jù)此可采用上跳沿檢測(cè)指令實(shí)現(xiàn)。圖5-28二分頻器的時(shí)序圖5.3邏輯塊編程實(shí)例5.3.2案例:編輯并調(diào)用有參功能(FC)——多級(jí)分頻器

如果輸入信號(hào)S_IN出現(xiàn)上升沿,則對(duì)S_OUT取反,然后將S_OUT的信號(hào)狀態(tài)送LED顯示;否則,程序直接跳轉(zhuǎn)到LP1,將S_OUT的信號(hào)狀態(tài)送LED顯示。編寫FC1的控制程序如圖5-29所示。圖5-29編寫FC1的控制程序5.3邏輯塊編程實(shí)例5.3.2案例:編輯并調(diào)用有參功能(FC)——多級(jí)分頻器

此時(shí)只需在OB1中調(diào)用有參功能FC1,調(diào)整功能輸入輸出,即可實(shí)現(xiàn)控制要求,如圖5-30所示。圖5-30在OB1中調(diào)用有參功能(FC)

5.編寫組織塊程序5.3邏輯塊編程實(shí)例5.3.3案例:編輯并調(diào)用無靜態(tài)參數(shù)的功能塊(FB)--水箱水位控制系統(tǒng)

功能塊(FB)在程序的體系結(jié)構(gòu)中位于組織塊之下。它包含程序的一部分,這部分程序在OB1中可以多次調(diào)用。功能塊的所有形參和靜態(tài)數(shù)據(jù)都存儲(chǔ)在一個(gè)單獨(dú)的、被指定給該功能塊的數(shù)據(jù)塊(DB)中,該數(shù)據(jù)塊被稱為背景數(shù)據(jù)塊。當(dāng)調(diào)用FB時(shí),該背景數(shù)據(jù)塊會(huì)自動(dòng)打開,實(shí)際參數(shù)的值被存儲(chǔ)在背景數(shù)據(jù)塊中;當(dāng)塊退出時(shí),背景數(shù)據(jù)塊中的數(shù)據(jù)仍然保持。圖5-31水箱水位控制系統(tǒng)

水箱水位控制系統(tǒng)如圖5-31所示。系統(tǒng)有3個(gè)貯水箱,每個(gè)水箱有2個(gè)液位傳感器,UH1,UH2,UH3為高液位傳感器,“1”有效;UL1,UL2,UL3為低液位傳感器,“0”有效。Y1、Y3、Y5分別為3個(gè)貯水水箱進(jìn)水電磁閥;Y2、Y4、Y6分別為3個(gè)貯水水箱放水電磁閥。SB1、SB3、SB5分別為3個(gè)貯水水箱放水電磁閥手動(dòng)開啟按鈕;SB2、SB4、SB6分別為3個(gè)貯水箱放水電磁閥手動(dòng)關(guān)閉按鈕。設(shè)定I/O分配表如表5-6所示。

控制要求:SB1、SB3、SB5在PLC外部操作設(shè)定,通過人為的方式,按隨機(jī)的順序?qū)⑺浞趴铡V灰獧z測(cè)到水箱“空”的信號(hào),系統(tǒng)就自動(dòng)地向水箱注水,直到檢測(cè)到水箱“滿”信號(hào)為止。水箱注水的順序要與水箱放空的順序相同,每次只能對(duì)一個(gè)水箱進(jìn)行注水操作。5.3邏輯塊編程實(shí)例5.3.3案例:編輯并調(diào)用無靜態(tài)參數(shù)的功能塊(FB)--水箱水位控制系統(tǒng)表5-5PLC控制水箱水位控制系統(tǒng)I/O分配表輸入輸出輸入設(shè)備輸入編號(hào)輸出設(shè)備輸出編號(hào)水箱1低液位傳感器I0.0水箱1進(jìn)水電磁閥Q4.0水箱1高液位傳感器I0.1水箱1放水電磁閥Q4.1水箱2低液位傳感器I0.2水箱2進(jìn)水電磁閥Q4.2水箱2高液位傳感器I0.3水箱2放水電磁閥Q4.3水箱3低液位傳感器I0.4水箱3進(jìn)水電磁閥Q4.4水箱4高液位傳感器I0.5水箱3放水電磁閥Q4.5水箱1放水電磁閥手動(dòng)開啟按鈕SB1I1.0水箱1放水電磁閥手動(dòng)關(guān)閉按鈕SB2I1.1水箱2放水電磁閥手動(dòng)開啟按鈕SB3I1.2水箱2放水電磁閥手動(dòng)關(guān)閉按鈕SB4I1.3水箱3放水電磁閥手動(dòng)開啟按鈕SB5I1.4水箱3放水電磁閥手動(dòng)關(guān)閉按鈕SB6I1.55.3邏輯塊編程實(shí)例5.3.3案例:編輯并調(diào)用無靜態(tài)參數(shù)的功能塊(FB)--水箱水位控制系統(tǒng)1.創(chuàng)建新項(xiàng)目并完成硬件配置

使用菜單【項(xiàng)目】→【新建】創(chuàng)建水箱水位控制系統(tǒng)的新項(xiàng)目,并命名為“水箱水位控制系統(tǒng)”。項(xiàng)目包含組織塊OB1和OB100。在“水箱水位控制系統(tǒng)”項(xiàng)目?jī)?nèi)點(diǎn)擊【添加新設(shè)備】→【控制器】打開“SIMATICS7-1500”文件夾,打開硬件配置窗口,并完成硬件配置。圖5-32編輯變量表2.編寫變量表

根據(jù)I/O分配表,編輯變量表,如圖5-32所示。5.3邏輯塊編程實(shí)例5.3.3案例:編輯并調(diào)用無靜態(tài)參數(shù)的功能塊(FB)--水箱水位控制系統(tǒng)3.規(guī)劃程序結(jié)構(gòu)

OB1為主循環(huán)組織塊、OB100初始化程序、FB1為水箱水位控制程序、DB1為A水箱數(shù)據(jù)塊、DB2為B水箱數(shù)據(jù)塊、DB3為C水箱數(shù)據(jù)塊。規(guī)劃程序結(jié)構(gòu)如圖5-33所示。圖5-33規(guī)劃程序結(jié)構(gòu)4.編輯功能(FB1)

選擇“程序塊”文件夾,然后執(zhí)行菜單命令【添加新塊】→【函數(shù)】,創(chuàng)建功能塊FB1并命名為“水箱控制”。定義局部變量聲明表,如圖5-34所示。圖5-34定義局部變量聲明表5.3邏輯塊編程實(shí)例5.3.3案例:編輯并調(diào)用無靜態(tài)參數(shù)的功能塊(FB)--水箱水位控制系統(tǒng)

編寫FB1的控制程序如圖5-35所示。圖5-35FB1的控制程序5.3邏輯塊編程實(shí)例5.3.3案例:編輯并調(diào)用無靜態(tài)參數(shù)的功能塊(FB)--水箱水位控制系統(tǒng)5.建立背景數(shù)據(jù)塊DB1、DB2、DB3

分別建立背景數(shù)據(jù)塊DB1、DB2、DB3。如圖5-36所示,為背景數(shù)據(jù)塊DB1的設(shè)置情況,DB2、DB3可根據(jù)DB1自動(dòng)生成。圖5-36背景數(shù)據(jù)塊DB1的設(shè)置情況5.3邏輯塊編程實(shí)例5.3.3案例:編輯并調(diào)用無靜態(tài)參數(shù)的功能塊(FB)--水箱水位控制系統(tǒng)6.編輯組織塊程序

編輯啟動(dòng)組織塊OB100,對(duì)所有電磁閥進(jìn)行復(fù)位,如圖5-37所示。圖5-37編輯啟動(dòng)組織塊OB1005.3邏輯塊編程實(shí)例5.3.3案例:編輯并調(diào)用無靜態(tài)參數(shù)的功能塊(FB)--水箱水位控制系統(tǒng)

在OB1中調(diào)用無靜態(tài)參數(shù)的功能塊(FB),如圖5-38所示。OB1中程序如圖5-39所示。5.3邏輯塊編程實(shí)例5.3.3案例:編輯并調(diào)用無靜態(tài)參數(shù)的功能塊(FB)--水箱水位控制系統(tǒng)圖5-39OB1中程序5.3邏輯塊編程實(shí)例5.3.4案例:編輯并調(diào)用有靜態(tài)參數(shù)的功能塊(FB)--交通信號(hào)燈控制系統(tǒng)

在編輯功能塊(FB)時(shí),如果程序中需要特定數(shù)據(jù)的參數(shù),可以考慮將該特定數(shù)據(jù)定義為靜態(tài)參數(shù),并在FB的聲明表內(nèi)Static處聲明。

為雙干道交通信號(hào)燈設(shè)置示意圖,如圖5-40所示。設(shè)定I/O分配表如表5-6所示。信號(hào)燈的動(dòng)作受開關(guān)總體控制,按一下起動(dòng)按鈕,信號(hào)燈系統(tǒng)開始工作,并周而復(fù)始地循環(huán)動(dòng)作;按一下停止按鈕,所有信號(hào)燈都熄滅。信號(hào)燈控制的具體要求見下表,試編寫信號(hào)燈控制程序。圖5-40雙干道交通信號(hào)燈設(shè)置示意圖輸入輸出輸入設(shè)備輸入編號(hào)輸出設(shè)備輸出編號(hào)啟動(dòng)按鈕I0.0東西向紅色信號(hào)燈Q4.0停止按鈕I0.1東西向綠色信號(hào)燈Q4.1東西向黃色信號(hào)燈Q4.2南北向紅色信號(hào)燈Q4.3南北向綠色信號(hào)燈Q4.4南北向黃色信號(hào)燈Q4.5表5-6PLC控制雙干道交通信號(hào)燈I/O分配表5.3邏輯塊編程實(shí)例5.3.4案例:編輯并調(diào)用有靜態(tài)參數(shù)的功能塊(FB)--交通信號(hào)燈控制系統(tǒng)

控制功能:如表5-7所示。表5-7雙干道交通信號(hào)燈控制功能

根據(jù)十字路口交通信號(hào)燈的控制要求,可畫出信號(hào)燈的控制時(shí)序圖,如圖5-41所示。圖5-41信號(hào)燈的控制時(shí)序圖5.3邏輯塊編程實(shí)例5.3.4案例:編輯并調(diào)用有靜態(tài)參數(shù)的功能塊(FB)--交通信號(hào)燈控制系統(tǒng)1.創(chuàng)建新項(xiàng)目并完成硬件配置

使用菜單【項(xiàng)目】→【新建】創(chuàng)建交通信號(hào)燈控制系統(tǒng)的新項(xiàng)目,并命名為“交通信號(hào)燈控制系統(tǒng)”。項(xiàng)目包含組織塊OB1和OB100。在“交通信號(hào)燈控制系統(tǒng)”項(xiàng)目?jī)?nèi)點(diǎn)擊【添加新設(shè)備】→【控制器】打開“SIMATICS7-1500”文件夾,打開硬件配置窗口,并完成硬件配置。圖5-42編寫變量表2.編寫變量表

根據(jù)I/O分配表,編輯變量表,如圖5-42所示。5.3邏輯塊編程實(shí)例5.3.4案例:編輯并調(diào)用有靜態(tài)參數(shù)的功能塊(FB)--交通信號(hào)燈控制系統(tǒng)3.規(guī)劃程序結(jié)構(gòu)

OB1為主循環(huán)組織塊、OB100初始化程序、FB1為單向紅綠燈控制程序、DB1為東西數(shù)據(jù)塊、DB2為南北數(shù)據(jù)塊。規(guī)劃程序結(jié)構(gòu),如圖5-43所示。圖5-43規(guī)劃程序結(jié)構(gòu)5.3邏輯塊編程實(shí)例5.3.4案例:編輯并調(diào)用有靜態(tài)參數(shù)的功能塊(FB)--交通信號(hào)燈控制系統(tǒng)4.編輯功能塊(FB)

定義局部變量聲明表,如圖5-44所示。圖5-44定義局部變量聲明表5.3邏輯塊編程實(shí)例5.3.4案例:編輯并調(diào)用有靜態(tài)參數(shù)的功能塊(FB)--交通信號(hào)燈控制系統(tǒng)

編寫功能塊(FB)程序,如圖5-45所示。圖5-45編寫功能塊FB1程序5.3邏輯塊編程實(shí)例5.3.4案例:編輯并調(diào)用有靜態(tài)參數(shù)的功能塊(FB)--交通信號(hào)燈控制系統(tǒng)5.建立背景數(shù)據(jù)塊(DI)

由于在創(chuàng)建DB1和DB2之前,已經(jīng)完成了FB1的變量聲明,建立了相應(yīng)的數(shù)據(jù)結(jié)構(gòu),所以在創(chuàng)建與FB1相關(guān)聯(lián)的DB1和DB2時(shí),TIA博途自動(dòng)完成了數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)。建立背景數(shù)據(jù)塊,如圖5-46所示。圖5-46建立背景數(shù)據(jù)塊5.3邏輯塊編程實(shí)例5.3.4案例:編輯并調(diào)用有靜態(tài)參數(shù)的功能塊(FB)--交通信號(hào)燈控制系統(tǒng)6.編輯組織塊程序

編輯啟動(dòng)組織塊OB100,啟動(dòng)時(shí)關(guān)閉所有信號(hào)燈及啟動(dòng)標(biāo)志,如圖5-47所示。圖5-47編輯啟動(dòng)組織塊OB1005.3邏輯塊編程實(shí)例5.3.4案例:編輯并調(diào)用有靜態(tài)參數(shù)的功能塊(FB)--交通信號(hào)燈控制系統(tǒng)

在OB1中調(diào)用有靜態(tài)參數(shù)的功能塊(FB),OB1程序如圖5-48所示。5.3邏輯塊編程實(shí)例5.3.4案例:編輯并調(diào)用有靜態(tài)參數(shù)的功能塊(FB)--交通信號(hào)燈控制系統(tǒng)圖5-48OB1程序S7-1500PLC技術(shù)及應(yīng)用高等職業(yè)系列教材第六章

教學(xué)導(dǎo)航西門子PLC的GRAPH編程簡(jiǎn)單流程的程序設(shè)計(jì)循環(huán)程序設(shè)計(jì)跳轉(zhuǎn)程序設(shè)計(jì)選擇分支程序設(shè)計(jì)并行分支程序設(shè)計(jì)6.16.26.36.56.66.4西門子PLC的GRAPH編程

西門子PLC的S7-GRAPH編程語言在IEC標(biāo)準(zhǔn)中又被稱作“順序功能圖(SequentialFunctionChart,SFC)”,它一般用于編制復(fù)雜的順控程序。

在PLC程序中,相當(dāng)一部分程序是控制一臺(tái)設(shè)備按照某個(gè)工藝流程一步步地完成相應(yīng)的動(dòng)作步驟。對(duì)于這樣的順序控制程序,程序設(shè)計(jì)者通常需要先畫出整個(gè)工藝流程圖,再通過流程圖來編輯設(shè)計(jì)梯形圖程序。若將該工藝流程圖直接作為可執(zhí)行的程序,那么程序設(shè)計(jì)的工作將變得方便高效。最終在20世紀(jì)80年代,“順序功能圖”這種程序設(shè)計(jì)方法被提出來,并發(fā)展成為了IEC標(biāo)準(zhǔn),收錄于IEC61131中。

TIA博途軟件相較以往版本的編程軟件,使用GRAPH語言編輯和調(diào)試程序已變得更為方便和靈活。目前,S7-300/400/1500系列PLC都可使用GRAPH語言進(jìn)行編程,但S7-1200系列PLC還不支持GRAPH語言。1.GRAPH函數(shù)塊建立

要使用GRAPH語言進(jìn)行程序編輯首先需要建立一個(gè)FB塊。雙擊項(xiàng)目樹導(dǎo)航程序塊中的“添加新塊”,如圖6-1所示。圖6-1添加GRAPH函數(shù)塊在建立新FB塊的對(duì)話框中,將編程語言設(shè)置為GRAPH,如圖6-2所示。圖6-2建立使用GRAPH語言的FB塊

雙擊打開新建的FB塊,進(jìn)入GRAPH語言的編輯界面,如圖6-3所示。在該界面中,博途軟件將GRAPH的工作區(qū)劃分為兩個(gè)區(qū)域,左側(cè)為導(dǎo)航欄,右側(cè)為編輯區(qū)域。通過在導(dǎo)航欄內(nèi)點(diǎn)選各個(gè)部分,或單擊工具欄上的按鈕,可以在右側(cè)的編輯區(qū)域選擇開啟前固指令、順控器、后固指令、報(bào)警四部分的編輯。當(dāng)FB塊被調(diào)用的時(shí)候其指令執(zhí)行的順序?yàn)椋合葓?zhí)行前固指令,再執(zhí)行順控器中的程序,最后執(zhí)行后固指令。當(dāng)后固指令運(yùn)行完成后,整個(gè)FB塊運(yùn)行完畢。報(bào)警部分是設(shè)置塊內(nèi)一些監(jiān)控與顯示類別等信息,不是程序的編輯。圖6-3GRAPH語言的編輯界面

在博途GRAPH編輯器中,指令收藏夾中的指令可使用單擊或拖拽的方式對(duì)工作區(qū)進(jìn)行編輯,其他指令則需使用雙擊或拖拽的方式對(duì)工作區(qū)進(jìn)行編輯。順控器的編輯界面如圖6-4所示。2.順控器的編輯圖6-4順控器的編輯界面

使用單擊或雙擊方式,可以在工作區(qū)中選擇準(zhǔn)備插入的位置,然后單擊指令收藏欄,如圖6-5所示,希望插入的目標(biāo)圖標(biāo),即可以在指定位置插入期待的目標(biāo)。圖6-5指令收藏欄

如果選擇拖拽方式,可使用鼠標(biāo)單擊編輯器工作區(qū)上工具條的“轉(zhuǎn)換條件”圖標(biāo)并讓其凹下去,同時(shí)將“轉(zhuǎn)換條件”拖拽至需要放置到位置上,如圖6-6所示。圖6-6轉(zhuǎn)換條件的拖拽

當(dāng)插入“步”的動(dòng)作框后,單擊該步右上角的

,可打開該步的動(dòng)作框并進(jìn)行控制動(dòng)作編輯,每一個(gè)動(dòng)作框包含指令和地址。比如在動(dòng)作框左邊寫上指令“N”,在右邊寫上地址“Q0.0”,表示當(dāng)該“步”為活動(dòng)步時(shí)Q0.0輸出“1”,當(dāng)該“步”為Q0.0輸出“0”,如圖6-7所示。圖6-7編輯“步”的動(dòng)作表6-1動(dòng)作框里常用的指令表6-2動(dòng)作框里常用的事件類型動(dòng)作框里常用的指令如表6-1所示、事件類型如表6-2所示。指令(符號(hào))指令基本動(dòng)作描述N當(dāng)該“步”為活動(dòng)步時(shí),地址輸出“1”。當(dāng)該“步”為不活動(dòng)步時(shí)地址輸出“0”。S當(dāng)該“步”為活動(dòng)步時(shí)地址址輸出“1”并保持(即置位)。R當(dāng)該“步”為活動(dòng)步時(shí)地地址輸出“0”并保持(即復(fù)位)。D當(dāng)該“步”為活動(dòng)步時(shí),開始計(jì)時(shí)(時(shí)間由該框T#xx指定),當(dāng)時(shí)間到地址輸出“1”。當(dāng)該“步”為不活動(dòng)步時(shí)地地址輸出“0”L當(dāng)該“步”為活動(dòng)步時(shí),地址輸出“1”并開始計(jì)時(shí)(時(shí)間由該框T#xx指定),當(dāng)時(shí)間到地址出“0”。當(dāng)該“步”為不活動(dòng)步時(shí)地址輸出“0”。CALL當(dāng)該“步”為活動(dòng)步時(shí),調(diào)用指定的程序塊。事件信號(hào)檢測(cè)描述S1上升沿步已激活(信號(hào)狀態(tài)為“1”)S0下降沿步已取消激活(信號(hào)狀態(tài)為“0”)V1上升沿滿足監(jiān)控條件,即發(fā)生錯(cuò)誤(信號(hào)狀態(tài)為“1”)V0下降沿不再滿足監(jiān)控條件,即錯(cuò)誤已消除(信號(hào)狀態(tài)為“0”)L0上升沿滿足互鎖條件,即錯(cuò)誤已消除(信號(hào)狀態(tài)為“1”)L1下降沿不滿足互鎖條件,即發(fā)生錯(cuò)誤(信號(hào)狀態(tài)為“0”)A1上升沿報(bào)警已確認(rèn)R1上升沿到達(dá)的注冊(cè)

當(dāng)在完成步的編輯后,可雙擊該步打開單步視圖進(jìn)入單步視圖。在單步視圖里該步內(nèi)部可以編輯的程序分為:互鎖(Interlock)、監(jiān)控(Supervision)、動(dòng)作(Actions)和轉(zhuǎn)換(Trans)。這里主要介紹一下互鎖:當(dāng)該步處在激活狀態(tài),指令Q0.0設(shè)置了互鎖信號(hào)I10.0,只有互鎖信號(hào)I0.0被接通時(shí),才可以正常執(zhí)行該的指令Q0.0,否則該指令不被執(zhí)行,如圖6-8所示。圖6-8單步編輯

在編寫轉(zhuǎn)移條件時(shí),轉(zhuǎn)移條件程序的指令主要有常開觸點(diǎn)、常閉觸點(diǎn)、比較指令、監(jiān)視時(shí)間T或監(jiān)視時(shí)間U,如圖6-9所示。圖6-9轉(zhuǎn)換條件

插入轉(zhuǎn)移“指令”時(shí),首先選擇插入模式“單擊”或“拖拽”,然后單擊所需要的圖標(biāo),即可以在指定地方插入轉(zhuǎn)移指令。然后在每個(gè)指令的地方寫上地址即可。比如選擇“單擊”模式,選中“步1”(S1)的轉(zhuǎn)移條件T1,再單擊工具條上的“常開觸點(diǎn)”后就可以把常開觸點(diǎn)指令放到轉(zhuǎn)移條件T1里然后寫上指令的地址“M0.0”,如圖6-10所示。圖6-10條件轉(zhuǎn)移指令

同理也可將“步3”(S3)的監(jiān)控激活時(shí)間作為指令寫入轉(zhuǎn)換條件T3,如圖6-11所示。圖6-11以步的激活時(shí)間作為條件轉(zhuǎn)移指令

順控器中“步”的最后一般是跳轉(zhuǎn)或結(jié)束指令,在順控器工具條中分別用

表示。在插入跳轉(zhuǎn)或結(jié)束“指令”時(shí),首先選擇插入模式“單擊”或“拖拽”,然后單擊

圖標(biāo),即可以在指定地方插入跳轉(zhuǎn)或結(jié)束指令。如果是跳轉(zhuǎn)指令還需要寫上跳轉(zhuǎn)到那一“步”的地址代碼,如圖6-12所示。圖6-12跳轉(zhuǎn)指令

當(dāng)GRAPH函數(shù)塊編輯完畢后,可從項(xiàng)目導(dǎo)航的“程序塊”中將該FB塊拖拽至Main(OB1)的程序段中進(jìn)行調(diào)用,如圖6-13所示。3.GRAPH函數(shù)塊的調(diào)用圖6-13函數(shù)塊的調(diào)用圖6-14生成背景數(shù)據(jù)塊

當(dāng)GRAPH函數(shù)塊被調(diào)用時(shí),博途軟件會(huì)自動(dòng)生成背景數(shù)據(jù)塊,如圖6-14、6-15所示。由于GRAPH塊被調(diào)用后其接口參數(shù)的設(shè)置及編譯設(shè)置對(duì)后續(xù)的調(diào)試執(zhí)行有著重大的影響,用戶可以在“選項(xiàng)”>“設(shè)置”>“PLC編程”>“GRAPH”(Options>Settings>PLCprogramming>GRAPH)中選擇不同接口參數(shù)集,也可以手動(dòng)在所有參數(shù)集中刪除或插入單個(gè)參數(shù)。選擇完參數(shù)集后可對(duì)接口參數(shù)進(jìn)行修改。圖6-15GRAPH函數(shù)被調(diào)用下面列出一些GRAPH函數(shù)塊輸入輸出接口常用的參數(shù),如表-3所示。參數(shù)數(shù)據(jù)類型描述OFF_SQBOOL關(guān)閉順控程序,即激活所有步INIT_SQBOOL激活初始步,復(fù)位順控程序ACK_EFBOOL確認(rèn)故障,強(qiáng)制切換到下一步S_PREVBOOL自動(dòng)模式:向上翻頁瀏覽當(dāng)前活動(dòng)步,顯示“S_NO”參數(shù)中的步號(hào)手動(dòng)模式:顯示“S_NO”中的上一步(較小編號(hào))S_NEXTBOOL自動(dòng)模式:向下翻頁瀏覽當(dāng)前活動(dòng)步,顯示“S_NO”參數(shù)中的步號(hào)手動(dòng)模式:顯示S_NO中的下一步(較大編號(hào))SW_AUTOBOOL操作模式切換:自動(dòng)模式SW_TAPBOOL操作模式切換:半自動(dòng)模式SW_TOPBOOL操作模式切換:自動(dòng)或半自動(dòng)模式SW_MANBOOL操作模式切換:手動(dòng)模式,不啟動(dòng)單獨(dú)的順序S_SELINT如果在手動(dòng)模式下選擇輸出參數(shù)“S_NO”的步號(hào),則需使用“S_ON”/“S_OFF”進(jìn)行啟用/禁用S_ONBOOL手動(dòng)模式:激活所顯示的步S_OFFBOOL手動(dòng)模式:取消激活所顯示的步T_PUSHBOOL如果滿足條件且“T_PUSH”(邊沿),則轉(zhuǎn)換條件切換到下一步類型:請(qǐng)求S_NOINT顯示步號(hào)S_MOREBOOL激活其他步S_ACTIVEBOOL所顯示的步處于活動(dòng)狀態(tài)ERR_FLTBOOL常規(guī)故障AUTO_ONBOOL顯示自動(dòng)模式TAP_ONBOOL顯示半自動(dòng)模式TOP_ONBOOL顯示半自動(dòng)模式MAN_ONBOOL顯示手動(dòng)模式

當(dāng)GRAPH函數(shù)塊在OB1被調(diào)用后,可按菜單欄

將程序下載至PLC中。雙擊進(jìn)入函數(shù)塊并按下

,可對(duì)順控器的各步狀態(tài)進(jìn)行監(jiān)控,如圖6-16所示。4.GRAPH函數(shù)塊的下載與監(jiān)控圖6-16監(jiān)控GRAPH函數(shù)塊

單流程的程序是由一系列相繼激活的步組成,每一步的后面僅有一個(gè)轉(zhuǎn)換,每一個(gè)轉(zhuǎn)換后面只有一步,整個(gè)流程圖中沒有分支與合并的地方,如圖6-17所示。其中對(duì)一些編輯和制圖方法與符號(hào)進(jìn)行標(biāo)準(zhǔn)化,具體如圖:圖6-17單流程順控圖

在圖6-17中的每一個(gè)“Step”稱為一“步”。一般將順序控制的流程分為若干個(gè)階段,每個(gè)階段被稱為“步”。前一“步”完成之后(滿足了運(yùn)行下一個(gè)的條件),運(yùn)行下一“步”,依次運(yùn)行下來完成整個(gè)控制流程。最開始運(yùn)行的“步”稱為起始步,用雙方框表示,其余的步用方框表示。步執(zhí)行的順序永遠(yuǎn)從上至下排列,同時(shí)之間用有向?qū)嵕€段連接。

每步都有一個(gè)步編號(hào)和步名稱,其中步編號(hào)由字母“S”和數(shù)字組成,步編號(hào)可以由用戶逐一修改,也可以批量修改,但在順控圖中每一步的編號(hào)都是唯一的,不能與其他步重復(fù),在每一步的右上角有都一個(gè)文檔模樣的圖標(biāo),用于在順控器視圖下顯示和編輯該步內(nèi)的指令。1.步

在圖6-17中,完成上一步之后,且滿足運(yùn)行下一步的條件時(shí)運(yùn)行下一步,這種過程稱為步與步之間的轉(zhuǎn)換。在表示步與步之間關(guān)系的有向?qū)嵕€段上,畫上一個(gè)橫杠,表示轉(zhuǎn)換。橫杠的右側(cè)注明這次轉(zhuǎn)換的編號(hào)和名稱。轉(zhuǎn)換編號(hào)由字母“T”和數(shù)字組成,轉(zhuǎn)換編號(hào)數(shù)字可以由用戶逐一修改或批量修改,但在順控圖中每一個(gè)轉(zhuǎn)換編號(hào)是唯一的,不能與其他轉(zhuǎn)換重復(fù)。

在橫杠的右側(cè)由點(diǎn)狀線延伸去連接一個(gè)梯形圖的圖標(biāo),單擊這個(gè)圖標(biāo)可以使用梯形圖或者邏輯結(jié)構(gòu)圖編輯本次轉(zhuǎn)換的條件。2.轉(zhuǎn)換條件

任意程序的最后可以連接一個(gè)符號(hào)來表示該程序執(zhí)行到當(dāng)前位置。若如圖6-17所示為一個(gè)單流程程序,應(yīng)在該程序最后加入黑色實(shí)心圓表示程序結(jié)束。3.結(jié)束符圖6-17單流程順控圖

某一冷加工自動(dòng)線有一個(gè)鉆孔動(dòng)力頭,該動(dòng)力頭的加工過程示意圖,如圖6-18所示。其控制要求如下:(1)動(dòng)力頭在原位,并加以起動(dòng)信號(hào),這時(shí)接通電磁閥YV1,動(dòng)力頭快進(jìn)。(2)動(dòng)力頭碰到限位開關(guān)SQ1后,接通電磁閥YV1和YV2,動(dòng)力頭由快進(jìn)轉(zhuǎn)為工進(jìn),同時(shí)動(dòng)力頭電動(dòng)機(jī)轉(zhuǎn)動(dòng)(由KM1控制)。(3)動(dòng)力頭碰到限位開關(guān)SQ2后,開始延時(shí)3s。(4)延時(shí)時(shí)間到,接通電磁閥YV3,動(dòng)力頭快退。(5)動(dòng)力頭回到原位即停止。圖6-18鉆孔動(dòng)力頭工作示意圖解:確定輸入/輸出(I/O)分配表,如表6-4所示。0輸入輸出輸入設(shè)備輸入編號(hào)輸出設(shè)備輸出編號(hào)啟動(dòng)按鈕S01I0.0電磁閥YV1Q0.0限位開關(guān)SQ0I0.1電磁閥YV2Q0.1限位開關(guān)SQ1I0.2電磁閥YV3Q0.2限位開關(guān)SQ2I0.3接觸器KM1Q0.3表6-4鉆孔動(dòng)力頭I/O分配表

根據(jù)工藝要求畫出順控圖如圖6-19所示,是一個(gè)簡(jiǎn)單流程的順控圖,當(dāng)PLC在開機(jī)時(shí)進(jìn)入初始狀態(tài)S1,當(dāng)程序運(yùn)行使動(dòng)力頭回到原位時(shí),利用限位開關(guān)SQ0(I0.1)為轉(zhuǎn)移條件使程序返回初始狀態(tài)S1,等待下一次啟動(dòng)(即程序停止)。圖6-19鉆孔動(dòng)力頭順控圖PLC控制剪板機(jī)的示意圖如圖6-20所示。其控制要求如下:

開始時(shí)壓鉗和剪刀在上限位置,限位開關(guān)SQ1和SQ2閉合。按下啟動(dòng)按鈕后,板料右行至限位開關(guān)SQ3處,然后壓鉗下行,壓緊板料后壓力繼電器吸合,壓鉗保持壓緊,剪刀開始下行。剪斷板料后,壓鉗和剪刀同時(shí)上行,分別碰到限位開關(guān)SQ1和SQ2后,停止上行。壓鉗和剪刀都停止后,又開始下一周期的工作。圖6-20PLC控制剪板機(jī)工作示意圖解:確定輸入/輸出(I/O)分配表,如表6-5所示。表6-5PLC控制剪板機(jī)I/O分配表輸入輸出輸入設(shè)備輸入編號(hào)輸出設(shè)備輸出編號(hào)啟動(dòng)按鈕SB1I0.0板料右行電動(dòng)機(jī)Q0.0壓鉗上限位開關(guān)SQ1I0.1壓鉗下行電磁閥YV1Q0.1剪刀上限位開關(guān)SQ2I0.2壓鉗上行電磁閥YV2Q0.2右行限位開關(guān)SQ3I0.3剪刀下行電磁閥YV3Q0.3壓力繼電器I0.4剪刀上行電磁閥YV4Q0.4剪刀下限位開關(guān)SQ4I0.5

根據(jù)工藝要求畫出順控圖如圖6-21所示,當(dāng)PLC在開機(jī)時(shí)進(jìn)入初始狀態(tài)S1,當(dāng)程序運(yùn)行完畢時(shí)時(shí),利用限位開關(guān)SQ1(I0.1)和SQ2(I0.2)為轉(zhuǎn)移條件使程序返回初始狀態(tài)S1,等待下一次啟動(dòng)(即程序停止)。特別指出:該程序結(jié)束后一定要返回初始狀態(tài)S1,否則下次無法起動(dòng)。圖6-21PLC控制剪板機(jī)順控圖

循環(huán)程序是當(dāng)某步運(yùn)行完成之后,需要回到本序列之前的某步重新運(yùn)行,這時(shí)就需要跳轉(zhuǎn)結(jié)構(gòu),該結(jié)構(gòu)如圖6-22所示。在程序中需要跳轉(zhuǎn)的位置上畫一個(gè)向下的箭頭,并在箭頭旁邊標(biāo)明跳轉(zhuǎn)到哪一步。在跳轉(zhuǎn)到的那個(gè)步前再畫一個(gè)向左的箭頭,并在箭頭右側(cè)標(biāo)注從哪個(gè)轉(zhuǎn)換跳轉(zhuǎn)而來。當(dāng)程序執(zhí)行完S5步后首先判斷是否滿足轉(zhuǎn)換條件Trans5。若不滿足轉(zhuǎn)換條件,再判斷是否滿足轉(zhuǎn)換條件Trans7。若滿足轉(zhuǎn)換條件,程序則再跳轉(zhuǎn)回原先單序列結(jié)構(gòu)中的步Step4,如此循環(huán)下去,直至滿足轉(zhuǎn)換條件Trans5,關(guān)閉轉(zhuǎn)換條件Trans7,程序進(jìn)入步Step6。圖6-22循環(huán)程序順控圖PLC控制交通燈的示意圖如圖6-23所示。其控制要求如下:

設(shè)置一個(gè)啟動(dòng)按鈕SB1,當(dāng)它接通時(shí),交通信號(hào)燈控制系統(tǒng)開始工作,且先南北紅燈亮,東西綠燈亮。設(shè)置一個(gè)開關(guān)K1進(jìn)行選擇交通燈連續(xù)循環(huán)與單次循環(huán),當(dāng)K1為0時(shí),交通燈連續(xù)循環(huán),當(dāng)K1為1時(shí),交通燈單次循環(huán)。圖6-23PLC控制交通燈示意圖PLC控制交通燈的工藝流程如下:

(1)按下啟動(dòng)按鈕后,南北紅燈亮并保持20秒,同時(shí)東西綠燈亮,但保持15秒,15秒后東西綠燈閃爍3次(每周期1秒)后熄滅;繼而東西黃燈亮,并保持2秒,2秒后,東西黃燈熄滅,東西紅燈亮,同時(shí)南北紅燈熄滅且南北綠燈亮。

(2)東西紅燈亮并保持15秒。同時(shí)南北綠燈亮,但保持10秒,到10秒時(shí)南北綠燈閃爍3次(每周期1秒)后熄滅;繼而南北黃燈亮,并保持2秒,2秒后,南北黃燈熄滅,南北紅燈亮,同時(shí)東西紅燈熄滅且東西綠燈亮。

(3)上述過程作一次循環(huán);按啟動(dòng)按鈕后,交通燈連續(xù)循環(huán),按停止按鈕SB2交通燈立即停止。解:設(shè)定PLC控制交通燈的I/O分配表如表6-6所示。表6-6PLC控制交通燈的I/O分配表輸入輸出輸入設(shè)備輸入編號(hào)輸出設(shè)備輸出編號(hào)啟動(dòng)按鈕SB1I0.0南北紅燈Q0.0循環(huán)方式選擇開關(guān)K1I0.1東西綠燈Q0.1東西黃燈Q0.2東西紅燈Q0.3南北綠燈Q0.4南北黃燈Q0.5

根據(jù)控制要求可采用不同的方法繪制對(duì)應(yīng)的順控圖。

此處提供一種采用循環(huán)方式控制的交通燈的順控圖形式,如圖6-24所示。圖6-24交通燈狀態(tài)轉(zhuǎn)移圖對(duì)應(yīng)的梯形圖

跳轉(zhuǎn)程序是當(dāng)某步運(yùn)行完成之后,需要跳轉(zhuǎn)到同一個(gè)分支或另一個(gè)分支的某個(gè)位置,去執(zhí)行不同的工藝動(dòng)作,如圖6-25所示。當(dāng)運(yùn)行至轉(zhuǎn)換Trans7后跳轉(zhuǎn)至另一個(gè)序列中的步Step4,在該單序列結(jié)構(gòu)中運(yùn)行至轉(zhuǎn)換Trans5時(shí),再跳轉(zhuǎn)回原先單序列結(jié)構(gòu)中的步Step1,如此循環(huán)下去。圖6-25跳轉(zhuǎn)程序順控圖

PLC控制自動(dòng)混料罐的示意圖如圖6-26所示。其控制要求如下:

混料罐裝有兩個(gè)進(jìn)料泵(控制兩種液料的進(jìn)罐),裝有一個(gè)出料泵(控制混合料出罐

溫馨提示

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

評(píng)論

0/150

提交評(píng)論