ฟังก์ชั่นที่ตั้งโปรแกรมได้ของเครื่องมือเครื่อง CNC แบ่งออกเป็น 2 ประเภท:
หมวดหมู่หนึ่งใช้เพื่อควบคุมเส้นทางของเครื่องมือ กล่าวคือ การเคลื่อนที่ของแกนป้อนแต่ละแกน เช่น การประมาณค่าเชิงเส้น/วงกลม การควบคุมการป้อน ออฟเซ็ตและการแปลงต้นกำเนิดของระบบพิกัด การตั้งค่าหน่วยขนาด ออฟเซ็ตเครื่องมือและการชดเชย ฯลฯ ฟังก์ชันประเภทนี้เรียกว่าฟังก์ชันเตรียมการ ซึ่งประกอบด้วยตัวอักษร G ตามด้วยตัวเลขสองหลัก หรือที่เรียกว่ารหัส G-
ฟังก์ชันประเภทอื่นเรียกว่าฟังก์ชันเสริม ซึ่งใช้ในการควบคุมการทำงานของโปรแกรม การควบคุมสปินเดิล การควบคุมเครื่องมือ การควบคุมอุปกรณ์เสริม ฯลฯ ในบรรดาฟังก์ชันเสริมเหล่านี้ Tx x ใช้สำหรับการเลือกเครื่องมือ และ Sx xxx ใช้เพื่อควบคุมความเร็วของสปินเดิล ฟังก์ชันอื่นๆ ถูกนำมาใช้โดยใช้รหัส M- ซึ่งประกอบด้วยตัวอักษร M ตามด้วยตัวเลขสองหลัก
1. ฟังก์ชันรหัส G- ที่ใช้กันทั่วไป
การวางตำแหน่ง G00 (การเคลื่อนที่อย่างรวดเร็ว)
G01 การประมาณค่าเชิงเส้น (อัตราการป้อน)
G02 การแก้ไขแบบวงกลมตามเข็มนาฬิกา
G03 การประมาณค่าแบบวงกลมทวนเข็มนาฬิกา
G04 หยุดชั่วคราว หยุดอย่างแม่นยำ
G09 การหยุดที่แม่นยำ
G17 เลือกระนาบ X/Y
G18 เลือกระนาบ Z/X
G19 เลือกระนาบ Y/Z
G27 กลับและตรวจสอบจุดอ้างอิง
G28 กลับไปยังจุดอ้างอิง
G29 กลับจากจุดอ้างอิง
G30 กลับไปยังจุดอ้างอิงที่สอง
G40 ยกเลิกการชดเชยรัศมีเครื่องมือ
G41 การชดเชยรัศมีเครื่องมือด้านซ้าย
G42 การชดเชยรัศมีเครื่องมือด้านขวา
G43 การชดเชยความยาวเครื่องมือ +
การชดเชยความยาวเครื่องมือ G44 -
G49 ยกเลิกการชดเชยความยาวเครื่องมือ
G52 ตั้งค่าระบบพิกัดท้องถิ่น
G53 เลือกระบบพิกัดเครื่องจักร
G54 เลือกระบบพิกัดชิ้นงาน 1
G55 เลือกระบบพิกัดชิ้นงาน 2
G56 เลือกระบบพิกัดชิ้นงาน 3
G57 เลือกระบบพิกัดชิ้นงาน 4
G58 เลือกระบบพิกัดชิ้นงาน 5
G59 เลือกระบบพิกัดชิ้นงาน 6
G60 การวางตำแหน่งทิศทางเดียว-
G61 โหมดหยุดที่แม่นยำ
G64 โหมดการตัด
การเรียกโปรแกรมมาโคร G65
การเรียกโปรแกรมมาโคร G66 Modal
G67 ยกเลิกการเรียกโปรแกรมมาโครโมดอล
G73 รอบการเจาะรูลึกคงที่
G74 การต๊าปเกลียวแบบย้อนกลับเป็นรอบคงที่
G76 รอบคงที่ของการคว้านละเอียด
G80 ยกเลิกรอบคงที่
G81 การเจาะคงที่
G82 การเจาะคงที่
G83 รอบการเจาะรูลึกคงที่
G84 การแตะวงจรคงที่
G85 วงจรคงที่ของการเจาะ
G86 วงจรคงที่ที่น่าเบื่อ
G87 รอบคงที่ของการคว้านย้อนกลับ
G88 รอบคงที่น่าเบื่อ
G89 รอบคงที่ที่น่าเบื่อ
โหมดคำสั่งค่าสัมบูรณ์ G90
G91 โหมดคำสั่งค่าส่วนเพิ่ม
G92 การตั้งค่าจุดศูนย์ของชิ้นงาน
G98 วงจรคงที่กลับไปยังจุดเริ่มต้น
G99 วงจรคงที่กลับไปที่จุด R
2. ฟังก์ชั่นรหัส M ที่ใช้กันทั่วไป
M00 โปรแกรมหยุดชั่วคราว
M01 การหยุดโปรแกรมแบบมีเงื่อนไข
M02 โปรแกรมสิ้นสุด
M03 การหมุนไปข้างหน้าของแกนหมุน
M04 การหมุนกลับแกนหมุน
M05 ตัวหยุดสปินเดิล
M06 การแลกเปลี่ยนเครื่องมือ
M08 เปิดการทำความเย็น
M09 ปิดการระบายความร้อน
ยกเลิกการวางแนวสปินเดิล M18
การวางแนวแกนหมุน M19
M29 การต๊าปแบบแข็ง
M30 สิ้นสุดโปรแกรมและกลับไปที่ส่วนหัวของโปรแกรม
การโทรรูทีนย่อย M98
M99 Subroutine End Return/ทำซ้ำการดำเนินการ
3. เลขคณิตทั่วไป
นอกจากนี้: #i=#j + #k
การลบ: #i=#j - #k
การคูณ: #i=#j * #k
หมวด: #i=#j / #k
ไซน์: #i=บาป[#j]
อาร์คไซน์: #i=ASIN[#j]
โคไซน์: #i=COS[#j]
โคไซน์ผกผัน: #i=ACOS[#j]
แทนเจนต์: #i=TAN[#j]
อาร์กแทนเจนต์: #i=ATAN[#j]
รากที่สอง: #i=SQRT[#j]
ค่าสัมบูรณ์: #i=ABS[#j]
การปัดเศษ: #i=รอบ[#j]
การปัดเศษจำนวนเต็ม: #i=แก้ไข [#j]
การปัดเศษจำนวนเต็มลง: #i=FUP[#j]
ลอการิทึมธรรมชาติ: #i=LN[#j]
ฟังก์ชันเลขชี้กำลัง: #i=EXP[#j]
หรือ: #i=#j หรือ #k
แฮคเกอร์: #i=#j X หรือ #k
และ: #i=# และ #k
แปลงจาก BCD เป็น BIN: #i=BIN[#j]
แปลงจาก BIN เป็น BCD: #i=BCD[#j]
4. ตัวดำเนินการเชิงตรรกะ
อีคิว: เท่ากับ
NE: ไม่เท่ากับ
GT: มากกว่า
GE: มากกว่าหรือเท่ากับ
LT: น้อยกว่า
LE: น้อยกว่าหรือเท่ากับ
5. การถ่ายโอนโปรแกรมและลูป
การโอนแบบไม่มีเงื่อนไข: GOTO
การโอนแบบมีเงื่อนไข: IF [นิพจน์แบบมีเงื่อนไข]
IF [นิพจน์แบบมีเงื่อนไข] GOTO n หากตรงตามเงื่อนไข ให้ข้ามไปที่ส่วนของโปรแกรม n
IF [นิพจน์แบบมีเงื่อนไข] THEN เช่น: IF [#I=#J] THEN #K=0
6. งบวน
WHILE [นิพจน์แบบมีเงื่อนไข] Dom (m=1,2,,3)
…
หากตรงตามเงื่อนไข ให้รันโปรแกรมจาก Dom ถึง ENDm (จนกว่าจะไม่ตรงตามเงื่อนไขอีกต่อไป) มิฉะนั้นให้รันโปรแกรมหลังจากนั้น





