[知識]Micrologix 控制器的編程指令_第1頁
[知識]Micrologix 控制器的編程指令_第2頁
[知識]Micrologix 控制器的編程指令_第3頁
[知識]Micrologix 控制器的編程指令_第4頁
[知識]Micrologix 控制器的編程指令_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Micrologix 控制器的編程指令6.1 編程語言可編程控制器PLC的編程語言通常不采用微機(jī)的編程語言,而是采用梯形圖、指令表、順序功能流程圖SFC、功能塊圖FBD、結(jié)構(gòu)文本等。其中梯形圖、指令表最為常用。 梯形圖PLC的梯形圖在形式上沿襲了傳統(tǒng)的繼電器電氣控制圖,是在原繼電器控制系統(tǒng)的根底上演變而來的一種圖形語言。梯形圖的控制邏輯結(jié)構(gòu)及工作原理與繼電器邏輯控制電路十分相似。它采用“觸點(diǎn)、“線圈或稱繼電器線圈、定時器、計(jì)數(shù)器及功能指令等圖形符號表達(dá)輸出與輸入的邏輯關(guān)系,這些輸入/輸出可以是硬件上實(shí)際的輸入/輸出信號,也可以是PLC內(nèi)部虛擬的輸入/輸出信號。這種編程語言與電路圖相照應(yīng),簡單、

2、形象、直觀、易編程、容易掌握,是目前應(yīng)用最廣泛的PLC編程語言之一。梯形圖編程語言的特點(diǎn)是:與電氣操作原理圖相對應(yīng),具有直觀性和對應(yīng)性;與原有繼電器控制相一致,電氣設(shè)計(jì)人員易于掌握。 梯形圖編程語言與原有的繼電器控制的不同點(diǎn)是,梯形圖中的能流不是實(shí)際意義的電流,內(nèi)部的繼電器也不是實(shí)際存在的繼電器,應(yīng)用時,需要與原有繼電器控制的概念區(qū)別對待。 梯形圖的設(shè)計(jì)應(yīng)注意到以下三點(diǎn): 1梯形圖按自上而下、從左到右的順序排列。每個繼電器線圈為一個邏輯行,即一層階梯。每一個邏輯行起于左母線,然后是觸點(diǎn)的連接,最后終止于繼電器線圈或右母線。 2梯形圖中每個梯級流過的不是物理電流,而是“概念電流,從左流向右,其兩

3、端沒有電源。這個“概念電流只是用來形象地描述用戶程序執(zhí)行中應(yīng)滿足線圈接通的條件。 3輸入存放器用于接收外部輸入信號,而不能由PLC內(nèi)部其它繼電器的觸點(diǎn)來驅(qū)動。因此,梯形圖中只出現(xiàn)輸入存放器的觸點(diǎn),而不出現(xiàn)其線圈。輸出存放器那么輸出程序執(zhí)行結(jié)果給外部輸出設(shè)備,當(dāng)梯形圖中的輸出存放器線圈得電時,就有信號輸出,但不是直接驅(qū)動輸出設(shè)備,而要通過輸出接口的繼電器、晶體管或晶閘管才能實(shí)現(xiàn)。輸出存放器的觸點(diǎn)也可供內(nèi)部編程使用。4在每一邏輯行中,串聯(lián)觸點(diǎn)多的支路應(yīng)放在上方。如果將串聯(lián)觸點(diǎn)多的支路放在下方,那么語句增多,程序變長。 2、指令表編程指令語句表是一種用指令助記符來編制PLC程序的語言,它類似于計(jì)算機(jī)

4、的匯編語言,但比匯編語言易懂易學(xué),假設(shè)干條指令組成的程序就是指令語句表。在無計(jì)算機(jī)的情況下,適合采用PLC手持編程器對用戶程序進(jìn)行編制。同時,指令表編程語言與梯形圖編程語言圖一一對應(yīng),在PLC編程軟件下可以相互轉(zhuǎn)換。指令表表編程語言的特點(diǎn)是:采用助記符來表示操作功能,具有容易記憶,便于掌握;在手持編程器的鍵盤上采用助記符表示,便于操作,可在無計(jì)算機(jī)的場合進(jìn)行編程設(shè)計(jì);與梯形圖有一一對應(yīng)關(guān)系。其特點(diǎn)與梯形圖語言根本一致。3、狀態(tài)流程圖編程順序功能流程圖語言是為了滿足順序邏輯控制而設(shè)計(jì)的編程語言。編程時將順序流程動作的過程分成步和轉(zhuǎn)換條件,根據(jù)轉(zhuǎn)移條件對控制系統(tǒng)的功能流程順序進(jìn)行分配,一步一步的按

5、照順序動作。每一步代表一個控制功能任務(wù),用方框表示。在方框內(nèi)含有用于完成相應(yīng)控制功能任務(wù)的梯形圖邏輯。這種編程語言使程序結(jié)構(gòu)清晰,易于閱讀及維護(hù),大大減輕編程的工作量,縮短編程和調(diào)試時間。用于系統(tǒng)的規(guī)模校大,程序關(guān)系較復(fù)雜的場合。 順序功能流程圖編程語言的特點(diǎn):以功能為主線,按照功能流程的順序分配,條理清楚,便于對用戶程序理解;防止梯形圖或其他語言不能順序動作的缺陷,同時也防止了用梯形圖語言對順序動作編程時,由于機(jī)械互鎖造成用戶程序結(jié)構(gòu)復(fù)雜、難以理解的缺陷;用戶程序掃描時間也大大縮短。4、功能塊圖FBDFunction Block Diagram功能塊圖使用類似于布爾代數(shù)的圖形邏輯符號來表示控

6、制邏輯,一些復(fù)雜的功能用指令框表示,適合于有數(shù)字電路根底的編程人員使用。功能塊圖用類似于與門、或門的框圖來表示邏輯運(yùn)算關(guān)系,方框的左側(cè)為邏輯運(yùn)算的輸入變量,右側(cè)為輸出變量,輸入、輸出端的小圓圈表示“非運(yùn)算,方框用“導(dǎo)線連在一起,信號自左向右。5、結(jié)構(gòu)化文本STStructured Text結(jié)構(gòu)化文本ST是為IEC611313標(biāo)準(zhǔn)創(chuàng)立的一種專用的高級編程語言。與梯形圖相比,它實(shí)現(xiàn)復(fù)雜的數(shù)學(xué)運(yùn)算,編寫的程序非常簡潔和緊湊。6.2 PLC的存儲器結(jié)構(gòu)美國羅克韋爾公司的Micrologix 1500系列PLC的存儲器分為程序文件和數(shù)據(jù)文件兩局部。其中程序文件存儲控制器信息、程序;數(shù)據(jù)文件存儲系統(tǒng)輸入數(shù)

7、據(jù)、輸出數(shù)據(jù)、功能指令控制參數(shù)、程序運(yùn)行時的中間數(shù)據(jù)等各種各樣的數(shù)據(jù)。下面對程序文件和數(shù)據(jù)文件分別進(jìn)行介紹。Micrologix 控制器的編程指令Micrologix 控制器的編程指令6.1 編程語言可編程控制器PLC的編程語言通常不采用微機(jī)的編程語言,而是采用梯形圖、指令表、順序功能流程圖SFC、功能塊圖FBD、結(jié)構(gòu)文本等。其中梯形圖、指令表最為常用。 梯形圖PLC的梯形圖在形式上沿襲了傳統(tǒng)的繼電歪逮欠欲粥挖乘幌忠護(hù)笑冠锨試他看貧最篇爍顆幀江恩刷揩徑胚卵凡橇骸揮拆律鎮(zhèn)眩扇炊哼烘疫腔銥絲昆韻勝殆添塵鹿逞嚎乾品掛診覓痢隨冬棒致 程序文件 程序文件用以存儲控制器的根本信息和用戶程序,用戶程序包括主

8、程序、中斷程序和各個子程序。Micrologix 1500系列PLC有256個程序文件,用編號0到255表示。其中文件0存放系統(tǒng)信息和用戶的編程信息,如處理器型號、處理器文件名等信息;文件1一般予以保存;文件2是梯形圖主程序;文件3到文件255為用戶自行創(chuàng)立的梯形圖子程序和中斷程序,在文件2主程序中可以通過調(diào)用指令跳轉(zhuǎn)到子程序,可以通過相應(yīng)中斷的方法跳轉(zhuǎn)到中斷程序。 數(shù)據(jù)文件可編程控制器在執(zhí)行程序過程中用到的各種數(shù)據(jù)均存儲在數(shù)據(jù)文件中,數(shù)據(jù)文件分為以下幾種類型:輸出和輸入數(shù)據(jù)文件、狀態(tài)文件、位文件、計(jì)時器文件、計(jì)數(shù)器文件、控制文件、整數(shù)文件和實(shí)數(shù)文件。因?yàn)閿?shù)據(jù)文件的類型比擬多,為了編制方便和便

9、于記憶,每個數(shù)據(jù)文件由一個字母和一個文件號來標(biāo)識。數(shù)據(jù)文件分為系統(tǒng)默認(rèn)和用戶定義兩局部。一般0到8號文件是系統(tǒng)建立的默認(rèn)文件,其中輸入文件(0號文件)、輸出文件1號文件和狀態(tài)文件2號文件這三個文件是固定的,不允許重新建立。下面對各個數(shù)據(jù)文件進(jìn)行詳細(xì)介紹。輸入和輸出數(shù)據(jù)文件I1:和O0:輸入文件存放PLC輸入端各個輸入點(diǎn)的狀態(tài)信息;輸出文件存放PLC輸出端各個點(diǎn)的狀態(tài)信息。例如:PLC上的輸入點(diǎn)“I/0的表示方法如下:0 其中I表示是輸入文件,I后面的第一個“0”是槽號,其范圍與所使用的處理器有關(guān),第二個“0”表示I/0組號,用一位8進(jìn)制表示07,最后的“0”是端子號,用十六進(jìn)制表示015。上面

10、的文件信息表示:輸入文件中第0槽的第0個字的第0位。 當(dāng)一個槽的I/O點(diǎn)數(shù)超過16個時,尋址位有兩種表示方法:I:0.1/2 與I:0/18表示的是同一個輸入端點(diǎn)。狀態(tài)文件S2: 狀態(tài)文件允許用戶監(jiān)視、控制操作系統(tǒng)的工作狀況。在調(diào)試程序時,可以通過設(shè)置或查看狀態(tài)文件的信息幫助調(diào)試。狀態(tài)文件不能被增加或刪除,尋址狀態(tài)文件的位和字的格式為:S:e/b 各位含義同I/O文件。舉例:S:1/12 元素1,位12。這是“首次掃描位用戶在程序中可以使用它來初始化指令。位文件B3:文件3是位文件,是PLC內(nèi)部的狀態(tài)位,在編程時可以記錄一些位信息。位文件的最大容量是256個單字元素,總計(jì)為4096位??梢酝ㄟ^

11、指定元素號0255和元素內(nèi)的位編號015來尋址位,也可以通過位的順序編號直接尋址位04095。用戶也可以只尋址該文件的元素。舉例:B3:0/14 元素3,位14B3:12 元素12B3:/64 或 B/64 位64即元素4,位0計(jì)時器T4:每個計(jì)時器地址由一個3字元素組成,如下表所示: 15 14 13EN TT DN內(nèi)部使用PRE預(yù)置值A(chǔ)CC累計(jì)值字0字1字2上表中,EN:使能位,TT:計(jì)時位,DN:完成位。舉例:T4:1/13 或 T4:1/DN 完成位T4:1.1 或 T4:1.PRE 預(yù)置值 T4: 或 T4:1.ACC 累計(jì)值計(jì)數(shù)器文件C5:每個計(jì)數(shù)器地址由一個3字元素組成,如下表所

12、示: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0CU CD DN OV UN UA 內(nèi)部使用PRE預(yù)置值A(chǔ)CC累計(jì)值字0字1字2字 上表中,CU:加計(jì)數(shù)使能位 CD:減計(jì)數(shù)使能位DN:完成位OV:上溢出位UN:下溢出位UA:更新累計(jì)值位只用于固定式控制器的HSC指令。舉例:C5:1/13 或 C5:1/DN 完成位C5:1.1 或 C5:1.PRE 預(yù)置值 C5:1.2 或 C5:1.ACC 累計(jì)值控制文件R6:控制文件是3字元素,各字含義如下表。位移、順序器指令都用到控制文件。字 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0EN

13、EU DN EM ER UL IN FD 錯誤代碼位陣列或文件的長度LEN位指針或位置POS012舉例:R6:2 元素2R6:3/15 或 R:3/EN 使能位R6:3/13 或 R:3/DN 完成位R6:3.1 或 R:3.LEN 長度值 整數(shù)文件N7:整數(shù)文件是1字元素,可以尋址到元素和位。根據(jù)程序的需要來使用整數(shù)文件地址。整數(shù)文件的數(shù)值范圍是:-32768到+32767。舉例:N7:2 元素2N7:2/8 元素2,位88. 浮點(diǎn)文件(F8:)浮點(diǎn)文件中每個數(shù)據(jù)在存儲器中占2個字,數(shù)據(jù)長度是32個位,浮點(diǎn)數(shù)的范圍是:-1.1754944E-38到+1.1754944E+38。舉例:F8:2

14、 元素26.3 Micrologix 控制器的指令系統(tǒng)羅克韋爾自動化公司的PLC種類較多,不同PLC支持的指令稍有不同,但根本指令都是相同的。根本指令是根底,初學(xué)者必須深刻理解根本指令。 位指令位指令用于監(jiān)視或控制數(shù)據(jù)文件文件中位的狀態(tài),如輸入位、輸出位、內(nèi)部標(biāo)志位和計(jì)數(shù)器、計(jì)時器、控制字的的狀態(tài)位等,多用于開關(guān)量的邏輯控制中。Micrologix1500控制器的位指令及其主要功能參數(shù)表6-1。表6-1 位指令及其功能助記符名稱功能XIC檢查是否已閉合檢查某一位是否為1ON狀態(tài)XIO檢查是否已斷開檢查某一位是否為0 OFF狀態(tài)OTE輸出鼓勵梯級條件為真時,將某位置1ON狀態(tài),非保持型OTL輸出

15、鎖存梯級條件為真時,將某位置1ON狀態(tài),保持型OTU輸出解鎖梯級條件為真時,將某位置0OFF狀態(tài),保持型ONS一次響應(yīng)梯級條件由假變?yōu)檎鏁r,使梯級條件保持為真一個掃描周期OSR上升沿單觸發(fā)梯級條件由假變?yōu)檎鏁r,上升沿動作,只產(chǎn)生一個掃描周期的正脈沖信號OSF下降沿單觸發(fā)梯級條件由真變?yōu)榧贂r,下降沿動作,只產(chǎn)生一個掃描周期的正脈沖信號1. 檢查閉合XICXIC指令的梯形圖符號表示為:XIC是一條輸入指令,用于檢查尋址位是否為1導(dǎo)通狀態(tài),ON。當(dāng)指令執(zhí)行時,如果該尋址位是1導(dǎo)通狀態(tài),ON,那么指令被賦值為真;如果該尋址位是0斷開狀態(tài),OFF,那么指令被賦值為假。2. 檢查斷開XIO XIO指令的梯

16、形圖符號表示為:XIO是一條輸入指令,用于檢查該尋址位是否為0斷開狀態(tài),OFF。當(dāng)指令執(zhí)行時,如果該尋址位是0斷開狀態(tài),OFF,那么指令被賦值為真;如果該尋址位是1導(dǎo)通狀態(tài),ON,那么指令被賦值為假。3. 輸出鼓勵OTEOTE輸出鼓勵的梯形圖符號表示為: OTE是一條非保持型輸出指令, OTE指令由它前面的輸入指令控制,如果OTE指令前面的梯級條件為真,該尋址位導(dǎo)通,OTE指令前面的梯級條件為假,該尋址位斷開。例如,在圖6-1中,第一條梯形圖程序表示:當(dāng)PLC的輸入點(diǎn)1為ON導(dǎo)通時,梯級條件成立,執(zhí)行后面的輸出指令,PLC的輸出點(diǎn)1為ON(導(dǎo)通);當(dāng)PLC的輸入點(diǎn)1為OFF斷開時,梯級條件不成

17、立,不執(zhí)行后面的輸出指令,PLC的輸出點(diǎn)1為OFF(斷開);第二條梯形圖程序表示:當(dāng)PLC的輸入點(diǎn)2為ON導(dǎo)通時,梯級條件不成立,不執(zhí)行后面的輸出指令,PLC的輸出點(diǎn)2為OFF(斷開);當(dāng)PLC的輸入點(diǎn)2為OFF斷開時,梯級條件成立,執(zhí)行后面的輸出指令,PLC的輸出點(diǎn)2為ON(導(dǎo)通)。圖6-1中梯形圖程序?qū)崿F(xiàn)的功能是:PLC輸入點(diǎn)1導(dǎo)通時,輸出點(diǎn)1立即導(dǎo)通;輸入點(diǎn)1端開時,輸出點(diǎn)1立即斷開;PLC輸入點(diǎn)2導(dǎo)通時,輸出點(diǎn)2立即斷開,輸入點(diǎn)2斷開時,輸入點(diǎn)2立即導(dǎo)通。圖6-1 OTE 指令應(yīng)用舉例4. 輸出鎖存指令OTL和輸出解鎖指令OTUOTL指令和OTU指令的梯形圖符號分別表示為: OTL指令

18、和OUT指令是保持型輸出指令,一般這兩條指令成對使用。當(dāng)OTL指令前面的梯級條件成立時,執(zhí)行OTL指令,將該尋址位變?yōu)镺N狀態(tài),隨后如果OTL指令前面的梯級條件變?yōu)椴怀闪?,這時該位仍然保持鎖存狀態(tài)ON狀態(tài)。當(dāng)OTU指令前面的梯級條件成立時,執(zhí)行OTU指令,將該尋址位變?yōu)镺FF狀態(tài),隨后如果OTU指令前面的梯級條件變?yōu)椴怀闪?,這時該位仍然保持解鎖狀態(tài)OFF狀態(tài)。例如,在圖6-2的第一條梯形圖程序中,如果PLC的輸入點(diǎn)1是導(dǎo)通ON狀態(tài),梯級條件成立,那么執(zhí)行輸出鎖存指令,將PLC的輸出點(diǎn)1鎖存為導(dǎo)通ON狀態(tài),這時,如果前面的輸入點(diǎn)1變?yōu)閿嚅_OFF狀態(tài),輸出點(diǎn)1仍然被鎖存,保持為ON狀態(tài),直到后面的

19、解鎖指令被執(zhí)行后,才能變?yōu)镺FF斷開狀態(tài);在第二條梯形圖程序中,如果PLC的輸入點(diǎn)2是導(dǎo)通ON狀態(tài),那么執(zhí)行輸出解鎖指令,將PLC的輸出點(diǎn)1解鎖,使之為OFF斷開狀態(tài),并一直保持下去,直到鎖存指令被再次執(zhí)行。圖6-2中梯形圖程序?qū)崿F(xiàn)的功能是:當(dāng)PLC輸入點(diǎn)1導(dǎo)通時,輸出點(diǎn)1立即導(dǎo)通,當(dāng)輸入點(diǎn)1由導(dǎo)通變?yōu)殛P(guān)斷時,輸出點(diǎn)1仍然保持導(dǎo)通;輸入點(diǎn)2導(dǎo)通時,輸出點(diǎn)1處于關(guān)斷狀態(tài),輸入點(diǎn)2由導(dǎo)通變到關(guān)斷時,輸出點(diǎn)1仍然保持關(guān)斷狀態(tài)。圖6-2 OTL和OTU指令的應(yīng)用舉例5. 一次響應(yīng)指令 ONSONS指令的梯形圖符號表示為:ONS屬輸入指令。當(dāng)程序中ONS指令所在梯級條件由假到真變化時,它的指令邏輯為真,

20、但只保持一個掃描周期。使用ONS指令可啟動由按鈕觸發(fā)的事件。ONS指令中有一個位地址參數(shù),此地址可以是位文件或整數(shù)文件地址如B3:0/3,N7:0/1等。該位自動存儲了ONS指令所在梯級條件為真那么存儲1,為假那么存儲0。ONS的功能相當(dāng)于限制所在梯級的輸出。當(dāng)輸入條件由假變真時,它使輸出為1且只保持一個掃描周期,在以后連續(xù)的掃描中輸出為0。直到輸入再次由假到真跳變。例如,在圖6-3第一條梯形圖程序中,當(dāng)輸入點(diǎn)1由OFF狀態(tài)變?yōu)镺N導(dǎo)通狀態(tài)時,ONS響應(yīng),保持一個掃描周期的ON導(dǎo)通狀態(tài),在這一個掃描周期中,后面兩個輸出指令的梯級條件為真,這時輸出點(diǎn)1變?yōu)镺N導(dǎo)通狀態(tài),但只能保持一個掃描周期;同

21、時輸出點(diǎn)2被鎖存為ON導(dǎo)通狀態(tài),因?yàn)檩敵鳇c(diǎn)2被鎖存,所以其導(dǎo)通狀態(tài)可以被一直保持下去。一個掃描周期非常短暫,輸出點(diǎn)1的ON導(dǎo)通狀態(tài)不能被觀察到。ONS中的位參數(shù)B3:0/1記錄了ONS所在梯級的條件,當(dāng)梯級條件為真輸入點(diǎn)1為ON導(dǎo)通時,其值也為真,等于1;當(dāng)梯級條件為假,其值也為假,等于0。借助第二條梯形圖程序,通過輸出點(diǎn)3的通斷情況,可以觀察出B3:0/1的狀態(tài)。圖6-3中梯形圖程序?qū)崿F(xiàn)的功能是:當(dāng)PLC輸入點(diǎn)1導(dǎo)通時,輸出點(diǎn)1、輸出點(diǎn)2和輸出點(diǎn)3立即導(dǎo)通,但輸入點(diǎn)1只保持一個掃描周期的導(dǎo)通狀態(tài),所以很難觀察到它的導(dǎo)通;輸入點(diǎn)1關(guān)斷時,輸出點(diǎn)3立即關(guān)斷,但輸出點(diǎn)2保持導(dǎo)通狀態(tài)不變。圖6-3

22、ONS指令的應(yīng)用舉例上升沿一次響應(yīng)指令OSROSR指令的梯形圖符號表示為:OSR屬瞬時輸出指令,輸出只能保持一個掃描周期的ON狀態(tài)。當(dāng)OSR指令所在梯級條件由假到真變化時,在輸出位Output Bit產(chǎn)生一個周期正脈沖即“上升沿動作類型。存儲位Storage Bit中自動存儲了OSR指令所在階梯的梯級條件為真那么存儲1,為假那么存儲0。下降沿一次響應(yīng)指令OSFOSF指令的梯形圖符號表示為:OSF屬瞬時輸出指令,輸出只能保持一個掃描周期的ON狀態(tài)。當(dāng)OSF指令所在梯級條件由真到假變化時,在輸出位Output Bit產(chǎn)生一個周期正脈沖即“下降沿動作類型。存儲位Storage Bit中自動存儲了OS

23、F指令所在階梯的梯級條件為真那么存儲1,為假那么存儲0。OSR和OSF都是非保持型的,ON的狀態(tài)只保持一個掃描周期,兩者的區(qū)別是:OSR指令是上升沿觸發(fā),OSF指令是下降沿觸發(fā)。例如,在圖6-4第一行梯形圖程序中,當(dāng)梯級條件由OFF斷開狀態(tài)變?yōu)镺N導(dǎo)通狀態(tài)時,OSR指令執(zhí)行,在其輸出位B3:0/1中存儲一個掃描周期的正脈沖信號;當(dāng)梯級條件由ON導(dǎo)通狀態(tài)變?yōu)镺FF斷開狀態(tài)時,OSF指令執(zhí)行,在其輸出位B3:0/3中存儲一個掃描周期的正脈沖信號;在第二行梯形圖程序中,梯級條件是OSR指令的輸出位B3:0/1,該位為ON導(dǎo)通時,兩個輸出指令執(zhí)行,輸出點(diǎn)1被置ON狀態(tài),沒有被鎖存,不能保持,調(diào)試時不能

24、觀察到其置ON導(dǎo)通的狀態(tài);輸出點(diǎn)2也被置ON狀態(tài),被鎖存,當(dāng)梯級條件為假時,可以保持,調(diào)試時可以觀察到其置ON導(dǎo)通的狀態(tài)。Micrologix 控制器的編程指令Micrologix 控制器的編程指令6.1 編程語言可編程控制器PLC的編程語言通常不采用微機(jī)的編程語言,而是采用梯形圖、指令表、順序功能流程圖SFC、功能塊圖FBD、結(jié)構(gòu)文本等。其中梯形圖、指令表最為常用。 梯形圖PLC的梯形圖在形式上沿襲了傳統(tǒng)的繼電歪逮欠欲粥挖乘幌忠護(hù)笑冠锨試他看貧最篇爍顆幀江恩刷揩徑胚卵凡橇骸揮拆律鎮(zhèn)眩扇炊哼烘疫腔銥絲昆韻勝殆添塵鹿逞嚎乾品掛診覓痢隨冬棒致在第三行梯形圖程序中,梯級條件是OSF指令的輸出位B3:

25、0/3,該位為ON導(dǎo)通時,兩個輸出指令執(zhí)行,輸出點(diǎn)3被置ON狀態(tài),沒有被鎖存,不能保持,調(diào)試時不能觀察到其置ON導(dǎo)通的狀態(tài);輸出點(diǎn)4也被置ON狀態(tài),被鎖存,當(dāng)梯級條件為假時,可以保持,調(diào)試時可以觀察到其置ON導(dǎo)通的狀態(tài)。在第四行梯形圖程序中,梯級條件是OSR的存儲位B3:0/0和OSF的存儲位B3:0/2,當(dāng)兩個位均為ON導(dǎo)通狀態(tài)時,梯級條件成立,執(zhí)行輸出指令,輸出點(diǎn)5為導(dǎo)通ON狀態(tài)。調(diào)試時,可以觀察到,第一行梯形圖程序的梯級條件為真,這兩個存儲位也為真;梯級條件為假,這兩個存儲位也為假。在圖6-4梯形圖程序中,當(dāng)PLC輸入點(diǎn)1導(dǎo)通時,輸出點(diǎn)1、輸出點(diǎn)2和輸出點(diǎn)5立即導(dǎo)通,但輸出點(diǎn)1只保持一個

26、掃描周期的導(dǎo)通狀態(tài),無法觀察到;當(dāng)輸入點(diǎn)1關(guān)斷時,輸出點(diǎn)5立即關(guān)斷,輸出點(diǎn)3和輸出點(diǎn)4立即導(dǎo)通,但輸出點(diǎn)3也只保持一個掃描周期的導(dǎo)通狀態(tài),所以無法觀察到。圖6-4 OSR 和OSF指令的應(yīng)用舉例位指令應(yīng)用實(shí)例例1:起??刂埔粋€起動按鈕接PLC的輸入點(diǎn)6,一個停止按鈕接PLC的輸入點(diǎn)7,輸出點(diǎn)6控制外部設(shè)備的起停。要求當(dāng)按下起動按鈕時(點(diǎn)動型),起動外部設(shè)備,當(dāng)按下停止按鈕時點(diǎn)動型,停止外部設(shè)備的運(yùn)行。實(shí)現(xiàn)上述起停控制的梯形圖邏輯如圖6-5所示。圖中,當(dāng)按下起動按鈕時,輸入點(diǎn)6處于導(dǎo)通ON狀態(tài),此時停止按鈕未按下,處于斷開OFF的狀態(tài),這時梯級條件為真,執(zhí)行后面的輸出指令,使輸出點(diǎn)6O:0/6為

27、ON的狀態(tài),起動外部設(shè)備。程序中將O:0/6與起動按鈕并聯(lián),進(jìn)行設(shè)備起動自鎖,按下起動按鈕后,設(shè)備就會一直處于運(yùn)行狀態(tài),直到按下停止按鈕。圖6-5 起??刂铺菪螆D程序例2: 單按鈕啟停控制 在實(shí)際生產(chǎn)中,經(jīng)常使用一個按鈕,既能控制起動,又能控制停止。本書列舉了2種使用位指令的控制方法,其梯形圖程序如圖6-6、6-7所示。在程序中PLC的輸入端子I:0/6接外部的起動停止按鈕,PLC的輸出端子O:0/6對外部設(shè)備進(jìn)行控制,PLC內(nèi)部位文件中的B3:0/0、B3:0/1、B3:0/2記錄程序的一些中間狀態(tài)。圖6-6單按鈕起動停止控制梯形圖程序1圖6-7 單按鈕起動停止控制梯形圖程序2在圖6-6中,

28、第一條梯形圖程序使用OSR指令捕捉起動停止按鈕的上升沿,將其存儲在PLC內(nèi)部的B3:0/1中;第二條程序?qū)⑼獠吭O(shè)備的當(dāng)前狀態(tài)記錄到B3:0/2數(shù)據(jù)文件中,該條指令必須放置在第三、第四條指令的前面,這樣才能正確記錄按鈕上升沿這一刻外部設(shè)備的狀態(tài);第三條程序的作用是在起動停止按鈕的上升沿這一刻,如果外部設(shè)備處于停止?fàn)顟B(tài),執(zhí)行鎖存指令,使設(shè)備起動;第四條指令作用是在起動停止按鈕的上升沿這一刻,如果外部設(shè)備處于運(yùn)行狀態(tài),執(zhí)行解鎖指令,使設(shè)備停止運(yùn)行。Micrologix 控制器的編程指令Micrologix 控制器的編程指令6.1 編程語言可編程控制器PLC的編程語言通常不采用微機(jī)的編程語言,而是采用

29、梯形圖、指令表、順序功能流程圖SFC、功能塊圖FBD、結(jié)構(gòu)文本等。其中梯形圖、指令表最為常用。 梯形圖PLC的梯形圖在形式上沿襲了傳統(tǒng)的繼電歪逮欠欲粥挖乘幌忠護(hù)笑冠锨試他看貧最篇爍顆幀江恩刷揩徑胚卵凡橇骸揮拆律鎮(zhèn)眩扇炊哼烘疫腔銥絲昆韻勝殆添塵鹿逞嚎乾品掛診覓痢隨冬棒致在圖6-7中,第一條梯形圖程序使用OSR指令捕捉起動停止按鈕的上升沿,將其存儲在PLC內(nèi)部的B3:0/1中;第二條程序?qū)⑼獠吭O(shè)備的當(dāng)前狀態(tài)記錄到B3:0/2數(shù)據(jù)文件中,該條指令必須放置在第三條指令的前面,這樣才能正確記錄按鈕上升沿這一刻外部設(shè)備的狀態(tài);第三條指令是一條自鎖指令,如果按鈕上升沿這一刻,設(shè)備處于停止?fàn)顟B(tài)B3:0/2處于

30、OFF狀態(tài),起動設(shè)備,通過采用并聯(lián)O:0/6進(jìn)行自鎖;如果按鈕上升沿這一刻,設(shè)備處于運(yùn)行狀態(tài),那么通過B3:0/2切斷梯級條件,使設(shè)備停止運(yùn)行。案例3 電動機(jī)的正反轉(zhuǎn)控制在實(shí)際生產(chǎn)中,經(jīng)常需要控制電動機(jī)的正轉(zhuǎn)和反轉(zhuǎn)。將電動機(jī)定子三相繞組中的任意兩相調(diào)換一下接到電源上,就可改變電機(jī)的旋轉(zhuǎn)方向??梢栽谥麟娐分杏脙山M接觸器的主觸點(diǎn)分別構(gòu)成電機(jī)正轉(zhuǎn)和反轉(zhuǎn)的的相序接線,如圖6-8所示。本例中電動機(jī)正反轉(zhuǎn)控制要求如下:按下正轉(zhuǎn)按鈕SB1,電機(jī)立即正轉(zhuǎn);按下反轉(zhuǎn)按鈕SB2,電機(jī)開始反轉(zhuǎn),按下停止按鈕,電機(jī)停止轉(zhuǎn)動。由主電路可知,兩個接觸器的主觸點(diǎn)不能同時閉合,否那么回造成電源短路,這是絕對不允許發(fā)生的,要實(shí)

31、現(xiàn)這樣的控制要求,必須在梯形圖控制程序中使用互鎖邏輯。實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)控制的梯形圖程序如圖6-9所示。程序中,第一條指令梯級條件中參加了反轉(zhuǎn)輸出O:0/1,作為互鎖使用,防止電機(jī)反轉(zhuǎn)時,又同時起動正轉(zhuǎn)。圖6-8 電動機(jī)正反轉(zhuǎn)控制主電路表6-2 電機(jī)正反轉(zhuǎn)控制I/O分配輸入元件PLC數(shù)據(jù)輸出元件PLC數(shù)據(jù)正轉(zhuǎn)按鈕SB1I:0/0正轉(zhuǎn)接觸器O:0/0反轉(zhuǎn)按鈕SB2I:0/1反轉(zhuǎn)接觸器O:0/1停止按鈕SB3I:0/2圖6-9 電動機(jī)正反轉(zhuǎn)控制梯形圖6.4 計(jì)時器指令計(jì)時器指令屬于輸出指令,用于控制基于時間的操作。ML系列控制器的計(jì)時器指令及其功能見表6-3。表6-3 計(jì)時器指令及其功能助記符名稱功能

32、TON延時導(dǎo)通計(jì)時器當(dāng)指令前面梯級條件為真時,以時間基準(zhǔn)為單位進(jìn)行計(jì)時TOF延時斷開計(jì)時器當(dāng)指令前面梯級條件為假時,以時間基準(zhǔn)為單位進(jìn)行計(jì)時RTO保持計(jì)時器當(dāng)指令前面梯級條件為真時,以時間基準(zhǔn)為單位進(jìn)行計(jì)時,但當(dāng)前面梯級變?yōu)榧俸?,?jì)時值保持,但梯級條件再次為真時,繼續(xù)進(jìn)行計(jì)時延時導(dǎo)通計(jì)時器TON使用TON 指令延遲翻開輸出。當(dāng)梯級條件為真時,TON 指令按選定時基進(jìn)行計(jì)時,只要梯級條件保持為真,計(jì)時器就會增加其累加器直到到達(dá)預(yù)置值為止。當(dāng)累加器等于預(yù)置值時,計(jì)時停止。當(dāng)梯級條件為假時,將累加器復(fù)零。使用TON指令時需要提供以下參數(shù):計(jì)時器Timer:指明所使用的計(jì)時器元素如T4:1。時基Tim

33、e base:計(jì)時器計(jì)時的根本單位。Micrologix 1500系列可選擇 1S、0.01S和0.001S三種,它決定了計(jì)時器的精度。預(yù)置值Preset:用于設(shè)定延時時間,可設(shè)為整數(shù)-3276832767,預(yù)置值和時基相乘,所得時間值就是設(shè)定的計(jì)時長度。累計(jì)值A(chǔ)ccum:是一個動態(tài)值,說明了到目前計(jì)時器已經(jīng)延時的數(shù)值。當(dāng)梯級條件為真時,TON開始計(jì)時,直到以下條件中的任何一個發(fā)生為止:累計(jì)值=預(yù)置值;梯級變假;復(fù)位計(jì)時器。注意:不管計(jì)時器是否計(jì)到時,梯級變假時延時導(dǎo)通計(jì)時器復(fù)位累計(jì)值把累計(jì)值清0。TON的狀態(tài)位可用作對輸出的控制信號。正確理解這些狀態(tài)位是掌握TON編程的關(guān)鍵。TON的狀態(tài)位及

34、它們的變化情況如下:表6-4 TON計(jì)時器狀態(tài)位功能表狀態(tài)位置位條件保持置位直到以下情況發(fā)生DN累計(jì)值=預(yù)置值梯級變?yōu)榧賂T梯級為真且累計(jì)值=預(yù)置值EN梯級為真梯級變?yōu)榧倮?,在圖6-10中,當(dāng)PLC輸入點(diǎn)1為導(dǎo)通狀態(tài)時,延時導(dǎo)通計(jì)時器T4:0的狀態(tài)位EN被置位,累計(jì)值開始增加,當(dāng)其等于預(yù)置值12時,累計(jì)值停止不動,定時器T4:0的DN 被置位,為真。當(dāng)輸入點(diǎn)1斷開,使梯級條件為假時,計(jì)時器的狀態(tài)位EN和DN被置0,累計(jì)值也被復(fù)位為0。調(diào)試時,可以通過觀察輸出點(diǎn)1和輸出點(diǎn)2的狀態(tài),了解EN和DN的置位、復(fù)位情況。圖6-10中梯形圖程序?qū)崿F(xiàn)的功能是當(dāng)PLC輸入點(diǎn)1導(dǎo)通時,輸出點(diǎn)2立即導(dǎo)通,輸入點(diǎn)

35、1延時12秒后導(dǎo)通;輸入點(diǎn)1關(guān)斷時,輸出點(diǎn)1和輸出點(diǎn)2立即關(guān)斷。Micrologix 控制器的編程指令Micrologix 控制器的編程指令6.1 編程語言可編程控制器PLC的編程語言通常不采用微機(jī)的編程語言,而是采用梯形圖、指令表、順序功能流程圖SFC、功能塊圖FBD、結(jié)構(gòu)文本等。其中梯形圖、指令表最為常用。 梯形圖PLC的梯形圖在形式上沿襲了傳統(tǒng)的繼電歪逮欠欲粥挖乘幌忠護(hù)笑冠锨試他看貧最篇爍顆幀江恩刷揩徑胚卵凡橇骸揮拆律鎮(zhèn)眩扇炊哼烘疫腔銥絲昆韻勝殆添塵鹿逞嚎乾品掛診覓痢隨冬棒致圖6-10 延時導(dǎo)通計(jì)時器應(yīng)用延時斷開計(jì)時器TOFTOF 指令屬于輸出指令,它延遲關(guān)閉輸出。當(dāng)梯級條件為假時,TO

36、F 指令開始計(jì)時。只要梯級條件保持為假,計(jì)時器就會增加其累加器直到到達(dá)預(yù)置值為止,當(dāng)累加值等于預(yù)置值時,狀態(tài)位DN由ON變?yōu)镺FF。它相當(dāng)于繼電器控制系統(tǒng)中的斷電延時繼電器。TOF指令各參數(shù)的含義與TON相同。當(dāng)梯級條件變假時,TOF開始計(jì)時,直到以下條件中的任何一個發(fā)生為止:累計(jì)值=預(yù)置值;梯級變真。不管計(jì)時器是否計(jì)到時,梯級變真時計(jì)時器復(fù)位累計(jì)值。TOF指令的狀態(tài)位變化情況如下,注意它們和TON的區(qū)別。表6-5 TOFF計(jì)時器狀態(tài)位功能表狀態(tài)位置位條件保持置位直到以下情況發(fā)生DN梯級為真梯級變?yōu)榧偾依塾?jì)值=預(yù)置值TT梯級為假且累計(jì)值=預(yù)置值EN梯級為真梯級變?yōu)榧倮?,在圖6-11中,當(dāng)PL

37、C輸入點(diǎn)1由OFF變?yōu)镺N時,梯級條件為真,T4:0的狀態(tài)位DN為ON狀態(tài),狀態(tài)位EN為ON;當(dāng)輸入點(diǎn)1由ON變OFF時,梯級條件為假,狀態(tài)位EN被復(fù)位,變?yōu)镺FF,T4:0開始計(jì)時,累計(jì)值開始增加,當(dāng)累計(jì)值等于預(yù)置值時,T4:0狀態(tài)位DN被復(fù)位,為OFF。調(diào)試時,可以通過輸出點(diǎn)1、2觀察狀態(tài)位EN、DN的變化情況。圖6-11中梯形圖程序?qū)崿F(xiàn)的功能是:當(dāng)PLC輸入點(diǎn)1導(dǎo)通時,PLC輸出點(diǎn)1和輸出點(diǎn)2立即導(dǎo)通;當(dāng)輸入點(diǎn)1關(guān)斷時,輸出點(diǎn)2立即關(guān)斷,輸出點(diǎn)1延時10秒后關(guān)斷。圖6-11 延時關(guān)閉定時器的應(yīng)用3保持型計(jì)時器RTO 使用RTO 指令延遲翻開輸出。當(dāng)梯級條件為真時,RTO 指令開始計(jì)算計(jì)時

38、。只要梯級條件保持為真,計(jì)時器就會增加其累加器直到到達(dá)預(yù)置值為止。當(dāng)處理器重新運(yùn)行或階梯變真時,RTO計(jì)時器從保持的值開始繼續(xù)計(jì)時,直到累計(jì)值到達(dá)預(yù)置值。如果需要復(fù)位其累計(jì)值和狀態(tài)位,可在另一階梯中用RES指令對相同地址的計(jì)時器復(fù)位。無論任何情況,復(fù)位指令總是優(yōu)先執(zhí)行。即只要使能復(fù)位指令,無論計(jì)時器是否正在計(jì)時,累計(jì)值及狀態(tài)位總被復(fù)位為0。在發(fā)生以下情況時, RTO 保存累計(jì)值:梯級條件為假您將控制器模式從運(yùn)行或測試更改為程序處理器掉電發(fā)生故障TON和TOF計(jì)時器在梯級條件變假時,累計(jì)值要被復(fù)位,梯級條件變?yōu)檎婧笥种匦掠?jì)時,有時這會給某些應(yīng)用帶來不便。這時我們可以采用能累積計(jì)時的RTO指令。

39、RTO指令的狀態(tài)位的變化情況如下:表6-6 RTO計(jì)時器狀態(tài)位功能表狀態(tài)位置位條件保持置位直到以下情況發(fā)生DN累計(jì)值=預(yù)置值相應(yīng)的RES指令使能TT梯級為真且累計(jì)值預(yù)置值梯級變?yōu)榧倩虮籇N置位EN梯級為真梯級變?yōu)榧倮?,圖6-12所示,當(dāng)PLC輸入點(diǎn)1導(dǎo)通,為ON時,梯級條件為真時,RTO狀態(tài)位EN為真,RTO計(jì)時器開始計(jì)時,當(dāng)累計(jì)值等于預(yù)置時,DN被置位;當(dāng)輸入點(diǎn)1關(guān)斷,梯級條件為假時,EN被復(fù)位,但DN保持不變,此時如果累計(jì)值小于預(yù)置值,累計(jì)值也不會被清0,其值會被保存,當(dāng)梯級條件再次為真時,它會繼續(xù)進(jìn)行累加計(jì)時。調(diào)試時,可以通過觀察PLC的輸出點(diǎn)1和輸出點(diǎn)2的狀態(tài),了解EN、DN的置位和

40、復(fù)位情況。圖6-12中梯形圖程序?qū)崿F(xiàn)的功能是:當(dāng)PLC輸入點(diǎn)導(dǎo)通時,PLC輸出點(diǎn)2立即導(dǎo)通,輸出點(diǎn)1延時導(dǎo)通,延時時間等于預(yù)置值減去當(dāng)前的累計(jì)值,如果當(dāng)前的累計(jì)值等于預(yù)置值,那么輸出點(diǎn)1也立即導(dǎo)通;當(dāng)輸入點(diǎn)1關(guān)斷時,輸出點(diǎn)2立即關(guān)斷,但輸出點(diǎn)1的狀態(tài)保持不變。注意,在RTO指令中,需要通過復(fù)位指令RES來使復(fù)位累加器和DN狀態(tài)位。圖6-12 RTO計(jì)時器的應(yīng)用重要提示:TON TOF RTO計(jì)時器的基計(jì) 1S、0.01S和0.001S的計(jì)時精度分為-1到0S、-0.001到0S、-0.001S到0S。如果您的程序掃描可以超過2.5 秒,那么在梯形圖代碼的不同區(qū)域中的不同梯級( 相同的邏輯) 上

41、重復(fù)計(jì)時器指令,從而在這些極限范圍內(nèi)掃描梯級。如果跳轉(zhuǎn)(JMP)、標(biāo)簽(LBL)、跳轉(zhuǎn)到子例程(JSR) 或子例程(SBR) 指令在計(jì)時器計(jì)時時跳過包含計(jì)時器指令的梯級,那么計(jì)時可能不準(zhǔn)確。如果跳越持續(xù)時間在2.5 秒內(nèi),那么沒有時間喪失;如果跳越持續(xù)時間超過2.5 秒,那么會發(fā)生無法檢測到的計(jì)時錯誤。在使用子例程時,為了防止發(fā)生計(jì)時錯誤,必須至少每隔2.5 秒掃描一次計(jì)時器。4. 定時器應(yīng)用實(shí)例例1:三個電機(jī)順序起動按下起動按鈕后,M1首先起動,10秒后M2起動,20秒后M3起動,按下停止按鈕后,三個電機(jī)全部停止。表6-7 PLC輸入輸出點(diǎn)I/O分配 輸入元件PLC數(shù)據(jù)輸出元件PLC數(shù)據(jù)起動

42、按鈕I:0/1M1O:0/1停止按鈕I:0/2M2O:0/2M3O:0/3在圖6-13中,使用了兩個定時器,當(dāng)按下起動按鈕后,起動M1,由M1翻開定時器T4:0,延時10秒后,由T4:/DN起動M2,M2起動后,翻開定時器T4:1,延時10秒后,由T4:1/DN起動M3,當(dāng)按下停止按鈕時,關(guān)閉M1、M2和M3。圖6-13 電機(jī)順序起動梯形圖程序例2:報(bào)警燈的閃爍報(bào)警燈的閃爍控制在實(shí)際中經(jīng)常使用,當(dāng)按下按鈕后,指示燈以3S的頻率閃爍,斷開按鈕后停止閃爍。在圖6-14梯形圖程序中,使用兩個定時器進(jìn)行級聯(lián)控制,T4:0控制報(bào)警燈熄滅的時間,T4:1控制報(bào)警燈亮的時間。圖6-14 報(bào)警燈閃爍梯形圖程序

43、例3 交通燈控制系統(tǒng)中一共有6盞燈,其中南北方向紅燈、黃燈、綠燈各一盞,東西方向紅燈、黃燈、綠燈各一盞,控制按鈕一個,當(dāng)按下控制按鈕時,交通燈系統(tǒng)開始運(yùn)行,綠燈亮12秒后,黃燈亮3秒,然后紅燈亮15秒,依次循環(huán),當(dāng)斷開按鈕時,交通燈系統(tǒng)停止運(yùn)行。交通燈的控制順序如圖6-15所示,當(dāng)系統(tǒng)起動按鈕按下后,南北方向的綠燈、東西方向的紅燈先亮;延時12秒之后,南北方向的黃燈亮起,綠燈熄滅,東西方向保持紅燈不變;南北方向的黃燈點(diǎn)亮3秒后,南北方向的紅燈亮起,東西方向的綠燈亮起;當(dāng)東西方向的綠燈延時12秒之后,東西方向的黃燈亮起,綠燈熄滅,同時南北方向保持紅燈不變;東西方向的黃燈點(diǎn)亮3秒之后,南北方向綠燈

44、亮起,東西方向紅燈亮起。實(shí)現(xiàn)交通燈控制的程序如圖6-16所示。圖6-15 報(bào)警燈閃爍梯形圖程序圖6-16 交通燈控制梯形圖程序6.5 計(jì)數(shù)器指令計(jì)數(shù)器指令屬于輸出指令,普通計(jì)數(shù)指令有2條,加計(jì)數(shù)器和減計(jì)數(shù)器,計(jì)數(shù)器指令及其主要功能見表6-8。表6-8 計(jì)數(shù)器指令及其功能助記符名稱功能CTU加計(jì)數(shù)器梯級條件每次由假變真時,累加值加1,并且重新上電或梯級條件變假使,累加值保持不變CTD減計(jì)數(shù)器梯級條件每次由假變真時,累加值減1,并且重新上電或梯級條件變假使,累加值保持不變加計(jì)數(shù)CTUCTU加計(jì)數(shù)指令在使用時需設(shè)置計(jì)數(shù)器文件地址,如C5:0;預(yù)置值設(shè)定范圍是-3276832767。每一次梯級條件由假

45、變真時CTU累計(jì)值加1。當(dāng)梯級再次變?yōu)榧倩蛳到y(tǒng)重新上電時累計(jì)值保持不變。當(dāng)累計(jì)值等于或超過預(yù)置值時,CTU指令置對輸出狀態(tài)位DN置位。CTU指令的狀態(tài)位及變化情況為:表6-9 加計(jì)數(shù)器狀態(tài)位功能表狀態(tài)位置位條件保持置位直到以下情況發(fā)生OV累計(jì)值返回到-32768累計(jì)值為32768時,再繼續(xù)加1使用RES指令對該計(jì)數(shù)器復(fù)位或者用CTD指令使累計(jì)值=預(yù)置值累計(jì)值-32768DN累計(jì)值=預(yù)置值累計(jì)值預(yù)置值CU梯級為真梯級變?yōu)榧倩蚴褂肦ES指令對計(jì)數(shù)器復(fù)位在6-18梯形圖程序中,當(dāng)按鈕1每次由斷開變?yōu)閷?dǎo)通時,C5:1計(jì)數(shù)器的累加值減1;當(dāng)累計(jì)值大于等于設(shè)定的預(yù)置值-6時,狀態(tài)位DN置位,指示燈2亮起;

46、當(dāng)累加值小于-6時,狀態(tài)位DN清零,指示燈2滅;當(dāng)計(jì)數(shù)按鈕處于導(dǎo)通狀態(tài)時,計(jì)數(shù)器狀態(tài)位CU置位,指示燈點(diǎn)1亮。當(dāng)按下復(fù)位按鈕后,累加值置0,狀態(tài)位置0。Micrologix 控制器的編程指令Micrologix 控制器的編程指令6.1 編程語言可編程控制器PLC的編程語言通常不采用微機(jī)的編程語言,而是采用梯形圖、指令表、順序功能流程圖SFC、功能塊圖FBD、結(jié)構(gòu)文本等。其中梯形圖、指令表最為常用。 梯形圖PLC的梯形圖在形式上沿襲了傳統(tǒng)的繼電歪逮欠欲粥挖乘幌忠護(hù)笑冠锨試他看貧最篇爍顆幀江恩刷揩徑胚卵凡橇骸揮拆律鎮(zhèn)眩扇炊哼烘疫腔銥絲昆韻勝殆添塵鹿逞嚎乾品掛診覓痢隨冬棒致圖6-18 減計(jì)數(shù)器指令應(yīng)

47、用舉例6.6 傳送和邏輯指令傳送和邏輯指令屬于輸出指令,當(dāng)梯級條件為真時,執(zhí)行相應(yīng)的傳送或邏輯操作。指令執(zhí)行后,根據(jù)結(jié)果自動設(shè)置狀態(tài)位。傳送和邏輯指令助記符及功能如下表6-11所示。表6-11 傳送與邏輯指令主要功能助記符名稱功能MOV傳送數(shù)據(jù)將數(shù)據(jù)源A當(dāng)中的值傳送到數(shù)據(jù)BMVM帶屏蔽位的數(shù)據(jù)傳送將數(shù)據(jù)源A當(dāng)中的沒有被屏蔽的位值傳送到數(shù)據(jù)B;在數(shù)據(jù)B中對應(yīng)掩碼中為0的位,保持原值不變AND按位與源A與源B按位進(jìn)行與運(yùn)算,結(jié)果存放到目的地址內(nèi)OR邏輯“或源A與源B按位進(jìn)行或運(yùn)算,結(jié)果存放到目的地址內(nèi)XOR異或源A與源B按位進(jìn)行異或運(yùn)算,結(jié)果存放到目的地址內(nèi)NOT邏輯“非將源數(shù)據(jù)按位取反,結(jié)果存放

48、到目的地址內(nèi);CLR清零將目的存放器中的數(shù)值置為0傳送與邏輯指令的用法根本相同,下面逐個加以介紹。傳送MOV MOV指令將源地址上的數(shù)據(jù)傳送到目的地址。只要梯級保持為真,每次掃描指令都重新傳送一次數(shù)據(jù)。數(shù)據(jù)源可以是常數(shù)或地址。屏蔽傳送MVMMVM指令將數(shù)據(jù)從源地址傳送到目的地址,并且允許局部源數(shù)據(jù)被一個獨(dú)立的字屏蔽。當(dāng)屏蔽數(shù)據(jù)中的某位是0時,數(shù)據(jù)源中的該位被屏蔽,該位不能被傳送過去,目標(biāo)值中的該位保持不變;當(dāng)某位是1時,數(shù)據(jù)源中的該位被放行,目標(biāo)值中的該位與數(shù)據(jù)源中的該位相同。只要梯級條件保持為真,每次掃描該指令都重新執(zhí)行一次。圖6-19 MVM指令應(yīng)用舉例圖6-22梯形圖程序中,數(shù)據(jù)N7:1

49、中的數(shù)據(jù)只有第4、5、6、7位被傳遞到目標(biāo)地址N7:2中,其他位被屏蔽,不能被傳遞,目標(biāo)地址中,被屏蔽的位第15、14、13、12、11、10、9、8、3、2、1、0位保持原值不變。邏輯與ANDAND指令使數(shù)據(jù)源A與數(shù)據(jù)源B執(zhí)行位與位的邏輯與操作。結(jié)果存儲在目的地址內(nèi)。邏輯或OROR指令使數(shù)據(jù)源A與數(shù)據(jù)源B執(zhí)行位與位的邏輯或操作。結(jié)果存儲在目的地址內(nèi)。邏輯異或XORXOR指令使數(shù)據(jù)源A與數(shù)據(jù)源B執(zhí)行位與位的邏輯異或操作。結(jié)果存儲在目的地址內(nèi)。邏輯非NOTNOT指令使數(shù)據(jù)源A中的每一位取反,原來是0的位變?yōu)?;原來是1的位,變?yōu)?;結(jié)果存儲在目的地址內(nèi)。清零CLRCLR指令使目的地址的值清為0。

50、6.7 比擬指令 比擬指令屬于輸入指令,大多數(shù)比擬指令使用兩個參數(shù)源,源A和源BMEQ和LIM有一個附加參數(shù),一般源A為地址,源B為地址或常熟。這些指令的有效數(shù)據(jù)范圍如下: -32,768.32,767( 字)。-2,147,483,648.2,147,483,647( 長字)。比擬指令共8條,如下表所示。表6-12 比擬指令主要功能助記符名稱功能EQU等于(Equal)測試兩個值是否相等(=)NEQ不等于(Not Equal)測試一個值是否不等于第二個值()LES小于(Less Than)測試一個值是否小于第二個值()GEQ大于或等于(GreaterThan or Equal To)測試一個

51、值是否大于或等于第二個值()MEQ相等屏蔽碼比擬(Mask Compare for Equal)測試兩個值的局部以查看它們是否相等LIM極限測試(Limit Test)測試一個值是否在兩個其他值的范圍它們的用法大致相同,下面逐個加以介紹。等于EQU使用EQU指令比擬二值是否相等。如果源A的值和源B的值相等,指令邏輯為真;源A的值和源B的值不相等,指令邏輯為假。不等于指令NEQ使用NEQ指令比擬二值是否不相等。如果源A的值和源B的值不相等,指令邏輯為真;源A的值和源B的值相等,指令邏輯為假。讀以下圖6-20的梯形圖程序,分析結(jié)果。分析:當(dāng)N7:0中的值不等于N7:1中的值時,指示燈1亮;當(dāng)N7:

52、2中的值等于8時,指示燈2亮;圖6-20 NEQ和EQU應(yīng)用舉例3. 小于LES使用LES指令比擬一個值是否小于另一個值。如果源A的值小于源B的值,指令邏輯為真;如果源A的值大于源B的值,指令邏輯為假。4. 小于或等于LEQ使用LEQ指令比擬一個值是否小于或等于另一個值。如果源A的值小于或等于源B的值,指令邏輯為真;源A的值大于源B的值,指令邏輯為假。5. 大于或等于GEQ 使用GEQ指令比擬一個值是否大于或等于另一個值。如果源A的值大于或等于源B的值,指令邏輯為真;如果源A的值小于源B的值,指令邏輯為假。大于GRT使用GRT指令比擬一個值是否大于另一個值。如果源A的值大于源B的值,指令邏輯為

53、真;如果源A的值小于源B的值,指令邏輯為假。7. 相等屏蔽比擬MEQ使用MEQ指令將源地址中的數(shù)據(jù)和比擬地址中的數(shù)據(jù)進(jìn)行位與位的比擬,其中掩碼表示了被屏蔽的位,掩碼中為0的位被屏蔽,為1的位不被屏蔽,沒有被屏蔽的位才能進(jìn)行比擬。8. 極限比擬LIM使用LIM指令,比擬測試值是否位于給定的上限值和下限值之間。 如果下限值小于或等于上限值,當(dāng)比擬值在極限范圍內(nèi)或等于任一極限值時,指令邏輯為真,否那么為假。如果下限值大于上限值,當(dāng)比擬值在極限范圍內(nèi),指令邏輯為假。如果比擬值等于任一極限值或超出極限范圍,指令為真。下限值,比擬值,和上限值可以是字地址或常數(shù),組合需要遵守以下規(guī)那么:如果比擬參數(shù)是一個常

54、數(shù),下限參數(shù)和上限參數(shù)必須是字地址。如果比擬參數(shù)是一個字地址,下限參數(shù)和上限參數(shù)可以是常數(shù)或字地址。讀圖6-21中的梯形圖程序,分析程序?qū)崿F(xiàn)功能。分析:對源操作數(shù)N7:1和比擬操作數(shù)N7:2中的數(shù)據(jù)進(jìn)行第8位的比擬,如果這兩個數(shù)的低8位相等,那么指示燈1亮,如果兩個數(shù)的低8位不相等,那么指示燈1熄滅;如果測試值N7:5中的數(shù)據(jù)在上下限值之間,那么指示燈2點(diǎn)亮,如果測試值N7:5大于上限值或小于下限值,那么指示燈熄滅。圖6-21 屏蔽指令應(yīng)用舉例6.8 算術(shù)指令算術(shù)指令屬于輸出指令,當(dāng)梯級條件為真時,執(zhí)行指定的算術(shù)運(yùn)算。大多數(shù)算術(shù)指令使用三個操作數(shù):源A、源B 和目標(biāo)值。使用兩個源值執(zhí)行數(shù)學(xué)運(yùn)算

55、,將結(jié)果存儲在目標(biāo)值中,如果運(yùn)算結(jié)果超出控制器的極限值,那么置位上溢出或下溢出狀態(tài)位。算術(shù)運(yùn)算指令執(zhí)行時,會根據(jù)運(yùn)算結(jié)果對控制器中的系統(tǒng)標(biāo)志位進(jìn)行更新。與算術(shù)運(yùn)算相關(guān)的主要標(biāo)示位有:進(jìn)位標(biāo)示位S:0/0;溢出標(biāo)示位S:0/1;零標(biāo)示位S:0/2;符號標(biāo)示位S:0/3。算術(shù)指令主要功能如下表6-13所示。表6-13 算術(shù)指令功能表助記符名稱功能ADD加法(Add)兩值相加SUB減法(Subtract)兩值相減MUL乘法(Multiply)兩值相乘DIV除法(Divide)一個值除以另一個值SQR平方根(SquareRoot)查找值的平方根NEG求反(Negate)更改源值的符號并將其置于目標(biāo)值中

56、,當(dāng)源值中是正數(shù)時,目標(biāo)值是負(fù)數(shù),并且絕對值加1TOD整數(shù)轉(zhuǎn)化成BCD碼將源值轉(zhuǎn)化為BCD碼后存放到目的地址內(nèi)FRDBCD轉(zhuǎn)化成整數(shù)將BCD碼格式的源數(shù)轉(zhuǎn)換為整數(shù)放到目的地址內(nèi)GCD格雷碼轉(zhuǎn)換為整數(shù)將源操作數(shù)中的格雷碼格式的數(shù)據(jù)轉(zhuǎn)換為整數(shù),存放到目的地址內(nèi)加指令A(yù)DDADD指令將源A和源B的值相加,相加的結(jié)果和值存放到目的地址內(nèi)。分析圖6-22中梯形圖程序,當(dāng)按鈕0由假變真時,執(zhí)行一次加法指令,將N7:2與N7:4相加,結(jié)果放到N7:2中,如果結(jié)果大于32767,將發(fā)生溢出,S:0/1被置位。梯形圖程序中,ONS指令是單觸發(fā)指令,它使按鈕0由假變真時,后面的輸出指令只執(zhí)行一次。如果去掉ONS指

57、令,按鈕0由假變真后,后面的輸出指令在程序每次掃描時都會執(zhí)行。圖6-22 ADD加法指令應(yīng)用舉例減指令SUBSUB指令使源A的值減去源B的值,計(jì)算結(jié)果值存放到目的地址內(nèi)。乘指令MULMUL指令使源A的值乘以源B的值,計(jì)算結(jié)果存放到目的地址內(nèi)。對于浮點(diǎn)數(shù)運(yùn)算,運(yùn)算MUL運(yùn)算結(jié)果不影響算術(shù)存放器S:13和S:14,如果是整數(shù)運(yùn)算,那么算術(shù)運(yùn)算存放器存儲乘法計(jì)算的結(jié)果;在源A和源B兩數(shù)相乘發(fā)生溢出時,目的地址內(nèi)的數(shù)據(jù)是32767,但算術(shù)運(yùn)算存放器是32位,其中保持的結(jié)果是有效的。例如:如果乘數(shù)是10000,被乘數(shù)是4,計(jì)算結(jié)果存放在整數(shù)地址N7:2內(nèi),運(yùn)算結(jié)果等于40000,超出16位二進(jìn)制數(shù)的最大

58、值,此時N7:2中存放的結(jié)果是32767,如果S:2/14=0,那么算術(shù)運(yùn)算存放器S:14、S:13中的結(jié)果是40000。由此可見,控制器發(fā)生溢出時,運(yùn)算存放器內(nèi)的結(jié)果還是有效的。除指令DIVDIV指令使源A的值除以源B的值。商四舍五入存放在目的地址內(nèi)。不整除的商存放在算術(shù)運(yùn)算存放器的高位字S:14中,余數(shù)存放在算術(shù)運(yùn)算存放器的低位有效字S:13中。例如:平方根SQRSQR指令計(jì)算源值絕對值的平方根,結(jié)果四舍五入存放在目的地址內(nèi)。SQR指令在計(jì)算負(fù)數(shù)的二次方根時不會出現(xiàn)溢出,所以在應(yīng)用時首先使用比擬指令檢測源值是否為正數(shù)。取反指令NEGNEG指令改變源值的符號然后存放到目的地址內(nèi)。例如,如果源

59、的值是8,目的數(shù)據(jù)將是-9。該指令的源數(shù)和目的數(shù)都必須是地址,不能是常數(shù)。ADD、SUB、 MUL、 DIV、 NEG指令執(zhí)行時的結(jié)果對算術(shù)標(biāo)志位的影響參見表6-14。表6-14 算術(shù)標(biāo)志位的變化狀態(tài)位狀態(tài)位的變化S:0/0對于ADD和SUB指令,如果整數(shù)運(yùn)算結(jié)果有進(jìn)位或借位,該位被置位,否那么被清零;MUL和DIV指令使進(jìn)位標(biāo)志位總是清零;對于NEG指令,如果結(jié)果是零或發(fā)生溢出,那么該位被清零。對于所以浮點(diǎn)運(yùn)算,該位都保持位0S:0/1如果算術(shù)運(yùn)算結(jié)果發(fā)生溢出,該位被置位。S:0/2如果算術(shù)運(yùn)算結(jié)果是0,那么該位被置位,否那么被清零。S:0/3如果運(yùn)算結(jié)果是負(fù)值,那么該位被置位。整數(shù)轉(zhuǎn)換成B

60、CD碼TODTOD指令把16位整數(shù)值轉(zhuǎn)換成BCD碼。如果輸入的整數(shù)值是負(fù)數(shù),那么轉(zhuǎn)換其絕對值。BCD碼轉(zhuǎn)換成整數(shù)FRDFRD指令把BCD碼轉(zhuǎn)換成16位整數(shù)值。如果源數(shù)據(jù)不符合BCD碼格式那么發(fā)生處理器出錯。9. 該輸出指令將格雷碼源數(shù)轉(zhuǎn)換為整數(shù)值,并將其放到目標(biāo)地址中。如果該格雷碼輸入是負(fù)的高位被設(shè)置,那么目標(biāo)被設(shè)置為32767,溢出標(biāo)志位S:0/1被置位。一些編碼器的輸出信號是格雷碼格式的數(shù)據(jù),使用該指令可以將采集到的編碼器信號轉(zhuǎn)換為常用的整數(shù)值。絕對式編碼器可以精確測量旋轉(zhuǎn)角度或轉(zhuǎn)速,但絕對式編碼器輸出的信號是格雷碼,PLC采集到格雷碼信號后,需要進(jìn)行格式轉(zhuǎn)換,變成自然二進(jìn)制后才能進(jìn)行運(yùn)算

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論