




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章S7-1200PLC用戶(hù)程序結(jié)構(gòu)摘要ABSTRACTS7-1200的程序結(jié)構(gòu)可分為線(xiàn)性化結(jié)構(gòu)和模塊化結(jié)構(gòu)兩類(lèi),主要以“塊”的形式管理用戶(hù)程序和數(shù)據(jù)。在TIA博途編程環(huán)境中,通過(guò)在程序塊內(nèi)部或程序塊之間的調(diào)用,實(shí)現(xiàn)程序運(yùn)行與控制任務(wù)。本章主要介紹S7-1200中的組織塊、函數(shù)、函數(shù)塊、數(shù)據(jù)塊等,學(xué)習(xí)本章內(nèi)容可以幫助用戶(hù)創(chuàng)建高效、實(shí)用的工程程序。本章學(xué)習(xí)目標(biāo)知識(shí)目標(biāo)①了解S7-1200PLC常見(jiàn)的用戶(hù)程序結(jié)構(gòu)。②熟悉S7-1200PLC用戶(hù)程序中的各種塊及其應(yīng)用特點(diǎn)。③熟悉和掌握函數(shù)和函數(shù)塊的特點(diǎn)和應(yīng)用方法。④了解用戶(hù)程序中塊調(diào)用的工作機(jī)制。⑤掌握數(shù)據(jù)塊的創(chuàng)建、使用方法以及屬性設(shè)置等。本章學(xué)習(xí)目標(biāo)能力目標(biāo)①能夠根據(jù)控制要求合理設(shè)計(jì)用戶(hù)程序結(jié)構(gòu)。②初步掌握函數(shù)和函數(shù)塊的生成和設(shè)計(jì),并在實(shí)際應(yīng)用中靈活選用。③能夠在實(shí)際應(yīng)用中靈活選用組織塊。④能夠生成數(shù)據(jù)塊并合理應(yīng)用。⑤能夠根據(jù)控制要求合理選擇多重背景數(shù)據(jù)塊組織程序結(jié)構(gòu)。本章學(xué)習(xí)目標(biāo)素質(zhì)目標(biāo)①培養(yǎng)勇于創(chuàng)新、掌握先進(jìn)控制技術(shù)的責(zé)任感和使命感。②樹(shù)立行業(yè)規(guī)范與標(biāo)準(zhǔn)意識(shí),培養(yǎng)嚴(yán)謹(jǐn)求實(shí)的精神。③樹(shù)立獨(dú)立思考、辯證分析的意識(shí)。④通過(guò)項(xiàng)目任務(wù)實(shí)施,培養(yǎng)團(tuán)隊(duì)協(xié)作共同體意識(shí)。1目錄CONTENTS程序結(jié)構(gòu)簡(jiǎn)介2函數(shù)與函數(shù)塊組織塊43數(shù)據(jù)塊5交叉引用表與程序信息6職業(yè)技能訓(xùn)練4一、程序結(jié)構(gòu)簡(jiǎn)介S7-1200的程序結(jié)構(gòu)可分為線(xiàn)性化結(jié)構(gòu)和模塊化結(jié)構(gòu)兩類(lèi),主要以“塊”的形式管理用戶(hù)程序和數(shù)據(jù)。在TIA博途編程環(huán)境中,通過(guò)在程序塊內(nèi)部或程序塊之間的調(diào)用,實(shí)現(xiàn)程序運(yùn)行與控制任務(wù)。
將一個(gè)相對(duì)復(fù)雜的任務(wù)分解為“塊”,各種“塊”各司其職,通過(guò)對(duì)塊的組織共同完成控制任務(wù);就像我們通過(guò)團(tuán)隊(duì)方式完成任務(wù)時(shí),每個(gè)人都有職責(zé)和分工,通過(guò)團(tuán)結(jié)協(xié)作才能取得最后的成功。采用塊結(jié)構(gòu)的程序組織形式顯著地增加了PLC程序的組織透明性、可理解性和易維護(hù)性。1.塊的類(lèi)型S7-1200PLC的塊包括組織塊(OB)、函數(shù)(FC)、函數(shù)塊(FB)和數(shù)據(jù)塊(DB),而數(shù)據(jù)塊又包括全局?jǐn)?shù)據(jù)塊和背景數(shù)據(jù)塊。其中的OB、FB、FC都包含程序,統(tǒng)稱(chēng)為代碼(code)塊。代碼塊的個(gè)數(shù)沒(méi)有限制,但是受到存儲(chǔ)器容量的限制。塊簡(jiǎn)要描述組織塊(OB)操作系統(tǒng)與用戶(hù)程序的接口,決定用戶(hù)程序的結(jié)構(gòu)函數(shù)塊(FB)
用戶(hù)編寫(xiě)的包含經(jīng)常使用的功能的子程序,有專(zhuān)用的背景數(shù)據(jù)塊
函數(shù)(FC)
用戶(hù)編寫(xiě)的包含經(jīng)常使用的功能的子程序,沒(méi)有專(zhuān)用的背景數(shù)據(jù)塊
背景數(shù)據(jù)塊(DB)
用于保存FB的輸入變量、輸出變量和靜態(tài)變量,其數(shù)據(jù)在編譯時(shí)自動(dòng)生成
全局?jǐn)?shù)據(jù)塊(DB)
存儲(chǔ)用戶(hù)數(shù)據(jù)的數(shù)據(jù)區(qū)域,供所有的代碼塊共享
1.塊的類(lèi)型
不嚴(yán)謹(jǐn)?shù)恼f(shuō),組織塊(OB)可以相當(dāng)于主程序,函數(shù)塊(FB)和函數(shù)(FC)可以相當(dāng)于子程序,數(shù)據(jù)塊(DB)可以相當(dāng)于數(shù)據(jù)存儲(chǔ)區(qū)。
(1)組織塊(OrganizationBlock,OB)是操作系統(tǒng)與用戶(hù)程序之間的接口,組織塊由操作系統(tǒng)調(diào)用,用于處理啟動(dòng)行為、循環(huán)程序執(zhí)行、中斷驅(qū)動(dòng)的程序執(zhí)行和錯(cuò)誤處理事件。組織塊控制用戶(hù)程序的執(zhí)行,CPU中的特定事件可觸發(fā)組織塊的執(zhí)行,其它組織塊、功能或功能塊不能調(diào)用組織塊。
(2)函數(shù)塊(FunctionBlock,F(xiàn)B)也可稱(chēng)為功能塊。函數(shù)塊是用戶(hù)編寫(xiě)的包含經(jīng)常使用的功能的子程序。由于運(yùn)行過(guò)程中需要調(diào)用各種參數(shù),因此產(chǎn)生了背景數(shù)據(jù)塊DB,所以需要用到的數(shù)據(jù)就存儲(chǔ)在了背景數(shù)據(jù)塊DB中。即使結(jié)束調(diào)用,數(shù)據(jù)也不丟失。
(3)函數(shù)(Function,F(xiàn)C)也可稱(chēng)為功能。函數(shù)也是用戶(hù)編寫(xiě)的包含經(jīng)常使用的功能的子程序。與FB的區(qū)別是,F(xiàn)C無(wú)專(zhuān)用的背景數(shù)據(jù)塊。FC是快速執(zhí)行的代碼塊,可用于完成標(biāo)準(zhǔn)的和可重復(fù)使用的操作,例如算術(shù)運(yùn)算,或完成技術(shù)功能,例如使用位邏輯運(yùn)算的控制。FC沒(méi)有固定的存儲(chǔ)區(qū),F(xiàn)C執(zhí)行結(jié)束后,其臨時(shí)變量中的數(shù)據(jù)將丟失。
(4)數(shù)據(jù)塊(DataBlock,DB)分為背景數(shù)據(jù)塊和全局?jǐn)?shù)據(jù)塊兩種。背景數(shù)據(jù)塊是專(zhuān)門(mén)用于保存函數(shù)塊(FB)中的輸入變量、輸出變量和靜態(tài)變量的。其中的數(shù)據(jù)在編譯時(shí)自動(dòng)生成。全局?jǐn)?shù)據(jù)塊是一片存儲(chǔ)用戶(hù)數(shù)據(jù)的區(qū)域,供所有的代碼塊訪(fǎng)問(wèn)。全局?jǐn)?shù)據(jù)塊也被稱(chēng)為共享數(shù)據(jù)塊。2.用戶(hù)程序結(jié)構(gòu)組織用戶(hù)可根據(jù)實(shí)際要求,選擇線(xiàn)性化結(jié)構(gòu)或模塊化結(jié)構(gòu)創(chuàng)建用戶(hù)程序:
線(xiàn)性程序按照順序逐條執(zhí)行用于自動(dòng)化任務(wù)的所有指令。通常線(xiàn)性程序?qū)⑺兄噶畲a都放入循環(huán)執(zhí)行程序的OB(如OB1)中。
模塊化程序則調(diào)用可執(zhí)行特定任務(wù)的代碼塊(如FB、FC)。要?jiǎng)?chuàng)建模塊化結(jié)構(gòu)程序,需要將復(fù)雜的自動(dòng)化任務(wù)分解為更小的次級(jí)任務(wù),每個(gè)代碼塊都為每個(gè)次級(jí)任務(wù)提供相應(yīng)的程序代碼段,通過(guò)從另一個(gè)塊調(diào)用其中的一個(gè)代碼塊來(lái)構(gòu)建程序。2.用戶(hù)程序結(jié)構(gòu)組織被調(diào)用的代碼塊又可以調(diào)用別的代碼塊,這種調(diào)用稱(chēng)為嵌套調(diào)用,如圖所示。OB1是用戶(hù)程序的主程序(Main),使用時(shí)必須包含OB1。CPU操作系統(tǒng)會(huì)在每一個(gè)掃描周期,循環(huán)掃描執(zhí)行OB1中的程序,而對(duì)于FB或者FC需要在OB1中調(diào)用后,才會(huì)被CPU掃描執(zhí)行。在塊調(diào)用中,調(diào)用者可以是各種代碼塊,被調(diào)用的塊是OB之外的代碼塊。調(diào)用FB時(shí)需要為它指定一個(gè)背景數(shù)據(jù)塊。二、函數(shù)與函數(shù)塊1.函數(shù)FC及其應(yīng)用(1)函數(shù)FC簡(jiǎn)介
函數(shù)(Function,F(xiàn)C)也可稱(chēng)為功能,是不含存儲(chǔ)區(qū)的代碼塊,常用于對(duì)一組輸入值執(zhí)行特定運(yùn)算,例如:可使用FC執(zhí)行標(biāo)準(zhǔn)運(yùn)算和可重復(fù)使用的運(yùn)算(例如數(shù)學(xué)計(jì)算)或者執(zhí)行工藝功能(如使用位邏輯運(yùn)算執(zhí)行獨(dú)立的控制)。FC也可以在程序中的不同位置多次調(diào)用,簡(jiǎn)化了對(duì)經(jīng)常重復(fù)發(fā)生的任務(wù)的編程。FC沒(méi)有相關(guān)的背景數(shù)據(jù)塊(DB),沒(méi)有可以存儲(chǔ)塊參數(shù)值的數(shù)據(jù)存儲(chǔ)器,因此,調(diào)用函數(shù)時(shí),必須給所有形參分配實(shí)參。對(duì)于用于FC的臨時(shí)數(shù)據(jù),F(xiàn)C采用了局部數(shù)據(jù)堆棧,不保存臨時(shí)數(shù)據(jù)。要永久性存儲(chǔ)數(shù)據(jù),可將輸出值賦給全局存儲(chǔ)器位置,如M存儲(chǔ)器或全局?jǐn)?shù)據(jù)塊DB。FC還支持無(wú)形參編程,用以?xún)?yōu)化OB的程序結(jié)構(gòu),此時(shí)不需要任何接口參數(shù)。1.函數(shù)FC及其應(yīng)用(2)生成函數(shù)FC生成函數(shù)(FC)的步驟是:建立一個(gè)TIA博途項(xiàng)目,在項(xiàng)目視圖的項(xiàng)目樹(shù)中選中“已經(jīng)添加的設(shè)備”(如:PLC_1),雙擊“程序塊”下的“添加新塊”,即可彈出要插入塊的界面,選擇“函數(shù)(FC)”并為FC命名,點(diǎn)擊確定即可。(3)函數(shù)FC的應(yīng)用【實(shí)例4-1】用FC實(shí)現(xiàn)電機(jī)的起保停控制(實(shí)參編程與絕對(duì)調(diào)用方式)。
創(chuàng)建函數(shù)FC并命名為“電機(jī)起保停-絕對(duì)調(diào)用”,之后選擇編程語(yǔ)言(本例為L(zhǎng)AD),最后單擊“確定”按鈕,將彈出函數(shù)的程序編輯器界面。在程序界面編寫(xiě)控制程序。在TIA博途軟件項(xiàng)目視圖項(xiàng)目樹(shù)中,雙擊“Main[OB1]”,打開(kāi)主程序塊。選中新創(chuàng)建的函數(shù)“電機(jī)起保停-絕對(duì)調(diào)用[FC1]”,并將其拖拽到程序編輯器中,如圖所示。1.函數(shù)FC及其應(yīng)用在實(shí)例4-1中,電機(jī)起保停程序在FC1中編寫(xiě),在OB1中調(diào)用;此程序也可以在OB1中編寫(xiě),實(shí)現(xiàn)的功能一樣。對(duì)于多臺(tái)相同控制功能的電機(jī)控制來(lái)說(shuō)顯然靈活性不夠,需要多次編寫(xiě)起保停程序段。1.函數(shù)FC及其應(yīng)用
【實(shí)例4-2】用FC實(shí)現(xiàn)電機(jī)的起保停控制(形參編程與參數(shù)調(diào)用方式)。
創(chuàng)建函數(shù)的局部變量。將鼠標(biāo)的光標(biāo)放在FC2的程序區(qū)最上面的分隔條上,按住鼠標(biāo)的左鍵往下拉動(dòng)分隔條,上面是功能的界面(Interface)區(qū),如圖所示。函數(shù)FC的局部接口變量意義如下:1)Input(輸入?yún)?shù)):只讀,調(diào)用時(shí)將用戶(hù)程序數(shù)據(jù)傳遞到FC中。實(shí)參可以為常數(shù)。2)Output(輸出參數(shù)):讀寫(xiě),函數(shù)調(diào)用時(shí)將FC執(zhí)行結(jié)果傳遞到用戶(hù)程序中。實(shí)參不能為常數(shù)。3)InOut(輸入_輸出參數(shù)):在塊調(diào)用之前讀取輸入/輸出參數(shù)并在塊調(diào)用之后寫(xiě)入。實(shí)參不能為常數(shù)。4)Temp(臨時(shí)數(shù)據(jù)):暫時(shí)保存在局部數(shù)據(jù)堆棧中的數(shù)據(jù)。5)Constant(常量)只讀,聲明常量符號(hào)名后,F(xiàn)C中可以使用符號(hào)名代替常量。6)Return中的Ret_Val(返回值),屬于輸出參數(shù)。1.函數(shù)FC及其應(yīng)用
【實(shí)例4-2】用FC實(shí)現(xiàn)電機(jī)的起保停控制(形參編程與參數(shù)調(diào)用方式)。
在接口界面中創(chuàng)建局部變量,先選中Input,新建參數(shù)“Start”和“Stop”,數(shù)據(jù)類(lèi)型“Bool”。再選中InOut,新建參數(shù)“Motor”,數(shù)據(jù)類(lèi)型為“Bool”。然后使用用局部變量編寫(xiě)控制程序。生成局部變量時(shí),不需要指定存儲(chǔ)器地址;根據(jù)各變量的數(shù)據(jù)類(lèi)型,程序編輯器自動(dòng)地為所有局部變量指定存儲(chǔ)器地址。1.函數(shù)FC及其應(yīng)用
【實(shí)例4-2】用FC實(shí)現(xiàn)電機(jī)的起保停控制(形參編程與參數(shù)調(diào)用方式)。調(diào)用函數(shù)FC2。選中新創(chuàng)建的函數(shù)“電機(jī)起保停-參數(shù)調(diào)用[FC2]”,并將其拖拽到“Main[OB1]”程序編輯器中,并為形參指定實(shí)參。
如圖所示,在程序段2中調(diào)用了2次FC2。如果將整個(gè)項(xiàng)目下載到PLC中,就可以實(shí)現(xiàn)兩臺(tái)電機(jī)的“起保停”控制。通常,使用形參編程比較靈活,使用比較方便,特別對(duì)于重復(fù)功能的編程來(lái)說(shuō),僅需要在調(diào)用時(shí)改變實(shí)參即可,便于用戶(hù)閱讀及程序維護(hù),而且能實(shí)現(xiàn)模塊化編程。1.函數(shù)FC及其應(yīng)用(4)專(zhuān)有技術(shù)保護(hù)單擊選中生成的FC,執(zhí)行菜單命令“編輯”→“專(zhuān)有技術(shù)保護(hù)”,在打開(kāi)的對(duì)話(huà)框中輸入密碼和密碼的確認(rèn)值,如圖所示。完成操作后則該FC被加密。說(shuō)明:如果想要?jiǎng)h除或更改密碼,首先要把該代碼塊的程序編輯界面關(guān)閉,否則“編輯”菜單中沒(méi)有“專(zhuān)有技術(shù)保護(hù)”選項(xiàng)。關(guān)閉程序編輯界面后,用戶(hù)選擇“專(zhuān)有技術(shù)保護(hù)”選項(xiàng),在出現(xiàn)的對(duì)話(huà)框中輸入原有的密碼后,可以修改或刪除密碼。2.函數(shù)塊FB及其應(yīng)用(4)專(zhuān)有技術(shù)保護(hù)單擊選中生成的FC,執(zhí)行菜單命令“編輯”→“專(zhuān)有技術(shù)保護(hù)”,在打開(kāi)的對(duì)話(huà)框中輸入密碼和密碼的確認(rèn)值,如圖所示。完成操作后則該FC被加密。說(shuō)明:如果想要?jiǎng)h除或更改密碼,首先要把該代碼塊的程序編輯界面關(guān)閉,否則“編輯”菜單中沒(méi)有“專(zhuān)有技術(shù)保護(hù)”選項(xiàng)。關(guān)閉程序編輯界面后,用戶(hù)選擇“專(zhuān)有技術(shù)保護(hù)”選項(xiàng),在出現(xiàn)的對(duì)話(huà)框中輸入原有的密碼后,可以修改或刪除密碼。2.函數(shù)塊FB及其應(yīng)用(1)函數(shù)塊FB簡(jiǎn)介函數(shù)塊(FunctionBlock,F(xiàn)B)又稱(chēng)為功能塊。FB的典型應(yīng)用是執(zhí)行不能在一個(gè)掃描周期結(jié)束的操作。調(diào)用函數(shù)塊時(shí),需要指定背景數(shù)據(jù)塊,背景數(shù)據(jù)塊是函數(shù)塊專(zhuān)用的存儲(chǔ)區(qū)。CPU執(zhí)行FB中的程序代碼,將塊的輸入、輸出參數(shù)和局部靜態(tài)變量保存在背景數(shù)據(jù)塊中,函數(shù)塊執(zhí)行完畢后背景數(shù)據(jù)塊中的數(shù)據(jù)不會(huì)丟失。(2)生成函數(shù)塊FB生成函數(shù)塊(FB)的步驟和生成函數(shù)(FC)類(lèi)似,不同的是在“添加新塊”時(shí),選擇“函數(shù)塊(FB)”,并為FB命名,點(diǎn)擊確定即可。(3)函數(shù)塊FB的應(yīng)用
下面通過(guò)一個(gè)具體實(shí)例講解函數(shù)塊FB的應(yīng)用。【實(shí)例4-4】使用函數(shù)塊實(shí)現(xiàn)電機(jī)及冷卻風(fēng)扇的控制。2.函數(shù)塊FB及其應(yīng)用【實(shí)例4-4】使用函數(shù)塊實(shí)現(xiàn)電機(jī)及冷卻風(fēng)扇的控制。
控制要求:按下啟動(dòng)按鈕后,電機(jī)和冷卻風(fēng)扇啟動(dòng)運(yùn)行;按下停止按鈕后,電機(jī)立即停止運(yùn)行,冷卻風(fēng)扇延時(shí)一段時(shí)間后再停止運(yùn)行。要求使用函數(shù)塊編程實(shí)現(xiàn)。【解】本例首先要定義接口區(qū)的形參,然后用形參編寫(xiě)控制邏輯,最后進(jìn)行調(diào)用。(1)創(chuàng)建一個(gè)FB,命名為“電機(jī)和冷卻風(fēng)扇”的函數(shù)塊,并打開(kāi)。(2)生成FB的局部變量用戶(hù)可以在FB接口區(qū)定義局部變量,如圖4-13所示,與函數(shù)FC類(lèi)似,函數(shù)塊FB的局部變量也有Input參數(shù)、Output參數(shù)、InOut參數(shù)和Temp參數(shù);此外,函數(shù)塊增加了Static參數(shù),在Static(靜態(tài)變量)定義的變量下一次調(diào)用時(shí),靜態(tài)變量的值保持不變。2.函數(shù)塊FB及其應(yīng)用【實(shí)例4-4】使用函數(shù)塊實(shí)現(xiàn)電機(jī)及冷卻風(fēng)扇的控制。編寫(xiě)FB程序
在打開(kāi)的FB1中的程序編輯視窗中編寫(xiě)控制程序;在本程序中,TOF定時(shí)器的參數(shù)用靜態(tài)變量“定時(shí)器DB”來(lái)保存。在為T(mén)OF定時(shí)器選擇背景數(shù)據(jù)塊的時(shí)候,選擇“多重實(shí)例”,并在接口參數(shù)中名稱(chēng)下拉菜單中選擇“#定時(shí)器DB”,如圖所示。2.函數(shù)塊FB及其應(yīng)用【實(shí)例4-4】使用函數(shù)塊實(shí)現(xiàn)電機(jī)及冷卻風(fēng)扇的控制。在OB1中調(diào)用并調(diào)試FB程序調(diào)用FB時(shí),會(huì)彈出“調(diào)用選項(xiàng)”對(duì)話(huà)框,可以輸入FB1背景數(shù)據(jù)塊的名稱(chēng),一般采用默認(rèn)即可。雙擊查看生產(chǎn)背景數(shù)據(jù)塊,可以看到其中的數(shù)據(jù)與FB1接口區(qū)數(shù)據(jù)是一致的。在OB1中我們調(diào)用兩次FB1(第二次調(diào)用也要為FB1指定背景數(shù)據(jù)塊),分別控制兩套設(shè)備,并將輸入輸出實(shí)參賦給形參2.函數(shù)塊FB及其應(yīng)用(4)更新函數(shù)塊如果OB1中已經(jīng)調(diào)用FB1,后期根據(jù)需要又對(duì)FB1源程序進(jìn)行了修改,則在OB1中被調(diào)用的FB1的方框、或字符或背景數(shù)據(jù)塊將變成紅色,這時(shí)單擊程序編輯器的工具欄上的更新不一致的塊調(diào)用按鈕,此時(shí)FB1中的紅色錯(cuò)誤標(biāo)記將消失(右擊紅色的FB塊,選擇“更新塊調(diào)用”也可以)。或者在OB1中直接將FB1刪除,重新調(diào)用。2.函數(shù)塊FB及其應(yīng)用(5)FB和FC的區(qū)別和選擇FB和FC本質(zhì)都是一樣的,都相當(dāng)于子程序,可以被其他程序塊所調(diào)用(也可以調(diào)用其他子程序)。它們最大的區(qū)別就是,F(xiàn)B與其背景數(shù)據(jù)塊配合使用,背景數(shù)據(jù)塊中保存著FB使用的數(shù)據(jù),即使FB退出運(yùn)行后也會(huì)一直保留。而FC沒(méi)有背景數(shù)據(jù)塊來(lái)存放數(shù)據(jù),只在運(yùn)行期間被分配一個(gè)臨時(shí)的數(shù)據(jù)區(qū)。說(shuō)明與建議:①
除了純粹的實(shí)參子程序用FC外,大部分功能編程采用FB;②FB編程中盡量用靜態(tài)變量Static作為中間變量,少用或不用TEMP臨時(shí)變量(因?yàn)橛袝r(shí)因?yàn)闀?huì)在賦值先后方面出現(xiàn)不注意的問(wèn)題);③創(chuàng)建常用的一些功能塊庫(kù)時(shí),盡量選用FB;④在調(diào)用FB較多的場(chǎng)合時(shí),盡量采用多重背景數(shù)據(jù)塊形式,這樣可以節(jié)省存儲(chǔ)空間。2.函數(shù)塊FB及其應(yīng)用(6)臨時(shí)變量Temp在使用時(shí)的問(wèn)題臨時(shí)變量可以在組織快OB、功能FC和功能塊FB中使用,當(dāng)塊執(zhí)行時(shí)它們被用來(lái)臨時(shí)存儲(chǔ)數(shù)據(jù),一旦塊執(zhí)行結(jié)束,堆棧的地址將被重新分配用于其它程序塊使用,此地址上的數(shù)據(jù)不會(huì)被清零,直到被其他程序塊賦予新值,需要遵循“先賦值,再使用”的原則。有常見(jiàn)的幾種情況可能導(dǎo)致程序運(yùn)行不正常:(1)某個(gè)塊程序運(yùn)行時(shí)好時(shí)壞,其中某個(gè)數(shù)值或多個(gè)數(shù)值偶爾不正常。此問(wèn)題在于,沒(méi)有遵循“先賦值,再使用”的原則。Temp的數(shù)值在每個(gè)掃描周期開(kāi)始沒(méi)有被明確的賦值,則此地址的數(shù)值將是隨機(jī)的。
(2)多個(gè)塊使用Temp,單獨(dú)使用任意一個(gè)都正常,無(wú)法一起正常使用。此問(wèn)題也是由于Temp變量未能先賦值,再使用。我們只要遵循“先賦值,再使用”的原則,就可避免這個(gè)問(wèn)題。(3)Temp變量無(wú)法實(shí)現(xiàn)自鎖。此問(wèn)題在于,Temp數(shù)值無(wú)法像M點(diǎn)或Q點(diǎn)一樣保持上一個(gè)周期的數(shù)值,Temp需要在每個(gè)掃描周期有一個(gè)明確的賦值,即先賦值(寫(xiě)),再使用(讀寫(xiě)),解決方法:FB可使用Static靜態(tài)變量,F(xiàn)C可使用M區(qū)或全局DB地址。三、數(shù)據(jù)塊1.數(shù)據(jù)塊簡(jiǎn)介數(shù)據(jù)塊(DataBlock,DB)用于存儲(chǔ)用戶(hù)數(shù)據(jù)及程序中間變量。與M數(shù)據(jù)區(qū)不同的是,M數(shù)據(jù)區(qū)的大小在CPU技術(shù)規(guī)范中已經(jīng)定義且不可擴(kuò)展,而數(shù)據(jù)塊存儲(chǔ)區(qū)由用戶(hù)定義,最大不能超過(guò)工作存儲(chǔ)區(qū)或裝載存儲(chǔ)區(qū)。最常用的是全局?jǐn)?shù)據(jù)塊和背景數(shù)據(jù)塊:全局(Global)數(shù)據(jù)塊:存儲(chǔ)供所有的代碼塊使用的數(shù)據(jù),所有的OB、FB和FC都可以訪(fǎng)問(wèn)。背景(Instance)數(shù)據(jù)塊:存儲(chǔ)供特定的FB使用的數(shù)據(jù),即對(duì)應(yīng)FB的輸入、輸出參數(shù)和局部靜態(tài)變量。盡管背景DB反映特定FB的數(shù)據(jù),然而任何代碼塊都可訪(fǎng)問(wèn)背景DB中的數(shù)據(jù)。2.全局?jǐn)?shù)據(jù)塊及其應(yīng)用1.全局?jǐn)?shù)據(jù)塊的生成新建博途項(xiàng)目,命名為“數(shù)據(jù)塊使用”,CPU選擇1215C。打開(kāi)項(xiàng)目視圖中文件夾“\PLC_1\程序塊”,雙擊其中的“添加新塊”,單擊打開(kāi)的對(duì)話(huà)框中的“數(shù)據(jù)塊”按鈕,在右側(cè)“類(lèi)型”下拉菜單中選擇“全局DB”(默認(rèn))。全局?jǐn)?shù)據(jù)塊默認(rèn)名稱(chēng)為“數(shù)據(jù)塊_1”,也可以手動(dòng)修改;數(shù)據(jù)塊編號(hào)為DB1。在打開(kāi)的數(shù)據(jù)塊編輯區(qū)中可以新建各種類(lèi)型的變量,在這里我們建立SB1(Bool)、SB2(Bool)、ADD1(int)、SUM1(Int)、ADD2(Real)和SUM2(Real)六個(gè)變量,并為ADD1和ADD2賦初值。2.全局?jǐn)?shù)據(jù)塊及其應(yīng)用2.全局?jǐn)?shù)據(jù)塊中數(shù)據(jù)的引用
全局?jǐn)?shù)據(jù)塊建立好后,在程序中可以引用其中的變量參與程序運(yùn)算。常用的引用方法有拖動(dòng)、選擇以及復(fù)制粘貼。其中拖動(dòng)方法編程效率較高。如圖所示,鼠標(biāo)單擊“數(shù)據(jù)塊_1”,在項(xiàng)目樹(shù)的下方出現(xiàn)該數(shù)據(jù)塊的“詳細(xì)視圖”,用戶(hù)可以用鼠標(biāo)將變量拖動(dòng)到程序地址位置。采用地址選擇的引用方式如圖所示,首先點(diǎn)擊觸點(diǎn)處的“??.?”,選擇“數(shù)據(jù)塊_1”,然后選擇數(shù)據(jù)塊中的數(shù)據(jù)(注意:引用的數(shù)據(jù)與指令數(shù)據(jù)類(lèi)型相關(guān),不是全部數(shù)據(jù))。2.全局?jǐn)?shù)據(jù)塊及其應(yīng)用3.全局?jǐn)?shù)據(jù)塊中數(shù)據(jù)的應(yīng)用接下來(lái)我們?cè)贠B1中編寫(xiě)如圖所示程序,下載并在線(xiàn)監(jiān)控。程序段1是為了調(diào)試方便,用I0.0和I0.1分別為“數(shù)據(jù)塊_1”.SB1和“數(shù)據(jù)塊_1”.SB2賦值。按下SB1,執(zhí)行整數(shù)加法,將結(jié)果寫(xiě)入“數(shù)據(jù)塊_1”.SUM1;按下SB2,執(zhí)行實(shí)數(shù)加法,將結(jié)果寫(xiě)入“數(shù)據(jù)塊_1”.SUM2中。圖4-23中是I0.0接通1次、I0.1接通4次結(jié)果。2.全局?jǐn)?shù)據(jù)塊及其應(yīng)用4.標(biāo)準(zhǔn)的DB塊和優(yōu)化的DB塊當(dāng)在博途中為S7-1200/S7-1500CPU添加一個(gè)DB塊時(shí),其缺省屬性為優(yōu)化的DB。通過(guò)右擊DB塊,查看其屬性,在“常規(guī)”選項(xiàng)下的“屬性”中有選擇是否“優(yōu)化的塊訪(fǎng)問(wèn)”選項(xiàng)。優(yōu)化的數(shù)據(jù)塊:大的數(shù)據(jù)類(lèi)型在塊的開(kāi)始,小的數(shù)據(jù)類(lèi)型在塊的末端,因此在塊中不會(huì)形成數(shù)據(jù)塊間隙。優(yōu)化的塊只能以符號(hào)尋址,編程者無(wú)需考慮DB塊中每個(gè)變量存儲(chǔ)的具體地址非優(yōu)化的數(shù)據(jù)塊:將數(shù)據(jù)塊屬性中的“優(yōu)化的塊訪(fǎng)問(wèn)”前面的對(duì)號(hào)去掉,該數(shù)據(jù)塊就會(huì)變?yōu)闃?biāo)準(zhǔn)的數(shù)據(jù)塊(非優(yōu)化)。標(biāo)準(zhǔn)DB中的數(shù)據(jù)根據(jù)用戶(hù)創(chuàng)建的數(shù)據(jù)類(lèi)型、順序?yàn)槊總€(gè)變量定義固定的地址,數(shù)據(jù)可以通過(guò)符號(hào)訪(fǎng)問(wèn)、絕對(duì)訪(fǎng)問(wèn)以及指針?lè)绞綄ぶ贰?.全局?jǐn)?shù)據(jù)塊及其應(yīng)用4.標(biāo)準(zhǔn)的DB塊和優(yōu)化的DB塊S7-1200/S7-1500中如有以下應(yīng)用,必須使用標(biāo)準(zhǔn)DB塊:1)與其它CPU建立S7單邊通信時(shí)(PUT/GET),用于存儲(chǔ)發(fā)送區(qū)數(shù)據(jù)和接收區(qū)數(shù)據(jù)的DB塊,或者與第三方設(shè)備進(jìn)行數(shù)據(jù)通信時(shí)(如與MCGS觸摸屏通信);2)與
WinCCV7.2進(jìn)行HMI連接時(shí),WinCCV7.2訪(fǎng)問(wèn)的S7-1200/S7-1500CPU的DB塊只能是標(biāo)準(zhǔn)的DB塊;3)使用SimaticNetV8.2與S7-1200/S7-1500PLC進(jìn)行OPC連接時(shí),OPC服務(wù)器訪(fǎng)問(wèn)S7-1200/S7-1500CPU的DB塊只能是標(biāo)準(zhǔn)的DB塊。2.全局?jǐn)?shù)據(jù)塊及其應(yīng)用5.創(chuàng)建復(fù)雜數(shù)據(jù)類(lèi)型數(shù)據(jù)-數(shù)組ARRAY【實(shí)例4-5】用數(shù)據(jù)塊創(chuàng)建一個(gè)非優(yōu)化二維數(shù)組ARY1[0..2,0..2],數(shù)據(jù)類(lèi)型Int,并編寫(xiě)程序?qū)⒛M量通道IW64采集的數(shù)據(jù)每秒保存一次到數(shù)組元素ARY[1,2]中。【解】(1)新建一全局?jǐn)?shù)據(jù)塊,命名為“數(shù)組DB塊”,按題目要求創(chuàng)建數(shù)組,如圖所示:2.全局?jǐn)?shù)據(jù)塊及其應(yīng)用6.創(chuàng)建復(fù)雜數(shù)據(jù)類(lèi)型數(shù)據(jù)-結(jié)構(gòu)體Struct結(jié)構(gòu)數(shù)據(jù)類(lèi)型(Struct)是一種由指定數(shù)目的數(shù)據(jù)元素且不同數(shù)據(jù)類(lèi)型元素組成的數(shù)據(jù)結(jié)構(gòu),其元素可以是基本數(shù)據(jù)類(lèi)型,也可以是Struct、Array等復(fù)雜數(shù)據(jù)類(lèi)型以及PLC數(shù)據(jù)類(lèi)型(UDT)等。【實(shí)例4-6】創(chuàng)建Struct數(shù)據(jù)類(lèi)型數(shù)據(jù)“電機(jī)數(shù)據(jù)”,包含變量“電機(jī)電流”(Real)、“電機(jī)溫度”(Real)、“電機(jī)轉(zhuǎn)速”(Int)、“電壓”(Int)、“斷路器”(Bool)。【解】如圖,在數(shù)據(jù)塊_1中創(chuàng)建了名為“電機(jī)數(shù)據(jù)”的結(jié)構(gòu)體變量。2.全局?jǐn)?shù)據(jù)塊及其應(yīng)用7.創(chuàng)建復(fù)雜數(shù)據(jù)類(lèi)型數(shù)據(jù)-PLC數(shù)據(jù)類(lèi)型UDTUDT類(lèi)型是一種由多個(gè)不同數(shù)據(jù)類(lèi)型元素組成的數(shù)據(jù)結(jié)構(gòu),元素可以是基本數(shù)據(jù)類(lèi)型,也可以是Struct、Array等復(fù)雜數(shù)據(jù)類(lèi)型以及其它UDT等。【實(shí)例4-7】建立一個(gè)簡(jiǎn)單的電機(jī)控制標(biāo)準(zhǔn)塊并多次調(diào)用,并使用UDT數(shù)據(jù)類(lèi)型提升編程效率。每臺(tái)電動(dòng)機(jī)都有啟動(dòng)、停止、運(yùn)行狀態(tài)和運(yùn)行次數(shù)四個(gè)參數(shù)由上位機(jī)進(jìn)行監(jiān)控。2.全局?jǐn)?shù)據(jù)塊及其應(yīng)用7.創(chuàng)建復(fù)雜數(shù)據(jù)類(lèi)型數(shù)據(jù)-PLC數(shù)據(jù)類(lèi)型UDT編寫(xiě)電機(jī)標(biāo)準(zhǔn)塊程序。新建FB,在FB中建立接口變量,如圖所示。在FB中編寫(xiě)電機(jī)控制程序。根據(jù)題目要求,所有電機(jī)均由上位機(jī)控制,并監(jiān)控其運(yùn)行狀態(tài)和運(yùn)行次數(shù)。3.多重背景數(shù)據(jù)塊
在調(diào)用功能塊(FB)時(shí),需要為其指定一個(gè)背景數(shù)據(jù)塊(InstanceDB),用來(lái)存放功能塊的輸入、輸出參數(shù)變量及靜態(tài)變量。在一個(gè)大型的程序中,往往會(huì)有很多的功能塊。如果為每一個(gè)功能塊(FB)都創(chuàng)建一個(gè)背景數(shù)據(jù)塊(InstanceDB),不僅費(fèi)時(shí)費(fèi)力,而且會(huì)使程序結(jié)構(gòu)變得混亂,不易理解,如在實(shí)例4-7中,調(diào)用了4次FB1,生成了4個(gè)背景數(shù)據(jù)塊。為了簡(jiǎn)化編程,提高程序的可讀性,西門(mén)子STEP7支持使用多重背景數(shù)據(jù)塊(Multi-instanceDB)。【實(shí)例4-8】使用多重背景數(shù)據(jù)塊(多重實(shí)例)的方式實(shí)現(xiàn)[實(shí)例4-7]中FB的多次調(diào)用。【解】在一個(gè)“主FB塊”中去調(diào)用其他的“子FB塊”,然后在分配背景DB時(shí)可選擇“多重實(shí)例”,當(dāng)在OB塊中調(diào)用“主FB塊”時(shí)就僅生成1個(gè)背景數(shù)據(jù)塊,這些“子FB塊”的數(shù)據(jù)存儲(chǔ)在“主FB塊”的靜態(tài)變量中,這就是“多重實(shí)例”。3.多重背景數(shù)據(jù)塊調(diào)用完成后的FB2編輯界面如圖所示。可見(jiàn)FB1的背景數(shù)據(jù)塊出現(xiàn)在FB2接口區(qū)的靜態(tài)變量Static中。完成程序變量賦值,并在OB1中調(diào)用FB2。如圖所示,調(diào)用FB2后,在項(xiàng)目樹(shù)中只有一個(gè)背景塊DB2,使整個(gè)程序變的十分簡(jiǎn)潔。四、組織塊S7-1200為用戶(hù)提供了不同的塊類(lèi)型來(lái)執(zhí)行自動(dòng)化系統(tǒng)中的任務(wù)。其中組織塊OB是操作系統(tǒng)和用戶(hù)程序之間的接口,可以通過(guò)對(duì)OB編程來(lái)實(shí)現(xiàn)特定功能。OB由操作系統(tǒng)調(diào)用,使用OB可以創(chuàng)建在特定時(shí)間執(zhí)行的程序,以及響應(yīng)特定事件的程序。熟悉各類(lèi)OB的使用對(duì)于提高編程效率和程序的執(zhí)行效率有很大的幫助。1.事件與組織塊事件,是對(duì)程序操作的一系列動(dòng)作。在PLC操作時(shí),有些事件是由系統(tǒng)預(yù)先設(shè)計(jì)好的,比如組織塊。在執(zhí)行組織塊時(shí),一般無(wú)法人工干預(yù),如果需要強(qiáng)制結(jié)束,就需要用到中斷事件或中斷指令。啟動(dòng)組織塊的事件事件類(lèi)型OB編號(hào)OB個(gè)數(shù)啟動(dòng)事件隊(duì)列深度OB優(yōu)先級(jí)優(yōu)先級(jí)組程序循環(huán)1或
123
1啟動(dòng)或結(jié)束前一循環(huán)OB111啟動(dòng)100或
123
1從STOP切換到RUN11時(shí)間延遲
123
4延遲時(shí)間到832循環(huán)中斷
123
4固定的循環(huán)時(shí)間到84硬件中斷
123
50上升沿(
16個(gè))、下降沿(
16個(gè))325HSC計(jì)數(shù)值=設(shè)定值,計(jì)數(shù)方向編號(hào),外部復(fù)位,最大分別6個(gè)166診斷錯(cuò)誤820或1模塊檢測(cè)到錯(cuò)誤89時(shí)間錯(cuò)誤800或1超過(guò)最大循環(huán)時(shí)間,調(diào)用的OB正在執(zhí)行,隊(duì)列溢出,因?yàn)橹袛嘭?fù)荷過(guò)高丟失中斷82632.程序循環(huán)OB
程序循環(huán)(Programcycle)OB在CPU處于RUN模式時(shí),周期性地循環(huán)執(zhí)行。可在程序循環(huán)OB中放置控制程序的指令或調(diào)用其它功能塊(FC或FB)。S7-1200允許使用多個(gè)程序循環(huán)OB,按OB的編號(hào)順序執(zhí)行。OB1是默認(rèn)設(shè)置,其它程序循環(huán)OB的編號(hào)必須大于或等于123。程序循環(huán)OB的優(yōu)先級(jí)為1,可被高優(yōu)先級(jí)的OB中斷;程序循環(huán)執(zhí)行一次需要的時(shí)間即為程序的循環(huán)掃描周期時(shí)間。最長(zhǎng)循環(huán)時(shí)間缺省設(shè)置為150ms。創(chuàng)建程序循環(huán)OB過(guò)程:打開(kāi)項(xiàng)目視圖中文件夾“\PLC_1\程序塊”,雙擊其中的“添加新塊”,單擊打開(kāi)的對(duì)話(huà)框中的“組織塊”按鈕,如圖所示,選中列表中的“Programcycle”,生成一個(gè)程序循環(huán)組織塊,OB默認(rèn)編號(hào)123。塊的名稱(chēng)默認(rèn)Main_1。3.啟動(dòng)OB啟動(dòng)(Startup)OB僅在CPU啟動(dòng)過(guò)程中被調(diào)用一次(上電,從STOP模式轉(zhuǎn)換成RUN模式)。在調(diào)用啟動(dòng)OB時(shí),CPU尚未進(jìn)行周期性循環(huán)執(zhí)行,程序時(shí)間監(jiān)控沒(méi)有激活。啟動(dòng)OB一般用于編寫(xiě)初始化程序,如賦初始值等。允許生成多個(gè)啟動(dòng)OB,默認(rèn)編號(hào)是OB100,其他的啟動(dòng)OB的編號(hào)應(yīng)大于等于123。一般只需要一個(gè)啟動(dòng)OB或者不用。【實(shí)例4-9】在啟動(dòng)OB100中無(wú)條件為地址為MW100賦初值100;有條件(當(dāng)I0.0=1時(shí))為MW102賦初值200。4.延時(shí)中斷OB
延時(shí)中斷(Timedelayinterrupt)OB在經(jīng)過(guò)一段指定的時(shí)間延時(shí)后,才執(zhí)行相應(yīng)的OB中的程序。S7-1200最多支持4個(gè)延時(shí)中斷OB,“SRT_DINT”指令用于啟動(dòng)延時(shí)中斷,該中斷在超過(guò)參數(shù)指定的延時(shí)時(shí)間后調(diào)用延時(shí)中斷OB。延時(shí)時(shí)間范圍1~60000ms,精度為1ms。“CAN_DINT”擴(kuò)展指令用于取消啟動(dòng)的延時(shí)中斷。“QRY_DINT”擴(kuò)展指令用于查詢(xún)延時(shí)中斷的狀態(tài)。延時(shí)中斷OB的編號(hào)必須為20~23,或大于等于123。
以上指令的相關(guān)詳細(xì)信息,請(qǐng)查看S7-1200系統(tǒng)手冊(cè)。5.循環(huán)中斷OB
循環(huán)中斷OB(Cyclicinterrupt)按設(shè)定的時(shí)間間隔循環(huán)執(zhí)行中斷OB中的程序。
例如,如果時(shí)間間隔為100ms,則在程序執(zhí)行期間會(huì)每隔100ms調(diào)用該OB一次。S7-1200用戶(hù)程序中最多可使用4個(gè)循環(huán)中斷OB或延時(shí)中斷OB。例如,如果已使用2個(gè)延時(shí)中斷OB,則在用戶(hù)程序中最多可以再插入2個(gè)循環(huán)中斷OB。【實(shí)例4-10】運(yùn)用循環(huán)中斷,使Q0.0實(shí)現(xiàn)周期為1s的方波輸出(500ms輸出為1,500ms輸出為0),調(diào)試完成后,重新設(shè)置方波周期為2s。6.硬件中斷OB
硬件中斷(Hardwareinterrupt)OB在發(fā)生相關(guān)硬件事件時(shí)執(zhí)行,可以快速的響應(yīng)并執(zhí)行硬件中斷OB中的程序(例如立即停止某些關(guān)鍵設(shè)備)。硬件中斷事件包括內(nèi)置數(shù)字輸入端的上升沿和下降沿事件以及HSC(高速計(jì)數(shù)器)事件。當(dāng)發(fā)生硬件中斷事件,硬件中斷OB將中斷正常的循環(huán)程序而優(yōu)先執(zhí)行。【實(shí)例4-11】當(dāng)硬件輸入I0.0上升沿時(shí),觸發(fā)硬件中斷OB40(執(zhí)行累加程序),當(dāng)硬件輸入I0.1上升沿時(shí),觸發(fā)硬件中斷OB41(執(zhí)行遞減程序)。【解】首先生成中斷組織塊,然后將I0.0和I0.1的上升沿關(guān)聯(lián)硬件中斷事件。(1)首先按照前述方法生成硬件中斷組織塊OB40,OB41,分別命名為“Hardwareinterrupt1”和“Hardwareinterrupt2”。(2)在OB40中編程,當(dāng)硬件輸入I0.0上升沿時(shí),執(zhí)行MW200加1;OB41中編程,當(dāng)硬件輸入I0.1上升沿時(shí),執(zhí)行MW200減1,程序如圖4-46所示。7.時(shí)間錯(cuò)誤中斷OB時(shí)間錯(cuò)誤中斷(Timeerrorinterrupt)OB的編號(hào)為80,當(dāng)CPU中的程序執(zhí)行時(shí)間超過(guò)最大循環(huán)時(shí)間或者發(fā)生時(shí)間錯(cuò)誤事件(例如循環(huán)中斷OB仍在執(zhí)行前一次調(diào)用時(shí),該循環(huán)中斷OB的啟動(dòng)事件再次發(fā)生)時(shí),將觸發(fā)時(shí)間錯(cuò)誤中斷優(yōu)先執(zhí)行OB80。由于OB80的優(yōu)先級(jí)最高,它將中斷所有正常循環(huán)程序或其它所有OB事件的執(zhí)行而優(yōu)先執(zhí)行。8.診斷錯(cuò)誤OB診斷錯(cuò)誤(Diagnosticerrorinterrupt)的編號(hào)為OB82。S7-1200可以為具有診斷功能的模塊啟用診斷錯(cuò)誤中斷功能來(lái)檢測(cè)模塊狀態(tài)。OB82是唯一支持診斷錯(cuò)誤事件的OB,出現(xiàn)故障(進(jìn)入事件),故障解除(離開(kāi)事件)均會(huì)觸發(fā)診斷中斷OB82。當(dāng)模塊檢測(cè)到故障并且在軟件中使能了診斷錯(cuò)誤中斷時(shí),操作系統(tǒng)將啟動(dòng)診斷錯(cuò)誤中斷,診斷錯(cuò)誤中斷OB82將中斷正常的循環(huán)程序優(yōu)先執(zhí)行。此時(shí)無(wú)論程序中有沒(méi)有診斷中斷OB82,CPU都會(huì)保持RUN模式,同時(shí)CPU的ERROR指示燈閃爍。五、交叉引用表與程序信息1.交叉引用表
交叉引用表提供項(xiàng)目中對(duì)象的使用概況。可以看到哪些對(duì)象相互依賴(lài)以及各對(duì)象所在的位置。因此,交叉引用是項(xiàng)目文檔的一部分。還可以直接跳到對(duì)象的使用位置。
在TIAPortalV15及更高版本中,交叉引用中將顯示帶有版本標(biāo)識(shí)的指令。不帶版本標(biāo)識(shí)的指令則不顯示。(1)打開(kāi)交叉引用的方法選中需要查詢(xún)的目標(biāo),在“工具”(Tools)菜單中,選擇“交叉引用”(Cross-reference)命令。1.交叉引用表選中需要查詢(xún)的目標(biāo)(可以是某個(gè)程序,某個(gè)塊,某個(gè)程序段,某個(gè)變量,某個(gè)塊接口,某個(gè)PLC數(shù)據(jù)類(lèi)型等),在右鍵下拉菜單中,選擇“交叉引用”或“交叉引用信息”。(1)打開(kāi)交叉引用的方法1.交叉引用表為了快速搜索特定的交叉引用并進(jìn)行合理排列,可對(duì)交叉引用列表進(jìn)行過(guò)濾篩選。博途軟件安裝后,交叉引用表中集成了系統(tǒng)過(guò)濾器。系統(tǒng)過(guò)濾器通常位于過(guò)濾器選擇的下拉列表中,且無(wú)法刪除。博途默認(rèn)設(shè)置的交叉引用過(guò)濾器為“顯示帶有引用的對(duì)象”。如下圖所示。(2)交叉引用過(guò)濾2.程序信息
博途設(shè)備(如PLC_1)項(xiàng)目樹(shù)中,有“程序信息”選項(xiàng)
,可雙擊進(jìn)入程序信息界面。用戶(hù)程序的程序信息包含表中指定的視圖。視圖應(yīng)用調(diào)用結(jié)構(gòu)顯示用戶(hù)程序內(nèi)塊的調(diào)用結(jié)構(gòu)并概要說(shuō)明所用的塊及塊間的關(guān)系。從屬結(jié)構(gòu)顯示用戶(hù)程序中使用的塊的列表。塊顯示在第一級(jí),調(diào)用或使用此塊的塊縮進(jìn)排列在其下方。與調(diào)用結(jié)構(gòu)不同,實(shí)例塊單獨(dú)列出。視圖應(yīng)用分配列表概要說(shuō)明用戶(hù)程序中已分配的I、Q和M存儲(chǔ)區(qū)的地址位。還指示是否通過(guò)訪(fǎng)問(wèn)從S7程序中分配了地址或是否已將地址分配給SIMATICS7模塊。資源顯示CPU對(duì)象(OB、FC、FB、DB、用戶(hù)自定義數(shù)據(jù)類(lèi)型和PLC變量)、CPU存儲(chǔ)區(qū)域以及現(xiàn)有I/O模塊的硬件資源。2.程序信息(1)調(diào)用結(jié)構(gòu)
調(diào)用結(jié)構(gòu)用于說(shuō)明S7程序中各個(gè)塊的調(diào)用層級(jí)。調(diào)用結(jié)構(gòu)將以表格形式顯示用戶(hù)程序中所用的塊。調(diào)用結(jié)構(gòu)的第一級(jí)將彩色高亮顯示,指示程序中其它所有塊都未調(diào)用的塊。組織塊通常顯示在調(diào)用結(jié)構(gòu)的第一級(jí)。功能、功能塊和數(shù)據(jù)塊僅當(dāng)未被組織塊調(diào)用時(shí)才顯示在第一級(jí)。當(dāng)某個(gè)塊調(diào)用其它塊或功能時(shí),被調(diào)用塊或功能以縮進(jìn)形式列在調(diào)用塊下。指令和塊只有在被某個(gè)塊調(diào)用時(shí),它們才顯示在調(diào)用結(jié)構(gòu)中。2.程序信息(2)從屬結(jié)構(gòu)
從屬結(jié)構(gòu)將顯示程序中每個(gè)塊的相互關(guān)系。顯示從屬結(jié)構(gòu)時(shí)會(huì)顯示用戶(hù)程序中使用的塊的列表。如果某個(gè)塊顯示在最左側(cè),則調(diào)用或使用該塊的其它塊將縮進(jìn)排列在該
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 花店學(xué)徒合同協(xié)議書(shū)
- 老公生病離婚協(xié)議書(shū)
- 簽訂放棄撫養(yǎng)協(xié)議書(shū)
- 解決農(nóng)村房產(chǎn)協(xié)議書(shū)
- 建造師執(zhí)業(yè)能力試題及答案2025
- 聯(lián)合科研立項(xiàng)協(xié)議書(shū)
- 移民項(xiàng)目移交協(xié)議書(shū)
- 終身會(huì)員申請(qǐng)協(xié)議書(shū)
- 綠化種植勞務(wù)協(xié)議書(shū)
- 草場(chǎng)補(bǔ)償安置協(xié)議書(shū)
- 奧沙利鉑過(guò)敏反應(yīng)
- 項(xiàng)目部臨時(shí)動(dòng)火作業(yè)審批表
- 高效水泥助磨劑PPT課件(PPT 66頁(yè))
- 生物防治第三講
- 旁站監(jiān)理實(shí)施細(xì)則(完整版)
- 學(xué)業(yè)水平考試復(fù)習(xí)高中語(yǔ)文文言文課本翻譯
- 蘇教版二年級(jí)(下冊(cè))科學(xué)全冊(cè)單元測(cè)試卷含期中期末(有答案)
- 常用原料凈料率參照表
- 高低溫試驗(yàn)報(bào)告
- 第一章 混凝土拌合站組織機(jī)構(gòu)框圖及崗位職責(zé)
- 指南預(yù)應(yīng)力簡(jiǎn)支t形梁橋
評(píng)論
0/150
提交評(píng)論