การทดลองใช้เขียน G Code แบบ มาโครวนลูปคุมแกน Z ยกขึนลงเลยอาจใช้งานยากหน่อยสำหรับผู้ใช้ที่ไม่ชอบการเขียนG Code กำลังหาวิธีการควมคุมแบบใช้สํญญานอนาลอกอยู๋เพื่อตวามสะดวกของผู้ใช้
แบบการเขียน Macro G Codeตอนลองสปาร์คชิ้นงานดูแล้วอาจ งง ?? เหตุที่ต้องเขียนมาโครเพราะถ้ากินงาน2มิล ลงครั้งละ 0.01 โปรแกรมยาวเลยใช้แบบนี้แทน
F100
#01 =0
o100 do [#1 EQ -2.00] (EQ=Equal ยากลงลึกเท่าไหร่ก็ใส่แก้ค่า ตรง EQ=xxxxx)
G1 Z#01
G0 Z0
#01= [#01-0.01] (ลงครั้งละ 0.01มม ถ้าต้องการมากกว่าแก้ที่ #01 - xxxxx)
o100 while (กลับไปวนลูปเริ่มใหม่)
call 0100
ไม่ทราบว่า ได้ทดลองเดินหรือยังครับ ผมอาจจะคุ้นกับ มาโครของฟานัค ซึ่งพอมาดูแล้ว ไม่ค่อยเหมือนกัน เพราะหากเป็นของ ฟานัค จะเขียนประมาณนี้ครับ
F100 ( กำหนด feed = 100 )
#1 = 0 (กำหนดค่า position ของ Z=0)
#2 = 0.01 (กำหนดให้ ลงครั้งละ 0.01มม ถ้าต้องการมากกว่าแก้ได้)
#3 = 0.1 (กำหนดค่า Gap ตอนยกหัวขึ้น)
#4 = 0 (กำหนด ตัวแปรให้กับ การวน loop แยกต่างหากออกไป)
G0 Z0 (สั่งให้ Z เคลื่อนที่ไปตำแหน่ง Z = 0 )
WHILE #4 LT -2.00 DO 1 (LT = Lager Than = มีค่ามากกว่า - 2.0 หากจะให้ลงลึกเท่าไหร่ก็ใส่แก้ค่า ตรง = - xxx.xx เนื่องจาก เรากดลงไปในค่า ลบ )
#1= [#1 - #2] (กำหนดต position ในแกน Z ใหม่)
G1 Z#1 (สั่งให้เดินลงไป ตาม position ใหม่)
G0 Z[#1 + #3] (สั่งให้ หัวถอยขึ้น ตามค่า Gap)
#4 = [#4 - #2] (ลบค่าของการวน loop ไปจนกว่าจะครบ ความลึก)
END1 (กลับไปวนลูปเริ่มใหม่)
ผมยังไม่คุ้นกับ การเขียน มาโคร ของคอนโทรลอื่น แนวทางอาจจะแตกต่างกันก็ได้ ครับ
แต่เนื่องจาก ผมสังเกตุเห็น การวนloop แต่ละครั้งของโปรแกรมเดิม สั่งให้ไปที่ Z = 0 ตลอด ซึ่งงาน EDM บางครั้งไม่จำเป็น เราเพียงยกหัว ไม่ใช้ชนชิ้นงาน ด้วยค่า Gap เพื่อให้น้ำระบายเศษออก หรือ อาจกำหนด Gap ให้มากขึ้นได้
งาน EDM นั้น อยู่ที่การจ่ายกระแส หากเป็นแบบ Discharge การกดหัว แล้วนิ่งไว้ ก็เป็นแนวทางหนึ่ง อีกแนวทางหนึ่ง เป็นแบบ Switching ที่ปล่อยกระแสเป็นจังหวะ
การกำหนด ระยะ Gap ระยะยกคายเศษ มีความจำเป็นพอควร ในเครื่องใหญ่ จึงมีการตั้งค่า กระแสไฟ, Gap, T-On, T-Off และ offset
ก็ขอแค่นี้ก่อนนะครับ