PLC應(yīng)用技術(shù)項(xiàng)目化教程(S7-1200) 課件 項(xiàng)目三 PLC的編程方法 下_第1頁(yè)
PLC應(yīng)用技術(shù)項(xiàng)目化教程(S7-1200) 課件 項(xiàng)目三 PLC的編程方法 下_第2頁(yè)
PLC應(yīng)用技術(shù)項(xiàng)目化教程(S7-1200) 課件 項(xiàng)目三 PLC的編程方法 下_第3頁(yè)
PLC應(yīng)用技術(shù)項(xiàng)目化教程(S7-1200) 課件 項(xiàng)目三 PLC的編程方法 下_第4頁(yè)
PLC應(yīng)用技術(shù)項(xiàng)目化教程(S7-1200) 課件 項(xiàng)目三 PLC的編程方法 下_第5頁(yè)
已閱讀5頁(yè),還剩116頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目三PLC的編程方法PLC應(yīng)用技術(shù)項(xiàng)目化教程(s7-1200)教學(xué)導(dǎo)航技能目標(biāo)0201知識(shí)目標(biāo)1)掌握博途軟件的使用2)學(xué)習(xí)經(jīng)驗(yàn)法編程方法,理解掌握順序功能圖編程方法。3)掌握FC(功能)和FB(功能塊)的應(yīng)用4)掌握DB(數(shù)據(jù)塊)的應(yīng)用5)掌握OB(組織塊)的應(yīng)用1)會(huì)利用博途軟件編寫、運(yùn)行、調(diào)試復(fù)雜的程序。2)會(huì)利用FC(功能)、FB(功能塊)編寫程序,并完成調(diào)用。目錄自動(dòng)剪板機(jī)的控制0301自動(dòng)送料小車的控制鉆床的控制02數(shù)碼管顯示電路的設(shè)計(jì)04廣場(chǎng)噴泉系統(tǒng)控制05液體混合系統(tǒng)設(shè)計(jì)06求根公式的計(jì)算07脈沖信號(hào)的控制08數(shù)碼管顯示電路的設(shè)計(jì)04教學(xué)目標(biāo):會(huì)使用S7-1200帶形參的FC塊編寫PLC梯形圖程序并學(xué)會(huì)用PLC的OB1塊調(diào)用FC塊。教學(xué)重點(diǎn):

理解并正確使用用戶變量名接口定義形參,并會(huì)填寫OB1塊中實(shí)參,調(diào)用FC塊。教學(xué)難點(diǎn):會(huì)使用用戶變量名接口定義形參。技能目標(biāo):會(huì)使用S7-1200帶形參的FC塊編寫PLC梯形圖程序并學(xué)會(huì)用PLC的OB1塊調(diào)用FC塊。任務(wù)四

數(shù)碼管顯示電路的設(shè)計(jì)

按下啟動(dòng)按鈕SB1,報(bào)警燈亮,并且開始倒計(jì)時(shí)9S顯示,顯示器件為七段LED數(shù)碼管。按下停止按鈕,報(bào)警燈熄滅,數(shù)碼管顯示為0。1、用戶程序結(jié)構(gòu)1、用戶程序結(jié)構(gòu)

模塊化編程將復(fù)雜的自動(dòng)化任務(wù)劃分為對(duì)應(yīng)于生產(chǎn)過(guò)程的技術(shù)功能的較小的子任務(wù),每個(gè)子任務(wù)對(duì)應(yīng)于一個(gè)稱為“塊”的子程序,可以通過(guò)塊與塊之間的相互調(diào)用來(lái)組織程序。這樣的程序易于修改、查錯(cuò)和調(diào)試。塊簡(jiǎn)要描述組織塊(OB)操作系統(tǒng)與用戶程序的接口,決定用戶程序的結(jié)構(gòu)功能塊(FB)用戶編寫的包含經(jīng)常使用的功能的子程序,有專用的背景數(shù)據(jù)塊功能(FC)用戶編寫的包含經(jīng)常使用的功能的子程序,沒(méi)有專用的背景數(shù)據(jù)塊背景數(shù)據(jù)塊(DB)用于保存FB的輸入變量、輸出變量和靜態(tài)變量,其數(shù)據(jù)在編譯時(shí)自動(dòng)生成全局?jǐn)?shù)據(jù)塊(DB)存儲(chǔ)用戶數(shù)據(jù)的數(shù)據(jù)區(qū)域,供所有的代碼塊共享1、用戶程序結(jié)構(gòu)1、用戶程序結(jié)構(gòu)塊結(jié)構(gòu)顯著增加了PLC程序的組織透明性、可理解性和易維護(hù)性。OB、FB、FC都包含代碼,統(tǒng)稱為代碼塊(Code)。被調(diào)用的代碼塊又可以調(diào)用別的代碼塊,這種調(diào)用稱為嵌套調(diào)用。在塊調(diào)用中,調(diào)用者可以是各種代碼塊,被調(diào)用的塊是OB之外的代碼塊。調(diào)用功能時(shí)需要為它指定一個(gè)背景數(shù)據(jù)塊。編程時(shí)被調(diào)用的塊應(yīng)該是已經(jīng)存在的塊,即應(yīng)先創(chuàng)建被調(diào)用的塊及其背景數(shù)據(jù)塊。1、用戶程序結(jié)構(gòu)1、用戶程序結(jié)構(gòu)組織塊(OrganizationBlock,OB)是操作系統(tǒng)與用戶程序的接口,由操作系統(tǒng)調(diào)用,用于控制循環(huán)掃描和中斷程序的執(zhí)行、PLC的啟動(dòng)和錯(cuò)誤處理等。組織塊的程序是用戶編寫的。每個(gè)組織塊必須有唯一的OB編號(hào),200之前的某些編號(hào)是保留的,其他OB的編號(hào)應(yīng)大于等于200.沒(méi)有可以調(diào)用OB的指令,S7-1200CPU具有基于事件的特性,只有發(fā)生了某些特定事件,相應(yīng)的OB才會(huì)被執(zhí)行。不要試圖在OB/FC/FB中調(diào)用某個(gè)OB,除非用戶觸發(fā)與此OB相關(guān)的指令或條件。例如用戶可以在OB1中通過(guò)SRT_DINT指令設(shè)置延遲時(shí)間,當(dāng)延遲時(shí)間到達(dá)時(shí),延遲中斷OB被觸發(fā)。當(dāng)特定事件發(fā)生時(shí),相應(yīng)OB被調(diào)用,無(wú)論其是否包含程序代碼1、用戶程序結(jié)構(gòu)功能(Function,F(xiàn)C)是用戶程序編寫的子程序,它包含完成特定任務(wù)的代碼和參數(shù)。FC和FB有與調(diào)用它的塊共享的輸入?yún)?shù)和輸出參數(shù)。執(zhí)行完FC和FB后,返回調(diào)用它的代碼塊。功能是快速執(zhí)行的代碼塊,用于執(zhí)行下列任務(wù):完成標(biāo)準(zhǔn)的和可重復(fù)使用的操作,例如算術(shù)運(yùn)算;完成技術(shù)功能,例如使用位邏輯運(yùn)算的控制??梢栽诔绦虻牟煌恢枚啻握{(diào)用同一個(gè)FC,這可以簡(jiǎn)化重復(fù)執(zhí)行的任務(wù)的變成。功能沒(méi)有固定的存儲(chǔ)區(qū),執(zhí)行結(jié)束后,其臨時(shí)變量中的數(shù)據(jù)就丟失了??梢杂萌?jǐn)?shù)據(jù)塊或M存儲(chǔ)區(qū)來(lái)存儲(chǔ)那些在功能執(zhí)行結(jié)束后需要保持的數(shù)據(jù)。1、用戶程序結(jié)構(gòu)功能塊(FunctionBlock,F(xiàn)B)是用戶程序編寫的子程序。調(diào)用功能塊時(shí),需要制定背景數(shù)據(jù)塊,作為功能塊專用的存儲(chǔ)區(qū)。CPU執(zhí)行FB中的程序代碼,將塊的輸入、輸出參數(shù)和局部靜態(tài)變量保存在背景數(shù)據(jù)塊中,以便可以從一個(gè)掃描周期到下一個(gè)掃描周期快速訪問(wèn)它們。FB的典型應(yīng)用是執(zhí)行不能在一個(gè)掃描周期結(jié)束的操作。在調(diào)用FB時(shí),打開了對(duì)應(yīng)的背景數(shù)據(jù)塊,后者的變量可以供其他代碼塊使用。調(diào)用同一個(gè)功能塊時(shí)使用不同的背景數(shù)據(jù)塊,可以控制不同的設(shè)備。S7-1200的部分指令(例如IEC標(biāo)準(zhǔn)的定時(shí)器和計(jì)數(shù)器指令)實(shí)際上是功能塊,在調(diào)用它們時(shí)需要指定配套的背景數(shù)據(jù)塊。2、生成與調(diào)用功能(FC)

單擊“項(xiàng)目樹”中相應(yīng)的PLC項(xiàng)目,在“程序塊”的下層選項(xiàng)中選擇“添加新塊”,在彈出的“添加新塊”窗口中選擇功能(函數(shù))FC,輸入規(guī)劃的塊名稱,選擇要使用的編程語(yǔ)言及編號(hào)方式,然后點(diǎn)擊確定。2、創(chuàng)建功能(FC)中的局部變量局部變量的名字由字符(包括漢字)和數(shù)字組成,主要分為如下五種類型。>Input(輸入?yún)?shù)):由調(diào)用它的塊提供的輸入數(shù)據(jù)。>Output(輸出參數(shù)):返回給調(diào)用它的塊的程序執(zhí)行結(jié)果。>InOut(輸入_輸出參數(shù)):初值由調(diào)用它的塊提供,塊執(zhí)行后將它的返回值返回給調(diào)用它的塊。>Temp(臨時(shí)數(shù)據(jù)):暫時(shí)保存在局部數(shù)據(jù)堆棧中的數(shù)據(jù)。只是在執(zhí)行塊時(shí)使用臨時(shí)數(shù)據(jù),執(zhí)行完后,不再保存臨時(shí)數(shù)據(jù)的數(shù)值,它可能被別的塊的臨時(shí)數(shù)據(jù)覆蓋。>Return中的Ret_Val(返回值),屬于輸出參數(shù),一般是用來(lái)返回錯(cuò)誤的,默認(rèn)的情況它是沒(méi)有數(shù)據(jù)類型的,在調(diào)用FC時(shí)也看不到這個(gè)輸出參數(shù)。只要在局部變量表中設(shè)置RET_VAL的數(shù)據(jù)類型,在調(diào)用時(shí)就能看到它在方框的右邊出現(xiàn),所以它是一個(gè)輸出參數(shù)。。2、創(chuàng)建功能(FC)中的局部變量生成局部變量時(shí),不需要指定存儲(chǔ)器地址,根據(jù)各變量的類型,程序編輯器自動(dòng)地為所有局部變量指定存儲(chǔ)器地址。3、在主程序OB1中調(diào)用功能FC1在Main[OB1]中,按住鼠標(biāo)左鍵將FC1(電動(dòng)機(jī)自鎖運(yùn)行)拉到程序區(qū)。這樣就完成了FC1的調(diào)用。FC1左邊的“啟動(dòng)”等是在FC1的接口區(qū)中定義的Input和InOut參數(shù),右邊的“電動(dòng)機(jī)繼電器”是Output參數(shù),即局部參數(shù),亦稱為形參。在OB1中調(diào)用FC1時(shí),需要給每個(gè)形參指定實(shí)際的參數(shù),簡(jiǎn)稱為實(shí)參,如I0.0。4、功能(FC)的實(shí)際應(yīng)用能夠顯示數(shù)字0~9的數(shù)碼管在生產(chǎn)、生活中應(yīng)用非常廣泛,其基本原理如圖所示,當(dāng)我們編寫合適的程序段,即功能(FC),就可以按照需求在對(duì)應(yīng)的數(shù)碼管上顯示需要的數(shù)字,當(dāng)出現(xiàn)多為顯示需求時(shí),比如身份證號(hào)碼、手機(jī)號(hào)碼,就可以通過(guò)多次調(diào)用此功能(FC)來(lái)實(shí)現(xiàn)。4、功能(FC)的實(shí)際應(yīng)用(1)目的與要求

通過(guò)完成八盞燈的顯示控制,每秒切換,循環(huán)顯示。掌握功能(FC)程序設(shè)計(jì)以及在OB1中調(diào)用的方法。(2)分配I/O地址

根據(jù)任務(wù)需求分析,輸入地址為:?jiǎn)?dòng)按鈕(I1.0),停止按鈕(I1.1)。輸出地址為:燈1-燈8對(duì)應(yīng)為Q1.0-Q1.7。4、功能(FC)的實(shí)際應(yīng)用(3)創(chuàng)建功能(FC)及其局部變量使用鼠標(biāo)打開、調(diào)整FC1的“塊接口”區(qū)域,在接口區(qū)中生成局部變量,在Input類型中添加“啟動(dòng)按鈕”,數(shù)據(jù)類型選擇為“Bool”。用同樣的方法將其他的輸入/輸出、中間變量添加到接口中。如圖所示。4、功能(FC)的實(shí)際應(yīng)用4、功能(FC)的實(shí)際應(yīng)用4、功能(FC)的實(shí)際應(yīng)用5、功能(FC)的實(shí)際應(yīng)用5、任務(wù)實(shí)施按下啟動(dòng)按鈕SB1,報(bào)警燈亮,并且開始倒計(jì)時(shí)9S顯示,顯示器件為七段LED數(shù)碼管。按下停止按鈕,報(bào)警燈熄滅,數(shù)碼管顯示為0。1.S7-1200定時(shí)器的分類任務(wù)實(shí)施任務(wù)4數(shù)碼管顯示電路的設(shè)計(jì)設(shè)計(jì)步驟1、分析控制要求,確定輸入輸出分配。輸入輸出地址功能地址功能I1.0啟動(dòng)按鈕Q1.0aI1.1停止按鈕Q1.1bQ1.2c

Q1.3d

Q1.4e

Q1.5f

Q1.6g

Q1.7報(bào)警燈1.S7-1200定時(shí)器的分類任務(wù)實(shí)施任務(wù)4數(shù)碼管顯示電路的設(shè)計(jì)設(shè)計(jì)步驟2、建立主程序變量表。1.S7-1200定時(shí)器的分類任務(wù)實(shí)施任務(wù)4數(shù)碼管顯示電路的設(shè)計(jì)設(shè)計(jì)步驟3、建立FC及局部變量表。1.S7-1200定時(shí)器的分類任務(wù)實(shí)施任務(wù)4數(shù)碼管顯示電路的設(shè)計(jì)設(shè)計(jì)步驟4、編寫FC程序1.S7-1200定時(shí)器的分類任務(wù)實(shí)施任務(wù)4數(shù)碼管顯示電路的設(shè)計(jì)設(shè)計(jì)步驟4、編寫FC程序1.S7-1200定時(shí)器的分類任務(wù)實(shí)施任務(wù)4數(shù)碼管顯示電路的設(shè)計(jì)設(shè)計(jì)步驟4、編寫FC程序1.S7-1200定時(shí)器的分類任務(wù)實(shí)施任務(wù)4數(shù)碼管顯示電路的設(shè)計(jì)設(shè)計(jì)步驟4、編寫FC程序1.S7-1200定時(shí)器的分類任務(wù)實(shí)施任務(wù)4數(shù)碼管顯示電路的設(shè)計(jì)設(shè)計(jì)步驟4、編寫FC程序1.S7-1200定時(shí)器的分類任務(wù)實(shí)施任務(wù)4數(shù)碼管顯示電路的設(shè)計(jì)設(shè)計(jì)步驟4、編寫FC程序1.S7-1200定時(shí)器的分類任務(wù)實(shí)施任務(wù)4數(shù)碼管顯示電路的設(shè)計(jì)設(shè)計(jì)步驟4、編寫FC程序1.S7-1200定時(shí)器的分類任務(wù)實(shí)施任務(wù)4數(shù)碼管顯示電路的設(shè)計(jì)設(shè)計(jì)步驟4、編寫FC程序1.S7-1200定時(shí)器的分類任務(wù)實(shí)施任務(wù)4數(shù)碼管顯示電路的設(shè)計(jì)設(shè)計(jì)步驟4、編寫FC程序1.S7-1200定時(shí)器的分類任務(wù)實(shí)施任務(wù)4數(shù)碼管顯示電路的設(shè)計(jì)設(shè)計(jì)步驟4、編寫FC程序1.S7-1200定時(shí)器的分類任務(wù)實(shí)施任務(wù)4數(shù)碼管顯示電路的設(shè)計(jì)設(shè)計(jì)步驟4、編寫FC程序1.S7-1200定時(shí)器的分類任務(wù)實(shí)施任務(wù)4數(shù)碼管顯示電路的設(shè)計(jì)設(shè)計(jì)步驟5、調(diào)用FC并調(diào)試程序廣場(chǎng)噴泉系統(tǒng)控制05任務(wù)5廣場(chǎng)噴泉系統(tǒng)控制控制要求:一個(gè)噴泉池里有A、B、C三種噴頭。噴泉的噴水規(guī)律是:按下啟動(dòng)按鈕,噴泉控制裝置開始工作;按下停止按鈕,噴泉裝置停止工作。噴泉的工作方式有以下兩種,可通過(guò)方式選擇開關(guān)來(lái)選擇。方式一:開始工作時(shí),A噴頭噴水2s,接著B噴頭噴水2s,然后C噴頭噴水2s,最后D噴頭噴水5s;重復(fù)上述過(guò)程,直到按下停止按鈕為止。

方式二:開始工作時(shí),A、D噴頭噴水3s,接著B、C噴頭噴水3s,停1s,如此交替運(yùn)行兩次,然后4組噴頭全噴水7s;重復(fù)上述過(guò)程,直到按下停止按鈕。1、用戶程序結(jié)構(gòu)功能塊(FunctionBlock,F(xiàn)B)是用戶程序編寫的子程序。調(diào)用功能塊時(shí),需要制定背景數(shù)據(jù)塊,作為功能塊專用的存儲(chǔ)區(qū)。CPU執(zhí)行FB中的程序代碼,將塊的輸入、輸出參數(shù)和局部靜態(tài)變量保存在背景數(shù)據(jù)塊中,以便可以從一個(gè)掃描周期到下一個(gè)掃描周期快速訪問(wèn)它們。FB的典型應(yīng)用是執(zhí)行不能在一個(gè)掃描周期結(jié)束的操作。在調(diào)用FB時(shí),打開了對(duì)應(yīng)的背景數(shù)據(jù)塊,后者的變量可以供其他代碼塊使用。調(diào)用同一個(gè)功能塊時(shí)使用不同的背景數(shù)據(jù)塊,可以控制不同的設(shè)備。S7-1200的部分指令(例如IEC標(biāo)準(zhǔn)的定時(shí)器和計(jì)數(shù)器指令)實(shí)際上是功能塊,在調(diào)用它們時(shí)需要指定配套的背景數(shù)據(jù)塊。2、生成與調(diào)用功能塊(FB)

單擊“項(xiàng)目樹”中相應(yīng)的PLC項(xiàng)目,在“程序塊”的下層選項(xiàng)中選擇“添加新塊”,在彈出的“添加新塊”窗口中選擇功能(函數(shù)塊)FB,輸入規(guī)劃的塊名稱,選擇要使用的編程語(yǔ)言及編號(hào)方式,然后點(diǎn)擊確定。2、創(chuàng)建功能塊(FB)中的局部變量與功能(FC)的應(yīng)用類似,也需要在此功能(FB)內(nèi)部生成局部變量,局部變量只能在它所在的塊中使用。與功能(FC)類似,功能塊(FB)也有Input(輸入?yún)?shù))、Output(輸出參數(shù))、InOut(輸入_輸出參數(shù))、Temp(臨時(shí)數(shù)據(jù))等類型數(shù)據(jù)。功能塊(FB)可以定義靜態(tài)變量(Static),此類型變量能夠在塊調(diào)用結(jié)束后將其數(shù)值保存下來(lái)且不產(chǎn)生對(duì)外的接口。2、創(chuàng)建功能塊(FB)中的局部變量功能塊(FB)的輸入、輸出和靜態(tài)變量用指定的背景數(shù)據(jù)塊保存,但是不會(huì)保存Temp(臨時(shí)數(shù)據(jù))。功能塊FB有背景數(shù)據(jù)塊,功能FC沒(méi)有背景數(shù)據(jù)塊。功能FC只能在功能內(nèi)部訪問(wèn)它的局部變量,功能塊FB可以被其他代碼塊或HMI訪問(wèn)背景數(shù)據(jù)塊中的變量。功能FC沒(méi)有靜態(tài)變量,功能塊FB有保存在背景數(shù)據(jù)塊中的靜態(tài)變量。功能FC如果有執(zhí)行完后需要保存的數(shù)據(jù),只能存放在全局變量中,但這樣會(huì)影響功能的可移植性。功能塊FB的局部變量(不包含Temp)有默認(rèn)值(初始值),功能FC的局部變量沒(méi)有初始值。在調(diào)用功能塊FB時(shí)如果沒(méi)有設(shè)置某些輸入、輸出參數(shù)的實(shí)參,將使用背景數(shù)據(jù)塊中的初始值。調(diào)用功能時(shí)應(yīng)給所有的形參指定實(shí)參。2、創(chuàng)建功能塊(FB)中的局部變量3、在主程序OB1中調(diào)用功能塊FB1在Main[OB1]中,按住鼠標(biāo)左鍵將FB1(電動(dòng)機(jī)自鎖運(yùn)行)拉到程序區(qū)。這樣就完成了FB1的調(diào)用。FB1左邊的“啟動(dòng)”等是在FB1的接口區(qū)中定義的Input參數(shù),右邊的“電動(dòng)機(jī)繼電器”是Output參數(shù),即局部參數(shù),亦稱為形參。在OB1中調(diào)用FB1時(shí),需要給每個(gè)形參指定實(shí)際的參數(shù),簡(jiǎn)稱為實(shí)參,如I0.0。4、FB應(yīng)用實(shí)例利用FB,編寫燈的閃爍程序??刂埔螅喊聪聠?dòng)按鈕,Q1.0燈亮,1S后Q1.1燈亮,按照這個(gè)規(guī)律燈依次移位,當(dāng)Q1.7亮1S后,從Q1.0開始亮2S,間隔2S移位,依次循環(huán)。按下停止按鈕,所有燈停止。4、FB應(yīng)用實(shí)例二、設(shè)計(jì)步驟:1、分析控制要求,確定輸入輸出分配。。輸入輸出地址功能地址功能I1.0啟動(dòng)按鈕Q1.0-Q1.7八盞燈I1.1停止按鈕4、FB應(yīng)用實(shí)例二、設(shè)計(jì)步驟:2、建立變量表4、FB應(yīng)用實(shí)例二、設(shè)計(jì)步驟:3、添加FB,并定義局部變量4、FB應(yīng)用實(shí)例二、設(shè)計(jì)步驟:4、編寫FB程序4、FB應(yīng)用實(shí)例二、設(shè)計(jì)步驟:4、編寫FB程序4、FB應(yīng)用實(shí)例二、設(shè)計(jì)步驟:4、編寫FB程序4、FB應(yīng)用實(shí)例二、設(shè)計(jì)步驟:5、編寫OB1程序并調(diào)試運(yùn)行。5、任務(wù)實(shí)施音樂(lè)噴泉:任務(wù)要求:一個(gè)噴泉池里有A、B、C、D四種噴頭。噴泉的噴水規(guī)律是:按下啟動(dòng)按鈕,噴泉控制裝置開始工作;按下停止按鈕,噴泉裝置停止工作。噴泉的工作方式有以下兩種,可通過(guò)方式選擇開關(guān)來(lái)選擇。方式一:開始工作時(shí),A噴頭噴水2s,接著B噴頭噴水2s,然后C噴頭噴水2s,最后D噴頭噴水5s;重復(fù)上述過(guò)程,直到按下停止按鈕為止。

方式二:開始工作時(shí),A、D噴頭噴水3s,接著B、C噴頭噴水3s,停1s,如此交替運(yùn)行兩次,然后4組噴頭全噴水7s;重復(fù)上述過(guò)程,直到按下停止按鈕。5、任務(wù)實(shí)施分配I/O地址根據(jù)任務(wù)需求分析:輸入功能輸出功能I1.0啟動(dòng)按鈕Q1.0A噴頭I1.1停止按鈕Q1.1B噴頭I0.4選擇開關(guān)Q1.2C噴頭

Q1.3D噴頭5、任務(wù)實(shí)施創(chuàng)建功能塊(FB)雙擊項(xiàng)目樹中添加新塊,點(diǎn)擊FB塊,在名稱欄中填寫“廣場(chǎng)噴泉控制程序設(shè)計(jì)”,在語(yǔ)言欄中選擇LAD,點(diǎn)擊確定,創(chuàng)建FB1功能塊。使用同樣的方法生成功能塊FB2(方式一)和FB3(方式二)。OB1FB1FB2FB35、任務(wù)實(shí)施在項(xiàng)目樹中雙擊添加的新塊FB2塊,使用鼠標(biāo)打開、調(diào)整FB2的“塊接口”區(qū)域,在接口區(qū)中生成局部變量,在Input類型中添加“啟動(dòng)”,數(shù)據(jù)類型選擇為“Bool”。用同樣的方法將其他的輸入、輸出、靜態(tài)變量添加到接口中。5、任務(wù)實(shí)施5、任務(wù)實(shí)施使用FB2同樣的方法,在FB3中,將相應(yīng)的輸入、輸出、靜態(tài)變量添加到接口中。5、任務(wù)實(shí)施5、任務(wù)實(shí)施在FB1塊中調(diào)用功能塊FB2(方式一)和FB3(方式二)雙擊FB1塊,按住鼠標(biāo)左鍵將FB2(方式一)拉到程序區(qū),按住鼠標(biāo)左鍵將FB3(方式二)拉到程序區(qū),完成FB2(方式一)和FB3(方式二)的調(diào)用。在完成FB1的編程后,需要在OB1中調(diào)用FB1,程序才能正常工作。思考:如果將定時(shí)器定義在IN-OUT里,程序與上述程序有何不同?5、任務(wù)實(shí)施思考:如果將定時(shí)器定義在IN-OUT里,程序與上述程序有何不同?注意:如果需要在OB1調(diào)用時(shí)使用定時(shí)器的實(shí)參,需要“添加新塊”-“DB數(shù)據(jù)塊”-”IEC-TIMER”,可以修改名字。液體混合系統(tǒng)設(shè)計(jì)06控制要求:按下啟動(dòng)按鈕,電磁閥Y1導(dǎo)通,開始注入液體A,液位到L2的高度時(shí),停止注入液體A。同時(shí),電磁閥Y2導(dǎo)通,開始注入液體B,液體到L1的高度時(shí),停止注入液體B,開啟攪拌機(jī)M,持續(xù)攪拌5S,停止攪拌。同時(shí)電磁閥Y3導(dǎo)通,開始放出液體,至液體高度為L(zhǎng)3時(shí),開始計(jì)時(shí),再經(jīng)3S后液體全部放出,關(guān)閉電磁閥Y3。關(guān)閉Y3后重新開始注入液體A,開始循環(huán)。按停止按鈕,所有操作都停止,須重新啟動(dòng)。任務(wù)6液體混合控制系統(tǒng)設(shè)計(jì)1、用戶程序結(jié)構(gòu)在博途軟件的實(shí)際編程中,大量使用定時(shí)器、計(jì)數(shù)器等指令,或多層FB嵌套調(diào)用時(shí),每次調(diào)用都需要指定一個(gè)單獨(dú)背景數(shù)據(jù)塊,就會(huì)生成大量的數(shù)據(jù)塊“碎片”,不利于硬件存儲(chǔ)區(qū)的管理及程序的邏輯梳理。同時(shí),如果在FB塊中使用單個(gè)實(shí)例的背景數(shù)據(jù)塊,會(huì)導(dǎo)致此FB不能被重復(fù)調(diào)用,犧牲了FB塊的一大功能。2、多重背景數(shù)據(jù)塊為了解決上述問(wèn)題,在功能塊FB中使用定時(shí)器、計(jì)數(shù)器等指令時(shí),可以在該功能塊的界面區(qū)定義數(shù)據(jù)類型為IEC_Timer、IEC_Counter等對(duì)應(yīng)的靜態(tài)變量,用靜態(tài)變量的在FB塊內(nèi)規(guī)劃出固定區(qū)域來(lái)支撐定時(shí)器、計(jì)數(shù)器等指令支撐運(yùn)行。在這種情況下設(shè)定的背景數(shù)據(jù)塊稱為多重背景數(shù)據(jù)塊。FB背景數(shù)據(jù)塊內(nèi)部定時(shí)器內(nèi)部計(jì)數(shù)器3、創(chuàng)建多重背景數(shù)據(jù)塊以計(jì)數(shù)器為例,在相應(yīng)的功能塊(FB)中調(diào)用計(jì)數(shù)器指令時(shí),會(huì)自動(dòng)彈出“調(diào)用選項(xiàng)”對(duì)話框,提示需要?jiǎng)?chuàng)建背景數(shù)據(jù)塊,此時(shí)在窗口左側(cè)選擇“多重實(shí)例(數(shù)據(jù)塊)”,并在“接口參數(shù)的名稱”輸入框中輸入規(guī)劃好的名稱,點(diǎn)擊“確定”完成指令的調(diào)用并自動(dòng)創(chuàng)建對(duì)應(yīng)的靜態(tài)變量。3、創(chuàng)建多重背景數(shù)據(jù)塊這樣多個(gè)定時(shí)器或計(jì)數(shù)器的背景數(shù)據(jù)塊就被包含在它們所在的功能塊的背景數(shù)據(jù)塊中,而不需要為每個(gè)定時(shí)器或計(jì)數(shù)器設(shè)置一個(gè)單獨(dú)的背景數(shù)據(jù)塊,減少了處理數(shù)據(jù)的時(shí)間,能更合理地利用存儲(chǔ)空間。3、創(chuàng)建多重背景數(shù)據(jù)塊在FB塊“多重實(shí)例”調(diào)用中,調(diào)用用戶自己編寫生成的功能塊時(shí),其數(shù)據(jù)類型是特殊的,為被調(diào)用塊的名稱。4、多重背景數(shù)據(jù)塊的應(yīng)用游戲《王者榮耀》中的人物小喬的必殺技的釋放與冷卻過(guò)程,使用多重實(shí)例完成。按下啟動(dòng)按鈕,技能釋放,8盞燈5hz頻率閃爍,演示5s;開始釋放的同時(shí),開始記錄冷卻時(shí)間,15s后技能冷卻完成,具備下次釋放條件;在技能冷卻期間按下啟動(dòng)按鈕無(wú)效。4、多重背景數(shù)據(jù)塊的應(yīng)用(1)建立變量表4、多重背景數(shù)據(jù)塊的應(yīng)用(2)添加FB塊,建立局部變量4、多重背景數(shù)據(jù)塊的應(yīng)用(3)編寫FB程序4、多重背景數(shù)據(jù)塊的應(yīng)用(4)編寫主程序并調(diào)試5、任務(wù)實(shí)施(1)液體混合控制系統(tǒng)的目的與要求按下啟動(dòng)按鈕,電磁閥Y1導(dǎo)通,開始注入液體A,液位到L2的高度時(shí),停止注入液體A。同時(shí),電磁閥Y2導(dǎo)通,開始注入液體B,液體到L1的高度時(shí),停止注入液體B,開啟攪拌機(jī)M,持續(xù)攪拌5S,停止攪拌。同時(shí)電磁閥Y3導(dǎo)通,開始放出液體,至液體高度為L(zhǎng)3時(shí),開始計(jì)時(shí),再經(jīng)3S后液體全部放出,關(guān)閉電磁閥Y3。關(guān)閉Y3后重新開始注入液體A,開始循環(huán)。按停止按鈕,所有操作都停止,須重新啟動(dòng)。5、任務(wù)實(shí)施(2)分配I/O地址輸入功能輸出功能I1.0啟動(dòng)按鈕Q1.0電磁閥Y1I1.1停止按鈕Q1.1電磁閥Y2I0.4液位開關(guān)L1Q1.2電磁閥Y3I0.5液位開關(guān)L2Q1.3攪拌電機(jī)MI0.6液位開關(guān)L3

5、任務(wù)實(shí)施(3)創(chuàng)建功能塊(FB)、局部變量并完成程序編寫雙擊項(xiàng)目樹中添加新塊,點(diǎn)擊FB塊,在名稱欄中填寫“液體混合控制程序設(shè)計(jì)”,在語(yǔ)言欄中選擇LAD,點(diǎn)擊確定,創(chuàng)建FB1功能塊。在項(xiàng)目樹中雙擊添加的新塊FB1塊,使用鼠標(biāo)打開、調(diào)整FB1的“塊接口”區(qū)域,在接口區(qū)中生成局部變量,在Input類型中添加“啟動(dòng)”,數(shù)據(jù)類型選擇為“Bool”。用同樣的方法將其他的輸入、輸出、靜態(tài)變量添加到接口中。在這里我們可以不用創(chuàng)建定時(shí)器需要使用的靜態(tài)變量,在編程中調(diào)用定時(shí)器指令時(shí)“調(diào)用選項(xiàng)”時(shí)選擇“DB多重實(shí)例”會(huì)自動(dòng)生成對(duì)應(yīng)的靜態(tài)變量。5、任務(wù)實(shí)施5、任務(wù)實(shí)施(3)創(chuàng)建功能塊(FB)、局部變量并完成程序編寫在這里我們可以不用創(chuàng)建定時(shí)器需要使用的靜態(tài)變量,在編程中調(diào)用定時(shí)器指令時(shí)“調(diào)用選項(xiàng)”時(shí)選擇“DB多重實(shí)例”會(huì)自動(dòng)生成對(duì)應(yīng)的靜態(tài)變量。5、任務(wù)實(shí)施5、任務(wù)實(shí)施5、任務(wù)實(shí)施5、任務(wù)實(shí)施(4)在OB1塊中調(diào)用功能塊FB1可以看到,在功能塊FB1(液體混合控制程序設(shè)計(jì))中,使用到的所有變量均為局部變量,即其所有數(shù)據(jù)均存放在一個(gè)指定的數(shù)據(jù)區(qū)域內(nèi),減少了數(shù)據(jù)的碎片化,加快了語(yǔ)句調(diào)運(yùn)、程序運(yùn)算速度,也保證了此功能塊的可重復(fù)調(diào)用功能。求根公式的計(jì)算07任務(wù)7求根公式的計(jì)算

1、用戶程序結(jié)構(gòu)TIAPortal編程軟件中的塊包括組織塊(OB)、功能塊(FB)、功能(FC)、數(shù)據(jù)塊(DB)等塊。其中,在組織塊(OB)、功能塊(FB)、功能(FC)內(nèi)部能夠調(diào)用相關(guān)指令、編寫程序,完成預(yù)定的邏輯控制。而數(shù)據(jù)塊(DB)只能存放程序的相關(guān)數(shù)據(jù),不能在其內(nèi)部編寫控制程序。在之前學(xué)習(xí)的過(guò)程中,我們接觸到的數(shù)據(jù)塊是背景數(shù)據(jù)塊,專門為某個(gè)指令或功能塊(FB)服務(wù)的,系統(tǒng)中還有另一種數(shù)據(jù)塊——全局?jǐn)?shù)據(jù)塊,為整個(gè)程序服務(wù)。1、用戶程序結(jié)構(gòu)1.數(shù)據(jù)塊的基本概念(1)S7-1200系統(tǒng)的數(shù)據(jù)存儲(chǔ)區(qū)系統(tǒng)的數(shù)據(jù)存儲(chǔ)區(qū)是邏輯上的稱呼,實(shí)際對(duì)應(yīng)著硬件的存儲(chǔ)器。S7-1200CPU模塊的存儲(chǔ)器根據(jù)存儲(chǔ)特性不同,可以分為隨機(jī)存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦除存儲(chǔ)器(FlashEPROM)。根據(jù)邏輯功能不同,可以分為用戶程序存儲(chǔ)區(qū)和系統(tǒng)存儲(chǔ)區(qū)。其中,用戶程序存儲(chǔ)區(qū)用于用戶項(xiàng)目的輸入\輸出變量、控制程序、中間變量、數(shù)據(jù)的存儲(chǔ);主要可分為:過(guò)程映像區(qū)(I/O)、位存儲(chǔ)區(qū)(M)、局部數(shù)據(jù)區(qū)及數(shù)據(jù)塊(DB)。1、用戶程序結(jié)構(gòu)(2)數(shù)據(jù)塊西門子PLC系統(tǒng)中的數(shù)據(jù)塊根據(jù)使用范圍的不同,可以分為背景數(shù)據(jù)塊和全局?jǐn)?shù)據(jù)塊。1、用戶程序結(jié)構(gòu)全局?jǐn)?shù)據(jù)塊用戶可以根據(jù)程序編寫的需要?jiǎng)?chuàng)建全局?jǐn)?shù)據(jù)塊,全局?jǐn)?shù)據(jù)塊只包含靜態(tài)變量,用戶可以在全局?jǐn)?shù)據(jù)塊中添加、刪除、改變變量類型、初始值、當(dāng)前值。背景數(shù)據(jù)塊背景數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)完全取決于其服務(wù)的函數(shù)塊FB的接口定義,用戶不能在背景數(shù)據(jù)塊中直接編輯修改數(shù)據(jù)內(nèi)容、結(jié)構(gòu),需要在其相關(guān)的功能塊FB的塊接口參數(shù)中進(jìn)行編輯修改,再由系統(tǒng)將修改內(nèi)容同步到背景數(shù)據(jù)塊中。1、用戶程序結(jié)構(gòu)(3)數(shù)據(jù)塊的訪問(wèn)屬性在西門子PLC的編程系統(tǒng)中,為了高效的利用存儲(chǔ)區(qū),系統(tǒng)支持符號(hào)和絕對(duì)地址兩種方式訪問(wèn)全局?jǐn)?shù)據(jù)塊中的數(shù)據(jù)。在完成創(chuàng)建全局?jǐn)?shù)據(jù)塊后,在項(xiàng)目樹中右擊該數(shù)據(jù)塊,選擇“屬性”,選擇是否激活“優(yōu)化的塊訪問(wèn)”。1、用戶程序結(jié)構(gòu)(3)數(shù)據(jù)塊的訪問(wèn)屬性“優(yōu)化的塊訪問(wèn)”即通過(guò)符號(hào)訪問(wèn)變量的優(yōu)勢(shì)體現(xiàn)在,可以有效整合不同類型變量之間的空余地址空間,減少整體程序的占用空間。1、用戶程序結(jié)構(gòu)(3)數(shù)據(jù)塊的訪問(wèn)屬性在關(guān)閉“優(yōu)化的塊訪問(wèn)”功能后,全局?jǐn)?shù)據(jù)塊中將出現(xiàn)系統(tǒng)分配給變量的絕對(duì)地址,即偏移量。絕對(duì)定制訪問(wèn)時(shí),需要寫清全局?jǐn)?shù)據(jù)塊的編號(hào)、變量的類型及偏移量地址。比如DB8.DBD4,DBD*代表為雙字類型,DBW*為字類型,DBX*.*為布爾型。1、用戶程序結(jié)構(gòu)(4)數(shù)據(jù)塊的保持性用戶可以在全局?jǐn)?shù)據(jù)塊中添加、刪除、改變變量類型、初始值、當(dāng)前值。數(shù)據(jù)塊中變量的保持性是指,在CPU斷電重啟,或者STOP后重啟,數(shù)據(jù)塊DB中變量將保持最后一掃描周期的數(shù)值。如果不激活保持行屬性,系統(tǒng)將讀取對(duì)應(yīng)的初始值。數(shù)據(jù)塊DB中變量是否需要保持必須以實(shí)際功能需要為依據(jù)。數(shù)據(jù)塊中變量的保持性在數(shù)據(jù)塊中可以進(jìn)行修改,訪問(wèn)方式不同時(shí)其保持性設(shè)置的特性是不同的。當(dāng)激活“優(yōu)化的塊訪問(wèn)”,僅以符號(hào)訪問(wèn)時(shí)可以單獨(dú)定義變量的保持性;而使用絕對(duì)地址方式訪問(wèn)時(shí),無(wú)法單獨(dú)設(shè)置某個(gè)變量的保持性,修改時(shí)整個(gè)數(shù)據(jù)塊的所有變量統(tǒng)一改變。2、全局?jǐn)?shù)據(jù)塊的實(shí)際應(yīng)用(1)控制要求利用全局?jǐn)?shù)據(jù)塊編寫計(jì)算式運(yùn)算程序。2、全局?jǐn)?shù)據(jù)塊的實(shí)際應(yīng)用脈沖信號(hào)控制步驟(1)創(chuàng)建全局功能塊(DB)

2、全局?jǐn)?shù)據(jù)塊的實(shí)際應(yīng)用脈沖信號(hào)控制步驟(2)創(chuàng)建FB,定義局部變量并編寫程序

2、全局?jǐn)?shù)據(jù)塊的實(shí)際應(yīng)用脈沖信號(hào)控制步驟(3)OB調(diào)用主程序,并調(diào)試運(yùn)行

3、全局?jǐn)?shù)據(jù)塊的任務(wù)實(shí)施

3、全局?jǐn)?shù)據(jù)塊的任務(wù)實(shí)施(2)創(chuàng)建全局功能塊(DB)

雙擊項(xiàng)目樹中添加新塊,點(diǎn)擊DB塊,在名稱欄中填寫“一元二次方程求解程序設(shè)計(jì)”,點(diǎn)擊確定,創(chuàng)建DB1功能塊,右鍵單擊數(shù)據(jù)塊的屬性,關(guān)閉“優(yōu)化的塊訪問(wèn)”功能。

在項(xiàng)目樹中雙擊添加的新塊DB1塊,在數(shù)據(jù)塊中生成靜態(tài)變量,在名稱列中添加“a”,數(shù)據(jù)類型選擇為“Real”。用同樣的方法將其他的靜態(tài)變量添加到數(shù)據(jù)塊中。3、全局?jǐn)?shù)據(jù)塊的任務(wù)實(shí)施(3)全局?jǐn)?shù)據(jù)塊DB1一元二次方程求解程序的設(shè)計(jì)在任意功能塊FB、功能FC或組織塊OB1中,編寫程序,完成求解過(guò)程3、全局?jǐn)?shù)據(jù)塊的任務(wù)實(shí)施3、全局?jǐn)?shù)據(jù)塊的任務(wù)實(shí)施(4)任務(wù)小結(jié)通過(guò)本任務(wù)的學(xué)習(xí)與設(shè)計(jì),讓讀者理解并掌握全局?jǐn)?shù)據(jù)塊的創(chuàng)建及應(yīng)用,其基本步驟如下:

生成全局?jǐn)?shù)據(jù)塊(DB1)→確定數(shù)據(jù)塊的訪問(wèn)方式→在數(shù)據(jù)塊中創(chuàng)建所需的變量→在相關(guān)功能、功能塊中調(diào)用數(shù)據(jù)塊中的變量→完成整體程序編寫。脈沖信號(hào)的控制08任務(wù)8脈沖信號(hào)的控制控制要求:通過(guò)對(duì)循環(huán)中斷組織塊(Cyclicinterrupt)的使用,讓讀者理解各組織塊的運(yùn)行規(guī)則,掌握各個(gè)組織塊的應(yīng)用方法。利用循環(huán)中斷組織塊產(chǎn)生0.5Hz的時(shí)鐘脈沖信號(hào),在Q1.0地址輸出。1、用戶程序結(jié)構(gòu)S7系列PLC系統(tǒng)為用戶提供了不同類型的塊,用于完成各種功能的自動(dòng)化控制程序。其中組織塊(OB)是系統(tǒng)預(yù)制特定功能,實(shí)現(xiàn)操作系統(tǒng)與用戶程序之間的接口作用??梢岳媒M織塊的編程實(shí)現(xiàn)PLC系統(tǒng)的一些特殊動(dòng)作,比如對(duì)硬件故障進(jìn)行響應(yīng),創(chuàng)建特定時(shí)間循環(huán)執(zhí)行的特殊程序等。1、用戶程序結(jié)構(gòu)按照組織塊控制操作的不同,S7-1200主要有以下七種組織塊:程序循環(huán)組織塊(Programcycle)、啟動(dòng)組織塊(Startup)、延時(shí)中斷組織塊(Timedelayinterrupt)、循環(huán)中斷組織塊(Cyclicinterrupt)、硬件中斷組織塊(Hardwareinterrupt)、時(shí)間錯(cuò)誤中斷組織塊(Timeerrorinterrupt)、診斷錯(cuò)誤中斷組織塊(Diagnosticerrorinterrupt)。某些組織塊在啟動(dòng)時(shí),操作系統(tǒng)將輸出啟動(dòng)信息,用戶編寫組織塊程序時(shí),可根據(jù)這些啟動(dòng)信息進(jìn)行相應(yīng)處理。1、用戶程序結(jié)構(gòu)1.啟動(dòng)組織塊(Startup)啟動(dòng)組織塊在CPU從STOP模式切換到軟RUN模式期間執(zhí)行一次。輸入過(guò)程映像中的當(dāng)前值對(duì)于啟動(dòng)組織塊的程序是不可用的,也不能設(shè)置這些值。啟動(dòng)組織塊執(zhí)行完畢后,將讀入輸入過(guò)程映像并啟動(dòng)程序循環(huán)組織塊。啟動(dòng)組織塊一般用于編寫初始化程序,如賦初始值等。可以使用多個(gè)啟動(dòng)組織塊,默認(rèn)的啟動(dòng)組織塊是OB100,其他啟動(dòng)組織塊的編號(hào)應(yīng)從123開始,一般情況下只需要一個(gè)啟動(dòng)塊。啟動(dòng)例程的執(zhí)行沒(méi)有時(shí)間限制。1、用戶程序結(jié)構(gòu)2.程序循環(huán)組織塊(Programcycle)想要將用戶編寫的程序啟動(dòng)起來(lái),執(zhí)行項(xiàng)目中至少要有一個(gè)程序循環(huán)組織塊,如OB1。操作系統(tǒng)在每個(gè)掃描周期調(diào)用程序循環(huán)組織塊一次,從而啟動(dòng)用戶程序的執(zhí)行??梢允褂枚鄠€(gè)程序循環(huán)組織塊,可以使用多個(gè)OB(OB的編號(hào)應(yīng)大于等于123)。使用多個(gè)程序循環(huán)OB時(shí),將按照OB編號(hào)依次調(diào)用,首先調(diào)用OB編號(hào)最低的程序循環(huán)OB。程序循環(huán)組織塊的優(yōu)先等級(jí)為1,在所有組織塊中的優(yōu)先等級(jí)最低,其他任何類型的事件都可以中斷循環(huán)程序的執(zhí)行。程序循環(huán)組織塊沒(méi)有啟動(dòng)信息。可通過(guò)在循環(huán)OB以及所調(diào)用的塊中編寫用戶程序,完成用戶所需

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論