一、傳送指令介紹:

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.程式

行 號          指             令
00000 LD                   00
00001 MOV               #85,2  
00002 LD                   01
00003 MOV               0,2
00004 LD                   02
00005 MVN               0,2
00006 END

 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.程式

行 號   指            令
00000 LD          25315
00001 MOV      #52D2,30
00002 MOV     #0206,31
00003 MOV     #5551,2
00004 LD          00
00005 MOVB   30,31,2
00006 END

 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.程式

行 號    指                 令
00000 LD              25315
00001 MOV          #01,30
00002 MOV          #1106,31
00003 LD              00
00004 DIST           31,1,30
00005 END

 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.程式

行 號        指          令
00000 LD           25315
00001 MOV       #1106,32
00002 MOV       #02,31
00003 LD 00
00004 COLL      30,31,2
00005 END

  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.程式

行 號        指             令
00000 LD           25315
00001 MOV       #52D2,30
00002 MOV       #FFFF,2
00003 LD 00
00004 MOVD     30,#0103,2
00005 END

  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.程式

行 號      指                   令
00000 LD         00
00001 BSET     #00,30,36
00002 LD         01
00003 BSET     #30,TIM00,TIM00
00004 END

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.程式

行 號         指            令
00000 LD                25315
00001 MOV            #1106,30
00002 MOV            #22,31
00003 LD                00
00004 XFER           #2,30,2
00005 END

 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.程式

行 號     指            令
00000 LD                 25315
00001 MOV             #1106,30
00002 MOV             #00,2
00003 LD 00
00004 @XCHG       2,30
00005 END

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)元件配置

  輸 入 元 件

  輸   出   元   件

內部元件

PB1→00 (X0)

PB2→01 (X1)

PB3→02 (X2)

OL1→03 (X3)

OL2→04 (X4)

OL3→05 (X5)

MC1→200 (Y0)

MC2→201 (Y1)

MC3→202 (Y2)

 

(3)繪階梯圖

A.依狀態分析,初繪如圖:

  

B.因為三種狀態中,在一段時間只能有一種存在,所以假若S1動作,則S2、S3必需切斷;同理S2動作,則S1、S3必需切斷;S3動作,則S1、S2必需切斷。這是一種互鎖電路,最好的方法是利用開關的B接點。也就是用A接點接通自己而用B接點切斷別人,如圖5-25。

C.加上OL得圖。

         

 

        

(4)撰寫程式並鍵入PLC中 

行 號  指 令(OMRON) 行 號 指 令(FX2)
00000 LD                   00 00000 LD              X0
00001 AND   NOT    01 00001 ANI            X1
00002 AND   NOT    02 00002 ANI            X2
00003 AND   NOT    3000 00003 ANI            M0
00004 MOV              #3,2 00004 MOV          H3,K1Y0
00005 LD                  01 00005 LD              X1
00006 AND   NOT    00 00006 ANI            X0
00007 AND   NOT    02 00007 ANI            X2
00008 AND   NOT    3000 00008 ANI            M0
00009 MOV              #6,2 00009 MOV          H6,K1Y0
00010 LD                  02 00010 LD              X2
00011 AND   NOT    00 00011 ANI            X0
00012 AND   NOT    01 00012 ANI            X1
00013 AND   NOT    3000 00013 ANI            M0
00014 MOV              #5,2 00014 MOV          H5,K1Y0
00015 LD                  03 00015 LD              X3
00016 OR                  04 00016 OR             X4
00017 OR                  05 00017 OR             X5
00018 OUT               3000 00018 OUT           M0
00019 MOV              #0,2 00019 MOV          H0,K1Y0
00020 END 00020 END

    (5)接線

                        

 

               

(6)執行