TÀI LIỆU ĐƯỢC HỖ TRỢ BỞI AI
Bạn muốn biết điều gì?
PLC Handshakes
Mọi trao đổi giữa PLC và OV Spark Pro đều tuân theo một handshake: PLC phát ra yêu cầu, camera xác nhận, và PLC hạ yêu cầu xuống khi đã thấy xác nhận. Có bốn loại: trigger, đọc kết quả, chuyển recipe, và lệnh.
Trang này dành cho kỹ sư điều khiển viết logic PLC. Nó hoạt động giống nhau trên cả EtherNet/IP và PROFINET.
- Luôn chờ bit ready của camera trước khi phát yêu cầu, và giữ yêu cầu cho đến khi thấy ack
- Đọc kết quả dựa trên Results Valid cộng với Inspection ID đã thay đổi, không bao giờ chỉ dựa vào toggle
- Xác nhận mọi kết quả, nếu không sẽ không có gì mới được trình bày
Trang này cố ý đặt tên tín hiệu thay vì địa chỉ. Bố cục byte và bit được tạo theo từng firmware, vì vậy hãy lấy chúng từ EDS hoặc GSDML tương ứng với firmware của camera, hoặc từ các phần tham khảo trên trang Industrial Ethernet của camera. Việc gõ offset bằng tay là cách mà một cài đặt kết thúc với việc đọc sai bit sau khi cập nhật.
Trigger
- Kiểm tra Online = 1, Trigger Ready = 1 và Trigger Ack = 0. Ghi Part ID, và User Data nếu bạn sử dụng, sau đó nâng Trigger và giữ nó
- Camera chấp nhận trên cạnh lên: Trigger Ready giảm xuống 0, Trigger Ack tăng lên 1, và Part ID cùng User Data được chốt lại. Nếu camera từ chối trigger, Trigger Error tăng lên và Error ID cho biết lý do
- Khi bạn thấy Trigger Ack = 1, hạ Trigger xuống
- Camera hạ Trigger Ack. Exposure Complete được đặt khi quá trình phơi sáng kết thúc, và Trigger Ready trở về 1 khi lần thu ảnh tiếp theo có thể bắt đầu
- Giữ Trigger ở mức cao không tạo lại trigger. Camera chỉ hoạt động trên cạnh lên
- Trigger Error báo cáo trigger cuối cùng từ bất kỳ nguồn nào, không chỉ của bạn. Đọc Error ID để biết lý do thay vì giả định rằng bạn đã trigger quá nhanh
- Trigger Ready = 1 trong khi Busy = 1 là bình thường khi bộ đệm ảnh đang được sử dụng. Camera có thể chấp nhận trigger tiếp theo trước khi inspection hiện tại kết thúc. Đừng chốt điều đó như một lỗi
Đọc kết quả
Một handshake duy nhất bao gồm cả hai chế độ. Với Buffer Results Enable = 0, kết quả là trực tiếp và mỗi kết quả ghi đè kết quả trước. Với Buffer Results Enable = 1, tối đa 10 kết quả được xếp hàng.
- Chờ Results Valid = 1
- Đọc mọi trường kết quả trong một lần quét, cùng với Inspection ID
- Nâng Inspection Results Ack và giữ nó. Camera lấy ra khỏi hàng đợi, và Results Valid cùng các bit pass và fail giảm xuống 0
- Khi bạn thấy Results Valid = 0, hạ Ack xuống. Nếu còn kết quả xếp hàng, kết quả tiếp theo sẽ được trình bày trên cạnh xuống đó
Hãy coi Results Valid chuyển từ 0 lên 1 kèm theo Inspection ID đã thay đổi là một kết quả mới.
- Inspection Completed đảo trạng thái; không phải là mức. Trong chế độ có buffer, nó đánh dấu một lần hoàn thành chứ không phải một lần trình bày, nên nó có thể lật trong khi các trường kết quả vẫn giữ nguyên. Không bao giờ đọc kết quả chỉ dựa vào toggle
- Chế độ live có thể che giấu một inspection. Hai lần hoàn thành trong một khoảng gói tin có thể trông như một lần lật. Chế độ có buffer thì không bị ảnh hưởng
- Thay đổi Buffer Results Enable sẽ loại bỏ hàng đợi và kết quả đang được trình bày, trên cả hai cạnh
- Khoảng trống trong Inspection IDs nghĩa là một trigger đã được chấp nhận nhưng không tạo ra kết quả: bị hủy, bị bỏ, hoặc bị ngăn chặn
- Trong khi Ack ở mức cao, sẽ không có gì mới được trình bày, dù có bao nhiêu inspection hoàn thành đi nữa
Phán quyết tổng thể nằm ở Inspection Pass và Inspection Fail. Cả hai đều ở 0 nghĩa là không có kết quả. Chi tiết theo từng tool đến từ các slot bạn gán ở Bước 5: Outputs.
Chuyển recipe
- Kiểm tra Recipe Switch Ack = 0, ghi Recipe ID, rồi nâng Recipe Switching Request
- Nếu được chấp nhận: Recipe Switch Ack tăng lên, Trigger Ready giảm xuống, và Online giảm xuống với Offline Reason = 3, đang tải recipe. Nếu bị từ chối: Recipe Switch Error tăng lên, với lỗi recipe không xác định hoặc đang bận
- Khi tải hoàn tất: Current Recipe ID, Recipe Version và Tool Count cập nhật, Recipe Load Complete tăng lên, và Online trở về 1
- Hạ Recipe Switching Request. Camera xóa Ack và Recipe Load Complete
- Giữ Recipe ID không đổi từ cạnh lên của yêu cầu cho đến khi có Ack
- Các bộ phận đang trong luồng sẽ hoàn thành theo recipe cũ. Chúng mang recipe cũ trong Recipe ID During Judgment, nên hãy sử dụng trường đó, không phải Current Recipe ID, để diễn giải một kết quả
- Các kết quả đang xếp hàng vẫn tồn tại qua lần chuyển và giữ lại recipe đã phán quyết chúng
- Nếu tải thất bại, recipe trước đó vẫn được tải
- Recipe ID là PLC recipe ID được đặt ở Bước 5: Outputs. Việc nhân bản hoặc import một recipe sẽ cấp cho nó một ID mới
Lệnh
- Kiểm tra Command Ready = 1, ghi Command ID và Command Arg 0 to 3, rồi nâng Execute Command và giữ nó
- Camera chốt ID và các đối số: Command Ready giảm xuống, Command Executing tăng lên
- Khi hoàn thành, một bản cập nhật mang theo tất cả Command Response 0 to 3, Command Result Code, Command Executing = 0, Command Complete = 1 và, nếu thất bại, Command Failed = 1. Những cái này không bao giờ bị tách ra qua các lần quét
- Đọc phản hồi và hạ Execute Command xuống. Camera xóa Command Complete và đưa Command Ready trở về 1
Danh sách lệnh và mã kết quả nằm trong các phần Command reference và Codes trên trang Industrial Ethernet của camera.
Một chuỗi PLC đáng tin cậy
Đối với một dây chuyền điển hình, logic trụ vững được trong sản xuất trông như sau:
- Khi có bộ phận hiện diện, chờ Trigger Ready, rồi trigger
- Chờ Results Valid với Inspection ID mới
- Đọc phán quyết, các slot bạn cần, và Recipe ID During Judgment
- Xác nhận
- Hành động dựa trên phán quyết, khớp với bộ phận bằng Part ID hoặc Inspection ID
Việc giả định rằng kết quả tiếp theo thuộc về bộ phận tiếp theo sẽ hoạt động cho đến lần trigger bị bỏ đầu tiên. Hãy ghi một Part ID cùng với mỗi trigger và kiểm tra nó trở lại cùng với kết quả, và chỉ một bộ phận bị bỏ lỡ không thể dịch chuyển mọi phán quyết sau đó.