Các mã được hỗ trợ và khả năng của bộ phân tích (Parser)
Mục Các mã được hỗ trợ và khả năng của bộ phân tích (Supported Codes and Parser Capabilities) mô tả đầy đủ
chức năng của bộ thông dịch G-code trong NCPlayer, bao gồm các định dạng lệnh được hỗ trợ, nhóm modal,
lập trình macro, số học, điều kiện, vòng lặp và các hàm nâng cao.
Bộ phân tích được thiết kế để làm việc với chương trình kiểu FANUC
(cụ thể là 0i-MB) nhưng cũng tương thích với các bộ điều khiển khác nếu được cấu hình đúng.
1. Định dạng G/M Code được hỗ trợ
G-code:
Các nhóm modal tiêu chuẩn:
G0 — chạy nhanh (rapid positioning).
G1 — nội suy tuyến tính (linear interpolation).
G2 / G3 — nội suy cung tròn CW/CCW với hỗ trợ:
Tham số R (bán kính cung).
Các tham số I, J, K (tâm cung ở chế độ ABS hoặc INC).
Các mặt phẳng G17, G18, G19.
G17 / G18 / G19 — chọn mặt phẳng làm việc.
G20 / G21 — chọn đơn vị (inch/mm).
G40 / G41 / G42 — bù bán kính dao.
G43 / G44 — bù chiều dài dao.
G49 — hủy bù chiều dài dao.
G54 – G59 — hệ tọa độ làm việc (bao gồm mở rộng G54.1 Px).
G90 / G91 — chế độ tuyệt đối / gia số.
G98 / G99 — cách trở về trong chu trình khoan (điểm ban đầu / mặt phẳng R).
Các chu trình khoan:G73, G74, G76,
G80, G81, G82, G83 với hỗ trợ
các tham số X, Y, Z, R, Q, F.
Mã đặc biệt: G65 (gọi macro đơn giản kèm tham số).
M-code:
Điều khiển trục chính (spindle): M3, M4, M5.
Điều khiển tưới nguội (coolant): M7, M8, M9.
Dừng chương trình: M0, M1, M2, M30.
Xử lý chương trình con: M98 (gọi), M99 (trả về).
2. Hỗ trợ lập trình macro
Biến cục bộ: #1 – #33 (được reset khi M99 nếu tham số tương ứng được bật).
Biến dùng chung: #100 – #199.
Biến toàn cục: #500 – #531.
Biến hệ thống: theo tiêu chuẩn FANUC (ví dụ, #5001 — vị trí X hiện tại).
Các phép toán số học:
Cộng, trừ, nhân, chia, lũy thừa.
Ưu tiên ngoặc và tính toán lồng nhau.
Các hàm FANUC:
SIN, COS, TAN, ASIN, ACOS, ATAN.
ABS, ROUND, FIX, FUP, MOD, SQRT.
Hỗ trợ hàm lồng nhau, ví dụ: SIN[FIX[#100+0.4]].
Thay thế địa chỉ trong lệnh: X[#500], F[#101+10], v.v.
3. Cấu trúc logic
IF [condition] GOTO Nxxx — nhảy tới số dòng.
IF [condition] THEN ... — thực hiện lệnh nếu điều kiện đúng.
Toán tử logic: AND, OR, XOR (hỗ trợ điều kiện lồng nhau tới 3 cấp).
Toán tử so sánh: EQ, NE, GT, LT, GE, LE.
WHILE [condition] DOx ... ENDx — vòng lặp có điều kiện.
Bộ đếm vòng lặp và cơ chế bảo vệ chống vòng lặp vô hạn.
4. Chương trình con
Định nghĩa chương trình con: Oxxxx.
Gọi: M98 Pxxxx Lnn — với hỗ trợ tham số L.
Trả về: M99 (có thể reset biến cục bộ nếu tham số tương ứng được bật).
Hỗ trợ G65 Pxxxx với truyền tham số (A, B, C... H, I, v.v.) trực tiếp vào các biến cục bộ.
Gọi đệ quy với kiểm soát độ sâu ngăn xếp (stack depth).
5. Các khả năng khác
Hỗ trợ cả chế độ tuyệt đối (G90) và gia số (G91) trong cùng một chương trình.
Tự động chuẩn hóa mã: căn chỉnh khoảng trắng, loại bỏ EOB thừa, xử lý chú thích đúng chuẩn.
Chuyển đổi định dạng cung trực tiếp:
R → IJK (chế độ ABS hoặc INC).
IJK → R.
Phân tích (parsing) với việc thay thế giá trị biến trước khi mô phỏng.
Triển khai (mở rộng) inline các chương trình con để mô phỏng đầy đủ đường chạy dao.
Lưu ý: Bộ phân tích NCPlayer đang được phát triển liên tục. Các phiên bản tương lai sẽ mở rộng
hỗ trợ các mã đặc thù của những bộ điều khiển như Syntec, Siemens và các hệ khác.