You are on page 1of 38

Tp l$nh S7-200

Trang !




GIO TRNH TP L#NH
PLC SIEMENS S7-200



ThS. Nguyn B H$i
!i h$c N&ng - Tr)*ng !i h$c Bch khoa
hoinb@ud.edu.vn




Gio trnh -.y -0 bao g3m 3 ph.n:
1. Gio trnh l thuy4t
2. Gio trnh t7p l8nh
3. Gio trnh bi t7p






Tp l$nh S7-200
Trang "

M%C L%C

1. L'nh logic v*i bit............................................................................................................. 4
1.1 Contact ............................................................................................................................................... 4
1.1.1 Cng tc ..................................................................................................................................... 4
1.1.2 Cng tc t$c khc ...................................................................................................................... 4
1.1.3 L'nh +,o bit, l'nh s%.n ............................................................................................................. 4
1.2 Coil...................................................................................................................................................... 6
1.2.1 L'nh ra ....................................................................................................................................... 6
1.2.2 L'nh ra t$c khc......................................................................................................................... 6
1.2.3 L'nh Set, Reset.......................................................................................................................... 6
1.2.4 L'nh Set, Reset Immediat .......................................................................................................... 6
1.2.5 L'nh khng lm g c,................................................................................................................. 7
2. L'nh so snh................................................................................................................... 8
3. L'nh chuy-n /0i .............................................................................................................. 9
4. L'nh /2nh th4i ............................................................................................................... 11
5. L'nh b6 /7m.................................................................................................................. 13
6. L'nh d2ch chuy-n nh*............................................................................................... 15
7. L'nh v*i B9ng ............................................................................................................... 16
7.1 L'nh thm vo b9ng ....................................................................................................................... 16
7.2 L'nh Memory Fill............................................................................................................................. 17
7.3 L'nh tm ki7m trong b9ng .............................................................................................................. 17
8. L'nh ton s< h=c........................................................................................................... 19
8.1 C6ng, Tr>, Nhn, Chia s< nguyn, s< th@c.................................................................................. 19
8.2 L'nh tAng gi9m m6t /+n v2 ............................................................................................................ 21
8.3 Cc l'nh hm s< h=c ...................................................................................................................... 22
9. L'nh vng lCp PID......................................................................................................... 22
10. L'nh php ton logic .................................................................................................... 29
10.1 L'nh /9o byte, word, doubleword ............................................................................................ 29
10.2 L'nh AND, OR, XOR ................................................................................................................... 29
11. L'nh d2ch v quay ......................................................................................................... 30
11.1 D2ch tri hay ph9i ........................................................................................................................ 30
11.2 Quay tri hay ph9i....................................................................................................................... 31
11.3 L'nh d2ch thanh ghi cc bit (Shift Register Bit): ..................................................................... 32
11.4 L'nh SWAP.................................................................................................................................. 33
12. Cc l'nh /iDu khi-n ch?+ng trnh................................................................................ 33
12.1 END c /iDu ki'n ........................................................................................................................ 33
12.2 STOP............................................................................................................................................ 33
12.3 L'nh Watchdog Reset ................................................................................................................ 34
12.4 L'nh nh9y.................................................................................................................................... 34
12.5 L'nh SCR..................................................................................................................................... 35
13. L'nh ch?+ng trnh con................................................................................................. 36
14. L'nh ngFt ....................................................................................................................... 38

Tp l$nh S7-200
Trang #



Mt s$ qui &'nh khi tra c)u l,nh v s. d0ng l,nh:
- Trn cng l ph.n tn l8nh ho9c nhm l8nh.
- Ti4p theo l c php l8nh, l.n l):t trong LAD, FBD v STL.
- D);i cng l nh=ng lo!i CPU S7-200 cho php s? d@ng l8nh, l)u A -y chB bao g3m 03 lo!i CPU
m;i: 221, 222 v 224.
- Bn c!nh l ph.n m tD ho!t -Eng c0a l8nh.
Tp l$nh S7-200
Trang $
Cc tr)*ng h:p lFi l cc tr)*ng h:p gy lFi khi4n -.u ra ENO = 0, bnh th)*ng khi l8nh -):c thGc hi8n th
ENO = 1.
- Cc bit -9c bi8t trong vng SM c gi trH thay -Ji ty theo k4t quD thGc hi8n l8nh.
- BDng cc ton h!ng chB ra cc thng sL h:p l8 c0a l8nh
- Sau -y l nh=ng k hi8u khi g l8nh trong STEP 7:
o Trong LAD: ---> nghMa l c thN nLi ti4p l8nh khc (nh)ng khng bOt buEc).
o Trong LAD: --->> nghMa l bOt buEc phDi nLi ti4p l8nh khc.
o Tn bi4n nPm trong ngo9c kp (v d@ var) l bi4n ton c@c.
o Tn bi4n c k hi8u # -Png tr);c l bi4n c@c bE.
o K hi8u ? hay ???? nghMa l yu c.u ton h!ng.
o K hi8u << ho9c >> yu c.u ho9c ton h!ng ho9c nLi l8nh khc.
o K hi8u >I cho bi4t - l -.u ra ENO.
o K tG % tr);c tn bi4n nghMa l bi4n trGc ti4p trong IEC.
o Trong FBD, dQu trn nhR A -.u vo -nh dQu -Do (nh) trong -i8n t?); mEt g!ch d$c ngOn
(|) A -.u vo -nh dQu gi trH tSc khOc (-.u vo trGc ti4p).
1. L'nh logic v*i bit
1.1 Contact
1.1.1 Cng tFc
Cng tOc th)*ng mA (Normally Open, vi4t tOt l NO) v cng tOc th)*ng
-ng (Normally Closed, vi4t tOt l NC). Li v;i PLC, mFi cng tOc -!i di8n
cho tr!ng thi mEt bit trong bE nh; d= li8u hay vng Dnh c0a cc -.u vo,
ra. Cng tOc th)*ng mA sT -ng (ON - nghMa l cho dng -i8n -i qua) khi
bit bPng 1 cn cng tOc th)*ng -ng sT -ng (ON) khi bit bPng 0.

Trong LAD, cc l8nh ny -):c biNu diUn bPng chnh cc cng tOc th)*ng
mA v th)*ng -ng. Trong FBD, cc cng tOc th)*ng mA -):c biNu diUn
nh) cc -.u vo ho9c ra c0a cc khLi chSc nVng AND ho9c OR. Cng tOc
th)*ng -ng -):c thm dQu -Do (vng trn nhR) A -.u vo t)+ng Sng.

Trong STL, cc cng tOc th)*ng mA -):c s? d@ng trong cc l8nh LOAD,
AND ho9c OR. L8nh LOAD ghi gi trH bit -):c -nh -Ha chB bAi ton h!ng
c0a l8nh vo -Bnh ngVn x4p, nh=ng gi trH cW trong ngVn x4p bH -Xy xuLng
mEt b7c (gi trH d);i cng sT mQt). Cc l8nh AND v OR thGc hi8n php
ton logic AND hay OR gi=a gi trH -):c trR -4n bAi ton h!ng v;i -Bnh
ngVn x4p, k4t quD -):c ghi vo -Bnh ngVn x4p, nh=ng gi trH cW trong ngVn
x4p bH -Xy xuLng mEt b7c. Hon ton t)+ng tG -Li v;i cc cng tOc th)*ng
-ng, -):c s? d@ng trong cc l8nh LOAD NOT, AND NOT v OR NOT
(gi trH -):c trR -4n bAi ton h!ng sT bH -Do).

1.1.2 Cng tFc tGc khFc
Trong STL, cc cng tOc th)*ng mA tSc khOc -):c s? d@ng trong cc l8nh
LOAD IMMEDIATE (ghi gi tr #$u vo v't l vo #(nh ng+n x-p, nh0ng
gi tr c3 trong ng+n x-p b #5y xu7ng m9t b'c (gi tr d1:i cng s= m>t)),
AND IMMEDIATE ho9c OR IMMEDIATE (th?c hi@n php ton l gic And hay Or gi0a gi tr #$u vo
v't l v:i #(nh ng+n x-p, k-t quA #1Bc ghi vo #(nh ng+n x-p, nh0ng gi tr c3 trong ng+n x-p b #5y xu7ng
m9t b'c). Hon ton t)+ng tG -Li v;i cc cng tOc th)*ng -ng tSc khOc, -):c s? d@ng trong cc l8nh
LOAD NOT IMMEDIATE, AND NOT IMMEDIATE v OR NOT IMMEDIATE (gi trH -.u vo v7t l bH
-Do).
1.1.3 L'nh /9o bit, l'nh s?4n
L8nh -Do thay -Ji dng nVng l):ng (Power Flow). N4u dng nVng l):ng g9p l8nh ny, n sT bH ch9n l!i.
Ng):c l!i n4u pha tr);c l8nh ny khng c dng nVng l):ng, n sT trA thnh ngu3n cung cQp dng nVng
l):ng. Trong LAD, l8nh ny -):c biNu diUn nh) mEt cng tOc. Trong FBD, l8nh -Do khng c biNu t):ng
ring. N -):c tch h:p nh) l -.u vo -Do c0a nh=ng khLi chSc nVng khc (v;i vng trn nhR A -.u vo
c0a cc khLi chSc nVng -). Trong STL, l8nh -Do -Do gi trH c0a -Bnh ngVn x4p: 0 thnh 1 v 1 thnh 0.
L8nh ny khng c ton h!ng.
Tp l$nh S7-200
Trang %
L,nh s*2n: Yu thuEc nhm l8nh cc cng tOc, ghi nh7n tr!ng thi cc bit d= li8u (0 hay 1), quen thuEc v;i
khi ni8m mSc. Cc l8nh vY s)*n ghi nh7n khng phDi mSc -+n thu.n m l sG bi4n -Ji mSc. L8nh s)*n
d)+ng (Positive Transition) cho dng nVng l):ng -i qua trong khoDng th*i gian bPng th*i gian mEt vng
qut khi A -.u vo c0a n c sG thay -Ji mSc tZ 0 ln 1. L8nh s)*n m (Negative Transition) cho dng
nVng l):ng -i qua trong khoDng th*i gian bPng th*i gian mEt vng qut khi A -.u vo c0a n c sG thay -Ji
mSc tZ 1 xuLng 0.
Trong LAD, cc l8nh ny -):c biNu diUn cWng nh) cc cng tOc. Trong FBD, cc l8nh ny -):c biNu diUn
bPng cc khLi chSc nVng P v N. Trong STL, l8nh Edge Up, n4u pht hi8n c sG thay -Ji mSc c0a -Bnh
ngVn x4p tZ 0 ln 1, sT -9t vo -Bnh ngVn x4p gi trH 1. Trong tr)*ng h:p ng):c l!i, n -9t vo - gi trH 0.
T)+ng tG, l8nh Edge Down, n4u pht hi8n c sG thay -Ji mSc c0a -Bnh ngVn x4p tZ 1 xuLng 0, sT -9t vo
-Bnh ngVn x4p gi trH 1. Trong tr)*ng h:p ng):c l!i, n cWng -9t vo - gi trH 0.

Ch : Theo c1u trc ho2t +3ng c5a PLC, s7 thay +8i m$c t1t nhin ch: +%<c pht hin gi$a cc
vng qut lin ti'p. Do ) m*i lnh s%-n ny c0n m3t bit nh4 )6 nh4 tr8ng thi )0u vo c9a n <
vng qut k' tr%4c. V )=c tnh ny m t?ng s@ lnh s%-n )%Ac sB dCng trong m3t ch%.ng trnh
bD h8n ch' (do dung l%Ang b3 nh4 dnh cho chng c h8n).
V d0 cho cc l,nh NOT, P, N:



Tp l$nh S7-200
Trang &
1.2 Coil
1.2.1 L'nh ra
Gi trH bit -):c -Hnh -Ha chB bAi ton h!ng c0a l8nh ra phDn Dnh tr!ng thi c0a
dng nVng l):ng (Power Flow) A -.u vo l8nh ny. Trong LAD v FBD, l8nh
ra -9t gi trH bit -):c trR -4n bAi ton h!ng c0a n bPng gi trH dng nVng
l):ng A -.u vo c0a l8nh. Trong STL, l8nh ra sao chp gi trH -Bnh ngVn x4p
ra gi trH bit -):c trR -4n bAi ton h!ng c0a l8nh.
1.2.2 L'nh ra tGc khFc
Gi trH -.u ra r*i r!c (digital) v7t l -):c -Hnh -Ha chB bAi ton h!ng c0a l8nh
ra trGc ti4p phDn Dnh tr!ng thi c0a dng nVng l):ng (Power Flow) A -.u vo
l8nh ny. Trong LAD v FBD, l8nh ra trGc ti4p -9t -3ng th*i gi trH -.u ra v7t
l -):c trR -4n bAi ton h!ng c0a n v bit Dnh c0a -.u ra ny bPng gi trH
dng nVng l):ng A -.u vo c0a l8nh. iYu - khc v;i l8nh ra thng th)*ng
A chF l8nh ra thng th)*ng chB ghi gi trH vo bit Dnh c0a -.u ra. Trong STL,
l8nh ra trGc ti4p sao chp gi trH -Bnh ngVn x4p ra -3ng th*i gi trH -.u ra v7t
l -):c trR -4n bAi ton h!ng c0a l8nh v bit Dnh c0a -.u ra ny.
1.2.3 L'nh Set, Reset
Cc l8nh SET v RESET -9t mEt sL cc bit lin ti4p trong bE nh; d= li8u
thnh 1 (Set) hay 0 (Reset). SL l):ng cc bit -):c -Hnh bAi ton h!ng [N] v
bOt -.u tZ bit -):c -Hnh -Ha chB bAi ton h!ng [bit]. SL l):ng cc bit c
thN Set ho9c Reset nPm trong khoDng tZ 1 -4n 255. Trong tr)*ng h:p s? d@ng
l8nh Reset v;i cc bit nPm trong nh=ng vng T hay C, cc bE -Hnh th*i hay
bE -4m t)+ng Sng sT bH reset. NghMa l bit tr!ng thi c0a chng -):c -)a vY 0 v sL -ang -4m cWng bH xa
(sT c gi trH 0).
Nh0ng lCi c thE #1Bc gy nn bFi cc l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
+ LCi 0006: #a ch( gin ti-p.
+ LCi 0091: ton hHng v1Bt qu gi:i hHn cho php.
1.2.4 L'nh Set, Reset Immediat
Cc l8nh SET IMMEDIATE v RESET IMMEDIATE -9t mEt sL cc -.u ra r*i r!c (digital) v7t l lin ti4p
thnh 1 (Set) hay 0 (Reset). SL l):ng cc -.u ra -):c -Hnh bAi ton h!ng [N] v bOt -.u tZ -.u ra -):c -Hnh
-Ha chB bAi ton h!ng [bit]. SL l):ng cc -.u ra v7t l c thN Set ho9c Reset nPm trong khoDng tZ 1 -4n 12.
K tG I trong nh=ng l8nh ny (Immediate) ni ln tnh tSc th*i. Cc l8nh ny ghi gi trH m;i ra cc -.u ra
v7t l -3ng th*i ghi cD vo cc gi trH Dnh c0a chng. iYu - khc v;i nh=ng l8nh Set v Reset thng
th)*ng chB ghi gi trH m;i vo vng Dnh c0a cc -.u ra.
Nh0ng lCi c thE #1Bc gy nn bFi cc l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
+ LCi 0006: #a ch( gin ti-p.
+ LCi 0091: ton hHng v1Bt qu gi:i hHn cho php.


V d@:
Tp l$nh S7-200
Trang '




1.2.5 L'nh khng lm g c9
L8nh khng lm g (No Operation) khng tc -Eng -4n ch)+ng trnh. M9c d n
cWng c mEt ton h!ng [N] d!ng Byte, l mEt hPng sL trong khoDng tZ 1 -4n 255.

Tp l$nh S7-200
Trang (
2. L'nh so snh

So snh Byte: L8nh so snh Byte dng -N so snh 02 gi trH d!ng byte
-):c -Hnh -Ha chB bAi hai ton h!ng A -.u vo c0a l8nh: [IN1] v [IN2].
C tQt cD 06 php so snh c thN -):c thGc hi8n: [IN1] = [IN2], [IN1]
>= [IN2], [IN1] <= [IN2], [IN1] > [IN2], [IN1] < [IN2], [IN1] <>
[IN2]. Cc byte -):c -em so snh l nh=ng gi trH khng dQu. Trong
LAD, l8nh ny c d!ng mEt cng tOc v cng tOc - -ng (ON) khi -iYu ki8n -em so snh c gi trH -ng.
Trong FBD, -.u ra sT c gi trH 1 n4u -iYu ki8n -em so snh l -ng. Trong STL, l8nh -):c thGc hi8n sT ghi
gi trH 1 vo -Bnh ngVn x4p (v;i nh=ng l8nh Load) ho9c thGc hi8n php ton l gic AND hay OR (ty theo
l8nh c@ thN) gi trH 1 v;i -Bnh ngVn x4p n4u -iYu ki8n so snh -ng.

So snh s$ nguyn (Integer): L8nh so snh sL nguyn dng -N so snh 02 gi trH d!ng Integer -):c -Hnh
-Ha chB bAi hai ton h!ng A -.u vo c0a l8nh: [IN1] v [IN2]. C tQt cD 06 php so snh c thN -):c thGc
hi8n: [IN1] = [IN2], [IN1] >= [IN2], [IN1] <= [IN2], [IN1] > [IN2], [IN1] < [IN2], [IN1] <> [IN2].
Cc sL nguyn -):c -em so snh l nh=ng gi trH c dQu: 16#7FFF > 16#8000.

So snh t5 kp (Double Word): L8nh so snh tZ kp dng -N so snh 02 gi trH d!ng Double Word -):c
-Hnh -Ha chB bAi hai ton h!ng A -.u vo c0a l8nh: [IN1] v [IN2]. C tQt cD 06 php so snh c thN -):c
thGc hi8n: [IN1] = [IN2], [IN1] >= [IN2], [IN1] <= [IN2], [IN1] > [IN2], [IN1] < [IN2], [IN1] <> [IN2].
Cc gi trH tZ kp -):c -em so snh l nh=ng gi trH c dQu: 16#7FFFFFFF > 16#80000000.

So snh s$ th6c (Real): L8nh so snh sL thGc dng -N so snh 02 gi trH d!ng Real -):c -Hnh -Ha chB bAi
hai ton h!ng A -.u vo c0a l8nh: [IN1] v [IN2]. C tQt cD 06 php so snh c thN -):c thGc hi8n: [IN1] =
[IN2], [IN1] >= [IN2], [IN1] <= [IN2], [IN1] > [IN2], [IN1] < [IN2], [IN1] <> [IN2]. Cc sL thGc -):c
-em so snh l nh=ng gi trH c dQu theo kiNu dQu phXy -Eng.

V d@ s? d@ng l8nh so snh:

Tp l$nh S7-200
Trang )



3. L'nh chuy-n /0i





V d@ Round v Truncate:
Tp l$nh S7-200
Trang !*


V d@ SEG (Segment):


Ngoi ra cn c cc l8nh chuyNn -Ji sang m ASCII.
Tp l$nh S7-200
Trang !!
4. L'nh /2nh th4i
SIMATIC S7-200 c 03 lo!i bE -Hnh th*i:
- B &ng tr7 (On - Delay Timer) TON
- B &ng tr7 c nh9 (Retentive On - Delay Timer) TONR
- B ng:t tr7 (Off - Delay Timer) TOF

Cc bE -ng trU v -ng trU c nh; bOt -.u -4m th*i gian khi c -.u
vo EN (Enable) A mSc 1 (ON). Lc gi trH -4m -):c l;n h+n ho9c
bPng gi trH -9t tr);c t!i -.u vo PT (Preset Time) th bit tr!ng thi sT
-):c -9t bPng 1 (ON). iYu khc nhau gi=a hai lo!i bE -ng trU ny
l: bE -ng trU bnh th)*ng sT bH reset (cD gi trH -ang -4m l[n bit
tr!ng thi -Yu bH xa vY 0) khi -.u vo EN bPng 0; trong khi - bE -Hnh th*i c nh; l)u l!i gi trH c0a n khi
-.u vo EN bPng 0 v ti4p t@c -4m n4u -.u vo EN l!i bPng 1. Nh) v7y ta c thN dng lo!i c nh; -N cEng
th*i gian nh=ng lc -.u vo EN bPng 1. Lo!i bE -Hnh th*i ny c thN reset (xa gi trH -ang -4m vY 0) bPng
l8nh R (Reset). CD hai lo!i bE -ng trU v[n ti4p t@c -4m th*i gian ngay cD sau khi - -!t -4n gi trH -9t tr);c
PT v chB dZng -4m khi -!t gi trH tLi -a 32767 (16#7FFF).

BE ngOt trU dng -N -)a gi trH -.u ra (bit tr!ng thi) vY 0 (OFF) trU mEt khoDng th*i gian sau khi -.u vo
(EN) -Ji vY 0. Khi -.u vo EN -):c -9t bPng 1 (ON) th bit tr!ng thi c0a bE ngOt trU cWng bPng 1 ngay lc
- -3ng th*i gi trH -4m c0a n bH xa vY 0. Khi -.u vo EN vY 0, bE -Hnh th*i bOt -.u -4m v -4m cho -4n
khi -!t gi trH -9t tr);c PT. Lc - bit tr!ng thi c0a bE ngOt trU sT vY 0 -3ng th*i n cWng ngZng -4m. N4u
-.u vo EN chB bPng 0 trong khoDng th*i gian ngOn h+n th*i gian -):c -9t r3i quay l!i bPng 1 th bit tr!ng
thi c0a bE -Hnh th*i v[n gi= nguyn bPng 1. BE ngOt trU chB bOt -.u -4m khi c s)*n thay -Ji tZ 1 thnh 0
A -.u vo EN.

N4u bE ngOt trU A trong vng mEt SCR (Sequence Control Relay) v vng SCR - khng -):c kch ho!t th
gi trH -4m c0a n -):c xa vY 0, bit tr!ng thi cWng bPng 0 (OFF) v bE -Hnh th*i khng -4m. Khi ni8m
vng SCR sT -):c -Hnh nghMa A ph.n sau c0a ti li8u ny.



Th*i gian trU -):c tnh nh) l tch c0a gi tr #ang #-m v;i #9 phn giAi c0a c0a bE -Hnh th*i.



Nh0ng b9 #nh thIi c nh: c #a ch( #1Bc qui #nh ring. Nh0ng b9 #nh thIi cn lHi (khng nh:) c thE
#1Bc khai bo nh1 l b9 #ng trK hoGc ngLt trK, nh1ng khng thE l cA hai. V dM khng thE c TON 33 v
TOF 33 #Nng thIi.
BDng sau tm tOt nh=ng -9c -iNm ho!t -Eng c0a ba lo!i bE -Hnh th*i nu trn:

Tp l$nh S7-200
Trang !"

L8nh Reset (R) c thN -):c s? d@ng -N reset bQt k\ bE -Hnh th*i no. Cc bE -Hnh th*i c nh; (lo!i TONR)
chB c thN reset bPng l8nh ny. Cc bE -Hnh th*i sau khi reset c bit tr!ng thi cWng nh) gi trH -4m -Yu
-):c xa vY 0. Cc bE ngOt trU (TOF) chB bOt -.u -4m khi c sG thay -Ji tZ 1 xuLng 0 A -.u vo IN.

Cc b &'nh th2i c & phn gi=i khc nhau c cch ho>t &ng c?ng khc nhau. Chng ta xem xt kA
h3n vC vDn &C ny:

B &'nh th2i v9i & phn gi=i 1 ms:
BE -Hnh th*i lo!i ny -4m sL khoDng th*i gian 1 ms tri qua kN tZ khi n -):c kch ho!t. BE -Hnh th*i v;i
-E phn giDi 1 ms -):c kch ho!t bPng l8nh khai bo c0a n nh)ng sau - n -):c c7p nh7t (bit tr!ng thi
cWng nh) gi trH -4m) mFi giy mEt l.n mEt cch -Ec l7p khng ph@ thuEc vo vng qut ch)+ng trnh. Ni
mEt cch khc, mEt bE -Hnh th*i lo!i ny c thN -):c c7p nh7t nhiYu l.n trong mEt vng qut n4u nh) th*i
gian vng qut l;n h+n 1 ms. BAi v mEt bE -Hnh th*i v;i -E phn giDi 1 ms c thN -):c kch ho!t A bQt k\
mEt th*i -iNm no trong vng 1 ms nn ta nn -9t gi trH -9t tr);c l;n h+n 1 -+n vH so v;i gi trH yu c.u
c.n -4m. V d@ -N -4m khoDng th*i gian 56 ms, ta th)*ng -9t gi trH -9t tr);c bPng 57.

B &'nh th2i v9i & phn gi=i 10 ms:
BE -Hnh th*i lo!i ny -4m sL khoDng th*i gian 10 ms tri qua kN tZ khi n -):c kch ho!t. BE -Hnh th*i v;i
-E phn giDi 10 ms -):c kch ho!t bPng l8nh khai bo c0a n v sau - n -):c c7p nh7t (bit tr!ng thi
cWng nh) gi trH -4m) mFi vng qut mEt l.n A ngay -.u mFi vng qut bPng cch cEng vo gi trH -ang
-4m c0a n sL khoDng th*i gian 10 ms tri qua kN tZ -.u vng qut tr);c. Ni mEt cch khc, gi trH -ang
-4m c0a bE -Hnh th*i lo!i ny gi= nguyn khng -Ji trong suLt th*i gian mEt vng qut. BAi v mEt bE -Hnh
th*i v;i -E phn giDi 10 ms c thN -):c kch ho!t A bQt k\ mEt th*i -iNm no trong vng 10 ms nn ta nn
-9t gi trH -9t tr);c l;n h+n 1 -+n vH so v;i gi trH yu c.u c.n -4m. V d@ -N -4m khoDng th*i gian 140 ms,
ta th)*ng -9t gi trH -9t tr);c bPng 15.

B &'nh th2i v9i & phn gi=i 100 ms: BE -Hnh th*i lo!i ny tnh sL khoDng th*i gian 100 ms tri qua kN tZ
khi n -):c c7p nh7t l.n cuLi. L8nh khai bo bE -Hnh th*i v;i -E phn giDi 100 ms c7p nh7t bit tr!ng thi
cWng nh) gi trH -4m c0a n bPng cch cEng vo gi trH -ang -4m c0a n sL khoDng th*i gian 100 ms tri
qua kN tZ vng qut tr);c. Nh) v7y, gi trH -ang -4m c0a bE -Hnh th*i lo!i ny chB -):c c7p nh7t khi c
l8nh khai bo n thGc hi8n. V th4 n4u bE -Hnh th*i v;i -E phn giDi 100 ms - -):c kch ho!t nh)ng l8nh
khai bo n khng -):c thGc hi8n trong mFi vng qut th n c thN khng -):c c7p nh7t kHp th*i v -4m
thi4u th*i gian. Ng):c l!i n4u l8nh khai bo bE -Hnh th*i -):c thGc hi8n nhiYu l.n trong mEt vng qut th
n c thN -4m d) th*i gian do mEt sL khoDng th*i gian 100 ms -):c cEng nhiYu l.n. Tm l!i nn s? d@ng
bE -Hnh th*i lo!i ny v;i l8nh khai bo thGc hi8n chnh xc mFi vng qut mEt l.n. BAi v mEt bE -Hnh th*i
v;i -E phn giDi 100 ms c thN -):c khAi -Eng A bQt k\ mEt th*i -iNm no trong vng 100 ms nn ta nn
-9t gi trH -9t tr);c l;n h+n 1 -+n vH so v;i gi trH yu c.u c.n -4m. V d@ -N -4m khoDng th*i gian 2100
ms, ta th)*ng -9t gi trH -9t tr);c bPng 22.

EF hiFu thm vC c3 chH cIp nhIt cJa cc b &'nh th2i v9i nhKng & phn gi=i khc nhau, chng ta xem
xt v d0 sau, t>o b &'nh th2i 3 giy v9i lLn l*Mt ba b &'nh th2i khc nhau (xem ch*3ng trnh km
theo):
.u tin bE -Hnh th*i v;i -E phn giDi 1 ms -):c s? d@ng (T32, gi trH -9t tr);c 300). Q0.0 sT c gi trH
bPng 1 (ON) trong th*i gian mEt vng qut khi v chB khi no th*i -iNm c7p nh7t c0a bE -Hnh th*i m gi
trH -4m v):t qua gi trH -9t tr);c r+i vo -ng gi=a lc thGc hi8n hai l8nh ny. NghMa l sau khi l8nh
tr);c -):c thGc hi8n nh)ng phDi tr);c khi thGc hi8n l8nh sau.
Tp l$nh S7-200
Trang !#
N4u s? d@ng bE -Hnh th*i v;i -E phn giDi 10 ms (T33, gi trH -9t tr);c 30), Q0.0 khng bao gi* c gi
trH 1 (lun lun OFF).
Tr)*ng h:p cuLi cng s? d@ng bE -Hnh th*i v;i -E phn giDi 100 ms (T37, gi trH -9t tr);c bPng 3). Q0.0
lun lun c gi trH bPng 1 (ON) trong -ng th*i gian mEt vng qut.
N -Dm bDo chOc chOn Q0.0 sT c gi trH 1 (ON) trong th*i gian mEt vng qut, ta phDi dng cng tOc
th)*ng -ng Q0.0 -N kch ho!t cc bE -Hnh th*i thay v dng cng tOc th)*ng -ng v;i bit tr!ng thi c0a
n.

5. L'nh b6 /7m
Ba lo!i bE -4m: bE -4m ln (Count Up), bE -4m xuLng (Count Down)
v lo!i bE -4m c thN vZa -4m ln vZa -4m xuLng (Count Up / Down).

BE -4m ln -4m cho -4n gi trH tLi -a c0a n (32767) mFi khi c s)*n
ln A -.u vo -4m ln (CU). Khi gi trH -4m (Cxxx) l;n h+n ho9c bPng
gi trH -9t tr);c (PV) th bit tr!ng thi (Cxxx) sT c gi trH 1 (ON). BE
-4m c thN bH xa (reset) bAi mSc 1 A -.u vo reset (R), lc - cD gi trH
-4m l[n bit tr!ng thi sT bH xa vY 0.

BE -4m xuLng -4m tZ gi trH -9t tr);c (PV) mFi khi c s)*n ln A -.u
vo -4m xuLng (CD). Khi gi trH -4m (Cxxx) bPng 0, bit tr!ng thi
(Cxxx) sT bPng 1 -3ng th*i bE -4m ngZng -4m. MSc cao A -.u vo LD
xa bit tr!ng thi vY 0 v tDi gi trH -9t tr);c PV vo gi trH -4m.

BE -4m vZa -4m ln vZa -4m xuLng -4m ln khi c s)*n ln A -.u vo
-4m ln (CU) v -4m xuLng khi c s)*n ln A -.u vo -4m xuLng
(CD). Khi gi trH -4m (Cxxx) l;n h+n ho9c bPng gi trH -9t tr);c (PV)
th bit tr!ng thi (Cxxx) sT c gi trH 1 (ON). BE -4m c thN bH xa
(reset) bAi mSc 1 A -.u vo reset (R), lc - cD gi trH -4m l[n bit tr!ng
thi sT bH xa vY 0.

SL hi8u cc bE -4m: C0 -4n C255. Trong CPU 221, 222 v 224 mFi bE -4m -):c xc -Hnh lo!i ty theo
l8nh khai bo nh)ng khng thN khai bo cc bE -4m lo!i khc nhau v;i cng mEt -Ha chB (trong vng C).

Trong STL, -.u vo reset (R) c0a bE -4m ti4n l bit -Bnh c0a ngVn x4p v -.u vo -4m c0a n (CU) l bit
thS hai c0a ngVn x4p. Trong STL, -.u vo tDi (LD) c0a bE -4m li l bit -Bnh c0a ngVn x4p v -.u vo -4m
c0a n (CD) l bit thS hai c0a ngVn x4p. Trong STL, -.u vo reset (R) c0a bE -4m vZa -4m ti4n vZa -4m
Tp l$nh S7-200
Trang !$
li l bit -Bnh c0a ngVn x4p, -.u vo -4m li c0a n (CD) l bit thS hai c0a ngVn x4p v -.u vo -4m ti4n
c0a n (CU) l bit thS ba c0a ngVn x4p.



Cc bE -4m cn c thN bH reset bAi l8nh Reset. BE -4m vZa ti4n vZa li khi -4m -4n gi trH tLi -a (32767)
m ti4p t@c -4m ln thi sL -4m sT nhDy sang gi trH tLi thiNu (-32768) v ti4p t@c -4m bnh th)*ng. T)+ng
tG, n4u n -4m li khi - A gi trH nhR nhQt (-32768) th sL -4m sT nhDy thnh gi trH l;n nhQt (32767).

V d@ s? d@ng bE -4m:




Tp l$nh S7-200
Trang !%


Cc b9 #-m t7c #9 cao xem gio trnh l thuy-t.

6. L'nh d2ch chuy-n nh*
Cc l,nh d'ch chuyFn mt Byte, mt t5 &3n (Word), mt t5 kp
(Double Word) hay mt s$ th6c (Real):
L8nh dHch chuyNn mEt Byte, Move Byte, sao chp nEi dung nh; kch
th);c mEt byte -):c -Hnh -Ha chB A -.u vo IN ln nh; kch th);c mEt
byte -):c -Hnh -Ha chB A -.u ra OUT. NEi dung byte nh; A -Ha chB [IN]
khng thay -Ji. T)+ng tG cho cc cu l8nh v;i W, DW.
L8nh dHch chuyNn mEt SL thGc, Move Real, sao chp sL thGc kch th);c
32 bit -):c -Hnh -Ha chB A -.u vo IN ln sL thGc kch th);c 32 bit -):c
-Hnh -Ha chB A -.u ra OUT. SL thGc A -Ha chB [IN] khng thay -Ji.
Nh0ng lCi c thE #1Bc gy nn bFi cc l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
+ LCi 0006: #a ch( gin ti-p.


Cc l,nh d'ch chuyFn mt Byte, mt t5 &3n (Word) t)c kh:c: &Nc hoOc
ghi.



L,nh d'ch chuyFn mt kh$i cc byte, Block Move Byte: sao chp nEi
dung mEt sL cc nh; lin ti4p (xc -Hnh bAi ton h!ng A -.u vo N),
mFi kch th);c mEt byte v;i byte -.u tin -):c -Hnh -Ha chB A -.u vo
IN ln khLi cc nh; lin ti4p kch th);c mFi nh; mEt byte v byte
-.u tin -):c -Hnh -Ha chB A -.u ra OUT. SL l):ng cc byte c thN sao
chp nPm trong khoDng tZ 1 -4n 255.
L8nh dHch chuyNn mEt khLi cc tZ -+n, Block Move Word, sao chp nEi
Tp l$nh S7-200
Trang !&
dung mEt sL cc nh; lin ti4p (xc -Hnh bAi ton h!ng A -.u vo N), mFi kch th);c mEt word v;i word
-.u tin -):c -Hnh -Ha chB A -.u vo IN ln khLi cc nh; lin ti4p kch th);c mFi nh; mEt word v
word -.u tin -):c -Hnh -Ha chB A -.u ra OUT. SL l):ng cc word c thN sao chp nPm trong khoDng tZ 1
-4n 255.

L8nh dHch chuyNn mEt khLi cc tZ kp, Block Move Double Word, sao chp nEi dung mEt sL cc nh; lin
ti4p (xc -Hnh bAi ton h!ng A -.u vo N), mFi kch th);c mEt tZ kp v;i tZ kp -.u tin -):c -Hnh -Ha
chB A -.u vo IN ln khLi cc nh; lin ti4p kch th);c mFi nh; mEt tZ kp v tZ kp -.u tin -):c -Hnh
-Ha chB A -.u ra OUT. SL l):ng cc tZ kp c thN sao chp nPm trong khoDng tZ 1 -4n 255.

Nh0ng lCi c thE #1Bc gy nn bFi cc l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
+ LCi 0006: #a ch( gin ti-p.
+ LCi 0091: ton hHng v1Bt qu gi:i hHn cho php.


7. L'nh v*i B9ng
7.1 L'nh thm vo b9ng




Tp l$nh S7-200
Trang !'

7.2 L'nh Memory Fill
L8nh ny -iYn -.y mEt khoDng nh; bao g3m mEt sL cc tZ -+n lin ti4p
(-):c xc -Hnh bAi -.u vo N) v;i tZ -+n (Word) -.u tin -):c -Hnh -Ha
chB bAi -.u ra OUT bPng tZ -+n -):c -Hnh -Ha chB A -.u vo IN. Kch
th);c khoDng nh; c thN nPm trong khoDng tZ 1 -4n 255 tZ -+n.
Nh0ng lCi c thE #1Bc gy nn bFi l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
+ LCi 0006: #a ch( gin ti-p.
+ LCi 0091: ton hHng v1Bt qu gi:i hHn cho php.

V d@:

7.3 L'nh tm ki7m trong b9ng







Tp l$nh S7-200
Trang !(





Tp l$nh S7-200
Trang !)



8. L'nh ton s< h=c
8.1 C6ng, Tr>, Nhn, Chia s< nguyn, s< th@c
Cc l8nh ny cEng (Add) hay trZ (Subtract) hai sL nguyn -):c -Hnh -Ha
chB A cc -.u vo IN1 v IN2, k4t quD l)u vo sL nguyn -):c -Hnh -Ha
chB bAi -.u ra OUT.
[IN1] + [IN2] = [OUT]
[IN1] - [IN2] = [OUT]
Nh0ng lCi c thE #1Bc gy nn bFi l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
+ LCi 0006: #a ch( gin ti-p.
+ Bit #Gc bi@t SM1.1 = 1: lCi trn (Overflow).
Nh0ng bit nh: #Gc bi@t c n9i dung b Anh h1Fng bFi l@nh ny:
+ SM1.0 (Zero): bOng 1 n-u k-t quA bOng 0.
+ SM1.1 (Overflow): bOng 1 n-u k-t quA b trn.
+ SM1.2 (Negative): bOng 1 n-u k-t quA l s7 m.

Cc l8nh ny cEng (Add) hay trZ (Subtract) hai sL nguyn 32 bit -):c -Hnh -Ha chB A cc -.u vo IN1 v
IN2, k4t quD l)u vo sL nguyn 32 bit -):c -Hnh -Ha chB bAi -.u ra OUT.
[IN1] + [IN2] = [OUT]
[IN1] - [IN2] = [OUT]
Nh0ng lCi c thE #1Bc gy nn bFi l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
Tp l$nh S7-200
Trang "*
+ LCi 0006: #a ch( gin ti-p.
+ Bit #Gc bi@t SM1.1 = 1: lCi trn (Overflow).
Nh0ng bit nh: #Gc bi@t c n9i dung b Anh h1Fng bFi l@nh ny:
+ SM1.0 (Zero): bOng 1 n-u k-t quA bOng 0.
+ SM1.1 (Overflow): bOng 1 n-u k-t quA b trn.
+ SM1.2 (Negative): bOng 1 n-u k-t quA l s7 m.

Cc l'nh nhn (Multiply) hay chia (Divide) hai s( nguyn 16 bit -):c -Hnh -Ha chB A cc -.u vo IN1 v
IN2, k4t quD l)u vo sL nguyn -):c -Hnh -Ha chB bAi -.u ra OUT. Trong php chia, sL d) bH bR qua. Bit
bo trn sT thnh 1 n4u k4t quD l;n h+n mEt sL nguyn 16 bit. Nh=ng l8nh ny khng c trong cc CPU
212, 214.
[IN1] * [IN2] = [OUT]
[IN1] / [IN2] = [OUT]
Nh0ng lCi c thE #1Bc gy nn bFi l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
+ LCi 0006: #a ch( gin ti-p.
+ Bit #Gc bi@t SM1.1 = 1: lCi trn (Overflow).
+ Bit #Gc bi@t SM1.3 = 1: lCi chia cho 0 (Divide-by-zero).
Nh0ng bit nh: #Gc bi@t c n9i dung b Anh h1Fng bFi l@nh ny:
+ SM1.0 (Zero): bOng 1 n-u k-t quA bOng 0.
+ SM1.1 (Overflow): bOng 1 n-u k-t quA b trn.
+ SM1.2 (Negative): bOng 1 n-u k-t quA l s7 m.
+ SM1.3 (Divide-by-zero): bOng 1 n-u s7 chia bOng 0.
Trong tr1Ing hBp bit SM1.1 (Overflow) bOng 1, k-t quA s= khng #1Bc ghi v cc bit #Gc bi@t khc lin quan
#-n cc php ton (Zero, Negative, ...) #Pu #1Bc xa vP 0.
Trong tr1Ing hBp bit SM1.3 (Divide-by-zero) bOng 1, cc bit #Gc bi@t khc lin quan #-n cc php ton
(Zero, Negative, ...) #Pu #1Bc gi0 nguyn khng thay #Qi v cc ton hHng F #$u vo c3ng khng #Qi.
Trong cc tr1Ing hBp cn lHi, cc bit #Gc bi@t ni trn s= c gi tr phAn Anh trHng thi cRa k-t quA theo tnh
n+ng cRa chng

Cc l'nh nhn (Multiply) hay chia (Divide) hai s( nguyn 32 bit -):c -Hnh -Ha chB A cc -.u vo IN1 v
IN2, k4t quD l)u vo sL nguyn 32 bit -):c -Hnh -Ha chB bAi -.u ra OUT. Trong php chia, sL d) bH bR qua.
Bit bo trn sT thnh 1 n4u k4t quD l;n h+n mEt sL nguyn 32 bit. Nh=ng l8nh ny khng c trong cc CPU
212, 214.
[IN1] * [IN2] = [OUT]
[IN1] / [IN2] = [OUT]
Nh0ng lCi c thE #1Bc gy nn bFi l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
+ LCi 0006: #a ch( gin ti-p.
+ Bit #Gc bi@t SM1.1 = 1: lCi trn (Overflow).
+ Bit #Gc bi@t SM1.3 = 1: lCi chia cho 0 (Divide-by-zero).
Nh0ng bit nh: #Gc bi@t c n9i dung b Anh h1Fng bFi l@nh ny:
+ SM1.0 (Zero): bOng 1 n-u k-t quA bOng 0.
+ SM1.1 (Overflow): bOng 1 n-u k-t quA b trn.
+ SM1.2 (Negative): bOng 1 n-u k-t quA l s7 m.
+ SM1.3 (Divide-by-zero): bOng 1 n-u s7 chia bOng 0.
Trong tr1Ing hBp bit SM1.1 (Overflow) bOng 1, k-t quA s= khng #1Bc ghi v cc bit #Gc bi@t khc lin quan
#-n cc php ton (Zero, Negative, ...) #Pu #1Bc xa vP 0.
Trong tr1Ing hBp bit SM1.3 (Divide-by-zero) bOng 1, cc bit #Gc bi@t khc lin quan #-n cc php ton
(Zero, Negative, ...) #Pu #1Bc gi0 nguyn khng thay #Qi v cc ton hHng F #$u vo c3ng khng #Qi.

Cc l'nh Nhn, Chia hai s( nguyn (Integer) v ghi k*t qu+ vo s( nguyn di (Double Integer): Cc
l8nh ny nhn (Multiply) hay chia (Divide) hai sL nguyn 16 bit -):c -Hnh -Ha chB A cc -.u vo IN1 v
IN2, k4t quD l)u vo sL nguyn 32 bit -):c -Hnh -Ha chB bAi -.u ra OUT. Trong php chia, k4t quD bao g3m
sL d) A 16 bit cao v th)+ng sL A 16 bit thQp.
[IN1] * [IN2] = [OUT]
[IN1] / [IN2] = [OUT]
Trong STL, l8nh MUL chB s? d@ng 16 bit thQp c0a tZ kp [OUT] lm sL nhn. T)+ng tG l8nh DIV cWng chB
s? d@ng 16 bit thQp c0a tZ kp [OUT] lm sL bH chia.
Nh0ng lCi c thE #1Bc gy nn bFi l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
+ LCi 0006: #a ch( gin ti-p.
Tp l$nh S7-200
Trang "!
+ Bit #Gc bi@t SM1.1 = 1: lCi trn (Overflow).
+ Bit #Gc bi@t SM1.3 = 1: lCi chia cho 0 (Divide-by-zero).
Nh0ng bit nh: #Gc bi@t c n9i dung b Anh h1Fng bFi l@nh ny:
+ SM1.0 (Zero): bOng 1 n-u k-t quA bOng 0.
+ SM1.1 (Overflow): bOng 1 n-u k-t quA b trn.
+ SM1.2 (Negative): bOng 1 n-u k-t quA l s7 m.
+ SM1.3 (Divide-by-zero): bOng 1 n-u s7 chia bOng 0.
Trong tr1Ing hBp bit SM1.3 (Divide-by-zero) bOng 1, cc bit #Gc bi@t khc lin quan #-n cc php ton
(Zero, Negative, ...) #Pu #1Bc gi0 nguyn khng thay #Qi v cc ton hHng F #$u vo c3ng khng #Qi.

Cc s$ th6c &*Mc biFu di7n bPng 32 bit d*9i d>ng dDu phQy &ng theo chuQn ANSI / IEEE 754 - 1985.

Cc v d.:



8.2 L'nh tAng gi9m m6t /+n v2
Tp l$nh S7-200
Trang ""
Thm vo hay b;t -i mEt -+n vH tZ mEt Byte -):c -Hnh -Ha chB A -.u vo
IN, k4t quD l)u vo Byte -):c -Hnh -Ha chB bAi -.u ra OUT. Cc sL trong
Byte ton h!ng -):c xem l cc sL khng dQu.
[IN] + 1 = [OUT]
[IN] - 1 = [OUT]
Nh0ng lCi c thE #1Bc gy nn bFi l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
+ LCi 0006: #a ch( gin ti-p.
+ Bit #Gc bi@t SM1.1 = 1: lCi trn (Overflow).
Nh0ng bit nh: #Gc bi@t c n9i dung b Anh h1Fng bFi l@nh ny:
+ SM1.0 (Zero): bOng 1 n-u k-t quA bOng 0.
+ SM1.1 (Overflow): bOng 1 n-u k-t quA b trn.

T)+ng tG -Li v;i W, DW.

8.3 Cc l'nh hm s< h=c






9. L'nh vng lCp PID
L8nh ny tnh ton vng l9p PID (PID Loop) theo cc -.u vo v nh=ng thng sL tZ bDng -):c -Hnh -Ha chB
bAi TBL.
Nh0ng lCi c thE #1Bc gy nn bFi l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
+ LCi 0006: #a ch( gin ti-p.
+ Bit #Gc bi@t SM1.1 = 1: lCi trn (Overflow).
Nh0ng bit nh: #Gc bi@t c n9i dung b Anh h1Fng bFi l@nh ny:
+ SM1.1 (Overflow): bOng 1 n-u k-t quA b trn.

L8nh PID Loop (Proportional, Integral, Derivative Loop) -):c s? d@ng -N tnh ton vng l9p PID. L8nh
ny chB -):c thGc hi8n n4u nh) -Bnh c0a ngVn x4p (Top Of Stack) bPng 1 trong STL, hay c Power Flow
trong LAD. L8nh ny c hai ton h!ng: [TBL] l -Ha chB byte -.u tin c0a mEt bDng d= li8u cn [LOOP] l
mEt sL nPm trong khoDng tZ 0 -4n 7. iYu ny cWng c nghMa l chB c tLi -a 8 l8nh PID Loop c thN -):c
Tp l$nh S7-200
Trang "#
s? d@ng trong mEt ch)+ng trnh. N4u c hai l8nh PID Loop v;i cng mEt sL [LOOP] th d chng c s?
d@ng hai bDng khc nhau -i n=a cWng v[n Dnh h)Ang -4n nhau v c thN gy nh=ng h7u quD khng l)*ng
tr);c -):c.

BDng d= li8u c0a l8nh PID Loop bao g3m 09 tham sL dng -N -iYu khiNn ho!t -Eng c0a vng l9p: gi trH tSc
th*i v gi trH k4 tr);c (current and previous value) c0a bi4n -iYu khiNn (process variable), gi trH yu c.u
(setpoint), gi trH x? l (output - -.u ra c0a PID), h8 sL khu4ch -!i (gain), th*i gian lQy m[u (sample time),
h8 sL tch phn (integral time - reset), h8 sL vi phn (derivative time - rate) v integral sum (bias).

N thGc hi8n l8nh ny A mEt t.n suQt lQy m[u xc -Hnh, n phDi ho9c l -):c -9t trong mEt ngOt th*i gian
ho9c l -):c thGc hi8n trong ch)+ng trnh chnh qua kiNm sot bAi mEt bE -Hnh th*i. 3ng th*i, th*i gian
lQy m[u t)+ng Sng phDi -):c -)a vo bDng d= li8u c0a l8nh.

Trong STEP 7 Micro / Win 32, chng ta c thN s? d@ng PID Wizard -N t!o thu7t ton v;i PID cho mEt
m!ch -iYu khiNn kn bPng cch ch$n Tools Instruction Wizard -> PID t0 Menu chnh.

^ tr!ng thi Jn -Hnh, mEt bE -iYu khiNn PID sT -iYu chBnh sao cho sai sL gi=a gi trH yu c.u (setpoint SP)
v gi trH -iYu khiNn (process variable PV) bPng 0. Nguyn l c0a mEt bE -iYu khiNn PID nh) v7y thN hi8n
trong ph)+ng trnh sau:
dt
de
Kd Mi edt Ki e Kc t M
t
* * * ) (
0
+ + + =


output = proportional + integral + differential
trong -:
M(t): -.u ra c0a PID (-!i l):ng x? l) nh) mEt hm theo th*i gian
Kc: hPng sL khu4ch -!i
e: sai sL. e = SP - PV
Mi: gi trH ban -.u c0a PID
NhPm m@c -ch p d@ng bE -iYu khiNn PID trn my vi tnh hay PLC ni ring v trong k` thu7t sL
ni chung, chng ta phDi ti4n hnh r*i r!c ha ph)+ng trnh nu trn. C@ thN l lQy m[u v l):ng t? ha
cc bi4n. Ph)+ng trnh -):c vi4t l!i nh) sau:
) ( * * *
1
1
-
=
- + + + =
n n
n
i
i n n
e e Kd Mi e Ki e Kc M
output = proportional + integral + differential
trong -:
Mn: -.u ra c0a PID (-!i l):ng x? l) A th*i -iNm lQy m[u n
Kc: hPng sL khu4ch -!i
en: sai sL A th*i -iNm lQy m[u n. en = SPn - PVn
en-1: sai sL A th*i -iNm lQy m[u ngay tr);c - (n-1). en-1 = SPn-1 - PVn-1
Ki: hPng sL khu4ch -!i c0a thnh ph.n tch phn
Mi: gi trH ban -.u c0a PID
Kd: hPng sL khu4ch -!i c0a thnh ph.n vi phn
TZ ph)+ng trnh ny ta nh7n thQy rPng, n4u nh) thnh ph.n tB l8 (proportional) chB l hm c0a sai sL
A th*i -iNm lQy m[u th thnh ph.n vi phn (differential) l hm sL c0a sai sL A th*i -iNm lQy m[u l[n th*i
-iNm lQy m[u k4 tr);c cn thnh ph.n tch phn (integral) l!i l hm c0a tQt cD cc sai sL tZ th*i -iNm lQy
m[u -.u tin cho -4n th*i -iNm lQy m[u hi8n t!i. Trong k` thu7t sL, l)u l!i tQt cD cc sai sL l -iYu khng
thN thGc hi8n -):c, cWng nh) th7t sG khng c.n thi4t.
V gi trH x? l lun -):c tnh ton A m$i th*i -iNm lQy m[u, kN tZ th*i -iNm -.u tin, nn chB c.n
l)u l!i gi trH k4 tr);c c0a sai sL v thnh ph.n tch phn. Ph)+ng trnh -):c -+n giDn thnh:
) ( * * *
1 -
- + + + =
n n n n n
e e Kd MX e Ki e Kc M
output = proportional + integral + differential
trong -:
Mn: -.u ra c0a PID (-!i l):ng x? l) A th*i -iNm lQy m[u n
Kc: hPng sL khu4ch -!i
en: sai sL A th*i -iNm lQy m[u n. en = SPn - PVn
en-1: sai sL A th*i -iNm lQy m[u ngay tr);c - (n-1). en-1 = SPn-1 - PVn-1
Ki: hPng sL khu4ch -!i c0a thnh ph.n tch phn
Tp l$nh S7-200
Trang "$
MX: gi trH thnh ph.n tch phn A th*i -iNm lQy m[u k4 tr);c (n-1)
Kd: hPng sL khu4ch -!i c0a thnh ph.n vi phn
MEt cch vi4t khc c0a ph)+ng trnh:
Mn = MPn + MIn + MDn
output = proportional + integral + differential
trong -:
Mn: -.u ra c0a PID (-!i l):ng x? l) A th*i -iNm lQy m[u n
MPn: thnh ph.n tB l8 c0a -.u ra PID A th*i -iNm lQy m[u n
MIn: thnh ph.n tch phn c0a -.u ra PID A th*i -iNm lQy m[u n
MDn: thnh ph.n vi phn c0a -.u ra PID A th*i -iNm lQy m[u n
Ta l.n l):t xt -4n tZng thnh ph.n mEt c0a -!i l):ng x? l:

Thnh ph.n tB l8 (proportional) MP l tch c0a hPng sL khu4ch -!i Kc v;i sai sL e. Trong - Kc -9c tr)ng
cho -E nh!y c0a -.u ra PID (Kc cng l;n, bE -iYu khiNn PID cng nh!y) cn e l sai sL gi=a -!i l):ng yu
c.u (setpoint SP) v -!i l):ng thGc t4 (process variable PV). Ph)+ng trnh biNu diUn:
MPn = Kc * (SPn - PVn)
trong -:
MPn: thnh ph.n tB l8 c0a -.u ra PID A th*i -iNm lQy m[u n
Kc: hPng sL khu4ch -!i
SPn: -!i l):ng yu c.u t!i th*i -iNm lQy m[u n
PVn: -!i l):ng thGc t4 t!i th*i -iNm lQy m[u n

Thnh ph.n tch phn (integral) MI tB l8 v;i tJng cc sai sL qua th*i gian, thN hi8n bPng ph)+ng
trnh:
MIn = KC * Ts / Ti * (SPn - PVn ) + MX
trong -:
MIn: thnh ph.n tch phn c0a -.u ra PID A th*i -iNm lQy m[u n
Kc: hPng sL khu4ch -!i
Ts: th*i gian lQy m[u
Ti: h8 sL tch phn
SPn: -!i l):ng yu c.u t!i th*i -iNm lQy m[u n
PVn: -!i l):ng thGc t4 t!i th*i -iNm lQy m[u n
MX: gi trH c0a thnh ph.n tch phn A th*i -iNm lQy m[u k4 tr);c (n-1), cn -):c g$i l integral
sum hay bias.
Sau khi tnh ton gi trH MIn, bias MX -):c thay th4 bAi chnh gi trH MIn - v;i khD nVng c thN bH
-iYu chBnh ho9c cOt (ch9n gi;i h!n), -iYu ny sT -):c ni r A ph.n sau. Gi trH ban -.u c0a bias MX, Mi
th)*ng -):c lQy l gi trH c0a -.u ra bE PID ngay tr);c th*i -iNm thGc hi8n l8nh PID l.n -.u tin. Cc hPng
sL khc Dnh h)Ang -4n thnh ph.n ny l: Kc - hPng sL khu4ch -!i, Ts - th*i gian lQy m[u v Ti - h8 sL tch
phn l -9c tr)ng cho Dnh h)Ang c0a thnh ph.n ny ln ton bE -!i l):ng x? l.

Thnh ph.n vi phn (differential) MD tB l8 v;i -E thay -Ji c0a sai s, thN hi8n qua ph)+ng trnh:
MDn = KC * Td / Ts * ((SPn - PVn ) - (SPn - 1 - PVn - 1 ))
V;i -9c tnh c qun tnh c0a m$i h8 v7t chQt, chng ta c thN giD thi4t rPng -!i l):ng thGc t4 PV khng bao
gi* c sG thay -Ji mEt cch gin -o!n. Tuy nhin -!i l)+ng yu c.u th c thN tVng giDm gy khc (do -):c
tnh trn l thuy4t). VY bDn chQt ton h$c, thnh ph.n vi phn l php lQy -!o hm nn nh=ng sG thay -Ji
gin -o!n c thN gy nn cc gi trH v cng l;n A -.u ra. N trnh hi8n t):ng ny, trong ph)+ng trnh trn
ta giD thi4t SPn = SPn - 1 v c thN vi4t:
MDn = KC * Td / Ts * (PVn - 1 - PVn)
trong -:
MDn: thnh ph.n vi phn c0a -.u ra PID A th*i -iNm lQy m[u n
Kc: hPng sL khu4ch -!i
Ts: th*i gian lQy m[u
Td: h8 sL vi phn
SPn: -!i l):ng yu c.u t!i th*i -iNm lQy m[u n
SPn-1: -!i l):ng yu c.u t!i th*i -iNm lQy m[u n-1
PVn: -!i l):ng thGc t4 t!i th*i -iNm lQy m[u n
PVn-1: -!i l):ng thGc t4 t!i th*i -iNm lQy m[u n-1
Tp l$nh S7-200
Trang "%
Nh) v7y trn thGc t4 khng c.n nh; sai sL A th*i -iNm lQy m[u k4 tr);c m chB c.n nh; -!i l):ng
thGc t4. Trong l.n tnh ton -.u tin PVn-1 -):c lQy bPng PVn.

Ty theo Sng d@ng thGc t4, c thN bR b;t thnh ph.n trong bE -iYu khiNn PID chS khng nhQt thi4t
phDi bao g3m -0 cD ba thnh ph.n, chang h!n c thN t!o bE -iYu khiNn tB l8 (P) hay bE -iYu khiNn chB chSa
cc thnh ph.n tB l8 v tch phn (PI). SG lGa ch$n ny dGa trn cch -9t cc tham sL.
N4u muLn bR thnh ph.n tch phn (bR I), ta ch$n h8 sL tch phn bPng v cng (Ti = (). Trong
tr)*ng h:p ny, thnh ph.n tch phn v[n khng nhQt thi4t bPng khng m c thN bPng mEt gi trH khng
-Ji thng qua gi trH bias MX ban -.u.
N4u muLn bR thnh ph.n vi phn (bR D), ta ch$n h8 sL vi phn bPng khng (Td = 0.0).
N4u muLn bR thnh ph.n tB l8 (bR P), ta ch$n h8 sL khu4ch -!i bPng khng (Kc = 0.0). Trong tr)*ng h:p
ny, v cc hPng sL c0a cc thnh ph.n tch phn v vi phn c tnh theo Kc nn -Li v;i nh=ng thnh ph.n
Qy, Kc -):c hiNu l bPng 1.0.

MEt bE -iYu khiNn PID c hai -.u vo: -!i l):ng yu c.u v -!i l):ng thGc t4. y l nh=ng -!i
l):ng th7t trong Sng d@ng nh) nhi8t -E, p suQt, tLc -E, ... N -)a vo tnh ton trong mEt bE -i.u khiNn,
chng phDi -):c -o, chuyNn -Ji vY gi trH thch h:p v chuXn ha (n4u c.n). Cc b);c ny -Yu c.n thi4t cho
mEt bE -iYu khiNn PID, bE ny -i hRi cc gi trH -.u vo l nh=ng gi trH sL thGc (dQu phXy -Eng) nPm
trong khoDng tZ 0.0 -4n 1.0.
Thng th)*ng, nh=ng gi trH -o -):c -):c -)a vo PLC qua cc -.u vo t)+ng tG (qui vY -i8n p
trong khoDng 0 - 10VDC ho9c dng -i8n 0 - 20mADC) thnh nh=ng gi trH sL nguyn 16 bit c dQu. Tr);c
h4t nh=ng gi trH ny phDi -):c -Ji thnh cc sL thGc 32 bit (dQu phXy -Eng), chang h!n theo thu7t ton sau:
XORD AC0, AC0 //Clear the accumulator.
MOVW AIW0, AC0 //Save the analog value in the accumulator.
LDW>= AC0, 0 //If the analog value is positive,
JMP 0 //then convert to a real number.
NOT //Else,
ORD 16#FFFF0000, AC0 //sign extend the value in AC0.
LBL 0
DTR AC0, AC0 //Convert the 32-bit integer to a real number.
B);c ti4p theo l chuXn ha vY khoDng [0.0 - 1.0] theo ph)+ng trnh:
NNorm = (NRaw / Span) + Offset
trong -:
NNorm l gi trH - chuXn ha, -!i di8n cho mEt -!i l):ng th7t
NRaw l gi trH thGc ch)a chuXn ha, -!i di8n cho mEt -!i l):ng th7t
Span l hi8u c0a gi trH l;n nhQt c thN c trZ -i gi trH nhR nhQt c thN c c0a gi trH ch)a chuXn
ha. Trong S7-200 th)*ng l 32000 - 0 = 32000 -Li v;i cc -!i l):ng khng -Ji dQu (unipolar) v khi -
Offset = 0.0, hay 32000 - (-32000) = 64000 -Li v;i cc -!i l):ng c thN vZa c gi trH d)+ng vZa c gi trH
m (bipolar) v khi - Offset = 0.5.
o!n l8nh sau -y minh h$a cho thu7t ton ny trong tr)*ng h:p -!i l):ng c dQu (bipolar):
/R 64000.0, AC0 //Normalize the value in the accumulator
+R 0.5, AC0 //Offset the value to the range from 0.0 to 1.0
MOVR AC0, VD100 //Store the normalized value in the loop TABLE

MEt cch l gic chng ta thQy rPng c.n phDi c qu trnh ng):c l!i v;i qu trnh trn -Li v;i gi trH
A -.u ra c0a bE -iYu khiNn PID. NghMa l bi4n -Ji v -)a vY thang gi trH thch h:p cho -.u ra tZ gi trH -.u
ra - chuXn ha trong khoDng 0.0 -4n 1.0. Ph)+ng trnh thu7t ton:
RScale = (MNorm - Offset) * Span
trong -:
RScale l gi trH thch h:p cho -.u ra, -!i di8n cho mEt -!i l):ng th7t
MNorm l gi trH -.u ra chuXn ha, -!i di8n cho mEt -!i l):ng th7t
Span l hi8u c0a gi trH l;n nhQt c thN c trZ -i gi trH nhR nhQt c thN c c0a gi trH ch)a chuXn
ha. Trong S7-200 th)*ng l 32000 - 0 = 32000 -Li v;i cc -!i l):ng khng -Ji dQu (unipolar) v khi -
Offset = 0.0, hay 32000 - (-32000) = 64000 -Li v;i cc -!i l):ng c thN vZa c gi trH d)+ng vZa c gi trH
m (bipolar) v khi - Offset = 0.5.
o!n l8nh minh h$a cho thu7t ton:
MOVR VD108, AC0 //Move the loop output to the accumulator.
-R 0.5, AC0 //Include this statement only if the value is
Tp l$nh S7-200
Trang "&
//bipolar.
*R 64000.0, AC0 //Scale the value in the accumulator.
ROUND AC0 AC0 //Convert the real number to a 32-bit integer.
MOVW AC0, AQW0 //Write the 16-bit integer value to the analog
//output.

Chng ta th)*ng ni vY vng l9p -iYu khiNn thu7n khi h8 sL khu4ch -!i d)+ng (Kc > 0) hay vng
l9p -iYu khiNn -Do (nghHch) khi h8 sL khu4ch -!i m (Kc < 0). Trong tr)*ng h:p khng c thnh ph.n P
(Kc = 0), ta xt dQu c0a cc h8 sL Ti v Td.

Cc gi trH yu c.u v gi trH thGc t4 (bi4n -iYu khiNn) l nh=ng -.u vo c0a bE -iYu khiNn PID, do
- cc tr)*ng t)+ng Sng v;i chng trong bDng d= li8u c0a PID sT khng bH thay -Ji bAi l8nh ny.
Ng):c l!i tr)*ng t)+ng Sng v;i -.u ra -):c c7p nh7t bAi PID. N sT bH cOt (ch9n) n4u v):t ra
ngoi khoDng cho php [0.0 - 1.0].
N4u c s? d@ng thnh ph.n tch phn (I), bias cWng -):c c7p nh7t v l!i -):c dng lm -.u vo
cho l.n lQy m[u k4 ti4p. Tuy nhin n c thN -):c -iYu chBnh trong tr)*ng h:p -.u ra bH ch9n (v v):t ra
ngoi khoDng [0.0 - 1.0]) theo ph)+ng trnh sau:
MX = 1.0 - (MPn + MDn )
khi -.u ra l;n h+n 1.0, hay
MX = - (MPn + MDn )
khi -.u ra nhR h+n 0.0, trong -:
MX l gi trH bias - -):c -iYu chBnh
MPn l gi trH thnh ph.n tB l8 (P) c0a -.u ra A th*i -iNm lQy m[u n
MDn l gi trH thnh ph.n vi phn (D) c0a -.u ra A th*i -iNm lQy m[u n
Mn l gi trH c0a -.u ra A th*i -iNm lQy m[u n
BPng sG -iYu chBnh ny, gi trH -.u ra sT -):c -)a vY khoDng h:p l8. Gi trH bias cWng bH ch9n trong
khoDng [0.0 - 1.0] v ghi vo bDng d= li8u cho l.n lQy m[u ti4p theo s? d@ng.
Gi trH bias trong bDng d= li8u c thN thay -Ji -):c ngay tr);c khi thGc hi8n l8nh PID nh)ng phDi
ch -y l mEt sL thGc nPm trong khoDng [0.0 - 1.0].
Gi trH -!i l):ng thGc t4 c0a l.n lQy m[u tr);c -):c l)u l!i trong bDng d= li8u -N tnh ton thnh
ph.n vi phn, khng bao gi* -):c thay -Ji gi trH ny.

MEt bE -iYu khiNn PID c thN ho!t -Eng A mEt trong hai ch4 -E: Auto ho9c Manual. ThGc ra khng c ch4
-E ho!t -Eng no -):c xy dGng s&n cho PID trong S7-200. SG tnh ton chB -):c thGc hi8n khi c dng
nVng l):ng (powerflow) -4n -.u EN (enable) c0a bE PID. PID -):c xem nh) ho!t -Eng A ch4 -E Auto khi
n thGc hi8n tnh ton mEt cch tu.n hon lin t@c. Trong tr)*ng h:p ng):c l!i, PID -):c xem nh) ho!t
-Eng A ch4 -E Manual. VQn -Y chng ta c.n xt -4n l sG chuyNn -Ji -Dm bDo tnh lin t@c tZ ch4 -E
Manual sang ch4 -E Auto. iYu - -i hRi -.u ra -):c tnh trong ch4 -E Manual phDi -):c ghi vo -.u vo
A th*i -iNm chuyNn -Ji sang ch4 -E Auto. T)+ng tG nh) cch ho!t -Eng c0a bE -4m, CPU s? d@ng mEt bit
nh; -N xc -Hnh th*i -iNm chuyNn -Ji: khi dng nVng l):ng thay -Ji tZ 0 ln 1. Lc - CPU sT thGc hi8n
mEt lo!t thao tc c.n thi4t:
9t gi trH yu c.u bPng gi trH thGc t4: SPn = PVn
9t gi trH k4 tr);c c0a gi trH thGc t4: PVn-1 = PVn
9t Bias bPng gi trH -.u ra: MX = Mn
Bit nh; c0a mEt bE PID c gi trH m9c -Hnh l 1 (ON), -):c -9t khi CPU khAi -Eng hay chuyNn tZ ch4 -E
STOP sang ch4 -E RUN. iYu - cWng c nghMa l khi bE PID -):c thGc hi8n l.n -.u tin, CPU khng
nh7n bi4t sG chuyNn -Ji tr!ng thi c0a dng nVng l):ng tZ 0 ln 1 v do - khng thGc hi8n cc thao tc
nu A trn.

L8nh PID l mEt l8nh -+n giDn nh)ng rQt m!nh trong vi8c tnh ton thu7t ton PID. N4u c.n mEt sL tnh
nVng khc, v d@ nh) bo -Eng hay nh=ng thay -Ji -9c bi8t, c thN s? d@ng cc l8nh khc -N can thi8p.
Khi ch)+ng trnh s? d@ng -):c bin dHch, lFi bin dHch c thN xuQt hi8n n4u -Ha chB bDng tham sL [TBL]
ho9c ton h!ng [LOOP] c0a bE PID v):t ra ngoi ph!m vi cho php (out of range).
MEt sL ph!m vi cho php khng -):c kiNm tra, v v7y ng)*i l7p trnh phDi ch . Chang h!n nh) nh=ng gi
trH yu c.u v thGc t4 phDi l cc sL thGc nPm trong khoDng tZ 0.0 -4n 1.0, cWng nh) cc gi trH thGc t4 k4
tr);c hay Bias, n4u -):c s? d@ng, khng -):c v):t ra ngoi khoDng [0.0 - 1.0].
N4u lFi xuQt hi8n trong qu trnh tnh ton thu7t ton PID, bit -9c bi8t SM1.1 (overflow) sT bPng 1 v qu
trnh tnh ton bH dZng l!i. Trong nh=ng tr)*ng h:p nh) v7y, -.u ra c0a bE PID c thN ch)a -):c hon
Tp l$nh S7-200
Trang "'
thnh, v v7y ng)*i l7p trnh phDi ch kiNm tra bit -9c bi8t ny -N s? d@ng -.u ra mEt cch h:p l cWng
nh) -iYu chBnh cc d.u vo n4u c.n thi4t.
Hnh d!ng bDng cc tham sL c0a mEt bE PID bao g3m 36 bytes nh) sau:


Mt v d0 dng b &iCu khiFn PID:

MEt bN n);c -):c dng -N gi= mEt p lGc cEt n);c cL -Hnh. N);c chDy ra khRi bN v;i tLc -E thay -Ji
khng xc -Hnh. N -!t m@c -ch ng)*i ta s? d@ng mEt b+m n);c c l)u l):ng -iYu chBnh -):c mEt cch
lin t@c -N b+m n);c vo bN.

Gi trH yu c.u trong v d@ ny l phDi gi= mSc n);c trong bN A 75%. Gi trH thGc t4 chnh l mSc n);c -o
-):c, thay -Ji tZ 0% (khi bN c!n) -4n 100% (khi bN -.y). Gi trH x? l (-.u ra bE -iYu khiNn PID) l v7n tLc
b+m, -iYu chBnh -):c tZ 0% -4n 100% l)u l):ng danh -Hnh.

Gi trH yu c.u, khng thay -Ji, sT -):c ghi trGc ti4p vo bDng cc tham sL c0a bE PID. Gi trH thGc t4 l gi
trH khng -Ji dQu (chB d)+ng - unipolar) v l gi trH t)+ng tG -$c vo tZ bE -o mSc. Gi trH -.u ra PID cWng
l gi trH t)+ng tG, unipolar, dng -N diYu khiNn tLc -E b+m. CD hai gi trH t)+ng tG ny, -Li v;i S7-200,
nPm trong khoDng tZ 0 -4n 32000.

Ta s? d@ng bE -iYu khiNn PI (chB bao g3m thnh ph.n tB l8 v tch phn, khng chSa thnh ph.n vi phn).
Cc hPng sL -iYu khiNn -):c tnh ton dGa trn nh=ng thng sL k` thu7t c0a h8 -iYu khiNn v c thN -iYu
chBnh trong qu trnh khai thc thGc t4. ^ -y ta khng -i su vo vQn -Y ny.
Kc = 0.25
Ts = 0.1 s
Ti = 30 min
B+m -):c -iYu khiNn bPng tay cho -4n khi mSc n);c trong bN -!t 75% th chuyNn sang ch4 -E tG -Eng v
mA van cho n);c chDy ra khRi bN. .u vo I0.0 -):c s? d@ng -N -Ji ch4 -E: I0.0 = 0 l Manual; I0.0 = 1 l
Auto. Khi A trong ch4 -E Manual, tLc -E b+m -):c xc -Hnh bAi sL thGc trong khoDng [0.0 - 1.0] ghi A
VD10

Ch1;ng trnh:



Tp l$nh S7-200
Trang "(





Tp l$nh S7-200
Trang ")




10. L'nh php ton logic
10.1 L'nh /9o byte, word, doubleword




10.2 L'nh AND, OR, XOR
Tp l$nh S7-200
Trang #*
AND bytes, OR bytes, EXCLUSIVE OR bytes: L8nh AND Bytes thGc
hi8n php ton l gic AND gi=a cc bit t)+ng Sng c0a cc byte -.u vo
-):c -Hnh -Ha chB bAi cc -.u vo IN1 v IN2, k4t quD l)u vo byte -):c
-Hnh -Ha chB bAi -.u ra OUT. L8nh OR Bytes thGc hi8n php ton l gic
OR gi=a cc bit t)+ng Sng c0a cc byte -.u vo -):c -Hnh -Ha chB bAi
cc -.u vo IN1 v IN2, k4t quD l)u vo byte -):c -Hnh -Ha chB bAi -.u
ra OUT. L8nh EXCLUSIVE OR Bytes thGc hi8n php ton l gic XOR
gi=a cc bit t)+ng Sng c0a cc byte -.u vo -):c -Hnh -Ha chB bAi cc
-.u vo IN1 v IN2, k4t quD l)u vo byte -):c -Hnh -Ha chB bAi -.u ra
OUT.
Nh0ng lCi c thE #1Bc gy nn bFi l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
+ LCi 0006: #a ch( gin ti-p.
Nh0ng bit nh: #Gc bi@t c n9i dung b Anh h1Fng bFi l@nh ny:
+ SM1.0 (Zero): bOng 1 n-u k-t quA bOng 0.
T1;ng t? cho cc cu l@nh AND words, OR words, EXCLUSIVE OR words. AND double words, OR double
words, EXCLUSIVE OR double words.

V d0 cc l,nh l gic:

11. L'nh d2ch v quay
11.1 D2ch tri hay ph9i
Nh=ng l8nh ghi dHch (shift) nEi dung mEt byte -):c -Hnh -Ha chB bAi
-.u vo IN -i [N] l.n (-Hnh bAi ton h!ng N), mFi l.n mEt bit sang phDi
(Shift Right Byte) ho9c sang tri (Shift Left Byte), k4t quD l)u vo byte
-):c -Hnh -Ha chB bAi -.u ra OUT. Php ghi dHch (shift) -iYn gi trH 0
(OFF) vo cc bit - bH dHch -i. Nh) v7y n4u sL l.n dHch [N] l;n h+n 8,
thGc t4 chB c.n dHch tLi -a 8 l.n v sau - k4t quD chOc chOn bPng 0.
N4u sL l.n dHch [N] l;n h+n 0, bit cuLi cng trong byte bH dHch ra ngoi
sT -):c ghi vo bit -9c bi8t SM1.1 (overflow). Bit -9c bi8t SM1.0
(zero) sT c gi trH 1 (ON) n4u k4t quD cuLi cng sau php dHch bPng 0.
Cc l8nh ghi dHch mEt byte -Yu xem cc byte l nh=ng sL khng dQu (unsigned).
Tp l$nh S7-200
Trang #!
Nh0ng lCi c thE #1Bc gy nn bFi l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
+ LCi 0006: #a ch( gin ti-p.
Nh0ng bit nh: #Gc bi@t c n9i dung b Anh h1Fng bFi l@nh ny:
+ SM1.0 (Zero): bOng 1 n-u k-t quA bOng 0.
+ SM1.1 (Overflow): bOng bit cu7i cng b dch ra ngoi.
11.2 Quay tri hay ph9i
Nh=ng l8nh quay (rotate) nEi dung mEt byte -):c -Hnh -Ha chB bAi -.u vo IN -i [N] l.n (-Hnh bAi ton
h!ng N), mFi l.n mEt bit sang phDi (Rotate Right Byte) ho9c sang tri (Rotate Left Byte), k4t quD l)u vo
byte -):c -Hnh -Ha chB bAi -.u ra OUT. Php quay (rotate) -iYn gi trH bit cuLi cng (bH quay ra ngoi) vo
bit -.u tin. Nh) v7y n4u sL l.n quay [N] l;n h+n 8, thGc t4 chB c.n quay mEt sL l.n bPng sL d) trong php
chia [N] cho 8 v sau - qu trnh sT -):c l9p l!i. Do - sL l.n quay thGc t4 chB nPm trong khoDng tZ 0 -4n
7. N4u sL l.n quay bPng 0 (hay sL l.n quay chia h4t cho 8), php quay khng -):c thGc hi8n. Trong tr)*ng
h:p php quay -):c thGc hi8n, bit cuLi cng trong byte bH quay ra ngoi sT -):c ghi vo bit -9c bi8t SM1.1
(overflow). Bit -9c bi8t SM1.0 (zero) sT c gi trH 1 (ON) n4u k4t quD cuLi cng sau php quay bPng 0.
Cc l8nh ghi quay mEt byte -Yu xem cc byte l nh=ng sL khng dQu (unsigned).
Nh0ng lCi c thE #1Bc gy nn bFi l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
+ LCi 0006: #a ch( gin ti-p.
Nh0ng bit nh: #Gc bi@t c n9i dung b Anh h1Fng bFi l@nh ny:
+ SM1.0 (Zero): bOng 1 n-u k-t quA bOng 0.
+ SM1.1 (Overflow): bOng bit cu7i cng b quay ra ngoi.


V d@ s? d@ng cc php dHch v quay:


Tp l$nh S7-200
Trang #"

11.3 L'nh d2ch thanh ghi cc bit (Shift Register Bit):
L8nh ny dHch (shift) nEi dung mEt khLi cc bit lin ti4p -i mEt bit, v;i
bit -.u tin bH dHch -i -):c thay th4 bPng gi trH bit -):c trR -4n bAi ton
h!ng DATA v bit cuLi cng bH dHch ra ngoi sT -):c ghi vo bit -9c bi8t
SM1.1. KhLi cc bit lin ti4p ny -):c xc -Hnh v;i bit -.u tin (bit thQp
nhQt) c -Ha chB -Hnh bAi ton h!ng S_BIT v c -E di bPng gi trH tuy8t
-Li c0a ton h!ng [N]. iYu - c nghMa [N] l mEt sL c dQu, dQu c0a
[N] xc -Hnh chiYu dHch chuyNn: [N] d)+ng th dHch ln cn [N] m th
dHch xuLng.
Nh0ng lCi c thE #1Bc gy nn bFi l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
+ LCi 0006: #a ch( gin ti-p.
+ LCi 0091: ton hHng v1Bt qu gi:i hHn cho php.
+ LCi 0092: lCi tr1Ing s7 (count field).
Nh0ng bit nh: #Gc bi@t c n9i dung b Anh h1Fng bFi l@nh ny:
+ SM1.1 (Overflow): bOng bit cu7i cng b quay ra ngoi.
Minh h$a l8nh ny v;i khLi cc bit bOt -.u tZ V33.4 v c -E di 14 bit:

V d@ khc:
Tp l$nh S7-200
Trang ##


11.4 L'nh SWAP
L8nh ny (Swap Bytes) c ton h!ng l mEt tZ -+n (Word) -):c -Hnh -Ha
chB bAi -.u vo IN. L8nh Swap tro -Ji nEi dung hai byte nh; c0a mEt tZ
-+n: byte cao thnh byte thQp v byte thQp thnh byte cao. K4t quD -):c
ghi vo chnh tZ -+n l ton h!ng c0a l8nh.
Nh0ng lCi c thE #1Bc gy nn bFi l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
+ LCi 0006: #a ch( gin ti-p.

V d@ vY l8nh dHch chuyNn v l8nh Swap:


12. Cc l'nh /iDu khi-n ch?+ng trnh
12.1 END c /iDu ki'n
L8nh END c -iYu ki8n dng -N k4t thc ch)+ng trnh chnh khi thRa
mn -iYu ki8n tr);c n.
L8nh END khng c ton h!ng, khng -):c s? d@ng trong cc ch)+ng
trnh con hay trong cc ch)+ng trnh x? l ngOt. Ph$n mPm STEP 7
Micro / Win 32 t? #9ng thm l@nh END khng #iPu ki@n (l@nh END
khng c b>t cS #iPu ki@n no tr1:c n) vo cu7i mCi ch1;ng trnh
chnh.
12.2 STOP
L8nh STOP dZng ch)+ng trnh -ang -):c thGc hi8n ngay l7p tSc bPng
cch chuyNn CPU tZ ch4 -E ho!t -Eng (RUN) sang ch4 -E STOP. N4u l8nh STOP -):c thGc hi8n tZ mEt
ch)+ng trnh x? l ngOt th ch)+ng trnh x? l ngOt Qy sT bH k4t thc ngay -3ng th*i tQt cD nh=ng ngOt -ang
ch* -):c x? l (n4u c) cWng -Yu bH h0y. Tuy nhin CPU v[n x? l nLt nh=ng l8nh cn l!i trong vng qut
Tp l$nh S7-200
Trang #$
c0a ch)+ng trnh chnh khi bH ngOt v chB dZng ch)+ng trnh A cuLi vng qut bPng cch chuyNn ch4 -E tZ
RUN sang STOP.
12.3 L'nh Watchdog Reset
L8nh ny khAi -Eng l!i -3ng h3 canh h8 thLng (System Watchdog). iYu - cho php ko di th*i gian
thGc hi8n vng qut m khng bH lFi watchdog. Ch cXn th7n khi s? d@ng l8nh ny v khi n nPm trong
cc vng l9p (khng k4t thc vng qut) hay khi n ko di vng qut sT Dnh h)Ang t;i h8 thLng, chang h!n
nh) vi8c thGc thi cc tnh nVng:
TruyYn thng (trZ ch4 -E FreePort)
C7p nh7t cc -.u vo ra (trZ nh=ng l8nh truy xuQt trGc ti4p)
C7p nh7t Forcing
C7p nh7t cc bit -9c bi8t, nh) SM0, SM5 -4n SM29
ChXn -on lFi Run-Time
Cc bE -Hnh th*i c -E phn giDi 10 ms v 100ms ho!t -Eng sai l8ch (-9c bi8t khi th*i gian vng qut v):t qu 25s)
L8nh STOP -):c s? d@ng trong ch)+ng trnh con x? l ngOt
N4u mong muLn th*i gian vng qut qu 500ms, ho9c mong l c thN ch* ngOt qu 300ms th phDi dng
l8nh WDR.

Vi8c chuyNn cng tOc c0a CPU sang vH tr STOP sT dZng ch)+ng trnh trong vng 1.4 giy.
12.4 L'nh nh9y
L8nh nhDy (Jump to Label) rT nhnh ch)+ng trnh -4n mEt -o!n l8nh
-):c -nh dQu bPng mEt nhn. Khi mEt l8nh nhDy -):c thGc hi8n, -Bnh
ngVn x4p lun lun c gi trH 1. Nhn dng -N -nh dQu vH tr cho cc
l8nh nhDy.
CD hai l8nh trn c ton h!ng l mEt sL nguyn trong khoDng tZ 0 -4n
255 (sL nhn). Li v;i CPU 212 chB -):c tZ 0 -4n 63. L8nh nhDy chB
-):c php rT nhnh ch)+ng trnh -4n mEt nhn ho9c A cng trong
ch)+ng trnh chnh, ho9c A cng trong mEt ch)+ng trnh con hay ch)+ng
trnh x? l ngOt.

Tp l$nh S7-200
Trang #%
12.5 L'nh SCR

V d@:


Tp l$nh S7-200
Trang #&


Xem thm: iYu khiNn hEi t@, phn tn, c -iYu ki8n, L8nh vng l9p For-Next.

13. L'nh ch?+ng trnh con
L8nh g$i (CALL) mEt ch)+ng trnh con chuyNn quyYn -iYu khiNn -4n
cho ch)+ng trnh con -. S7-200 c thN g$i mEt ch)+ng trnh con c
ho9c khng c tham sL. Trong STEP 7 Micro / Win 32, ta thm ch)+ng
trnh con vo ch)+ng trnh tZ Menu chnh Edit > Insert > Subroutine.
L8nh k4t thc ch)+ng trnh con (Return) c -iYu ki8n k4t thc vi8c thGc
hi8n ch)+ng trnh con - v trA vY ch)+ng trnh chnh khi thRa mn -iYu
ki8n tr);c n.
MEt khi vi8c thGc hi8n mEt ch)+ng trnh con k4t thc, quyYn -iYu khiNn
-):c chuyNn vY cho l8nh k4 ti4p l8nh g$i ch)+ng trnh con Qy.
Ton h!ng c0a l8nh g$i ch)+ng trnh con chnh l -Hnh danh c0a ch)+ng trnh con, l mEt sL nguyn trong
khoDng tZ 0 -4n 255.


Nh0ng lCi c thE #1Bc gy nn bFi l@nh ny (ENO = 0):
+ Bit #Gc bi@t SM4.3 = 1: lCi Run - Time.
+ LCi 0008: s7 l$n gTi ch1;ng trnh con v1Bt qu con s7 cho php.

STEP 7 Micro / Win 32 tG -Eng gOn l8nh k4t thc v trA vY tZ ch)+ng trnh con (RET) vo cuLi mFi
ch)+ng trnh con -):c thm vo.

MEt ch)+ng trnh con c thN -):c g$i tZ trong mEt ch)+ng trnh con, hi8n t):ng ny g$i l Nesting. E su
c0a Nesting tLi -a l 08 l.n g$i. Vi8c g$i -4n mEt ch)+ng trnh con tZ chnh n (-8 qui - Recursion) khng
bH cQm nh)ng ng)*i l7p trnh phDi th7t sG cXn tr$ng v;i cch dng ny.

Khi g$i mEt ch)+ng trnh con, CPU l)u l!i ton bE ngVn x4p, ghi gi trH 1 vo -Bnh ngVn x4p v 0 vo cc
gi trH cn l!i c0a ngVn x4p r3i chuyNn quyYn -iYu khiNn cho ch)+ng trnh con. Khi vi8c thGc hi8n mEt
ch)+ng trnh con hon tQt, ngVn x4p -):c ph@c h3i l!i tr!ng thi tr);c - v quyYn -iYu khiNn -):c chuyNn
Tp l$nh S7-200
Trang #'
vY cho ch)+ng trnh - g$i. L)u nh=ng thanh ghi -a nVng (Accumulators) khng -):c l)u hay ph@c h3i
trong cc qu trnh trn.

Vi8c g$i mEt ch)+ng trnh con v9i tham s$ -):c thGc hi8n thng qua vi8c -Hnh nghMa cho ch)+ng trnh con
mEt bDng tham sL c@c bE. MFi tham sL bao g3m tn tham sL (tLi -a 08 k tG), kiNu bi4n (vo, ra hay t!m
th*i) v kiNu d= li8u (Bool, Byte, INT, ...). MFi ch)+ng trnh con c thN c nhiYu nhQt 16 tham sL.

KiNu bi4n c0a tham sL xc -Hnh tham sL vo cho ch)+ng trnh con (IN), vZa vo vZa ra (IN_OUT) hay l
tham sL ra tZ ch)+ng trnh con (OUT). C@ thN nh) sau:
Tham sL d!ng vo (IN) -):c truyYn -4n cho ch)+ng trnh con: N4u tham sL l -Ha chB trGc ti4p (v d@
VB10), nEi dung nh; A -Ha chB Qy sT -):c truyYn vo cho ch)+ng trnh con; N4u tham sL l -Ha chB
gin ti4p (v d@ *AC1), nEi dung nh; -):c trR -4n sT -):c truyYn vo cho ch)+ng trnh con; N4u tham
sL l hPng sL (v d@ 16#9A8B) hay l mEt -Ha chB (v d@ &VB100), hPng sL hay -Ha chB Qy sT -):c
truyYn vo cho ch)+ng trnh con.
Tham sL d!ng vo - ra (IN_OUT): ch)+ng trnh con s? d@ng sL li8u tZ -Ha chB xc -Hnh bAi tham sL ny
-3ng th*i xuQt d= li8u cWng ra -Ha chB Qy. HiNn nhin rPng tham sL d!ng ny khng thN l mEt hPng sL
(nh) 16#1234) hay -Ha chB (nh) &VB100).
Tham sL d!ng ra (OUT): ch)+ng trnh con xuQt d= li8u ra -Ha chB ny. Tham sL d!ng ny khng thN l
mEt hPng sL (nh) 16#1234) hay -Ha chB (nh) &VB100).
Tham sL c@c bE (TEMP): l nh=ng tham sL -):c ch)+ng trnh con s? d@ng chB trong ph!m vi ch)+ng
trnh con ny.
Local variable tabble:

N thm vo mEt tham sL cho mEt ch)+ng trnh con, trong bDng cc tham sL A -.u ch)+ng trnh con (hnh
pha trn) -9t con trR vo kiNu bi4n ta muLn thm (IN, IN/OUT, OUT hay TEMP), nhQn phm phDi chuEt v
ch$n Insert > Row below -N thm vo mEt tham sL m;i A vH tr d);i con trR v;i d!ng tham sL thch h:p.

KiNu d= li8u c0a tham sL xc -Hnh kch th);c cWng nh) -Hnh d!ng c0a n:
KiNu dng nVng l):ng (Boolean Power Flow): -):c xem l kiNu bit l gic nh)ng chB c thN l d!ng vo
(IN) v phDi -):c khai bo tr);c tQt cD cc kiNu khc (nh) nh=ng tham sL EN v IN1 trong v d@ trn).
KiNu bit l gic (Boolean): -!i di8n cho mEt bit, c thN l d!ng ra (OUT) ho9c vo (IN), nh) IN3.
KiNu Byte, Word, DWord: tham sL ra ho9c vo, 1, 2 hay 4 bytes -!i di8n cho cc sL khng dQu
KiNu Int, DInt: tham sL ra ho9c vo, 2 hay 4 bytes -!i di8n cho cc sL nguyn c dQu (signed).
KiNu Real: tham sL ra ho9c vo, -!i di8n cho cc sL thGc dQu phXy -Eng 4 bytes (theo chuXn IEEE).

MEt v d@ g$i ch)+ng trnh con v;i cc tham sL -):c khai bo nh) trn:


Trong v d@ trn, tham sL IN4 = &VB100 -):c chSa vo mEt tZ kp (double word unsigned). N4u gn cho
tham sL mEt gi trH l hPng sL, 16#1234 chang h!n th phDi xc -Hnh kiNu d= li8u cho n bPng cch vi4t
DW#16#1234.
Tp l$nh S7-200
Trang #(
Khi mEt ch)+ng trnh con -):c g$i, n bao g3m mEt vng d= li8u c@c bE chSa cc tham sL (-):c -nh -Ha
chB nh) cEt -.u tin c0a bDng cc tham sL). Nh=ng tham sL d!ng vo sT -):c sao chp vo vng d= li8u c@c
bE ny tr);c khi ch)+ng trnh con thGc hi8n v nh=ng tham sL d!ng ra l!i -):c sao chp ra tZ vng Qy sau
khi vi8c thGc hi8n ch)+ng trnh con hon thnh. L)u ch)+ng trnh con khng kiNm tra kiNu d= li8u nn
ng)*i l7p ch)+ng trnh phDi ch s? d@ng -ng kiNu - khai bo.
TQt nhin thS tG cc tham sL cWng phDi ph h:p nh) - khai bo (-9c bi8t trong STL): -.u tin l d!ng vo
(IN) r3i -4n cc d!ng vo - ra (IN/OUT) v d!ng ra (OUT).

V d@ s? d@ng ch)+ng trnh con:

14. L'nh ngFt
Xem gio trnh l thuy4t.

You might also like