X Không xp loại Tr c Không xp loại Không xp loại Không xp loại Y Sự ki n, trạng thái hoặc sự
4 Các k iu mảng, ví d:
10.1.2 Tổ chức chương trình
Chương trình (PROGRAM), khối chức năng (FUNCTION_BLOCK) và hàm (FUNCTION) là các đơn vị tổ chức chương trình (Program Organization Unit), POU).
FUNCTION
Giống như trong PASCAL, một hàm có một hoặc nhiều đầu vào và chính xác một đầu ra. Một hàm khơng có trạng thái, có nghĩa là gọi hàm với các giá trị đầu vào như nhau sẽ cho kết quả như nhau.
Ví dụ về hàm là các hàm toán học SIN, COS, ADD,... hoặc các hàm logic AND, OR,... Một hàm được biểu diễn đồ họa như trên Hình 10-2.
Hình 10-2: Khai báo và sử dụng một hàm
Mã khai báo/định nghĩa và gọi hàm dưới dạng ST được minh họa dưới đây:
(* Khai báo và định nghĩa hàm *) FUNCTION fct1 : REAL VAR_INPUT a, b: REAL; c : REAL:= 1.0; END_VAR fct1 := a*b/c; Name P1 P2 P3 Data Type Data Type Data Type Data Type Các tham s hình th c KHAI BÁO HÀM Name P1 P2 P3 X 0.25 Các tham s th c t i S D NG HÀM
© 2005, Hồng Minh Sơn END_FUNCTION (* Gọi hàm *) ... y := fct1(a:= x, b:= 2.0); ... Cần lưu ý:
• Khai báo VAR_INPUT .. END_VAR cho các biến đầu vào • Khai báo VAR .. EBD_VAR cho các biến cục bộ
• Kết quả trả về được gán cho tên hàm
• Các hàm cũng có thể được nạp chồng để có thể áp dụng với nhiều kiểu dữ liệu khác nhau (Hình 10-3).
Hình 10-3: Khai báo hàm nạp chồng và hàm thông thường
FUNCTION_BLOCK
Hàm và khối chức năng là các khối tổ chức chương trình có giá trị sử dụng lại. Một khối chức năng giống như một đối tượng, có trạng thái và có thể có nhiều đầu ra, ví dụ các bộ điều khiển động, các khâu Flip-Flop, Timer, Counter. Nếu so sánh với một đối tượng thì một khối chức năng chỉ có một hàm thành viên duy nhất, vì thế cách gọi một khối chức năng tương tự như cách gọi một hàm. Mỗi khối chức năng có một trạng thái riêng nên ta phải phân biệt giữa kiểu khối chức năng (giống như lớp) và thể nghiệm khối chức năng (giống như ₫ối tượng). Tùy theo ngữ cảnh mà khái niệm khối chức năng
có thể hiểu theo một trong hai nghĩa trên. Việc gọi một khối chức năng cũng được thông qua tên của biến thể nghiệm, chứ không thông qua tên kiểu khối chức năng, như minh họa trên Hình 10-4.
Hình 10-4: Khai báo và sử dụng một khối chức năng