Lập trình cĩ cấu trúc (structure programming) là kỹ thuật cài đặt thuật tốn điều khiển bằng cách chia nhỏ thành các khối chơng trình con FC hay FB với mỗi khối thực hiện một nhiệm vụ cụ thể của bài tốn điều khiển chung và tồn bộ các khối chơng trình này lại đợc quản lý một cách thống nhất bởi khối OB1. Trong OB1 cĩ các lệnh gọi những khối chơng trình con theo thứ tự phù hợp với bài tốn điều khiển đặt ra.
Hồn tồn tơng tự, một nhiệm vụ điều khiển con cĩ thể cịn đợc chia nhỏ thành nhiều nhiệm vụ nhỏ và cụ thể hơn nữa, do đĩ một khối chơng trình con cũng cĩ thể đợc gọi từ một khối chơng trình con khác. Duy cĩ điều cấm kỵ ta cần phải tránh là khơng bao giờ một khối chơng trình con lại gọi đến chính nĩ. Ngồi ra do cĩ sự hạn chế về ngăn xếp của các module CPU nên khơng đ- ợc tổ chức chơng trình con gọi lồng nhau quá số lần mà module CPU đợc sử dụng cho phép.
Để đơn giản trong trình bày, khi một khối chơng trình con này gọi một khối chơng trình con khác, ta sẽ ký hiệu khối chứa lệnh gọi là khối mẹ và khối đợc gọi là khối con. Hình dới đây mơ tả quy trình thực hiện việc gọi một khối con FC10 từ khối mẹ OB1.
Hình 2.2. Thực hiện gọi khối FC10
Giữa khối mẹ và khối con cĩ sự liên kết thể hiện qua việc trao đổi các giá trị, khi gọi khối con khối mẹ cần cho những sơ kiện thơng qua các tham trị đầu vào để khối con thực hiện nhiệm vụ. Sau khi thực hiện xong nhiệm vụ, khối con phải trả lại cho khối mẹ kết quả bằng những tham trị đầu ra, hệ điều hành của CPU tổ chức việc truyền tham trị thơng qua local block của từng khối con.
Nh vậy, khi thực hiện lệnh gọi khối con, hệ điều hành sẽ :
1) Chuyển khối con đợc gọi từ vùng Load memory vào vùng Work memory.
2) Cấp phát cho khối con một phần bộ nhớ trong Work memory để làm local block. Cấu trúc local block đợc qui định khi soạn thảo các khối. 3) Truyền các tham trị từ khối mẹ cho biến hình thức IN, IN-OUT của local
block.
4) Sau khi khối con thực hiện xong nhiệm vụ và ghi kết quả dới dạng
tham trị đầu ra cho biến OUT,IN-OUT của local block , hệ điều hành sẽ chuyển các tham trị này cho khối mẹ và giải phĩng khối con cùng local block ra khỏi vùng Work memory.
Chuyển FC10 vào Work memory, cấp phát local block và gán tham trị từ OB1 FC10 BE OB1 call FC10 Trả tham trị về OB1. Xố FC10 và local block trong Work memory