版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 可編程控制器來(lái)源于繼電器系統(tǒng)和計(jì)算機(jī)系統(tǒng),可以將其理解為計(jì)算機(jī)化的繼電器系統(tǒng)。繼電器在控制系統(tǒng)中主要起兩種作用:運(yùn)用繼電器觸點(diǎn)的串、并聯(lián)接等完成邏輯與、或、非等功能,從而可完成較復(fù)雜的邏輯運(yùn)算。即通過(guò)有關(guān)的觸點(diǎn)的通斷,控制繼電器的電磁線圈,從而來(lái)控制強(qiáng)電的斷通。 對(duì)于簡(jiǎn)單控制功能的完成,采用繼電器控制系統(tǒng)具有簡(jiǎn)單、可靠、方便等特點(diǎn),因此,繼電器控制系統(tǒng)得到了廣泛應(yīng)用。PLC內(nèi)部的硬件資源多數(shù)是以繼電器的概念出現(xiàn)的。注意,只是概念上的繼電器,并非物理繼電器。這里所指的繼電器均為軟繼電器,是由PLC內(nèi)部的存儲(chǔ)單元構(gòu)成的。表表3-1 FP1系列可編程控制器指令統(tǒng)計(jì)表系列可編程控制器指令統(tǒng)計(jì)表分類名
2、稱分類名稱C14/C16C14/C16C24/C40C24/C40C56/C72C56/C72基本指令順序指令191919功能指令778控制指令151818條件比較指令03636高級(jí)指令數(shù)據(jù)傳輸指令11111l數(shù)據(jù)運(yùn)算及比較指令364141數(shù)據(jù)轉(zhuǎn)換指令162626數(shù)據(jù)位移指令141414位操作指令666特殊功能指令71819總計(jì)總計(jì)131131196196198198可以直接在鍵盤(pán)上輸入的指令(即各種指令在手持編程器上有相應(yīng)的按鍵)。鍵盤(pán)上找不到,輸入時(shí)需借助于“SC”和“HELP”鍵,指令方可輸入。也是鍵盤(pán)上找不到的,但可通過(guò)輸入其功能號(hào)將其輸入,即用“FN”鍵加上數(shù)字鍵輸入該類指令。這類指
3、令在指令表中都各自帶有功能編號(hào),在顯示器上顯示為“FN ”,其中N是功能編號(hào),是指令的助記符。輸入功能編號(hào)后,助記符可自動(dòng)顯示,不必由用戶輸入。按照在手持編程器上的可為三種FP1的指令按照可分為兩大類基本指令可分為四大類,即主要執(zhí)行以位(bit)為單位的邏輯操作,是繼電器控制電路的基礎(chǔ)。有定時(shí)器、計(jì)數(shù)器和移位寄存器指令??筛鶕?jù)條件判斷,來(lái)決定程序執(zhí)行順序和流程的指令。主要進(jìn)行數(shù)據(jù)比較。 基本指令多數(shù)是構(gòu)成繼電器順序控制電路的基礎(chǔ),所以借用繼電器的線圈和觸點(diǎn)來(lái)表示。同時(shí),該類指令還是可編程控制器使用中最常見(jiàn)、也是用得最多的指令,因此,屬于必須熟練掌握和運(yùn)用的內(nèi)容。 基本順序指令主要是對(duì)繼電器和繼
4、電器觸點(diǎn)進(jìn)行邏輯操作的指令。 FP1的指令表達(dá)式比較簡(jiǎn)單,由操作碼和操作數(shù)構(gòu)成,格式為: 其中,操作碼規(guī)定了CPU所執(zhí)行的功能。 例如:AN X0,表示對(duì)X0進(jìn)行與操作 操作數(shù)包含了操作數(shù)的地址、性質(zhì)和內(nèi)容。操作數(shù)可以沒(méi)有,也可以是一個(gè)、兩個(gè)、三個(gè)甚至四個(gè),隨不同的指令而不同。如 / 指令就沒(méi)有操作數(shù)。指令助記符繼電器定時(shí)/計(jì)數(shù)器觸點(diǎn)XYRTCST、ST/OTAN、AN/OR、OR/SET、RSTKP表表3-3 基本順序指令的操作數(shù)基本順序指令的操作數(shù) 表中對(duì)應(yīng)項(xiàng)目為“”表示該項(xiàng)不可用,為空則表示可用。 例如:OT指令對(duì)應(yīng)繼電器X項(xiàng)為“”,說(shuō)明OT指令的操作數(shù)不能為X繼電器。ST 加載 用A類
5、觸點(diǎn)(常開(kāi)觸點(diǎn))開(kāi)始邏輯運(yùn)算的指令。ST/ 加載非 用B類觸點(diǎn)(常閉觸點(diǎn))開(kāi)始邏輯運(yùn)算的指令。OT 輸出 輸出運(yùn)算結(jié)果到指定的輸出端,是繼電器線 圈的驅(qū)動(dòng)指令。/ 非 將該指令處的運(yùn)算結(jié)果取反。其中,ST和ST/用于開(kāi)始一個(gè)新的邏輯行。 當(dāng)X0接通時(shí),Y0接通;當(dāng)X0斷開(kāi)時(shí),Y1接通、Y2接通。 由例中可見(jiàn),Y0和Y1都受控于X0,但是因?yàn)閅1前面有非指令,因此與Y0的狀態(tài)正好相反,這與繼電器系統(tǒng)明顯不同,在繼電器系統(tǒng)中,X0斷開(kāi),Y1回路就不可能導(dǎo)通。 此外,對(duì)于輸出Y2,也是當(dāng)輸入觸點(diǎn)X0斷開(kāi)時(shí),Y2接通,與Y1的控制方式一樣。可見(jiàn),常閉觸點(diǎn)的功能可以用上述兩種方式實(shí)現(xiàn),這在時(shí)序圖中可以更
6、為直觀地看到。 / 指令為邏輯取反指令,可單獨(dú)使用,但是一般都是與其它指令組合形成新指令使用,如ST/。 OT不能直接從左母線開(kāi)始,但是必須以右母線結(jié)束。 OT指令可以連續(xù)使用,構(gòu)成并聯(lián)輸出,也屬于分支的一種,可參見(jiàn)堆棧指令。 一般情況下,對(duì)于某個(gè)輸出繼電器只能用一次OT指令,否則,可編程控制器按照出錯(cuò)對(duì)待。AN與串聯(lián)一個(gè)A類(常開(kāi))觸點(diǎn)。AN/與非串聯(lián)一個(gè)B類(常閉)觸點(diǎn)。OR或并聯(lián)一個(gè)A類(常開(kāi))觸點(diǎn)。OR/或非并聯(lián)一個(gè)B類(常閉)觸點(diǎn)。 當(dāng)X0、X4接通且X3斷開(kāi)時(shí),R0接通;R0同時(shí)又是Y0的控制觸點(diǎn),R0接通時(shí)Y0也接通。 由于X0、X1和X2三個(gè)觸點(diǎn)并聯(lián),X2與X0同為常開(kāi)觸點(diǎn),所
7、以X2和X0具有同樣的性質(zhì);而X1為常閉觸點(diǎn),與X0的性質(zhì)正好相反。X2和X1的時(shí)序圖也與X0相同或相反,故這里略去。 AN、AN/、OR、OR/ 可連續(xù)使用。 ANS 組與執(zhí)行多指令塊的與操作,即實(shí)現(xiàn)多個(gè)邏輯塊相串聯(lián)。ORS 組或執(zhí)行多指令塊的或操作,即實(shí)現(xiàn)多個(gè)邏輯塊相并聯(lián)。 當(dāng)X0、X1接通且X4接通時(shí),Y0接通,對(duì)應(yīng)圖中第1段接通情況。 當(dāng)X0、X1接通且X5接通時(shí),Y0接通,對(duì)應(yīng)圖中第2段接通情況。 當(dāng)X2、X3接通且X4接通時(shí),Y0接通,對(duì)應(yīng)圖中第3段接通情況。 當(dāng)X2、X3接通且X5接通時(shí),Y0接通,對(duì)應(yīng)圖中第4段接通情況。從時(shí)序圖上看,該例的邏輯關(guān)系顯得比較復(fù)雜,但是仔細(xì)分析就可
8、發(fā)現(xiàn)Y0有四個(gè)接通段,分別代表了該例子的四種有效組合。 掌握ANS、ORS的關(guān)鍵主要有兩點(diǎn):一是要理解好串、并聯(lián)關(guān)系,二是要形成塊的觀念。針對(duì)例3-3,在下面的圖中,分別從程序和邏輯關(guān)系表達(dá)式兩方面對(duì)此加以具體說(shuō)明。 從圖中可見(jiàn),X0和X1串聯(lián)后組成邏輯塊1,X2和X3串聯(lián)后組成邏輯塊2,用ORS將邏輯塊1和邏輯塊2并聯(lián)起來(lái),組合成為邏輯塊3;然后由X4和X5并聯(lián)后組成邏輯塊4,再用ANS將邏輯塊3和邏輯塊4串聯(lián)起來(lái),組合成為邏輯塊5,結(jié)果輸出給Y0。 PSHS 推入堆棧存儲(chǔ)該指令處的操作結(jié)果。RDS 讀取堆棧讀出PSHS指令存儲(chǔ)的操作結(jié)果。POPS 彈出堆棧讀出并清除由PSHS指令存儲(chǔ)的操作
9、結(jié)果。 堆棧指令主要用于構(gòu)成具有分支結(jié)構(gòu)的梯形圖,使用時(shí)必須遵循規(guī)定的PSHS、RDS、POPS的先后順序。 存儲(chǔ)PSHS指令處的運(yùn)算結(jié)果(這里指X0的狀態(tài)),這時(shí)X0接通,則當(dāng)X1也接通且X2斷開(kāi)時(shí),Y0輸出。 由RDS指令讀出存儲(chǔ)的結(jié)果,即X0接通,則當(dāng)X3接通時(shí),Y1輸出。 由RDS指令讀出存儲(chǔ)的結(jié)果,即X0接通,則當(dāng)X4斷開(kāi)時(shí),Y2輸出。 由POPS指令讀出存儲(chǔ)的結(jié)果,即X0接通,則當(dāng)X5接通時(shí),Y3輸出;然后將PSHS指令存儲(chǔ)的結(jié)果清除,即解除與X0的關(guān)聯(lián),后續(xù)指令的執(zhí)行將不再受X0影響。 當(dāng)X6接通時(shí),Y4輸出。此時(shí)與X0的狀態(tài)不再相關(guān)。 本例中連用了兩個(gè)RDS指令,目的是為了說(shuō)明
10、該指令只是讀存儲(chǔ)結(jié)果,而不影響存儲(chǔ)結(jié)果;在執(zhí)行了POPS后,就結(jié)束了堆棧指令,不再與X0的狀態(tài)相關(guān),如例中,Y4的狀態(tài)只受X6控制。當(dāng)X0接通時(shí),程序依次完成下述操作。 當(dāng)程序中遇到PSHS時(shí),可理解為是將左母線到PSHS指令(即分支點(diǎn))之間的所有指令存儲(chǔ)起來(lái),推入堆棧,提供給下面的支路使用。換個(gè)角度,也可理解為左母線向右平移到分支點(diǎn),隨后的指令從平移后的左母線處開(kāi)始。 RDS用于PSHS之后,這樣,當(dāng)每次遇到RDS時(shí),該指令相當(dāng)于將PSHS保存的指令重新調(diào)出,隨后的指令表面上是接著RDS,實(shí)際上相當(dāng)于接著堆棧中的指令來(lái)寫(xiě)。在功能上看,也就是相當(dāng)于將堆棧中的那段梯形圖與RDS后面的梯形圖直接串
11、聯(lián)起來(lái)。 POPS相當(dāng)于先執(zhí)行RDS的功能,然后結(jié)束本次堆棧,因此,用在PSHS和RDS的后面,作為分支結(jié)構(gòu)的最后一個(gè)分支回路。 從上面對(duì)構(gòu)成堆棧的三個(gè)指令的分析可知,最簡(jiǎn)單的分支,即兩個(gè)分支,可只由PSHS和POPS構(gòu)成;而三個(gè)以上的分支,則通過(guò)反復(fù)調(diào)用RDS指令完成,這點(diǎn)可參見(jiàn)例題。也就是說(shuō),一組堆棧指令中,有且只有一個(gè)PSHS和一個(gè)POPS,但是可以沒(méi)有或有多個(gè)RDS。 注意區(qū)分分支結(jié)構(gòu)和并聯(lián)輸出結(jié)構(gòu)梯形圖。二者的本質(zhì)區(qū)別在于:分支結(jié)構(gòu)中,分支點(diǎn)與輸出點(diǎn)之間串聯(lián)有觸點(diǎn),而不單純是輸出線圈。 堆棧指令的復(fù)雜應(yīng)用還包括嵌套使用。 DF 上升沿微分 檢測(cè)到觸發(fā)信號(hào)上升沿,使觸點(diǎn)接通一個(gè)掃描周期
12、。DF/ 下降沿微分 檢測(cè)到觸發(fā)信號(hào)下降沿,使觸點(diǎn)接通一個(gè)掃描周期。 當(dāng)檢測(cè)到觸發(fā)信號(hào)的上升沿時(shí),即X1斷開(kāi)、X2接通且X0由OFFON時(shí),Y0接通一個(gè)掃描周期。另一種情況是X0接通、X2接通且X1由ONOFF時(shí),Y0也接通一個(gè)掃描周期,這是由于X1是常閉觸點(diǎn)的緣故。 當(dāng)檢測(cè)到觸發(fā)信號(hào)的下降沿時(shí),即X2接通且X0由ONOFF時(shí),Y1接通一個(gè)掃描周期。 DF和DF/ 指令的作用都是在控制條件滿足的瞬間,觸發(fā)后面的被控對(duì)象(觸點(diǎn)或操作指令),使其接通一個(gè)掃描周期。這兩條指令的區(qū)別在于:前者是當(dāng)控制條件接通瞬間(上升沿)起作用,而后者是在控制條件斷開(kāi)瞬間(下降沿)起作用。這兩個(gè)微分指令在實(shí)際程序中很
13、有用,可用于控制那些只需觸發(fā)執(zhí)行一次的動(dòng)作。在程序中,對(duì)微分指令的使用次數(shù)無(wú)限制。 這里所謂的“觸發(fā)信號(hào)”,指的是DF或DF/前面指令的運(yùn)算結(jié)果,而不是單純的某個(gè)觸點(diǎn)的狀態(tài),如例中X0與X1的組合;也不是后面的觸點(diǎn)狀態(tài),如在時(shí)序圖中的t1時(shí)刻,X0和X1都處于有效狀態(tài),X2的上升沿卻不能使Y0接通。 SET置位保持觸點(diǎn)接通,為ON。RST復(fù)位保持觸點(diǎn)斷開(kāi),為OFF。 該程序執(zhí)行的結(jié)果是,當(dāng)X0接通時(shí),使Y0接通,此后不管X0是何狀態(tài),Y0一直保持接通。而當(dāng)X1接通時(shí),將Y0斷開(kāi),此后不管X1是何狀態(tài),Y0一直保持?jǐn)嚅_(kāi)。 KP保持使輸出為ON,并保持。 KP指令的作用是將輸出線圈接通并保持。該指
14、令有兩個(gè)控制條件,一個(gè)是置位條件(S)、另一個(gè)是復(fù)位條件(R)。當(dāng)滿足置位條件,輸出繼電器(Y或R)接通,一旦接通后,無(wú)論置位條件如何變化,該繼電器仍然保持接通狀態(tài),直至復(fù)位條件滿足時(shí)斷開(kāi)。 S端與R端相比,R端的優(yōu)先權(quán)高,即如果兩個(gè)信號(hào)同時(shí)接通,復(fù)位信號(hào)優(yōu)先有效。 當(dāng)X0接通時(shí),Y0接通;當(dāng)X1接通時(shí),Y0斷開(kāi),而不論X0狀態(tài)如何。 該指令與SET、RST有些類似,另外,SET、RST允許輸出重復(fù)使用,而KP指令則不允許。 NOP空操作空操作。 PLC執(zhí)行NOP指令時(shí),無(wú)任何操作,但是要消耗一定的時(shí)間。 當(dāng)沒(méi)有輸入程序或進(jìn)行清理內(nèi)存操作時(shí),程序存儲(chǔ)器各單元均自動(dòng)為空操作指令。 可用NOP作為
15、查找時(shí)的特殊標(biāo)記,人為插入若干個(gè)NOP指令,對(duì)程序進(jìn)行分段,便于檢查和修改。如程序中某一點(diǎn)插入的NOP指令的數(shù)量超出1個(gè),編程系統(tǒng)會(huì)自動(dòng)對(duì)其進(jìn)行編號(hào),因此,該指令常在調(diào)試程序時(shí)使用,此時(shí),程序的大小有所增加,但是對(duì)運(yùn)算結(jié)果沒(méi)有影響。 基本功能指令主要包括一些具有定時(shí)器、計(jì)數(shù)器和移位寄存器三種功能的指令。其中,定時(shí)和計(jì)數(shù)本質(zhì)上是同一功能。根據(jù)指令功能分類,將高級(jí)指令中的可逆計(jì)數(shù)指令F118(UDC)、左右移位指令F119(LRSR)以及輔助定時(shí)器指令F137(STMR)也包括在內(nèi)。表表3-5 基本功能指令的操作數(shù)基本功能指令的操作數(shù)指令助記符可用寄存器繼電器定時(shí)/計(jì)數(shù)器寄存器索引寄存器常數(shù)索引修
16、正值WX WYWRSVEVDTIXIYKHTM預(yù)置值CT預(yù)置值SRTMR以0.01s為最小時(shí)間單位,設(shè)置延時(shí)接通的定時(shí)器。TMX以0.1s為最小時(shí)間單位,設(shè)置延時(shí)接通的定時(shí)器。TMY以1.0s為最小時(shí)間單位,設(shè)置延時(shí)接通的定時(shí)器。 定時(shí)器的工作原理為:定時(shí)器為減1計(jì)數(shù)。當(dāng)程序進(jìn)入運(yùn)行狀態(tài)后,輸入觸點(diǎn)接通瞬間定時(shí)器開(kāi)始工作,先將設(shè)定值寄存器SV的內(nèi)容裝入過(guò)程值寄存器EV中,然后開(kāi)始計(jì)數(shù)。每來(lái)一個(gè)時(shí)鐘脈沖,過(guò)程值減1,直至EV中內(nèi)容減為0時(shí),該定時(shí)器各對(duì)應(yīng)觸點(diǎn)動(dòng)作,即常開(kāi)觸點(diǎn)閉合、常閉觸點(diǎn)斷開(kāi)。而當(dāng)輸入觸點(diǎn)斷開(kāi)時(shí),定時(shí)器復(fù)位,對(duì)應(yīng)觸點(diǎn)恢復(fù)原來(lái)狀態(tài),且EV清零,但SV不變。若在定時(shí)器未達(dá)到設(shè)定時(shí)間時(shí)
17、斷開(kāi)其輸入觸點(diǎn),則定時(shí)器停止計(jì)時(shí),其過(guò)程值寄存器被清零,且定時(shí)器對(duì)應(yīng)觸點(diǎn)不動(dòng)作,直至輸入觸點(diǎn)再接通,重新開(kāi)始定時(shí)。 簡(jiǎn)單的說(shuō),當(dāng)定時(shí)器的執(zhí)行條件成立時(shí),定時(shí)器以R、X、Y所規(guī)定的時(shí)間單位對(duì)預(yù)置值作減計(jì)數(shù),預(yù)置值減為0時(shí),定時(shí)器導(dǎo)通。其對(duì)應(yīng)的常開(kāi)觸點(diǎn)閉合,常閉觸點(diǎn)斷開(kāi)。 當(dāng)X0接通時(shí),定時(shí)器開(kāi)始定時(shí),10秒后,定時(shí)時(shí)間到,定時(shí)器對(duì)應(yīng)的常開(kāi)觸點(diǎn)T1接通,使輸出繼電器Y0導(dǎo)通為ON;當(dāng)X0斷開(kāi)時(shí),定時(shí)器復(fù)位,對(duì)應(yīng)的常開(kāi)觸點(diǎn)T1斷開(kāi),輸出繼電器Y0斷開(kāi)為OFF。1) TM指令是減法計(jì)數(shù)型預(yù)置定時(shí)器,參數(shù)有兩個(gè),一個(gè)是時(shí)間單位,即定時(shí)時(shí)鐘,可分為3種,R=0.01s,X=0.1s,Y=1.0s;另一個(gè)是
18、預(yù)置值,只能用十進(jìn)制,編程格式為K加上十進(jìn)制數(shù),因此,取值范圍可表示為K1 K32767。這樣,定時(shí)時(shí)間就可以根據(jù)上述兩個(gè)參數(shù)直接計(jì)算出來(lái),即 定時(shí)時(shí)間 = 時(shí)間單位預(yù)置值 也正是由于這個(gè)原因,TM R1 K1000、TM X1 K100、TM Y1 K10這三條指令的延時(shí)時(shí)間是相同的,都是10秒,差別僅在于定時(shí)的時(shí)間精度不同。對(duì)于這個(gè)例子,由于只用到定時(shí)結(jié)果,采用上述任何一種寫(xiě)法都可以。2) 定時(shí)器的設(shè)定值和過(guò)程值會(huì)自動(dòng)存入相同編號(hào)的專用寄存器SV和EV中,因此可通過(guò)察看同一編號(hào)的SV和EV內(nèi)容來(lái)監(jiān)控該定時(shí)器的工作情況。采用不同的定時(shí)時(shí)鐘會(huì)影響精度,也就是說(shuō),過(guò)程值EV的變化過(guò)程不同。3)
19、同輸出繼電器的概念一樣,定時(shí)器也包括線圈和觸點(diǎn)兩個(gè)部分,采用相同編號(hào),但是線圈是用來(lái)設(shè)置,觸點(diǎn)則是用于引用。因此,在同一個(gè)程序中,相同編號(hào)的定時(shí)器只能使用一次,即設(shè)置一次,而該定時(shí)器的觸點(diǎn)可以通過(guò)常開(kāi)或常閉觸點(diǎn)的形式被多次引用。4) 在FP1-C24中,初始定義有100個(gè)定時(shí)器,編號(hào)為T(mén)0 T99,通過(guò)系統(tǒng)寄存器No.5可重新設(shè)置定時(shí)器的個(gè)數(shù)。5) 由于定時(shí)器在定時(shí)過(guò)程中需持續(xù)接通,所以在程序中定時(shí)器的控制信號(hào)后面不能串聯(lián)微分指令。6) 在實(shí)際的PLC程序中,定時(shí)器的使用是非常靈活的,如將若干個(gè)定時(shí)器串聯(lián)或是將定時(shí)器和計(jì)數(shù)器級(jí)聯(lián)使用可擴(kuò)大定時(shí)范圍,或?qū)蓚€(gè)定時(shí)器互鎖使用可構(gòu)成方波發(fā)生器,還可以
20、在程序中利用高級(jí)指令F0(MV)直接在SV寄存器中寫(xiě)入預(yù)置值,從而實(shí)現(xiàn)可變定時(shí)時(shí)間控制。 該例與上例中使用TMX實(shí)現(xiàn)的定時(shí)結(jié)果類似,但是當(dāng)用R900D作為定時(shí)器的觸點(diǎn)編程時(shí),務(wù)必將R900D編寫(xiě)在緊隨F137(STMR)指令之后。此外,這里的DT5起到與經(jīng)過(guò)值寄存器EV類似的作用。F137(STMR)以0.01s為最小時(shí)間單位設(shè)置延時(shí)接通的定時(shí)器。該定時(shí)器與TMR類似,但是設(shè)置方式上有所區(qū)別。下面舉例說(shuō)明。 CT指令是一個(gè)減計(jì)數(shù)型的預(yù)置計(jì)數(shù)器。其工作原理為:程序一進(jìn)入“運(yùn)行”方式,計(jì)數(shù)器就自動(dòng)進(jìn)入初始狀態(tài),此時(shí)SV的值被自動(dòng)裝入EV,當(dāng)計(jì)數(shù)器的計(jì)數(shù)輸入端CP檢測(cè)到一個(gè)脈沖上升沿時(shí),預(yù)置值被減1
21、,當(dāng)預(yù)置值被減為0時(shí),計(jì)數(shù)器接通,其相應(yīng)的常開(kāi)觸點(diǎn)閉合,常閉觸點(diǎn)斷開(kāi)。計(jì)數(shù)器的另一輸入端為復(fù)位輸入端R,當(dāng)R端接收到一個(gè)脈沖上升沿時(shí)計(jì)數(shù)器復(fù)位,計(jì)數(shù)器不接通,其常開(kāi)觸點(diǎn)斷開(kāi),常閉觸點(diǎn)閉合;當(dāng)R端接收到脈沖下降沿時(shí),將預(yù)置值數(shù)據(jù)再次從SV傳送到EV中,計(jì)數(shù)器開(kāi)始工作。計(jì)數(shù)器CT指令的梯形圖符號(hào)如下圖所示。 程序開(kāi)始運(yùn)行時(shí),計(jì)數(shù)器自動(dòng)進(jìn)入計(jì)數(shù)狀態(tài)。當(dāng)檢測(cè)到X0的上升沿500次時(shí),計(jì)數(shù)器對(duì)應(yīng)的常開(kāi)觸點(diǎn)C101接通,使輸出繼電器Y0導(dǎo)通為ON;當(dāng)X1接通時(shí),計(jì)數(shù)器復(fù)位清零,對(duì)應(yīng)的常開(kāi)觸點(diǎn)C101斷開(kāi),輸出繼電器Y0斷開(kāi)為OFF。 FP1-C24中,共有44個(gè)計(jì)數(shù)器,編號(hào)為C100 C143。此編號(hào)可用
22、系統(tǒng)寄存器No.5重新設(shè)置。設(shè)置時(shí)注意TM和CT的編號(hào)要前后錯(cuò)開(kāi)。 計(jì)數(shù)器與定時(shí)器有密切的關(guān)系,編號(hào)也是連續(xù)的。定時(shí)器本質(zhì)上就是計(jì)數(shù)器,只不過(guò)是對(duì)固定間隔的時(shí)鐘脈沖進(jìn)行計(jì)數(shù),因此兩者有許多性質(zhì)是類似的。 與定時(shí)器一樣,每個(gè)計(jì)數(shù)器都有對(duì)應(yīng)相同編號(hào)的16位專用寄存器SV和EV,以存儲(chǔ)預(yù)置值和過(guò)程值。 同一程序中相同編號(hào)的計(jì)數(shù)器只能使用一次,而對(duì)應(yīng)的常開(kāi)和常閉觸點(diǎn)可使用無(wú)數(shù)次。 計(jì)數(shù)器有兩個(gè)輸入端,即計(jì)數(shù)脈沖輸入端CP和復(fù)位端R,分別由兩個(gè)輸入觸點(diǎn)控制, R端比CP端優(yōu)先權(quán)高。 計(jì)數(shù)器的預(yù)置值即為計(jì)數(shù)器的初始值,該值為0 32767中的任意十進(jìn)制數(shù),書(shū)寫(xiě)時(shí)前面一定要加字母“K”。F118(UDC)指
23、令,也起到計(jì)數(shù)器的作用。與CT不同的是,該指令可以根據(jù)參數(shù)設(shè)置,分別實(shí)現(xiàn)加/減計(jì)數(shù)的功能,下面舉例說(shuō)明。 使用F118(UDC)指令編程時(shí),一定要有加/減控制、計(jì)數(shù)輸入和復(fù)位觸發(fā)三個(gè)信號(hào)。 當(dāng)檢測(cè)到復(fù)位觸發(fā)信號(hào)X2的下降沿時(shí),DT10中的數(shù)據(jù)被傳送到DT0中,計(jì)數(shù)器開(kāi)始工作;當(dāng)檢測(cè)到X2的上升沿時(shí),即復(fù)位信號(hào)有效,DT0被清0,計(jì)數(shù)器停止工作。 X0為加/減控制信號(hào),當(dāng)其為ON時(shí),進(jìn)行加計(jì)數(shù),為OFF時(shí),進(jìn)行減計(jì)數(shù)。 X1為計(jì)數(shù)輸入信號(hào),檢測(cè)到其上升沿時(shí),根據(jù)X0的狀態(tài),執(zhí)行加1或減1計(jì)數(shù)。 這里,DT10相當(dāng)于CT指令中的預(yù)置值寄存器SV,DT0相當(dāng)于經(jīng)過(guò)值寄存器EV。當(dāng)DT0中的結(jié)果為0時(shí)
24、,特殊內(nèi)部寄存器R900B接通,內(nèi)部寄存器R50有輸出。 SR為左移移位指令。其功能為:當(dāng)R端為OFF狀態(tài)時(shí),該指令有效。這時(shí),每檢測(cè)到一個(gè)CP端的上升沿(OFFON),WRn中的數(shù)據(jù)就從低位向高位依次左移一位,其中,WRn的最低位用數(shù)據(jù)輸入端IN的狀態(tài)補(bǔ)入,最高位數(shù)據(jù)丟失。當(dāng)R為ON狀態(tài)時(shí),該指令復(fù)位,WRn中的數(shù)據(jù)被清零。此外,需要指出的是,該指令的操作數(shù)只能用內(nèi)部字繼電器WR,n為WR繼電器的編號(hào)。 當(dāng)復(fù)位信號(hào)X3為OFF狀態(tài)時(shí),每當(dāng)檢測(cè)到移位信號(hào)X2的上升沿,WR6寄存器的數(shù)據(jù)左移1位,最高位丟失,最低位由當(dāng)時(shí)數(shù)據(jù)輸入信號(hào)X1的狀態(tài)決定:如果當(dāng)時(shí)X1處于接通狀態(tài),則補(bǔ)1,否則,補(bǔ)0。
25、如果X3接通,WR6的內(nèi)容清0,這時(shí)X2信號(hào)無(wú)效,移位指令停止工作。F119(LRSR)指令為左/右移位寄存器指令,使16-bit內(nèi)部繼電器中的數(shù)據(jù)向左或向右移動(dòng)1-bit。F119(LRSR)指令可以使用作為數(shù)據(jù)區(qū)的寄存器和常數(shù)見(jiàn)下表。 D1:移位區(qū)內(nèi)首地址寄存器; D2:移位區(qū)內(nèi)末地址寄存器;注意:移位區(qū)內(nèi)的首地址和末地址要求是同一種類型的寄存器,并滿足D1D2。操作數(shù)可用寄存器繼電器定時(shí)/計(jì)數(shù)器寄存器索引寄存器常數(shù)索引修正值WXWYWRSVEVDTIXIYKHD1D2 F119(LRSR)指令需要有4個(gè)輸入信號(hào),即左/右移位信號(hào)、數(shù)據(jù)輸入、移位信號(hào)和復(fù)位觸發(fā)信號(hào),分別對(duì)應(yīng)例中X0 X3共
26、4個(gè)觸點(diǎn)。DT0指定移位區(qū)首地址,DT9指定末地址。 當(dāng)X3為ON時(shí),復(fù)位信號(hào)有效,DT0和DT9均被清0,移位寄存器停止工作。 當(dāng)X3為OFF時(shí),移位寄存器正常工作。這時(shí),由移位觸發(fā)信號(hào)X2的上升沿觸發(fā)移位操作,移動(dòng)的方向由X0決定,若X0為ON,表示進(jìn)行數(shù)據(jù)左移,為OFF,表示進(jìn)行數(shù)據(jù)右移。至于移入的數(shù)據(jù)為1還是為0,則取決于X1的狀態(tài),若X1接通,移入數(shù)據(jù)為1,否則,移入數(shù)據(jù)為0。 這里,DT0 DT9構(gòu)成了連續(xù)的16位寄存器區(qū),移位操作使所有位同時(shí)進(jìn)行,整個(gè)區(qū)域按照高位在左側(cè)、低位在右側(cè)的順序排列。 從程序的執(zhí)行步驟和結(jié)構(gòu)構(gòu)成上看,基本順序指令和基本功能指令是按照其地址順序執(zhí)行的,直到
27、程序結(jié)束為止;而控制指令則可以改變程序的執(zhí)行順序和流程,產(chǎn)生跳轉(zhuǎn)和循環(huán),構(gòu)成復(fù)雜的程序及邏輯結(jié)構(gòu)。 PLC指令的執(zhí)行特點(diǎn)是采用掃描執(zhí)行方式,這里就存在掃描和執(zhí)行的關(guān)系的問(wèn)題:對(duì)于一段代碼,是正常的步驟,但是也存在另外一種情況,就是,從時(shí)間上看,仍然要占用CPU時(shí)間,但從結(jié)果上看,什么也沒(méi)有作,相當(dāng)于忽略了這段代碼。因此,這種情況比較特殊,在控制指令部分會(huì)經(jīng)常遇到,要注意區(qū)別。 另外,的概念在這部分經(jīng)常用到,實(shí)際上與前文提到的是一樣的,可以是一個(gè)觸點(diǎn),也可以是多個(gè)觸點(diǎn)的組合,用于控制(觸發(fā))相關(guān)程序的執(zhí)行。 MC:主控繼電器指令。MCE:主控繼電器結(jié)束指令。 功能:用于在程序中將某一段程序單獨(dú)界
28、定出來(lái)。當(dāng)MC前面的控制觸點(diǎn)閉合時(shí),執(zhí)行MC至MCE間的指令;當(dāng)該觸點(diǎn)斷開(kāi)時(shí),不執(zhí)行MC至MCE間的指令。 當(dāng)控制觸點(diǎn)X0接通時(shí),執(zhí)行MC0到MCE0之間的程序,這時(shí),從上圖中的梯形圖可以看出,效果等同于右側(cè)的簡(jiǎn)化梯形圖。否則,不執(zhí)行MC0到MCE0之間的程序。 值得注意的是,當(dāng)主控繼電器控制觸點(diǎn)斷開(kāi)時(shí),在MC至MCE之間的程序,遵循掃描但不執(zhí)行的規(guī)則,可編程控制器仍然掃描這段程序,不能簡(jiǎn)單地認(rèn)為可編程控制器跳過(guò)了這段程序。而且,在該程序段中不同的指令狀態(tài)變化情況也有所不同,具體情況參見(jiàn)下表。 指令或寄存器狀態(tài)變化OT(Y、R等)全部OFF狀態(tài)KP、SET、RST保持控制觸點(diǎn)斷開(kāi)前對(duì)應(yīng)各繼電器
29、的狀態(tài)TM、F137(STMR)復(fù)位,即停止工作CT、F118(UDC)保持控制觸點(diǎn)斷開(kāi)前經(jīng)過(guò)值,但停止工作SR、F119(LRSR)保持控制觸點(diǎn)斷開(kāi)前經(jīng)過(guò)值,但停止工作其它指令掃描但是不執(zhí)行 MC和MCE在程序中應(yīng)成對(duì)出現(xiàn),每對(duì)編號(hào)相同,編號(hào)范圍為0 31之間的整數(shù)。而且,同一編號(hào)在一個(gè)程序中只能出現(xiàn)一次。 MC和MCE的順序不能顛倒。 MC指令不能直接從母線開(kāi)始,即必須有控制觸點(diǎn)。 在一對(duì)主控繼電器指令(MC、MCE)之間可以嵌套另一對(duì)主控繼電器指令。JP:跳轉(zhuǎn)指令。LBL:跳轉(zhuǎn)標(biāo)記指令。 當(dāng)控制觸點(diǎn)閉合時(shí),跳轉(zhuǎn)到和JP指令編號(hào)相同的LBL處,不執(zhí)行JP和LBL之間的程序,轉(zhuǎn)而執(zhí)行LBL指
30、令之后的程序。與主控指令不同,遵循不掃描不執(zhí)行的原則,在執(zhí)行跳轉(zhuǎn)指令時(shí),JP和LBL之間的指令略過(guò),所以可使整個(gè)程序的掃描周期變短。 在JP1指令的前面、JP1與LBL1中間、以及LBL1的后面都可能有其它的指令程序段,如圖所示。當(dāng)控制觸點(diǎn)X0斷開(kāi)時(shí),跳轉(zhuǎn)指令不起作用,JP1與LBL1中間的指令正常執(zhí)行,與沒(méi)有跳轉(zhuǎn)指令一樣;當(dāng)控制觸點(diǎn)X0接通時(shí),執(zhí)行跳轉(zhuǎn)指令,跳過(guò)JP1與LBL1中間的程序段,直接執(zhí)行LBL1的后面的程序段。 可以使用多個(gè)編號(hào)相同的JP指令,即允許設(shè)置多個(gè)跳向一處的跳轉(zhuǎn)點(diǎn),編號(hào)可以是0 63以內(nèi)的任意整數(shù),但不能出現(xiàn)相同編號(hào)的LBL指令,否則程序?qū)o(wú)法確定將要跳轉(zhuǎn)的位置。 LB
31、L指令應(yīng)該放在同序號(hào)的JP指令的后面,當(dāng)然,放在前面也可以,不過(guò)這時(shí)掃描不會(huì)終止,而且可能發(fā)生瓶頸錯(cuò)誤,詳細(xì)內(nèi)容請(qǐng)參見(jiàn)手冊(cè)。 JP指令不能直接從母線開(kāi)始,即前面必須有觸發(fā)信號(hào)。 在一對(duì)跳轉(zhuǎn)指令之間可以嵌套另一對(duì)跳轉(zhuǎn)指令。 不能從結(jié)束指令ED以前的程序跳轉(zhuǎn)到ED以后的程序中去;不能在子程序或中斷程序與主程序之間跳轉(zhuǎn);不能在步進(jìn)區(qū)和非步進(jìn)區(qū)進(jìn)行跳轉(zhuǎn)。LOOP:循環(huán)指令。LBL:循環(huán)標(biāo)記指令。 循環(huán)指令的功能為:當(dāng)執(zhí)行條件成立時(shí),循環(huán)次數(shù)減1,如果結(jié)果不為0,跳轉(zhuǎn)到與LOOP相同編號(hào)的LBL處,執(zhí)行LBL指令后的程序。重復(fù)上述過(guò)程,直至結(jié)果為0,停止循環(huán);當(dāng)執(zhí)行條件不成立時(shí),不循環(huán)執(zhí)行。 當(dāng)X6接通
32、時(shí),數(shù)據(jù)寄存器DT0的預(yù)置值減1,若結(jié)果不為0,LOOP指令跳轉(zhuǎn)到LBL1處,執(zhí)行LBL1之后的程序。重復(fù)執(zhí)行相同的操作直至DT0中的內(nèi)容變?yōu)?,結(jié)束循環(huán)。 當(dāng)X6斷開(kāi)時(shí),不執(zhí)行循環(huán)。 可以使用多個(gè)編號(hào)相同的LOOP指令,編號(hào)可以是0 63以內(nèi)的任意整數(shù),但不能出現(xiàn)相同編號(hào)的LBL指令,否則程序?qū)o(wú)法確定循環(huán)區(qū)間。此外,該指令可以與JP指令共用相同編號(hào)的LBL指令,但為了程序清晰,盡量避免。 LBL指令與同編號(hào)的LOOP指令的前后順序不限,但工作過(guò)程不同。一般將LBL指令放于LOOP指令的上面,此時(shí),執(zhí)行循環(huán)指令的整個(gè)過(guò)程都是在一個(gè)掃描周期內(nèi)完成的,所以整個(gè)循環(huán)過(guò)程不可太長(zhǎng),否則掃描周期變長(zhǎng),
33、影響了PLC的響應(yīng)速度,有時(shí)甚至?xí)鲥e(cuò)。 LOOP指令不能直接從母線開(kāi)始,即必須有觸發(fā)信號(hào)。當(dāng)某編號(hào)的LOOP對(duì)應(yīng)的觸發(fā)信號(hào)接通時(shí),與同編號(hào)的LBL即構(gòu)成一個(gè)循環(huán)。 循環(huán)跳轉(zhuǎn)指令可以嵌套使用。 不能從結(jié)束指令ED以前的程序跳轉(zhuǎn)到ED以后的程序中去;也不能在子程序或中斷程序與主程序之間跳轉(zhuǎn);不能在步進(jìn)區(qū)和非步進(jìn)區(qū)進(jìn)行跳轉(zhuǎn)。ED:結(jié)束指令,表示主程序結(jié)束。CNDE:條件結(jié)束指令,當(dāng)控制觸點(diǎn)閉合時(shí),可編程控制器不再繼續(xù)執(zhí)行程序,結(jié)束當(dāng)前掃描周期,返回起始地址;否則,繼續(xù)執(zhí)行該指令后面的程序段。 當(dāng)控制觸點(diǎn)X0閉合時(shí),條件結(jié)束指令CNDE起作用,返回程序起始地址,當(dāng)前的掃描結(jié)束,進(jìn)入下一次掃描;否則,
34、控制觸點(diǎn)X0斷開(kāi),繼續(xù)執(zhí)行下面的指令掃描,當(dāng)遇到ED指令,才結(jié)束當(dāng)前的掃描。SSTP:步進(jìn)開(kāi)始指令,表明開(kāi)始執(zhí)行該段步進(jìn)程序。NSTP、NSTL:轉(zhuǎn)入指定步進(jìn)過(guò)程指令。這兩個(gè)指令的功能一樣,都是當(dāng)觸發(fā)信號(hào)來(lái)時(shí),程序轉(zhuǎn)入下一段步進(jìn)程序段,并將前面程序所用過(guò)的數(shù)據(jù)區(qū)清除,輸出OT關(guān)斷、定時(shí)器TM復(fù)位。區(qū)別在于觸發(fā)方式不同,前者為脈沖式,僅當(dāng)控制觸點(diǎn)閉合瞬間動(dòng)作,即檢測(cè)控制觸點(diǎn)的上升沿,類似于微分指令;后者為掃描式,每次掃描檢測(cè)到控制觸點(diǎn)閉合都要?jiǎng)幼?。CSTP:復(fù)位指定的步進(jìn)過(guò)程。STPE:步進(jìn)結(jié)束指令,結(jié)束整個(gè)步進(jìn)過(guò)程。 除了用于生產(chǎn)過(guò)程的順序控制,步進(jìn)指令還可用于選擇分支控制、并行分支控制等,
35、當(dāng)檢測(cè)到X0的上升沿時(shí),執(zhí)行步進(jìn)過(guò)程1(SSTP1SSTP2);當(dāng)X1接通時(shí),清除步進(jìn)過(guò)程1,并執(zhí)行步進(jìn)過(guò)程2;當(dāng)X3接通時(shí),清除步進(jìn)過(guò)程50,步進(jìn)程序執(zhí)行完畢。 步進(jìn)程序中允許輸出OT直接同左母線相連。 步進(jìn)程序中不能使用MC和MCE、JP和LBL、LOOP和LBL、ED和CNDE指令。 在步進(jìn)程序區(qū)中,識(shí)別一個(gè)過(guò)程是從一個(gè)SSTP指令開(kāi)始到下一個(gè)SSTP指令,或一個(gè)SSTP指令到STPE指令,即步進(jìn)程序區(qū)全部結(jié)束。 當(dāng)NSTP或NSTL前面的控制觸點(diǎn)接通時(shí),程序進(jìn)入下一段步進(jìn)程序。這里的控制觸點(diǎn)和步進(jìn)控制程序區(qū)結(jié)束指令STPE都是必需的。CALL:子程序調(diào)用指令,執(zhí)行指定的子程序。SUB:
36、子程序開(kāi)始標(biāo)志指令,用于定義子程序。RET:子程序結(jié)束指令,執(zhí)行完畢返回到主程序。 子程序調(diào)用指令的功能:當(dāng)CALL n指令的執(zhí)行條件成立時(shí),程序轉(zhuǎn)至子程序起始指令SUB n處,執(zhí)行SUB n到RET之間的第n號(hào)子程序。遇到RET指令,子程序結(jié)束并返回到CALL n的下一條指令處,繼續(xù)執(zhí)行主程序。 當(dāng)X0接通時(shí),程序從主程序轉(zhuǎn)到編號(hào)為1的子程序的起始地址SUB 1處,開(kāi)始執(zhí)行子程序;當(dāng)執(zhí)行到RET處時(shí),子程序執(zhí)行完畢,返回到主程序調(diào)用處,從CALL 1指令的下一條指令繼續(xù)執(zhí)行隨后的主程序。 當(dāng)X0斷開(kāi)時(shí),不調(diào)用子程序,繼續(xù)執(zhí)行主程序。 FP1-C24可用子程序的個(gè)數(shù)為16個(gè),即子程序編號(hào)范圍為
37、SUB0 SUB15,且兩個(gè)子程序的編號(hào)不能相同。 子程序必須編寫(xiě)在主程序的ED指令后面,由子程序入口標(biāo)志SUB開(kāi)始,最后是RET指令,缺一不可。 子程序調(diào)用指令CALL可以在主程序、子程序或中斷程序中使用,可見(jiàn),子程序可以嵌套調(diào)用,但最多不超過(guò)5層。 當(dāng)控制觸點(diǎn)為OFF時(shí),子程序不執(zhí)行。這時(shí),子程序內(nèi)的指令狀態(tài)如下表所示。指令或寄存器狀態(tài)變化OT、KP、SET、RST保持控制觸點(diǎn)斷開(kāi)前對(duì)應(yīng)各繼電器的狀態(tài)TM、F137(STMR)不執(zhí)行CT、F118(UDC);SR、F119(LRSR)保持控制觸點(diǎn)斷開(kāi)前經(jīng)過(guò)值,但停止工作其它指令不執(zhí)行ICTL:中斷控制指令,用于設(shè)定中斷的類型及參數(shù)。INT:
38、 中斷程序開(kāi)始標(biāo)志。IRET:中斷程序結(jié)束標(biāo)志。 為了提高PLC的實(shí)時(shí)控制能力,提高PLC與外部設(shè)備配合運(yùn)行的工作效率以及PLC處理突發(fā)事件的能力,F(xiàn)P1設(shè)置了中斷功能。中斷就是中止當(dāng)前正在運(yùn)行的程序,去執(zhí)行為要求立即響應(yīng)信號(hào)而編制的中斷服務(wù)程序,執(zhí)行完畢再返回原先被中止的程序并繼續(xù)運(yùn)行。 1) 外部中斷共有8個(gè)中斷源X0 X7,對(duì)應(yīng)中斷入口為 X0 INT0 X4 INT4 X1 INT1 X5 INT5 X2 INT2 X6 INT6 X3 INT3 X7 INT7 其優(yōu)先級(jí)別為INT0最高,INT7最低。FP1規(guī)定中斷信號(hào)的持續(xù)時(shí)間應(yīng)2ms。2) 內(nèi)部定時(shí)中斷是通過(guò)軟件編程來(lái)設(shè)定每間隔一
39、定的時(shí)間去響應(yīng)一次中斷服務(wù)程序,定時(shí)中斷的中斷入口為INT24。 FP1-C24以上機(jī)型均有中斷功能,其中斷功能有兩種類型,一種是外部中斷,又叫,一種是定時(shí)中斷,又叫。1) 對(duì)于內(nèi)部定時(shí)中斷,是通過(guò)編程來(lái)實(shí)現(xiàn)的,定時(shí)中斷的時(shí)間,由中斷命令控制字設(shè)定。2) 對(duì)于外部中斷,應(yīng)先設(shè)定系統(tǒng)寄存器No.403的值,然后再設(shè)定中斷控制字,并按中斷程序的書(shū)寫(xiě)格式編寫(xiě)程序。 ICTL是中斷控制字指令,有二個(gè)操作數(shù)S1和S2。它可以是常數(shù)H,也可以是某個(gè)寄存器的數(shù)據(jù)。其中S1設(shè)置中斷類型,S2設(shè)置中斷參數(shù)。具體設(shè)置方法參見(jiàn)手冊(cè)。 此外,與普通微機(jī)不同,PLC的中斷是非嵌套的,也就是說(shuō),在執(zhí)行低級(jí)中斷時(shí),若有高級(jí)
40、中斷到來(lái),并不立即響應(yīng)高級(jí)中斷,而是在執(zhí)行完當(dāng)前中斷后,才響應(yīng)高級(jí)中斷。 使用外部中斷之前,首先設(shè)置系統(tǒng)寄存器No.403。 ICTL指令應(yīng)和DF指令配合使用。 中斷子程序應(yīng)放在主程序結(jié)束指令ED之后。 INT和IRET指令必須成對(duì)使用。 中斷子程序中不能使用定時(shí)器指令TM。 中斷子程序的執(zhí)行時(shí)間不受掃描周期的限制。 中斷子程序中可以使用子程序調(diào)用指令。比較指令由3部分組成分別由ST、AN、OR開(kāi)始,用于指定條件滿足后要進(jìn)行的操作是開(kāi)始,還是邏輯與、邏輯或;主要有等于(=)、大于()、小于(=)、小于等于(=)和不等于()共6種關(guān)系,滿足關(guān)系則為真、不滿足則為假;可以為常數(shù),即通常所說(shuō)的直接尋
41、址方式,也可以為寄存器的值,即通常所說(shuō)的間接尋址方式。第二部分比較運(yùn)算符指定進(jìn)行的操作即是針對(duì)這兩個(gè)數(shù)。根據(jù)DT2中的數(shù)據(jù)范圍,或(DT1,DT0)中的內(nèi)容,來(lái)決定R0的輸出狀態(tài)。設(shè)DT2中數(shù)據(jù)用x表示,(DT1,DT0)中數(shù)據(jù)用y表示,則當(dāng)16x32,或者y64時(shí),R0導(dǎo)通,輸出為ON;否則,R0斷開(kāi),輸出為OFF。 從該例可以看出,比較指令實(shí)際上相當(dāng)于一個(gè)條件觸點(diǎn),根據(jù)條件是否滿足,決定觸點(diǎn)的通斷。單字比較為16位數(shù)據(jù),雙字比較為32位數(shù)據(jù),用寄存器尋址時(shí),后者采用兩個(gè)相鄰寄存器聯(lián)合取值,如例中(DT1,DT0),表示由DT1和DT0聯(lián)合構(gòu)成32位數(shù)據(jù)。在構(gòu)成梯形圖時(shí),ST、AN、OR與基
42、本順序指令中用法類似,區(qū)別僅在于操作數(shù)上,前者為寄存器(16-bit或32-bit),后者為繼電器(1-bit)。單字指令步數(shù)為5步,而雙字指令步數(shù)為9步。16位、32位數(shù)據(jù),以及位數(shù)據(jù)的傳送、拷貝、交換等功能。:二進(jìn)制數(shù)和BCD碼的加、減、乘、除等算術(shù)運(yùn)算。16位或32位數(shù)據(jù)的比較。16位數(shù)據(jù)的與、或、異或和異或非運(yùn)算。16位或32位數(shù)據(jù)按指定的格式進(jìn)行轉(zhuǎn)換。16位數(shù)據(jù)進(jìn)行左移、右移、循環(huán)移位和數(shù)據(jù)塊移位等。16位數(shù)據(jù)以位為單位,進(jìn)行置位、復(fù)位、求反、測(cè)試以及位狀態(tài)統(tǒng)計(jì)等操作。包括時(shí)間單位的變換、I/O刷新、進(jìn)位標(biāo)志的置位和復(fù)位、串口通信及高速計(jì)數(shù)器指令等等。 高級(jí)指令由大寫(xiě)字母“F”、指令
43、功能號(hào)、助記符和操作數(shù)組成,指令的格式如下。 Fn是指令功能號(hào),F(xiàn)nF0 F165。不同的功能號(hào)規(guī)定CPU進(jìn)行不同的操作。指令的助記符用英文縮寫(xiě)表示,一般可據(jù)此大致推測(cè)出該指令的功能。 S是源操作數(shù)或源數(shù)據(jù)區(qū),D是目的操作數(shù)或目的數(shù)據(jù)區(qū),分別指定操作數(shù)或其地址、性質(zhì)和內(nèi)容。 操作數(shù)可以是一個(gè)、二個(gè)或者三個(gè),取決于所用的指令,可以是單字(16-bit)和雙字(32-bit)的數(shù)據(jù),若為位操作指令,還可以是位(1-bit)數(shù)據(jù)。p 二進(jìn)制系統(tǒng)(BIN)p 十進(jìn)制常數(shù)(K常數(shù))p 十六進(jìn)制常數(shù)(H常數(shù))p 二進(jìn)制表示的十進(jìn)制數(shù)(BCD碼) 字繼電器(WX、WY、WR)、定時(shí)器/計(jì)數(shù)器區(qū)(T、C、SV
44、、EV)、數(shù)據(jù)寄存器(DT)、索引寄存器(IX、IY)和常數(shù)(K、H)均由1個(gè)字(16-bit)構(gòu)成,且以字為單位進(jìn)行處理。字繼電器的內(nèi)容按位對(duì)應(yīng)其繼電器元件的狀態(tài)。 在高級(jí)指令的前面必須加控制觸點(diǎn)(觸發(fā)信號(hào)),而在后面只能是右母線。 根據(jù)執(zhí)行的過(guò)程,F(xiàn)P1的指令有兩種類型,即F型和P型。如果控制觸點(diǎn)接通后,其后續(xù)的指令每個(gè)掃描周期都要執(zhí)行一次,稱為“F型”指令;否則,如果后續(xù)的指令只在觸發(fā)信號(hào)的上升沿執(zhí)行一次,稱為“P型”指令。本書(shū)中只介紹“F型”指令,如果在控制過(guò)程中需要只執(zhí)行一次高級(jí)指令,可在F型高級(jí)指令的前面使用微分指令(DF)實(shí)現(xiàn)。 如果多個(gè)高級(jí)指令連續(xù)使用同一控制觸點(diǎn),不必每次都畫(huà)
45、出或?qū)懗鲈摽刂朴|點(diǎn)。見(jiàn)下圖中虛線部分,第二、第三個(gè)指令的X0觸點(diǎn)可以省略,則圖(a)簡(jiǎn)化為圖(b)。 (a) (b) 數(shù)據(jù)傳送指令的功能是將源操作數(shù)中的數(shù)據(jù),按照規(guī)定的要求,復(fù)制到目的操作數(shù)中去,可分為數(shù)據(jù)傳送、位傳送、數(shù)字傳送、塊傳送及復(fù)制、寄存器交換等。 F0 MV S, D :將一個(gè)16位的常數(shù)或寄存器中的數(shù)據(jù)傳送到另一個(gè)寄存器中去。F1 DMV S, D :將一個(gè)32位的常數(shù)或寄存器區(qū)中的數(shù)據(jù)傳送到另一個(gè)寄存器區(qū)中去。F2 MV/ S, D :將一個(gè)16位的常數(shù)或寄存器中的數(shù)據(jù)取反后傳送到另一個(gè)寄存器中去。F3 DMV/ S, D :將一個(gè)32位的常數(shù)或寄存器區(qū)中的數(shù)據(jù)取反后傳送到另一
46、個(gè)寄存器區(qū)中去。當(dāng)控制觸點(diǎn)X0閉合時(shí),每個(gè)掃描周期都要重復(fù)將十進(jìn)制數(shù)100傳送到內(nèi)部字寄存器DT0中。 F0(MV)指令對(duì)源操作數(shù)沒(méi)有要求,而目的操作數(shù)不能是輸入繼電器WX和常數(shù)K、H,原因很明顯:目的操作數(shù)是用來(lái)保存結(jié)果的,自然不能用輸入繼電器和常數(shù)。后面介紹的其它指令也有類似情況。與上例相比,該例有5點(diǎn)不同,下面加以詳細(xì)說(shuō)明。1) 在控制觸點(diǎn)后,增加了微分指令DF,表示該指令僅在檢測(cè)到控制觸點(diǎn)X0閉合時(shí)執(zhí)行一次;2) F3(DMV/)指令助記符的第一個(gè)字符為“D”,表示該指令為雙字操作,目的操作數(shù)為DT0寄存器,表示數(shù)據(jù)保存在寄存器DT1、DT0構(gòu)成的32位單元中。在以后的雙字操作指令中也
47、遵循這一原則,即由相鄰2個(gè)16位寄存器聯(lián)合構(gòu)成一個(gè)32位寄存器,默認(rèn)指定的是低16位寄存器。如果低16位區(qū)已分別指定為S、D,則高16位分別自動(dòng)指定為S+1、D+1,本例中: S+1(高位)WR3,S(低位)WR2 D+1(高位)DT1,D(低位)DT0指令表地址指令數(shù)據(jù)0STX01F0(DMV/)WR2DT0梯形圖X0F3 DMV/, WR2 DT00(DF)3) F3(DMV/)指令助記符的最后一個(gè)字符為“/”,表示在進(jìn)行傳送時(shí),要對(duì)被傳送的數(shù)據(jù)先進(jìn)行取反,然后將結(jié)果送往目的寄存器區(qū)。4) 源操作數(shù)和目的操作數(shù)都用寄存器方式尋址,源操作數(shù)在執(zhí)行指令后內(nèi)容不變,目的操作數(shù)則被覆蓋,相當(dāng)于執(zhí)行
48、數(shù)據(jù)拷貝操作。數(shù)據(jù)的傳遞關(guān)系與結(jié)果參看下表。5) 與F0(MV)指令不同的是,S和D不能用IY寄存器。IX和IY除用作索引寄存器外,還可以用作通用寄存器。當(dāng)用作通用16位寄存器時(shí),二者可單獨(dú)使用;當(dāng)用作32位存儲(chǔ)區(qū)時(shí),二者聯(lián)用,IX存低16位,IY存高16位,因此程序中只能引用IX,IY由系統(tǒng)自動(dòng)引用,無(wú)論是S還是D均如此。這個(gè)規(guī)則對(duì)于所有的雙字(32-bit)指令都適用。 F5 BTM S, n, D :16位二進(jìn)制數(shù)的位傳送指令。將一個(gè)16位二進(jìn)制數(shù)的任意指定位,拷貝到另一個(gè)16位二進(jìn)制數(shù)據(jù)中的任意指定位中去。 F6 DGT S, n, D :16位十六進(jìn)制數(shù)的位傳送指令。將一個(gè)16位數(shù)據(jù)
49、按十六進(jìn)制,傳送若干位(digit)到另一個(gè)16位寄存器區(qū)中去。 當(dāng)控制觸點(diǎn)X0接通時(shí),WX0中第05位數(shù)據(jù)傳送到DT0中的第11位去,如下圖所示。WX0中的數(shù)據(jù)由前面的程序賦值,DT0中的數(shù)據(jù)可能已經(jīng)賦值,也可能沒(méi)有賦值,但是執(zhí)行完該指令后,DT0的第11位被賦值為1。 在F5(BTM)指令中,S為源操作數(shù),是被傳送的16位常數(shù)或寄存器中的數(shù)據(jù);D為目的操作數(shù),表示接收數(shù)據(jù)的16位目的寄存器;n是16位的操作數(shù),又稱傳輸控制碼,它指明了源操作數(shù)中哪一位數(shù)據(jù)將被傳送以及傳送到目的操作數(shù)中的哪一位置。在n中,bit0 bit3用以指定源操作數(shù)中哪一位將被傳送,bit8 bit11用以指定被傳送數(shù)
50、據(jù)放在目的操作數(shù)的什么位置,bit4 bit7、bit12 bit15這8位未用,可隨便取值,不影響結(jié)果,為簡(jiǎn)便計(jì),一般均取為0。因此,本例中源區(qū)位地址取為H5,目的區(qū)位地址取為HB。n的設(shè)置參見(jiàn)下圖。 對(duì)于F6(DGT),在n的定義上有所不同,一是數(shù)據(jù)操作的最小單位為十六進(jìn)制的1位,即1digit,相當(dāng)于二進(jìn)制的4bits;二是要拷貝的數(shù)據(jù)不像F5那樣只有1位,而是有效范圍內(nèi)的任意位,因此還需要指定參與操作的位數(shù)。n的設(shè)置可參考下圖。 由圖中可見(jiàn),n的bit12 bit15未用,以十六進(jìn)制表示,即digit3未用。 為了能夠表示數(shù)據(jù)段,采用的是“首地址+段長(zhǎng)度”的表示方式,即由digit2表
51、示目的區(qū)首地址、digit1表示要拷貝的數(shù)據(jù)段位數(shù)、digit0表示源區(qū)首地址,這樣進(jìn)行操作的數(shù)據(jù)區(qū)地址就可唯一確定。 舉例而言,若想將源區(qū)的4個(gè)十六進(jìn)制位(digit0 digit3)拷貝到目的區(qū)的4個(gè)十六進(jìn)制位(digit1 digit3,digit0),可將n取值為H0130,其含義見(jiàn)左圖,執(zhí)行情況見(jiàn)右圖。 值得注意的是,這里有個(gè)“循環(huán)”的概念,即如果目的區(qū)位數(shù)不夠,自動(dòng)回到最小位,再進(jìn)行拷貝。如例中S的digit3應(yīng)該送給D中的digit4,但是D的最大位為digit3,則該數(shù)據(jù)自動(dòng)送往D的digit0。1) F10(BKMV):區(qū)塊傳輸指令。 格式: F10 BKMV S1, S2,
52、 D 說(shuō)明:數(shù)據(jù)段采用的是“首地址+尾地址”的表示方式,即將指定的以S1為起始地址、S2為終止地址的數(shù)據(jù)塊拷貝到以D為起始地址的目的區(qū)中。要求S1和S2應(yīng)為同一類型的寄存器,且S2S1。2) F11(COPY):塊拷貝指令。 格式: F11 COPY S, D1, D2 說(shuō)明:即將由S指定的16-bit常數(shù)或寄存器中的值重復(fù)拷貝到以D1為起始地址、D2為終止地址的目的區(qū)中。要求D1和D2應(yīng)為同一類型的寄存器,且D2D1。1) F15(XCH):16位數(shù)據(jù)交換。 格式: F15 XCH D1, D2 說(shuō)明:將D1和D2寄存器中的16位數(shù)據(jù)互相交換。2) F16(DXCH):32位數(shù)據(jù)交換。 格式
53、: F16 DXCH D1, D2 說(shuō)明:將(D1+1,D1)寄存器中的32位數(shù)據(jù)與(D2+l,D2)中的32位數(shù)據(jù)互換。3) F17(SWAP):16位數(shù)據(jù)的高低字節(jié)互換。 格式: F17 SWAP D 說(shuō)明:將D寄存器中的16位數(shù)據(jù)高8位和低8位互換。 算術(shù)運(yùn)算指令共有32條,但是同前面介紹的比較指令類似,規(guī)律性很強(qiáng)。因此,書(shū)中僅對(duì)其規(guī)律加以總結(jié)分析,掌握規(guī)律后,結(jié)合指令表,不難掌握這類指令。 u按照進(jìn)位制可分為二進(jìn)制BIN算術(shù)運(yùn)算指令和BCD碼算術(shù)運(yùn)算指令,各為16條指令,后者在指令中增加大寫(xiě)字母“B”以示區(qū)別。u按照參與運(yùn)算的數(shù)據(jù)字長(zhǎng)(位數(shù))可以分為單字(16-bit)和雙字(32-b
54、it)指令,后者在助記符中以大寫(xiě)字母“D”區(qū)別,在FP1的其它指令中也是采用這種方式。u按照運(yùn)算規(guī)則可分為加、減、乘、除四則運(yùn)算,以及加1、減1共六種基本運(yùn)算。其中,加1和減1可以看作是加、減運(yùn)算的特例。u按照參與運(yùn)算的操作數(shù)的多少可分為一操作數(shù)、兩操作數(shù)和三操作數(shù)。 u 16位二進(jìn)制數(shù):32768 32767 或H8000 H7FFF。u 32位二進(jìn)制數(shù):2147483648 2147483647 或H80000000 H7FFFFFFF。u 4位BCD碼: 0 9999。u 8位BCD碼: 0 99999999。 算術(shù)運(yùn)算要影響標(biāo)志繼電器,包括特殊內(nèi)部繼電器R9008、R9009和R900
55、B。這里僅對(duì)影響情況做簡(jiǎn)單概括,詳細(xì)情況需要結(jié)合具體的指令,參考手冊(cè)學(xué)習(xí)掌握。l R9008:錯(cuò)誤標(biāo)志。當(dāng)有操作錯(cuò)誤發(fā)生時(shí),R9008接通一個(gè)掃描周期,并把發(fā)生錯(cuò)誤的地址存入DT9018中。l R9009:進(jìn)位、借位或溢出標(biāo)志。當(dāng)運(yùn)算結(jié)果溢出或由移位指令將其置1時(shí),R9009接通一個(gè)掃描周期。l R900B:0結(jié)果標(biāo)志。當(dāng)比較指令中比較結(jié)果相同,或是算術(shù)運(yùn)算結(jié)果為0時(shí),R900B接通一個(gè)掃描周期。1) 加法指令的算法 兩操作數(shù):(D) + (S) (D) 三操作數(shù):(S1) + (S2) (D)2) 減法指令的算法 兩操作數(shù):(D) (S) (D) 三操作數(shù):(S1) (S2) (D)3) 乘
56、法指令的算法 (S1) (S2) (D) 乘法運(yùn)算可能會(huì)導(dǎo)致16位數(shù)據(jù)升為32位,因此結(jié)果用32位存儲(chǔ);同理,32位乘法結(jié)果用64位存儲(chǔ)。存儲(chǔ)區(qū)自動(dòng)取指定寄存器連續(xù)的高位寄存器,例如指定寄存器為D,對(duì)于64位,結(jié)果自動(dòng)存于(D+3, D+2, D+1, D)四個(gè)連續(xù)寄存器中。4) 除法指令的算法 (S1) (S2) (D) 除法運(yùn)算在每次運(yùn)算完后,商數(shù)保存于D中或(D+1, D)中。此外,還可能產(chǎn)生余數(shù),如果是單字運(yùn)算,可到DT9015中取余數(shù);如果是雙字運(yùn)算,可到(DT9016, DT9015)中取余數(shù)。5) 加1和減1指令算法 加1指令:(D) + 1 (D) 減1指令:(D) 1 (D)
57、 算術(shù)運(yùn)算一般都是一次性的,而PLC采用的是掃描執(zhí)行方式,因此該類指令常常和微分指令(DF)聯(lián)合使用。下面舉例對(duì)算術(shù)指令加以說(shuō)明。例3-24:用算術(shù)運(yùn)算指令完成算式, 這里包括了加、減、乘、除四種運(yùn)算。要求X1閉合時(shí)開(kāi)始運(yùn)算,X0閉合時(shí)各單元清零,且清零優(yōu)先。解:使用二進(jìn)制(BIN)運(yùn)算指令實(shí)現(xiàn)時(shí),梯形圖如下圖。同樣的功能也可采用BCD碼運(yùn)算指令實(shí)現(xiàn)。2562002)6541230(5600 數(shù)據(jù)比較指令包括16位或32位數(shù)據(jù)比較指令、一個(gè)16位或32位數(shù)據(jù)與數(shù)據(jù)區(qū)間進(jìn)行比較、數(shù)據(jù)塊比較等5條指令。比較的結(jié)果用特殊內(nèi)部繼電器R9009、R900A、R900B和R900C的狀態(tài)來(lái)表示。 F60
58、CMP, S1, S2 :16位數(shù)據(jù)比較指令。 F61 DCMP, S1, S2 :32位數(shù)據(jù)比較指令。 該類指令的功能為:當(dāng)控制觸點(diǎn)閉合時(shí),將S1指定數(shù)據(jù)與S2指定數(shù)據(jù)進(jìn)行比較,比較的結(jié)果反映到標(biāo)志位中。 如果程序中多次使用F60(CMP)指令,則標(biāo)志繼電器的狀態(tài)總是取決于前面最臨近的比較指令。為了保證使用中不出現(xiàn)混亂,一個(gè)辦法是在比較指令和標(biāo)志繼電器前使用相同的控制觸點(diǎn)來(lái)進(jìn)行控制;另一個(gè)辦法是在比較指令后立即使用相關(guān)的標(biāo)志繼電器。標(biāo)志位結(jié)果R900AR900BR900CR9009標(biāo)志標(biāo)志標(biāo)志進(jìn)位標(biāo)志有符號(hào)數(shù)比較S1S2OFFOFFONS1S2OFFONOFFOFFS1S2ONOFFOFFB
59、CD數(shù)據(jù)或無(wú)符號(hào)數(shù)比較S1S2OFFONS1S2OFFONOFFOFFS1S2OFFOFF表3-14 16位數(shù)據(jù)比較指令F60(CMP) 對(duì)標(biāo)志位影響 F62 WIN, S1, S2, S3 :16位數(shù)據(jù)區(qū)段比較指令。 F63 DWIN, S1, S2, S3 :32位數(shù)據(jù)區(qū)段比較指令。 該類指令的功能為:當(dāng)控制觸點(diǎn)閉合時(shí),將S1指定數(shù)據(jù)與S2指定下限、S3指定上限的數(shù)據(jù)區(qū)間中的數(shù)據(jù)比較,比較的結(jié)果反映到標(biāo)志位中。標(biāo)志位結(jié)果R900AR900BR900C標(biāo)志標(biāo)志標(biāo)志S1S2OFFOFFONS2S1S3OFFONOFFS1S3ONOFFOFF表3-15 16位數(shù)據(jù)區(qū)間比較指令F62(WIN)對(duì)標(biāo)
60、志位影響 F64 BCMP, S1, S2, S3 :數(shù)據(jù)塊比較指令。 該指令功能為:當(dāng)控制觸點(diǎn)閉合時(shí),根據(jù)S1指定的比較參數(shù),該參數(shù)包括數(shù)據(jù)塊的起點(diǎn)和長(zhǎng)度,比較由S2指定首地址的數(shù)據(jù)塊和由S3指定首地址的數(shù)據(jù)塊中的內(nèi)容,當(dāng)兩個(gè)數(shù)據(jù)塊完全相同時(shí),特殊內(nèi)部繼電器R900B接通。S1指定的比較參數(shù)的定義見(jiàn)下圖。 該類指令很簡(jiǎn)單,包括與、或、異或和異或非4種。操作數(shù)均為16位,均有三操作數(shù),將S1和S2分別進(jìn)行上述4種運(yùn)算,結(jié)果存于D中。格式: F65 WAN S1, S2, D 功能:16-bit data AND,16位數(shù)據(jù)“與”運(yùn)算。格式: F66 WOR S1, S2, D 功能:16-bi
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 審計(jì)部門(mén)個(gè)人工作總結(jié)
- 安全教育課件《如何拒絕校園暴力》
- 免疫學(xué)的臨床應(yīng)用
- 惠州物業(yè)合同范例
- 家裝油漆合同范例
- 勞務(wù)派遣合伙合同范例
- 庫(kù)板安裝合同范例
- 工商建設(shè)工程合同范例
- 工程木工施工合同范例
- 婚禮購(gòu)銷合同模板
- 設(shè)備-往復(fù)式壓縮機(jī)結(jié)構(gòu)原理
- 大型活動(dòng)策劃方案流程
- 2024年特種設(shè)備作業(yè)人員技能考試-場(chǎng)(廠)內(nèi)專用機(jī)動(dòng)車輛作業(yè)筆試歷年真題薈萃含答案
- 智慧口岸查驗(yàn)系統(tǒng)整體解決方案
- 2023.秋期版國(guó)開(kāi)電大專科《人力資源管理》機(jī)考問(wèn)答題庫(kù)(珍藏版)
- Unit4-Hows-the-weather-today-說(shuō)課(課件)人教精通版英語(yǔ)四年級(jí)上冊(cè)
- 大學(xué)新生心理壓力與情緒管理策略與心理調(diào)整與發(fā)展計(jì)劃
- 黃旭華(修訂版)
- 項(xiàng)目風(fēng)險(xiǎn)評(píng)估與緩解措施
- 職業(yè)打假人投訴、舉報(bào)處理規(guī)范
- 子宮內(nèi)膜異位癥術(shù)后護(hù)理課件
評(píng)論
0/150
提交評(píng)論