You are on page 1of 33

SIEMENS CARE

siemenssupport.com.vn

STEP 7 - SCL
(Structure Language Control)
1. S lc v SCL

SCL (Ngn ng iu khin c cu trc) l ngn ng lp trnh cp cao


dnh cho SIMATIC S7 da trn Pascal. Ngn ng SCL thun tin cho vic lp
trnh cc thut ton phc tp v cc tc v lin quan n vic qun l d liu
vng nh. L ngn ng cp cao nn SCL gn gi vi t duy ca ngi lp trnh,
h tr bo mt tt. Bn cnh SCL cng h tr vic lp trnh cu trc theo
dng khi nn d dng kt hp cc ngn ng khc khi vit chng trnh (LAD,
STL, FBD). Bn cn ci t gi phn mm S7-SCL c th lp trnh v c
cc chng trnh dng SCL.

2. Trnh bin dch SCL


Mt chng trnh vit bng SCL c th c cu trc nh sau:
Tt c cc khi c vit trong
Source file SCL, sau khi vit
xong chng trnh bn s
complie v check li. Nu khng
c li xy ra, trnh dch s t
ng to ra cc khi tng ng
vit trong Source file .
Cc khi chng trnh c th vit
trong Source file bao gm
Function (FC), Function Block
(FB), Data Block (DB) v
Organization Block (OB). Thng
thng SCL khng dng vit
cho OB m ch dng vit cho FC,
FB v DB. Organization Block ng vai tr nh l giao din gia ngi lp
trnh v cc khi vit sn, ngi lp trnh ch vic gi cc khi c sn chn
vo OB.

Chu Vnh Li SIEMENS Care

Page 1

SIEMENS CARE

siemenssupport.com.vn

3. To v bin dch Source file SCL


Sau khi to project v cu hnh phn cng cho PLC, thc hin theo cc bc
sau to mt Source file SCL.

Chn Source File SCL


Sau khi chn xong bn s thy SCL Source(1), bn c th click phi chn
rename i tn hoc D-Click m n ln.

Chu Vnh Li SIEMENS Care

Page 2

SIEMENS CARE

siemenssupport.com.vn

y l ca s chng trnh S7-SCL, ton b vng trng pha di dng vit


chng trnh.

Bn hy g li on chng trnh sau vo ca s S7-SCL.

Chu Vnh Li SIEMENS Care

Page 3

SIEMENS CARE

siemenssupport.com.vn

Sau khi g xong on chng trnh trn, click compile qu trnh bin
dch v kim tra li c thc hin. Kt qu bin dch s c hin th khung
bn di vng vit chng trnh.

Nu kt qu l 0 Errors, v 0 Warning (s) th ngha l bn bin dch thnh


cng. Kim tra li cc khi c trong project, gi bn s thy c thm khi FC5
va c to ra.

Chu Vnh Li SIEMENS Care

Page 4

SIEMENS CARE

siemenssupport.com.vn

4. M phng chng trnh

phn trc, bn bit cch to v bin dch chng trnh SCL. Phn ny
s gip cc bn kim tra chng trnh c chy ng nh mun hay khng.
Trc ht, hy xem xt on chng trnh va vit. y l hm FC5 (tn do
ngi dng t) vi cc ng vo MAXI, MINI v IN; ng ra Delimiter. Hy ch
on:
IF IN > MAXI THEN Delimiter := MAXI;
ELSIF IN < MINI THEN Delimiter := MINI;
ELSE Delimiter := IN;
END_IF;
Gi tr a vo ng IN s b gii hn trong khong t MINI n MAXI, ng
ra Delimiter s l gi tr a vo IN sau khi b gii hn. V d nu bn c
MAXI=241 v MINI=50, vi ng vo IN=25 bn s c ng ra l 50, vi ng
vo IN=250 bn s c ng ra l 241, cn vi ng vo IN=100 bn s c ng ra
vn l 100.
Thc hin cc bc sau tin hnh m phng:

Click menu Option > Customize hoc t hp phm Ctrl+Alt+E m ca s


ty chnh. Sau chuyn sang tab Compiler v chc chn rng bn check
vo Create debug info. Click OK chp nhn thay i.

Chu Vnh Li SIEMENS Care

Page 5

SIEMENS CARE

siemenssupport.com.vn

Click Compile
bin dch li chng
trnh. M khi OB1
chn ngn ng l LAD
vit chng trnh.

Chu Vnh Li SIEMENS Care

Page 6

SIEMENS CARE

siemenssupport.com.vn

Ko khi FC5 va complie vo OB1.

t cc gi tr MAXI, MINI v a ch in out vo khi hm.

Chu Vnh Li SIEMENS Care

Page 7

SIEMENS CARE

siemenssupport.com.vn

Save chng trnh li v bt ch m phng trong ca s SIMATIC


Manager.

Ti ca s chng trnh PLCSIM, chng ta s t gi tr ng vo v quan st


gi tr ng ra.

Chu Vnh Li SIEMENS Care

Enter

Page 8

SIEMENS CARE

siemenssupport.com.vn

Thc hin cc bc trn ln na quan st gi tr ng ra ti MW4 sau


tr li ca s SIMATIC Manager download tt c cc khi xung PLC.

Check vo RUN-

P ti PLCSIM chy PLC.

Tr li OB1, click Monitor On quan st khi hm. Bn s thy gi tr ng


ra hin ti l 50 (bng vi mc MINI) do ng vo ang l 0. Bn cng c th
xem cc gi tr ny ti ca s PLCSIM.

Chu Vnh Li SIEMENS Care

Page 9

SIEMENS CARE

siemenssupport.com.vn

By gi hy thay i gi tr ca MW2 v quan st gi tr ng ra ti MW4


chc chn rng chng trnh chy ng nh yu cu. Tip theo ta s quan st
gi tr trc tip trn Source file, hy m ca s S7-SCL v thc hin tip nh
hng dn.

Chu Vnh Li SIEMENS Care

Page 10

SIEMENS CARE

siemenssupport.com.vn

Click vo mt v tr bt k trc cu lnh IF..END_IF quan st cc


bin bn di.

kt thc quan st, hy chn Debug > Finish Debugging.


Nh vy, bn hnh dung c nhng cng vic chnh trong vic vit
chng trnh bng ngn ng SCL t cc bc chn Source file, vit chng
trnh v m phng. Tip theo chng ta s nhc li mt vi im c bn v phn
Chu Vnh Li SIEMENS Care

Page 11

SIEMENS CARE

siemenssupport.com.vn

cng ca PLC nh vng qut chng trnh v cch thc sp xp vng nh bi


v y s l nn tng l thuyt quan trng gip bn hiu k cc phn sau.

5. Phn cng PLC Kin thc c bn

5.1 Cc thnh phn c bn ca PLC


CPU, Operating System: y l khi vi x l trung tm v h iu
hnh qun l, iu khin mi hot ng ca PLC.
Program Memory l ni lu tr chng trnh ca PLC bao gm OB,
FB, FC.
IO Buffer (I/Q) l b nh nh
IO
x gi tr ca cc ng vo ra.
BUFFER
Storage: l vng nh lu tr
bao gm Timer, Counter,
Flag, DB
Connection Manager l khi
STORAGE
OTHERS
qun l kt ni ca PLC
CPU
(MPI, DP, PN).
OPERATING
SYSTEM
Others: Cc ngoi vi khc
hoc cc module chc nng
c bit (nu c tch hp).
5.2 Vng qut chng trnh
PROGRAM
CONNECTION
MANAGER
MEMORY
PLC thc hin chng
trnh theo vng qut lin tc,
mi vng qut bao gm cc bc sau c thc hin t trn xung:
Chuyn gi tr t cc ng vo s sang vng nh I.
Chy chng trnh chnh (OB1) t dng lnh u tin n
ht dng lnh cui cng. Trong qu trnh thc hin, OB1 s
gi cc khi c lin quan v cng thc hin cc khi ny t
u n cui.
Chuyn gi tr t vng nh Q sang cc ng ra s.
Truyn thng v kim tra li.
Thi gian thc hin mt vng qut khng c nh m ph thuc
vo s dng lnh v d liu truyn thng bn trong vng qut .
5.3 Sp xp vng nh trong PLC
D liu kiu Bool (Bit) s gm 2 trng thi 0 v 1, 1 Byte c di
8 bit, 1 Word c di 2 Byte, 1 DWord c di 2 Word.

0 ... 7

0 ... 7

0 ... 7

Chu Vnh Li SIEMENS Care

0 ... 7

0 ... 7

0 ... 7

0 ... 7

0 ... 7
Page 12

SIEMENS CARE
MB0

MB1

siemenssupport.com.vn

MB2

MW0

MB3

MB4

MW2
MW1
MD0

MB5

MB6

MW4
MW3

MD1
MD2
MD3

MB7
MW6

MW5
MD4
MD5 Part
MD6 Part
MD7 Part

cp Bit, trong mt Byte vng nh, Bit cao ca d liu s lu


vo Bit cao ca vng nh, Bit thp ca d liu s lu vo Bit thp ca
vng nh.
T cp Byte tr i, trong mt Word/DWord, Byte/Word/DWord
cao ca d liu s lu vo Byte/Word/DWord thp ca vng nh,
Byte/Word/DWord thp ca d liu s lu vo Byte/Word/DWord
cao ca vng nh. Bn hy xem v d sau y.
Mt chui Bit 1001 0100 1110 1001 c lu vo MW2, y l
v tr cc bit c lu trong MW2:
M2.7

M2.0

M3.7

M3.0

1001 0100 1110 1001


MB2
MB3

Chu Vnh Li SIEMENS Care

Page 13

SIEMENS CARE

siemenssupport.com.vn

6. Kiu d liu trong SCL


Kiu
Bool
Byte
Word
DWord
Char
INT
DINT
Real
S5Time
String
Array

Tm
TRUE/FALSE
0 -- 255
0 -- 65,535
0 -- 4,294,967,295
Biu din c 255 k t
-32,768 32,767
-2,147,483,648 2,147,483,647
n v
100
102
101
0 -- 254 k t
C th ln n 6 chiu.
Mi chiu ti a 65536 phn t

Gi tr
100

di
Bit
Word
1
8
16
1
32
2
8
16
1
32
2
32
2
16
1
2032

127

Trn y l cc kiu d liu thng dng trong SCL. Ngoi ra ngn


ng S7-SCL cng cung cp cc hm chuyn i gia cc kiu d liu
gip bn thun tin hn trong vic lp trnh. V d:
WORD_TO_INT();
INT_TO_REAL();

INT_TO_WORD();
REAL_TO_INT();

Bn c th tham kho thm ti bng tm tt lnh SCL cui sch.

Chu Vnh Li SIEMENS Care

Page 14

SIEMENS CARE

siemenssupport.com.vn

7. Cu trc chng trnh


OB

Khi
Kiu
Tiu

FB

FC

ORGANIZATION_BLOCK

FUNCTION_BLOCK Tn

TITLE=Tiu
//M t
NAME: Ty chn
FAMILY: Ty chn
AUTHOR: Ty chn
VERSION: Ty chn
KNOW_HOW_PROTECT

VAR_TEMP
Bin tm: Kiu;
END_VAR
CONST
Hng s: Gi tr;
END_CONST
BEGIN
Code; //Ch thch

TITLE=Tiu
//M t
NAME: Ty chn
FAMILY: Ty chn
AUTHOR: Ty chn
VERSION: Ty chn
KNOW_HOW_PROTECT
VAR_INPUT
Tham s u vo: Kiu;
END_VAR
VAR_OUTPUT
Ng ra: Kiu;
END_VAR
VAR_IN_OUT
Tham s In-Out: Kiu;
END_VAR
VAR
Bin Static: Kiu;
END_VAR
VAR_TEMP
Bin tm: Kiu;
END_VAR
CONST
Hng s: Gi tr;
END_CONST
BEGIN
Code; //Ch thch

FUNCTION Tn: Kiu gi


d liu tr v (Nu khng
khai bo Output)
TITLE=Tiu
//M t
NAME: Ty chn
FAMILY: Ty chn
AUTHOR: Ty chn
VERSION: Ty chn
KNOW_HOW_PROTECT
VAR_INPUT
Tham s u vo: Kiu;
END_VAR
VAR_OUTPUT
Ng ra: Kiu;
END_VAR
VAR_IN_OUT
Tham s In-Out: Kiu;
END_VAR
VAR
Bin tm: Kiu;
END_VAR
VAR_TEMP
Bin tm: Kiu;
END_VAR
CONST
Hng s: Gi tr;
END_CONST
BEGIN
Code; //Ch thch

END_ORGANIZATION_BLOCK

END_FUNCTION_BLOCK

END_FUNCTION

Khai
bo bin

Chng
trnh
Kt
thc

7.1 Kiu khi:


Lu i vi FC, khai bo nh bng m t, gi tr ng ra ca hm s
c tr v qua Output ca hm . Nu bn tr v trc tip, bn cn
khai bo kiu d liu tr v ngay sau khi khai bo tn hm. Nu bn
tr v thng qua tham s ng ra, bn khai bo kiu d liu tr v ca
hm l VOID.

Chu Vnh Li SIEMENS Care

Page 15

SIEMENS CARE

siemenssupport.com.vn

V d:
Tr gi tr thng qua tham s ng ra

Tr gi tr trc tip qua ng ra ca hm

7.2 Tiu
Chu Vnh Li SIEMENS Care

Page 16

SIEMENS CARE

siemenssupport.com.vn

Cho php bn thm cc dng m t, ch thch cho khi hm hoc


thng tin ca ngi vit
Dng KNOW_HOW_PROTECT cho php bn n ni dng ca khi
hm sau khi complie. Tt c cc ni dung t dng ny tr v sau s
b n sau khi complie.
7.3 Khai bo bin
Cc loi bin trong SCL:
Bin input: dng truyn tham s u vo
Bin output: dng truyn tham s u ra
Bin inout: c th dng vi c hai chc nng in v out
Bin Static: Khng b mt gi tr sau khi khi hm ngng hot
ng.
Bin tm: B mt gi tr khi khi hm ngng hot ng
Hng s: dng khai bo hng (v d s pi: 3.14)
Khi FB c s dng cng vi khi DB i km lu tr gi liu
trong khi FC li khng c DB, chnh v vy bin Static ch c dng
trong FB. Mi tham s vo ra, cc bin Static ca FB u c lu li
trong DB tng ng v c th c truy cp t ngoi khi hm thng
qua DB ny.
7.4 Chng trnh
Chng trnh c bt u bng dng BEGIN v kt thc bng dng
END tng ng vi khi ang vit. Cc ch thch, m t c vit
sau du //. Mi dng lnh bn phi du // u s khng c bin
dch thnh chng trnh.

8. Cc php ton trong SCL


Cng nh Pascal v cc ngn ng lp trnh khc, SCL h tr cc php
ton gip bn gii quyt cc vn lien quan n vic x l d liu, tnh
ton, so snh. Sau y l cc php ton v mc u tin trong SCL:
Php ton
Tn
K hiu
u tin
Ngoc
()
1
S hc
M
**
2
Cng/tr nh
+3
phn
Nhn/chia, MOD, * /
4
DIV
Cng/tr
+5
Nh hn, nh
<, <=, >=, >
6
So snh
hn hoc bng,
Chu Vnh Li SIEMENS Care

Page 17

SIEMENS CARE

Logic

Gn

ln hn hoc
bng, ln hn
Bng, khng
bng
o
AND
XOR
OR
Gn

siemenssupport.com.vn

=, <>

NOT
AND
XOR
OR
:=

3
8
9
10
11

9. Cc lnh cu trc trong SCL


9.1 Cu trc r nhnh - IF
IF iu kin THEN
Lnh 1;
ELSE
Lnh 2;
END_IF;

Nu <iu kin> c tha (hoc bng 1), <Lnh 1> s c thc hin.
Nu <iu kin> khng tha, <Lnh 2> s c thc hin.
Bn cng c th xt nhiu iu kin, cc trng hp khc nhau mt cch
tun t trong mnh IF:
IF iu kin 1 THEN
Lnh 1;
ELSIF iu kin 2 THEN
Lnh 2;
ELSE
Lnh 3;
END_IF;

Nu <iu kin 1> tha, <Lnh 1> s c thc hin. Nu <iu kin 1>
khng tha, xt tip iu kin 2, <iu kin 2> tha, <Lnh 2> s c
thc hin. Nu c hai iu kin trn u khng tha, <Lnh 3> s c
thc hin.

Chu Vnh Li SIEMENS Care

Page 18

SIEMENS CARE

siemenssupport.com.vn

Bn cng c th chn mt mnh IF khc bn trong mnh IF (IF


lng IF):
IF iu kin 1 THEN
Lnh 1;
IF iu kin 2 THEN
Lnh 2;
END_IF;
END_IF;

Nu <iu kin 1> tha, <Lnh 1> s c thc hin. Nu c hai iu


kin u tha, <Lnh 2> s c thc hin. S ln END_IF phi bng vi
s cu lnh IF s dng.
9.2 Cu trc r nhnh - CASE
CASE bin OF
Gi tr 1: Lnh 1;
Gi tr 2: Lnh 2;
Gi tr n: Lnh n;
ELSE Lnh 0;
END_CASE;

Gi tr ca <bin> s c xt, vi mi gi tr ca <bin>, cu lnh tng


ng s c thc hin. Trng hp khng tha gi tr no, <Lnh 0> s
c thc hin.
Cu trc vng lp - FOR
FOR bin m:=gi tr bt u
TO gi tr kt thc
BY khong cch gia hai gi tr k tip
DO
Lnh 1;
Lnh 2;
Lnh n;
END_FOR;

Cc lnh bn trong vng lp s c thc hin, s ln thc hin c xc


nh bi <gi tr bt u> v <gi tr kt thc>. Sau mi vng, <bin
m> s c cng thm mt lng bng vi <khong cch gia hai gi
tr k tip> (mc nh l 1 nu khng khai bo), cui mi vng, gi tr
<bin m> s c xem xt. Vng lp s kt thc khi <bin m> bng
vi <gi tr kt thc>. Tng ng vi vic thc hin lnh trc v xt
iu kin sau.
Cu trc vng lp - WHILE
Chu Vnh Li SIEMENS Care

Page 19

SIEMENS CARE

siemenssupport.com.vn

WHILE iu kin DO
Lnh 1;
Lnh 2;
Lnh n;
END_WHILE;

Khi <iu kin> vn cn tha, tt c cc lnh bn trong vng lp s c


thc hin. <iu kin> s c xt u mi vng lp, khi iu kin
khng tha, vng lp s kt thc.
Cu trc vng lp - REPEAT
REPEAT
Lnh 1;
Lnh 2;
Lnh n;
UNTIL iu kin
END_REPEAT;

Tt c cc lnh trong vng lp s c thc hin cho n khi <iu kin>


tha. <iu kin> s c xt cui mi vng lp, khi in tha, vng lp
s kt thc.
Lnh CONTINUE
Lnh CONTINUE dng b qua vng lp hin ti trong cc cu trc
FOR, WHILE, REPEAT. Xt v d sau:
FOR i:=0 TO 5 DO
FOR j:=0 TO 5 DO
IF (i<2) AND (j=1) THEN CONTINUE; END_IF;
Matrix[i,j]:=TRUE;
END_FOR;
END_FOR;

Gii thch: Nu i<2 v j=1, vng lp FOR bn trong s b b qua, cu


lnh bn di mnh IF (Matrix[i,j]:=TRUE) s khng c thc hin.
Sau j s tng ln 1 n v, cc lnh thuc vng lp FOR bn trong li
c thc hin t trn xung, iu kin li c xt. Nh vy, cu lnh
bn di mnh IF ch c thc hin khi iu kin trn khng tha.

Lnh EXIT
Lnh EXIT dng thot khi vng lp FOR, WHILE, REPEAT ngay
lp tc. Khc vi lnh CONTINUE, lnh EXIT c tc dng mnh hn,
vng lp s kt thc ngay cho n khi n c kch hot tr li. Xt v d
sau:
FOR i:=0 TO 5 DO
FOR j:=0 TO 5 DO
IF (i<2) AND (j=1) THEN CONTINUE; END_IF;
Matrix[i,j]:=TRUE;
Chu Vnh Li SIEMENS Care

Page 20

SIEMENS CARE

siemenssupport.com.vn

END_FOR;
END_FOR;

Gii thch: Nu i<2 v j=1, vng lp FOR bn trong s kt thc, tt c cc


lnh bn trong vng lp ny s khng c thc hin cho n khi vng
lp c kch hot tr li.
Lnh RETURN
Lnh RETURN dng thot khi khi hm hin ti.
LNH GOTO
Lnh GOTO dng nhy n mt v tr bt k bn trong khi hm c
xc nh bi nhn LABEL. Xt v d sau:
LABEL
LAB1, LAB2, LAB3, END;
END_LABEL;
GOTO CASE Selection DO;
1:
GOTO LAB1;
2:
GOTO LAB2;
3:
GOTO LAB3;
ELSE GOTO End;
END_CASE;
LAB1: Lnh 1;
GOTO End;
LAB2: Lnh 2;
GOTO End;
LAB3: Lnh 3;
GOTO End;
End: ;

Gii thch: Cc lnh tng ng vi tng nhn s c thc hin ty theo


gi tr ca Selection.

10. Cc hm c bn
10.1 TIMER
Timer dng nh trc mt khong thi gian ngn cho h thng
chy, hoc dng, hoc chuyn trng thi ny sang trng thi kia, to
thi gian tr - delay cho h thng trc khi bt u chu k mi....
10.1.1 Chun SIMATIC
Step 7 cung cp cho bn 5 loi Timer theo chun SIMATIC:
S_PULSE, S_PEXT, S_ODT, S_ODTS, S_OFFDT. C 5 loi Timer
u c cc cng vo ra ging nhau:
(T_NO := ,
Chu Vnh Li SIEMENS Care

//Timer Number

(Timer)

INPUT
Page 21

SIEMENS CARE
S := ,
TV := ,
R := ,
BI := ,
Q := );

siemenssupport.com.vn

//Set Timer (BOOL)


//Duration (S5TIME)
//Reset Timer (BOOL)
//Current Time (WORD)
//Status (BOOL)

INPUT
INPUT
INPUT
OUTPUT
OUTPUT

T_NO: Ch s ca Timer m bn ang s dng, v d T0, T1


S: Tn hiu kch hot Timer.
TV: Thi gian ci t, v d T#500ms.
R: Tn hiu Reset Timer.
BI: Thi gian hin ti.
Q: Ng ra Timer.
Gi tr tr v ca Timer l gi tr thi gian hin ti dng BCD.
S_PULSE - Timer xung khng nh.
Timer to xung khng nh bt u hot ng khi c tn hiu vo
cho php Timer hot ng. Nu ng vo cho php c thi gian duy tr
nh hn thi gian t trc cho timer (TEnable < TPV) th ng ra ca
Timer s to ra mt xung c thi gian bng thi gian duy tr ng vo
(TEnable), nu ng vo cho php c thi gian duy tr ln hn hoc bng
thi gian t trc cho timer (TEnable > = TPV) th timer s to ra mt
xung bng thi gian c trc (TPV).

//Starting a timer function as a pulse


BCD[1] := S_PULSE(
T_NO := "Timer1",
S := Start[1],
TV := TV[1],
R := Reset[1],
BI := Bin[1],
Q := Status[1]);

S_PEXT - Timer xung c nh.


Chu Vnh Li SIEMENS Care

Page 22

SIEMENS CARE

siemenssupport.com.vn

Timer to xung c hot ng tng t nh Timer to xung khng


nh, c hai timer u to ra mt xung khi c tn hiu cho php ng
vo hot ng. Tuy nhin, timer to xung c nh to ra xung c thi
gian bng thi gian t cho d ng vo cho php c thi gian duy tr
nh hn thi gian t.

//Starting a timer function as an extended pulse


BCD[2] := S_PEXT(
T_NO := "Timer2",
S := Start[2],
TV := TV[2],
R := Reset[2],
BI := Bin[2],
Q := Status[2]);

S_ODT - On Delay Timer.


On Delay Timer c s dng khi mun ci t mt khong thi
gian tr khi ng vo c tc ng v duy tr trng thi cho php th
sau mt khong thi gian t trc th tip im ca b nh th s
chuyn trng thi: tip im thng ng s m ( mt in) v tip
im thng m s ng ( c in). Nu trng thi ng vo kt thc
cho php th tip im ca b nh th s tr v trng thi ban u.

Chu Vnh Li SIEMENS Care

Page 23

SIEMENS CARE

siemenssupport.com.vn

//Starting a timer function as an on delay


BCD[3] := S_ODT(
T_NO := "Timer3",
S := Start[3],
TV := TV[3],
R := Reset[3],
BI := Bin[3],
Q := Status[3]);

S_ODTS - On Delay Timer c nh.


On Delay Timer c nh bt u hot ng khi c tn hiu ng vo
cho php chuyn t trng thi 0 ln 1. Nu gi tr t trc tr ht gi
tr th tip im ca timer s chuyn trng thi: thng ng s m (
mc 0) v thng m s ng li ( mc 1). Nu ng vo cho php
chuyn trng thi t 1 v 0 th Timer vn tip tc trng thi cho ti
khi c tn hiu reset Timer hot ng. Ni cch khc, timer tr sn
ln c nh ch b tc ng u vo khi tn hiu cho php chuyn trng
thi t 0 ln 1, khng nh hng ca tn hiu khi chuyn trng thi t
1 xung 0 do cn reset timer bng lnh reset.

//Starting a timer function as a latching on delay


Chu Vnh Li SIEMENS Care

Page 24

SIEMENS CARE

siemenssupport.com.vn

BCD[4] := S_ODTS(
T_NO := "Timer4",
S := Start[4],
TV := TV[4],
R := Reset[4],
BI := Bin[4],
Q := Status[4]);

S_OFFDT - Off Delay Timer.


Off Delay Timer bt u hot ng khi ng vo cho php chuyn
trng thi t 0 ln 1, ng thi tip im ca timer chuyn trng thi:
tip im thng m ng li (mc 1) v tip im thng ng m
ra (mc 0). Khi ng vo cho php timer hot ng chuyn trng thi
t 1 v 0 th sau mt khong thi gian t trc th trng thi
tip im ca timer tr v trng thi ban u: tip im thng m
m (mc 0) v tip im thng ng ng li (mc 1).

//Starting a timer function as an off delay


BCD[5] := S_OFFDT(
T_NO := "Timer5",
S := Start[5],
TV := TV[5],
R := Reset[5],
BI := Bin[5],
Q := Status[5]);

10.1.2 Chun IEC


SCL h tr 3 Timer theo chun IEC: TP, TON, TOF. Tt c cc
loi Timer chun IEC u c cc cng vo ra ging nhau:
Name(
//Timer Type
IN:= ,
//Enable (BOOL)
PT:= );
//Duration (TIME)
Status:=Name.Q; //Status (BOOL)
Chu Vnh Li SIEMENS Care

INPUT
INPUT
OUTPUT
Page 25

SIEMENS CARE
Tvalue:=Name.ET;

siemenssupport.com.vn

//Current Time (TIME)

OUTPUT

Timer chun IEC khng tr v gi tr trc tip.


Timer to xung TP
Khi ng vo IN cho php timer TP hot ng, th ng ra Q s to ra
mt xung bng gi tr t trc PT cho timer. Khi gi tr hin hnh
ET bng thi gian t PT th kt thc qu trnh pht xung.
Lu : trong thi gian timer hot ng ng vo IN tc ng khng
nh hng ti timer TP.

Pulse (
//Start pulse timer
IN := Start1,
PT := Duration1);
Status1 := Pulse.Q;
Tvalue1 := Pulse.ET;

Timer to xung tr sn ln TON


Khi ng vo IN tc ng v duy tr trng thi cho php timer TON
hot ng, khi gi tr ET > PT th ng ra Q s i trng thi ln mc
1.
Khi ng vo IN chuyn trng thi t 1 v 0 th Timer TON kt thc
hot ng.

On

//Start on delay

Chu Vnh Li SIEMENS Care

Page 26

SIEMENS CARE

siemenssupport.com.vn

IN := Start2,
PT := Duration2);
Status2 := On.Q;
Tvalue2 := On.ET;

Timer to xung tr sn xung TOF


Timer tr sn xung bt u hot ng khi ng vo cho php
chuyn trng thi t 0 ln 1, ng thi tip im ng ra Q ca timer
chuyn trng thi: tip im thng m ng li (mc 1) v tip im
thng ng m ra (mc 0). Khi ng vo cho php timer hot ng
chuyn trng thi t 1 v 0 th sau mt khong thi gian t
trc th trng thi tip im ca timer tr v trng thi ban u: tip
im thng m m (mc 0) v tip im thng ng ng li (mc
1)

Off
(
//Start off delay
IN := Start3,
PT := Duration3);
Status3 := Off.Q;
Tvalue3 := Off.ET;

10.2 COUNTER
Counter l b m thc hin chc nng m sn xung cc tn hiu
u vo. Trong PLC S7 300 c ti a 256 Counter theo chun
SIMATIC (ph thuc CPU), c k hiu l Cx, trong x l s
nguyn trong khong 0 255, gi tr ca b m nm trong khong 0
999.
Nhng b m ca PLC S7 300 c th ng thi m tng ln
theo sn ln ca mt tn hiu, c k hiu l CU (Count Up) v
m gim xung theo sn ln ca tn hiu, k hiu l CD (Count
Down).
Chu Vnh Li SIEMENS Care

Page 27

SIEMENS CARE

siemenssupport.com.vn

S sn xung m c, c ghi vo thanh ghi 2 byte ca b m


goi l thanh ghi C word. Ni dung ca thanh ghi C word c gi
l gi tr m tc thi ca b m v k hiu l CV (Current Value)
v CV lun khng m. Nu CV 0 th ng ra trng thi Q c gi tr
1. Ngc li khi CV = 0, Q nhn gi tr 0. B m khng c m
xung khi CV = 0.
Khc vi Timer, gi tr t trc PV ca b m ch c chuyn
vo CV ti thi im xut hin sn ln ca tn hiu set (S). B m
c th c xa ch ng bng tn hiu reset (R). Khi b m c
xa, c CV v Q u nhn gi tr 0.
10.2.1 Chun SIMATIC
Tt c cc loi Counter chun SIMATIC u c cc cng vo ra
ging nhau:
(C_NO := ,
Cx := ,
S := ,
PV := ,
R := ,
CV := ,
Q :=);

//Counter Number (COUNTER)


INPUT
//Clock Input (BOOL)
INPUT
//Set Counter (BOOL)
INPUT
//Preset Value (WORD)
INPUT
//Reset Counter (BOOL)
INPUT
//Current Value (WORD)
OUTPUT
//Status (BOOL)
OUTPUT

Gi tr tr v ca Counter l gi tr thi gian hin ti BCD.


Counter m ln
Counter m ln c s dng khi mun m gi tr tng dn trong
mt ng dng: s xung, sn phm, Khi ng vo CU c tc ng
chuyn trng thi t 0 ln 1 th gi tr b m ca Counter s tng ln
1 v gi tr ny s c lu trong CV di dng interger (0 CV
999), hoc di dng s BCD (CV_BCD). Khi ng vo S (SET) c
tc ng (chuyn trng thi t 0 ln 1) th gi tr ca b m CV s
bng gi tr t trc PV, hay ni cch khc gi tr t trc PV
(Preset Value) s c np vo CV v b m s bt u m t gi
tr t trc . Gi tr ca b m c m li t u (bt u bng
0) khi ng vo R (Reset) c tc ng. Trng thi ng ra Q l 1 khi
gi tr ca b m CV > 0, ngc li CV = 0 th ng ra Q s bng 0.
//Up counter
BCD1 := S_CU(
C_NO := "Counter1",
CU := Up1,
S := Set1,
Chu Vnh Li SIEMENS Care

Page 28

SIEMENS CARE

siemenssupport.com.vn

PV := PV1,
R := Reset1,
CV := bin1,
Q := Status1);

Counter m xung
Counter m xung c s dng khi mun gim gi tr ca mt s
t trc, c th l: s xung, s sn phm, Khi ng vo S (SET)
c tc ng (chuyn trng thi t 0 ln 1) th gi tr ca b m CV
s bng gi tr t trc PV. Khi ng vo CD c tc ng chuyn
trng thi t 0 ln 1 th gi tr b m ca Counter s gim xung 1.
Gi tr ca b m c m li t 0 khi ng vo R (Reset) c tc
ng. Trng thi ng ra Q l 1 khi gi tr ca b m CV > 0, ngc
li CV = 0 th ng ra Q s bng 0.
//Down counter
BCD2 := S_CD(
C_NO := "Counter2",
CD := Up2,
S := Set2,
PV := PV2,
R := Reset2,
CV := bin2,
Q := Status2);

Counter m ln/xung
Counter m ln/xung l s kt hp gia counter m ln v counter
m xung. Nguyn l hot ng v cch s dng tng t hai loi
counter trn.
//Up-down counter
BCD3 := S_CUD(
C_NO := "Counter3",
CU := Up3,
CD := Down3,
S := Set3,
PV := PV3,
R := Reset3,
CV := bin3,
Q := Status3);

Chu Vnh Li SIEMENS Care

Page 29

SIEMENS CARE

siemenssupport.com.vn

10.2.2 Chun IEC


SCL h tr 3 Timer chun IEC: CU, CD, CUD. Tt c cc loi
Counter chun IEC u c cc cng vo ra ging nhau:
Name (
Cx :=,
R :=,
PV :=);
Status:= Name.Q;
Value:= Name.CV;

//Counter Type
//Clock Input (BOOL) INPUT
//Reset Counter (BOOL)
INPUT
//Preset Value (INT)
INPUT
//Status (BOOL)
OUTPUT
//Current Value (INT) OUTPUT

Counter m ln
Khi c s chuyn trng thi t mc 0 ln mc 1 ti chn CU th gi tr
b m CV tng ln 1. Trng thi ng vo R bng 1 th gi tr b m
CV bng 0 v ng ra Q bng 0. Khi gi tr m c bng hoc ln
hn gi tr t trc (CV PV) th ng ra Q bng 1. Khi d liu DB
c s dng lu tr thng s cho cc hm m theo chun IEC,
c th khai bo v np gi tr cho CTU t khi DB.
Up (
//Up counter
CU := Up4,
R := Reset4,
PV := Svalue4);
Status4 := Up.Q;
Value4 := Up.CV;

Counter m xung
Khi c s chuyn trng thi t mc 0 ln mc 1 ti chn CD th gi tr
b m CV gim xung 1. Trng thi ng vo R bng 1 th gi tr b
m CV bng 0 v ng ra Q bng 0. Khi gi tr m c nh hn
hoc bng 0 (CV 0) th ng ra Q bng 1. Khi d liu DB c s
dng lu tr thng s cho cc hm m theo chun IEC, c th
khai bo v np gi tr cho CTD t khi DB.
Down (
//Down counter
CD := Down5,
R := Reset5,
PV := Svalue5);
Status5 := Down.Q;
Value5 := Down.CV;

Counter m ln xung

Chu Vnh Li SIEMENS Care

Page 30

SIEMENS CARE

siemenssupport.com.vn

Counter m ln/xung l s kt hp gia counter m ln v counter


m xung. Nguyn l hot ng v cch s dng tng t hai loi
counter trn.
UpDown (
//Up-down counter
CU := Up6,
CD := Down6,
R := Reset6,
LOAD := Set6,
PV := Svalue6);
VStatus6 := UpDown.QU;
Status6 := UpDown.QD;
Value6 := UpDown.CV;

Chu Vnh Li SIEMENS Care

Page 31

SIEMENS CARE

Chu Vnh Li SIEMENS Care

siemenssupport.com.vn

Page 32

SIEMENS CARE

siemenssupport.com.vn

Ti liu tham kho:


Automating with STEP7 in STL and SCL - Hans Berger
Lp trnh PLC S7-300 - Trn Vn Hiu (Trng TCN KTCN Hng
Vng)
Chu Vnh Li SIEMENS Care

Page 33

You might also like