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

下載本文檔

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

文檔簡(jiǎn)介

第八章

FX2N系列PLC

應(yīng)用指令及編程方法

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

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

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

與基本指令不同的是,應(yīng)用指令不含表達(dá)梯形圖符號(hào)間相互關(guān)系的成分。而是直接表達(dá)指令要做什么。FX2N系列PLC在梯形圖中一般是使用應(yīng)用框來(lái)表示應(yīng)用指令的。8

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

FX2N系列PLC應(yīng)用指令在FX2型應(yīng)用指令的基礎(chǔ)上,又增加了浮點(diǎn)數(shù)運(yùn)算、觸點(diǎn)形比較及時(shí)鐘應(yīng)用等指令,指令數(shù)量達(dá)到128種298條,列于表8-2中所示。11三、操作數(shù)說明在數(shù)據(jù)處理和運(yùn)算過程中,均要用到相關(guān)寄存器,即數(shù)據(jù)寄存器,變址寄存器,中斷指針和輔助繼電器等。相關(guān)的規(guī)則要掌握,以便正確使用。下面介紹操作數(shù)的修改方法121、數(shù)據(jù)寄存器編號(hào)修改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、輸入/輸出繼電器(八進(jìn)制軟繼電器元件編號(hào))修改K0V3K8V3V3=0:X7-X0Y7-Y0V3=8:X17-X10Y7-Y0V3=16:X27-X20Y7-Y0FNC12MOV(P)K0V3FNC12MOV(P)K8V3X10X11FNC12MOV(P)K16V3X12FNC12MOV(P)K2X0V3K2Y0X13K16V3164、定時(shí)器/計(jì)數(shù)器當(dāng)前值的修改FNC19BINK1X0Z0M8000(X3-X0)BCD(Z0)BINFNC18BCDT0Z0K4Y0BCD轉(zhuǎn)換為二進(jìn)制二進(jìn)制轉(zhuǎn)換為BCD(T0Z0)BIN(Y17-Y0)BCD根據(jù)Z0=0~9,則T0Z0=T0~T9七段碼顯示器輸出Y17-Y0PLC定時(shí)器輸入地址X3~X017第二節(jié)程序流程類應(yīng)用指令及應(yīng)用程序流程類應(yīng)用指令共有十條,指令功能編號(hào)為FNC00~FNC09,它們?cè)诔绦蛑械臈l件執(zhí)行與優(yōu)先處理,主要與順控程序的控制流程有關(guān)。18程序流程類應(yīng)用指令十條FNC00CJ(P)條件跳轉(zhuǎn)FNC01CALL子程序調(diào)用和返回FNC02SRETFNC03IRETFNC04EI中斷返回、中斷允許和中斷禁止FNC05DIFNC06FEND主程序結(jié)束、看門狗定時(shí)器FNC07WDTFNC08FOR循環(huán)指令FNC09NEXT19一、條件跳轉(zhuǎn)指令及應(yīng)用1.條件跳轉(zhuǎn)指令說明該指令的代碼、助記符、操作數(shù)和程序步如表8-3所示。

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

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

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

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

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

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

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

35在設(shè)計(jì)程序的總體結(jié)構(gòu)時(shí),將運(yùn)算為主的程序內(nèi)容做為主程序。加溫及降溫等邏輯控制為主的程序作為兩個(gè)子程序。X010及X011作為子程序的執(zhí)行條件,它們與溫度高低限繼電器連接。36圖8-11溫度控制子程序結(jié)構(gòu)圖在設(shè)計(jì)程序的總體結(jié)構(gòu)時(shí),將運(yùn)算為主的程序內(nèi)容做為主程序。將加溫及降溫等邏輯控制為主的程序作為子程序。X010及X011作為子程序的執(zhí)行條件,它們與溫度高低限繼電器連接。373-2.子程序應(yīng)用實(shí)例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三、中斷指令及其應(yīng)用1.中斷指令說明及其梯形圖表示方法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.用傳送指令實(shí)現(xiàn)電動(dòng)機(jī)的Y/△降壓?jiǎn)?dòng)控制電機(jī)的Y/△降壓?jiǎn)?dòng)主電路路及PLC接線如下圖所示,

I/O點(diǎn)分配如下:

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

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

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

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

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

K2值取

109

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

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

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

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

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

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

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

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

編程實(shí)現(xiàn):

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

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

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

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

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

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

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

該類指令的助記符、指令代碼、操作數(shù)、程序步如表8-31所示。表8-31位移位指令的要素142位移位指令是對(duì)D(·)所指定的n1個(gè)位元件連同S(·)所指定的n2個(gè)位元件的數(shù)據(jù)右移或左移n2位。圖8-64(a)是位右移指令梯形圖:當(dāng)X010=ON時(shí),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í)行時(shí),X000由OFF→ON變化時(shí)指令僅執(zhí)行一次,移n2位;若用連續(xù)型指令執(zhí)行時(shí),移位操作是每個(gè)掃描周期執(zhí)行一次,使用該指令時(shí)應(yīng)注意。144(四)字右移、字左移指令該類指令的助記符、指令代碼、操作數(shù)、程序步如表8-32所示。表8-32字移位指令的要素145字左/右移位指令是對(duì)D(·)所指定的n1個(gè)字元件連同S(·)所指定的n2個(gè)字元件右移或左移n2個(gè)字?jǐn)?shù)據(jù)。圖8-65(a)為WSFR字右移指令的梯形圖及使用說明:146圖8-65(b)為WSFL字左移指令梯形圖及使用說明,原理類同。用脈沖型指令執(zhí)行時(shí),X000由OFF→ON變化時(shí)指令執(zhí)行一次,進(jìn)行n2個(gè)字移位;若用連續(xù)指令執(zhí)行時(shí),移位操作每個(gè)掃描周期將執(zhí)行一次,必須注意。147(五)FIFO寫入/讀出指令

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論