西門子S7-300/400PLC的程序功能塊
西門子S7-300/400的PLC用戶程序結(jié)構(gòu)與S7-200有明顯的不同,可以使用線性化結(jié)構(gòu)以及功能調(diào)用式結(jié)構(gòu)與結(jié)構(gòu)化編程。
采用調(diào)用式結(jié)構(gòu)與結(jié)構(gòu)化編程時(shí),程序以組織塊(OB)、程序塊(FC)、功能塊(FB)、系統(tǒng)程序塊( SFC)、系統(tǒng)功能塊(SFB)、數(shù)據(jù)塊(DB)等形式出現(xiàn),其中,組織塊(OB)、程序塊(FC)、功能塊(FB)統(tǒng)稱為“邏輯塊(Logic Block)”;系統(tǒng)程序塊(SFC)、系統(tǒng)功能塊(SFB)統(tǒng)稱為“系統(tǒng)塊”。
(1)組織塊(OB)
組織塊(Organization Blocks,簡(jiǎn)稱OB)提供了PLC內(nèi)部CPU操作系統(tǒng)與用戶程序間的接口,它是由CPU操作系統(tǒng)直接進(jìn)行調(diào)用的邏輯塊,用來(lái)管理PLC程序中各組成部分的調(diào)用和執(zhí)行中斷。OB決定了PLC用戶程序的結(jié)構(gòu)與塊的調(diào)用順序,起到了“管理”用戶程序的作用。
S7-300/400不同的CPU類型,可以選擇、支持不同的OB塊,但OB1是所有PLC用戶程序的循環(huán)控制塊,它是運(yùn)行PLC用戶程序的前提條件,因此,任何PLC程序、任何CPU都不可以缺少OB1。
OB塊的調(diào)用條件被稱為“觸發(fā)事件”,根據(jù)“觸發(fā)事件”的不同,OB塊可以分為若干級(jí)別,各個(gè)級(jí)別有不同的優(yōu)先級(jí),高優(yōu)先級(jí)的OB可以中斷低優(yōu)先級(jí)OB的執(zhí)行。如果需要,S7系列PLC除OB1外,還可以使用多個(gè)OB塊。
(2)程序塊(FC)
程序塊(Function,簡(jiǎn)稱FC)是由用戶編寫的、不需要專門數(shù)據(jù)塊的常用邏輯塊。
FC塊在程序中一般不可以重復(fù)調(diào)用,在大多數(shù)場(chǎng)合,F(xiàn)C塊應(yīng)直接使用PLC的“絕對(duì)地址”或“符號(hào)地址”進(jìn)行編程,但根據(jù)需要,可以定義部分程序變量。
與S7-200 -樣,F(xiàn)C塊的“臨時(shí)變量”同樣存儲(chǔ)在局部變量數(shù)據(jù)堆棧(L)中,這一區(qū)域?yàn)槿砍绦驂K所公用,只可以用于FC塊內(nèi)部使用的中間運(yùn)算結(jié)果寄存(這些中間運(yùn)算結(jié)果不可以用于FC塊外部);程序塊執(zhí)行完成后,局部變量數(shù)據(jù)堆棧內(nèi)的數(shù)據(jù)將被其他塊所需要的內(nèi)容所替代。如果需要保存可以用于其他邏輯塊的狀態(tài),應(yīng)使用PLC的內(nèi)部標(biāo)志寄存器M或使用“數(shù)據(jù)塊DB”。
在程序塊FC中,有部分為PLC生產(chǎn)廠家所提供的、集成在S7 CPU操作系統(tǒng)中的邏輯塊,稱為系統(tǒng)程序塊(System Function,簡(jiǎn)稱SFC)。系統(tǒng)程序塊SFC屬于PLC內(nèi)部操作系統(tǒng)的一部分,用戶不需要編寫,也不可以對(duì)其進(jìn)行編輯,但可以根據(jù)需要直接調(diào)用。
(3)功能塊(FB)
功能塊(Function Blocks,簡(jiǎn)稱FB塊)是由用戶編寫的、需要專用數(shù)據(jù)塊(Instance Data Blocks,稱為“即時(shí)數(shù)據(jù)塊”或“背景數(shù)據(jù)塊”,簡(jiǎn)稱DI)支持的常用邏輯塊。
FB塊與FC塊的作用基本相同,但FB中除可以使用“絕對(duì)地址”或“符號(hào)地址”進(jìn)行編程外,在結(jié)構(gòu)化編程時(shí)必須使用“程序變量”進(jìn)行編程,因此,F(xiàn)B必須配套的、獨(dú)立的數(shù)據(jù)存儲(chǔ)區(qū)域——“即時(shí)數(shù)據(jù)塊DI”。DI -方面可以為調(diào)用FB提供執(zhí)行程序所需要的“程序變量”賦值與其他數(shù)據(jù),另一方面,功能塊FB也能通過(guò)DI給調(diào)用它的邏輯塊返回所需要的數(shù)據(jù)。
與功能調(diào)用塊FC -樣,功能塊FB中也有部分為PLC生產(chǎn)廠家所提供的、集成在S7 CPU操作系統(tǒng)中的功能塊,稱為系統(tǒng)功能塊(System Function Blocks,簡(jiǎn)稱SFB)。系統(tǒng)功能塊SFB同樣屬于PLC內(nèi)部操作系統(tǒng)的一部分,用戶不需要編寫,也不可以對(duì)其進(jìn)行編輯,但可以根據(jù)需要直接調(diào)用。
(4)數(shù)據(jù)塊(DB)
數(shù)據(jù)塊(Data Blocks,簡(jiǎn)稱DB)是用來(lái)存放執(zhí)行用戶程序時(shí)所需的數(shù)據(jù)與存儲(chǔ)程序執(zhí)行結(jié)果的數(shù)據(jù)存儲(chǔ)區(qū),其作用與標(biāo)志寄存器類似,但數(shù)量更多。數(shù)據(jù)塊DB按不同的用途可以分為即時(shí)數(shù)據(jù)塊(Instance DataBlocks,又稱背景數(shù)據(jù)塊,簡(jiǎn)稱DI)和通用數(shù)據(jù)塊(Data Blocks,又稱共享數(shù)據(jù)塊,簡(jiǎn)稱DB)兩類。
即時(shí)數(shù)據(jù)塊( DI)用于傳遞功能塊的參數(shù),只能被指定的功能塊FB訪問(wèn)。調(diào)用功能塊FB時(shí),必須同時(shí)指定用于該功能塊的即時(shí)數(shù)據(jù)塊DI,即時(shí)數(shù)據(jù)塊內(nèi)的數(shù)據(jù)可以自動(dòng)生成,它們可以是FB變量聲明表中的數(shù)據(jù)(不含臨時(shí)變量)。
通用數(shù)據(jù)塊(DB)用于存儲(chǔ)PLC的全局?jǐn)?shù)據(jù),所有的FB、FC或OB都可以對(duì)通用數(shù)據(jù)塊進(jìn)行讀寫操作,因此,又被稱為共享數(shù)據(jù)塊。通用數(shù)據(jù)塊內(nèi)的數(shù)據(jù)不會(huì)因用戶程序的結(jié)束而刪除。
采用調(diào)用式結(jié)構(gòu)與結(jié)構(gòu)化編程時(shí),程序以組織塊(OB)、程序塊(FC)、功能塊(FB)、系統(tǒng)程序塊( SFC)、系統(tǒng)功能塊(SFB)、數(shù)據(jù)塊(DB)等形式出現(xiàn),其中,組織塊(OB)、程序塊(FC)、功能塊(FB)統(tǒng)稱為“邏輯塊(Logic Block)”;系統(tǒng)程序塊(SFC)、系統(tǒng)功能塊(SFB)統(tǒng)稱為“系統(tǒng)塊”。
(1)組織塊(OB)
組織塊(Organization Blocks,簡(jiǎn)稱OB)提供了PLC內(nèi)部CPU操作系統(tǒng)與用戶程序間的接口,它是由CPU操作系統(tǒng)直接進(jìn)行調(diào)用的邏輯塊,用來(lái)管理PLC程序中各組成部分的調(diào)用和執(zhí)行中斷。OB決定了PLC用戶程序的結(jié)構(gòu)與塊的調(diào)用順序,起到了“管理”用戶程序的作用。
S7-300/400不同的CPU類型,可以選擇、支持不同的OB塊,但OB1是所有PLC用戶程序的循環(huán)控制塊,它是運(yùn)行PLC用戶程序的前提條件,因此,任何PLC程序、任何CPU都不可以缺少OB1。
OB塊的調(diào)用條件被稱為“觸發(fā)事件”,根據(jù)“觸發(fā)事件”的不同,OB塊可以分為若干級(jí)別,各個(gè)級(jí)別有不同的優(yōu)先級(jí),高優(yōu)先級(jí)的OB可以中斷低優(yōu)先級(jí)OB的執(zhí)行。如果需要,S7系列PLC除OB1外,還可以使用多個(gè)OB塊。
(2)程序塊(FC)
程序塊(Function,簡(jiǎn)稱FC)是由用戶編寫的、不需要專門數(shù)據(jù)塊的常用邏輯塊。
FC塊在程序中一般不可以重復(fù)調(diào)用,在大多數(shù)場(chǎng)合,F(xiàn)C塊應(yīng)直接使用PLC的“絕對(duì)地址”或“符號(hào)地址”進(jìn)行編程,但根據(jù)需要,可以定義部分程序變量。
與S7-200 -樣,F(xiàn)C塊的“臨時(shí)變量”同樣存儲(chǔ)在局部變量數(shù)據(jù)堆棧(L)中,這一區(qū)域?yàn)槿砍绦驂K所公用,只可以用于FC塊內(nèi)部使用的中間運(yùn)算結(jié)果寄存(這些中間運(yùn)算結(jié)果不可以用于FC塊外部);程序塊執(zhí)行完成后,局部變量數(shù)據(jù)堆棧內(nèi)的數(shù)據(jù)將被其他塊所需要的內(nèi)容所替代。如果需要保存可以用于其他邏輯塊的狀態(tài),應(yīng)使用PLC的內(nèi)部標(biāo)志寄存器M或使用“數(shù)據(jù)塊DB”。
在程序塊FC中,有部分為PLC生產(chǎn)廠家所提供的、集成在S7 CPU操作系統(tǒng)中的邏輯塊,稱為系統(tǒng)程序塊(System Function,簡(jiǎn)稱SFC)。系統(tǒng)程序塊SFC屬于PLC內(nèi)部操作系統(tǒng)的一部分,用戶不需要編寫,也不可以對(duì)其進(jìn)行編輯,但可以根據(jù)需要直接調(diào)用。
(3)功能塊(FB)
功能塊(Function Blocks,簡(jiǎn)稱FB塊)是由用戶編寫的、需要專用數(shù)據(jù)塊(Instance Data Blocks,稱為“即時(shí)數(shù)據(jù)塊”或“背景數(shù)據(jù)塊”,簡(jiǎn)稱DI)支持的常用邏輯塊。
FB塊與FC塊的作用基本相同,但FB中除可以使用“絕對(duì)地址”或“符號(hào)地址”進(jìn)行編程外,在結(jié)構(gòu)化編程時(shí)必須使用“程序變量”進(jìn)行編程,因此,F(xiàn)B必須配套的、獨(dú)立的數(shù)據(jù)存儲(chǔ)區(qū)域——“即時(shí)數(shù)據(jù)塊DI”。DI -方面可以為調(diào)用FB提供執(zhí)行程序所需要的“程序變量”賦值與其他數(shù)據(jù),另一方面,功能塊FB也能通過(guò)DI給調(diào)用它的邏輯塊返回所需要的數(shù)據(jù)。
與功能調(diào)用塊FC -樣,功能塊FB中也有部分為PLC生產(chǎn)廠家所提供的、集成在S7 CPU操作系統(tǒng)中的功能塊,稱為系統(tǒng)功能塊(System Function Blocks,簡(jiǎn)稱SFB)。系統(tǒng)功能塊SFB同樣屬于PLC內(nèi)部操作系統(tǒng)的一部分,用戶不需要編寫,也不可以對(duì)其進(jìn)行編輯,但可以根據(jù)需要直接調(diào)用。
(4)數(shù)據(jù)塊(DB)
數(shù)據(jù)塊(Data Blocks,簡(jiǎn)稱DB)是用來(lái)存放執(zhí)行用戶程序時(shí)所需的數(shù)據(jù)與存儲(chǔ)程序執(zhí)行結(jié)果的數(shù)據(jù)存儲(chǔ)區(qū),其作用與標(biāo)志寄存器類似,但數(shù)量更多。數(shù)據(jù)塊DB按不同的用途可以分為即時(shí)數(shù)據(jù)塊(Instance DataBlocks,又稱背景數(shù)據(jù)塊,簡(jiǎn)稱DI)和通用數(shù)據(jù)塊(Data Blocks,又稱共享數(shù)據(jù)塊,簡(jiǎn)稱DB)兩類。
即時(shí)數(shù)據(jù)塊( DI)用于傳遞功能塊的參數(shù),只能被指定的功能塊FB訪問(wèn)。調(diào)用功能塊FB時(shí),必須同時(shí)指定用于該功能塊的即時(shí)數(shù)據(jù)塊DI,即時(shí)數(shù)據(jù)塊內(nèi)的數(shù)據(jù)可以自動(dòng)生成,它們可以是FB變量聲明表中的數(shù)據(jù)(不含臨時(shí)變量)。
通用數(shù)據(jù)塊(DB)用于存儲(chǔ)PLC的全局?jǐn)?shù)據(jù),所有的FB、FC或OB都可以對(duì)通用數(shù)據(jù)塊進(jìn)行讀寫操作,因此,又被稱為共享數(shù)據(jù)塊。通用數(shù)據(jù)塊內(nèi)的數(shù)據(jù)不會(huì)因用戶程序的結(jié)束而刪除。
本文標(biāo)簽:西門子S7-300/400PLC的程序功能塊
* 由于無(wú)法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請(qǐng)《西門子S7-300/400PLC的程序功能塊》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
關(guān)于“西門子S7-300/400PLC的程序功能塊”的更多資訊
個(gè)人求購(gòu)










