Kết hợp ngày tháng năm (DATE) biến IN1 (I, Q, M, D, Hằng) với giờ trong ngày 
(TIME OF DAY) biến IN2 (I, Q, M, D, L, Hằng) thành biến RET_VAL loại DT (biến ký 
hiệu). Biến IN1 trong khoảng DATE# 1990-01-01 và DATE#2089-12-31. 
Ví dụ:
Bảng khai báo biến trong local block của chương trình gọ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 
                
              
                                            
                                
            
 
            
                 7 trang
7 trang | 
Chia sẻ: maiphuongdc | Lượt xem: 5901 | Lượt tải: 1 
              
            Bạn đang xem nội dung tài liệu Các hàm thư viện trong S7-300, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
CÁC HÀM THƯ VIỆN TRONG S7-300
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:
Instance DB80
PREV_IN DBD24 = 2.0
PREV_OUT DBD28 = 2.0
OUT MD20 = 2.0
2/ CÁC HÀM IEC (International Electrotechnical Commission)
2.1/ Hàm thời gian
FC1 AD_DT_TM Cộng biến DT và TIME 
FC3 D_TOD_DT Kết hợp DATE và TIME_OF_DAY thành DT
FC6 DT_DATE Rút ra DATE từ DT
FC7 DT_DAY Rút ra ngày trong tuần từ DT
FC8 DT_TOD Rút ra TIME_OF_DAY từ DT
FC9 EQ_DT DT So sánh bằng hai DT
FC12 GE_DT DT So sánh lớn hơn hay bằng hai DT
FC14 GT_DT DT So sánh lớn hơn hai DT
FC18 LE_DT DT So sánh nhỏ hơn hay bằng hai DT
FC23 LT_DT DT So sánh nhỏ hơn hai DT
FC28 NE_DT DT So sánh không bằng hai DT
FC33 S5TI_TIM Đổi S5TIME ra TIME
FC34 SB_DT_DT Trừ hai biến DT 
FC35 SB_DT_TM Trừ DT và TIME 
FC40 TIM_S5TI Đổi TIME ra S5TIME
a/ Hàm FC3: 
Kết hợp ngày tháng năm (DATE) biến IN1 (I, Q, M, D, Hằng) với giờ trong ngày 
(TIME OF DAY) biến IN2 (I, Q, M, D, L, Hằng) thành biến RET_VAL loại DT (biến ký 
hiệu). Biến IN1 trong khoảng DATE# 1990-01-01 và DATE#2089-12-31. 
Ví dụ:
Bảng khai báo biến trong local block của chương trình gọ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/ Hàm FC1
Cộng giờ IN1 dạng DT (biến ký hiệu ) với khoảng thời gian IN2 dạng TIME, 
RET_VAL là biến ký hiệu dạng DT.
2.2/Đổi số ra chuỗi và ngược lại
FC5 DI_STRNG Đổi DINT ra STRING
FC16 I_STRNG Đổi INT ra STRING
FC30 R_STRNG Đổi REAL ra STRING, 
FC37 STRNG_DI Đổi STRING ra DINT, chuỗi dài tối đa 11 số 
FC38 STRNG_I Đổi STRING ra INT, chuỗi dài tối đa 6 số
FC39 STRNG_R Đổi STRING ra REAL, chuỗi có dạng ±v.nnnnnnnE±xx
2.3/ So sánh Chuỗi
FC10 EQ_STRNG 
FC13 GE_STRNG 
FC15 GT_STRNG 
FC19 LE_STRNG 
FC24 LT_STRNG 
FC29 NE_STRNG 
2.4/ Lệnh xử lý chuỗi
FC2 CONCAT Kết hợp hai chuỗi 
FC4 DELETE Bỏ một chuỗi 
FC11 FIND Tìm một chuỗi
FC17 INSERT Xen một chuỗi 
FC20 LEFT Tách chuỗi bên trái 
FC21 LEN Tính chiều dài biến STRING 
FC26 MID Tách đoạn giữa 
FC31 REPLACE Thay một chuỗi 
FC32 RIGHT Tách chuỗi bên phải
2.5/ Lệnh số thực 
FC22 LIMIT Tạo hàm giới hạn biến vào giữa hai trị MN và MX
FC25 MAX Chọn giá trị lớn nhất giữa ba biến vào 
FC27 MIN Chọn giá trị nhỏ nhất giữa ba biến vào 
FC36 SEL Chọn một trong hai ngõ vào tuỳ biến điều khiển
3/ Hàm hệ thống SFC xử lý khối 
            Các file đính kèm theo tài liệu này:
 cachamthuvien_4537.pdf cachamthuvien_4537.pdf