KUKA KRC4 $POS_ACT: Sai lệch vị trí sau vòng lặp – Khắc phục sự cố chạy trước
KUKA KRC4 $POS_ACT trả về giá trị A-offset của dữ liệu dao gấp đôi sau chu kỳ lặp đầu tiên của chương trình. Nguyên nhân được xác định là do hành vi của con ...
Trên các bộ điều khiển KUKA KRC4 chạy KSS 8.2 hoặc 8.3, lập trình viên đôi khi nhận thấy $POS_ACT báo giá trị lệch A của công cụ gần như gấp đôi giá trị dự kiến sau lần lặp đầu tiên của một quy trình chuyển động. Robot không thực sự nhảy vị trí; Con trỏ chạy trước vẫn tiếp tục đi vào các lệnh tiếp theo trong khi $POS_ACT vẫn phản ánh một tư thế được lệnh, phụ thuộc vào công cụ và hệ tọa độ gốc, không còn khớp với phép đo mà lập trình viên muốn ghi nhận hoặc sử dụng làm tham chiếu hệ tọa độ.
Màn hình bộ điều khiển tay KUKA KRC4 so sánh $POS_ACT được lệnh với $POS_ACT_MES đo được trong một chương trình chuyển động lặp.
$POS_ACT là vị trí thực tế được lệnh theo nghĩa tư thế đã lập trình của bộ điều khiển, được biến đổi qua công cụ và hệ tọa độ gốc đang hoạt động. Vì vậy, nó nhạy cảm với thời điểm trình thông dịch chạy trước. $POS_ACT_MES là vị trí đo được từ đường phản hồi của robot và là biến an toàn hơn khi bạn cần tư thế vật lý tại một điểm đồng bộ. Nhầm lẫn hai biến này sẽ tạo ra các triệu chứng “lệch gấp đôi” trông giống lỗi hiệu chuẩn công cụ sau chu kỳ đầu tiên, đặc biệt khi độ lệch A của công cụ được áp dụng bên trong một vòng lặp mà chức năng chạy trước đã đánh giá trước một phần.
Con trỏ chạy trước là cơ chế gây ra lỗi
Chức năng chạy trước của KUKA thực thi các câu lệnh sắp tới trước khi robot đến chính xác điểm cuối của chuyển động hiện tại. Việc nạp trước này rất cần thiết cho quá trình trộn quỹ đạo, nhưng đồng nghĩa với việc các phép gán và phép tính hệ tọa độ đọc $POS_ACT có thể được thực hiện sớm hơn so với hình dung của con người về thời điểm “robot đến nơi”. Ở lần lặp đầu tiên, thời gian thực thi có thể tình cờ trông như chính xác. Ở lần lặp thứ hai, một độ lệch được áp dụng tương đối với $POS_ACT đọc quá sớm có thể chồng lên phép biến đổi công cụ và hiển thị như thành phần lệch A gần bằng 2 lần trong màn hình hoặc dữ liệu theo dõi.
Minh họa Con trỏ chạy trước tiếp tục xử lý logic vòng lặp trong khi robot vẫn đang hoàn tất đoạn chuyển động trước đó.
Kỹ thuật khắc phục
- Chèn WAIT SEC 0 tại điểm đồng bộ, nơi bạn cần dừng chức năng chạy trước trước khi đọc hoặc ghi dữ liệu liên quan đến tư thế.
- Gọi BAS(#INITMOV,0) khi khởi tạo lại các tham số chuyển động để các chuyển động tiếp theo bắt đầu từ trạng thái cơ sở sạch thay vì kế thừa một ngữ cảnh đã được đánh giá dở.
- Đặt $ADVANCE=0 trong các phần thực hiện việc chụp tư thế quan trọng, tính toán độ lệch công cụ hoặc cập nhật hệ tọa độ qua vòng lặp; sau đó khôi phục giá trị chạy trước khác 0 để duy trì năng suất sản xuất.
- Ưu tiên $POS_ACT_MES khi ứng dụng cần tư thế Descartes đo được thay vì giá trị phụ thuộc vào con trỏ được lệnh.
; Mẫu đồng bộ hóa (mang tính khái niệm)
$ADVANCE=0
WAIT SEC 0
; Bây giờ chụp tư thế đo được
DECL FRAME MySnap
MySnap = $POS_ACT_MES
BAS(#INITMOV,0)
; Khôi phục chức năng chạy trước để trộn quỹ đạo khi cần cho cell
$ADVANCE=3
Trình tự chẩn đoán
- Ghi lại $POS_ACT và $POS_ACT_MES tại cùng một dòng chương trình ở lần lặp 1 và lần lặp 2 của vòng lặp bị lỗi.
- Xác nhận số công cụ và số hệ tọa độ gốc đang hoạt động không thay đổi giữa các lần lặp.
- Tạm thời đặt $ADVANCE=0 rồi kiểm tra lại; nếu độ lệch A gấp đôi biến mất thì đã xác nhận có tương tác với chức năng chạy trước.
- Thay thế các lệnh đọc tư thế dùng để tính toán độ lệch bằng $POS_ACT_MES hoặc bảo vệ chúng bằng WAIT SEC 0.
- Chỉ bật lại chức năng chạy trước bên ngoài phần quan trọng, sau đó xác minh thời gian chu kỳ so với chất lượng quỹ đạo.
| Biến / lệnh gọi | Ý nghĩa | Khi nào sử dụng |
|---|---|---|
| $POS_ACT | Tư thế được lệnh (phụ thuộc vào công cụ/hệ tọa độ gốc) | Ngữ cảnh chuyển động chung; cần thận trọng với chức năng chạy trước |
| $POS_ACT_MES | Tư thế đo được | Ghi nhật ký, kiểm tra, tính toán độ lệch tại các điểm đồng bộ |
| WAIT SEC 0 | Dừng chức năng chạy trước | Trước các thao tác đọc/ghi quan trọng |
| BAS(#INITMOV,0) | Khởi tạo lại cơ sở chuyển động | Sau khi đồng bộ hoặc thay đổi chế độ |
| $ADVANCE=0 | Tắt chức năng chạy trước | Các phần chặt chẽ, quan trọng đối với tư thế (KSS 8.2/8.3) |
Xác nhận tư thế đo được và tư thế được lệnh sau khi đồng bộ
Hiệu chuẩn lại công cụ chỉ vì $POS_ACT “trông như bị nhân đôi” có thể làm hỏng vĩnh viễn TCP vốn đang tốt. Tương tự, việc thêm các độ lệch bù trong PLC hoặc trong trình thông dịch submit mà không hiểu chức năng chạy trước sẽ tạo ra các cách sửa tạm thời phụ thuộc vào từng phiên bản. Hãy ghi rõ cell đang chạy phiên bản KSS nào—8.2 hay 8.3—khi thu thập dữ liệu theo dõi để hỗ trợ từ nhà cung cấp, đồng thời ghi chú xem các tùy chọn độ chính xác tuyệt đối hoặc các hệ tọa độ gốc đặc biệt có đang hoạt động hay không.
Các cell tích hợp robot và PLC trao đổi tư thế qua fieldbus nên xác định rõ khung tọa độ dùng chung là tư thế được lệnh hay tư thế đo được, đồng thời ghi định nghĩa đó vào đặc tả giao diện. Việc thống nhất hợp đồng này từ sớm sẽ ngăn các sự kiện loại sản phẩm sai do bộ điều phối các hệ thống PLC & PAC kích hoạt dựa trên một tư thế mà chức năng chạy trước thực tế vẫn chưa đạt tới.
Về tác giả
Elena Vogt | Kỹ sư tích hợp robot – KUKA / Cell rời rạc
Elena Vogt chuyên triển khai KUKA KRC4/KSS, chẩn đoán hệ tọa độ công cụ và thiết lập giao tiếp PLC–robot trong các cell rời rạc hỗn hợp. Công việc của cô tập trung vào các tác động phụ của chức năng chạy trước, các biến tư thế đo được so với tư thế được lệnh, cũng như sự cân bằng ổn định giữa thời gian chu kỳ và chất lượng quỹ đạo.