FX2N系列PLC應用指令及編程方法課件_第1頁
FX2N系列PLC應用指令及編程方法課件_第2頁
FX2N系列PLC應用指令及編程方法課件_第3頁
FX2N系列PLC應用指令及編程方法課件_第4頁
FX2N系列PLC應用指令及編程方法課件_第5頁
已閱讀5頁,還剩373頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

FX2N系列PLC應用指令及編程方法

應用指令是可編程控制器數據處理能力的標志。由于數據處理遠比邏輯處理復雜,應用指令無論從梯形圖的表達形式上,還是從涉及的機內器件種類及信息的數量上都有一定的特殊性。

本章介紹FX2N系列可編程控制器的應用指令表示與執行形式、數值處理、分類和編程方法,并給出FX2N系列可編程控制器的應用指令總表。

作為工業控制計算機,PLC僅有基本指令是遠遠不夠的?,F代工業控制在許多場合需要數據處理,因而PLC制造商逐步在PLC中引入應用指令(AppliedInstruction,也有的書稱為功能指令FunctionalInstruction),用于數據的傳送、運算、變換及程序控制等應用。這使得PLC成了真正意義上的計算機。特別是近年來,應用指令又向綜合性方向邁進了一大步,出現了許多一條指令即能實現以往需要大段程序才能完成的某種任務的指令,如PID應用、表應用等。這類指令實際上就是一個個應用完整的子程序,從而大大提高了PLC的實用價值和普及率。FX2N系列PLC是FX系列中高檔次的超小型化、高速、高性能產品,具有128種298條應用指令。分為程序控制、傳送與比較、四則運算與邏輯運算、循環移位、數據處理、高速處理、、便利指令、外部設備I/O處理、浮點操作、時鐘運算、格雷碼轉換、觸點比較等十個類型。由于學時有限,本章將介紹程序控制、傳送與比較、四則運算與邏輯運算、循環移位、數據處理、高速處理、、便利指令、外部設備I/O處理。其它由讀者自學。

FX2N系列PLC應用指令依據應用不同,可分為數據處理類、程序控制類、特種應用類及外部設備類。其中數據處理類指令種類多,數量大、使用頻繁,又可分為傳送比較、四則運算及邏輯運算、移位、編解碼等細目。程序控制類指令主要用于程序的結構及流程控制,含子程序、中斷、跳轉及循環等指令。第一節應用指令的類型及使用要素

特種應用類指令是機器的一些特殊應用,如高速計數器或模仿一些專用機械或專用電氣設備應用的指令等。外部設備類指令含一般的輸入輸出口設備及專用外部設備二大類。專用外部設備是指與主機配接的應用單元及專用通訊單元等。一、應用指令的表示形式、應用與操作

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

圖中M8002的常開觸點是應用指令的執行條件,其后的方框即為應用框。應用框中分欄表示指令的名稱、相關數據或數據的存儲地址。這種表達方式的優點是直觀,稍具有計算機程序知識的人,馬上可以悟出指令的應用意義。圖8-1中指令的應用意義是:當M8002接通時,十進制常數245將被送到數據寄存器D501中去。圖8-1應用指令的梯形圖形式

使用應用指令需注意指令的要素。以加法指令作為說明,圖8-2及表8-1給出了加法指令的表示形式及要素。圖8-2及表8-1中應用指令的使用要素意義如下。(1)應用指令的編號每條應用指令都有一定的編號。在使用簡易編程器的場合,輸入應用指令時,首先輸入的就是應用指令編號。如圖8-2中①所示的就是應用指令編號。(2)助記符應用指令的助記符是該指令的英文縮寫詞。如加法指令“ADDITION”簡寫為ADD。采用這種方式容易了解指令的應用。如圖8-2中②所示。

圖8-2應用指令的表示形式及要素指令名稱指令代碼助記符操作數范圍程序步S1(·)S2(·)D(·)加法FNC20(16/32)ADDADD(P)K、HKnX、KnY、KnM、KnST、C、D、V、Z

KnY、KnM、KnST、C、D、V、Z

ADD、ADDP…7步DADD、DADDP…13步表8-1加法指令的要素

(3)數據長度應用指令依處理數據的長度分為16位指令和32位指令。其中32位指令用(D)表示,無(D)符號的為16位指令。圖8-2中③為數據長度符號。(4)執行形式應用指令有脈沖執行型和連續執行型。指令中標有(P)的為脈沖執行型(如圖8-2中④所示)。脈沖執行型指令在執行條件滿足時僅執行一個掃描周期。這點對數據處理有很重要的意義。比如一條加法指令,在脈沖執行時,只將加數和被加數做一次加法運算。而連續型加法運算指令在執行條件滿足時,每一個掃描周期都要相加一次,使目的操作數內容變化,需要注意的指令在指令標示欄中用“◥”警示,見圖8-2中⑤。

(5)操作數操作數是應用指令涉及或產生的數據。操作數分為源操作數、目標操作數及其他操作數。源操作數是指令執行后不改變其內容的操作數,用[S(·)]表示。目標操作數是指令執行后將改變其內容的操作數,用[D(·)]表示。其他操作數用m與n表示。其他操作數常用來表示常數或者對源操作數和目標操作數作出補充說明。表示常數時,K為十進制,H為十六進制。在一條指令中,源操作數、目標操作數及其他操作數都可能不止一個,也可以一個都沒有。某種操作數較多時,可用標號區別,如[S1(·)]、[S2(·)]。

操作數從根本上來說,是參加運算數據的地址。地址是依元件的類型分布在存儲區中的。由于不同指令對參與操作的元件類型有一定限制,因此操作數的取值就有一定的范圍。正確地選取操作數類型,對正確使用指令有很重要的意義。要想了解這些內容可查閱相關手冊。操作數在圖8-2中見⑥。(6)變址應用操作數可具有變址應用。操作數旁加有“(·)”的即為具有變址應用的操作數。如[S(·)]、[D(·)]等。

(7)程序步數程序步數為執行該指令所需的步數。應用指令的編號和指令助記符占一個程序步,每個操作數占2個或4個程序步(16位操作數是2個程序步,32位操作數是4個程序步)。因此,一般16位指令為7個程序步,32位指令為13個程序步。在了解以上要素以后,就可以通過查閱手冊了解應用指令的用法了。如圖8-2所示的應用指令編號為20、32位加法指令,采用脈沖執行型。當其執行條件X000置1時,數據寄存器D10和D12內的數據相加,結果存入D14中。二、FX-2N系列PLC應用指令分類及匯總

FX2N系列PLC應用指令在FX2型應用指令的基礎上,又增加了浮點數運算、觸點形比較及時鐘應用等指令,指令數量達到128種298條,列于表8-2中所示。在表8-2中,表示各操作數可用元件類型的范圍符號是:B、B’、W1、W2、W3、W4、W1’、W2’、W3’、W4’、W1”、W4”,其表示的范圍如圖8-3所示。

圖8-3操作數可用元件類型的范圍符號

第二節程序流程類應用指令及應用

程序流程類應用指令共有十條,指令功能編號為FNC00~FNC09,它們在程序中的條件執行與優先處理,主要與順控程序的控制流程有關。下面對它們逐一介紹。一、條件跳轉指令及應用1.條件跳轉指令說明該指令的代碼、助記符、操作數和程序步如表8-3所示。表8-3條件跳轉指令要素指令名稱指令代碼位數助記符操作數程序步D(·)條件跳轉FNC00(16)CJCJ(P)P0~P127P63即是END所在步,不需要標記CJ和CJ(P)~3步標號P~1步

跳轉指令在梯形圖中使用的情況如圖8-4所示。圖中跳轉指針P8、P9分別對應CJP8及CJP9二條跳轉指令。圖8-4條件跳轉指令使用說明

2、跳轉程序段中元器件在跳轉執行中的工作狀態 表8-4給出了圖8-4中跳轉發生前后輸入或前序器件狀態發生變化對程序執行結果的影響。從表中可以看到:(1)處于被跳過程序段中的輸出繼電器Y、輔助繼電器M、狀態S由于該段程序不再執行,即使梯形圖中涉及的工作條件發生變化,它們的工作狀態將保持跳轉發生前的狀態不變。

(2)被跳過程序段中的時間繼電器T及計數器C,無論其是否具有掉電保持功能,由于跳過的程序停止執行,它們的現實值寄存器被鎖定,跳轉發生后其計時、計數值保持不變,在跳轉中止,程序繼續執行時,計時計數將繼續進行。另外,計時、計數器的復位指令具有優先權,即使復位指令位于被跳過的程序段中,執行條件滿足時,復位工作也將執行。表8-4跳轉對元器件狀態的影響

3、使用跳轉指令的幾點注意(1)由于跳轉指令具有選擇程序段的功能。在同一程序且位于因跳轉而不會被同時執行程序段中的同一線圈不被視為雙線圈。(2)可以有多條跳轉指令使用同一標號。在圖8-5中,如X020接通,第一條跳轉指令有效,從這一步跳到標號P9。如果X020斷開,而X021接通,則第二條跳轉指令有效,程序從第二條跳轉指令處跳到P9處。但不允許一個跳轉指令對應二個標號的情況存在,即在同一程序中不允許存在二個相同的標號。在編寫跳轉程序的指令表時,標號需占一行。

(3)標號一般設在相關的跳轉指令之后,也可以設在跳轉指令之前,如圖8-6所示。應注意的是,從程序執行順序來看,如果X024接通約200ms以上,造成該程序的執行時間超過了警戒時鐘設定值,會發生監視定時器出錯。(4)使用CJ(P)指令時,跳轉只執行一個掃描周期,但若用輔助繼電器M8000作為跳轉指令的工作條件,跳轉就成為無條件跳轉。

(5)跳轉可用來執行程序初始化工作,如圖8-7所示。在PLC運行的第一個掃描周期中,跳轉CJP7將不執行,程序執行初始化程序則被跨過,不再執行。(6)圖8-8說明了主控區與跳轉指令的關系。4.跳轉指令的應用及實例有時候同一套設備在不同的條件下,需要有兩種工作方式,需運行二套不同的程序時可使用跳轉指令。常見的手動、自動工作狀態的轉換即是這樣一種情況。

圖8-8主控區與跳轉指令關系

圖8-9即為一段手動、自動程序選擇的梯形圖和指令表。圖中輸入繼電器X025為手動/自動轉換開關。當X025置1時,執行自動工作方式,置0時執行手動工作方式。

圖8-9手動/自動轉換程序

二、子程序指令及應用

1.子程序指令的使用說明及其梯形圖表示方法該指令的指令代碼、助記符、操作數、程序步見表8-5表8-5子程序指令使用要素指令名稱指令代碼助記符操作數程序步D(·)子程序調用FNC01(16)CALLCALL(P)指針P0~P62,P64~P127嵌套5級3步(指令標號)1步子程序返回FNC02SRET無可用軟件1步

子程序是為一些特定的控制目的編制的相對獨立的程序。為了區別于主程序,規定在程序編排時,將主程序排在前邊,子程序排在后邊,并以主程序結束指令FEND(FNC06)將這兩部分分隔開。

子程序指令在梯形圖中的表示如圖8-10所示。圖8-10子程序在梯形圖中的表示

2.子程序的執行過程及在程序編制中的意義在圖8-10中,若調用指令改為非脈沖執行指令CALLP10:當X001置1并保持不變時,每當程序執行到該指令時,都轉去執行P10子程序,遇到SRET指令即返回原斷點繼續執行原程序。而在X001置0時,程序的掃描就僅在主程序中進行。子程序的這種執行方式對有多個控制功能需依一定的條件有選擇地實現時,是有重要的意義的。它可以使程序的結構簡潔明了。編程時將這些相對獨立的功能都設置成子程序,而在主程序中再設置一些入口條件實現對這些子程序的控制即可以了。當有多個子程序排列在一起時,標號和最近的一個子程序返回指令構成一個子程序。3.子程序應用實例某化工反應裝置需要完成多液體物料的化合工作,連續生產。使用PLC完成物料的比例投入及送出,并完成反應裝置溫度的控制工作。反應物料的比例投入根據裝置內酸鹼度經運算控制有關閥門的開度實現,反應物的送出依進入物料的量經運算控制出料閥門的開啟程度實現。溫度控制使用加溫及降溫設備。溫度需維持在一個區間內。

在設計程序的總體結構時,將運算為主的程序內容做為主程序。將加溫及降溫等邏輯控制為主的程序作為子程序。子程序的執行條件X010及X011作為溫度高低限繼電器。圖8-11為該程序結構示意圖。圖8-11溫度控制子程序結構圖

三、中斷指令及其應用1.中斷指令說明及其梯形圖表示方法

中斷指令的助記符、指令代碼、操作數、程序步見表8-6表8-6中斷指令使用要素指令名稱指令代碼助記符操作數程序步D中斷返回指令FNC03IRET無1步允許中斷指令FNC04EI無1步禁止中斷指令FNC05DI無1步

中斷是計算機所特有的一種工作方式。指主程序的執行過程中,中斷主程序的執行去執行中斷子程序。和前面所談到過的子程序一樣,中斷子程序也是為某些特定的控制功能而設定的。和普通子程序的不同點是,這些特定的控制功能都有一個共同的特點,即要求響應時間小于機器的中斷源。FX2N系列PLC有三類中斷源,輸入中斷、定時器和計數器中斷。為了區別不同的中斷及在程序中標明中斷子程序的入口,規定了中斷指針標號(在編寫中斷子程序的指令表時,標號需占一行)。FX2N系列PLC中斷指針I的地址編號見前面第六章中表6-20,并且不可重復使用。輸入中斷是信號從輸入端子X000~X005送入而引起的中斷。定時器中斷是機內中斷,使用定時器引出,多用于周期性工作場合。計數器中斷是利用機內高速計數器的比較結果,引起中斷的。由于中斷的控制是脫離于程序的掃描執行機制的,多個突發事件出現時處理也必須有個秩序,這就是中斷優先權。FX2N系列PLC一共可安排15個中斷,其優先權由中斷號的大小決定,號數小的中斷優先權高。由于外部中斷號整體上高于定時器中斷。即外部中斷的優先權較高。

中斷子程序是為一些特定的隨機事件而設計的。在主程序執行中,允許中斷指令EI與不允許中斷指令DI指令之間為中斷程序段。如在程序的任何地方都可以響應中斷,稱為全程中斷。PLC根據中斷程序段中工作性質決定是否響應中斷子程序。如果機器安排的中斷子程序比較多,而這些中斷子程序又不一定需要同時響應時,可以由特殊輔助繼電器M8050~M8059實現輸入,定時,計數中斷子程序的選擇,M8050~M8059與15個中斷指針的對應關系如表8-7所示。機器規定,當M8050~M8059被置1時,其對應的中斷被封鎖;反之被置0時,對應的中斷允許。表8-7特殊輔助繼電器與中斷對應關系

中斷指令的梯形圖表示如圖8-12所示。從圖中可以看出,中斷程序作為一種子程序安排在主程序結束指令FEND之后。主程序中EI及DI的區間表示可以開放中斷的程序段。主程序帶有多個中斷子程序時,中斷標號和與其最近的一處中斷返回指令構成一個中斷子程序。FX2N型可編程控制器可實現不多于二級的中斷嵌套。另外,一次中斷請求,中斷程序一般僅能執行一次。圖8-12中斷指令在梯形圖中的表示

2.中斷指令的執行過程及應用實例(1)外部中斷子程序

外部中斷常用來引入發生頻率高于機器掃描頻率的外控制信號,或用于處理那些需快速響應的信號。比如,在可控整流裝置的控制中,取自同步變壓器的觸發同步信號可經專用輸入端子引入可編程控制器作為中斷源,并以此信號作為移相角的計算起點。圖8-13是外部輸入中斷指令的梯形圖。圖8-13外部輸入中斷子程序*

(2)時間中斷子程序

圖8-14為一段試驗性質的時間中斷子程序。中斷標號I610的中斷序號為6,時間周期為10ms的定時器中斷。從梯形圖的程序來看,每執行一次中斷程序將向數據存儲器D0中加1,當加到1000時,M2為ON使Y002置1,為了驗證中斷程序執行的正確性,在主程序段中設有時間繼電器T0,設定值為100,并用此時間繼電器控制輸出端Y001,這樣當X001由ON由變為OFF并經歷10S后,Y001及Y002應同時置1。

圖8-15是FX2N系列PLC斜坡輸出編程中使用時間中斷的例子。斜坡輸出指令RAMP是用于產生線性變化的模擬量輸出的指令,在電機等設備的軟起動控制中很有用處。該指令源操作數D1為斜坡初值,D2為斜坡終了值,D3為斜坡數據存儲單元。操作數K1000是從初值到終值需經過的指令操作次數。該指令如不采取中斷控制方式,從初值到終值的時間及變化速率要受到掃描周期的影響。因此使用標號I610時間中斷程序,D3中數值的變化時間及變化的線性就有了保障。(3)計數器中斷子程序根據可編程控制器內部的高速計數器的比較結果,執行中斷子程序。用于優先控制利用高速計數器的計數結果。計數器中斷指針I0□0(□=1~6)是利用高速計數的當前值進行中斷,要與比較置位指令FNC53(HSCS)組合使用,如圖8-16所示。以上討論的中斷用指針的動作會受到機內特殊輔助繼電器M8050~M8059的控制,它們若接通,則中斷禁止。例如,M8059接通,計數器中斷全禁止。圖8-16高速計數器中斷動作示意圖

四、主程序結束和監視定時器刷新指令1.主程序結束指令說明及其梯形圖表示方法

中斷指令的助記符、指令代碼、操作數、程序步見表8-8表8-8主程序結束指令使用要素指令名稱指令代碼助記符操作數程序步D主程序結束指令FNC06FEND無1步

該指令表示主程序結束。一般情況下,FEND指令的執行與END指令一樣,進行輸出、輸入處理,監視定時器的刷新之后,返回0步的程序。圖8-17是FEND指令的應用舉例。在多次使用FEND指令的場合,在最后的FEND指令與END指令之間對子程序和中斷子程序編程,并一定要有返回指令。

圖8-17主程序結束指令的應用*2.監視定時器刷新指令說明及其梯形圖表示方法

指令的助記符、指令代碼、操作數、程序步見表8-9表8-9監視定時器指令使用要素指令名稱指令代碼助記符操作數程序步D監視定時器刷新WATCHDOGTIMERFNC07WDTWDT(P)無1步

WDT指令是順控程序中執行監視定時器刷新的指令。它有脈沖執行型和連續執行型兩種形式,它們的執行過程如圖8-18所示。

在PLC的運算周期(0~END或FEND指令執行時間)超過200ms時,PLC的CPU—ELED發光二極管燈亮,停機。因此可在程序的中途插入使用。如圖8-19所示。另外,在使用模擬、定位、M—NET/MINI用的接口單元的情況下,PLC運算后,需要將這些特殊單元、電路塊內的緩沖存儲區初始化,這時在連接的特殊單元與電路塊較多的情況下,初始化時間會過長,產生WDT錯誤,因此也要象圖8-19那樣,在程序中的初始步附近進行監視定時器的刷新。WDT指令也可以用于跳轉子程序和循環子程序中進行編程。監視定時器指令也可以改變監視定時器的時間設定。圖8-20所示是通過順序程序改變其值,監視定時器時間更新應在WDT指令不編入程序的情況下,END處理時,D8000值才有效。監視定時器時間最大可設置到32,767ms,若設置該值,其結果變為運算異常的檢測計時延遲。因此,在運行不出現故障的情況下,一般設定初值為200ms。五、程序循環指令及應用1.程序循環指令的要素及梯形圖表示

該指令的助記符、指令代碼、操作數、程序步見表8-10。表8-10程序循環指令要素指令名稱指令代碼助記符操作數程序步S循環開始指令FNC08(16)FORK、H、KnX、KnYKnM、KnS、T、CD、V、Z3步(嵌套5層)循環結束指令FNC09NEXT無1步循環指令由FOR及NEXT二條指令構成,這二條指令總是成對出現的。如梯形圖8-21所示。

圖8-21循環指令使用說明*2.循環程序的意義及應用 循環指令用于某種操作需反復進行的場合。如對某一取樣數據做一定次數的加權運算,控制輸出口依一定的規律做重復的輸出動作或利用重復的加減運算完成一定量的增加或減少,或利用重復的乘除運算完成一定量的數據移位。循環程序可以使程序簡明扼要,增加編程的方便,提高程序執行效率。六、程序控制指令與程序結構

程序是由一條條的指令組成的,一定的指令集合總是完成一定的功能。當功能控制要求復雜,程序變的龐大時,就要求將一定功能的指令塊合理地組織起來,這就是程序的結構。

程序結構應具有方便程序的編寫,有利于閱讀理解程序。好的程序結構,能使PLC的運行效率提高。常見的程序結構類型有以下幾種。1、簡單結構這是小程序的常用結構,也叫作線性結構。指令平鋪直述地寫下來或執行。程序中也會分一些段。簡單結構的特點是每個掃描周期中每一條指令都要被掃描。2、有跳越及循環的簡單結構

由控制要求出發,程序需要有選擇地執行時采用跳轉指令。如自動、手動程序段的選擇,初始化程序段和工作程序段的選擇。這時在某個掃描周期中就不一定全部指令被掃描到了,而是有選擇的執行,被跳過的指令不被掃描。循環也是這樣.

3、組織模塊式結構

組織模塊式結構的程序則存在并列結構。組織模塊式程序可分為組織塊、功能塊、數據塊。組織塊專門解決程序流程問題,常作為主程序。功能塊則獨立地解決局部的,單一的功能,相當于一個個的子程序。數據塊則是程序所需的各種數據的集合。在這里,多個功能塊和多個數據塊相對組織塊來說是并列的程序塊。前邊討論過的子程序指令及中斷程序指令常用來編制組織模塊式結構的程序。組織模塊式程序結構為編程提供了清晰的思路。各程序塊的功能不同,編程時就可以集中精力解決局部問題。組織塊主要解決程序的入口控制,子程序完成單一的功能,程序的編制無疑得到了簡化。當然作為組織塊中的主程序和作為功能塊的子程序,也還是簡單結構的程序。不過并不是簡單結構的程序就可以簡單地堆積而不考慮指令排列的次序,PLC的串行工作方式使得程序的執行順序和執行結果有十分密切的聯系,這在任何時候的編程中都是重要的。與先進編程思想相關的另一種程序結構是結構化編程結構。它特別適合具有許多同類控制對象的龐大控制系統,這些同類控制對象具有相同的控制方式及不同的控制參數。編程時先針對某種控制對象編出通用的控制方式程序,在程序的不同程序段中調用這些控制方式程序時再賦予所需的參數值。結構化編程有利于多人協作的程序組織,有利于程序的調試。

第三節傳送、比較類應用指令及應用

FX2N系列可編程控制器數據傳送、比較類指令包含有比較指令、區間比較指令、傳送與移位傳送指令、取反指令、塊傳送指令、多點傳送指令、數據交換指令、BCD交換指令、BIN交換指令共十條,是數據處理類程序中使用十分頻繁的指令。本節介紹傳送和比較類指令的使用方法及應用,并給出一些應用實例。一、傳送和比較類指令說明(一)比較指令

該指令的助記符、指令代碼、操作數范圍、程序步如表8-11所示。表8-11比較指令的要素

指令名稱指令代碼位數助記符操作數范圍程序步S1(·)S2(·)D(·)比較FNC10(16/32)

CMPCMP(P)

K、H、

KnX、KnY、KnM、

KnS、T、C、D、V、ZY、M、SCMP、CMPP…7步DCMP、DCMPP…13步

比較指令CMP是將源操作數S1(·)與S2(·)的數據進行比較,在其大小一致時,目標操作數D(·)動作,如圖8-22所示。數據比較是進行代數值大小比較(即帶符號比較)。所有的源數據均按二進制處理。當比較指令的操作數不完整(若只指定一個或兩個操作數),或者指定的操作數不符合要求(例如把X、D、T、C指定為目標操作數),或者指定的操作數的元件號超出了允許范圍等情況,用比較指令就會出錯。目標軟元件指定M0時,M0、M1、M2自動被占用。圖8-22CMP指令使用說明

如要清除比較結果,要采用復位RST指令。如圖8-23。

圖8-23比較結果復位

(二)區間比較指令

該指令的助記符、指令代碼、操作數范圍、程序步如表8-12所示。表8-12區間比較指令的要素指令名稱指令代碼及位數助記符操作數范圍程序步S1(·)/S2(·)/S(·)D(·)區間比較FNC11(16/32)ZCPZCP(P)K、H、KnX、KnY、KnM、KnS、T、C、D、V、ZY、M、SZCP、ZCPP…9步DZCP、DZCPP…17步

圖8-24是區間比較指令ZCP的使用說明。

該指令是將S(·)數據與上、下兩個源數據S1(·)和S2(·)間的數據進行代數比較(即帶符號比較),在其比較的范圍內對應目標操作數中M3、M4、M5軟元件動作。要求S1(·)≤S2(·),若S1(·)>S2(·),則S2(·)則被看作與S1(·)一樣大,例如在S1(·)=K100,S2(·)=K90時,則S2(·)當作K100進行運算。

在X000斷開時,即使ZCP指令不執行,M3~M5保持X000斷開前的狀態。

圖8-24區間比較指令的使用說明

在不執行指令清除比較結果時,可采用圖8-23進行比較結果復位。

(三)傳送指令1.傳送指令說明及梯形圖表示方法

該指令的助記符、指令代碼、操作數范圍、程序步如表8-13所示。表8-13傳送指令的要素指令名稱指令代碼位數助記符操作數范圍程序步S1(·)D(·)傳送FNC12(16/32)MOVMOV(P)K、HKnX、KnY、KnM、KnST、C、D、V、ZKnX、KnM、KnST、C、D、V、ZMOV、MOVP…5步DMOV、DMOVP…9步

傳送指令MOV的使用說明如圖8-25。當X000=ON時,源操作數S(·)中的常數K100傳送到目標操作軟元件D10中。當指令執行時,常數K100自動轉換成二進制數。當X000斷開,指令不執行時,D10中數據保持不變。圖8-25傳送指令的使用說明

2.指令的應用舉例(1)定時器、計數器當前值讀出,如圖8-26。圖中,X001=ON時,(T1當前值)→(D21)。(2)如圖8-27是定時器、計數器設定值的間接指定。在圖中,X002=ON時,K100→(D10),(D10)中的數值作為T20的時間設定常數,定時器延時10S。

(3)位軟元件的傳送,可用圖8-28中右圖MOV指令來表示左圖的順控程序。

(4)圖8-29是32位數據的傳送。DMOV指令常用于運算結果以32位傳送的應用指令(如MUL等)以及32位的數值或32位的高速計數器的當前值等的傳送。

(四)移位傳送指令1.移位傳送指令說明及梯形圖表示方法

該指令的助記符、指令代碼、操作數范圍、程序步如表8-14所示。圖8-14移位傳送指令的要素指令名稱指令代碼位數助記符操作數范圍程序步S(·)m1m2D(·)n塊傳送FNC13(16)SMOVSMOV(P)KnX、KnY、KnM、KnS、T、C、D、V、ZK、H=1~4K、H=1~4KnY、KnM、KnS、T、C、D、V、ZK、H=1~4SMOV、SMOVP…11步

SMOV指令是進行數據分配與合成的指令。該指令是將源操作數中二進制(BIN)碼自動轉換為BCD碼,按源操作數中指定的起始位號m1和移位的位數m2向目標操作數中指定的起始位n進行移位傳送,目標操作數中未被移位傳送的BCD位,數值不變,然后再自動轉換成二進制(BIN)碼,如圖8-30所示。

源操作數為負以及BCD碼的值超過9,999都將出現錯誤.

圖8-30移位傳送指令的使用和移位說明

2.移位傳送指令應用

(1)圖8-31是三位BCD碼數字開關與不連續的輸入端連接實現數據的組合。

(五)取反指令

取反指令的助記符、指令代碼、操作數范圍、程序步如表8-15所示。表8-15取反指令的要素指令名稱指令代碼位數助記符操作數范圍程序步S(·)D(·)取反FNC14(16/32)CMLCML(P)K、H、KnX、KnY、KnM、KnS、T、C、D、V、ZKnY、KnM、KnS、T、C、D、V、ZCML、CMLP…5步DCMLP、DCMLP…9步

該指令的使用說明如圖8-32,其功能是將源數據的各位取反(0→1,1→0)向目標傳送。若將常數K用于源數據,則自動進行二進制變換。常用于希望PLC輸出的邏輯進行取反輸出的情況。(六)塊傳送指令

該指令的助記符、指令代碼、操作數范圍、程序步如表8-16所示。表8-16塊傳送指令的要素

指令名稱指令代碼位數助記符操作數范圍程序步S(·)D(·)n塊傳送FNC15(16)BMOVBMOV(P)KnX、KnY、KnM、KnS、T、C、DKnY、KnM、KnST、C、DK、H≤512BMOV、BMOVP…7步

BMOV指令是從源操作數指定的軟元件開始的n點數據傳送到指定的目標操作數開始的n點軟元件,如果元件號超出允許的元件號范圍,數據僅傳送到允許的范圍內,如圖8-33所示。圖8-33塊傳送指令的使用說明之一

在具有位指定的位元件的場合,源與目標要采用相同的位數,如圖8-34所示。在傳送的源與目標地址號范圍重疊的場合,為了防止源數據沒有傳送就被改寫,PLC自動確定傳送順序,如圖8-35中的①~③順序。

利用BMOV指令在M8024傳送方向控制下可以讀寫文件寄存器(D1000~D7999)中的數據,如圖8-36所示。(七)多點傳送指令該指令的助記符、指令代碼、操作數范圍、程序步如表8-17所示。表8-17多點傳送指令的要素指令名稱指令代碼位數助記符操作數范圍程序步S(·)D(·)n多點傳送FNC16(16)FMOVFMOV(P)K、HKnX、KnY、KnM、KnST、C、D、V、ZKnX、KnM、KnST、C、DK、H≤512FMOV、FMOVP…7步DFMOV、DFMOVP…13步FMOV指令是將源操作數指定的軟元件的內容向以目標操作數指定的起始軟元件的n點軟元件傳送,n點軟元件的內容都一樣。例如,在圖8-37中,當X000=ON時,K10傳送到D1~D5中。

如果目標操作數指定的軟元件號超出允許的元件號范圍,數據僅傳送到允許的范圍內。圖8-37多點傳送使用說明

(八)數據交換指令該指令的助記符、指令代碼、操作數范圍、程序步如表8-18所示。表8-18數據交換指令的要素指令名稱指令代碼位數助記符操作數范圍程序步D1(·)D2(·)數據交換FNC17(16/32)XCHXCH(P)KnY、KnM、KnST、C、D、V、ZKnY、KnM、KnST、C、D、V、ZXCH、XCHP…5步DXCH、DXCHP…9步XCH指令是在指定的目標軟元件間進行數據交換。使用說明如圖8-38所示。在指令執行前,目標元件D10和D11中的數據分別為100和130;當X000=ON,數據交換指令XCH執行后,目標元件D10和D11中的數據分別為130和100。即D10和D11中的數據進行了交換。若要實現高八位與低八位數據交換,可采用高、低位交換特殊繼電器M8160來實現。如圖8-39所示。當M8160接通,當目標元件為同一地址號時(不同地址號,錯誤標號繼電器M8067接通,不執行指令),16位數據進行高8位與低8位的交換;如果是32位指令亦相同,實現這種功能與高低位字節交換指令FNC147(SWAP)功能相同,建議采用FNC147(SWAP)指令較方便。

(九)BCD碼轉換指令該指令的助記符、指令代碼、操作數范圍、程序步如表8-19所示。表8-19BCD交換指令的要素指令名稱指令代碼位數助記符操作數范圍程序步S·D(·)BCD轉換FNC18◥(16/32)BCDBCD(P)KnX、KnY、KnM、KnST、C、D、V、ZKnY、KnM、KnST、C、D、V、ZBCD、BCDP…5步DBCD、DBCDP…9步BCD轉換指令是將源元件中的二進制數轉換成BCD碼送到目標元件。BCD轉換指令的說明如圖8-40所示。當X000=ON時,源元件D12中的二進制數轉換成BCD碼送到目標元件Y000~Y007中,可用于驅動七段顯示器。圖8-40BCD變換指令使用說明如果是16位操作,轉換的BCD碼若超出0~9999范圍,將會出錯;如果是32位操作,轉換結果超出0~99999999的范圍,將會出錯。轉換BCD指令可用于PLC內的二進制數據變為七段顯示等需要用BCD碼向外部輸出的場合。

(十)BIN轉換指令 該指令的助記符、指令代碼、操作數范圍、程序步如表8-20所示。表8-20BIN轉換指令的要素指令名稱助記符指令代碼位數操作數范圍程序步S·D(·)BIN變換BINBIN(P)FNC19(16/32)KnX、KnY、KnM、KnST、C、D、V、ZKnY、KnM、KnST、C、D、V、ZBIN、BINP…5步DBIN、DBINP…9步BIN轉換指令是將源元件中BCD碼轉換成二進制數送到目標元件中。源數據范圍:16位操作為0~9999;32位操作為0~99999999。BIN轉換指令的使用如圖8-41所示。當X010=ON時,源元件X000~X007中BCD碼轉換成二進制數送到目標元件D12中去。

如果源數據不是BCD碼時,M8067為ON(運算錯誤),M8068(運算錯誤鎖存)為OFF,不工作。

圖8-42是用七段顯示器顯示數字開關輸入PLC中的BCD碼數據。在采用BCD碼的數字開關向PLC輸入,要用FNC19(BCD→BIN)轉換指令;欲要輸出BCD碼到七段顯示器時,應采用FNC18(BIN→BCD)轉換傳送指令。二、傳送比較類指令的基本用途及應用實例

傳送比較指令,特別是傳送指令,是應用指令中使用最頻繁的指令。下面討論其基本用途。(一)傳送比較指令的基本用途1.

用以獲得程序的初始工作數據一個控制程序總是需要初始數據。初始數據獲得的方法很多,例如,可以從輸入端口上連接的外部器件,使用傳送指令讀取這些器件上的數據并送到內部單元;也可以采取程序設置,即向內部單元傳送立即數;也可以在程序開始運行時,通過初始化程序將存儲在機內某個地方的一些運算數據傳送到工作單元,等等。2、

機內數據的存取管理在數據運算過程中,機內的數據傳送是不可缺少的。運算可能要涉及不同的工作單元,數據需在它們之間傳送;運算可能會產生一些中間數據,這需要傳送到適當的地方暫時存放;有時機內的數據需要備份保存,這要找地方把這些數據存儲妥當??傊?,對一個涉及數據運算的程序,數據存取管理是很重要的。此外,二進制和BCD碼的轉換在數據存取管理中也是很重要的。3、運算處理結果向輸出端口傳送運算處理結果總是需要通過輸出來實現對執行器件的控制,或者輸出數據用于顯示,或者作為其他設備的工作數據,對于輸出口連接的離散執行器件,可成組處理后看作是整體的數據單元,按各口的目標狀態送入一定的數據,可實現對這些器件的控制。4、比較指令用于建立控制點控制現場常常需要將某個物理量的量值或變化區間作為控制點的情況。如溫度低于多少度就打開電熱器,速度高于或低于一個區間就報警等。比較指令作為一個控制“閥門”,常出現在工業控制程序中。(二)傳送比較指令應用舉例1.用程序構成一個閃光信號燈,改變輸入口的置數開關可以改變閃光頻率。(即信號燈亮t秒,熄t秒)。設定開關4個,分別接于X000~X003,X010為啟停開關,信號燈接于Y000。

梯形圖如圖8-43所示。圖中第一行為變址寄存器清零,上電時完成。第二行從輸入口讀入設定開關數據,變址綜合后的數據(K8+Z)送到寄存器D0中,作為定時器T0的設定值,并和第三行配合產生D0時間間隔的脈沖。2.電動機的Y/△啟動控制

電動機的Y/△啟動控制主電路如書中P43圖2-10,

設依電機Y/△啟動控制要求,電動機Y形啟動時應Y000、Y001為ON(傳送常數為1+2=3),當轉速上升到一定值時,斷開Y000、Y001,接通Y002(傳送常數為4),電動機△形運行時接通Y000、Y002(傳送常數為1+4=5).停止時,應傳送常數為0。另外,啟動過程中的每個狀態間應有時間間隔。本例使用向輸出端口送數的方式實現控制。梯形圖如圖8-44所示。上述傳送指令的應用,比起用基本指令進行程序設計有了較大簡化。3.密碼鎖用比較器構成密碼鎖系統,密碼鎖有12個按鈕,分別接入X000~X013,其中X000~X003代表第一個十六進制數;X004~X007代表第二個十六進制數;X010~X013代表第三個十六進制數。根據設計,按四次密碼,每個密碼同時按四個鍵,分別代表三個十六進制數,,如密碼與設定值都相符合,5秒后,可開啟鎖。20秒后,重新鎖定。密碼鎖的密碼可由程序設定。假定密碼設定的四個數為H2A3、H1E、H151、H18A,則從K3X000送入的數據應分別和它們相等,用比較指令進行判斷,梯形圖如圖8-45所示。以上所用十二鍵排列組合設計的密碼鎖,具有較高的實用性。5.外置數計數器

PLC中計數器的設定值通常是由程序設定的,在一些工業控制場合,希望計數器設定值能在程序外由操作人員根據工藝要求臨時設定,這就需要一種外置數計數器,圖8-46就是這樣一種計數器的梯形圖程序。在圖8-46中,二位撥碼開關接于X000~X007,通過它們可以根據要求在99以下設定值;X010為計數脈沖源輸入端;X011為啟停開關。C10計數值是否與外部撥碼開關設定值一致,是借助比較指令實現的。須注意的是,撥碼開關送入的值為BCD碼,要用二進制轉換指令進行數制的轉換。因為比較操作只對二進制數有效。6.簡易定時報時器應用計數器與比較指令,構成24h可設定定時時間的定時控制器,梯形圖如圖8-47所示。X000為啟停開關;X001為15min快速調整與試驗開關,每15min為一設定單位,24小時共96個時間單位;X002為格數設定的快速調整與試驗開關。時間設定值為鐘點數×4。若定時控制器作如下控制:①早上6點半,電鈴(Y000)每秒響一次,響六次后自動停止。②9:00~17:00,啟動住宅報警系統(Y001)。③晚上6點開園內照明(Y002接通)。④晚上10點關園內照明(Y002斷開)。使用時,在0:00時啟動定時器。圖8-47定時控制器梯形圖及說明*

第四節算術及邏輯運算指令及應用

一、算術及邏輯運算指令的使用說明

算術及邏輯運算指令是基本運算指令,可完成四則運算或邏輯運算,可通過運算實現數據的傳送、變位及其他控制功能??删幊炭刂破饔姓麛邓膭t運算和實數四則運算兩種,前者指令較簡單,參加運算的數據只能是整數。而實數運算是浮點運算,是一種高精確度的運算。FX2N系列PLC除有BIN的整數運算指令之外,還具有BIN浮點運算的專用四則運算指令。

(一)二進制加法指令該指令的助記符、指令代碼、操作數、程序步如表8-21所示。表8-21加法指令的要素

ADD加法指令是將指定的源元件中的二進制數相加,結果送到指定的目標元件中去。ADD加法指令的使用說明如圖8-48所示。

ADD加法指令有3個常用標志輔助寄存:

M8020為零標志,若運算結果為0,則M8020=1;

M8021借位標志,若運算結果小于-32767(16位)或-2147483647(32位),則M8021=1。

M8022為進位標志,如果運算結果超過32767(16位)或2147483647(32位)則M8022=1;在32位運算中,被指定的起始字元件是低16位元件,約定下一個字元件則為高16位元件,如D0(D1)。

源和目標可以用相同的元件號。若源和目標元件號相同而采用連續執行的ADD、(D)ADD指令時,加法的結果在每個掃描周期都會改變。(二)二進制減法指令該指令的助記符、指令代碼、操作數、程序步如表8-22所示。表8-22二進制減法指令的要素指令名稱指令代碼位數助記符操作數范圍程序步S1(·)S2(·)D(·)減法FNC21(16/32)SUBSUB(P)K.H、KnX、KnY、KnM、KnS、T、C、D、V、ZKnY、KnM、KnS、T、C、D、V、ZSUB、SUBP…7步DSUB.DSUBP…13步

SUB減法指令是將指定的源元件中的二進制數相減,結果送到指定的目標元件中去。SUB減法指令的說明如圖8-50所示。

各種標志的動作、32位運算中軟元件的指定方法、連續執行型和脈沖執行型的差異等均與上述加法指令相同。

(三)二進制乘法指令

該指令的助記符、指令代碼、操作數、程序步如表8-22所示。表8-22二進制乘法指令的要素指令名稱指令代碼位數助記符操作數范圍程序步S1(·)S2(·)D(·)乘法FNC22(16/32)MULMUL(P)K.H、KnX、KnY、KnM、KnS、T、C、D、ZKnY、KnM、KnS、T、C、D、(Z)限16位MUL、MULP…7步DMUL、DMULP…13步

MUL乘法指令是將指定的源元件中的二進制數相乘,結果送到指定的目標元件中去。MUL乘法指令使用說明如圖8-52所示。它分16位和32位兩種運算情況。

如將位組合元件用于目標操作數時,限于K的取值,只能得到低位32位的結果,不能得到高位32位的結果。這時,應將數據移入字元件再進行計算。用字元件作目標操作數時,也不能對作為運算結果的64位數據進行成批監視,在這種場合下,建議采用浮點運算。Z不能在32位運算中作為目標元件的指定,只能在16位運算中作為目標元件的指定。(四)二進制除法指令

該指令的助記符、指令代碼、操作數、程序步如表8-23所示。表8-23二進制除法指令的要素指令名稱指令代碼位數助記符操作數范圍程序步S1(·)S2(·)D(·)除法FNC23(16/32)DIVDIV(P)K、H、KnX、KnY、KnM、KnS、T、C、D、ZKnY、KnM、KnS、T、C、D、(Z)限16位DIV、DIVP…7步DDIV、DDIVP…13步DIV除法指令是將指定的源元件中的二進制數相除,S1(·)為被除數,S2(·)為除數,商送到指定的目標元件D(·)中去,余數送到目標元件D(·)+1的元件中。DIV除法指令使用說明如圖8-53所示,它也分16位和32位兩種運算情況。(五)二進制加1指令

該指令的助記符、指令代碼、操作數、程序步如表8-24所示。表8-24加1指令的要素指令名稱指令代碼位數助記符操作數范圍程序步D(·)加1FNC24(16/32)INCINC(P)KnY、KnM、KnST、C、D、V、ZINC、INCP…3步DINC、DINCP…5步

加1指令說明如圖8-54所示。當X000由OFF→ON變化時,由D(·)指定的元件D10中的二進制數自動加1。圖8-54加1指令使用說明若用連續指令時,每個掃描周期都加1。16位運算時,+32767再加上1則變為-32768,但標志位不動作。同樣,在32位運算時,+2147483647再加1就變為-2147483647,標志位不動作。(六)二進制減1指令

該指令的助記符、指令代碼、操作數、程序步如表8-25所示。表8-25二進制減1指令的要素指令名稱指令代碼位數助記符操作數范圍程序步D(·)減1FNC25(16/32)DECDEC(P)KnY、KnM、KnST、C、D、V、ZDEC、DECP…3步DDEC、DDECP…5步減1指令的使用說明如圖8-55所示,當X001由OFF→ON變化時,由D(·)指定的元件D10中的二進制數自動減1。圖8-55二進制減1指令使用說明若用連續指令時,每個掃描周期都減1。在16位運算時,-32768再減1就變為+32767,但標志位不動作。同樣,在32位運算時,-2147483648再減1就變為+2147483647,標志位不動作。(七)邏輯字與、或、異或指令

邏輯字與、或、異或指令的助記符、指令代碼、操作數、程序步如表8-26所示。

圖8-56邏輯字與、或、異或指令使用說明*

指令名稱指令代碼位數助記符操作數范圍程序步S1(·)S2(·)D(·)邏輯字與FNC26(16/32)ANDAND(P)K、H、KnX、KnY、KnM、KnS、T、C、D、V、ZKnY、KnM、KnST、C、D、V、ZWAND、WANDP…7步DANDC、DANDP…13步邏輯字或FNC27(16/32)OROR(P)WOR、WORP…7步DORC、DORP…13步邏輯字異或FNC28(16/32)XORXOR(P)WXOR、WXORP…7步DXORC、DXORP…13步表8-26邏輯字與、或、異或指令的要素

(八)求補碼指令

該指令的助記符、指令代碼、操作數、程序步如表8-27所示。表8-27求補碼指令的要素指令名稱指令代碼位數助記符操作數范圍程序步D(·)求補碼FNC29(16/32)NEGNEG(P)KnY、KnM、KnST、C、D、V、ZNEG、NEGP…3步DNEG、DNEGP…5步

求補指令僅對負數求補碼,其使用說明如圖8-57所示,當X000由OFF→ON變化時,由D(·)指定的元件D10中的二進制負數按位取反后最低位加1,求得的補碼存入原來的D10內。圖8-57求補碼指令的使用說明

若使用的是連續指令時,則在各個掃描周期都執行求補運算。

二、算術及邏輯運算指令應用實例(一)四則運算式的實現編程實現:算式的運算。式中“X”代表輸入端口K2X000送入的二進制數,運算結果送輸出口K2Y000;X020為啟停開關。其程序梯形圖如圖8-58所示。(二)彩燈正序亮至全亮、反序熄至全熄再循環控制實現彩燈控制功能可采用加1、減1指令及變址寄存器Z來完成的。彩燈有12盞,各彩燈狀態變化的時間單位為1s,用秒時鐘M8013實現。梯形圖見圖8-59,圖中X001為彩燈控制開關,X001=OFF時,禁止輸出繼電器M8034=1,使12個輸出Y000~Y014為OFF。M1為正、反序控制。

(三)利用乘除運算指令實現移位(掃描)控制

采用乘除法指令實現燈組的移位循環。有一組燈15個接于Y000~Y016,要求:當X000為ON,燈正序每隔1S單個移位,并循環;當X001為ON且Y000為OFF時,燈反序每隔1S單個移位,直至Y000為ON,停止。梯形圖如圖8-60所示,該程序是利用乘2、除2實現目標數據中“1”移位的。(四)指示燈的測試電路

某機場裝有十二盞指示燈,用于各種場合的指示,接于K4Y000。一般情況下總是有的指示燈是亮的,有的指示燈是滅的。但機場有時候需將燈全部打開,也有時需將燈全部關閉。

現需設計一種電路,用一只開關打開所有的燈,用另一只開關熄滅所有的燈。十二盞指示燈在K4Y000的分布如圖8-61(a)所示。梯形圖如圖8-61(b)。程序是采用邏輯控制指令來完成這一功能的。先為所有的指示燈設一個狀態字,隨時將各指示燈的狀態存入。再設一個開燈字,一個熄燈字。開燈字內置1的位和燈在K4Y000中的排列順序相同。熄燈字內置0的位和K4Y000中燈的位置相同。開燈時將開燈字和燈的狀態字相“或”,滅燈時將熄燈字和燈的狀態字相“與”,即可實現控制功能的要求。

第五節循環與移位指令及其應用

FX2N系列PLC循環與移位指令有循環移位、位移位、字移位及先入先出FIFO指令等十種,其中循環移位分為帶進位循環及不帶進位的循環。位或字移位有左移和右移之分。FIFO分為寫入和讀出。從指令的功能來說,循環移位是指數據在本字節或雙字內的移位,是一種環形移動。而非循環移位是線性的移位,數據移出部分將丟失,移入部分從其他數據獲得。移位指令可用于數據的2倍乘處理,形成新數據,或形成某種控制開關。字移位和位移位不同,它可用于字數據在存儲空間中的位置調整等功能。先入先出FIFO指令可用于數據的管理。一、循環與移位控制類指令說明(一)循環右移和循環左移指令

該類指令的助記符、指令代碼、操作數、程序步如表8-28所示。表8-28循環右移、左移指令的要素指令名稱指令代碼位數助記符操作數范圍程序步D(·)n循環右移FNC30◥(16/32)RORROR(P)KnY、KnM、KnST、C、D、V、ZK、H移位量n≤16(16位)n≤32(32位)ROR、RORP…5步DROR、DRORP…9步循環左移FNC31◥(16/32)ROLROL(P)ROL、ROLP…5步DROL、DROLP…9步圖8-62循環移位指令使用說明*

(二)帶進位循環右移、左移指令

該類指令的助記符、指令代碼、操作數、程序步如表8-29所示。表8-29帶進位循環右移、左移指令的要素指令名稱指令代碼位數助記符操作數范圍程序步D(·)n帶進位循環右移FNC32◥(16/32)RCRRCR(P)KnY、KnM、KnST、C、D、V、ZK、H移位量n≤16(16位)n≤32(32位)RCR、RCRP…5步DRCR、DRCRP…9步帶進位循環左移FNC33◥(16/32)RCLRCL(P)RCL、RCLP…5步DRCL、DRCLP…9步圖8-63帶進位循環移位指令使用說明*(三)位右移、位左移指令

該類指令的助記符、指令代碼、操作數、程序步如表8-30所示。表8-30位移位指令的要素

指令名稱指令代碼位數助記符操作數范圍程序步S(·)D(·)n1n2位右移FNC34◥(16)SFTRSFTR(P)X、Y、M、SY、M、SK、Hn2≤n1≤1024SFTR、SFTRP…9步位左移FNC35◥(16)SFTLSFTL(P)SFTL、SFTLP…9步位移位指令是對D(·)所指定的n1個位元件連同S(·)所指定的n2個位元件的數據右移或左移n2位,其說明如圖8-64所示。例如,對于圖8-64(a)的位右移指令的梯形圖,當X010由OFF→ON時,D(·)內(M0~M15)16位數據連同S(·)內(X000~X003)4位元件的數據向右移4位,(X000~X003)4位數據從D(·)的高位端移入,而D(·)的低位M0~M3數據移出(溢出)。若圖中n2=1,則每次只進行1位移位。同理,對于圖8-64(b)的位左移指令的梯形圖移位原理也類同。用脈沖執行型指令時,X000由OFF→ON變化時指令執行一次,進行n2位移位;而用連續指令執行時,移位操作是每個掃描周期執行一次,使用該指令時必須注意。圖8-64位移位指令使用說明

(四)字右移、字左移指令

該類指令的助記符、指令代碼、操作數、程序步如表8-31所示。表8-31字移位指令的要素指令名稱指令代碼位數助記符操作數范圍程序步S(·)D(·)n1n2字右移FNC36◥(16)WSFRWSFR(P)KnX、KnY、KnM、KnS、T、C、DKnY、KnM、KnST、C、DK、Hn2≤n1≤512WSFR、WSFRP…9步字左移FNC37◥(16)WSFLWSFL(P)WSFL、WSFLP…9步

字移位指令是對D(·)所指定的n1個字元件連同S(·)所指定的n2個字元件右移或左移n2個字數據,其使用說明如圖8-65所示。圖8-65(a)為字右移指令的梯形圖及右移原理,圖8-65(b)為字左移指令梯形圖及使用說明,原理類同。用脈沖執行型指令時,X000由OFF→ON變化時指令執行一次,進行n2位字移位;若用連續指令執行時,移位操作每個掃描周期將執行一次,必須注意。圖8-65字移位指令使用說明*(五)FIFO寫入/讀出指令

先進先出讀寫指令的助記符、指令代碼、操作數、程序步如表8-32所示。表8-32FIFO寫入指令的要素指令名稱指令代碼位數助記符操作數程序步S(·)D(·)n先進先出寫入FNC38◥(16)SFWRSFWR(P)K、HKnXKnY、KnM、KnST、C、D、V、ZKnY、KnMKnS

、TC、DK、H2≤n≤512SFWRSFWRP…7步先進先出讀出FNC39◥(16)SFRDSFRD(P)KnX、KnX、KnM、KnST、C、DKnY、KnM、

KnS

、TC、D、V、ZSFRD、SFRDP…7步

SFWR指令是先進先出控制數據寫入和讀出指令,其使用說明如圖8-66(a)、(b)所示。圖8-66FIFO寫入/讀出指令使用說明*二、循環與移位指令應用(一)流水燈光控制

某燈光招牌有L1~L8八個燈接于K2Y000,要求當X000為ON時,燈先以正序每隔1S輪流點亮,當Y007亮后,停2S;然后以反序每隔1S輪流點亮,當Y000再亮后,停2S,重復上述過程。當X001為ON時,停止工作。PLC輸入、輸出接點與內部器件分配如下表所示,梯形圖如圖8-67所示。分析見梯形圖右邊文字說明。

輸入接點分配輸出接點分配內部器件分配輸入點編號外接器件輸出點編號外接器件內部器件編號功能說明X000SBQ(啟動)Y000燈D1M0控制燈正序亮X001SBT(停止)Y001燈D2M1燈正序停止逆序亮Y002燈D3M2燈逆序停止正序亮Y003燈D4M100置Y000=1初值Y004燈D5T0Y007=ON,延時2SY005燈D6T1Y000=ON,延時2SY006燈D7M8013秒脈沖發生器Y007燈D8流水燈光控制PLC輸入、輸出接點與內部器件分配表(二)步進電機控制

用位移位指令可以實現步進電機正反轉和調速控制。以三相三拍電機為例,脈沖列由Y010~Y012(晶體管輸出)輸出,作為步進電機驅動電源功放電路的輸入。程序中采用積算定時器T246為脈沖發生器,設定值為K2~K500,定時為2ms~500ms,則步進電機可獲得500步/s~2步/s的變速范圍。X000為正反轉切換開關(X000為OFF時,正轉;X000為ON時,反轉),X002為啟動按鈕,X003為減速按鈕,X004為增速按鈕。接點分配如下,梯形圖如圖8-68所示。輸入接點分配輸出接點分配內部器件分配輸入點編號外接器件輸出點編號功能說明內部器件編號功能說明X000ON正轉,OFF反轉Y010A相脈沖M0三相正序提供0或1值X002SBQ(啟動)Y011B相脈沖M1三相逆序提供0或1值X003接減速按鈕Y012C相脈沖M4ON禁止調速,X004接增速按鈕M10ON允許調速T0頻率調整時間限制T246產生移位脈沖(1ms)D0存放T246的定時數據步進電機正反轉和調速控制PLC接點分配(三)產品的進出庫控制

溫馨提示

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

評論

0/150

提交評論