1.邏輯AND指令:ANDW(FUN 34)/ @ANDW(FUN 34)---WAND/WANDP(FX2)

(1)格式: ANDW   S1,S2,D     S1,S2:來源通道或數據 

                                    D:目的通道或暫存器

(2)意義:ANDW是將兩個十六位元的數值進行邏輯AND運算,並將結果存於目的通道或暫存器中。

(3)舉例:

A.階梯圖                                     B.程式

行 號       指              令
00000 LD              25315
00001 MOV          #9065,30
00002 LD              00
00003 @ANDW    30,#36C5,2
00004 END

C.說明:

a.一RUN之後, 30CH被放入數值#9065。

b.當按下00開關時,(2CH)=(30CH) ANDW #36C5 =#1045。

c.結果如下: 200、202、206、212動作,其餘不動作。

d.若結果中的所有位元都為0,則零位旗標25506=1

 

2.邏輯OR指令:ORW(FUN 35)/ @ORW﹙FUN 35)---WOR/WORP(FX2)

(1)格式: ORW   S1,S2,D    S1,S2:來源通道或數據

                                D:目的通道或暫存器

(2)意義:ORW是將兩個十六位元的數值進行邏輯OR運算,並將結果存於目的通道或暫存器中。

(3)舉例:

A.階梯圖                                         B.程式

行 號       指              令
00000 LD              25315
00001 MOV          #9065,30
00002 LD              00
00003 @ORW      30,#36C5,2
00004 END

C.說明:

a.一RUN之後, 30CH被放入數值#9065。

b.當按下00開關時,(2CH)=(30CH) ORW #36C5 =#B6E5。

c.結果如下: 200、202、205、206、207、209、210、212、213、215動作,其餘不動作。

d.若結果中的所有位元都為0,則零位旗標25506=1 

 

3.邏輯互斥或指令:XORW(FUN 36)/@XORW(FUN 36)---WXOR/WXORP(FX2) 

(1)格式: XORW   S1,S2,D     S1,S2:來源通道或數據 

                                    D:目的通道或暫存器

(2)意義:XORW是將兩個十六位元的數值進行邏輯互斥或運算,並將結果存於目的通道或暫存器中。

(3)舉例:

A.階梯圖                               B.程式

行 號       指              令
00000 LD              25315
00001 MOV          #9065,30
00002 LD              00
00003 @XORW    30,#36C5,2
00004 END

C.說明:

a.一RUN之後, 30CH被放入數值#9065。

b.當按下00開關時,(2CH)=(30CH) XORW #36C5 =#A6A0。

c.結果如下: 205、207、209、210、213、215動作,其餘不動作。

d.若結果中的所有位元都為0,則零位旗標25506=1 

 

4.邏輯互斥或非指令:XNRW(FUN 37)/@XNRW(FUN 37)

(1)格式: XNRW   S1,S2,D     S1,S2:來源通道或數據

                                    D:目的通道或暫存器 

(2)意義:XNRW是將兩個十六位元的數值進行邏輯互斥或非運算,並將結果存於目的通道或暫存器中。

(3)舉例:

A.階梯圖                                   B.程式

行 號       指              令
00000 LD              25315
00001 MOV          #9065,30
00002 LD              00
00003 @XNRW    30,#36C5,2
00004 END

C.說明:

a.一RUN之後, 30CH被放入數值#9065。

b.當按下00開關時,(2CH)=(30CH) XNRW #36C5 =#595F。

c.結果如下: 200、201、202、203、204、206、208、211、212、214動作,其餘不動作。

d.若結果中的所有位元都為0,則零位旗標25506=1

 

5.反向碼指令:COM(FUN 29)/@COM(FUN 29)---CML(FX2) 

(1)格式: COM D D:目的通道或暫存器 

(2)意義:COM是將一個十六位元的通道內的數值反相後,再將結果存回此通道內。

(3)舉例:

A.階梯圖                                              B.程式

行 號       指              令
00000 LD              25315
00001 MOV          #9065,2
00002 LD              00
00003 @COM       2
00004 END

C.說明:

a.一RUN之後,2CH被放入數值#9065。此時200、202、205、206、212、215動作,其餘不動作。

b.當按下00開關時, (2CH) =#6F9A。

c.結果如下: 201、203、204、207、208、209、210、211、213、214動作,其餘不動作。

d.若結果中的所有位元都為0,則零位旗標25506=1

 

二、實習

1.題目說明:

           教導式電路設計實例:輸入元件部份有1個學習按鈕、1個動作按鈕及5個教導按鈕,輸出元件則為5個輸出顯示燈。功能如後:先按學習鈕後,使用者可依任何順序一次按下一個教導按鈕(最多十次),之後當按下動作按鈕後,5個對應的顯示燈將依先前的教導鈕的壓按順序重覆顯示。例如教導按鈕按下的順序為0→4→1→2→3→1,則在按下動作鈕後燈的顯示順序為L0→L4→L1→L2→L3→L1。

2.設計步驟

(1)狀態分析:因為按鈕的順序是非固定式的,所以須使用記憶體來記住這些按鈕。在每按一次按鈕時,就將所有的按鈕取入,存在一記憶體位置內,就這樣依次的放入連續的記憶體中。等到按下動作鈕後,再依序從記憶體中取出,輸出給輸出元件就可以了。另外,由於記憶體位置是變動的,所以一定要使用間接定址的方式來存取。

(2)元件編號 

 輸 入 元 件

  輸 出 元 件

  內 部 元 件

PB0→00 (X0)

PB1→01 (X1)

PB2→02 (X2)

PB3→03 (X3)

PB4→04 (X4)

PBT→05 (X5)

PBS→06 (X6)

L0→200 (Y0)

L1→201 (Y1)

L2→202 (Y2)

L3→203 (Y3)

L4→204 (Y4)

DM0000-DM0009  (D0-D9)

DM0100  (V)     31CH   (D12)

DM0101  (Z)                  (M4)

3000     (M0)                  (M5)

3001     (M1)                  (M6)

3002     (M2)

3003     (M3)

(3)繪出階梯圖

A.先考慮輸入教導部份:輸入狀態取入是以一個通道為單位,所以取入的輸入不是只有教導按鈕而已,另外還包括學習鈕、動作鈕(05、06)還有未使用的輸入(07∼15),所以不能以MOV直接存入記憶體,而應先將不需要的輸入掩蓋(MASK)掉,方法是使用ANDW指令,如下:

 

            由於0與任何一個狀態(0或1)AND的結果恆為0,所以如上表05∼15不管原有狀態為何,其結果均為0,即被掩蓋(MASK)掉了,只有00∼04保持原來的狀態。

B.每一次存入記憶體後,應將指標加1後再繼續存取,超過十次時應將位置指標歸零,重新儲存。

        

C.什麼時後取入呢?是當有任何一教導輸入被按時,我們使用微分指令,並將所有教導輸入並聯,以限制一次只能有一個按鈕被按,當按下任一按鈕後,除非放掉再按(微分功能),否則無效。再加上學習鈕後完整的教導輸入如圖。

 

D.輸出部份仍與前述一樣,只要將記憶體資料一一輸出即可,但是本例中,若使用MOV指令,則一次輸出16位元,所以除了L0∼L4(200∼204)之外,205∼215也會被更動,應予避免。方法如下:

a.先用ANDW 2,#FFE0,31 保留205∼215的狀態於通道31。

b.再用 ORW *DM0100,31,2 將205∼215加入並輸出到通道2。

c.加上動作鈕後完整的輸出如圖:

     

 E.全圖如圖:

 

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

行 號   指    令(OMRON) 行 號   指    令(FX2)
00000 LD                  05 00000 LD             X5
00001 OR                 3000 00001 OR             M0
00002 AND  NOT    06 00002 ANI            X6
00003 OUT              3000 00003 OUT           M0
00004 @MOV         #00,DM100 00004 MOVP        K0,V
00005 @MOV         #00,DM101 00005 MOVP        K0,Z
00006 @MOV         #00,2 00006 MOVP        K0,K2Y0
00007 LD                 00 00007 LD              X0
00008 OR                 01 00008 OR              X1
00009 OR                 02 00009 OR              X2
00010 OR                 03 00010 OR              X3
00011 OR                 04 00011 OR              X4
00012 AND              3000 00012 AND           M0
00013 DIFU             3003 00013 PLS             M3
00014 LD                 3000 00014 LD              M0
00015 AND              3003 00015 AND           M3
00016 @ANDW       #00,#1F,*DM10 00016 WANDP     K2X0,H1F,D0V
00017 @INC            DM100 00017 INCP           V
00018 @INC            DM101 00018 INCP           Z
00019 @CMP          DM100,#10 00019 CMPP          V,K10,M4
00020 AND             25505 00020 AND            M4
00021 BSET            #00,DM100,DM101 00021 MOV            K0,V
00022 LD                06 00022 MOV            K0,Z
00023 OR                3001 00023 LD                X6
00024 AND  NOT   05 00024 OR                M1
00025 AND  NOT   3002 00025 ANI               X5
00026 OUT             3001 00026 ANI               M2
00027 @MOV         #00,DM100 00027 OUT              M1
00028 LD                3001 00028 MOVP          K0,V
00029 AND             25502 00029 LD                M1
00030 OUT              TR0 00030 AND             M8013
00031 @CMP          DM100,DM101 00031 MPS
00032 LD                 TR0 00032 CMPP           V,Z,M4
00033 AND              25507 00033 AND             M6
00034 @ANDW       2,#FFE0,31 00034 WANDP       K2Y0,HE0,D12
00035 @ORW          *DM100,31,2 00035 WORP          D0V,D12,K2Y0
00036 @INC             DM100 00036 INCP             V
00037 LD                  TR0 00037 MPP
00038 AND               25506 00038 AND              M5
00039 OUT                3002 00039 OUT              M2
00040 MOV              #00,2 00040 MOV             K0,K2Y0
00041 END 00041 END

(5)接線

     

(6)執行