第八章三菱PXN系列PLC應用指令及編程_第1頁
第八章三菱PXN系列PLC應用指令及編程_第2頁
第八章三菱PXN系列PLC應用指令及編程_第3頁
第八章三菱PXN系列PLC應用指令及編程_第4頁
第八章三菱PXN系列PLC應用指令及編程_第5頁
已閱讀5頁,還剩242頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第八章

FX2N系列PLC

應用指令及編程方法

1PLC僅有基本指令是遠遠不夠的。現(xiàn)代工業(yè)控制在許多場合需要數(shù)據(jù)處理,因而PLC制造商逐步在PLC中引入應用指令(AppliedInstruction),也有的書稱為功能指令(FunctionalInstruction),用于數(shù)據(jù)的傳送、運算、變換及程序控制等應用。這使得PLC成了真正意義上的計算機。應用指令的豐富程度是表征PLC數(shù)據(jù)處理能力的重要標志。應用指令無論從梯形圖的表達形式上,還是從涉及的機內(nèi)器件種類及信息的數(shù)量上都有一定的特殊性。2FX2N系列PLC應用指令類型程序控制傳送與比較四則與邏輯運算循環(huán)移位數(shù)據(jù)處理高速處理便利指令外部設備I/O處理浮點操作時鐘運算、格雷碼轉(zhuǎn)換、觸點比較3近年來,應用指令在向功能綜合性方面研究不斷深入,出現(xiàn)了許多一條指令即能實現(xiàn)以往需要大段程序才能完成的某種任務的指令:PID指令應用、表應用指令等。這類指令實際上就是一個個應用完整的子程序,從而大大提高了PLC的實用價值和普及率。4

教學要求:1、本章主要介紹FX2N系列PLC的應用指令表示與執(zhí)行形式、數(shù)值處理、分類和編程方法,闡述常用的應用指令的原理及應用。2、主要掌握“程序控制、傳送與比較、四則運算與邏輯運算、循環(huán)移位五種類型的應用指令,其指令的功能意義及編程應用,并能靈活運用它們編程解決實際工程問題。3、了解“數(shù)據(jù)處理、高速處理、便利指令、外部設備I/O處理”應用指令的功能及編程應用。5FX2N系列PLC應用指令依據(jù)應用不同分為四大類指令。

第一節(jié)應用指令的類型及使用要素程序控制類數(shù)據(jù)處理類四大類應用指令特殊應用類外部設備類61、程序控制類指令主要用于程序的結構及流程的控制,該類指令有子程序、中斷、跳轉(zhuǎn)及循環(huán)等指令。2、數(shù)據(jù)處理類指令種類多,數(shù)量大、使用頻繁,可分為傳送與比較、四則運算及邏輯運算、循環(huán)與移位、數(shù)據(jù)處理、浮點數(shù)操作、時鐘運算等類指令。3、特種應用類指令是機器的一些特殊控制應用,如高速處理和方便類指令是一些專用機械或?qū)S秒姎庠O備應用的指令等。4、外部設備類指令含一般的輸入輸出口設備及專用外部設備二大類。專用外部設備是指與主機配接的應用單元及專用通訊單元等。7一、應用指令的表示形式、應用與操作

與基本指令不同的是,應用指令不含表達梯形圖符號間相互關系的成分。而是直接表達指令要做什么。FX2N系列PLC在梯形圖中一般是使用應用框來表示應用指令的。8

圖中M8002的常開觸點是應用指令的執(zhí)行條件,其后的方框即為應用框。應用框中分欄表示指令的名稱、相關數(shù)據(jù)或數(shù)據(jù)的存儲地址。圖8-1中指令的應用意義是:當M8002接通時,十進制常數(shù)245將被傳送到數(shù)據(jù)寄存器D501中去。圖8-1應用指令的梯形圖形式執(zhí)行條件應用框由指令、相關數(shù)據(jù)或存儲地址組成9圖8-2應用指令的表示形式及要素*表8-1加法指令的要素功能代碼FNC助記符數(shù)據(jù)長度32/16脈沖/連續(xù)標記特殊指令符號操作數(shù)10圖8-3表8-2中操作數(shù)可用元件類型的表示范圍符號*二、FX2N系列PLC應用指令分類及匯總

FX2N系列PLC應用指令在FX2型應用指令的基礎上,又增加了浮點數(shù)運算、觸點形比較及時鐘應用等指令,指令數(shù)量達到128種298條,列于表8-2中所示。11三、操作數(shù)說明在數(shù)據(jù)處理和運算過程中,均要用到相關寄存器,即數(shù)據(jù)寄存器,變址寄存器,中斷指針和輔助繼電器等。相關的規(guī)則要掌握,以便正確使用。下面介紹操作數(shù)的修改方法121、數(shù)據(jù)寄存器編號修改A、16位指令操作數(shù)的修改FNC12MOV(P)K0V0FNC12MOV(P)K10V0FNC12MOV(P)K500D0V0X0X0X1K0V0K10V0X0=1,V0=0:K500(D0)(D0+0)X0=0,V0=10:K500(D10)(D0+10)13B、32位指令操作數(shù)的修改FNC12MOV(P)K0Z0FNC12MOV(P)K10Z0FNC12MOV(P)K6900D0Z0X2X2X3K0V0,Z0K10V0,Z0X2=1,V0,Z0=0:K6900(D1,D0)(D0+0)X2=0,V0,Z0=10:K6900(D11,D10)(D0+10)142、常數(shù)K的修改FNC12MOV(P)K0V5FNC12MOV(P)K20V5FNC12MOV(P)K6V5D10X4X4X5K0V5K20V5X4=1,V5=0:K6V5(K6+0)(D10)X4=0,V5=20:K26V5(K6+20)(D10)153、輸入/輸出繼電器(八進制軟繼電器元件編號)修改K0V3K8V3V3=0:X7-X0Y7-Y0V3=8:X17-X10Y7-Y0V3=16:X27-X20Y7-Y0FNC12MOV(P)K0V3FNC12MOV(P)K8V3X10X11FNC12MOV(P)K16V3X12FNC12MOV(P)K2X0V3K2Y0X13K16V3164、定時器/計數(shù)器當前值的修改FNC19BINK1X0Z0M8000(X3-X0)BCD(Z0)BINFNC18BCDT0Z0K4Y0BCD轉(zhuǎn)換為二進制二進制轉(zhuǎn)換為BCD(T0Z0)BIN(Y17-Y0)BCD根據(jù)Z0=0~9,則T0Z0=T0~T9七段碼顯示器輸出Y17-Y0PLC定時器輸入地址X3~X017第二節(jié)程序流程類應用指令及應用程序流程類應用指令共有十條,指令功能編號為FNC00~FNC09,它們在程序中的條件執(zhí)行與優(yōu)先處理,主要與順控程序的控制流程有關。18程序流程類應用指令十條FNC00CJ(P)條件跳轉(zhuǎn)FNC01CALL子程序調(diào)用和返回FNC02SRETFNC03IRETFNC04EI中斷返回、中斷允許和中斷禁止FNC05DIFNC06FEND主程序結束、看門狗定時器FNC07WDTFNC08FOR循環(huán)指令FNC09NEXT19一、條件跳轉(zhuǎn)指令及應用1.條件跳轉(zhuǎn)指令說明該指令的代碼、助記符、操作數(shù)和程序步如表8-3所示。

跳轉(zhuǎn)指令在梯形圖中的使用如圖8-4所示。圖中跳轉(zhuǎn)指針P8、P9分別對應CJP8及CJP9二條跳轉(zhuǎn)指令。20跳轉(zhuǎn)指令執(zhí)行的意義是:在滿足跳轉(zhuǎn)條件(X000=ON)時,PLC在每個掃描周期里都不執(zhí)行跳轉(zhuǎn)指令與跳轉(zhuǎn)指針Pn之間的程序,而是跳到以指針Pn為入口的程序段中執(zhí)行,直至跳轉(zhuǎn)條件不滿足,跳轉(zhuǎn)停止進行。21兩種情況:有條件轉(zhuǎn)移和無條件轉(zhuǎn)移X2無條件轉(zhuǎn)移X3Y11有條件轉(zhuǎn)移FNC00CJP8X0M8000FNC00CJP8Y10P8P63P63為結束222、條件跳轉(zhuǎn)程序段中元器件在跳轉(zhuǎn)執(zhí)行中的工作狀態(tài)

表8-4給出了圖8-4中跳轉(zhuǎn)發(fā)生前后輸入或前序器件狀態(tài)發(fā)生變化對程序執(zhí)行結果的影響。(1)被跳過的程序段中的輸出繼電器Y、輔助繼電器M、狀態(tài)S由于該段程序不再執(zhí)行,即使梯形圖中涉及的工作條件發(fā)生變化,它們的工作狀態(tài)仍保持跳轉(zhuǎn)發(fā)生前的狀態(tài)不變。23表8-4跳轉(zhuǎn)對元器件狀態(tài)的影響24(2)跳過的程序段中的時間繼電器T及計數(shù)器C,無論其是否具有掉電保持功能,由于跳過的程序停止執(zhí)行,它們的當前值寄存器被鎖定保持不變。在不發(fā)生跳轉(zhuǎn)程序順序執(zhí)行時,計時、計數(shù)器才開始繼續(xù)進行。另外,計時、計數(shù)器的復位指令具有優(yōu)先權,即使復位指令位于被跳過的程序段中,只要復位條件滿足,復位指令就將執(zhí)行。253、使用跳轉(zhuǎn)指令的幾點注意(1)跳轉(zhuǎn)指令具有選擇執(zhí)行程序段的功能。在同一程序且位于因跳轉(zhuǎn)而不會被同時執(zhí)行的程序段中的同一線圈,不被視為雙線圈。(2)可以有多條跳轉(zhuǎn)指令使用同一標號。但不允許一個跳轉(zhuǎn)指令對應二個標號的情況存在,即在同一程序中不允許存在二個相同的標號。在編寫跳轉(zhuǎn)程序的指令表時,標號需占一行。26(3)標號一般設在相關的跳轉(zhuǎn)指令之后,也可以設在跳轉(zhuǎn)指令之前,如圖8-6所示。應注意的是,從程序執(zhí)行順序來看,如果X024接通約200ms以上,造成該程序的執(zhí)行時間超過了D8000中警戒時鐘設定值,會發(fā)生監(jiān)視定時器M8000出錯。(4)使用CJ(P)指令時,跳轉(zhuǎn)條件滿足時,只在第一個掃描周期執(zhí)行一次跳轉(zhuǎn)。但是如果采用M8000作為跳轉(zhuǎn)條件,則跳轉(zhuǎn)就成為無條件跳轉(zhuǎn)了。27(5)跳轉(zhuǎn)可用來執(zhí)行程序初始化工作。在PLC運行的第一個掃描周期中,跳轉(zhuǎn)CJ指令不執(zhí)行,而執(zhí)行跳轉(zhuǎn)指令與P7之間的初始化程序,下一個掃描周期,才執(zhí)行跳轉(zhuǎn)指令,跳過初始化程序。2829(6)主控區(qū)與跳轉(zhuǎn)指令的關系。①對跳過整個主控區(qū)(MC~MCR)的跳轉(zhuǎn)不受限制。②從主控區(qū)外跳到主控區(qū)內(nèi)時,跳轉(zhuǎn)獨立于主控操作,CJP1執(zhí)行時,不論M0狀態(tài)如何,均作ON處理。③在主控區(qū)內(nèi)跳轉(zhuǎn)時,若M0為OFF,跳轉(zhuǎn)不能執(zhí)行;若M0為ON,跳轉(zhuǎn)可以執(zhí)行。④從主控區(qū)內(nèi)跳到主控區(qū)外時,M0為OFF時,跳轉(zhuǎn)不能執(zhí)行;M0為ON時,跳轉(zhuǎn)條件滿足,可以跳轉(zhuǎn),這時MCRN0無效,但不會出錯。⑤從一個主控區(qū)內(nèi)跳到另一個主控區(qū)內(nèi)時,當M1為ON時,可以跳轉(zhuǎn)。執(zhí)行跳轉(zhuǎn)時不論M2的實際狀態(tài)如何,均看做ON。MCRN0被忽略。30舉例1:圖8-9即為一段手動、自動程序選擇的梯形圖和指令表。圖中輸入X025接的是手動/自動轉(zhuǎn)換開關。

當X025置1時,執(zhí)行自動工作方式,置0時執(zhí)行手動工作方式。圖8-9手動/自動轉(zhuǎn)換程序4.跳轉(zhuǎn)指令的應用及實例

跳轉(zhuǎn)指令可用來選擇執(zhí)行一定的程序段,在工業(yè)控制中經(jīng)常使用。比如,同一套設備在不同的條件下,有兩種工作方式,需運行二套不同的程序時可使用跳轉(zhuǎn)指令。31二、子程序指令及應用

1.子程序指令的使用說明及其梯形圖表示方法

該指令的指令代碼、助記符、操作數(shù)、程序步見表8-5表8-5子程序指令使用要素32332.子程序的執(zhí)行過程及在程序編制中的意義在圖8-10中,若調(diào)用指令改為非脈沖執(zhí)行指令CALLP10:當X001置1并保持不變時,每當程序執(zhí)行到該指令時,都轉(zhuǎn)去執(zhí)行P10子程序,遇到SRET指令即返回原斷點繼續(xù)執(zhí)行原程序。若X001=0,不調(diào)用子程序,僅執(zhí)行主程序。

子程序可以使主程序的結構簡潔明了。編程時可將相對獨立的功能都編成子程序,放在主程序后面,而在主程序中設置一些調(diào)用指令,就能實現(xiàn)對這些子程序的調(diào)用了。當有多個子程序排列在一起時,每個標號和最近的一個子程序返回指令構成一個子程序。343-1.子程序應用實例1某化工反應裝置需要完成多液體物料的化合工作,連續(xù)生產(chǎn)。使用PLC完成物料的比例投入及送出,并完成反應裝置溫度的控制工作。反應物料的比例投入可根據(jù)裝置內(nèi)酸鹼度,經(jīng)運算控制有關閥門的開度來實現(xiàn),反應物的送出依進入物料的量,經(jīng)運算控制出料閥門的開啟程度實現(xiàn)。溫度控制使用加溫及降溫設備。溫度需維持在一個區(qū)間內(nèi)。

35在設計程序的總體結構時,將運算為主的程序內(nèi)容做為主程序。加溫及降溫等邏輯控制為主的程序作為兩個子程序。X010及X011作為子程序的執(zhí)行條件,它們與溫度高低限繼電器連接。36圖8-11溫度控制子程序結構圖在設計程序的總體結構時,將運算為主的程序內(nèi)容做為主程序。將加溫及降溫等邏輯控制為主的程序作為子程序。X010及X011作為子程序的執(zhí)行條件,它們與溫度高低限繼電器連接。373-2.子程序應用實例2:X0=ON,X1=OFF,調(diào)P0子程序;X0=OFF,調(diào)P1子程序;X1=ON,調(diào)P2子程序1秒子程序FNC02SRET2秒子程序FNC02SRET4秒子程序FNC02SRETENDP0P1P2X1FNC01CALLP0FNC01CALLP1FNC01CALLP2FNC06FENDX0X1X0X138梯形圖FNC01CALLP0FNC01CALLP1FNC01CALLP2FNC06FENDX0X1X0X1Y0P0M8013FNC02SRETP1T1T0K10FNC02SRETT0T1K10Y11秒子程序2秒子程序T2K20FNC02SRETT2T3K20Y2T3P2END4秒子程序主程序39三、中斷指令及其應用1.中斷指令說明及其梯形圖表示方法

中斷指令的助記符、指令代碼、操作數(shù)、程序步見表8-6。表8-6中斷指令使用要素40中斷是指PLC在執(zhí)行主程序的過程中,根據(jù)中斷條件自動轉(zhuǎn)去執(zhí)行中斷子程序。中斷是為某些特定的控制功能而設定的獨立于主程序的子程序。和普通子程序的不同點是,這些特定的控制功能都有一個共同的特點,即要求:中斷子程序響應時間小于機器的中斷源。FX2N系列PLC有三類十五個中斷源:輸入中斷(6個)、定時器中斷(3個)、和計數(shù)器中斷(6個)。為了區(qū)別不同的中斷源入口,應在程序中標明不同的中斷指針標號(在編寫中斷子程序的指令表時,標號需占一行)。指針地址編號不可重復使用。4142六個輸入中斷指針是接收對應輸入端X000~X005信號而執(zhí)行中斷子程序的。常用于由外部干預需要中斷處理一些工作的場合。三個定時器中斷標號是機內(nèi)的中斷定時器,當定時值與設定時間相等時,自動執(zhí)行中斷子程序。常用于需要周期性中斷處理一些工作的場合。六個計數(shù)器中斷標號是機內(nèi)高速計數(shù)器(C235~C255)計數(shù)值與設定值比較相等時,指定執(zhí)行中斷子程序的入口地址。常用于由高速計數(shù)器計數(shù)而需要中斷處理一些工作的場合。43中斷子程序是脫離于程序掃描執(zhí)行的。處理多個中斷子程序突發(fā)執(zhí)行的優(yōu)先秩序,稱為中斷優(yōu)先權。FX2N系列PLC一共有15個中斷,其優(yōu)先權由中斷號的大小決定,號數(shù)小的中斷優(yōu)先權高。外部輸入中斷號整體上高于定時器中斷。即外部輸入中斷的優(yōu)先權較高。中斷子程序是為一些特定的隨機事件處理而設計的子程序,它能否允許響應中斷請求,取決于主程序中是否安排有中斷允許的開放區(qū)和中斷禁止的關閉區(qū)。44在主程序中,允許中斷指令EI與禁止中斷指令DI指令之間為允許(或開)中斷區(qū),區(qū)外為關中斷。若EI和DI在主程序的頭尾,則整個主程序都為開中斷區(qū),稱為全程允許中斷。PLC是根據(jù)開中斷區(qū)中的工作性質(zhì)決定是否響應中斷子程序的。如果主程序后面安排的中斷子程序比較多,而這些中斷子程序又不一定需要同時響應時,可以在主程序開中斷區(qū)中安排特殊輔助繼電器M8050~M8059對輸入,定時,計數(shù)中斷子程序選擇執(zhí)行,M8050~M8059與15個中斷指針的對應關系如表8-7所示。機器規(guī)定:當M8050~M8059被置1時,其對應的中斷被封鎖;反之置0時,允許對應的中斷執(zhí)行。4546

中斷指令的梯形圖表示如圖8-12所示。從圖中可以看出,中斷程序作為子程序是安排在主程序結束指令FEND之后的。主程序中EI及DI指令之間的程序區(qū)為允許中斷子程序響應的范圍。若主程序帶有多個中斷子程序時,為了區(qū)分每個獨立的中斷子程序,中斷標號和與其最近的一處中斷返回指令構成的程序即為一個中斷子程序。472.中斷指令的執(zhí)行過程及應用實例(1)外部(輸入)中斷子程序

外部輸入中斷常用來引入發(fā)生頻率高于機器掃描頻率的外控制信號,或用于處理那些需快速響應的信號。比如,在可控整流裝置的控制中,取自同步變壓器的觸發(fā)同步信號可經(jīng)專用輸入端子引入可編程控制器作為中斷源,并以此信號作為移相角的計算起點。48在主程序的開中斷區(qū),當X001=OFF,則M8050=OFF,標號為I001的中斷子程序允許執(zhí)行,即每當輸入口X001接收到一次上升沿中斷請示信號時,就執(zhí)行該中斷子程序一次,使Y000=ON,利用觸點型秒脈沖特殊繼電器M8013驅(qū)動Y012每秒接通一次,中斷子程序執(zhí)行完后返回主程序。49(2)定時中斷子程序

圖8-14為一個時間比較的驗證性中斷子程序。定時中斷子程序的入口標號為I610,每10ms自動執(zhí)行一次中斷子程序。當程序第一次掃描執(zhí)行期間,M8056=ON,標號為I610的定時中斷子程序禁止執(zhí)行,只對M1~M3,D0和T0初始化;第二次掃描執(zhí)行程序時,M8056=OFF,定時中斷子程序允許工作,即每間隔10mS,執(zhí)行一次中斷子程序,數(shù)據(jù)存儲器D0中加1,當加到1000時,M2為ON,使主程序中Y002置1。為了驗證定時中斷子程序執(zhí)行的正確性,主程序中的定時器T0與中斷子程序同時定時運行,其設定值也為10秒,控制輸出端Y001,這樣主程序與中斷子程序經(jīng)過10S的運行,Y001及Y002應同時置1。50當程序第一次掃描執(zhí)行期間,M8056=ON,標號為I610的定時中斷子程序禁止執(zhí)行,只對M1~M3,D0和T0初始化;51開中斷EI初始化處理第二次掃描執(zhí)行程序時,M8056=OFF,定時中斷子程序允許工作,即每間隔10mS,執(zhí)行一次中斷子程序,數(shù)據(jù)存儲器D0中加1,當加到1000時,M2為ON,使主程序中Y002置1。為了驗證定時中斷子程序執(zhí)行的正確性,主程序中的定時器T0與中斷子程序同時定時運行,其設定值也為10秒,控制輸出端Y001,這樣主程序與中斷子程序經(jīng)過10S的運行,Y001及Y002應同時置1。5253(3)計數(shù)器中斷子程序計數(shù)器中斷是利用PLC內(nèi)部的高速計數(shù)器對外部脈沖計數(shù),若當前計數(shù)值與設定值比較相等時,執(zhí)行中斷子程序。計數(shù)器中斷子程序常用于利用高速計數(shù)器計數(shù)進行優(yōu)先控制的場合。計數(shù)器中斷要與高速計數(shù)器比較置位指令FNC53(HSCS)組合使用才能實現(xiàn)。

圖8-16所示,當高速計數(shù)器C255的當前計數(shù)值與K100比較相等時,產(chǎn)生中斷響應,轉(zhuǎn)去執(zhí)行中斷指針指向的中斷子程序,中斷子程序執(zhí)行完后,返回原斷點后的主程序。5455計數(shù)器中斷子程序?qū)嵗?FNC04EIM8059=OFF,允許中斷X10M8059I010M8000C255FNC53HSCSK1000C255FNC04FENDM8000Y000M8001Y001FNC03IRETI010END高速計數(shù)器C255計到1000,執(zhí)行中斷程序56四、主程序結束和監(jiān)視定時器刷新指令(自學)五、程序循環(huán)指令及應用程序循環(huán)指令的要素及梯形圖表示該指令的助記符、指令代碼、操作數(shù)、程序步見表8-10。循環(huán)程序中的循環(huán)指令FOR與NEXT二條指令要成對使用表8-10程序循環(huán)指令要素57六、程序控制指令與程序結構 程序是由一系列的指令組成的,一定的指令集合總是完成一定的功能。當功能控制要求復雜,程序變的龐大時,就要求將具有一定功能的指令程序塊合理地組織起來,這就是程序的結構。程序結構應具有方便程序的編寫,有利于閱讀理解程序。好的程序結構,能使PLC的運行效率提高。常見的程序結構類型有簡單結構、跳越及循環(huán)結構、組織模塊式結構,它們的結構形式和特點請同學們課下閱讀P193。58課堂練習1:手動/自動控制。1、手動程序—X001輸入5個脈沖,Y000有輸出;2、自動程序—Y001為觀察秒脈沖的輸出,C1對秒脈沖(M8013)計數(shù),計滿10個則Y002輸出。編程要求:X010為計數(shù)器的清零信號,X025手自動切換信號。(1)分別編寫手動程序和自動程序(2)通過跳轉(zhuǎn)指令,編寫手/自動總程序59第三節(jié)傳送、比較類應用指令及應用FX2N系列可編程控制器數(shù)據(jù)傳送、比較類指令包含有比較指令、區(qū)間比較指令、傳送與移位傳送指令、取反傳送指令、塊傳送指令、多點傳送指令等十條指令,它們所涉及的數(shù)據(jù)均以帶符號位的16位或32位二進制數(shù)進行操作或變換,是數(shù)據(jù)處理類程序中使用十分頻繁的指令。本節(jié)介紹傳送和比較類指令的使用方法及應用,并給出一些應用實例。60數(shù)據(jù)傳送指令和比較類指令比較指令區(qū)間比較指令傳送與移位傳送指令取反傳送指令塊傳送指令和多點傳送指令數(shù)據(jù)交換指令BCD交換指令BIN交換指令61一、傳送和比較類指令使用說明

(一)比較CMP與區(qū)間ZCMP比較指令

CMP/ZCMP指令是將S1(·)與S2(·)中的常數(shù)或指定軟組件中的數(shù)據(jù)進行比較,比較結果使目標操作數(shù)D(·)指定的對應位元件動作62(1)CMP指令如圖8-22所示。圖中目標軟元件指定M0時,M0、M1、M2會自動被占用。當比較指令的操作數(shù)不完整或者指定的操作數(shù)不符合要求,或者指定的操作數(shù)的元件號超出了允許范圍等情況,比較結果將會出錯。63

目標軟元件在使用比較指令前應清零或要清除其比較結果時,要采用復位指令RST或批復位指令ZRST。如圖8-23。圖8-23比較結果復位64(2)區(qū)間比較指令ZCP該指令可以實現(xiàn)S1≤S≤S2區(qū)間的比較,該指令是將S(·)數(shù)據(jù)與上、下兩個源數(shù)據(jù)S1(·)和S2(·)間的數(shù)據(jù)進行代數(shù)比較(即帶符號比較)。要求源數(shù)據(jù)S1(·)≤S2(·),若S1(·)>S2(·),則S2(·)則被看作與S1(·)一樣大,例如在S1(·)=K100,S2(·)=K90時,則S2(·)當作K100進行運算。在X000斷開時,ZCP指令不執(zhí)行,M3~M5保持X000斷開前的原狀態(tài)。使用區(qū)間比較指令前對目標操作數(shù)指定的軟元件清零,也可采用圖8-23方法復位。

圖8-24區(qū)間比較指令的使用說明65比較指令應用:T1T0K10T0T1K10ENDX0Y10Y10C0K15M0X0M8059FNC10CMPK10C0M0Y0M1Y1M2Y2C0Y3C0<10,Y0=1C0=10,Y1=1C0>10,Y2=1C0計數(shù)到15,Y3=166(二)傳送指令

1.傳送指令說明及梯形圖表示方法該指令的助記符、指令代碼、操作數(shù)范圍、程序步如表8-13所示。表8-13傳送指令的要素67傳送指令MOV的使用說明如圖8-25。當X000=ON時,源操作數(shù)S(·)中的十進制常數(shù)K100傳送到目標操作軟元件D10中。當指令執(zhí)行時,常數(shù)K100自動轉(zhuǎn)換成二進制數(shù)。當X000斷開,指令不執(zhí)行時,D10中原數(shù)據(jù)保持不變。圖8-25傳送指令的使用說明682.指令的應用舉例(1)將定時器、計數(shù)器的當前值讀出,如圖8-26。圖中,X001=ON時,(T1當前值)→(D21)。(2)定時器、計數(shù)器設定值的間接指定,如圖8-27。圖中,X002=ON時,K100→(D10),(D10)中的數(shù)值作為T20的時間設定常數(shù),定時器延時10S。69(3)對若干的位軟元件成批數(shù)據(jù)傳送,可用圖8-28中右圖MOV指令來表示左圖的順控程序。70(4)32位數(shù)據(jù)的傳送,如圖8-29。DMOV指令常用于將運算結果以32位數(shù)據(jù)進行傳送的應用指令(如乘法指令MUL等)以及32位的數(shù)值或32位的高速計數(shù)器的當前值等的傳送。71(三)移位傳送指令

1.移位傳送指令說明及梯形圖表示方法該指令的助記符、指令代碼、操作數(shù)范圍、程序步如表8-14所示。圖8-14移位傳送指令的要素72SMOV是進行數(shù)據(jù)分配與合成的指令。該指令是將源操作數(shù)S(·)中二進制(BIN)碼自動轉(zhuǎn)換為BCD碼。根據(jù)指令中對源操作數(shù)指定的起始位號m1和移位的位數(shù)m2向目標操作數(shù)中指定的起始位n進行移位傳送,目標操作數(shù)中未被移位傳送的BCD位,數(shù)值不變,然后再自動轉(zhuǎn)換成新的二進制(BIN)碼,如圖8-30所示。源操作數(shù)為負以及BCD碼的值超過9999將出現(xiàn)錯誤.73

圖8-30移位傳送指令的使用和移位說明將源操作數(shù)S(·)中二進制(BIN)—(D1)自動轉(zhuǎn)換為BCD碼再把BCD碼傳送[D]目的地址D2單元將源數(shù)據(jù)(D1)中數(shù)據(jù)(轉(zhuǎn)為BCD)的第4位(m1=K4)起與(2個,m2=K2)一起向目標D2傳送(至第3位和第2位n=K3)742.移位傳送指令應用(1)三位BCD碼數(shù)字開關與不連續(xù)的輸入端連接實現(xiàn)數(shù)據(jù)的組合。如圖8-31所示BCD碼轉(zhuǎn)換BIN75(2)移位指令的擴展應用可以驅(qū)動特殊輔助繼電器M8168接通,使SMOV指令執(zhí)行中,不再對源操作數(shù)進行BCD碼變換,而是直接將二進制的源操作數(shù)以四位為單位,對目標操作數(shù)進行多點傳送。如下圖所示。76(四)取反指令取反指令的助記符、指令代碼、操作數(shù)范圍、程序步如表8-15所示。表8-15取反指令的要素77該指令的使用說明如圖8-32,其功能是將源數(shù)據(jù)D0中的數(shù)值按位取反(0→1,1→0)傳送到目標操作數(shù)指定的元件中去。若將常數(shù)K用于源數(shù)據(jù),則自動進行二進制變換。該指令常用于希望將數(shù)據(jù)取反輸出的場合。78(五)塊傳送指令該指令的助記符、指令代碼、操作數(shù)范圍、程序步如表8-16所示。表8-16塊傳送指令的要素79BMOV指令是從源操作數(shù)指定的軟元件開始的n點數(shù)據(jù)傳送到指定的目標操作數(shù)開始的n點軟元件。如果元件號超出允許的元件號范圍,數(shù)據(jù)僅傳送到允許的范圍內(nèi),如圖8-33所示。注意:BMOV指令的傳送方向受M8024控制。圖8-33塊傳送指令的使用說明之一80圖8-33塊傳送指令的使用說明之一。若塊傳送的是位元件構成的字長數(shù)據(jù),源與目標操作數(shù)中的位元件要采用相同的字長,如圖8-34所示。在傳送的源與目標操作數(shù)地址號范圍有重疊的場合,為了防止源數(shù)據(jù)沒有傳送就被改寫,PLC自動確定傳送順序,如圖8-35中的①~③順序。81利用BMOV指令在M8024傳送方向控制下可以讀寫文件寄存器(D1000~D7999)中的數(shù)據(jù),如圖8-36所示。82(六)多點傳送指令該指令的助記符、指令代碼、操作數(shù)范圍、程序步如表8-17所示。表8-17多點傳送指令的要素83FMOV指令是將源操作數(shù)指定的軟元件中內(nèi)容向以目標操作數(shù)指定的軟元件起始的n個軟元件傳送,n個軟元件的內(nèi)容都一樣。如圖8-37所示,當X000=ON時,K10數(shù)據(jù)傳送到D1~D5中。如果目標操作數(shù)指定的軟元件號超出允許的范圍,數(shù)據(jù)僅傳送到允許的范圍內(nèi)。84(七)數(shù)據(jù)交換指令該指令的助記符、指令代碼、操作數(shù)范圍、程序步如表8-18所示。表8-18數(shù)據(jù)交換指令的要素85XCH指令可以將指定的兩個目標軟元件中數(shù)據(jù)進行交換,如圖8-38所示。也可利用M8160實現(xiàn)16位數(shù)據(jù)的高低八位數(shù)據(jù)交換,如圖8-39。該功能等價于FNC147SWAP指令。86(八)BCD碼轉(zhuǎn)換指令該指令的助記符、指令代碼、操作數(shù)范圍、程序步如表8-19所示。表8-19BCD交換指令的要素87該指令可以將源元件中的二進制數(shù)轉(zhuǎn)換成BCD碼送到目標元件。轉(zhuǎn)換BCD指令的說明如圖8-40所示。當X000=ON時,源元件D12中的二進制數(shù)轉(zhuǎn)換成BCD碼送到目標元件Y000~Y007中,可用于驅(qū)動七段顯示器。圖8-40BCD變換指令使用說明*注意:若指令為16位操作,轉(zhuǎn)換的BCD碼不能超出9999范圍,否則出錯;若指令是32位操作,轉(zhuǎn)換的BCD碼不能超出99999999的范圍,否則會出錯。88(九)BIN轉(zhuǎn)換指令該指令的助記符、指令代碼、操作數(shù)范圍、程序步如表8-20所示。表8-20BIN轉(zhuǎn)換指令的要素89BIN指令可將源元件中的BCD碼轉(zhuǎn)換成二進制數(shù)送到目標元件中。源數(shù)據(jù)范圍:16位操作為0~9999;32位操作為0~99999999。BIN轉(zhuǎn)換指令的使用如圖8-41所示。當X010=ON時,指令根據(jù)源元件X000~X007接收的BCD碼轉(zhuǎn)換成二進制數(shù)送到目標元件D12中去。90如果源數(shù)據(jù)不是BCD碼時,M8067為ON(運算錯誤),M8068(運算錯誤鎖存)為OFF,不工作。

圖8-42是用七段顯示器顯示數(shù)字開關輸入PLC中的BCD碼數(shù)據(jù)。在采用BCD碼的數(shù)字開關向PLC輸入時,要用BIN指令BCD碼轉(zhuǎn)換為BIN碼;欲要輸出BCD碼到七段顯示器時,應采用BCD指令將BIN碼轉(zhuǎn)換為BCD碼輸出。91傳送和比較類指令小結1、數(shù)據(jù)比較類指令數(shù)據(jù)比較指令CMP數(shù)據(jù)區(qū)間比較ZCP2、數(shù)據(jù)傳送類指令傳送指令MOV移位傳送指令SMOV取反傳送指令CML塊傳送指令BMOV多點數(shù)據(jù)傳送指令FMOV3、數(shù)據(jù)轉(zhuǎn)換傳送類指令數(shù)據(jù)交換指令XCH二進制碼轉(zhuǎn)換指令BIN921.多諧振蕩電路用程序構成一個閃光信號燈,要求通過改變輸入口的置數(shù)開關改變閃光頻率。四個置數(shù)開關分別接于輸入端X000~X003,X010為啟停開關,閃光信號燈接于Y000。

二-(1)、傳送比較類指令的應用實例93變址寄存器,通電時完成清零。從輸入口讀入置數(shù)開關數(shù)據(jù)送入Z0中,變址綜合后的數(shù)據(jù)(K8+Z0)送到寄存器D0中,作為定時器T0的設定值,

94與T1配合產(chǎn)生D0時間間隔的脈沖,驅(qū)動Y000。95

2.用傳送指令實現(xiàn)電動機的Y/△降壓啟動控制電機的Y/△降壓啟動主電路路及PLC接線如下圖所示,

I/O點分配如下:

96電機Y/△降壓啟動控制要求:(1)定子Y形接法降壓啟動時,應Y000,Y001接通——傳送常數(shù)K為1+2=3(2)當轉(zhuǎn)速上升到6秒時,定子應斷開電源接成△形,即斷開Y000,Y001,接通Y002——傳送常數(shù)K為4(3)接通Y000,Y002——傳送常數(shù)K為1+4=5,通電后定子△形全壓運行。(4)停止時,傳送常數(shù)K為0。(5)啟動過程中Y/Δ切換應有1s時間間隔。9798K為3(0011)轉(zhuǎn)速上升到6秒K為2(0100)Y/Δ切換應有1s時間間隔。K為5(0101)起動按鈕停止按鈕K為0(0000)3.密碼鎖程序用比較指令可構成密碼鎖的軟件系統(tǒng),該鎖需要四次輸入正確的3位十六進制密碼才能開啟。

每次接收3位十六進制密碼需從12個輸入端X000~X013的12個按鈕輸入,即X000~X003接收第一個十六進制數(shù);X004~X007接收第二個十六進制數(shù);X010~X013接收第三個十六進制數(shù)。

如果四次輸入的密碼與設定值都相符合,5秒后,鎖開啟。20秒后不開鎖,重新鎖定。99密碼鎖的密碼可由程序設定和修改。假定設定的四個密碼為H2A4、H01E、H151、H18A,每次從K3X000輸入的數(shù)據(jù)可用比較指令CMP與四個設定值進行判斷,梯形圖如圖8-45所示。以上采用十二鍵排列組合設計的密碼鎖,具有較高的實用性。1001014.外置數(shù)計數(shù)器PLC中計數(shù)器的設定值通常是由程序設定的,在一些工業(yè)控制場合,希望計數(shù)器設定值能在程序外由操作人員根據(jù)工藝要求臨時設定,這就需要一種外置數(shù)計數(shù)器。一種通過BCD碼撥盤的外置數(shù)計數(shù)器。采用二位BCD撥碼開關接于X000~X007,通過它們可以根據(jù)要求在99以下置值;X010為計數(shù)脈沖源輸入端;X011為啟停開關。102C10計數(shù)值是否與外部撥碼開關設定值一致,是借助比較指令實現(xiàn)的。須注意的是,撥碼開關送入的值為BCD碼,要用BIN指令轉(zhuǎn)換為二進制數(shù)。因為比較操作只對二進制數(shù)有效。103初始化BCD-BIN5.簡易定時報時器

用計數(shù)器與比較指令可構成“24h可設定定時時間的定時控制器”。要求定時控制器作如下控制:①早上6點半,電鈴(Y000)每秒響一次,響六次后自動停止。②9:00~17:00,啟動住宅報警系統(tǒng)(Y001)。③晚上6點開花園內(nèi)照明(Y002接通)。④晚上10點關園內(nèi)照明(Y002斷開)。使用時,在0:00時啟動定時器。設X000為啟停開關;X001為15min快速調(diào)整與試驗開關,每15min為一個設定單位,24小時共96個時間單位;X002為格數(shù)設定的快速調(diào)整與試驗開關。時間設定值為鐘點數(shù)×4。104X001為15min快速調(diào)整與試驗開關,每15min為一個設定單位,采用C0計數(shù)器。24小時共96個時間單位。105①早上6點半,電鈴(Y000)每秒響一次,響六次后自動停止。②9:00~17:00,啟動住宅報警系統(tǒng)(Y001)。③晚上6點開花園內(nèi)照明(Y002接通)。④晚上10點關園內(nèi)照明(Y002斷開)。使用時,在0:00時啟動定時器。106107傳送比較類指令的課堂練習21.下列程序中當X000為ON時,C21當前值為200時,則

為ON。A.Y000 B.Y001C.Y002D.Y000~Y0021082、有一組彩燈L1-L8,要求隔燈顯示,每2s變換一次,反復進行。用二個開關實現(xiàn)啟停控制。設置啟動開關為X001,停止開關為X002;L1-L8接于Y000-Y007。FNC12MOV(P)K1K2Y0FNC12MOV(P)K2K2Y0T0設計啟保停電路M100T1T0K20T0T1K204s時鐘發(fā)生器T1K1值取

K2值取

109

第四節(jié)算術及邏輯運算指令及應用本節(jié)將介紹FX2NPLC的整數(shù)算術運算和邏輯運算指令,共有十條,功能編號為FNC20~29。完成四則運算或邏輯運算的基本運算指令,同時通過運算實現(xiàn)數(shù)據(jù)的傳送、變位及其他控制功能??删幊炭刂破饔姓麛?shù)四則運算和實數(shù)四則運算兩種,前者指令較簡單,實數(shù)運算是浮點運算,是一種高精確度的運算。FX2N系列PLC除有BIN的整數(shù)運算指令之外,還具有BIN浮點運算的專用四則運算指令(見本章第十一節(jié))。110加,加1減乘除整數(shù)算術運算邏輯運算指令與或異或求補邏輯運算指令算術指令111一、算術及邏輯運算指令的使用說明(一)二進制加法指令

該指令的助記符、指令代碼、操作數(shù)、程序步如表8-21所示。表8-21加法指令的要素112ADD加法指令是將指定的源元件中的二進制數(shù)相加,結果送到指定的目的元件中去。ADD加法指令的使用說明如圖8-48所示。113(二)二進制減法指令該指令的助記符、指令代碼、操作數(shù)、程序步如表8-22所示。表8-22二進制減法指令的要素114SUB減法指令是將指定的源元件中的二進制數(shù)相減,結果送到指定的目標元件中去。SUB減法指令的說明如圖8-50所示。各種標志的動作、32位運算中軟元件的指定方法、連續(xù)執(zhí)行型和脈沖執(zhí)行型的差異等均與上述加法指令相同。115(三)二進制乘法指令該指令的助記符、指令代碼、操作數(shù)、程序步如表8-23所示。表8-23二進制乘法指令的要素116MUL乘法指令是將指定的源元件中的二進制數(shù)相乘,結果送到指定的目標元件中去。MUL乘法指令使用說明如圖8-52所示。它分16位和32位兩種運算情況。117

注意:在32位乘法指令中:1.目標操作數(shù)不能使用位組合的字元件,因限于K的取值(k≤8),只能得到低位32位的結果,不能得到高位32位的結果。2.用字元件作目標操作數(shù)時,也不能對作為運算結果的64位數(shù)據(jù)進行成批監(jiān)視,在這種場合下,建議采用浮點運算。3.變址寄存器Z不能在32位運算中作為目標元件的指定,只能在16位運算中作為源操作數(shù)元件的指定。118(四)二進制除法指令該指令的助記符、指令代碼、操作數(shù)、程序步如表8-24所示。表8-24二進制除法指令的要素119DIV除法指令是將源操作數(shù)S1(·)作為被除數(shù),S2(·)作為除數(shù),進行二個常數(shù)或二個源元件中的二進制數(shù)相除,商送到目標元件D(·)指定的元件中去,余數(shù)送到目標元件D(·)+1的元件中。DIV除法指令使用說明如圖8-53所示,它也分16位和32位兩種運算情況。120(五)二進制加1指令該指令的助記符、指令代碼、操作數(shù)、程序步如表8-25所示。表8-25加1指令的要素121加1指令說明如圖8-54所示。當X000由OFF→ON變化時,由D(·)指定的元件D10中的二進制數(shù)自動加1。圖8-54加1指令使用說明若用連續(xù)指令時,每個掃描周期都加1。16位運算時,+32767再加上1則變?yōu)椋?2768,但標志位不動作。同樣,在32位運算時,+2147483647再加1就變?yōu)椋?147483647,標志位不動作。122(六)二進制減1指令該指令的助記符、指令代碼、操作數(shù)、程序步如表8-26所示。表8-26二進制減1指令的要素123

減1指令的使用說明如圖8-55所示,當X001由OFF→ON變化時,由D(·)指定的元件D10中的二進制數(shù)自動減1。

圖8-55二進制減1指令使用說明若用連續(xù)指令時,每個掃描周期都減1。在16位運算時,-32768再減1就變?yōu)?32767,但標志位不動作。同樣,在32位運算時,-2147483648再減1就變?yōu)椋?147483647,標志位不動作。124表8-27邏輯字與、或、異或指令的要素(七)邏輯字與、或、異或指令

邏輯字與、或、異或指令的助記符、指令代碼、操作數(shù)、程序步如表8-27所示。125邏輯字與、或、異或指令的使用說明。

圖8-56邏輯字與、或、異或指令使用說明126(八)求補碼指令該指令的助記符、指令代碼、操作數(shù)、程序步如表8-28所示。表8-28求補碼指令的要素127求補指令僅對負數(shù)求補碼,其使用說明如圖8-57所示,當X000由OFF→ON變化時,由D(·)指定的元件D10中的二進制負數(shù)按位取反后最低位加1,求得的補碼存入原來的D10內(nèi)。圖8-57求補碼指令的使用說明若使用的是連續(xù)指令時,則在各個掃描周期都執(zhí)行求補運算,可能結果會出錯。128

二、算術及邏輯運算指令應用實例(一)四則運算式的實現(xiàn)

編程實現(xiàn):

算式的運算,式中X代表從輸入端口K2X000送入的二進制數(shù),運算結果送輸出口K2Y000;X020為啟停開關。其程序梯形圖如圖8-58所示。129(二)彩燈正序亮至全亮、反序熄至全熄再循環(huán)控制

采用加1、減1指令及變址寄存器Z0來完成實現(xiàn)彩燈控制功能。彩燈有12盞,各彩燈狀態(tài)變化的時間單位為1s,可用秒時鐘M8013控制。

130X001為彩燈控制開關,X001=OFF時,禁止輸出繼電器M8034=1,使輸出均為OFF。M1用于控制正/反序循環(huán)。131(三)利用乘除運算指令實現(xiàn)彩燈移位(掃描)控制采用乘除法指令實現(xiàn)燈組的移位循環(huán)。一組15個燈接于Y000~Y016,

控制要求:當X000為ON,燈正序每隔1S單個移位點亮,并循環(huán);當X001為ON且Y000為OFF時,燈反序每隔1S單個移位點亮,直至Y000為ON,停止。梯形圖如圖8-60所示,該程序是利用乘2、除2實現(xiàn)目標數(shù)據(jù)中“1”移位的。132主控1:控制正序主控2:控制反序133利用乘2、實現(xiàn)目標數(shù)據(jù)中“1”移位利用除2實現(xiàn)目標數(shù)據(jù)中“1”移位

第五節(jié)循環(huán)與移位指令及其應用FX2N系列PLC循環(huán)與移位類指令有循環(huán)移位、位移位、字移位及先入先出(FIFO)指令等十種,從指令的功能來說:(1)循環(huán)移位是指數(shù)據(jù)在單或雙字元件內(nèi)的一種環(huán)形移動。而非循環(huán)移位是線性的移位,數(shù)據(jù)從其他數(shù)據(jù)移入,移出部分將丟失。(2)移位指令可用于數(shù)據(jù)的倍乘處理,形成新數(shù)據(jù),或形成某種控制開關。字移位和位移位不同,它可用于字數(shù)據(jù)在存儲空間中的位置調(diào)整等功能。(3)先進先出(FIFO)指令可用于數(shù)據(jù)的管理。134循環(huán)與移位類指令帶進位循環(huán)不帶進位的循環(huán)循環(huán)移位左移右移位或字移位寫入讀出先入先出(FIFO)135一、循環(huán)與移位控制類指令說明(一)循環(huán)右移和循環(huán)左移指令該類指令的助記符、指令代碼、操作數(shù)、程序步如表8-29所示。表8-29循環(huán)右移、左移指令的要素136循環(huán)右移指令可以使16位或32位數(shù)據(jù)向右循環(huán)移位,其使用說明如圖8-62(a)所示。當X000由OFF→ON時,D(·)指定的元件內(nèi)各位數(shù)據(jù)向右移4位,最后一次從低位移出的狀態(tài)同時存于進位標志M8022中。圖8-62循環(huán)移位指令使用說明137循環(huán)左移指令可以使16位數(shù)據(jù)或32位數(shù)據(jù)向左循環(huán)移位,其使用說明如圖8-62(b)所示。當X001由OFF→ON時,D(·)內(nèi)各位數(shù)據(jù)向左移4位,最后一次從高位移出的狀態(tài)同時存于進位標志M8022中。圖8-62循環(huán)移位指令使用說明138(二)帶進位循環(huán)右移、左移指令該類指令的助記符、指令代碼、操作數(shù)、程序步如表8-30所示。表8-30帶進位循環(huán)右移、左移指令的要素139帶進位循環(huán)右移指令可將進位標志M8022的狀態(tài)與16或32位數(shù)據(jù)一起向右循環(huán)移n位,使用說明如圖8-63(a)所示。當X000=ON時,M8022驅(qū)動前的1態(tài)先被移入D(·)指定元件高位,且D(·)元件內(nèi)各位數(shù)據(jù)向右移4位,最后從低位移出的狀態(tài)0存于M8022中。圖8-63帶進位循環(huán)移位指令使用說明

140帶進位循環(huán)左移指令可以使進位標志M8022的狀態(tài)與16或32位數(shù)據(jù)向左循環(huán)移n位,使用說明如圖8-63(b)所示。當X001=ON時,M8022驅(qū)動前的0態(tài)先被移入D(·)指定元件的低位,且D(·)元件內(nèi)各位數(shù)據(jù)向左移4位,最后從高位移出的狀態(tài)1存于M8022中。圖8-63帶進位循環(huán)移位指令使用說明

141(三)位右移、位左移指令

該類指令的助記符、指令代碼、操作數(shù)、程序步如表8-31所示。表8-31位移位指令的要素142位移位指令是對D(·)所指定的n1個位元件連同S(·)所指定的n2個位元件的數(shù)據(jù)右移或左移n2位。圖8-64(a)是位右移指令梯形圖:當X010=ON時,D(·)指定的(M0~M15)中16位數(shù)據(jù)連同S(·)指定的X000~X003接收的4位數(shù)據(jù)向右移4位。(X000~X003)中4位數(shù)據(jù)從D(·)的高位端移入,而D(·)的低位M0~M3數(shù)據(jù)溢出。143同理,圖8-64(b)的位左移指令的梯形圖移位原理也類同。用脈沖型指令執(zhí)行時,X000由OFF→ON變化時指令僅執(zhí)行一次,移n2位;若用連續(xù)型指令執(zhí)行時,移位操作是每個掃描周期執(zhí)行一次,使用該指令時應注意。144(四)字右移、字左移指令該類指令的助記符、指令代碼、操作數(shù)、程序步如表8-32所示。表8-32字移位指令的要素145字左/右移位指令是對D(·)所指定的n1個字元件連同S(·)所指定的n2個字元件右移或左移n2個字數(shù)據(jù)。圖8-65(a)為WSFR字右移指令的梯形圖及使用說明:146圖8-65(b)為WSFL字左移指令梯形圖及使用說明,原理類同。用脈沖型指令執(zhí)行時,X000由OFF→ON變化時指令執(zhí)行一次,進行n2個字移位;若用連續(xù)指令執(zhí)行時,移位操作每個掃描周期將執(zhí)行一次,必須注意。147(五)FIFO寫入/讀出指令

先進先出讀/寫指令的助記符、指令代碼、操作數(shù)、程序步如表8-33所示。表8-33

FIFO寫入指令的要素148SFWR指令是先進先出控制數(shù)據(jù)寫入指令,其使用說明如圖8-66(a)所示。圖中n=10表示D(·)指定從D1開始有10個連續(xù)軟元件,且D1作為數(shù)據(jù)寫入次數(shù)的指針,初始應置0。149當X000觸點每閉合一次,指令則將S(·)所指定的D0中數(shù)據(jù)存到D(·)所指定的D2,D3…D10中,指針D1每次自動加1。當D1內(nèi)的數(shù)據(jù)超過n-1=9時,則上述操作不再執(zhí)行,進位標志M8022動作置1,表示寫入已滿。若是連續(xù)指令,執(zhí)行時則在各個掃描周期按順序?qū)懭搿?50SFRD指令是先進先出控制數(shù)據(jù)讀出指令,其使用說明如圖8-66(b)所示。圖中n=10表示S(·)指定從D1開始有10個連續(xù)軟元件,且D1被指定作為數(shù)據(jù)讀出次數(shù)的指針,初始應置n-1。151當X000觸點每合一次時,指令則將S(·)中D2內(nèi)的數(shù)據(jù)傳送到D(·)所指定的D20內(nèi),同時指針D1的內(nèi)容減1,D3~D10的數(shù)據(jù)向右移一個字。當D1的內(nèi)容減到0時,則上述操作不再執(zhí)行,零位標志M8020動作置1,表示數(shù)據(jù)讀出結束。152若是連續(xù)型SFRD指令,則在每個掃描周期將S(·)中n-1個元件的數(shù)據(jù)按順序右移逐個從D2中讀到D20中,D20中數(shù)據(jù)要及時取走,否則會被刷新。153二、循環(huán)與移位指令應用(一)流水燈光控制某招牌上有L1~L8八個燈接于K2Y000,要求當X000為ON時,燈先以正序(左移)每隔1S依次點亮,當Y007亮后,停2S;然后以反序(右移)每隔1S依次點亮,當Y000亮后,停2S,重復上述過程。當X001為ON時,停止工作。

154流水燈光控制PLC輸入、輸出接點與內(nèi)部器件分配表155演示156(二)步進電機控制用位移位指令可以實現(xiàn)步進電機正反轉(zhuǎn)和調(diào)速控制。以三相雙三拍電機為例,由晶體管輸出型PLC的Y010~Y012輸出脈沖列,作為步進電機驅(qū)動電源功放電路的輸入,如下圖(a)所示。三相雙三拍步進電機的A、B、C三個繞組,應按下圖(b)的脈沖輸入分配方式及通電順序,電機才能按要求的規(guī)律旋轉(zhuǎn)。157三相雙三拍步進電機正、反轉(zhuǎn)的脈沖時序圖如下:

設X000為正反轉(zhuǎn)切換輸入(X000為OFF時,M正轉(zhuǎn);X000為ON時,M反轉(zhuǎn));X002為啟動按鈕,X003為減速按鈕,X004為增速按鈕。158步進電機正反轉(zhuǎn)和調(diào)速控制PLC接點分配159程序設計分成三個模塊:一個模塊是采用1ms積算型定時器T246構成脈沖發(fā)生器,它的設定值D0中可設定K2~K500,并可進行調(diào)整,即定時為2ms~500ms可變,從面可使步進電機獲得500步/s~2步/s的變速范圍。第二個模塊采用位左移和位右移指令,實現(xiàn)步進電機的三相雙三拍通電脈沖順序。第三個模塊是步進電機的加/減速調(diào)節(jié),采用加1和減1指令調(diào)節(jié)D0中的數(shù)值,就可實現(xiàn)調(diào)速功能。梯形圖如圖8-68所示。160第一模塊:T246構成脈沖發(fā)生器脈沖頻率初值為K500161第二模塊:三相雙三拍通電脈沖順序162正轉(zhuǎn):在T246作用下形成011,110和101的三拍循環(huán)第三模塊:加/減速調(diào)節(jié),采用加1和減1指令調(diào)節(jié)D0中的數(shù)值163164(三)產(chǎn)品的進出庫控制先進先出控制指令可應用于邊登記產(chǎn)品進庫,邊按順序?qū)⑾冗M的產(chǎn)品出庫登記。若產(chǎn)品地址號為4位以下數(shù)字,最大庫存量為99點以下,采用十六進制。當入庫按鈕X020按下時,從K4X000(X000~X017)輸入口輸入產(chǎn)品地址號到D256,并以D257作為指針,存入從D258~D356的99個字元件組成的堆棧中;當出庫按鈕X021按下時,從D257指針后開始的99個字元件組成的堆棧中取出先進的一個地址號送至D375,由D375向輸出口K4Y000輸出。165當入庫按鈕X020按下時,從K4X000(X000~X017)輸入口輸入產(chǎn)品地址號到D256,并以D257作為指針,存入從D258~D356的99個字元件組成的堆棧中;166當出庫按鈕X021按下時,從D257指針后開始的99個字元件組成的堆棧中取出先進的一個地址號送至D375,由D375向輸出口K4Y000輸出。167168第六節(jié)數(shù)據(jù)處理指令及其應用

數(shù)據(jù)處理類指令有區(qū)間復位指令、編、譯碼指令、置1位求和指令、平均值計算指令和標志位置位/復位指令等十條。169一、數(shù)據(jù)處理指令說明(一)區(qū)間復位指令

1.區(qū)間復位指令的使用說明該指令的助記符、指令代碼、操作數(shù)、程序步如表8-34所示。區(qū)間復位指令也稱為”成批復位指令”

170圖8-70所示中,當M8002由0FF→ON時,執(zhí)行區(qū)間復位指令。位元件M500~M599成批復位、字元件C235~C255成批復位、狀態(tài)元件S0~S127成批復位。171使用說明:⑴兩個目標操作數(shù)D1(·)和D2(·)指定的元件應為同類軟元件;⑵D1(·)指定的元件號應小于等于D2(·)指定的元件號。若D1(·)的元件號大于D2(·)的元件號,則只有D1(·)指定的元件被復位。⑶該指令為16位處理指令,但是可以在D1(·)和D2(·)中指定32位計數(shù)器。不過不能混合指定。也就是說,不能在D1(·)中指定16位計數(shù)器,在D2(·)中指定32位計數(shù)器。1722.與其它復位指令的比較(1)采用RST指令僅對位元件Y、M、S和字元件T、C、D單獨進行復位。不能成批復位。(2)也可以采用多點傳送指令FMOV(FNC16)將常數(shù)K0對KnY,KnM,KnS,T,C,D軟元件成批復位。這類指令的應用如圖8-71所示173(二)求置1位總和指令該指令的助記符、指令代碼、操作數(shù)范圍、程序步如表8-37所示。表8-37求置ON位總和指令的要素該指令可以對源操作數(shù)S(·)指定元件中置1位求出總和,以二進制碼形式存入目標操作數(shù)D(·)指定的元件中。174X000為ON時,指令對源元件D0中置1位求和為9,并以二進制碼1001存入目標元件D2中。若D0中全為0,D2中也全為零,且0標志M8020動作。若圖8-75中使用的是32位DSUM或DSUMP指令,是將(D1,D0)中32位置1的位求和寫入D2中,與此同時D3全部為0。175(三)ON位(1位)判斷指令該指令的助記符、指令代碼、操作數(shù)范圍、程序步如表8-38所示。表8-38

ON位判斷指令的要素該指令也稱“源元件指定位狀態(tài)判別指令”,可用來判斷源操作數(shù)S(·)指定元件的第n位是否為1?若為1,則使目標操作數(shù)D(·)指定的位元件為ON,否則為OFF。176使用說明:當X000=ON時,指令判斷S(·)指定的元件D10中第15位是否為1?若為1,則M0為ON,否則為OFF。X000變?yōu)镺FF時,M0的狀態(tài)保持不變化。注意:若使用的是16位指令時,n在0~15取值;若使用的是32位指令時,n在0~31取值。177(四)求平均值指令

該指令的助記符、指令代碼、操作數(shù)范圍、程序步如表8-39所示。表8-39平均值指令的要素178平均值指令的使用說明:平均值指令MEAN是對S(·)指定的n個元件中的源操作數(shù)據(jù)求平均值(用n除代數(shù)和)存入目標操作數(shù)D(·)指定的元件中,舍去余數(shù)。如果指令中指定的n超出元件規(guī)定的地址號范圍時,n值自動減小。n在1~64以外時,會發(fā)生錯誤。179(五)標志置位和復位指令指令的助記符、指令代碼、操作數(shù)范圍、程序步如表8-40所示。表8-40標志置位和復位指令的要素180狀態(tài)報警器置位指令可以使信號報警用的狀態(tài)S900~S999中某一個置位,并使狀態(tài)報警器M8048動作的功能。指令使用說明如圖8-78(a),當執(zhí)行條件為ON時,S(·)中指定的定時器T0定時1秒使D(·)指定的狀態(tài)元件S900置位,同時M8048動作,定時器T0復位。以后即使X000或X001為OFF,S900置位的狀態(tài)不變。若X000與X001同時接通不滿1秒變?yōu)镺FF,則定時器T0復位,S900不置位。

181狀態(tài)報警器復位指令可以使多個被置位的報警用狀態(tài)寄存器逐個復位。使用說明如圖8-78(b),每當X003接通一次,則將動作的當前最小地址號的報警狀態(tài)復位。若采用連續(xù)型ANR指令,在X003=ON不變下,指令在每個掃描周期的執(zhí)行中按順序?qū)Ξ斍白钚〉刂诽柕膱缶脿顟B(tài)寄存器復位,直至M8048=OFF。使用時請務必注意。182(六)二進制平方根指令該指令的助記符、指令代碼、操作數(shù)范圍、程序步如表8-41所示。表8-41二進制平方根指令的要素183圖8-79是二進制平方根指令的使用說明:該指令可用于計算二進制數(shù)的平方根。要求S(·)元件中只能是正數(shù),若為負數(shù),錯誤標志M8067動作,指令不執(zhí)行。另外計算結果為舍去小數(shù)取整。舍棄小數(shù)時,借位標志M8021為ON。如果計算結果為0時,零標志M8020動作。184(七)二進制整數(shù)與二進制浮點數(shù)轉(zhuǎn)換指令該指令的助記符、指令代碼、操作數(shù)范圍、程序步如表8-42所示。表8-42二進制整數(shù)與二進制浮點數(shù)轉(zhuǎn)換指令的要素185指令的使用說明如圖8-80,該指令在M8023作用下可實現(xiàn)可逆轉(zhuǎn)換。圖8-80(a)是16位轉(zhuǎn)換指令,若M8023=OFF,當X000接通時,則將源元件D10中的16位二進制整數(shù)轉(zhuǎn)換為二進制浮點數(shù),存入目元件(D13,D12)中;186圖8-80(b)是32位指令,若M8023=ON,則將源元件(D11,D10)中的二進制浮點數(shù)轉(zhuǎn)換為32位二進制整數(shù)(小數(shù)點后的數(shù)舍去)存入(D13,D12)中。FLT指令的逆轉(zhuǎn)換指令是DINT(FNC129,見P273),它可實現(xiàn)二進制浮點數(shù)轉(zhuǎn)換為二進制整數(shù)的操作。187第七節(jié)高速處理指令及應用

高速處理類指令有十條(FNC50~FNC59),它們可以按最新的輸入輸出信息進行程序控制,并能有效利用數(shù)據(jù)高速處理能力進行中斷處理。一、部分高速處理指令說明

配有高速計數(shù)器的可編程序控制器,一般都可以通過編程實現(xiàn)調(diào)節(jié)部分輸入口濾波時間,對一些輸入輸出口進行即時刷新的功能。188(一)輸入輸出刷新指令

該指令的助記符、指令代碼、操作數(shù)、程序步如表8-43。表8-43輸入輸出刷新指令的要素189該指令可以用于在某段程序處理時對指定的輸入口讀取最新數(shù)據(jù)信息或在某一操作結束后立即將結果從指定的輸出口輸出。指令使用說明如圖8-83。圖(a)為輸入刷新,X000=ON時,指令執(zhí)行時對D(·)指定的X010~X017八個輸入點刷新一次。圖(b)為輸出刷新,X001=ON執(zhí)行指令時,對D(·)指定的Y000~Y027的24點輸出刷新一次。使用刷新指令時應注意,指令中D(·)指定的元件首地址必須是10的倍數(shù);刷新點數(shù)n應為8的倍數(shù),否則會出錯。190(二)濾波調(diào)整指令

指令的助記符,指令代碼,操作數(shù)等如表8-44。表8-44濾波調(diào)整指令的要素191PLC的輸入口一般都有10mS的RC濾波器,用于防止輸入接點的振動或操聲對數(shù)據(jù)接收的影響。但是固定的濾波時間對接收外部不同周期的脈沖的準確度是有影響的,因此,F(xiàn)X2N系列PLC的濾波調(diào)整指令具有對X000~X017的輸入濾波器D8020進行濾波時間調(diào)整的功能。需要說明的是:①X000~X017的輸入濾波器設定初值為10ms,可用REFF指令改變?yōu)V波時間,范圍為0~60mS,也可以通過MOV指令改寫D8020濾波時間;②當X000~X017用作高速計數(shù)輸入,或用于速度檢測信號,或用作中斷輸入時,輸入濾波器的時間常數(shù)自動設置為50μs。濾波調(diào)整指令的使用說明如圖8-84。程序中兩次使用了濾波調(diào)整指令,在三段程序中D8020中濾波時間由10ms分別調(diào)整為1mS和20mS。192193(三)高速計數(shù)器比較置位和比較復位指令指令的助記符、指令代碼、操作數(shù)、程序步如表8-46所示。表8-46高速計數(shù)器比較置位和比較復位指令的要素194圖8-86(a)為高速計數(shù)器比較置位指令的梯形圖。指令中S1(·)指定的數(shù)值或元件中數(shù)據(jù)是比較設定值,S2(·)指定的是某個高速計數(shù)器,D(·)指定的元件根據(jù)比較結果進行置位操作。

當指令執(zhí)行時,S2(·)指定的高速計數(shù)器C255的當前值由99變?yōu)?00或由101變?yōu)?00時,Y010立即置1。195圖8-86(b)為高速計數(shù)器比較復位指令的梯形圖。指令中S1(·)指定的數(shù)值或元件中數(shù)據(jù)是比較設定值,S2(·)指定的是某個高速計數(shù)器,D(·)指定的元件根據(jù)比較結果進行復位操作。

當指令執(zhí)行時,S2(·)指定的高速計數(shù)器C255的當前值由199變?yōu)?00或由201變?yōu)?00時Y010立即復位。196需要說明的是:(1)高速計數(shù)器比較置位指令中D(·)可以指定計數(shù)中斷指針,如圖8-87(a)。如果計數(shù)中斷禁止繼電器8059=OFF,圖中S2(·)指定的高速計數(shù)器C255的當前值等于S1(·)的設定值時,執(zhí)行D(·)指定的I010中斷程序。如果M8059=ON,則I010~I060均中斷禁止。197(2)高速計數(shù)器比較復位指令也可以使高速計數(shù)器本身復位。圖8-87(b)是高速計數(shù)器C255循環(huán)計數(shù)到300時,觸點接通,計到400時,高速計數(shù)器比較復位指令使C255立即復位所產(chǎn)生的一系列脈沖的程序和波形。這是高速計數(shù)器采用一般控制和比較復位指令控制相結合,使其觸點依一定的計數(shù)(或時間)要求接通與復位形成脈沖波形的常用方法。198(四)高速計數(shù)器區(qū)間比較指令該指令的助記符、指令代碼、操作數(shù)、程序步如表8-47所示。表8-47高速計數(shù)器區(qū)間比較指令的要素199

溫馨提示

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

評論

0/150

提交評論