|
一、傳送指令介紹: 1.字元傳送:MOV(FUN 21)/@MOV(FUN 21)---MOV/MOVP(FX2) MVN(FUN 22)/@MVN(FUN 22) (1)格式:MOV S,D S:來源通道或數值 MVN S,D D:目標通道 (2)意義:MOV是將一來源通道的狀態或數值傳送(拷貝)到目標通道。MVN是將一來源通道的狀態或數值先反相後再傳送(拷貝)到目標通道。 (3)舉例: A.階梯圖 B.程式
C.說明: a.當按下00開關時,MOV指令將十六進制數值85輸出到通道2(2之前未加#號表示為通道名稱),結果為200、202、207動作,通道2其餘的輸出復歸。 b.當按下01開關時,MOV指令將0通道的狀態取入後再輸出到通道2,結果為輸出201動作,通道2其餘的輸出復歸。
c.當按下02開關時,MVN指令將0通道的狀態取入,經反相後,再輸出到通道2。結果為除了輸出202復歸外,通道內其餘的輸出皆動作。
2.單一位元傳送:MOVB(FUN 82)/@MOVB(FUN 82)---SET/RST(CQM1及FX2) (1)格式: MOVB S,C,D S:來源通道或數值 C:控制數據 D:目標通道 (2)意義:MOVB是將一來源通道的某一位元的狀態傳送(拷貝)到目標通道的某一位元。但傳送的來源位元由控制數據的較低的兩個字(nibble1、nibble0)來決定,而目標位元則由控制數據的較高的兩個字(nibble3、nibble2)來決定。 Nibble3 nibble2 nibble1 nibble0
(3)舉例: A.階梯圖 B.程式
C.說明: a.當RUN之後,30CH被放入數值#52D2,31CH被放入數值#0206,2CH被放入數值#5551。
b.當按下00開關時,MOVB指令即根據通道31的值(#0206)來決定要將通道30的第06(3006)位元傳送到通道2的第02位元(202)。
c.結果為202動作,通道2的其餘輸出則維持原來狀態。即2CH=#5555。
3.偏移通道數據搬移:DIST(FUN 80)/@DIST(FUN 80) (1)格式: DIST S,D,Dof S:來源通道或數值 D:目標通道基準值 Dof:目標通道偏移值 (2)意義:DIST是將一來源通道的數值搬移到一目標通道中。但目標通道是由目標通道基準值再加上一個偏移值而得出的。以一文字表示式來說明,即如下: [S]→[D+(Dof)] (3)舉例: A.階梯圖 B.程式
C.說明: a.當RUN後,30CH被放入數值#01,31CH被放入數值#1106 B.當按下00開關時,DIST指令即將通道31的值(#1106)傳送到通道2(1+[30]=2)中。結果為201、202、208、212動作,通道2的其餘輸出則復歸。
4.偏移通道數據收集:COLL(FUN 81)/@COLL(FUN 81) (1)格式: COLL S,Sof,D S:來源通道基準值 Sof:來源通道偏移值 D:目標通道 (2)意義:COLL是將一來源通道的數值搬移到一目標通道中。但來源通道是由來源通道基準值再加上一個偏移值而得出的。以一文字表示式來說明,即如下: [S+(Sof)]→[D] (3)舉例: A.階梯圖 B.程式
C.說明: a.當RUN後,31CH被放入數值#02,32CH被放入數值#1106 b.當按下00開關時,COLL指令即將通道32(30+[31]=32)的值(#1106)傳送到通道2中。結果為201、202、208、212動作,通道2的其餘輸出則復歸。
5.多位元傳送:MOVD(FUN 83)/@MOVD(FUN 83)---SMOV/SMOVP(FX2) (1)格式: MOVD S,C,D S:來源通道或數值 C:控制數據 D:目標通道 (2)意義:MOVD是將一來源通道的某些字(nibble)的狀態傳送(拷貝)到目標通道的某些字(nibble)。傳送的來源字由控制數據的nibble0來決定,而目標字則由控制數據的nibble2來決定。至於傳送的數量則由nibble1來決定。
上述的 nibble1=0 則傳送1個nibble(4bits) =1 則傳送2個nibble(8bits) =2 則傳送3個nibble(12bits) =3 則傳送4個nibble(16bits) (3)舉例: A.階梯圖 B.程式
C.說明: a.當RUN後,30CH被放入數值#52D2,2CH放入#FFFF。
b.當按下00開關時,MOVD指令即根據#0103的值(00000001000000112=0103BCD)來決定要將通道30的第03 nibble(3012∼3015)傳送到通道2的第1 nibble(204∼207)。結果為204、206動作,205、207復歸,通道2的其餘輸出則維持原來狀態,即2CH=#FF5F。
6.區塊傳送:BSET(FUN 71)/@BSET(FUN 71)---FMOV/FMOVP或ZRST/ZRSTP(FX2) (1)格式: BSET S,B,E S:來源數值 B:目標開始通道 E:目標結束通道 (2)意義:BSET是將一來源數值傳送(拷貝)到某些連續的目標通道中。BSET也可以用來改變計時/計數器的計數值。 (3)舉例: A.階梯圖 B.程式
C.說明: a.當按下00開關時,30CH到36CH被放入數值00(這是一種將一群元件同時歸零的好方法)。 b..當按下01開關時,計時器TIM00被放入數值30(這是一種改變計時參數的方法)。
7.多通道傳送:XFER(FUN 70)/@XFER(FUN 70)---BMOV/BMOVP(FX2) (1)格式: XFER N,S,D N:要傳送的通道數量 S:來源啟始通道 D:目標啟始通道 (2)意義:XFER是將某些來源通道的狀態傳送(拷貝)到目標通道。傳送的通道數量由N值決定。 (3)舉例: A.階梯圖 B.程式
C.說明: a.當RUN後,30CH被放入數值#1106,31CH放入#22。 b.當按下00開關時,XFER指令將從通道30起的2個通道(31CH,30CH)輸出到以通道2為啟始的兩個通道中(3CH,2CH),結果為輸出201、202、208、212、301、305動作。其餘的輸出復歸。
8.數值交換:XCHG(FUN 73)/@XCHG(FUN 73)---XCH/XCHP(FX2) (1)格式: XCHG S1,S2 S1:要交換的第一個通道 S2:要交換的第二個通道 (2)意義:XCHG是將兩個不同的通道的數值予以交換。 (3)舉例: A.階梯圖 B.程式
C.說明: a.當RUN之後,30CH被放入#1106,2CH被放入#00,即2CH所有輸出皆被復歸。
b.當按下00開關時,30CH與2CH的數值即刻交換。
c.結果30CH被復歸(3000到3015),而2CH的輸出201、202、208、212動作,其餘的輸出復歸。
d.本題使用前緣微分動作@XCHG,其按鍵順序為FUN-7-3-NOT(@出現)。本題若不使用微分符號(@),則按下00開關後,XCHG一直動作(做交換)狀態,所以無法確知放掉00開關後的結果為何?若加上@後,若按下00開關,則XCHG只交換元件一次。除非放掉00開關,重新按才會再做一次交換。底下的很多例子都跟這題一樣,須使用微分符號。
二、實習 1.題目說明: 下面的題目,使用MOV來做 PB1→M1、M2(ON) PB2→M2、M3(ON) PB3→M3、M1(ON) 2.實習步驟: (1)設計觀念:仍以狀態設計法來分析,整個電路包括四種狀態,其設計方法如下: A.按PB1時為第一種狀態S1,以MOV #N1,2來代表 B.按PB2時為第一種狀態S2,以MOV #N2,2來代表 C.按PB3時為第一種狀態S3,以MOV #N3,2來代表 由上述的分析,可以看出,設計方法不再像使用位元指令一樣,用一電力電驛來代表各狀態的動作,而是改成將各狀態的狀態值以MOV指令傳送到輸出部份。其中的N即為各狀態的輸出狀態值,如下表: (2)元件配置
(3)繪階梯圖 A.依狀態分析,初繪如圖:
B.因為三種狀態中,在一段時間只能有一種存在,所以假若S1動作,則S2、S3必需切斷;同理S2動作,則S1、S3必需切斷;S3動作,則S1、S2必需切斷。這是一種互鎖電路,最好的方法是利用開關的B接點。也就是用A接點接通自己而用B接點切斷別人,如圖5-25。 C.加上OL得圖。
(4)撰寫程式並鍵入PLC中
(5)接線
(6)執行 |