Professional Documents
Culture Documents
ch11 Multitask
ch11 Multitask
ch11 Multitask
• Multitasking cho phép robot làm việc với hơn 10 tác vụ cùng một lúc.
• Phần cứng ngoài như PLC, v.v... Cần phải được thay thế bằng phần
mềm đa tác vụ, tiết kiệm chi phí.
Multitasking
• Có thể chạy tới hơn mười tác vụ song song. (pseudo parallell).
• Mỗi tác vụ được viết bằng ngôn ngữ RAPID, bao gồm đầy đủ các modun
thủ tục, dữ liệu v.v... như một chương trình thông thường.
• Các biến và hằng số thì địa phương trong từng tác vụ, nhưng biến
persistent thì lại khác. Một Persistent với cùng tên và kiểu có thể truy cập
từ mọi task.
• Tất cả tài nguyên hệ thống đều có thể được truy cập từ mỗi tác vụ.
– Flex pendant, I/O-signals, floppy, etc.
• Mỗi task có trap handling của nó và event routine chỉ có thể gọi ra trong
chính mỗi task của nó. (e.g. Start/Stop/Restart....).
Multitasking
Task: MAIN Task: SUPERVISION Task: CONTROL
Program memory Program memory Program memory
PROGRAM PROGRAM PROGRAM
Main module Main module Main module
• Tất cả các loại dữ liệu đều có thể chuyển qua lại giữa các task với nhau,
nếu nó ở dạng persistent.
• Biến persistent là biến toàn cục đối với mọi task.
• Biến persistent có kiểu và kích thước (mảng) được khai báo giống nhau
trong tất cả các task. Nếu không, lỗi runtime error sẽ xuất hiện.
• Tất cả khai báo biến persistent cần chỉ rõ một giá trị khởi tạo, nhưng chỉ
khai báo của module đầu tiên được gọi sẽ sử dụng giá trị này.
Multitasking – Synchronizing- Đồng bộ
Synchronising using polling
Đây là cách đơn giản nhất để đồng bộ hóa, nhưng hiệu quả lại là
kém nhất.
Persistents được dùng cùng với các câu lệnh đơn giản, như
WaitUntil, IF, WHILE or GOTO.
SysHalt – Tất cả các task NORMAL sẽ bị dừng. Hệ thống bị ép sang chế độ ”đóng
động cơ”, Khi chuyển hệ thống sang ”chạy động cơ” thì có thể dịch chuyển robot,
nhưng các cố gắng khởi động chương trình sẽ bị từ chối. Chạy warm start(khởi
động nóng) để khởi động lại hệ thống.
SysStop - Tất cả các task NORMAL sẽ bị dừng nhưng có thể khởi động lại. Có thể
dịch chuyển robot.