KUKA KRC4 $POS_ACT Position Mismatch After Loop: Advance Run Troubleshooting — figure 1

KUKA KRC4 $POS_ACT ตำแหน่งไม่ตรงกันหลังจบลูป: การแก้ไขปัญหา Advance Run

KUKA KRC4 $POS_ACT คืนค่าออฟเซ็ต A ของข้อมูลเครื่องมือเป็นสองเท่า หลังจากการวนรอบโปรแกรมครั้งแรก สาเหตุหลักมาจากการทำงานของตัวชี้การรันล่วงหน้า

บนคอนโทรลเลอร์ KUKA KRC4 ที่ใช้ KSS 8.2 หรือ 8.3 โปรแกรมเมอร์อาจพบว่า $POS_ACT รายงานค่าออฟเซ็ต A ของทูลสูงกว่าที่ตั้งใจไว้ประมาณสองเท่า หลังจากการวนลูปรอบแรกของรูทีนการเคลื่อนที่ หุ่นยนต์ไม่ได้กระโดดทางกายภาพ แต่ Advance Run Pointer ยังคงทำงานต่อไปยังคำสั่งถัด ๆ ไป ขณะที่ $POS_ACT ยังคงสะท้อนโพสที่สั่งงาน ซึ่งขึ้นอยู่กับทูลและเบส และไม่ตรงกับค่าที่โปรแกรมเมอร์คาดว่าจะบันทึกหรือใช้เป็นข้อมูลอ้างอิงของเฟรมอีกต่อไป

ความไม่ตรงกันของตำแหน่ง $POS_ACT บน KUKA KRC4 หลังการวนลูป: การแก้ไขปัญหา Advance Run — รูปที่ 1 หน้าจอทีชแพนเดนต์ของ KUKA KRC4 ที่เปรียบเทียบ $POS_ACT ที่สั่งงานกับ $POS_ACT_MES ที่วัดได้ระหว่างโปรแกรมการเคลื่อนที่แบบวนลูป

$POS_ACT คือ ตำแหน่งจริงที่สั่งงานในความหมายของโพสที่โปรแกรมไว้ในคอนโทรลเลอร์ ซึ่งถูกแปลงผ่านทูลและเบสที่ใช้งานอยู่ ดังนั้นค่าดังกล่าวจึงไวต่อจังหวะที่อินเทอร์พรีเตอร์ทำงานต่อไป $POS_ACT_MES คือตำแหน่งที่วัดได้จากเส้นทางป้อนกลับของหุ่นยนต์ และเป็นตัวแปรที่ปลอดภัยกว่าเมื่อจำเป็นต้องใช้โพสทางกายภาพ ณ จุดซิงโครไนซ์ การสับสนระหว่างสองค่านี้ทำให้เกิดอาการ “ออฟเซ็ตซ้ำสอง” ซึ่งดูคล้ายความผิดพลาดในการคาลิเบรตทูลหลังจากรอบแรก โดยเฉพาะเมื่อมีการใช้ออฟเซ็ตทูลแกน A ภายในลูปที่ Advance Run ได้ประเมินบางส่วนไปแล้ว

Advance Run Pointer ในฐานะกลไกที่ทำให้เกิดปัญหา

Advance Run ของ KUKA จะประมวลผลคำสั่งถัดไปก่อนที่หุ่นยนต์จะไปถึงปลายทางที่แน่นอนของการเคลื่อนที่ปัจจุบัน การดึงคำสั่งล่วงหน้านี้จำเป็นต่อการเบลนด์เส้นทาง แต่ก็หมายความว่าการกำหนดค่าและการคำนวณเฟรมที่อ่านค่า $POS_ACT อาจทำงานเร็วกว่าที่มนุษย์เข้าใจว่า “มาถึงแล้ว” ในรอบแรก จังหวะอาจดูเหมือนถูกต้องโดยบังเอิญ แต่ในรอบที่สอง ออฟเซ็ตที่นำไปใช้โดยอ้างอิงจากค่า $POS_ACT ที่ถูกอ่านก่อนเวลาอาจซ้อนทับกับทรานส์ฟอร์มของทูล และแสดงเป็นองค์ประกอบออฟเซ็ต A ประมาณ 2 เท่าในหน้าจอหรือข้อมูลติดตาม

ความไม่ตรงกันของตำแหน่ง $POS_ACT บน KUKA KRC4 หลังการวนลูป: การแก้ไขปัญหา Advance Run — รูปที่ 2 ภาพแสดง Advance Run Pointer ที่ทำงานต่อไปยังตรรกะของลูป ขณะที่หุ่นยนต์ยังทำช่วงการเคลื่อนที่ก่อนหน้าไม่เสร็จ

เทคนิคการแก้ไข

  • แทรก WAIT SEC 0 ที่จุดซิงโครไนซ์ซึ่งต้องหยุด Advance Run ก่อนอ่านหรือเขียนข้อมูลที่เกี่ยวข้องกับโพส
  • เรียก BAS(#INITMOV,0) เมื่อเริ่มต้นพารามิเตอร์การเคลื่อนที่ใหม่ เพื่อให้การเคลื่อนที่ถัดไปเริ่มจากสถานะอ้างอิงที่สะอาด แทนที่จะสืบทอดบริบทที่ถูกประเมินไปเพียงบางส่วน
  • ตั้งค่า $ADVANCE=0 ในส่วนที่ทำการบันทึกโพสที่สำคัญ คำนวณออฟเซ็ตทูล หรืออัปเดตเฟรมที่ส่งต่อระหว่างลูป จากนั้นคืนค่า Advance ที่ไม่ใช่ศูนย์ภายหลังเพื่อประสิทธิภาพการผลิต
  • เลือกใช้ $POS_ACT_MES เมื่อแอปพลิเคชันต้องการโพสคาร์ทีเซียนที่วัดได้จริง แทนค่าที่ขึ้นอยู่กับตัวชี้คำสั่ง
; รูปแบบการซิงโครไนซ์ตัวอย่าง (เชิงแนวคิด)
$ADVANCE=0
WAIT SEC 0
; ตอนนี้ให้บันทึกโพสที่วัดได้
DECL FRAME MySnap
MySnap = $POS_ACT_MES
BAS(#INITMOV,0)
; คืนค่า Advance เพื่อการเบลนด์ตามที่เซลล์ต้องการ
$ADVANCE=3

ลำดับการวินิจฉัย

  1. บันทึกค่า $POS_ACT และ $POS_ACT_MES ที่บรรทัดโปรแกรมเดียวกันในรอบที่ 1 และรอบที่ 2 ของลูปที่เกิดปัญหา
  2. ยืนยันว่าหมายเลขทูลและเบสที่ใช้งานอยู่ไม่มีการเปลี่ยนแปลงระหว่างรอบ
  3. ตั้งค่า $ADVANCE=0 ชั่วคราวแล้วทดสอบอีกครั้ง หากออฟเซ็ต A ที่เพิ่มเป็นสองเท่าหายไป แสดงว่ายืนยันการโต้ตอบกับ Advance Run ได้
  4. เปลี่ยนการอ่านค่าโพสที่ใช้คำนวณออฟเซ็ตเป็น $POS_ACT_MES หรือป้องกันการอ่านด้วย WAIT SEC 0
  5. เปิดใช้ Advance Run กลับคืนเฉพาะนอกส่วนวิกฤต และตรวจสอบเวลาไซเคิลเทียบกับคุณภาพเส้นทาง
ตัวแปร / คำสั่งเรียกใช้ ความหมาย ควรใช้เมื่อใด
$POS_ACT โพสที่สั่งงาน (ขึ้นอยู่กับทูล/เบส) บริบทการเคลื่อนที่ทั่วไป แต่ต้องระวัง Advance Run
$POS_ACT_MES โพสที่วัดได้ การบันทึกข้อมูล การตรวจสอบ และการคำนวณออฟเซ็ต ณ จุดซิงโครไนซ์
WAIT SEC 0 หยุด Advance Run ก่อนการอ่าน/เขียนข้อมูลที่สำคัญ
BAS(#INITMOV,0) เริ่มต้นพื้นฐานการเคลื่อนที่ใหม่ หลังการซิงโครไนซ์หรือการเปลี่ยนโหมด
$ADVANCE=0 ปิด Advance Run ส่วนที่ต้องควบคุมโพสอย่างเข้มงวด (KSS 8.2/8.3)

ยืนยันโพสที่วัดได้เทียบกับโพสที่สั่งงานหลังการซิงโครไนซ์

การคาลิเบรตทูลใหม่เพียงเพราะ $POS_ACT “ดูเหมือนเพิ่มเป็นสองเท่า” อาจทำให้ TCP ที่ดีอยู่แล้วเสียหายถาวรได้ เช่นเดียวกัน การเพิ่มออฟเซ็ตชดเชยใน PLC หรือในซับมิตอินเทอร์พรีเตอร์โดยไม่เข้าใจการทำงานของ Advance Run จะสร้างวิธีแก้เฉพาะที่ผูกกับเวอร์ชันและถ่ายทอดกันแบบไม่มีเอกสาร เมื่อบันทึกข้อมูลติดตามเพื่อขอการสนับสนุนจากผู้จำหน่าย ควรระบุเวอร์ชัน KSS ที่เซลล์ใช้งาน—8.2 หรือ 8.3—และระบุด้วยว่ามีการเปิดใช้ตัวเลือกความแม่นยำสัมบูรณ์หรือเบสพิเศษหรือไม่

เซลล์บูรณาการหุ่นยนต์และ PLC ที่แลกเปลี่ยนโพสผ่านฟิลด์บัสควรกำหนดให้ชัดเจนว่าเฟรมที่แชร์เป็นเฟรมที่สั่งงานหรือเฟรมที่วัดได้ และบันทึกคำจำกัดความดังกล่าวไว้ในข้อกำหนดอินเทอร์เฟซ การกำหนดข้อตกลงนี้ให้ตรงกันตั้งแต่ต้นจะช่วยป้องกันเหตุการณ์คัดทิ้งที่ไม่ถูกต้อง เมื่อซีเควนเซอร์ของ ระบบ PLC และ PAC ทำงานตามโพสที่ Advance Run ยังไปไม่ถึงจริง

เกี่ยวกับผู้เขียน

Elena Vogt | วิศวกรบูรณาการระบบหุ่นยนต์ – KUKA / เซลล์การผลิตแบบดิสครีต

Elena Vogt เชี่ยวชาญด้านการคอมมิชชัน KUKA KRC4/KSS การวินิจฉัยเฟรมทูล และการจับมือสัญญาณระหว่าง PLC กับหุ่นยนต์ในเซลล์การผลิตแบบดิสครีตผสม งานของเธอมุ่งเน้นผลกระทบจาก Advance Run ตัวแปรโพสที่วัดได้เทียบกับโพสที่สั่งงาน และการรักษาสมดุลระหว่างเวลาไซเคิลกับประสิทธิภาพที่เสถียร

KUKA KRC4 $POS_ACT ตำแหน่งไม่ตรงกันหลังจบลูป: การแก้ไขปัญหา Advance Run

KUKA KRC4 $POS_ACT คืนค่าออฟเซ็ต A ของข้อมูลเครื่องมือเป็นสองเท่า หลังจากการวนรอบโปรแกรมครั้งแรก สาเหตุหลักมาจากการทำงานของตัวชี้การรันล่วงหน้า

บนคอนโทรลเลอร์ KUKA KRC4 ที่ใช้ KSS 8.2 หรือ 8.3 โปรแกรมเมอร์อาจพบว่า $POS_ACT รายงานค่าออฟเซ็ต A ของทูลสูงกว่าที่ตั้งใจไว้ประมาณสองเท่า หลังจากการวนลูปรอบแรกของรูทีนการเคลื่อนที่ หุ่นยนต์ไม่ได้กระโดดทางกายภาพ แต่ Advance Run Pointer ยังคงทำงานต่อไปยังคำสั่งถัด ๆ ไป ขณะที่ $POS_ACT ยังคงสะท้อนโพสที่สั่งงาน ซึ่งขึ้นอยู่กับทูลและเบส และไม่ตรงกับค่าที่โปรแกรมเมอร์คาดว่าจะบันทึกหรือใช้เป็นข้อมูลอ้างอิงของเฟรมอีกต่อไป

ความไม่ตรงกันของตำแหน่ง $POS_ACT บน KUKA KRC4 หลังการวนลูป: การแก้ไขปัญหา Advance Run — รูปที่ 1 หน้าจอทีชแพนเดนต์ของ KUKA KRC4 ที่เปรียบเทียบ $POS_ACT ที่สั่งงานกับ $POS_ACT_MES ที่วัดได้ระหว่างโปรแกรมการเคลื่อนที่แบบวนลูป

$POS_ACT คือ ตำแหน่งจริงที่สั่งงานในความหมายของโพสที่โปรแกรมไว้ในคอนโทรลเลอร์ ซึ่งถูกแปลงผ่านทูลและเบสที่ใช้งานอยู่ ดังนั้นค่าดังกล่าวจึงไวต่อจังหวะที่อินเทอร์พรีเตอร์ทำงานต่อไป $POS_ACT_MES คือตำแหน่งที่วัดได้จากเส้นทางป้อนกลับของหุ่นยนต์ และเป็นตัวแปรที่ปลอดภัยกว่าเมื่อจำเป็นต้องใช้โพสทางกายภาพ ณ จุดซิงโครไนซ์ การสับสนระหว่างสองค่านี้ทำให้เกิดอาการ “ออฟเซ็ตซ้ำสอง” ซึ่งดูคล้ายความผิดพลาดในการคาลิเบรตทูลหลังจากรอบแรก โดยเฉพาะเมื่อมีการใช้ออฟเซ็ตทูลแกน A ภายในลูปที่ Advance Run ได้ประเมินบางส่วนไปแล้ว

Advance Run Pointer ในฐานะกลไกที่ทำให้เกิดปัญหา

Advance Run ของ KUKA จะประมวลผลคำสั่งถัดไปก่อนที่หุ่นยนต์จะไปถึงปลายทางที่แน่นอนของการเคลื่อนที่ปัจจุบัน การดึงคำสั่งล่วงหน้านี้จำเป็นต่อการเบลนด์เส้นทาง แต่ก็หมายความว่าการกำหนดค่าและการคำนวณเฟรมที่อ่านค่า $POS_ACT อาจทำงานเร็วกว่าที่มนุษย์เข้าใจว่า “มาถึงแล้ว” ในรอบแรก จังหวะอาจดูเหมือนถูกต้องโดยบังเอิญ แต่ในรอบที่สอง ออฟเซ็ตที่นำไปใช้โดยอ้างอิงจากค่า $POS_ACT ที่ถูกอ่านก่อนเวลาอาจซ้อนทับกับทรานส์ฟอร์มของทูล และแสดงเป็นองค์ประกอบออฟเซ็ต A ประมาณ 2 เท่าในหน้าจอหรือข้อมูลติดตาม

ความไม่ตรงกันของตำแหน่ง $POS_ACT บน KUKA KRC4 หลังการวนลูป: การแก้ไขปัญหา Advance Run — รูปที่ 2 ภาพแสดง Advance Run Pointer ที่ทำงานต่อไปยังตรรกะของลูป ขณะที่หุ่นยนต์ยังทำช่วงการเคลื่อนที่ก่อนหน้าไม่เสร็จ

เทคนิคการแก้ไข

  • แทรก WAIT SEC 0 ที่จุดซิงโครไนซ์ซึ่งต้องหยุด Advance Run ก่อนอ่านหรือเขียนข้อมูลที่เกี่ยวข้องกับโพส
  • เรียก BAS(#INITMOV,0) เมื่อเริ่มต้นพารามิเตอร์การเคลื่อนที่ใหม่ เพื่อให้การเคลื่อนที่ถัดไปเริ่มจากสถานะอ้างอิงที่สะอาด แทนที่จะสืบทอดบริบทที่ถูกประเมินไปเพียงบางส่วน
  • ตั้งค่า $ADVANCE=0 ในส่วนที่ทำการบันทึกโพสที่สำคัญ คำนวณออฟเซ็ตทูล หรืออัปเดตเฟรมที่ส่งต่อระหว่างลูป จากนั้นคืนค่า Advance ที่ไม่ใช่ศูนย์ภายหลังเพื่อประสิทธิภาพการผลิต
  • เลือกใช้ $POS_ACT_MES เมื่อแอปพลิเคชันต้องการโพสคาร์ทีเซียนที่วัดได้จริง แทนค่าที่ขึ้นอยู่กับตัวชี้คำสั่ง
; รูปแบบการซิงโครไนซ์ตัวอย่าง (เชิงแนวคิด)
$ADVANCE=0
WAIT SEC 0
; ตอนนี้ให้บันทึกโพสที่วัดได้
DECL FRAME MySnap
MySnap = $POS_ACT_MES
BAS(#INITMOV,0)
; คืนค่า Advance เพื่อการเบลนด์ตามที่เซลล์ต้องการ
$ADVANCE=3

ลำดับการวินิจฉัย

  1. บันทึกค่า $POS_ACT และ $POS_ACT_MES ที่บรรทัดโปรแกรมเดียวกันในรอบที่ 1 และรอบที่ 2 ของลูปที่เกิดปัญหา
  2. ยืนยันว่าหมายเลขทูลและเบสที่ใช้งานอยู่ไม่มีการเปลี่ยนแปลงระหว่างรอบ
  3. ตั้งค่า $ADVANCE=0 ชั่วคราวแล้วทดสอบอีกครั้ง หากออฟเซ็ต A ที่เพิ่มเป็นสองเท่าหายไป แสดงว่ายืนยันการโต้ตอบกับ Advance Run ได้
  4. เปลี่ยนการอ่านค่าโพสที่ใช้คำนวณออฟเซ็ตเป็น $POS_ACT_MES หรือป้องกันการอ่านด้วย WAIT SEC 0
  5. เปิดใช้ Advance Run กลับคืนเฉพาะนอกส่วนวิกฤต และตรวจสอบเวลาไซเคิลเทียบกับคุณภาพเส้นทาง
ตัวแปร / คำสั่งเรียกใช้ ความหมาย ควรใช้เมื่อใด
$POS_ACT โพสที่สั่งงาน (ขึ้นอยู่กับทูล/เบส) บริบทการเคลื่อนที่ทั่วไป แต่ต้องระวัง Advance Run
$POS_ACT_MES โพสที่วัดได้ การบันทึกข้อมูล การตรวจสอบ และการคำนวณออฟเซ็ต ณ จุดซิงโครไนซ์
WAIT SEC 0 หยุด Advance Run ก่อนการอ่าน/เขียนข้อมูลที่สำคัญ
BAS(#INITMOV,0) เริ่มต้นพื้นฐานการเคลื่อนที่ใหม่ หลังการซิงโครไนซ์หรือการเปลี่ยนโหมด
$ADVANCE=0 ปิด Advance Run ส่วนที่ต้องควบคุมโพสอย่างเข้มงวด (KSS 8.2/8.3)

ยืนยันโพสที่วัดได้เทียบกับโพสที่สั่งงานหลังการซิงโครไนซ์

การคาลิเบรตทูลใหม่เพียงเพราะ $POS_ACT “ดูเหมือนเพิ่มเป็นสองเท่า” อาจทำให้ TCP ที่ดีอยู่แล้วเสียหายถาวรได้ เช่นเดียวกัน การเพิ่มออฟเซ็ตชดเชยใน PLC หรือในซับมิตอินเทอร์พรีเตอร์โดยไม่เข้าใจการทำงานของ Advance Run จะสร้างวิธีแก้เฉพาะที่ผูกกับเวอร์ชันและถ่ายทอดกันแบบไม่มีเอกสาร เมื่อบันทึกข้อมูลติดตามเพื่อขอการสนับสนุนจากผู้จำหน่าย ควรระบุเวอร์ชัน KSS ที่เซลล์ใช้งาน—8.2 หรือ 8.3—และระบุด้วยว่ามีการเปิดใช้ตัวเลือกความแม่นยำสัมบูรณ์หรือเบสพิเศษหรือไม่

เซลล์บูรณาการหุ่นยนต์และ PLC ที่แลกเปลี่ยนโพสผ่านฟิลด์บัสควรกำหนดให้ชัดเจนว่าเฟรมที่แชร์เป็นเฟรมที่สั่งงานหรือเฟรมที่วัดได้ และบันทึกคำจำกัดความดังกล่าวไว้ในข้อกำหนดอินเทอร์เฟซ การกำหนดข้อตกลงนี้ให้ตรงกันตั้งแต่ต้นจะช่วยป้องกันเหตุการณ์คัดทิ้งที่ไม่ถูกต้อง เมื่อซีเควนเซอร์ของ ระบบ PLC และ PAC ทำงานตามโพสที่ Advance Run ยังไปไม่ถึงจริง

เกี่ยวกับผู้เขียน

Elena Vogt | วิศวกรบูรณาการระบบหุ่นยนต์ – KUKA / เซลล์การผลิตแบบดิสครีต

Elena Vogt เชี่ยวชาญด้านการคอมมิชชัน KUKA KRC4/KSS การวินิจฉัยเฟรมทูล และการจับมือสัญญาณระหว่าง PLC กับหุ่นยนต์ในเซลล์การผลิตแบบดิสครีตผสม งานของเธอมุ่งเน้นผลกระทบจาก Advance Run ตัวแปรโพสที่วัดได้เทียบกับโพสที่สั่งงาน และการรักษาสมดุลระหว่างเวลาไซเคิลกับประสิทธิภาพที่เสถียร

แสดงความคิดเห็น

โปรดทราบว่าความคิดเห็นจะต้องได้รับการอนุมัติก่อนที่จะได้รับการเผยแพร่