RoboDK สนับสนุนหุ่นยนต์ควบคุม KUKA ทั้งหมดตั้งแต่ KRC2, รวมถึง KUKA KRC3 และKRC4 เอกสารอ้างอิงนี้เป็นพื้นฐานของตัวควบคุม KRC4 หุ่นยนต์ควบคุมKRC4 ดำเนินการบนระบบปฏิบัติการ Microsoft Embedded Windows 7 ตัวควบคุมก่อนหน้านี้, KRC2, ดำเนินการบน Windows 95. หุ่นยนต์สอน pendant แดสง “HMI” ซึ่งเป็นโปรแกรมที่ KUKA ได้พัฒนาขึ้นเพื่อดำเนินการบนวินโดว์และเป็นการเชื่อมต่อซึ่งผู้ใช้หุ่นยนต์จะต้องจัดการหุ่นยนต์
ตามส่วนต่อไปนี้สาธิตระบบปฏิบัติการซึ่งใช้หุ่นยนต์ KUKA สอน pendant เพื่อเตรียมโปรแกรมใหม่ในRoboDK และถ่ายโอนไปถึงหุ่นยนต์
ทำตามขั้นตอนต่อไปนี้เพื่อนำโปรแกรมจาก USB disk:
1.ใส่ USB disk บนหุ่นยนต์ควบคุม (มันจะเร็วกว่าการใช้เชื่อมต่อการสอน pendant)
2.ถ้าพวกเราไม่เห็น USB disk เราจะต้องเข้าสู่โหมด in Administrator
3.เลือกไฟล์จาก USB disk
4.เลือกEdit➔Copy
5.เลือกโฟลเดอร์ในหน่วย KRC
6.เลือกEdit➔Paste


เมื่อสร้างโปรแกรมหุ่นยนต์สำหรับตัวควบคุม KUKA KRC คุณสามารถกำหนดระบบพิกัด ($BASE) และเครื่องมือ ($TOOL) ให้ใช้พิกัดเดียวกับที่คุณป้อนใน RoboDK หรือใช้ระบบพิกัดและเครื่องมือแบบมีหมายเลขก็ได้
โดยค่าเริ่มต้น RoboDK จะส่งออกท่าทาง (pose) เต็มรูปแบบ (ค่า XYZABC) ของเครื่องมือและระบบพิกัด ในรูปแบบเดียวกับที่ป้อนใน RoboDK โค้ดต่อไปนี้แสดงตัวอย่างสิ่งที่ RoboDK สร้างขึ้นสำหรับโปรแกรมหุ่นยนต์ KUKA SRC:
; ---- Setting tool (TCP) ----------
; TOOL_DATA[3]={FRAME: X 116.058,Y 0.0,Z 219.481,A 0.0,B 60.0,C 0.0}
$TOOL = {FRAME: X 116.058,Y 0.0,Z 219.481,A 0.0,B 60.0,C 0.0}
; $TOOL=TOOL_DATA[3]
; ----------------------------------
; ---- Setting reference (Base) ----
; BASE_DATA[1]={FRAME: X 640.289,Y -290.0,Z 0.0,A 90.0,B 0.0,C 0.0}
$BASE = {FRAME: X 640.289,Y -290.0,Z 0.0,A 90.0,B 0.0,C 0.0}
; $BASE = BASE_DATA[1]
; ----------------------------------
ในทางกลับกัน หากคุณต้องการเชื่อมโยงเครื่องมือ (ตัวแปร $TOOL) และระบบพิกัด (ตัวแปร $BASE) เข้ากับเครื่องมือและเฟรมแบบมีหมายเลข คุณสามารถเปลี่ยนตัวแปรต่อไปนี้ในหน่วยประมวลผลได้:
1.FRAME_INDEX: ตั้งค่าตัวแปรนี้เป็น True เพื่อเชื่อมโยงระบบพิกัดของคุณกับเฟรมฐานแบบมีหมายเลข ตรวจสอบให้แน่ใจว่าเฟรมอ้างอิงของคุณมีหมายเลขในสถานี RoboDK ดังภาพต่อไปนี้
2.TOOL_INDEX: ตั้งค่าตัวแปรนี้เป็น True เพื่อเชื่อมโยงเครื่องมือของคุณกับเครื่องมือแบบมีหมายเลข ตรวจสอบให้แน่ใจว่าเครื่องมือของคุณมีหมายเลขในสถานี RoboDK ดังภาพต่อไปนี้

ตามขั้นต่อเหล่านี้เพื่อเริ่มต้นโปรแกรมหุ่นยนต์บนตัวควบคุม KUKA KRC
1.เลือกโปรแกรมจากหน่วยความจำ KRC
2.เลือกSelectบนหน้าจอ
3.เลือกปุ่ม “R” (ข้างบน) และReset program
4.เริ่มโปรแกรมด้วยการเลือกปุ่มสีเขียว“เล่น” บนการสอน pendant


ตามขั้นตอนเพื่ออนุญาตให้สร้างหรือดัดแปลงเครื่องมือหุ่นยนต์ (TCP, รู้จักกันในชื่อ$BASEในการเขียนโปรแกรมหุ่นยนต์KUKA KRC):
1.เลือกMENU➔Start-up➔Calibrate➔Tool
2.เลือกเครื่องมือและแก้ไขหรือทดสอบตำแหน่งX,Y,Z ของ TCP


ตามขั้นตอนเหล่านี้เพื่ออนุญาตดึงจุดร่วมหุ่นยนต์กลับคืนมา:
1.เลือกMENU➔Display➔Actual position
2.เลือกโหมดJointsและใช้คอลัมน์ซ้ายเพื่อนำจุดร่วมหุ่นยนต์


เคล็ดลับ: มันเป็นไปได้ที่จะนำจุดร่วมหุ่นยนต์กลับคืนมาอย่างแม่นยำIt is possible to retrieve the robot joints more accurately (5 ทศนิยมความแม่นำ) โดยการแสดงผลตัวแปร $AXIS_ACT ซึ่งใช้ไดร์เวอร์หุ่นยนต์ the RoboDK โดยง่ายสำหรับ KUKA และการเลือกปุ่มGet robot joints
บางส่วนเมนูต้องต้องมีสิทธิ์ “ผู้ดูแลระบบ” ตามขั้นตอนต่อไปนี้อนุญาตให้เข้าสู่โหมด“ผู้ดูแลระบบ”:
1.เลือกMENU➔Configuration➔User group
2.เลือกAdministrator (หรืออย่างอื่น).
3.ป้อนรหัสผ่านถ้าจำเป็น (รหัสเริ่มต้นคือ“kuka”)


ไดร์เวอร์หุ่นยนต์ เป็นทางเลือกแทนการเขียนโปรแกรมออฟไลน์ (ซึ่งโปรแกรมจะถูกสร้างขึ้นก่อนแล้วจึงส่งไปยังหุ่นยนต์เพื่อรัน) ไดร์เวอร์หุ่นยนต์ช่วยให้คุณรันการจำลองบนหุ่นยนต์ได้โดยตรง (การเขียนโปรแกรมออนไลน์) ดูข้อมูลเพิ่มเติมได้ในส่วนไดร์เวอร์หุ่นยนต์
การเชื่อมต่อระหว่าง RoboDK และตัวควบคุม KUKA สามารถจัดตั้งขึ้นเพื่อเคลื่อนย้ายหุ่นยนต์โดยอัตโนมัติจากคอมพิวเตอร์ ซึ่งช่วยให้คุณใช้ตัวเลือก Run on robot ของ RoboDK เพื่อการเขียนโปรแกรมออนไลน์และการดีบักได้ การเชื่อมต่อสามารถทำผ่านการเชื่อมต่ออีเทอร์เน็ตมาตรฐาน (TCP/IP)
หากคุณไม่ได้ใช้ RoboDK เวอร์ชันล่าสุด คุณอาจกำลังใช้ไดร์เวอร์รุ่นเก่า (apikuka ซึ่งอิงจากโปรเจกต์ KUKAVARPROXY) หากต้องการใช้ไดร์เวอร์ปัจจุบัน ให้ตรวจสอบว่าไดร์เวอร์ kukabridge ถูกเลือกไว้ในส่วน More options ของหน้าต่าง Connection to Robot.

ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่าไดร์เวอร์ RoboDK สำหรับ KUKA:
1.ดาวน์โหลดไฟล์ติดตั้ง C3 Bridge เวอร์ชันล่าสุด (ไฟล์ c3setup) จาก ลิงก์นี้.
2.ใช้ KUKA HMI เพื่อคัดลอกไฟล์ติดตั้ง c3setup.exe ไปยังเดสก์ท็อปของตัวควบคุมหรือโฟลเดอร์ของระบบควบคุม
3.เชื่อมต่อเมาส์ (ไม่จำเป็น แต่แนะนำ) คุณสามารถเสียบอุปกรณ์ USB เข้ากับ teach pendant หรือตัวควบคุม (ไม่จำเป็นต้องรีบูท) หรือจะตั้งค่าการเชื่อมต่อ remote desktop ก็ได้ ขั้นตอนเหล่านี้สามารถทำได้ผ่านหน้าจอสัมผัสและคีย์บอร์ดเสมือนของ teach pendant เช่นกัน
4.แอปพลิเคชัน KUKA HMI ช่วยให้คุณเปิดเมนูหลักได้โดยใช้ปุ่ม KUKA ที่มุมซ้ายบนของหน้าจอ:
a.เลือก KUKA → Configuration → User group → Expert (รหัสผ่าน: kuka)
b.เลือก KUKA → Start-up → Service → Minimize HMI (หน้าจอ Windows จะปรากฏขึ้น)
5.ค้นหาและรันไฟล์ c3setup-X.Y.Z.exe ที่คัดลอกไว้ก่อนหน้านี้ (X.Y.Z คือเวอร์ชันที่เผยแพร่ของ Kukabridge เช่น 1.7.1) ทำตามคำแนะนำของตัวติดตั้ง
6.อนุญาตให้ใช้พอร์ต 7000 สำหรับการสื่อสาร TCP/UDP (หากพอร์ต 7000 ถูกใช้งานอยู่แล้ว ให้ใช้พอร์ตอื่น ดูหมายเหตุด้านล่าง) (ขั้นตอนนี้ไม่จำเป็นสำหรับตัวควบคุม KUKA KRC2):
a.เรียกคืน HMI
b.เลือก KUKA → Start-up → Network configuration → Advanced
c.เลือก NAT → Add port → Port number 7000
d.ตั้งค่าโปรโตคอลที่อนุญาต: tcp/udp
7.เริ่ม C3 Bridge Server จากทางลัดบนเดสก์ท็อปหรือรายการในเมนู Start (หากคุณเลือก Run C3 Bridge Server ในขั้นตอนสุดท้ายของการติดตั้งแล้ว สามารถข้ามขั้นตอนนี้ได้)
8.เพื่อให้ C3 Bridge Server เริ่มทำงานโดยอัตโนมัติเมื่อระบบเริ่มต้น ให้คัดลอกทางลัดแอปพลิเคชันบนเดสก์ท็อปไปยังโฟลเดอร์ Startup ในเมนู Start
9.Using the KUKA HMI application it is possible to open the main menu using the KUKA button 
a.
b.
c.



ตอนนี้ C3 Bridge Server พร้อมใช้งานแล้ว คุณสามารถปล่อยให้โปรแกรมนี้ทำงานต่อไปได้ เซิร์ฟเวอร์นี้ช่วยให้สามารถแลกเปลี่ยนค่าตัวแปรส่วนกลางระหว่างระบบควบคุม KUKA และคอมพิวเตอร์ระยะไกล ดาวน์โหลด/อัปโหลดโปรแกรม KRL และควบคุมการทำงานของโปรแกรม KRL ได้
การตั้งค่าเพิ่มเติมของระบบควบคุมสามารถทำได้สองวิธี ได้แก่ การตั้งค่าอัตโนมัติโดยใช้โหมดโต้ตอบของไดร์เวอร์ kukabridge (สำหรับ KRC4 เท่านั้น) และการตั้งค่าด้วยตนเองโดยแก้ไขไฟล์ของระบบควบคุมหุ่นยนต์ผ่าน KUKA HMI มาดูทั้งสองวิธีกัน
C3 Bridge Server จะบันทึกการตั้งค่าไว้ใน Windows Registry หากต้องการเปลี่ยนพอร์ตเครือข่าย ให้ทำตามขั้นตอนต่อไปนี้:
1.ปิด C3 Bridge Server
2.เปิด Registry Editor และไปที่ HKEY_CURRENT_USER\SOFTWARE\C3 Bridge Interface
3.เปลี่ยนค่าของคีย์ NetworkTcpPort เป็นค่าอื่นที่ไม่ใช่ 7000 (เช่น 7001)
4.เริ่ม C3 Bridge Server อีกครั้ง และทำขั้นตอนที่ 6 ของ ส่วนก่อนหน้า ซ้ำ (อนุญาตให้เข้าถึงพอร์ตที่ถูกต้อง)
C3 Bridge Server เวอร์ชันใหม่ (1.7.1 ขึ้นไป) รองรับตัวเลือกบรรทัดคำสั่ง โดยเฉพาะอย่างยิ่ง คุณสามารถเปลี่ยนพอร์ตของเซิร์ฟเวอร์ได้โดยรันแอปพลิเคชันพร้อมพารามิเตอร์ -tcpPort ตัวอย่าง:
c3bridge.exe -tcpPort 7001
สคริปต์ KUKA_Auto_Configuration.py ในโฟลเดอร์ C:\RoboDK\Library\Scripts ช่วยให้คุณตั้งค่าระบบควบคุม KUKA ได้โดยอัตโนมัติ ในกรณีนี้ สถานี RoboDK ปัจจุบันต้องมีหุ่นยนต์ KUKA อย่างน้อยหนึ่งตัวที่ตั้งค่าที่อยู่ IP และพอร์ตที่ถูกต้องไว้ในหน้าต่าง Connection to Robot สคริปต์นี้สามารถเรียกใช้ได้จากเมนู Tools → Run Script หรือใช้ปุ่มลัด Shift+S

ข้อกำหนดเบื้องต้น: RoboDK เวอร์ชัน 5.5.2 ขึ้นไป, ระบบปฏิบัติการ Windows, ติดตั้งที่ C:\RoboDK
1.เปิด command shell ผ่าน START → All programs → Accessories → Command Prompt หรือ START → Run → cmd
2.เปลี่ยนไดเรกทอรีไปที่ C:\RoboDK\bin และรันคำสั่งต่อไปนี้เพื่อเริ่ม kukabridge.exe:
c:
cd C:\RoboDK\bin
..\api\Robot\kukabridge.exe
1.ตอนนี้ KUKA Bridge Driver จะทำงานในโหมดโต้ตอบ
2.พิมพ์ CONNECT <ที่อยู่ IP ของหุ่นยนต์> <พอร์ต> <จำนวนแกนของหุ่นยนต์> เพื่อสร้างการเชื่อมต่อกับระบบควบคุม ตัวอย่าง:
CONNECT 172.1.1.10 7000 6
1.หากสำเร็จ คุณจะเห็นผลลัพธ์คล้ายกับตัวอย่างต่อไปนี้:
SMS:Connecting
Connected
SMS:Working...
SMS:Ready
1.พิมพ์คำสั่ง CJNT เพื่อขอตำแหน่งข้อต่อปัจจุบันของหุ่นยนต์:
CJNT
SMS:Working...
JNTS 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
SMS:Ready
1.รันการตั้งค่าอัตโนมัติด้วยคำสั่ง CONFIGURE FORCE:
CONFIGURE FORCE
SMS:Working...
Requesting robot program state
Current robot program state is #P_FREE
Reading current configuration ($config.dat)
Read complete, updating configuration
Adding definition of variable COM_ACTION
Adding definition of variable COM_ACTCNT
Adding definition of variable COM_ROUNDM
Adding definition of variable COM_VALUE1
Adding definition of variable COM_VALUE2
Adding definition of variable COM_VALUE3
Adding definition of variable COM_VALUE4
Adding definition of variable COM_E6AXIS
Adding definition of variable COM_FRAME
Adding definition of variable COM_POS
Adding definition of variable COM_E6POS
Configuration lines have been updated: 11 added, 0 removed, 0 updated, 659 total
Checking existence of old backup file ($config.bak)
Old backup file exists, deleting it
Creating new backup file ($config.bak)
Backup completed, writing new configuration
New configuration was successfully written
Checking existence of program file (RoboDKsync543.src)
Program file does not exists
Writing program file to robot system
Configuration is complete
SMS:Ready

1.ตอนนี้หุ่นยนต์พร้อมใช้งานแล้ว สิ่งที่คุณต้องทำคือ เลือกและรันโปรแกรม RoboDKsyncVER.src (VER คือเวอร์ชันของโปรแกรมซิงโครไนซ์ เช่น 543)
ขั้นตอนต่อไปนี้ใช้สำหรับการตั้งค่าโปรแกรมหลักที่จะจัดการการเคลื่อนที่ของหุ่นยนต์ด้วยตนเอง:
1.เพิ่มการประกาศตัวแปรส่วนกลางต่อไปนี้ โดยค้นหาและแก้ไขไฟล์ "KRC:\R1\SYSTEM\$CONFIG.DAT" ผ่าน KUKA HMI โฟลเดอร์ "KRC:\R1\" ยังสามารถเข้าถึงได้ผ่านไดรฟ์ C: โดยใช้เส้นทาง Windows "C:\KRC\ROBOTER\KRC\"
INT COM_ACTION=0
INT COM_ACTCNT=0
REAL COM_ROUNDM=0
REAL COM_VALUE1=0
REAL COM_VALUE2=0
REAL COM_VALUE3=0
REAL COM_VALUE4=0
DECL E6AXIS COM_E6AXIS
DECL FRAME COM_FRAME
DECL POS COM_POS
DECL E6POS COM_E6POS
1.คัดลอกโปรแกรม KUKA SRC ชื่อ RoboDKsyncVER.src ไปยังโฟลเดอร์ KRC\R1\PROGRAM คำต่อท้าย VER ในชื่อไฟล์แสดงเวอร์ชันของโปรแกรม (เช่น RoboDKsync543.src)
2.เริ่มโปรแกรม RoboDKsyncVER.src ด้วยตนเอง เพื่อให้หุ่นยนต์รอรับคำสั่งจากคอมพิวเตอร์
แม้ว่าโปรแกรม RoboDKsyncVER.src จะไม่ได้ทำงานอยู่ RoboDK ก็ยังสามารถอ่านข้อต่อของหุ่นยนต์ได้ ตราบใดที่ C3 Bridge Server กำลังทำงานอยู่บนตัวควบคุมหุ่นยนต์
ไดร์เวอร์หุ่นยนต์มีทางเลือกสำหรับการเขียนโปรแกรมออฟไลน์ (ซึ่งโปรแกรมได้ถูกสร้างขึ้น, จากนั้น, ถ่ายโอนหุ่นยนต์และสร้างขึ้น) ด้วยไดร์เวอร์หุ่นยนต์, อีกทั้งยังสามารถดำเนินการบนหุ่นยนต์โดยตรง (การเขียนโปรแกรมออนไลน์) ข้อมูลเพิ่มเติมดูได้ในส่วนRobot Drivers
การเชื่อมต่อระหว่างหุ่นยนต์RoboDK และ KUKA สามารถถูกจัดตั้งขึ้นเพื่อย้ายหุ่นยนต์อย่างอัตโนมัติจากการเชื่อมต่อ PC โดยใช้ RoboDK เป็นการอนุญาตใช้ RoboDK ทางเลือกRunonrobotสำหรับการเขียนโปรแกรมออนไลน์และการแก้ปัญหา การเชื่อมต่อสามารถจัดตั้งขึ้นผ่านการเชื่อมต่อพื้นฐาน Ethernet(TCP/IP)
ตามขั้นตอนเหล่านี้เพื่อตั้งค่าไดร์เวอร์ RoboDK สำหรับ KUKA:
3.เชื่อมต่อเมาส์ (ไม่จำเป็น, แต่แนะนำอย่างยิ่ง)
ถ้าเป็นไปได้ปลั้กไดร์เวอร์ USB เพื่อสอน pendant หรือตัวควบคุม(รีบูทไม่จำเป็น)
อีกทางเลือกหนึ่ง, เพื่อติดตั้งการเชื่อมต่อรีโมทหน้าจอ
ขั้นตอนต่อไปนี้สามารถถูกทำให้สำเร็จด้วยการสอนสัมผัสหน้าจอของpendant และแป้นพิมพ์เสมือนจริง
4.(ไม่จำเป็น) เชื่อมต่อแป้นพิมพ์ และ/หรือ หน้าจอภายนอก (DVI)
รีบูทตัวควบคุมถ้าหน้าจอภายนอกได้ถูกใช้งาน
ถ้าหน้าจอภายนอกถูกใช้งานด้วยเมาส์และคียบอร์ด, หน้าจอจะแสดงวินโดว์เข้าสู่ระบบ KukaUser ใส่หนังสือรับรองดังต่อไปนี้:
ผู้ใช้:kukauser (หรือ KukaUser)
รหัสผ่าน: 68kuka1secpw59

5.ใช้แอพพลิเคชั่นHMI KUKA HMI ซึ่งสามารถเปิดเมนูหลักโดยการใช้ปุ่ม KUKA 
a.
b.
6.คัดลอกโฟลเดอร์ KUKAVARPROXY ไปยังหน้าจอ (หรือที่ใดสักที่ในตัวควบคุม PC)
7.ปลดล็อคport 7000 สำหรับเซิร์ฟเวอร์ KUKAVARPROXY(HMI):
a.เลือก HMI.
b.
c.NAT➔Add port➔เลข Port 7000
d.ตั้งค่าโปรโตคอลที่อนุญาต: tcp/udp
8.เริ่มต้นโปรแกรม KUKAVARPROXY.EXE บนหุ่นยนต์ควบคุม (ดำเนินการบนวินโดว์).
9.(แนะนำ) ขั้นตอนต่อไปอนุญาตการเริ่มต้นไดร์เวอร์อย่างอัตโนมัติบนตัวควบคุมบนรีบูท:
a.สร้างทางลัดของไฟล์ KUKAVARPROXY.EXE
b.เลือกวินโดว์START➔All programs➔Right click startup➔Open
c.วาดทางลัดในโฟลเดอร์เริ่มต้น
เซิร์ฟเวอร์ KUKAVARPROXY ตอนนี้พร้อมแล้ว มันจะไม่ปลอดภัยที่จะทิ้งการดำเนินการโปรแกรมทั้งหมดทุกเวลา เซริฟเวอร์อนุญาตการแลกเปลี่ยนตัวแปลทั่วโลกจากตัวควบคุม KUKA ถึงการรีโมท PC
ขั้นตอนต่อไปนี้เป็นการตั้งค่าโปรแกรมหลักซึ่งจะจัดการการเคลื่อนไหวหุ่นยนต์
1.เพิ่มการประกาศของตัวแปรสากลต่อไปนี้:
เมื่อต้องการทำเช่นนั้น, ตั้งและดัดแปลงไฟล์“KRC\R1\STEU\$config.dat” (หรือใน “KRC\R1\System\$config.dat” สำหรับตัวควบคุม KRC2 ) โฟลเดอร์ “KRC\R1\” สามารถถึงได้จาก the C:\ ไดร์ ณ เส้นทางของวินโดว์ต่อไปนี้: “C:\KRC\ROBOTER\KRC\”
INT COM_ACTION=0
INT COM_ACTCNT=0
REAL COM_ROUNDM=0
REAL COM_VALUE1=0
REAL COM_VALUE2=0
REAL COM_VALUE3=0
REAL COM_VALUE4=0
DECL E6AXIS COM_E6AXIS
DECL FRAME COM_FRAME
DECL POS COM_POS
2.คัดลอกโปรแกรม SRC ที่จัดหา (RoboDKsynch.src) ในโฟลเดอร์KRC\R1
3.เริ่มต้นโปรแกรมด้วยตนเอง “RoboDKsynch.src” จะทำให้หุ่นยนต์แสดงเหมือนเซิร์ฟเวอร์ซึ่งตอบโต้เพื่อย้ายคำสั่งที่มาจาก PC
ถ้าโปรแกรม RoboDKsynch.src ไม่ทำงาน RoboDK จะยังคงสามารถอ่านการเชื่อมหุ่นยนต์กันได้ ไม่ว่าเวลาใด ถ้าโปรแกรม KUKAVARPROXY กำลังดำเนินการในหุ่นยนต์ควบคุม
ส่วนนี้อธิบายวิธีระบุ วินิจฉัย และแก้ไขปัญหาที่อาจพบเมื่อใช้ไดร์เวอร์หุ่นยนต์ KUKA กับ RoboDK
คุณต้องเข้าสู่กลุ่มผู้ใช้ Expert บนตัวควบคุม KUKA เพื่อแก้ไขปัญหาเกี่ยวกับพอร์ต 7000
1.เลือก KUKA → Configuration → User group → Expert (รหัสผ่าน: kuka)
2.เลือก KUKA → Start-up → Service → Minimize HMI (หน้าจอ Windows จะปรากฏขึ้น)
3.เปิด command shell ผ่าน START → All programs → Accessories → Command Prompt หรือ START → Run → cmd
4.ขอรายการการเชื่อมต่อและพอร์ตที่กำลังรับฟังทั้งหมดด้วยคำสั่งต่อไปนี้:
netstat -a -b -n -o -p TCP | findstr :7000
1.หากผลลัพธ์ไม่มีข้อความใด ๆ แสดงว่าพอร์ต 7000 ว่างและสามารถใช้กับการทำงานของไดร์เวอร์ได้ คุณสามารถข้ามขั้นตอนถัดไปได้
2.หากผลลัพธ์ของคำสั่งในขั้นตอนที่ 4 มีลักษณะดังนี้:
TCP 0.0.0.0:7000 0.0.0.0:0 LISTENING 1840
1.ตัวเลขสุดท้ายในบรรทัดด้านบนคือ Process ID (PID) ซึ่งสามารถใช้เพื่อดูข้อมูลเกี่ยวกับชื่อโปรเซสด้วยคำสั่งต่อไปนี้ (ใช้หมายเลขของคุณแทน 1840):
tasklist /fi "PID eq 1840"
1.ผลลัพธ์ของคำสั่ง tasklist จะมีข้อมูลเกี่ยวกับโปรเซสที่กำลังรับฟังอยู่บนพอร์ต 7000 ตัวอย่างผลลัพธ์:
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
c3bridge.exe 1840 Console 1 5,912 K
1.หากพอร์ตถูกใช้งานโดยโปรเซส KukavarProxy.exe หรือ c3bridge.exe แสดงว่าระบบพร้อมทำงานกับไดร์เวอร์ที่คุณเลือกแล้ว หากพอร์ตถูกใช้งานโดยแอปพลิเคชันอื่น คุณควรปิดแอปพลิเคชันนั้น หรือ เปลี่ยนหมายเลขพอร์ตของ C3 Bridge Server
หากคุณเคยใช้ KUKAVARPROXY และต้องการอัปเกรดเป็น C3 Bridge Server ไม่จำเป็นต้องมีขั้นตอนถอนการติดตั้งเฉพาะ เพียงย่อ KUKA HMI ปิด KUKAVARPROXY และตรวจสอบให้แน่ใจว่าไม่ได้ถูกโหลดโดยอัตโนมัติเมื่อระบบเริ่มต้น (ไม่มีทางลัดใน START → All programs → Startup) คุณไม่จำเป็นต้องลบไฟล์ปฏิบัติการของ KUKAVARPROXY
ขั้นตอนการตั้งค่าอัตโนมัติ หรือ ด้วยตนเอง ของระบบควบคุมอาจล้มเหลว ซึ่งส่วนใหญ่มักเกิดจากการไม่สามารถเขียนทับไฟล์ $config.dat ได้ ไฟล์นี้สามารถแก้ไขได้เฉพาะผู้ใช้ที่มีสิทธิ์ระดับสูง (Expert) เท่านั้น นอกจากนี้ อินเทอร์พรีเตอร์ทั้งหมดของหุ่นยนต์และซับมิตต้องถูกหยุดทำงานไว้ หากต้องการหยุดอินเทอร์พรีเตอร์ของหุ่นยนต์ ให้ยกเลิกโปรแกรมที่เลือกไว้ หรือหากเพิ่งโหลดระบบควบคุม ให้ปล่อยว่างไว้โดยไม่เลือกโปรแกรม หากต้องการยกเลิกอินเทอร์พรีเตอร์ซับมิต ให้ใช้ HMI สำหรับระบบ KRC2 และ KRC4 ตามภาพด้านล่าง:
หากไฟล์ $config.dat ยังคงถูกล็อกอยู่หลังจากหยุดอินเทอร์พรีเตอร์ทั้งหมดแล้ว คุณสามารถหยุดการทำงานของซอฟต์แวร์ควบคุมหุ่นยนต์ได้ทั้งหมด สำหรับระบบ KRC2 ให้คลิกที่พื้นที่สี่เหลี่ยมข้างตัวแสดงสถานะ (S I R) จากนั้นคลิกปุ่ม Exit:
สำหรับระบบ KRC4 ให้คลิกที่ไอคอนหุ่นยนต์สีเขียวในพื้นที่ tray แล้วเลือก Stop KRC:
หลังจากหยุดซอฟต์แวร์ควบคุมแล้ว คุณสามารถแก้ไขไฟล์ C:\KRC\ROBOTER\KRC\R1\System\$config.dat ด้วยตัวแก้ไขข้อความใดก็ได้ เมื่อต้องการใช้การเปลี่ยนแปลง ให้รีสตาร์ทระบบปฏิบัติการ
แม้ว่าคุณจะมีแกนภายนอก เช่น โต๊ะหมุน คุณควรจะสามารถใช้ไดร์เวอร์และหน่วยประมวลผลกับตัวควบคุมหุ่นยนต์ KUKA ได้ ขอแนะนำให้ใช้ระบบพิกัดแบบมีหมายเลข หรือระบบพิกัดที่มีการกำหนดเครื่อง (machine definition) ที่ถูกต้อง ซึ่งถูกกำหนดไว้แล้วในตัวควบคุมหุ่นยนต์
ไฟล์ต่อไปนี้ของตัวควบคุมหุ่นยนต์ KUKA จะช่วยให้คุณเข้าใจว่าระบบ KUKA ถูกสร้างขึ้นอย่างไร:
1.KRC\R1\System\$config.dat
2.KRC\R1\System\bas.src
3.KRC\R1\Mada\$machine.dat
หากคุณมีโต๊ะหมุน ตำแหน่งจุดกำเนิดของโต๊ะหมุนควรถูกกำหนดไว้ในตัวแปร MACHINE_DEF ของไฟล์ config.dat ผู้ที่ติดตั้งระบบของคุณควรมีตัวอย่างการสร้างโปรแกรมโดยใช้โต๊ะหมุนที่ซิงโครไนซ์กันโดยอิงจากฟังก์ชัน BAS
ตัวอย่างเช่น หากเรียกใช้ฟังก์ชัน BAS ในไฟล์ SRC โดยใช้แฟล็ก ex_BASE และดัชนีที่ระบุ (เช่น ดัชนี 9):
BASE_DATA[9] = {FRAME: X 0, Y 0, Z 0, A 0, B 0, C 0}
BAS(#ex_BASE,9)
นั่นหมายความว่าเราต้องการใช้ดัชนี 9 ของ MACHINE_FRAME_DATA นอกจากนี้ คุณควรตรวจสอบคำจำกัดความของ BAS และ EX_BASE เพื่อดูว่าตัวควบคุมอ้างอิงดัชนีเครื่อง (MACH_IDX) ใดโดยค่าเริ่มต้น อาร์เรย์ BASE_DATA ที่กำหนดไว้ก่อนการเรียกฟังก์ชัน BAS ในไฟล์ SRC อาจเป็นเพียงค่าชดเชยของฟิกซ์เจอร์ที่ยึดกับโต๊ะหมุนเท่านั้น
หากคุณมีโต๊ะหมุนที่ซิงโครไนซ์กับแขนหุ่นยนต์ คุณอาจต้องเปลี่ยนตัวแปร $BASE ด้วยตนเองในหน่วยประมวลผลหรือไดร์เวอร์ เพื่อตั้งค่าเป็นจุดกำเนิดของโต๊ะหมุน
ตัวอย่างเช่น หากดัชนี 9 ของ BASE_DATA ใช้งานได้ คุณควรใช้โค้ดต่อไปนี้ในไดร์เวอร์
;--------
; Replace this the $BASE definition by the following 2 lines
; to make the KUKA RoboDKSynch driver work with external axes:
; $BASE = {FRAME: X 0, Y 0, Z 0, A 0, B 0, C 0} ; Comment this line
BASE_DATA[9] = {FRAME: X 0, Y 0, Z 0, A 0, B 0, C 0}
BAS(#ex_BASE,9)
; the BAS ex_BASE function links to a fixed MACHINE_DEF index
; visible in the BAS function
; The previous two lines are equivalent to the following,
; if the BAS function uses index 2 for the Machine definition
; BASE_DATA[9] = {FRAME: X 0, Y 0, Z 0, A 0, B 0, C 0}
; $BASE=EK(MACHINE_DEF[2].ROOT,MACHINE_DEF[2].MECH_TYPE,BASE_DATA[9])
;--------
$BASE=EK(EX_AX_DATA[1].ROOT,EX_AX_DATA[1].EX_KIN,EX_AX_DATA[1].OFFSET)
ในหน่วยประมวลผล หากคุณต้องการคำนึงถึงค่าชดเชยระหว่างโต๊ะหมุนและฟิกซ์เจอร์ คุณสามารถแทนที่บรรทัดก่อนหน้าด้วยคำจำกัดความ $BASE นี้ในฟังก์ชัน setFrame ของหน่วยประมวลผล:
$BASE=EK(MACHINE_DEF[2].ROOT, MACHINE_DEF[2].MECH_TYPE, {%s})' % self.pose_2_str(pose)
หรืออีกทางเลือกหนึ่ง หากใช้ไดร์เวอร์ คุณสามารถแยกระบบพิกัดตามขั้นตอนที่อธิบายไว้ด้านล่างได้ (จึงไม่จำเป็นต้องจับคู่จลนศาสตร์ของแกนภายนอกใน RoboDK ให้ตรงกันทั้งหมด)
ตัวอย่างเช่น เพื่อให้ไดร์เวอร์ RoboDK ใช้งานได้ตามค่าเริ่มต้น จลนศาสตร์ของแกนภายนอกที่กำหนดไว้ในตัวควบคุมหุ่นยนต์ต้องตรงกับจลนศาสตร์ที่สร้างไว้ใน RoboDK นอกจากนี้ หากคุณมีโต๊ะหมุน จุดฐานของโต๊ะหมุนต้องตรงกับตำแหน่งโต๊ะหมุนที่กำหนดไว้ใน RoboDK
หากต้องการใช้ไดร์เวอร์กับระบบพิกัดที่ทราบอยู่แล้ว ให้ทำตามขั้นตอนต่อไปนี้:
1.เลือก Tools→Options แท็บ Drivers
2.เปิดตัวเลือก Provide Cartesian coordinates with respect to the reference

1.แทนที่ตัวแปร $BASE ในไฟล์โปรแกรม RoboDKsync.src ด้วยระบบพิกัดที่คุณต้องการใช้
ตัวอย่างเช่น หากต้องการใช้เฟรมอ้างอิงหมายเลข 5 ไฟล์ RoboDKsync.src ควรมีลักษณะดังนี้ (บรรทัดแรกถูกคอมเมนต์ไว้ อยู่ที่บรรทัดประมาณที่ 25):
; $BASE = {FRAME: X 0,Y 0,Z 0,A 0,B 0,C 0}
$BASE = BASE_DATA[5]
ระบบพิกัดนี้ต้องถูกกำหนดไว้ล่วงหน้าในตัวควบคุมหุ่นยนต์ KUKA และ RoboDK จะไม่เขียนทับค่านี้
RoboDK ช่วยให้คุณสามารถสอบเทียบหุ่นยนต์ KUKA ที่ผ่านการสอบเทียบด้วยตัวเลือก Absolute Accuracy ของ KUKA มาแล้วได้ อย่างไรก็ตาม คุณต้องปิดใช้งานตัวเลือกนี้ในตัวควบคุมหุ่นยนต์ KUKA เมื่อสอบเทียบหุ่นยนต์ KUKA ที่ผ่านการสอบเทียบด้วยตัวเลือก Absolute Accuracy แล้ว การปิดใช้งานตัวเลือกนี้เป็นสิ่งสำคัญเพื่อให้สามารถสอบเทียบด้วย RoboDK ได้
หากต้องการปิดใช้งาน Absolute Accuracy ของ KUKA ต้องตั้งค่าตัวแปร DEACTIVATE_ABS_ACCUR เป็น TRUE ตัวแปรนี้อยู่ในไฟล์ KRC:\STEU\MADA\$custom.dat (บรรทัดประมาณที่ 73)
หากต้องการตรวจสอบว่าตัวเลือก Absolute Accuracy ของ KUKA ถูกปิดใช้งานอย่างถูกต้อง ให้เคลื่อนที่หุ่นยนต์ไปยังตำแหน่งที่ทราบ (เช่น เคลื่อนข้อต่อของหุ่นยนต์ทั้งบนหุ่นยนต์จริงและใน RoboDK ไปยังตำแหน่งโฮม) แล้วตรวจสอบว่าตำแหน่งคาร์ทีเซียนที่แสดงบนตัวควบคุมหุ่นยนต์ตรงกับตำแหน่งคาร์ทีเซียนที่แสดงใน RoboDK