Nếu bạn chỉ đánh 1 lệnh duy nhất, việc khóa Robot bằng trạng thái BUSY là đủ. Nhưng với một Robot rải lưới (Grid) như Nhị Quái, việc “khóa toàn bộ” Robot mỗi khi vào lệnh sẽ khiến hệ thống trở nên chậm chạp và mất cơ hội ở các vùng giá khác.
Giải pháp đột phá trong phiên bản V7.6 chính là FSM đa tầng (Multi-level FSM).
Thay vì một cái khóa duy nhất, chúng tôi sử dụng một mảng trạng thái riêng biệt cho từng tầng lệnh (Step). Ví dụ: ENUM_STEP_STATE m_fsm_buy[41];
Mỗi tầng lệnh từ 1 đến 40 sẽ có một “ô nhớ” trạng thái độc lập. Khi giá chạm tầng 5, chỉ tầng 5 chuyển sang trạng thái STEP_BUSY. Lúc này:
- Robot vẫn có thể quét và vào lệnh ở tầng 6, tầng 7 một cách bình thường nếu giá biến động cực nhanh.
- Nhưng riêng tại tầng 5, sẽ không bao giờ có lệnh thứ hai được phát đi cho đến khi lệnh đầu tiên được xác nhận thành công.
Kiến trúc này giống như một dây chuyền sản xuất công nghiệp: Mỗi vị trí trên băng chuyền làm việc độc lập. Một mắt xích đang xử lý không làm đình trệ toàn bộ hệ thống, nhưng vẫn đảm bảo tính chính xác tuyệt đối tại vị trí đó.
Nguồn tham khảo: HuongNghiepDuLieu.Com