西門子S7-1200PLC模塊安徽代理價(jià)格

西門子S7-300/400 PLC的程序塊的功能及相關(guān)指令
程序塊的功能包括調(diào)用塊和終止塊。FB/SFB、FC/SFC程序塊可以通過調(diào)用邏輯框進(jìn)行調(diào)用;而組織塊(OB)是操作系統(tǒng)與用戶程序之間的接口,用于驅(qū)動(dòng)用戶程序的執(zhí)行,直接由操作系統(tǒng)啟動(dòng),因此不能對(duì)其進(jìn)行調(diào)用。
1.通過CALL線圈調(diào)用不帶參數(shù)的FC/SFC程序塊
當(dāng)功能用于管理一個(gè)子程序時(shí),由于不涉及到參數(shù)的傳遞問題,即功能不帶有參數(shù),因此可以直接用CALL指令進(jìn)行調(diào)用。如圖4-54所示,當(dāng)M1.2為高電位“1”時(shí),實(shí)現(xiàn)調(diào)用FC1的功能。系統(tǒng)功能的調(diào)用與之類似。

圖4-54 CALL指令調(diào)用無參FC
2.通過調(diào)用邏輯框調(diào)用FC/SFC、FB/SFB程序塊
通過調(diào)用邏輯框調(diào)用程序塊時(shí),可以對(duì)這些程序塊進(jìn)行參數(shù)設(shè)置。調(diào)用邏輯框可以調(diào)用有參數(shù)或無參數(shù)的功能塊和功能,不含參數(shù)的功能塊只能通過調(diào)用邏輯框調(diào)用,不能用CALL指令調(diào)用。
◇ 通過調(diào)用邏輯框調(diào)用不含參數(shù)的FC:如圖4-55所示,與前面介紹的數(shù)據(jù)傳遞等
邏輯框類似,該調(diào)用邏輯框存在使能輸入和輸出端,在調(diào)用塊的時(shí)候還可以通過
使能輸出進(jìn)行其他的控制,調(diào)用FC1的同時(shí)使Q1.0置位。
◇ 通過調(diào)用邏輯框調(diào)用含有參數(shù)的FC:如圖4-56所示,在功能FC2中創(chuàng)建了3個(gè)
形式參數(shù),其中no1是IN類型的,n02是OUT類型的、n03是IN OUT類型的
參數(shù)。在調(diào)用邏輯框中可以對(duì)這3個(gè)形式參數(shù)進(jìn)行設(shè)置,而這正是CALL指令不
具備的功能。
◇ 通過調(diào)用邏輯框調(diào)用不含有參數(shù)的FB:如圖4-57所示。
和調(diào)用無參的FC相比,調(diào)用無參的FB大的不同在于要該功能塊的背景數(shù)據(jù)塊,如本例中功能塊FB2的背景數(shù)據(jù)塊是DB2。
◇ 通過調(diào)用邏輯框調(diào)用含有參數(shù)的FB,如圖4-58所示。

圖4-55 邏輯框調(diào)用無參的FC

圖4-56 邏輯框調(diào)用有參的FC

圖4-57 邏輯框調(diào)用無參的FB

圖4-58 邏輯框調(diào)用有參的FB
在功能塊FB1中創(chuàng)建了3個(gè)形式參數(shù)NO1(IN類型)、NO2(OUT類型)、NO3(IN OUT類型),然后在調(diào)用邏輯框中分別對(duì)其進(jìn)行設(shè)置即可。
S7-300/400系統(tǒng)為不同的任務(wù)提供了用戶塊、系統(tǒng)塊、標(biāo)準(zhǔn)塊等3種類型的塊。
1.用戶塊
用戶塊包含用戶的程序和數(shù)據(jù),又可分為組織塊(OB)、功能塊(FB)、功能(FC)、數(shù)據(jù)塊(DB)。
(1)組織塊(OB)
組織塊相當(dāng)于操作系統(tǒng)與用戶程序之間的接口,當(dāng)一個(gè)程序或事件運(yùn)行時(shí),操作系統(tǒng)調(diào)用該塊。

組織塊決定著用戶程序的結(jié)構(gòu),在系統(tǒng)運(yùn)行時(shí)由操作系統(tǒng)直接調(diào)用。組織塊可以調(diào)用其他的塊結(jié)構(gòu),而不能被其他的塊調(diào)用。用戶編寫的函數(shù)或者程序塊必須在組織塊中調(diào)用才能夠執(zhí)行,否則是不能執(zhí)行的。
模塊化編程方式就是將需要控制的任務(wù)按照相互關(guān)聯(lián)的程度劃分為幾個(gè)獨(dú)立的任務(wù),然后針對(duì)每個(gè)獨(dú)立的下級(jí)控制任務(wù)編寫相應(yīng)的子程序段來實(shí)現(xiàn)控制,后在組織塊中對(duì)這些子程序段進(jìn)行統(tǒng)一的調(diào)用。
一個(gè)PLC系統(tǒng)確定后,組織塊的數(shù)目和每個(gè)組織塊的功能都是確定的。一些組織塊已經(jīng)由生產(chǎn)廠家在產(chǎn)品出廠之前寫入了程序,其功能是確定的,不允許用戶自己修改如OB40;另一些組織塊雖然用戶可以對(duì)其寫入程序,但是該組織塊所能完成的任務(wù)也是確定的,如OB1。
用戶接觸多的是*號(hào)組織塊OB1。OB1是實(shí)現(xiàn)主程序循環(huán)的組織塊,即完成調(diào)用其他程序塊的功能。在OB40組織塊(第四十號(hào))中PLC系統(tǒng)已經(jīng)固化了相應(yīng)的程序,當(dāng)PLC系統(tǒng)硬件出現(xiàn)嚴(yán)重錯(cuò)誤或問題(即硬件中斷)時(shí),PLC系統(tǒng)轉(zhuǎn)入執(zhí)行OB40中的程序,起到保護(hù)的作用。
中斷處理在計(jì)算機(jī)中十分常見,即系統(tǒng)在運(yùn)行一個(gè)程序或在執(zhí)行一個(gè)任務(wù)時(shí),另一個(gè)更加緊急或優(yōu)先級(jí)更高的任務(wù)向系統(tǒng)提出請(qǐng)求,要求處理它提出的任務(wù),則系統(tǒng)在完成正在處理的指令后,先保存現(xiàn)場(chǎng),然后轉(zhuǎn)入執(zhí)行優(yōu)先級(jí)更高的任務(wù),待該任務(wù)完成后,系統(tǒng)又從存儲(chǔ)區(qū)中將保存的現(xiàn)場(chǎng)信息讀出,接著執(zhí)行沒有完成的任務(wù)。
PLC系統(tǒng)中的組織塊的優(yōu)先級(jí)是不一樣的,一般說來編號(hào)越大的組織塊相應(yīng)的優(yōu)先級(jí)更高,因此多個(gè)組織塊要求執(zhí)行時(shí),系統(tǒng)先響應(yīng)編號(hào)大的組織塊。
(2)功能(FC)
功能(FC)常用于循環(huán)執(zhí)行和復(fù)合類型自動(dòng)函數(shù)的生成。
功能FC的兩個(gè)主要功能是:
◇ 用于編寫子程序,完成從整個(gè)控制任務(wù)中劃分出來的子控制任務(wù),后再由081
統(tǒng)一調(diào)用運(yùn)行。
◇ 體現(xiàn)函數(shù)的作用。用于在多個(gè)相似的控制任務(wù)中編寫程序時(shí)使用形式變量,這樣
在具體控制任務(wù)時(shí)只需將形式變量賦予具體的值即可,而不用對(duì)相似的控制任務(wù)
重復(fù)地編寫程序,減少勞動(dòng)量。
功能(FC)存在數(shù)據(jù)接口區(qū),參數(shù)包括輸入?yún)?shù)(IN)、輸出參數(shù)(OUT)、輸入輸出參數(shù)(IN_OUT)、臨時(shí)參數(shù)(TEMP)和返回參數(shù)(RETURN)。前面4種類型的參數(shù)區(qū)中均可創(chuàng)建多個(gè)這種類型的形參,而RETURN類型中只包含一個(gè)形參,這是系統(tǒng)預(yù)置的;形參名稱不能更改,但是形參的類型是可以根據(jù)需要自行更改的。
(3)功能塊(FB)
FB與FC非常相似,但是在每次調(diào)用FB時(shí),系統(tǒng)都會(huì)為FB劃分一部分?jǐn)?shù)據(jù)存儲(chǔ)區(qū),用于存儲(chǔ)接口數(shù)據(jù)區(qū)和中間計(jì)算結(jié)果的數(shù)據(jù)。這個(gè)劃分給功能塊的數(shù)據(jù)區(qū)稱為背景數(shù)據(jù)區(qū),它只能供功能塊使用,但是一個(gè)背景數(shù)據(jù)區(qū)可以供幾個(gè)功能塊使用。
功能塊有接口區(qū),在這里創(chuàng)建并統(tǒng)一管理形式參數(shù)。形參的參數(shù)類型有輸入?yún)?shù)(IN)、輸出參數(shù)( OUT),輸入輸出參數(shù)(IN_OUT)、中間變量的靜態(tài)參數(shù)(STAT)和臨時(shí)參數(shù)( TEMP)。每種類型參數(shù)的具體定義介紹如下。

◇ 輸入?yún)?shù)(IN):只讀參數(shù),調(diào)用功能塊時(shí)將用戶程序中的數(shù)據(jù)傳遞給功能塊。
◇ 輸出參數(shù)( OUT):只寫參數(shù),調(diào)用功能塊后將功能塊執(zhí)行的結(jié)果傳遞給用戶程序。
◇ 輸入輸出參數(shù)(IN_OUT):讀寫參數(shù),調(diào)用功能塊時(shí)先讀入數(shù)據(jù),然后再將執(zhí)行的結(jié)果返回給用戶程序。
◇ 中間變量的靜態(tài)參數(shù)( STAT):此種類型的參數(shù)不參與數(shù)據(jù)的傳送,只是在塊執(zhí)行的過程中用于存儲(chǔ)中間結(jié)果。
◇ 臨時(shí)參數(shù)( TEMP):與STAT類型的參數(shù)一樣,臨時(shí)參數(shù)(TEMP)也不參與數(shù)據(jù)的傳送。TEMP只有在功能塊執(zhí)行的過程中才有效,功能塊執(zhí)行完畢后就釋放參數(shù)的存儲(chǔ)區(qū),這是它與STAT類型參數(shù)的大不同。也正因?yàn)槿绱?,才使?/span>TEMP類型的參數(shù)不能存儲(chǔ)中間結(jié)果。
(4)數(shù)據(jù)塊(DB)
數(shù)據(jù)塊(DB)主要用于存儲(chǔ)系統(tǒng)程序和用戶程序中涉及的數(shù)據(jù)。
數(shù)據(jù)塊根據(jù)其功能主要分為全局?jǐn)?shù)據(jù)塊和背景數(shù)據(jù)塊,全局?jǐn)?shù)據(jù)塊中存儲(chǔ)的數(shù)據(jù)可以供所有程序使用;而背景數(shù)據(jù)塊是與功能塊相聯(lián)系的,其中的數(shù)據(jù)只能供一個(gè)或有限個(gè)功能塊使用。
在PLC系統(tǒng)中,數(shù)據(jù)塊是需要用戶創(chuàng)建的,即在使用某個(gè)數(shù)據(jù)塊之前必須對(duì)其進(jìn)行定義。一個(gè)系統(tǒng)所能創(chuàng)建的數(shù)據(jù)塊的數(shù)目是由CPU的類型決定的,并且每個(gè)數(shù)據(jù)塊的大存儲(chǔ)容量也是受限制的。例如,一個(gè)S7-300系列的PLC中的數(shù)據(jù)塊大存儲(chǔ)容量為32KB,—個(gè)S7-400系列的PLC中的數(shù)據(jù)塊大存儲(chǔ)容量為64KB。
2.系統(tǒng)塊
系統(tǒng)塊有系統(tǒng)程序塊和系統(tǒng)數(shù)據(jù)塊之分。它與用戶塊類似,同樣包含系統(tǒng)功能( SFC)、系統(tǒng)功能塊( SFB)、系統(tǒng)數(shù)據(jù)塊(SDB)。這幾個(gè)塊的具體應(yīng)用和用戶塊中的類似,可以參照對(duì)比學(xué)習(xí),在此不再贅述。
3.標(biāo)準(zhǔn)塊
標(biāo)準(zhǔn)塊是指已經(jīng)存在的塊,比如一些驅(qū)動(dòng)程序所占有的塊。指令由兩大部分構(gòu)成:操作碼和操作數(shù)。塊功能的劃分也是類似的,上面介紹的這些塊結(jié)構(gòu)可以劃分為兩大部分——程序塊和數(shù)據(jù)塊。程序塊用于存儲(chǔ)指令相對(duì)應(yīng)的操作碼,如OB、FB/SFB、FC/SFC;數(shù)據(jù)塊用于存儲(chǔ)指令執(zhí)行過程中所需要的數(shù)據(jù),如DB/SDB。

西門子S7-1200PLC模塊安徽代理價(jià)格