邏輯運算指令
文章推薦指數: 80 %
邏輯OR指令:ORW(FUN 35)/ @ORW﹙FUN 35)---WOR/WORP(FX2) ... 邏輯互斥或指令:XORW(FUN 36)/@XORW(FUN 36)---WXOR/WXORP(FX2) ... (4)撰寫程式並鍵入PLC中: ...
1.邏輯AND指令:ANDW(FUN34)/@ANDW(FUN34)---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﹙FUN35)---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(FUN36)---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(FUN37)/@XNRW(FUN37)
(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(FUN29)---CML(FX2)
(1)格式:COMDD:目的通道或暫存器
(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.先用ANDW2,#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)執行
延伸文章資訊
- 1學會這些入門級PLC指令,編寫控制程序你想不會都難 - 壹讀
剛入門PLC的大夥,想要掌握並熟悉好程式語言,指令是這當中構成的基本條件之一,不論你的編程習慣與別人有多麼不同,也必須是學會指令這一元素, ...
- 2三菱PLC 基本指令介紹
三菱PLC 基本指令介紹. FX2N 系列可程式控制器,提供了所謂的基本指令、步進階梯圖指令和應用. 指令,本章主要介紹基本指令的用法,基本指令如表5-1 所示:.
- 3邏輯運算指令
邏輯OR指令:ORW(FUN 35)/ @ORW﹙FUN 35)---WOR/WORP(FX2) ... 邏輯互斥或指令:XORW(FUN 36)/@XORW(FUN 36)---WXOR/WX...
- 4第3 章:FBs-PLC 指令一覽表
FBs-PLC 之順序指令有上列36 種,所有機種均有此等指令功能。 ... 妙之控制應用,但對一般小型PLC 之使用者確實是一大負擔,因此我們將永宏PLC 之應用. 指令區分為基礎 ...
- 5三菱PLC基本指令匯總,雖然枯燥,但超實用的,趕快收藏起
三菱FX系列PLC基本指令.步進梯形圖指令FX 系列PLC 有基本順控指令20 或27 條、步進梯形圖指令2 條、應用(功能)指令100 多條(不同系列有所不同)。