
CÁC HÀM TH VI NƯ Ệ
Th vi n chu n c a ph n m m Step 7 g m các hàm h th ng SFC, kh i hàm hư ệ ẩ ủ ầ ề ồ ệ ố ố ệ
th ng SFB, các hàm FC và kh i hàm FB, giúp cho vi c l p trình thu n ti n b i các hàmố ố ệ ậ ậ ệ ở
vi t s n. Ngoài ra còn có các hàm t ch c OB ho t đ ng khi kh i đ ng PLC, làm vi c theoế ẵ ổ ứ ạ ộ ở ộ ệ
chu kỳ. Chúng ta có th b sung các hàm khác vào th vi n c a Step 7 m t cách d dàng.ể ổ ư ệ ủ ộ ễ
Các hàm th vi n đ c thêm vào m t đi m trong kh i ch ng trình b ng cách vào menuư ệ ượ ộ ể ố ươ ằ
Insert- Program Elements – Libraries, sau đó l n l t vào các m c con trong đó, ch n hàmầ ượ ụ ọ
phù h p r i b m chu t ph i ch n pasteợ ồ ấ ộ ả ọ
Ph n sau gi i thi u chi ti t m t s hàm. ầ ớ ệ ế ộ ố
1/ Các hàm trong th vi n TI-S7 Converting blocksư ệ
1.1/ Các hàm x lý bitử
a/ Đ t m t lo t bit: FC83ặ ộ ạ
Khi I0.0 = 1, 10 bit t M0.0 đ n M1.1 lên 1. N u hàm th c hi n đúng ENO và Q4.0ừ ế ế ự ệ
b ng 1. Đ a ch bit đ u tiên S_bit dùng con tr P#, tr đ n vùng nh bit (I, Q, M, D), s bitằ ị ỉ ầ ỏ ỏ ế ớ ố
N là h ng s 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/ Đ t m t lo t byte l p t c : FC101ặ ộ ạ ậ ứ

Khi I0.0 = 1, hai byte t PB2 s lên 1 (P#P2.0 tr đ n bit P2.0), s N là s byte c nừ ẽ ỏ ế ố ố ầ
đ t lên 1 nhân 8.ặ
c/ Xoá m t lo t bit: FC82ộ ạ
d) Xoá m t lo t bit l p t c : FC100ộ ạ ậ ứ
1.2/ Hàm di chuy n kh i gián ti p : FC81ể ố ế
Di chuy n m t kh i d li u byte, word hay word kép t kh i ngu n có đ a ch đ uể ộ ố ữ ệ ừ ố ồ ị ỉ ầ
gián ti p S_DATA chi u dài LENGTH đ n kh i đích có đ a ch đ u gián ti p D_DATA,ế ề ế ố ị ỉ ầ ế
ba thông s này dùng bi n con tr P#. Thông s E_TYPE cho bi t lo i d li 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 l nh:ướ ệ
S_DATA DBX0.0 = P#DB1.DBX50.0 // Đ a ch đ u kh i ngu n là DBW50ị ỉ ầ ố ồ
DBW50 = W#16#2424
DBW52 = W#16#2525
LENGTH DBW10 = W#16#0002 // Kh i d li u hai wordố ữ ệ
D_DATA DBX20.0= P#DB2.DBX10.0 // D9 a ch đ u kh i đích là DBW10ị ỉ ầ ố
DBW10 = W#16#0000
DBW12 = W#16#0000
Sau l nh :ệ
D_DATA DBW10 = W#16#2424
DBW12 = W#16#2525

1.3/ Hàm chuy n đ iể ổ
a/ Gi i mã 7 đo n: FC93ả ạ
Đ i m t word hexa 4 digit IN (I,M,D,P, h ng s ) ra 4 byte mã 7 đo n c a t ngổ ộ ở ằ ố ạ ủ ừ
digit, xu t ra đ a ch OUT t kép (Q, M, D, L, P)ấ ị ỉ ừ
A I 0.0
JNB _001
CALL "SEG"
IN :=W#16#1234
OUT:=MD0
_001: NOP 0
b/ Đ i ASCII sang HEXổ
Đ i chu i ASCII dài N ký t (I, Q, M, L, P) g m các ký t A..F, s 0..9 , m i ký tổ ỗ ự ồ ự ố ỗ ự
chi m 2 byte đ a ch con tr IN ( I, Q, M,D,L) ra s Hex t ng ng, m t byte ng v i haiế ở ị ỉ ỏ ố ươ ứ ộ ứ ớ
ký t đ a ch con tr OUT (Q, M, D, L) . RET_VAL là word tr v k t qu th c hi n (I,ự ở ị ỉ ỏ ả ề ế ả ự ệ
Q, M, D, L, P) W#16#0000 n u đúng.ế
c/ Đ i HEX sang ASCII: FC95ổ

d/ Hàm đ i t m SCALE : FC105ổ ầ
Chuy n đ i s nguyên IN (I, Q, M, D, L, P, H ng s ) ra s th c OUT (I, Q, M, D,ể ổ ố ằ ố ố ự ở
L, P) trong kho ng LO_LIM và HI_LIM theo công th c ả ứ
OUT = [ ((FLOAT (IN) –K1)/(K2–K1)) * (HI_LIM – LO_LIM) ] + LO_LIM
HI_LIM, LO_LIM là các giá tr th c (I, Q, M, D, L, P, H ng s )ị ự ằ ố
K1, K2 tuỳ thu c tr ng thái ngõ đi u khi n BIPOLARộ ạ ề ể
BIPOLAR=1: s IN là l ng c c, K1 = –27648.0, K2 = +27648.0ố ưỡ ự
BIPOLAR=0: s IN là đ n c c, K1 = 0.0, K2 = +27648.0ố ơ ự
e/ Hàm đ i t m ng c UNSCALE : FC106ổ ầ ượ

Chuy n đ i s th c IN gi a hai giá tr LO_LIM và HI_LIM thành s nguyên đ nể ổ ố ự ữ ị ố ơ
c c hay l ng c c OUT theo công th cự ưỡ ự ứ
OUT = [ ((IN–LO_LIM)/(HI_LIM–LO_LIM)) * (K2–K1) ] + K1
f/ B chính s m- tr pha: FB90ổ ớ ễ
Th c hi n phép hi u ch nh s m tr pha trên tín hi u vào IN, đ l i GAIN, th i gianự ệ ệ ỉ ớ ễ ệ ộ ợ ờ
s m pha LG_TIME, th i gian tr pha LG_TIME, chu kỳ l y m u SAMPLE_T và cho ra tínớ ờ ễ ấ ẫ
hi 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:

