Một thực tập sinh đã từng hỏi tại sao chương trình máy làm đầy của anh ấy đôi khi bỏ qua một bước và làm đầy chai trước khi chai được định vị. Câu trả lời không phải là thiếu bộ hẹn giờ — mà là thiếu trạng thái. Chương trình của anh ấy là một đống điều kiện độc lập; các máy tuần tự thực sự là một máy trạng thái, và sự khác biệt là sự khác biệt giữa một chương trình hoạt động trên giấy và một chương trình hoạt động vào thứ Hai.
Điều khiển tuần tự có mặt ở khắp mọi nơi trong tự động hóa: một dây chuyền làm đầy, một bàn xoay, một máy ép, một buồng sơn. Sai lầm cổ điển là viết mỗi đầu ra như một điều kiện lỏng lẻo — "khi cảm biến A và bộ hẹn giờ B, mở van C" — và sau đó gỡ lỗi các tổ hợp không thể vào lúc 2 giờ sáng. Giải pháp là ngừng nghĩ về đầu ra và bắt đầu nghĩ về trạng thái.
Máy Trạng Thái Thực Sự Là Gì
Một máy trạng thái là một tập hợp các bước được đặt tên và các quy tắc để di chuyển giữa chúng. Máy luôn ở đúng một bước: CHỜ, ĐỊNH VỊ, LÀM ĐẦY, NIÊM PHONG, ĐẨY RA. Mỗi bước có các hành động đầu vào, điều kiện đầu ra và các biện pháp bảo vệ. Chai chỉ được làm đầy trong bước LÀM ĐẦY, và bước LÀM ĐẦY chỉ có thể đạt được từ ĐỊNH VỊ khi cảm biến chai xác nhận vị trí. Nghe có vẻ như quan liêu; nó hoạt động như kỹ thuật.
Trong FBD của xLogicSoft, một máy trạng thái được ánh xạ rõ ràng vào mẫu Registor dịch chuyển cổ điển hoặc vào các cờ F được sử dụng như các bit bước. Mẫu: một cờ F cho mỗi bước, một tập hợp các điều kiện chuyển tiếp, và một khối chuyển tiếp một lần để máy tiến lên đúng một bước cho mỗi sự kiện. Bởi vì bước hiện tại luôn hiển thị — màn hình LCD cho biết cờ F nào đang hoạt động — người vận hành và kỹ thuật viên bảo trì có thể thấy ngay máy nghĩ nó đang ở đâu. Tính năng duy nhất đó giảm thời gian gỡ lỗi nhiều hơn bất kỳ tài liệu chẩn đoán nào.
Xây Dựng Nó: Ba Trạm Làm Đầy
Lấy một ví dụ đơn giản với ba trạm: một chai đến, được làm đầy, được đậy nắp. Các bước:
- Bước 0 IDLE: tất cả các đầu ra tắt. Chuyển tiếp: cảm biến chai có mặt, nút khởi động.
- Bước 1 VỊ TRÍ: băng chuyền chạy cho đến khi chai dừng lại ở đầu làm đầy. Chuyển tiếp: cảm biến vị trí.
- Bước 2 LÀM ĐẦY: van làm đầy mở trong một khoảng thời gian đã định hoặc cho đến khi cảm biến mức kích hoạt. Chuyển tiếp: bộ đếm thời gian hoàn thành.
- Bước 3 ĐÓNG NẮP: máy đóng nắp hạ xuống và ấn. Chuyển tiếp: áp suất được xác nhận, bộ đếm thời gian hoàn thành.
- Bước 4 THẢI: băng chuyền chạy để di chuyển chai ra ngoài. Chuyển tiếp: cảm biến thoát clears.
Mỗi chuyển tiếp sử dụng một khối On-Delay hoặc một Relay Lau (một lần) để sự tiến lên xảy ra chính xác một lần. Biện pháp bảo vệ trên mỗi chuyển tiếp là chính bước đó — Bước 2 không thể bắt đầu trừ khi máy đang ở Bước 1, hết sức. Chai không thể được làm đầy sớm vì "sớm" không tồn tại như một điều kiện; nó không có trong bảng bước, và chai không được định vị cho đến khi máy rời khỏi ĐỊNH VỊ.
Hãy cho người vận hành một chế độ bước thủ công trước khi bạn cho họ bất kỳ thứ gì khác. Một đầu vào chọn lựa cho phép máy tiến lên một bước tại một thời điểm qua chuỗi, vì vậy một kỹ thuật viên thiết lập có thể điều chỉnh dây chuyền qua ĐỊNH VỊ, LÀM ĐẦY và ĐÓNG NẮP một cách riêng lẻ trong khi theo dõi các bộ truyền động. Máy trạng thái làm điều này trở nên đơn giản — tiến lên một bước chỉ là buộc chuyển tiếp tiếp theo — và nó biến việc đưa vào hoạt động từ một bí ẩn thành một danh sách kiểm tra. Các máy không thể được bước qua thủ công là những máy được gỡ lỗi bằng một cái tua vít.
Kiểm Tra Chế Độ Thất Bại
Đây là bài tập tiết lộ bạn đã xây dựng một máy trạng thái hay một đống điều kiện: liệt kê các tình huống khẩn cấp. Chai bị kẹt dưới đầu làm đầy? Máy nên ở lại trong bước LÀM ĐẦY, dừng bơm, và báo động — không đi lang thang vào ĐẨY RA và đổ sản phẩm xuống sàn. Cảm biến bị lỗi và báo cáo "chai có mặt" mãi mãi? Máy nên hết thời gian bước ĐỊNH VỊ và báo động, không làm đầy cùng một chai vô hình suốt đêm. Cảm biến bị lỗi theo cách khác, "không bao giờ có mặt"? Máy chờ đợi một cách kiên nhẫn — điều đó là tốt, đó là những gì máy nên làm.
Viết một bộ giám sát vào chương trình: nếu máy ngồi ở bất kỳ bước không phải IDLE nào lâu hơn thời gian tối đa của bước đó, hãy rơi vào trạng thái FAULT, cắt các đầu ra, và nhấp nháy báo động. Thời gian tối đa là một con số bạn đã biết từ thời gian chu kỳ — bạn không đoán, bạn đang thực thi vật lý.
Quyết định điều gì xảy ra sau một lỗi trước khi lỗi xảy ra. Lựa chọn phổ biến: máy dừng lại nơi nó đang ở, người vận hành xóa nguyên nhân, nhấn nút đặt lại, và chuỗi trở lại IDLE — hoặc đến đầu của bước bị gián đoạn nếu sản phẩm vẫn an toàn. Quay trở lại IDLE đơn giản và an toàn hơn cho các máy nhỏ; tiếp tục giữa chu kỳ nhanh hơn nhưng yêu cầu mọi trạng thái đầu ra phải được biết và chứng minh. Đối với một máy làm đầy, IDLE là câu trả lời trung thực — một chai làm đầy một nửa là phế liệu theo cả hai cách.
Tại Sao FBD Vượt Trội Hơn Thang Trong Vấn Đề Này
Một thói quen gỡ lỗi tự trả tiền ngay lập tức: làm cho bước hiện tại hiển thị trên màn hình LCD phía trước dưới dạng một số đơn giản. Báo cáo đầu tiên của người vận hành trở thành "nó bị kẹt ở bước 4," không phải "nó làm điều gì đó kỳ lạ," và bước 4 chỉ ra ngay điều kiện chuyển tiếp của nó. Trong xLogicSoft, các bit cờ nằm ngay trong cửa sổ giám sát, vì vậy một phiên làm việc trên laptop cho thấy cùng một hình ảnh mà màn hình LCD hiển thị. Khớp lời nói của người vận hành với trạng thái của chương trình giảm thời gian tìm kiếm hai giờ xuống còn hai mươi phút mỗi lần.
Lập trình thang có thể biểu thị một máy trạng thái, nhưng nó cần một trăm bậc và một sơ đồ không ai đọc. Trong FBD, cấu trúc bước nằm ngay trước mặt bạn: Registor dịch chuyển hoặc khối cờ cho thấy bước hiện tại, các khối chuyển tiếp có thể nhìn thấy, và chuỗi đọc từ trên xuống dưới. Môi trường xLogicSoft bao gồm khoảng bảy mươi khối chức năng, và một máy năm bước với các khóa an toàn vừa vặn thoải mái trong một trang chương trình. Khi máy thay đổi — trạm mới, cảm biến mới — bạn thêm một bước và hai chuyển tiếp thay vì phải nối lại logic.
Bắt đầu với bảng bước trên giấy, sau đó là các cờ, sau đó là các chuyển tiếp. Chương trình sẽ chính xác một cách nhàm chán, và chính xác một cách nhàm chán là lời khen cao nhất mà một chương trình tự động hóa có thể nhận được. Máy không cần thông minh; chúng cần có thể dự đoán.












