官术网_书友最值得收藏!

3.4 時序控制指令

3.4.1 結束指令END和空指令NOP

1.結束指令END(001)

程序的結尾處一定要安排END指令,因為CPU掃描到END指令時即認為程序到此結束,END后面的程序一概不執(zhí)行,并馬上返回到程序的起始處再次掃描程序。若程序結束時沒寫END指令,將出現(xiàn)程序錯誤。在調試程序時可以將END指令插在各段程序之后,對程序進行分段調試,調試結束時再刪除插在中間各段程序之后的END指令。

圖3.24中使用了END指令,請注意END指令的梯形圖畫法和語句的寫法。圖中,常閉觸點0.03與上一行并聯(lián)后再與常開觸點0.02串聯(lián)而形成一個觸點組,0.04與上面的觸點組再并聯(lián)。0.04與上面的觸點組兩者中有一個為ON,100.02即為ON。

圖3.24 使用END指令的例子

本書在以后的梯形圖程序中通常省略END指令,不再另行說明。

2.空指令NOP(000)

不具備任何功能(不進行程序處理)的指令。在梯形圖中無表示。NOP指令常用來修改程序。當修改程序刪去一條指令時,后面語句的地址發(fā)生變化。而用NOP指令代替所刪指令的位置,后面語句的地址保持不變。

例如,用NOP代替AND N語句,可把AND語句中的觸點N短接,用NOP代替OR N語句,可把OR語句中的觸點N斷掉等,而其他語句的地址保持不變。

圖3.25是使用NOP指令的例子。欲將圖3.25(a)變成圖3.25(b)的梯形圖,將圖3.25(a)語句表中的AND 0.01改寫成NOP(000)即可。若欲去掉LD 0.00,不僅把第一條語句處改寫成NOP(000),還有要將下一條語句AND 0.01改寫成LD 0.01,否則會出現(xiàn)語法錯誤。

圖3.25 使用NOP指令的例子

3.4.2 互鎖 IL/互鎖解除ILC指令

IL/ILC指令常用于控制程序的流向。表3.10是指令的格式/名稱、梯形圖符號、操作數(shù)的范圍及含義、指令功能及執(zhí)行指令對標志位的影響。

表3.10 IL/ILC指令

使用IL/ILC指令時應注意:

①不論IL的輸入條件是ON還是OFF,CPU都要對IL/ILC之間的程序段進行掃描。

②如果IL的執(zhí)行條件為OFF,則位于IL和ILC之間的程序段不執(zhí)行,此時IL和ILC之間各內部器件的狀態(tài)如下。

所有OUT和OUT NOT指令的輸出位為OFF,所有定時器都復位,KEEP指令的操作位、計數(shù)器、移位寄存器及SET和RSET指令的操作位都保持IL為OFF以前的狀態(tài)。

③IL和ILC指令可以成對使用,也可以多個IL指令配一個ILC指令,但不準嵌套使用,如IL—IL—ILC—ILC。

圖3.26(a)中A為分支點,A右側有2個分支,且每個分支都有觸點控制。這時要使用互鎖指令編程。圖3.26(a)也可以畫成圖3.26(b)的結構,兩圖的功能一樣。

圖3.26 使用IL/ILC指令的例子

圖3.26中,當0.00為OFF時,IL和ILC之間的程序不執(zhí)行,100.00、100.01都處于OFF狀態(tài)。當0.00為ON時,IL和ILC之間的程序執(zhí)行,100.00、100.01的狀態(tài)取決于各自分支上的控制觸點的狀態(tài)。

在圖3.26中,若A右側的第一分支中沒有控制觸點0.01,就不必用互鎖指令編程了。但如果把沒有觸點控制的分支放在下面,那也必須用互鎖指令編程。

圖3.27(a)的程序有兩次分支,圖3.27(a)也可以畫成圖3.27(b)的結構,兩圖的功能是一樣的。圖3.27(c)是它們的語句表。

圖3.27 IL/ILC指令使用方法舉例

到此為止已經(jīng)介紹了多種輸出方式,歸納起來可以分為并聯(lián)輸出、連續(xù)輸出和復合輸出三種結構。三種輸出方式的梯形圖結構和語句表如圖3.28所示,請注意各種輸出方式語句表的寫法。

圖3.28 并聯(lián)輸出、連續(xù)輸出和復合輸出的程序結構

3.4.3 暫存繼電器TR

暫存繼電器(TR)是繼電器,而不是指令。暫存繼電器可用來暫時存儲當前指令執(zhí)行的結果,所以處理梯形圖的分支還有另外一種方法,即使用暫存繼電器。

CP1H系列PLC有編號為TR0~TR15的16個暫存繼電器。如果某個TR位被設置在一個分支點處,則分支前面的執(zhí)行結果就會存儲在這個TR位中。對暫存繼電器做如下說明:

①在同一指令塊中,同一TR位不能重復使用;

②TR不是編程指令,而是繼電器,只能配合LD或OUT指令一起使用。

圖3.29為使用暫存繼電器(TR)處理分支的例子。從語句表可以看出兩種處理分支方法的區(qū)別:用TR時,是用AND指令連接下一個分支的觸點;用IL/ILC時,是用LD指令連接下一個分支的觸點。在分支多時,用TR處理分支程序比使用IL/ILC指令時語句表要煩瑣一些。

圖3.29 用TR與用IL/ILC處理分支程序的區(qū)別

圖3.27程序有兩次分支,用TR指令改寫,如圖3.30(a)所示,圖3.30(b)為語句表程序。

圖3.30 IL/ILC指令使用方法舉例

注意:采用計算機編程時,可直接用CX-P軟件將梯形圖轉換為語句表,梯形圖中的分支自動采用TR處理。

3.4.4 跳轉JMP/跳轉結束JME指令

JMP/JME是跳轉和跳轉結束指令,常用于控制程序的流向。表3.11是這對指令的格式/名稱、梯形圖符號、操作數(shù)的范圍及含義、指令功能及執(zhí)行指令對標志位的影響。

表3.11 JMP和JME指令

使用JMP N和JME N指令時注意:

①發(fā)生轉移時,JMP N和JME N之間的程序不執(zhí)行,且不占用掃描時間;

②發(fā)生跳轉時,所有繼電器、定時器、計數(shù)器均保持跳轉前的狀態(tài)不變,定時器定時繼續(xù);

③不允許出現(xiàn)相同編號的兩個以上的JMP指令或JME指令;

④跳轉指令可以嵌套使用,但必須是不同跳轉號的嵌套,如JMP & 0—JMP & 1—JME & 1—JME& 0等。

圖3.31為使用JMP/JME的例子,0.00是JMP & 0的執(zhí)行條件,當0.00為OFF 時,JMP & 0到JME& 0之間的程序不執(zhí)行,而轉去執(zhí)行JME & 0之后的程序,這時100.00和101.00保持轉移前的狀態(tài)。例如,若轉移前100.00為OFF,則轉移期間也為OFF,即使0.01為ON;當0.00變?yōu)镺N時,JMP & 0到JME & 0之間的程序才被執(zhí)行。

在兩段程序切換時,常用到轉移指令。如圖3.32所示,當輸入0.00為ON時,執(zhí)行手動程序而不執(zhí)行自動程序;當0.00為OFF時,跳過手動程序轉去執(zhí)行自動程序,請注意JMP/JME的這種用法。

圖3.31 使用JMP/JME的例子

圖3.32 轉移指令的用法

3.4.5 其他順序控制指令

表3.12是其他順序控制類指令的格式/名稱、梯形圖符號、操作數(shù)的范圍及含義、指令功能及執(zhí)行指令對標志位的影響。

表3.12 其他順序控制類指令

主站蜘蛛池模板: 察隅县| 栾城县| 靖边县| 镇坪县| 城市| 苏尼特左旗| 伊宁市| 奉贤区| 河池市| 万源市| 家居| 丰台区| 交口县| 濮阳县| 浏阳市| 水富县| 安岳县| 大港区| 麻阳| 自治县| 南澳县| 越西县| 湖南省| 浦城县| 英德市| 营口市| 乐业县| 繁峙县| 内江市| 巴林左旗| 墨脱县| 连平县| 靖边县| 调兵山市| 横山县| 乌拉特中旗| 哈巴河县| 长沙市| 阳山县| 抚远县| 扎囊县|