旋轉、位移指令
右旋轉指令(ROR) (FNC30) 左旋轉指令(ROL) (FNC31) 含進位旗號右旋轉指令(RCR) (FNC32) 含進位旗號左旋轉指令(RCL) (FNC33) 位元右移指令(SFTR) (FNC34) 位元左移指令(SFTL) (FNC35) 運算元右移指令(WSFR) (FNC36) 運算元左移指令(WSFL) (FNC37) 位移寫入指令(SFWR) (FNC38) 位移讀出指令(SFRD) (FNC39)右旋轉指令(ROR) (FNC30)(1)
指定對象:目的運算元使用元件如下。 佔用位址:ROR、RORP佔用5個位址,DROR、DRORP佔用9個位址。
使用時機:資料進行右旋轉移動。ROR指令格式如右旋轉指令(ROR) (FNC30)(2)
當X0從OFF ON,D0內容向右移動4個位元,其中 最左位元旋轉進入進位旗號(M8022)內,n為一次右 旋轉n個位元。動作如下:→
1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 M8022=O N
( )
左旋轉指令(ROL) (FNC31)(1)
指定對象:目的運算元使用元件如下。 佔用位址:ROL、ROLP佔用5個位址,DROL、DROLP佔用9個位址。
使用時機:資料進行左旋轉移動。ROL指令格式如左旋轉指令(ROL) (FNC31)(2)
當X0從OFF ON,D0內容向左移動4個位元,其中 最右位元旋轉進入進位旗號(M8022)內,n為一次左 旋轉n個位元。動作如下:→
範例4.22:
利用ROR、
ROL指令設計 一廣告燈,使 燈先左旋轉5 次(每次1秒) 再右旋轉5次 (每次1秒),
重複上述動
含進位旗號右旋轉指令(RCR)(FNC32)(1)
指定對象:目的運算元使用元件如下。 佔用位址:RCR、RCRP佔用5個位址,DRCR、DRCRP佔用9個位址。
使用時機:資料進行含進位旗號之之之之右旋轉移動。RCR指令格式如下:
含進位旗號右旋轉指令(RCR)(FNC32)(2)
當X0從OFF ON,D0內容向右移動4個位元(經 M8022),n為一次右旋轉n位元。動作如下→
1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 M8022=O
N
含進位旗號左旋轉指令(RCL)(FNC33)(1)
指定對象:目的運算元使用元件如下。 佔用位址:RCL、RCLP佔用5個位址,DRCL、DRCLP佔用9個位址。
使用時機:資料進行含進位旗號之左旋轉移動。RCL指令格式如下:
含進位旗號左旋轉指令(RCL)(FNC33)(2)
當X0從OFF ON,D0內容向左移動4個位元(經 M8022),n為一次左旋轉n位元。動作如下→
位元右移指令(SFTR) (FNC34)(1)
指定對象:來源及目的運算元使用元件如下 佔用位址:SFTR、SFTRP佔用9個位址。 使用時機:進行整批位元資料向右移動。SFTR指令 格式如下:1024 1
2 ≤ n ≤
n
位元右移指令(SFTR) (FNC34)(2)
為來源資料之起始位元,n2來源資料位元的位 數。本例中,來源資料之起始位元為X0,並取用4個 位元(n2=K4),即來源資料位元由X0、X1、X2、X3 所組成。 為指定位移區之起始位元,n1為指定位移區的 位數。本例中,指定位移區之起始位元為M0,並取 用16個位元(n1=K16),即指定位移區由M0~M15所 組成。S.
D.
位元右移指令(SFTR) (FNC34)(3)
當X10由OFF→ON時,X3、X2、X1、X0 4個位元移 入 M15、M14、M13、M12 等4個位元中,位移區其 他位元向右移動,如下所示:位元左移指令(SFTL) (FNC35)(1)
指定對象:來源及目的運算元使用元件如下 佔用位址:SFTL、SFTLP佔用9個位址。 使用時機:進行整批位元資料向左移動。SFTL指令1024
1
2 ≤ n ≤
n
位元左移指令(SFTL) (FNC35)(2)
一般使用一次微分指令SFTLP, 當X10由OFF→ON時,X3、X2、X1、X0 4個位元移 入 M3、M2、M1、M0 等4個位元中,位移區其他位 元向左移動,如下所示:範例4.23:利用SFTR、SFTL指令設
計一簡易廣告燈
範例4.23:利用SFTR、SFTL指令設
計一簡易廣告燈(續)
運算元右移指令(WSFR)(FNC36)(1)
指定對象:來源及目的運算元使用元件如下 佔用位址:WSFR、WSFRP佔用9個位址。 使用時機:進行運算元資料向右移動。WSFR指令格512
1
2 ≤ n ≤
n
運算元右移指令(WSFR)(FNC36)(2)
一般使用一次微分指令WSFRP, 當X0由OFF→ON時,D3、D2、D1、D0 等4個運算 元移入 D25、D24、D23、D22 等4個運算元中,位 移區其他運算元向右移動,如下所示:512 1
n 2
n ≤ ≤
運算元左移指令(WSFL)(FNC37)(1)
指定對象:來源及目的運算元使用元件如下 佔用位址:WSFL、WSFLP佔用9個位址。 使用時機:進行運算元資料向左移動。WSFL指令格512
1
2 ≤ n ≤
n
運算元左移指令(WSFL)(FNC37)(2)
一般使用一次微分指令WSFLP, 當X0由OFF→ON時,D3、D2、D1、D0 等4個運算 元移入 D10、D11、D12、D13 等4個運算元中,位 移區其他運算元向左移動,如下所示:512 1
n 2
n ≤ ≤
位移寫入指令(SFWR) (FNC38)(1)
指定對象:來源及目的運算元使用元件如下 佔用位址:SFWR、SFWRP佔用7個位址。 使用時機:先入先出的控制中將資料順序寫入。512
2 ≤ n ≤
位移寫入指令(SFWR) (FNC38)(2)
D0為來源資料,D1為資料筆數指標,n為資料個數 (包含指標D1,所以實際資料個數為n-1)。本指令執 行時,D1內容自動復歸為零。 本指令一般以微分指令SFWRP使用。 D1最大內容為n-1,若超出n-1時,本指令不執行,同時M8022=ON。
位移寫入指令(SFWR) (FNC38)(3)
當X0由OFF→ON時,將D0內資料傳送到D2暫存器,D1內容加1;當X0再由OFF→ON時,D0內容傳 送到D3暫存器,而D1內容再加1變為2,以此類推。
位移讀出指令(SFRD) (FNC39)(1)
指定對象:來源及目的運算元使用元件如下 佔用位址:SFRD、SFRDP佔用7個位址。 使用時機:先入先出的控制中將資料順序讀出。SFRD指令格式如下:
512 n
2 ≤ ≤
位移讀出指令(SFRD) (FNC39)(2)
D0為資料筆數指標,D1為第1筆被讀出的資料暫存 器,n為資料個數(包含指標D0,所以實際能被讀出 的資料個數為n-1),D20則為資料被讀出後存放的目 的暫存器位置。本指令執行時,D0內容自動設為n-1 一般以微分指令SFRDP使用。 當指標暫存器D0為0時,本指令不執行且 M8020=ON。位移讀出指令(SFRD) (FNC39)(3)
當X0由OFF→ON時,將D1內資料傳送到D20暫存 器,D0指標內容減1,且D9~D2全部暫存器內容往 右移一個暫存器;當X0再由OFF→ON時,D1內容傳 送到D20暫存器,而D0內容再減1,D9~D2全部暫 存器內容往右移一個暫存器,以此類推。範例4.24:使用指令SFWR、SFRD將
資料由X0~X3寫入、Y0~Y3讀出
資料處理指令
區域復歸指令(ZRST) (FNC40) 解碼指令(DECO) (FNC41) 編碼指令(Encode, ENCO) (FNC42) ON位元總和指令(SUM) (FNC43) ON位元檢查指令(BON) (FNC44) 平均值指令(MEAN) (FNC45) 警報點設定指令(ANS) (FNC46) 警報點復歸指令(ANR) (FNC47)區域復歸指令(ZRST) (FNC40)
指定對象: 佔用位址:ZRST、ZRSTP佔用5個位址。 使用時機:進行某區域資料復歸。指令格式如 下:D 1 .
編號 編號,且須指定同一元件。M S T C D
Y
D 1 . D 2 .
ZRST X0
D1 D10 D 1 . D 2 .
≤ D
2 .
解碼指令(DECO) (FNC41)(1)
指定對象:來源及目的運算元使用元件如下 佔用位址:DECO、DECOP佔用7個位址。 使用時機:進行某些資料解碼。DECO指令 格式如下:Y M S
X
S.
D.
X10 S. D. n
解碼指令(DECO) (FNC41)(2)
X0為來源資料之開始位元,n為進行解碼之 位元數。本例中,n=K3,因此取X2、X1、X0共3個位元進行解碼,共可解出2
3
=8碼。 Y0為解碼後存放的開始位元,因共有8碼,故須使用到Y7~Y0共8個輸出點。
本例中,當X10=ON時,若X2=1、X1=0、X0=0,則Y4=ON。
解碼指令(DECO) (FNC41)(3)
解碼對照表0 0
0 0
0 0
1 0
0 1
1
0 0
0 0
0 1
0 0
1 0
1
0 0
0 0
1 0
0 0
0 0
1
0 0
0 1
0 0
0 0
1 1
0
0 0
1 0
0 0
0 0
0 1
0
0 1
0 0
0 0
0 0
1 0
0
1 0
0 0
0 0
0 0
0 0
0
Y0 Y1
Y2 Y3
Y4 Y5
Y6 Y7
X0 X1
X2
解碼 編碼
編碼指令(ENCO) (FNC42)(1)
指定對象:來源及目的運算元使用元件如下 佔用位址:ENCO、ENCOP佔用7個位址。 使用時機:進行某些資料編碼。ENCO指令T C D V、Z
K、H
S.
n D.
n=1~8
Y M S
X
S.
編碼指令(ENCO) (FNC42)(2)
X0為來源資料之開始位元,n為指定2n
個位元 進行編碼。本例中,n=K3,因此取X7~X0共 8個位元進行編碼,編碼後的值放入D0內。 當X10=ON時,若X4=1,其餘輸入為零,則 D0=000000000000100=K4。 內容為T、C、D時,n可以指定4以下;當n=0時不被處理。
如果被解碼區域的位元全部為“0”時視為錯誤 若 所指定位元中有複數個位元為1時,則以最大號碼數之“1”有效(優先編碼)
D.
S.
範例4.25:指令ZRST、DECO與 ENCO之綜合練習
X 0
[ D E C O P X 0 Y 0 K 3 ]
X 1
X 2
X 1 0
E N C O P Y 0 D 0 K 3
[ ]
X 1 0
[ M O V P D 0 K 2 Y 1 0 ]
範例4.25:指令ZRST、DECO與 ENCO之綜合練習(續)
當PLC RUN後,若X2=ON,其解碼值為 00010000存入Y7~Y0使Y4=ON。 當X10由OFFON時,Y7~Y0=00010000進行編 碼,其編碼後的數值(=K4)存放入D0暫存器,並透過Y17~Y10顯示出來,因此Y12=ON。
Y0 Y1
Y2 Y3
Y4 Y5
Y7 Y6
0 1
2 4 3
6 5 7
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 1 0 0 0 0
1 4 2
D0
ON位元總和指令(SUM) (FNC43)(1)
指定對象:來源及目的運算元使用元件如下 佔用位址:SUM、SUMP佔用5個位址,DSUM、DSUMP佔用9個位址。
使用時機:計算運算元ON(=1)的總數。SUM
KnY KnM KnS T C D
KnX V 、 Z
S.
D.
K 、 H
ON位元總和指令(SUM) (FNC43)(2)
為來源資料, 為存放ON(1)位元總數 的目的運算元。 當X0=ON時,將D0的16個位元資料中ON(1) 的位元總數存入D2中,若D0的16個位元全部 為0,則零位旗號M8020=ON。 本指令若使用於32位元(DSUM),則(D1, D0) 32個位元資料中ON(1)的位元總數存入D2中,D3為0。
S. D.
ON位元檢查指令(BON)(FNC44)(1)
指定對象:來源及目的運算元使用元件如下KnY KnM KnS T C D
KnX V 、 Z
S.
K 、 H
n n=0~15 或 0~31
Y M S
X
D.
ON位元檢查指令(BON)(FNC44)(2)
使用時機:ON位元檢查。BON指令格式如下 當X0=ON時,D0的第15位元(由0位元算起)為 1時,Y0=ON,如下圖所示: 本指令若使用16位元演算時n=0~15;32位元BON X0
D0 Y0
S. D.
K15
n
0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1
D0
bit 15 14 13 2 1 0
bit 15=1, Y0=ON 3
4
5
6
7
8
12 11 10 9
平均值指令(MEAN) (FNC45)
指定對象: 佔用位址:MEAN、MEANP佔用7個位址。 使用時機:平均值計算。指令格式如下:KnY KnM KnS T C D
KnX V 、 Z
S.
D.
K 、 H
n n=1~64
MEAN X0
D0 D10 S. D.
K3
n
警報點設定指令(ANS)(FNC46)
指定對象: :T0~T199, :S900~S999 佔用位址:ANS佔用7個位址。 使用時機:警報設定。ANS指令格式如下: m=1~32,767(以100ms為單位)。 當X0、X1同時ON且超過1秒時,警報設定點 S900= ON;當X0或X1=OFF時,S900維持ON 狀態,須使用警報點復歸指令(FNC47)才能使S. D.
ANS X0
T0 K10
S. D.
S900
X1 m
警報點復歸指令(ANR) (FNC47)
指定對象:無。 佔用位址:ANR佔用1個位址。 使用時機:警報點復歸。ANR指令格式如下 當X0由OFF ON時,較小編號之警報設定點 將被復歸。→
ANRP
X0
範例4.26:
指令 SUM、
BON、
ANS與 ANR之綜
合練習
X0
[ SUM K1X0 K1Y0 ]
X1
X2
[ ANS T0 K30 S900 ]
X3
[ BON K1X0 M0 K3 ]
M0
[ ANRP ]
S900 M8013
( Y10 )
X10
[ ZRST Y0 Y3 ]
範例4.26:指令SUM、BON、ANS與 ANR之綜合練習(續)
SUM指令用於檢測輸入X3~X0於同一時間有 幾個ON,並藉由Y3~Y0顯示。如:只有一個 輸入為ON,Y0=ON;同時有兩個輸入為ON,Y1=ON。
BON檢查X3(K3)是否為ON。PLC RUN後,若X3=ON,則M0=ON,3秒後啟動警報設定 點使S900=ON,Y10閃爍(每秒閃爍1次)。
高速處理指令
I/O再生指令(REF) (FNC50) 輸入響應時間調整指令(REFF) (FNC51) 多點矩陣輸入指令(MTR) (FNC52) 高速計數器設定為ON指令(HSCS) (FNC53) 高速計數器設定為OFF指令(HSCR) (FNC54)I/O再生指令(REF) (FNC50)(1)
指定對象: :以X0、X10、X20 … 及 Y0、Y10、Y20等為起始位元之X、Y。n:K(或H),K8、K16、K24….K128(8的倍數)。
佔用位址:REF、REFP佔用5個位址。 使用時機:程式掃描中欲抓取(送出)最新的輸 入(輸出)信號。指令格式如下:
D
REF X0
X10 D
K8
n
I/O再生指令(REF) (FNC50)(2)
當FX2接收到輸入信號,即由位址0開始掃描 到END指令,之後才將信號送到輸出端。其 間,若想抓取最新的輸入信號,或是想要即 時將新資料送到輸出端,即可使用本指令。 輸入信號再生:當X0=ON時,X10~X17的8點 輸入信號在10ms的延遲後被優先讀入。 輸出信號再生:當X1=ON時,Y0~Y7即輸出 信號,且任何一接點為ON時,其信號被記憶 在閂鎖中,經過驅動輸出點ON/OFF的延遲時 間後輸出的接點才ON。輸入響應時間調整指令(REFF)(FNC51)
指定對象:n:K、H,n=0~60(以ms為單位) 佔用位址:REFF、REFFP 佔用3個位址。 使用時機:調整輸入響應時間。格式如下: 當X10=ON,X0~X7的響應時間調整為1ms,即讀取X0~X7的ON/OFF時間為1 ms。
從位址0至本指令被執行前,輸入響應時間為REFF X10
K1
n
多點矩陣輸入指令(MTR)(FNC52)(1)
指定對象: 為以X0、X10、X20為起始之 8個輸入元件,如:X0代表X0~X7; 為以 Y0、Y10、Y20為起始掃描之n個輸出元件,如:Y0、K3表以Y0、Y1、Y2為輸出掃描;
表示多點矩陣輸入相對應輔助繼電器接 點,例如:M0表示X0=ON時,M0、M10、
M20均為ON;n為K、H,n=2~8。
佔用位址:MTR佔用9個位址。 使用時機:多點矩陣輸入。指令格式如下:S
D 1
D 2
M8000 S D 1 D 2 n
多點矩陣輸入指令(MTR)(FNC52)(2)
n表示掃描n個輸出點,每掃描1個輸出接點,CPU讀取一列輸入信號,如下所示:
1
2
3
4
5
6 Y 0
Y 1
Y 2
讀 取 第 一 列 輸 入 信 號
讀 取 第 二 列 輸 入 信 號
讀 取 第 三 列 輸 入 信 號
多點矩陣輸入指令(MTR)(FNC52)(3)
本指令X可看成行,n個Y輸出點可看成列,因此形成n×8多點輸入矩陣。
本例由Y0~Y2 (n=K3)進行輸出掃描,並指定 M0為第一列第一行接點、M1為第一列第二 行接點,以此類推。例如:當X0=ON時,則 M0、M10、M20均為ON;當X1=ON時,則 M1、M11、M21均為ON。 本指令須使用MT型(電晶體輸出)PLC,且只 可使用一次。 本指令條件接點請用M8000運轉監視接點。多點矩 陣輸入
指令 (MTR) (FNC52)
(4)
C O M X 0 X 1 X 2 X 3 X 4 X 5 X 6 X 7
X 1 X 2 X 3 X 4 X 5 X 6 X 7
X 1 X 2 X 3 X 4 X 5 X 6 X 7
M 0 M 1 M 2 M 3 M 4 M 5 M 6 M 7
M 1 0 M 1 1 M 1 2 M 1 3 M 1 4 M 1 5 M 1 6 M 1 7 M 2 0 M 2 1 M 2 2 M 2 3 M 2 4 M 2 5 M 2 6 M 2 7
第 一 列 第 二 列 第 三 列 0 . 1 A 5 0 V
二 極 體
範例4.27:MTR指令練習
M 8000
[ M T R X 0 Y 0 M 0 3 ]
K
M 0
( Y 10 )
M 10
( Y 11 )
M 20 M 2 0
( Y 1 2 )
M 7 ( Y 1 3 )
M 1 7
( Y 1 4 )
M 2 7
( Y 1 5 )
範例4.27:MTR指令練習(續)
PLC RUN後,M8000=ON,執行MTR指令。 當X0=ON,對應之輔助接點M0、M10、M20 為ON,因此Y10、Y11、Y12為ON;同理,當X7=ON,對應之輔助接點M7、M17、M27 為ON,因此Y13、Y14、Y15為ON。
高速計數器設定為ON指令HSCS) (FNC53)(1)
指定對象: 佔用位址:DHSCS佔用13個位址。 使用時機:使用於10kHz以下之脈波輸入。 高速計數器的選用取決於計數器的種類及使 用的高速輸入點。 不同種類計數器可以同時使用,但必須各自KnY KnM KnS T C D
KnX V 、 Z
S 2 . K 、 H
S 1 .
: C235~C255(高 速 計 數 器 ) X Y M
D.
S
高速計數器設定為ON指令HSCS) (FNC53)(2)
DHSCS指令格式如下: 為計數器的設定值, 為高速計數器 C235~C255, 為輸出點,若達到計數器的 設定值,此點被設定為ON。DHSCS X10
K50 C247 Y0 S 1 . S 2 . D.
S 1 . S 2 .
D.
高速計數器設定為ON指令HSCS) (FNC53)(3)
當X10=ON,若輸入信號由X0進入(即選擇上 數方式,X1為下數,X2為復歸,如表1.11),使得C247現值由49變為50時,則Y0=ON。當 X2=ON,C247復歸為零(但Y0仍維持ON,欲 使Y0變為OFF,須使用HSCR(FNC54)指令)。
高速計數器均有其專用的高速計數端,且每 個輸入之快速脈波均採用插斷方式進行計數 不同種類計數器可以同時使用,但必須各自高速計數器設定為OFF指令(HSCR) (FNC54)(1)
指定對象: 佔用位址:DHSCR佔用13個位址。K n Y K n M K n S T C D
K n X V 、 Z
S
2. K 、 H
S
1.
: C 2 3 5 ~ C 2 5 5 (高 速 計 數 器 ) X Y M
D .
S
高速計數器設定為OFF指令(HSCR) (FNC54)(2)
DHSCR指令格式如下: 為計數器的設定值, 為高速計數器 C235~C255, 為輸出點,若達到計數器的 設定值,此點被設定為OFF。 當X10=ON,若輸入信號由X0進入(即選擇上 數,X1為下數,X2為復歸,如表1.11),使得 C247的現值由99變為100時,則Y0=OFF。DHSCR X10
K100 C247 Y0 S 1 . S 2 . D.
S 1 . S 2 .
D.
範例4.28:DHSCS與DHSCR指令練習
當X11=ON且輸入由X0進入,則C247計數達30次,X 1 1
[ ]
] [ E N D
H S C S K 6 0 C 2 4 7 Y 0 D
( C 2 4 7 3 0 ) [ H S C R K 1 2 0 C 2 4 7 Y 0 ]
D
K C 2 4 7
( Y 1 )
便利指令
教導式計時器指令(TTMR) (FNC64) 交替指令(ALT) (FNC66)教導式計時器指令(TTMR)(FNC64)(1)
指定對象:目的運算元使用元件如下。 佔用位址:TTMR佔用5個位址。 使用時機:計算按鈕之按住時間。TTMR指 令格式如下:K 、 H
D D .
n = 0 ~ 2 n
X0 D. n
教導式計時器指令(TTMR)(FNC64)(2)
TTMR指令計算按 鈕開關X0被按住 的時間(即X0=ON 的時間)並存入D1 內: D0存放n倍的倍數 時間: 當X0=OFF,D1內值歸零,而D0
t
10t0
100t0
D00
K2 K1
K0 n
範例4.29 TTMR指
令練習 利用PLS PLF抓取 X0的按
住時間 並與 TTMR指
令所抓
X0 [ TTMR D0 0 ]
K
M0
( T0 1000 )
Y0
( PLS M0 )
( )
PLF M1
[ MOV T0 D2 ]
M1
K
[ ZRST M1 M11 ]
( )
RST D3 0
18
範例4.29:
TTMR指 令練習:
利用PLS、
PLF指令抓 取X0的按
住時間,
並與 TTMR指 令所抓取 時間進行
M1
M11
( Y10 ) [ DIV D2 10 D3 ]
CMP 4 D4 M2
[ K ]
K
M3
M4
[ INCP D3 ]
[ CMP D0 D3 M10 ]
M3 M2
M4 30
45
50
60
交替指令(ALT) (FNC66)(1)
指定對象:目的運算元使用元件如下。 佔用位址:ALT、ALTP佔用3個位址。 使用時機:按鈕(或開關)按單次為ON,按雙 次為OFF,可做成除頻器。ALT指令格式如Y M S
X
D.
交替指令(ALT) (FNC66)(2)
當X0第1次ON/OFF時,Y0=ON,第2次ON/OFF時,Y0=OFF,第3次ON/OFF時,
Y0=ON,以此類推。即X0按單次時,
Y0=ON;按雙次時,Y0=OFF,如下所示:
X0的ON/OFF頻率為Y0的兩倍,因此可視為 一除以2的除頻器使用。範例4.30:試設計一除以8的除頻器
M8013
[ ALTP M0 ]
[ ALTP M1 ]
M0
( Y0 )
[ ALTP M2 ]
M1
( Y1 )
範例4.30:試設計一除以8的除頻器(續)
PLC RUN,第1秒Y0、Y1、Y2=ON;第2秒Y0=OFF,Y1、Y2=ON;第3秒時Y0、Y2=ON,Y1=OFF;第4秒 時Y0、Y1=OFF, Y2=ON,以此類推。
若M8013的週期為t0
,則M0(或Y0)為2 t0
,M1(或Y1)為4t 0
,M2(或Y2)為8 t0
,即M2(或Y2)的動作頻率為M8013 除以8。外部設定、顯示指令
10按鍵輸入指令(TKY) (FNC70) 16按鍵輸入指令(HKY) (FNC71) 指撥開關指令(DSW) (FNC72) 7段顯示器解碼指令(SEGD) (FNC73) 7段顯示器閂鎖指令(SEGL) (FNC74) 由擴充模組讀出指令(FROM) (FNC78)10按鍵輸入指令(TKY) (FNC70)(1)
指定對象: 佔用位址:TKY佔用7個位址,DTKY佔用13 個位址。 使用時機:用於存放由10按鍵(0~9)輸入之值 本指令只可使用一次。Y M S
X
S .
D 2 .
K n Y K n M K n S T C D V 、 Z
D 1 .
10按鍵輸入指令(TKY) (FNC70)(2)
TKY指令格式如下: 為來源輸入, 為存放來源輸入的暫 存器, 為與來源輸入相對應的元件。 X0對應M0,X1對應M1,即X0=ON,M0=ON並保持住;X1=ON,M1=ON並保持住。
D0的最大值為9,999,超過時會溢位。
TKY M8000
X0 D0 M0
D 1 .
S. D 2 .
S. D 1 .
D 2 .
10按鍵輸入指令(TKY) (FNC70)(3)
若輸入X的順序為X2 X1 X0 X3,則與之 對應的輸出點M2、M1、M0、M3隨之ON(但 下一接點ON時,上一接點隨之OFF),同時,K2103存放在D0暫存器內。
每按一次鍵M10=ON。 外部接線圖→
→
→
COM X0 X1 X2 X3 X4 X5 X6 X7 X10 X11
PLC
1
0 2 3 4 5 6 7 8 9
16按鍵輸入指令(HKY)(FNC71)(1)
指定對象: 佔用位址:HKY佔9個,DHKY佔用17個位址 使用時機:可規劃4×4矩陣的鍵盤,當數字鍵 或功能鍵使用。Y M S
X
S. D 1 .
D 3 .
KnY KnM KnS T C D V 、 Z
D 2 .
16按鍵 輸入指 令(HKY) (FNC71)
(2)
C O M X 0 X 1 X 2 X 3
C O M 1 Y 0 Y 1 Y 2 Y 3
0 1 2 3
4 5 6 7
8 9 A B
C D E F
F X 2 (電 晶 體 輸 出 , M T 型 )
16按鍵輸入指令(HKY)(FNC71)(3)
本指令只可使用一次。 數字鍵:(1) 輸入之數存入D0,最大值為9,999。
(2) 使用DHKY時,以D1、D0存放輸入值,最 大可輸入99,999,999(8位數)。
(3) 每按一個鍵後,M8029=ON。
功能鍵:按A鍵則M0=ON並保持住;按B鍵 則M1=ON並保持住;以此類推。指撥開關指令(DSW) (FNC72)(1)
指定對象:來源及目的運算元使用元件如下 佔用位址:DSW佔用9個位址。 使用時機:使用指撥開關輸入數字,最大可 輸入至8位數。指令格式如下:Y M S
X
S. D 1 .
K 、 H T C D V 、 Z
D 2 .
n=1、 2
DSW X10
X0 Y0 D0
D 2 .
K1
n
D 1 .
S.
指撥開關指令(DSW) (FNC72)(2)
當X10=ON時,Y0~Y3進行順序掃描,每掃描 一次後,M8029=ON。 使用一組輸入時(n=K1,輸入4點,X0~X3,及輸出4點,Y0~Y3),可讀入4位數值;使用 兩組輸入時(n=K2,輸入8點,X0~X3,X4~
X7及輸出4點,Y0~Y3),可讀入8位數值。
第1組輸入:第1組指撥開關之1、2、4、8接
指撥開關指令(DSW) (FNC72)(3)
指撥開關上每個1、2、4、8接腳必須再外接 二極體(0.1A,50V),如下圖所示。C O M X 0 X 1 X 2 X 3 X 4 X 5 X 6 X 7
C O M 1 Y 0 Y 1 Y 2 Y 3
1 2 4 8 1 2 4 8
1 00 1 01 1 02 1 03
1 00 1 01 1 02 1 03
第 1 組 輸 入 ( X 0 ~ X 3 ) 第 2 組 輸 入 ( X 4 ~ X 7 ) B C D
指 撥 開 關
F X 2 (電 晶 體 輸 出 , M T 型 )
( 個 ) ( 十 ) ( 百 ) ( 千 )
二 極 體 0 . 1 A , 5 0 V
7段顯示器解碼指令(SEGD) (FNC73)(1)
指定對象:來源及目的運算元使用元件如下 佔用位址:SEGD、SEGDP佔用5個位址。 使用時機:數值藉由7段顯示器顯示(1個7段顯 示器使用8個輸出點)。KnY KnM KnS T C D
KnX V 、 Z
S.
D.
K、 H
7段顯示器解碼指令(SEGD) (FNC73)(2)
本指令將來源運算元D0內之下4個位元資料 (bit0~bit3)解碼成7段顯示器的碼(4碼解成7 碼),並藉由K2Y0(Y0~Y7)將解碼值輸出到7 段顯示器顯示。 本指令中D0的上位8位元資料保持不變。 使用本指令時每一個7段顯示器須使用8個輸 出接點(Y0~Y7,其中Y7恆為0),使用BCD指 令只使用4個輸出接點。f b
e c
d g
a
1 1 1 0 1 1 1 0 A
1010
1 1 1 1 0 1 1 0 9
1001
1 1 1 1 1 1 1 0 8
1000
1 1 1 0 0 1 0 0 7
0111
1 0 1 1 1 1 1 0 6
0110
1 0 1 1 0 1 1 0 5
0101
0 1 1 0 0 1 1 0 4
0100
1 1 1 1 0 0 1 0 3
0011
1 1 0 1 1 0 1 0 2
0010
0 1 1 0 0 0 0 0 1
0001
1 1 1 1 1 1 0 0 0
0000
a b c d e
f g x
位元組合 16進制 7段顯示器 顯示資料
之構成
7段顯示器解碼表
S. D.
範例4.31:SEGD指令練習
M8002
[ MOVP 0 D0 ]
K
M1
[ SEGD D0 K2Y0 ]
M8000
[ ]
[ INCP D0 ]
CMP K10 D0 M0
M8013
範例4.31:SEGD指令練習(續)
PLC RUN後,將數值K0傳送至D0暫存器,對 照7段顯示器解碼表為a、b、c、d、e、f=1,即Y0、Y1、Y2、Y3、Y4、Y5為ON。
透過M8013及INCP指令使D0內值每秒加1。 當程式執行到第10秒時,M1=ON,再次將數 值K0傳送至D0暫存器,並完成1循環(即D0內 值在0~9間循環)。7段顯示器閂鎖指令(SEGL)(FNC74)(1)
指定對象:來源及目的運算元使用元件如下 佔用位址:SEGL佔用7個位址。 使用時機:數值由7段顯示器顯示(4位數1組使 用8個輸出點,4位數2組使用12個輸出點) SEGL指令格式如下:KnY KnM KnS T C D
KnX V 、 Z
S.
D.
K、H
X Y M S
n=0~7
X0 S. D. n
7段顯示器閂鎖指令(SEGL)(FNC74)(2)
4位數1組:(n=0~3) 將1、2、4、8接至Y0~Y3,將4點閂鎖(Latch) 端接至Y4~Y7。當X0=ON,將D0內值轉成 BCD碼依序由Y0~Y3輸出,而觸發信號Y4~Y7將顯示資料閂鎖在7段顯示器的解碼器中
4位數2組:(n=4~7) 將第2組顯示器之1、2、4、8接至Y10~Y13,並將4點閂鎖端接至Y4~Y7(與第1組共用
7段顯示器閂鎖指令(SEGL)(FNC74)(3)
本指令執行一次時,M8029=ON。 本指令只可執行一次,且掃描時間需10ms以 上方可正確動作。 7段顯示器閂鎖配線圖如下所示:COM1 Y0 Y1 Y2 Y3
1
103
FX2(電晶體輸出,MT型)
COM2 Y4 Y5 Y6 Y7 COM3 Y10 Y11 Y12 Y13
1 2 4
2 4 8
V
+102 101 100
V
+1
1 2 4
102
103 101 100
2 4 8
7段顯示器閂鎖指令(SEGL)(FNC74)(4)
參數n的選定:參數n被用來設定觸發信號的 正/負邏輯及4位數1組或2組。 FX2的正/負邏輯:如下圖所示,FX2若為PNP 電晶體輸出型,則當內部信號為ON(1)時,輸 出為High,稱之為FX2的正邏輯。7段顯示器閂鎖指令(SEGL)(FNC74)(5)
FX2若為NPN電晶體輸出型,則當內部信號 為ON(1)時,輸出為Low,稱之為FX2的負邏 輯。7段顯示器閂鎖指令(SEGL)(FNC74)(6)
7段顯示器正/負邏輯:當資料輸入High (Low) 時以BCD輸出,且掃描信號High (Low)時將顯 示值閂鎖並保持住,稱之為7段顯示器的正(負)邏輯。如下表所示:
Low時以BCD輸出 High時以BCD輸出
資料輸入
負邏輯 正邏輯
邏輯
7段顯示器的正/負邏輯
7段顯示器閂鎖指令(SEGL)(FNC74)(7)
參數n的選擇:參數n的選擇由上述之「FX2的 正/負邏輯」與「7段顯示器的正/負邏輯」是 否一致而定,如下表所示:一致 6 2 不一致
不一致 一致
不一致 5 不一致 1
一致 4 0 一致
一致 一致
掃描信號 n n 資料輸入
掃描信號 資料輸入
4位數2組 4位數1組
參數n的選擇
由擴充模組讀出指令(FROM)(FNC78)(1)
指定對象:目的運算元使用元件如下。 佔用位址:FROM、FROMP佔用9個位址,DFROM、DFROMP佔用17個位址。
使用時機:藉由擴充模組之緩衝記憶體(BFM)
K nY K nM T C D V 、 Z
D.
K 、 H
m 1=0~7 m 2=0~31
n=1~32
由擴充模組讀出指令(FROM)(FNC78)(2)
FROM指令格式如下: m1(0~7):為特殊模組編號。例如:較靠近 FX2者為編號0,第4個模組編號3。 m2(0~31):特殊模組內記憶體編號。特殊模 組內有編號0~31個緩衝記憶體(BFM)。 n(1~32):資料傳送點數。若使用32位元指令FROM X0
K0 K5
D.
D0
n K2
m1 m2
寫入擴充模組指令(TO)(FNC79)(1)
指定對象:來源運算元使用元件如下。 佔用位址:TO、TOP佔用9個位址,DTO、DTOP佔用17個位址。
使用時機:寫入資料至擴充模組之緩衝記憶 體(BFM)。TO指令格式如下:K n X K n Y T C D V 、 Z
S . K 、 H
m 1 = 0 ~ 7 m 2 = 0 ~ 3 1 n = 1 ~ 3 2
K n M K n S
寫入擴充模組指令(TO)(FNC79)(2)
m1(0~7):為特殊模組編號。例如:較靠近 FX2者為編號0,第4個模組編號3。 m2(0~31):特殊模組內記憶體編號。特殊模 組內有編號0~31個緩衝記憶體(BFM)。 n(1~32):資料傳送點數。若使用32位元指令 DTO時,則n=1~16。 本例中,將D0內資料寫至第0個特殊模組內 第5個BFM(m2=K5,n=K1)內。範例4.32:應用FROM及TO指令配合FX- 2AD-PT溫度檢知模組進行溫度控制
M 8 0 0 2
[ M O V P 0 D 0 ]
K
M 1 0
[ M O V P 1 0 0 0 D 1 ]
K M 8 0 0 0
[ B C D D 0 K 4 Y 0 ]
[ T O K 0 K 1 K 4 K 1 ]
[ F R O M K 0 K 5 D 0 K 1 ]
[ C M P D 1 D 0 M 1 0 ]
範例4.32:應用FROM及TO指令配合FX- 2AD-PT溫度檢知模組進行溫度控制(續1)
PLC RUN,將K0傳送至D0、K1000傳送至D1 溫度設定100℃(K1000,0.1℃/單位)。溫度感 測器採用PT100,其值經由FX-2AD-PT溫度檢 知模組之第5個BFM(或編號#4)傳送至FX2之D0 暫存器內。 透過CMP指令比較D0、D1(K1000)之數值,若 D0<K1000(或D0=K1000),M10=ON(或M11=ON),Y20=ON,加熱器加熱;若D0>K1000,
M12=ON,Y20=OFF,加熱器不加熱。