FP1的指令系統(tǒng)_第1頁(yè)
FP1的指令系統(tǒng)_第2頁(yè)
FP1的指令系統(tǒng)_第3頁(yè)
FP1的指令系統(tǒng)_第4頁(yè)
FP1的指令系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩127頁(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)介

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)的。內(nèi)部的硬件資源多數(shù)是以繼電器的概念出現(xiàn)的。注意,只是概念上的繼電器,并非物理繼電器。這里所指注意,只是概念上的繼電器,并非物理繼電器。這里所指的繼電器均為軟繼電器,是由的繼電器均為

2、軟繼電器,是由PLC內(nèi)部的存儲(chǔ)單元構(gòu)成的。內(nèi)部的存儲(chǔ)單元構(gòu)成的。 物理繼電器的常開和常閉觸點(diǎn)數(shù)量是有限的。物理繼電器的常開和常閉觸點(diǎn)數(shù)量是有限的。 PLC中的繼電器的觸點(diǎn)數(shù)是無(wú)限的中的繼電器的觸點(diǎn)數(shù)是無(wú)限的輸入觸點(diǎn):輸入觸點(diǎn):外接輸入電路閉合時(shí),輸入映像寄存器為外接輸入電路閉合時(shí),輸入映像寄存器為1狀態(tài),梯形圖中狀態(tài),梯形圖中對(duì)應(yīng)的常開觸點(diǎn)(對(duì)應(yīng)的常開觸點(diǎn)(-| |-)接通,而常閉觸點(diǎn)斷開。)接通,而常閉觸點(diǎn)斷開。外接輸入電路斷開時(shí),輸入映像寄存器為外接輸入電路斷開時(shí),輸入映像寄存器為0狀態(tài),梯形圖中狀態(tài),梯形圖中對(duì)應(yīng)的常開觸點(diǎn)斷開,常閉觸點(diǎn)閉合。對(duì)應(yīng)的常開觸點(diǎn)斷開,常閉觸點(diǎn)閉合。標(biāo)準(zhǔn)線圈(動(dòng)

3、作線圈):標(biāo)準(zhǔn)線圈(動(dòng)作線圈):梯形圖中某一個(gè)繼電器的線圈梯形圖中某一個(gè)繼電器的線圈“通電通電”時(shí),對(duì)應(yīng)的輸出映時(shí),對(duì)應(yīng)的輸出映像寄存器的位為像寄存器的位為“1”,如果是繼電器型輸出接口,則輸出接,如果是繼電器型輸出接口,則輸出接口電路中的繼電器線圈勵(lì)磁,其常開觸點(diǎn)閉合,使外部的負(fù)口電路中的繼電器線圈勵(lì)磁,其常開觸點(diǎn)閉合,使外部的負(fù)載通電工作。載通電工作。梯形圖中某一個(gè)繼電器線圈梯形圖中某一個(gè)繼電器線圈“斷電斷電”時(shí),對(duì)應(yīng)的輸出映像時(shí),對(duì)應(yīng)的輸出映像寄存器的位為寄存器的位為“0”,如果是繼電器型輸出接口,對(duì)應(yīng)的硬件,如果是繼電器型輸出接口,對(duì)應(yīng)的硬件繼電器線圈失磁,其常開觸點(diǎn)斷開,使外部的負(fù)載

4、斷電,停繼電器線圈失磁,其常開觸點(diǎn)斷開,使外部的負(fù)載斷電,停止工作。止工作。表表3-1 FP1系列可編程控制器指令統(tǒng)計(jì)表系列可編程控制器指令統(tǒng)計(jì)表分類名稱分類名稱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可以直接在鍵盤上輸入的指令(即各種指令在手持編程器上有相應(yīng)的按鍵)。鍵盤上找不

5、到,輸入時(shí)需借助于“SC”和“HELP”鍵,指令方可輸入。也是鍵盤上找不到的,但可通過(guò)輸入其功能號(hào)將其輸入,即用“FN”鍵加上數(shù)字鍵輸入該類指令。這類指令在指令表中都各自帶有功能編號(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ǔ),所以借用繼電器

6、的線圈和觸點(diǎn)來(lái)表示。同時(shí),該類指令還是可編程控制器使用中最常見(jiàn)、也是用得最多的指令,因此,屬于必須熟練掌握和運(yùn)用的內(nèi)容。第二節(jié)第二節(jié) FP1FP1的基本指令系統(tǒng)的基本指令系統(tǒng) 基本順序指令主要是對(duì)繼電器和繼電器觸點(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ù)。第二節(jié)第二節(jié) FP1FP1的基本指令系統(tǒng)的基本指令系統(tǒng)指令助記符繼電器定時(shí)/計(jì)數(shù)器觸點(diǎn)XY

7、RTCST、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繼電器。第二節(jié)第二節(jié) FP1FP1的基本指令系統(tǒng)的基本指令系統(tǒng)ST 加載 用A類觸點(diǎn)(常開觸點(diǎn))開始邏輯運(yùn)算的指令。ST/ 加載非 用B類觸點(diǎn)(常閉觸點(diǎn))開始邏輯運(yùn)算的指令。OT 輸出 輸出運(yùn)算結(jié)果到指定的輸出端,是繼電器線 圈的驅(qū)動(dòng)指令。/ 非 將該指令處的運(yùn)算結(jié)果取反。其中,ST和ST/用于開始一個(gè)新的邏輯組。第二節(jié)第二節(jié) FP1FP1的基本指令系統(tǒng)的基本指令

8、系統(tǒng) 當(dāng)X0接通時(shí),Y0接通;當(dāng)X0斷開時(shí),Y1接通、Y2接通。 由例中可見(jiàn),Y0和Y1都受控于X0,但是因?yàn)閅1前面有非指令,因此與Y0的狀態(tài)正好相反,這與繼電器系統(tǒng)明顯不同,在繼電器系統(tǒng)中,X0斷開,Y1回路就不可能導(dǎo)通。 此外,對(duì)于輸出Y2,也是當(dāng)輸入觸點(diǎn)X0斷開時(shí),Y2接通,與Y1的控制方式一樣。可見(jiàn),常閉觸點(diǎn)的功能可以用上述兩種方式實(shí)現(xiàn),這在時(shí)序圖中可以更為直觀地看到。 / 指令為邏輯取反指令,可單獨(dú)使用,但是一般都是與其它指令組合形成新指令使用,如ST/。 OT不能直接從左母線開始,但是必須以右母線結(jié)束。 OT指令可以連續(xù)使用,構(gòu)成并聯(lián)輸出,也屬于分支的一種,可參見(jiàn)堆棧指令。 一般

9、情況一般情況下,對(duì)于某個(gè)輸出繼電器只能用一次OT指令,否則,可編程控制器按照出錯(cuò)對(duì)待。AN與串聯(lián)一個(gè)A類(常開)觸點(diǎn)。AN/與非串聯(lián)一個(gè)B類(常閉)觸點(diǎn)。OR或并聯(lián)一個(gè)A類(常開)觸點(diǎn)。OR/或非并聯(lián)一個(gè)B類(常閉)觸點(diǎn)。第二節(jié)第二節(jié) FP1FP1的基本指令系統(tǒng)的基本指令系統(tǒng) 當(dāng)X0、X4接通且X3斷開時(shí),R0接通;R0同時(shí)又是Y0的控制觸點(diǎn),R0接通時(shí)Y0也接通。 由于X0、X1和X2三個(gè)觸點(diǎn)并聯(lián),X2與X0同為常開觸點(diǎn),所以X2和X0具有同樣的性質(zhì);而X1為常閉觸點(diǎn),與X0的性質(zhì)正好相反。X2和X1的時(shí)序圖也與X0相同或相反,故這里略去。 AN、AN/、OR、OR/ 可連續(xù)使用。 ANS

10、組與執(zhí)行多指令塊的與操作,即實(shí)現(xiàn)多個(gè)邏輯塊相串聯(lián)。ORS 組或執(zhí)行多指令塊的或操作,即實(shí)現(xiàn)多個(gè)邏輯塊相并聯(lián)。第二節(jié)第二節(jié) FP1FP1的基本指令系統(tǒng)的基本指令系統(tǒng) 當(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ì)分析就可發(fā)現(xiàn)Y0有四個(gè)接通段,分別代表了該例子的四種有效組合。 掌握ANS、ORS的關(guān)鍵主要有兩點(diǎn):一是要理解好串、并聯(lián)關(guān)系

11、,二是要形成塊的觀念。針對(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ǔ)的操作結(jié)果。 堆棧指令主要用于構(gòu)成具有分支結(jié)構(gòu)的梯形圖,使用時(shí)必須遵循規(guī)定的PSHS、RDS、POPS的先后順序。第二節(jié)第

12、二節(jié) FP1FP1的基本指令系統(tǒng)的基本指令系統(tǒng) 存儲(chǔ)PSHS指令處的運(yùn)算結(jié)果(這里指X0的狀態(tài)),這時(shí)X0接通,則當(dāng)X1也接通且X2斷開時(shí),Y0輸出。 由RDS指令讀出存儲(chǔ)的結(jié)果,即X0接通,則當(dāng)X3接通時(shí),Y1輸出。 由RDS指令讀出存儲(chǔ)的結(jié)果,即X0接通,則當(dāng)X4斷開時(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ō)明該指令只是讀存儲(chǔ)結(jié)果,而不影響存儲(chǔ)結(jié)果;在執(zhí)行了POPS后,就

13、結(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),隨后的指令從平移后的左母線處開始。 RDS用于PSHS之后,這樣,當(dāng)每次遇到RDS時(shí),該指令相當(dāng)于將PSHS保存的指令重新調(diào)出,隨后的指令表面上是接著RDS,實(shí)際上相當(dāng)于接著堆棧中的指令來(lái)寫。在功能上看,也就是相當(dāng)于將堆棧中的那段梯形圖與RDS后面的梯形圖直接串聯(lián)起來(lái)。 POPS相當(dāng)于先執(zhí)行RDS的功能,然后結(jié)束本次堆棧,

14、因此,用在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è)掃描周期。DF/ 下降沿微分 檢測(cè)到觸發(fā)信號(hào)下降沿,使觸點(diǎn)接通一個(gè)掃描

15、周期。第二節(jié)第二節(jié) FP1FP1的基本指令系統(tǒng)的基本指令系統(tǒng) 當(dāng)檢測(cè)到觸發(fā)信號(hào)的上升沿時(shí),即X1斷開、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)控制條件接通瞬間(上升沿)起作用,而后者是在控制條件斷開瞬間(下降沿)起作用。這兩個(gè)微分指令在實(shí)際程序中很有用,可

16、用于控制那些只需觸發(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)斷開,為OFF。第二節(jié)第二節(jié) FP1FP1的基本指令系統(tǒng)的基本指令系統(tǒng) 該程序執(zhí)行的結(jié)果是,當(dāng)X0接通時(shí),使Y0接通,此后不管X0是何狀態(tài),Y0一直保持接通。而當(dāng)X1接通時(shí),將Y0斷開,此后不管X1是何狀態(tài),Y0一直保持?jǐn)嚅_。 KP保持使輸出為ON,并保持

17、。 KP指令的作用是將輸出線圈接通并保持。該指令有兩個(gè)控制條件,一個(gè)是置位條件(S)、另一個(gè)是復(fù)位條件(R)。當(dāng)滿足置位條件,輸出繼電器(Y或R)接通,一旦接通后,無(wú)論置位條件如何變化,該繼電器仍然保持接通狀態(tài),直至復(fù)位條件滿足時(shí)斷開。 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斷開,而不論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í),程序存

18、儲(chǔ)器各單元均自動(dòng)為空操作指令。 可用NOP作為查找時(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ù)指令助記符可用寄存

19、器繼電器定時(shí)/計(jì)數(shù)器寄存器索引寄存器常數(shù)索引修正值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í)器開始工作,先將設(shè)定值寄存器SV的內(nèi)容裝入過(guò)程值寄存器EV中,然后開始計(jì)數(shù)。每來(lái)一個(gè)時(shí)鐘脈沖,過(guò)程值減1,直至EV中內(nèi)容減為0時(shí),該定時(shí)器各對(duì)應(yīng)觸點(diǎn)動(dòng)作,即常開觸點(diǎn)閉合、常閉觸點(diǎn)斷開。而當(dāng)輸入觸點(diǎn)斷開時(shí),定時(shí)器復(fù)位,對(duì)應(yīng)觸點(diǎn)恢復(fù)原來(lái)狀態(tài),且E

20、V清零,但SV不變。若在定時(shí)器未達(dá)到設(shè)定時(shí)間時(shí)斷開其輸入觸點(diǎn),則定時(shí)器停止計(jì)時(shí),其過(guò)程值寄存器被清零,且定時(shí)器對(duì)應(yīng)觸點(diǎn)不動(dòng)作,直至輸入觸點(diǎn)再接通,重新開始定時(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)的常開觸點(diǎn)閉合,常閉觸點(diǎn)斷開。 當(dāng)X0接通時(shí),定時(shí)器開始定時(shí),10秒后,定時(shí)時(shí)間到,定時(shí)器對(duì)應(yīng)的常開觸點(diǎn)T1接通,使輸出繼電器Y0導(dǎo)通為ON;當(dāng)X0斷開時(shí),定時(shí)器復(fù)位,對(duì)應(yīng)的常開觸點(diǎn)T1斷開,輸出繼電器Y0斷開為OFF。1) TM指令是減法計(jì)數(shù)型預(yù)置定時(shí)器,參數(shù)有兩個(gè),一個(gè)是時(shí)間單位,即定時(shí)時(shí)鐘,可分為3種,R=0

21、.01s,X=0.1s,Y=1.0s;另一個(gè)是預(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é)果,采用上述任何一種寫法都可以。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ì)影響精

22、度,也就是說(shuō),過(guò)程值EV的變化過(guò)程不同。3) 同輸出繼電器的概念一樣,定時(shí)器也包括線圈和觸點(diǎn)兩個(gè)部分,采用相同編號(hào),但是線圈是用來(lái)設(shè)置,觸點(diǎn)則是用于引用。因此,在同一個(gè)程序中,相同編號(hào)的定時(shí)器只能使用一次,即設(shè)置一次,而該定時(shí)器的觸點(diǎn)可以通過(guò)常開或常閉觸點(diǎn)的形式被多次引用。4) 在FP1-C24中,初始定義有100個(gè)定時(shí)器,編號(hào)為T0 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í)范圍,

23、或?qū)蓚€(gè)定時(shí)器互鎖使用可構(gòu)成方波發(fā)生器,還可以在程序中利用高級(jí)指令F0(MV)直接在SV寄存器中寫入預(yù)置值,從而實(shí)現(xiàn)可變定時(shí)時(shí)間控制。 該例與上例中使用TMX實(shí)現(xiàn)的定時(shí)結(jié)果類似,但是當(dāng)用R900D作為定時(shí)器的觸點(diǎn)編程時(shí),務(wù)必將R900D編寫在緊隨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ù)

24、輸入端CP檢測(cè)到一個(gè)脈沖上升沿時(shí),預(yù)置值被減1,當(dāng)預(yù)置值被減為0時(shí),計(jì)數(shù)器接通,其相應(yīng)的常開觸點(diǎn)閉合,常閉觸點(diǎn)斷開。計(jì)數(shù)器的另一輸入端為復(fù)位輸入端R,當(dāng)R端接收到一個(gè)脈沖上升沿時(shí)計(jì)數(shù)器復(fù)位,計(jì)數(shù)器不接通,其常開觸點(diǎn)斷開,常閉觸點(diǎn)閉合;當(dāng)R端接收到脈沖下降沿時(shí),將預(yù)置值數(shù)據(jù)再次從SV傳送到EV中,計(jì)數(shù)器開始工作。計(jì)數(shù)器CT指令的梯形圖符號(hào)如下圖所示。 程序開始運(yùn)行時(shí),計(jì)數(shù)器自動(dòng)進(jìn)入計(jì)數(shù)狀態(tài)。當(dāng)檢測(cè)到X0的上升沿500次時(shí),計(jì)數(shù)器對(duì)應(yīng)的常開觸點(diǎn)C101接通,使輸出繼電器Y0導(dǎo)通為ON;當(dāng)X1接通時(shí),計(jì)數(shù)器復(fù)位清零,對(duì)應(yīng)的常開觸點(diǎn)C101斷開,輸出繼電器Y0斷開為OFF。 FP1-C24中,共有44

25、個(gè)計(jì)數(shù)器,編號(hào)為C100 C143。此編號(hào)可用系統(tǒng)寄存器No.5重新設(shè)置。設(shè)置時(shí)注意TM和CT的編號(hào)要前后錯(cuò)開。 計(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)的常開和常閉觸點(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ù),書寫

26、時(shí)前面一定要加字母“K”。F118(UDC)指令,也起到計(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ù)器開始工作;當(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

27、相當(dāng)于經(jīng)過(guò)值寄存器EV。當(dāng)DT0中的結(jié)果為0時(shí),特殊內(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)決定:如

28、果當(dāng)時(shí)X1處于接通狀態(tài),則補(bǔ)1,否則,補(bǔ)0。 如果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ù)輸入、移

29、位信號(hào)和復(fù)位觸發(fā)信號(hào),分別對(duì)應(yīng)例中X0 X3共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ù)的10*16位寄存器區(qū),移位操作使所有位同時(shí)進(jìn)行,整個(gè)區(qū)域按照高位在左側(cè)、低位在右側(cè)的順序排列。 從程序的執(zhí)行步驟和結(jié)構(gòu)構(gòu)成上看,基

30、本順序指令和基本功能指令是按照其地址順序執(zhí)行的,直到程序結(jié)束為止;而控制指令則可以改變程序的執(zhí)行順序和流程控制指令則可以改變程序的執(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í)行。

31、 MC:主控繼電器指令。MCE:主控繼電器結(jié)束指令。 功能:用于在程序中將某一段程序單獨(dú)界定出來(lái)。當(dāng)MC前面的控制觸點(diǎn)閉合時(shí),執(zhí)行MC至MCE間的指令;當(dāng)該觸點(diǎn)斷開時(shí),不執(zhí)行MC至MCE間的指令。 當(dāng)控制觸點(diǎn)X0接通時(shí),執(zhí)行MC0到MCE0之間的程序,這時(shí),從上圖中的梯形圖可以看出,效果等同于右側(cè)的簡(jiǎn)化梯形圖。否則,不執(zhí)行MC0到MCE0之間的程序。 值得注意的是,當(dāng)主控繼電器控制觸點(diǎn)斷開時(shí),在MC至MCE之間的程序,遵循掃描但不執(zhí)行的規(guī)則遵循掃描但不執(zhí)行的規(guī)則,可編程控制器仍然掃描這段程序,不能簡(jiǎn)單地認(rèn)為可編程控制器跳過(guò)了這段程序。而且,在該程序段中不同的指令狀態(tài)變化情況也有所不同,具體情況

32、參見(jiàn)下表。 指令或寄存器狀態(tài)變化OT(Y、R等)全部OFF狀態(tài)KP、SET、RST保持控制觸點(diǎn)斷開前對(duì)應(yīng)各繼電器的狀態(tài)TM、F137(STMR)復(fù)位,即停止工作CT、F118(UDC)保持控制觸點(diǎn)斷開前經(jīng)過(guò)值,但停止工作SR、F119(LRSR)保持控制觸點(diǎn)斷開前經(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指令不能直接從母線開始,即必須有控制觸點(diǎn)。 在一對(duì)主控繼電器指令(MC、MCE)之間可以嵌套另一對(duì)主控繼電器指令。JP:跳轉(zhuǎn)指令。LBL:跳轉(zhuǎn)

33、標(biāo)記指令。 當(dāng)控制觸點(diǎn)閉合時(shí),跳轉(zhuǎn)到和JP指令編號(hào)相同的LBL處,不執(zhí)行JP和LBL之間的程序,轉(zhuǎn)而執(zhí)行LBL指令之后的程序。與主控指令不同,遵循不掃描不執(zhí)行的原則遵循不掃描不執(zhí)行的原則,在執(zhí)行跳轉(zhuǎn)指令時(shí),JP和LBL之間的指令略過(guò),所以可使整個(gè)程序的掃描周期變短。 在JP1指令的前面、JP1與LBL1中間、以及LBL1的后面都可能有其它的指令程序段, 如圖所示。當(dāng)控制觸點(diǎn)X0斷開時(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指令,即

34、允許設(shè)置多個(gè)跳向一處的跳轉(zhuǎn)點(diǎn),編號(hào)可以是0 63以內(nèi)的任意整數(shù),但不能出現(xiàn)相同編號(hào)的LBL指令,否則程序?qū)o(wú)法確定將要跳轉(zhuǎn)的位置。 LBL指令應(yīng)該放在同序號(hào)的JP指令的后面,當(dāng)然,放在前面也可以,不過(guò)這時(shí)掃描不會(huì)終止,而且可能發(fā)生瓶頸錯(cuò)誤,詳細(xì)內(nèi)容請(qǐng)參見(jiàn)手冊(cè)。 JP指令不能直接從母線開始,即前面必須有觸發(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)到

35、與LOOP相同編號(hào)的LBL處,執(zhí)行LBL指令后的程序。重復(fù)上述過(guò)程,直至結(jié)果為0,停止循環(huán);當(dāng)執(zhí)行條件不成立時(shí),不循環(huán)執(zhí)行。 當(dāng)X6接通時(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斷開時(shí),不執(zhí)行循環(huán)。 LOOP指令不能直接從母線開始,即必須有觸發(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)

36、。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)入下一次掃描地址,當(dāng)前的掃描結(jié)束,進(jìn)入下一次掃描;否則,控制觸點(diǎn)X0斷開,繼續(xù)執(zhí)行下面的指令掃描,當(dāng)遇到ED指令,才結(jié)束當(dāng)前的掃描。 順序控制:順序控制:就是按照生產(chǎn)工藝所要求的動(dòng)作規(guī)律,就是按照生產(chǎn)工藝所要求的動(dòng)作規(guī)律,在各個(gè)輸入信號(hào)的作用下,根據(jù)內(nèi)部的在各個(gè)輸入信號(hào)的作用下,根據(jù)內(nèi)部的狀態(tài)和時(shí)間狀態(tài)和時(shí)間順序順序,使生產(chǎn)過(guò)

37、程的各個(gè)執(zhí)行機(jī)構(gòu)自動(dòng)地、有秩序,使生產(chǎn)過(guò)程的各個(gè)執(zhí)行機(jī)構(gòu)自動(dòng)地、有秩序地進(jìn)行操作。在順序控制中,生產(chǎn)過(guò)程是地進(jìn)行操作。在順序控制中,生產(chǎn)過(guò)程是按順序、按順序、有秩序有秩序地連續(xù)工作。地連續(xù)工作。 在前面的學(xué)習(xí)中我們利用在前面的學(xué)習(xí)中我們利用PLCPLC的的基本順序指令基本順序指令和和基本基本功能指令功能指令實(shí)現(xiàn)了一些順序控制。實(shí)現(xiàn)了一些順序控制。 例如:鍋爐點(diǎn)火的控制、運(yùn)料小車的控制、混合溶例如:鍋爐點(diǎn)火的控制、運(yùn)料小車的控制、混合溶液的控制、機(jī)械手臂的控制等液的控制、機(jī)械手臂的控制等 對(duì)于較為對(duì)于較為復(fù)雜的順序控制復(fù)雜的順序控制,利用,利用步進(jìn)指令步進(jìn)指令能夠?qū)崿F(xiàn)更能夠?qū)崿F(xiàn)更為直觀、簡(jiǎn)便的控

38、制程序。為直觀、簡(jiǎn)便的控制程序。 步進(jìn)指令控制的步進(jìn)指令控制的特點(diǎn)特點(diǎn):(1 1)將復(fù)雜的控制任務(wù)或工作過(guò)程)將復(fù)雜的控制任務(wù)或工作過(guò)程分解成若干個(gè)工序分解成若干個(gè)工序;(2 2)使各工序的)使各工序的任務(wù)明確任務(wù)明確而具體;而具體;(3 3)使各工序間的聯(lián)系清楚,工序間的)使各工序間的聯(lián)系清楚,工序間的轉(zhuǎn)換條件轉(zhuǎn)換條件直觀直觀。(4 4)降低了各步的關(guān)聯(lián),降低編程的復(fù)雜程度。)降低了各步的關(guān)聯(lián),降低編程的復(fù)雜程度。 SSTP:步進(jìn)開始指令,表明開始執(zhí)行該段步進(jìn)程序。NSTP、NSTL:轉(zhuǎn)入指定步進(jìn)過(guò)程指令。這兩個(gè)指令的功能一樣,都是當(dāng)觸發(fā)信號(hào)來(lái)時(shí),程序轉(zhuǎn)入下一段步進(jìn)程序段,并將前面程序所用過(guò)

39、的數(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ò)程。 當(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è)S

40、STP指令開始到下一個(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都是必需的。步進(jìn)順序控制的種類步進(jìn)順序控制的種類: 單流程順序控制單流程順序控制 多流程順序控制:多流程順序控制: 選擇性分支與匯合、選擇性分支與匯合、 并行性分支與匯合、并行性分支與匯合、 選擇性分支與并行性分支的組合等。選擇性分支與并行性分支的組合等。CALL:子程序調(diào)用指令,執(zhí)行指定的子程序。SUB:子程序開始標(biāo)志指令,用于定義子程序。RET:子程序結(jié)束指令,執(zhí)行完畢返回到主程序。 子

41、程序調(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處,開始執(zhí)行子程序;當(dāng)執(zhí)行到RET處時(shí),子程序執(zhí)行完畢,返回到主程序調(diào)用處,從CALL 1指令的下一條指令繼續(xù)執(zhí)行隨后的主程序。 當(dāng)X0斷開時(shí),不調(diào)用子程序,繼續(xù)執(zhí)行主程序。 FP1-C24可用子程序的個(gè)數(shù)為16個(gè),即子程序編號(hào)范圍為SUB0 SUB15,且兩個(gè)子程序的編號(hào)不能相同。 子程序必須編寫在主程序的ED指令后

42、面,由子程序入口標(biāo)志SUB開始,最后是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)斷開前對(duì)應(yīng)各繼電器的狀態(tài)TM、F137(STMR)不執(zhí)行CT、F118(UDC);SR、F119(LRSR)保持控制觸點(diǎn)斷開前經(jīng)過(guò)值,但停止工作其它指令不執(zhí)行ICTL:中斷控制指令,用于設(shè)定中斷的類型及參數(shù)。INT: 中斷程序開始標(biāo)志。IRET:中斷程序結(jié)束標(biāo)志。 為了提高PLC的實(shí)時(shí)控制能力,提高P

43、LC與外部設(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è)定每間隔一定的時(shí)間去響應(yīng)一次中斷服務(wù)程序,定時(shí)中斷的中斷入口為INT24。 FP1-C24以上機(jī)

44、型均有中斷功能,其中斷功能有兩種類型,一種是外部中斷,又叫,一種是定時(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è)定中斷控制字,并按中斷程序的書寫格式編寫程序。 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í)中斷到來(lái),并不立即響應(yīng)高級(jí)中斷,而是在執(zhí)行完當(dāng)前中斷后,才響應(yīng)高級(jí)中斷。 使用外部中斷

45、之前,首先設(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開始,用于指定條件滿足后要進(jìn)行的操作是開始,還是邏輯與、邏輯或;主要有等于(=)、大于()、小于(=)、小于等于(=)和不等于()共6種關(guān)系,滿足關(guān)系則為真、不滿足則為假;可以為常數(shù),即通常所說(shuō)的直接尋址方式,也可以為寄存器的值,即通常所說(shuō)的間接尋址方式。第二部分比較運(yùn)算符指定進(jìn)行的操作

46、即是針對(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斷開,輸出為OFF。 從該例可以看出,比較指令實(shí)際上相當(dāng)于一個(gè)條件觸點(diǎn)比較指令實(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與基本順序指令中用法類似,區(qū)別僅在于操作數(shù)上,前者為寄存器

47、(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í)指令由大寫字母“F”、指令功能號(hào)、助記符和操作數(shù)組成,指令的格式如下。 Fn是指

48、令功能號(hào),F(xiàn)nF0 F165。不同的功能號(hào)規(guī)定CPU進(jìn)行不同的操作。指令的助記符用英文縮寫表示,一般可據(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、EV)、數(shù)據(jù)寄存器(DT)、索引寄存器(IX、IY)

49、和常數(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型”指令。本書中只介紹“F型”指令,如果在控制過(guò)程中需要只執(zhí)行一次高級(jí)指令,可在F型高級(jí)指令的前面使用微分指令(DF)實(shí)現(xiàn)。 如果多個(gè)高級(jí)指令連續(xù)使用同一控制觸點(diǎn),不必每次都畫出或?qū)懗鲈摽刂朴|點(diǎn)。見(jiàn)下圖中虛線部分,第二、第三個(gè)指令

50、的X0觸點(diǎn)可以省略,則圖(a)簡(jiǎn)化為圖(b)。 (a) (b) 數(shù)據(jù)傳送指令的功能是將源操作數(shù)中的數(shù)據(jù),按照規(guī)定的要求,復(fù)制到目的操作數(shù)中去,可分為數(shù)據(jù)傳送、位傳送、塊傳送及復(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ù)取反后傳送到另一個(gè)寄存器區(qū)中去。當(dāng)控制觸點(diǎn)X0閉合時(shí),每個(gè)掃描周期都要重復(fù)將十進(jìn)

51、制數(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位單元中。在以后的雙字操作指令中也遵循這一原則,即由相鄰2個(gè)16位寄存器聯(lián)合構(gòu)成一個(gè)32位寄存器,

52、默認(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í)行數(shù)據(jù)拷貝操作。5) 與F0(MV)指令不同的是,S和D不能用IY

53、寄存器。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ù)按十六進(jìn)制,傳送若干位(digit)到另一個(gè)16位寄存器區(qū)中去。 當(dāng)控制觸點(diǎn)X0接通時(shí),WX0

54、中第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ù)據(jù)放在目的操作數(shù)的什么位置,bit4 bit7、bit12 bit15這8位未用,可隨便取值,

55、不影響結(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表示目的區(qū)首地址、digit1表示要拷貝的數(shù)據(jù)段位數(shù)、digit0表示源區(qū)首地址,這樣進(jìn)行操作的

56、數(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, D 說(shuō)明:數(shù)據(jù)段采用的是“首地址+尾地址”的表示方式,即將指定的以S1為起始地址、S2為終止

57、地址的數(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ù)交換。 格式: F16 DXCH D1, D2 說(shuō)明:將(D1+1,D1)寄存器中的32位數(shù)據(jù)與(D2+l

58、,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)。因此,書中僅對(duì)其規(guī)律加以總結(jié)分析,掌握規(guī)律后,結(jié)合指令表,不難掌握這類指令。 u按照進(jìn)位制可分為二進(jìn)制BIN算術(shù)運(yùn)算指令和BCD碼算術(shù)運(yùn)算指令,各為16條指令,后者在指令中增加大寫字母“B”以示區(qū)別。u按照參與運(yùn)算的數(shù)據(jù)字長(zhǎng)(位數(shù))可以分為單字(16-bit)和雙字(32-bit)指令,后者在助記符中以大寫字母“D”區(qū)別,在FP1的其它指令中也是采用這種方式。u按照運(yùn)

59、算規(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和R900B。這里僅對(duì)影響情況做簡(jiǎn)單概括,詳細(xì)情況需要結(jié)合具體的指令,參考手冊(cè)學(xué)習(xí)掌握。l R9008:

60、錯(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) 乘法指令的算法 (S1) (S2) (D) 乘法運(yùn)算可能會(huì)導(dǎo)致16位數(shù)據(jù)升為32位,因此結(jié)果用3

溫馨提示

  • 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)論