You are on page 1of 7

CAÙC HAØM THÖ VIEÄN TRONG S7-300

Thö vieän chuaån cuûa phaàên meàm Step 7 goàm caùc haøm heä thoáng SFC, khoái haøm heä
thoáng SFB, caùc haøm FC vaø khoái haøm FB, giuùp cho vieäc laäp trình thuaän tieän bôûi caùc haøm
vieát saün. Ngoaøi ra coøn coù caùc haøm toå chöùc OB hoaït ñoäng khi khôûi ñoäng PLC, laøm vieäc theo
chu kyø. Chuùng ta coù theå boå sung caùc haøm khaùc vaøo thö vieän cuûa Step 7 moät caùch deã daøng.
Caùc haøm thö vieän ñöôïc theâm vaøo moät ñieåm trong khoái chöông trình baèng caùch vaøo menu
Insert- Program Elements – Libraries, sau ñoù laàn löôït vaøo caùc muïc con trong ñoù, choïn haøm
phuø hôïp roài baám chuoät phaûi choïn paste

Phaàn sau giôùi thieäu chi tieát moät soá haøm.


1/ Caùc haøm trong thö vieän TI-S7 Converting blocks
1.1/ Caùc haøm xöû lyù bit
a/ Ñaët moät loaït bit: FC83

Khi I0.0 = 1, 10 bit töø M0.0 ñeán M1.1 leân 1. Neáu haøm thöïc hieän ñuùng ENO vaø Q4.0
baèng 1. Ñòa chæ bit ñaàu tieân S_bit duøng con troû P#, troû ñeán vuøng nhôù bit (I, Q, M, D), soá bit
N laø haèng soá hay I, Q, M, D, L, P
A I0.0
JNB _001
CALL "SET"
S_BIT:= P#M 0.0
N := 10
_001: A BR
= Q4.0
b/ Ñaët moät loaït byte laäp töùc : FC101

Khi I0.0 = 1, hai byte töø PB2 seõ leân 1 (P#P2.0 troû ñeán bit P2.0), soá N laø soá byte caàn
ñaët leân 1 nhaân 8.
c/ Xoaù moät loaït bit: FC82

d) Xoaù moät loaït bit laäp töùc : FC100

1.2/ Haøm di chuyeån khoái giaùn tieáp : FC81


Di chuyeån moät khoái döõ lieäu byte, word hay word keùp töø khoái nguoàn coù ñòa chæ ñaàu
giaùn tieáp S_DATA chieàu daøi LENGTH ñeán khoái ñích coù ñòa chæ ñaàu giaùn tieáp D_DATA,
ba thoâng soá naøy duøng bieán con troû P#. Thoâng soá E_TYPE cho bieát loaïi döõ lieäu theo qui ñònh
sau: B#16#02 = BYTE, B#16#04 = WORD, B#16#05 = INT, B#16#06 = DWORD, B#16#07 = DINT, B#16#08 = REAL

Tröôùc leänh:
S_DATA DBX0.0 = P#DB1.DBX50.0 // Ñòa chæ ñaàu khoái nguoàn laø DBW50
DBW50 = W#16#2424
DBW52 = W#16#2525
LENGTH DBW10 = W#16#0002 // Khoái döõ lieäu hai word
D_DATA DBX20.0= P#DB2.DBX10.0 // D9òa chæ ñaàu khoái ñích laø DBW10
DBW10 = W#16#0000
DBW12 = W#16#0000
Sau leänh :
D_DATA DBW10 = W#16#2424
DBW12 = W#16#2525
1.3/ Haøm chuyeån ñoåi
a/ Giaûi maõ 7 ñoaïn: FC93
Ñoåi moät word hexa 4 digit ôû IN (I,M,D,P, haèng soá) ra 4 byte maõ 7 ñoaïn cuûa töøng
digit, xuaát ra ñòa chæ OUT töø keùp (Q, M, D, L, P)

A I 0.0
JNB _001
CALL "SEG"
IN :=W#16#1234
OUT:=MD0
_001: NOP 0
b/ Ñoåi ASCII sang HEX
Ñoåi chuoãi ASCII daøi N kyù töï (I, Q, M, L, P) goàm caùc kyù töï A..F, soá 0..9 , moãi kyù töï
chieám 2 byte ôû ñòa chæ con troû IN (û I, Q, M,D,L) ra soá Hex töông öùng, moät byte öùng vôùi hai
kyù töï ôû ñòa chæ con troû OUT (Q, M, D, L) . RET_VAL laø word traû veà keát quaû thöïc hieän (I, Q,
M, D, L, P) W#16#0000 neáu ñuùng.

c/ Ñoåi HEX sang ASCII: FC95


d/ Haøm ñoåi taàm SCALE : FC105
Chuyeån ñoåi soá nguyeân IN (I, Q, M, D, L, P, Haèng soá) ra soá thöïc ôû OUT (I, Q, M, D,
L, P) trong khoaûng LO_LIM vaø HI_LIM theo coâng thöùc
OUT = [ ((FLOAT (IN) –K1)/(K2–K1)) * (HI_LIM – LO_LIM) ] + LO_LIM
HI_LIM, LO_LIM laø caùc giaù trò thöïc (I, Q, M, D, L, P, Haèng soá)
K1, K2 tuyø thuoäc traïng thaùi ngoõ ñieàu khieån BIPOLAR
BIPOLAR=1: soá IN laø löôõng cöïc, K1 = –27648.0, K2 = +27648.0
BIPOLAR=0: soá IN laø ñôn cöïc, K1 = 0.0, K2 = +27648.0
e/ Haøm ñoåi taàm ngöôïc UNSCALE : FC106
Chuyeån ñoåi soá thöïc IN giöõa hai giaù trò LO_LIM vaø HI_LIM thaønh soá nguyeân ñôn
cöïc hay löôõng cöïc OUT theo coâng thöùc
OUT = [ ((IN–LO_LIM)/(HI_LIM–LO_LIM)) * (K2–K1) ] + K1

f/ Boå chính sôùm- treã pha: FB90


Thöïc hieän pheùp hieäu chænh sôùm treã pha treân tín hieäu vaøo IN, ñoä lôïi GAIN, thôøi gian
sôùm pha LG_TIME, thôøi gian treã pha LG_TIME, chu kyø laáy maãu SAMPLE_T vaø cho ra tín
hieäu OUT

Instance DB80
LD_TIME DBD12 = 2.0
LG_TIME DBD16 = 2.0
GAIN DBD20 = 1.0
PREV_IN DBD24 = 6.0
PREV_OUT DBD28 = 6.0
Before execution:
IN MD10 = 2.0
OUT MD20 = 0.0
After execution:
Instance DB80
PREV_IN DBD24 = 2.0
PREV_OUT DBD28 = 2.0
OUT MD20 = 2.0
2/ CAÙC HAØM IEC (International Electrotechnical Commission)
2.1/ Haøm thôøi gian
FC1 AD_DT_TM Coäng bieán DT vaø TIME
FC3 D_TOD_DT Keát hôïp DATE vaø TIME_OF_DAY thaønh DT
FC6 DT_DATE Ruùt ra DATE töø DT
FC7 DT_DAY Ruùt ra ngaøy trong tuaàn töø DT
FC8 DT_TOD Ruùt ra TIME_OF_DAY töø DT
FC9 EQ_DT DT So saùnh baèng hai DT
FC12 GE_DT DT So saùnh lôùn hôn hay baèng hai DT
FC14 GT_DT DT So saùnh lôùn hôn hai DT
FC18 LE_DT DT So saùnh nhoû hôn hay baèng hai DT
FC23 LT_DT DT So saùnh nhoû hôn hai DT
FC28 NE_DT DT So saùnh khoâng baèng hai DT
FC33 S5TI_TIM Ñoåi S5TIME ra TIME
FC34 SB_DT_DT Tröø hai bieán DT
FC35 SB_DT_TM Tröø DT vaø TIME
FC40 TIM_S5TI Ñoåi TIME ra S5TIME

a/ Haøm FC3:
Keát hôïp ngaøy thaùng naêm (DATE) bieán IN1 (I, Q, M, D, Haèng) vôùi giôø trong ngaøy
(TIME OF DAY) bieán IN2 (I, Q, M, D, L, Haèng) thaønh bieán RET_VAL loaïi DT (bieán kyù
hieäu). Bieán IN1 trong khoaûng DATE# 1990-01-01 vaø DATE#2089-12-31.
Ví duï:
Baûng khai baùo bieán trong local block cuûa chöông trình goïi
Name Type Declaration Comment
IN_TIME TIME_OF_DAY TEMP Start time
IN_DATE DATE TEMP Start date
OUT_TIME_DATE DATE_AND_TIME TEMP Start date/time converted

Network 2
L D#2006–1–27
T #IN_DATE
L TOD#20:0:0.0
T #IN_TIME
Network 3:
CALL FC 3
IN1 := #IN_DATE
IN2 := #IN_TIME
RET_VAL := #OUT_TIME_DATE
b/ Haøm FC1
Coäng giôø IN1 daïng DT (bieán kyù hieäu ) vôùi khoaûng thôøi gian IN2 daïng TIME,
RET_VAL laø bieán kyù hieäu daïng DT.

2.2/Ñoåi soá ra chuoãi vaø ngöôïc laïi


FC5 DI_STRNG Ñoåi DINT ra STRING
FC16 I_STRNG Ñoåi INT ra STRING
FC30 R_STRNG Ñoåi REAL ra STRING,
FC37 STRNG_DI Ñoåi STRING ra DINT, chuoãi daøi toái ña 11 soá
FC38 STRNG_I Ñoåi STRING ra INT, chuoãi daøi toái ña 6 soá
FC39 STRNG_R Ñoåi STRING ra REAL, chuoãi coù daïng ±v.nnnnnnnE±xx
2.3/ So saùnh Chuoãi
FC10 EQ_STRNG
FC13 GE_STRNG
FC15 GT_STRNG
FC19 LE_STRNG
FC24 LT_STRNG
FC29 NE_STRNG
2.4/ Leänh xöû lyù chuoãi
FC2 CONCAT Keát hôïp hai chuoãi
FC4 DELETE Boû moät chuoãi
FC11 FIND Tìm moät chuoãi
FC17 INSERT Xen moät chuoãi
FC20 LEFT Taùch chuoãi beân traùi
FC21 LEN Tính chieàu daøi bieán STRING
FC26 MID Taùch ñoaïn giöõa
FC31 REPLACE Thay moät chuoãi
FC32 RIGHT Taùch chuoãi beân phaûi
2.5/ Leänh soá thöïc
FC22 LIMIT Taïo haøm giôùi haïn bieán vaøo giöõa hai trò MN vaø MX
FC25 MAX Choïn giaù trò lôùn nhaát giöõa ba bieán vaøo
FC27 MIN Choïn giaù trò nhoû nhaát giöõa ba bieán vaøo
FC36 SEL Choïn moät trong hai ngoõ vaøo tuyø bieán ñieàu khieån
3/ Haøm heä thoáng SFC xöû lyù khoái

You might also like