SƠ LƯỢC
Phần chương trình chứa các lệnh điều khiển sẽ được chuyển vào card giao tiếp và lưu trữ tại đây.
Với chương trình quá lớn có thể vượt quá dung lượng của card giao tiếp, trong trường hợp này phải giải quyết bằng cách chia quá trình thực hiện thành nhiều bước, sau đó nạp vào card và thực hiện tuần tự.
I _ TẬP LỆNH
1. Lệnh “Label”
Ý nghĩa : Đặt nhản.
Có thể bạn quan tâm!
- _ Phương Pháp Điều Khiển Bước Đủ Và Nửa Bước
- Điều khiển máy khoan mạch in CNC dùng động cơ bước - 5
- Điều khiển máy khoan mạch in CNC dùng động cơ bước - 6
- _ Thông Báo Lỗi Của Chương Trình Soạn Thảo
- Điều khiển máy khoan mạch in CNC dùng động cơ bước - 9
- Điều khiển máy khoan mạch in CNC dùng động cơ bước - 10
Xem toàn bộ 97 trang tài liệu này.
Cú pháp : [label].
Ứng dụng
: Một vài lệnh phân nhánh (nhảy), vị trí nhảy được cho tương đối và chỉ bắt đầu bằng một số
Ví dụ:
“goto5” lệnh này nhảy luôn về lệnh thứ 5. Nhưng lệnh như thế này rất dề nhằm lẩn. Do đó PALPC cho phép đặt vị trí nhảy bằng lệnh dưới dạng văn bản.
Giải Thích
[Label] : Nhản bao gồm ký tự, ký số và dấu gạch dưới không được phép bắt đầu bằng ký số và kết thúc nhản bằng dấu hai chấm.
Ví dụ:
Các nhản hợp lệ ANFANG:
progbokren: anfangzwitns:
Nhãn ANFANG “và” anfang” được chương trình xem là khác nhau vì PALPC phân
biệt chữ in và chữ thường.
Các nhãn không hợp lệ :
124: không cho phép dùng ký số làm nhản.
1.Unterprog: Có dấu chấm “.” Và bắt đầu bằng một số. PROG FRAESEN : Có khoảng trắng.
Trong chương trình, nhản được dùng cho các lệnh nhảy.
2. Lệnh “MOVE”
Ý nghĩa : Di chuyển tương đối.
Cú pháp : MOVE [x1 (xv)], [y1(v)], [z11 (zv1)], [z12(zv2)]
Ứng dụng
: Đây là lệnh cơ bản nhất dùng để di chuyển trục làm việc.
Giải Thích
[x1(xv)] : Khoảng dịch chuyển và tốc độ của trục x [y1(yv)] : Khoảng dịch chuyển và tốc độ của trục y [z11(zv1)] : Khoảng dịch chuyển và tốc độ lần 1 của trục z [z12(zv2)] : Khoảng dịch chuyển và tốc độ lần thứ 2 của trục z
Phải cho biết khoảng dịch chuyển và tốc độ dịch chuyển của từng trục, tốc độ được đặt trong dấu hoặc đơn sau khoảng dịch chuyển. Các trị số được phân cách bằng dấu phẩy và chấm dứt lệnh bằng dấu chấm phẩy.
Riêng đối với trục z có hai thông số vì quá trình dịch chuyển của trục này thường là lên và xuống.
Phần thập phân của khoảng dịch chuyển được phân cách bằng dấu chấm, tốc
độ phải là một số 21.
Ví dụ:
MOVE 2(2000); {Di chuyển trục x}
MOVE 2(2000), 2(3000); {Di chuyển trục xy}
MOVE 20(900), 30(1000), 30(100); {Di chuyển trục xz}
MOVE 2(100), 2(100), 2.8)200), 2(100); {Di chuyển trục xyz}
Lưu ý rằng PALPC có thể kiểm tra phạm vi di chuyển cho phép của máy.
Quá trình dịch chuyển luôn luôn bắt đầu theo thứ tự với trục xy sau đó đến thông số thứ nhất của trục z và cuối cùng là thông số thứ nhì của trục z. Thứ tự này có thể thay đổi bằng lệnh “line”.
Đối với các trục không cần di chuyển, phải đặt khoảng dịch chuyển bằng 0, tốc độ đặt trong phạm vi cho phép (21 đến 20.000).
3. Lệnh “moveto”:
Ý nghĩa : Di chuyển đến vị trí xác định
Cú pháp : Moveto [x1(xv)], [y1(yv)], [z11(zv1)], [z12(zv2)];
Ứng dụng : Cũng giống như lệnh move, tuy nhiên lệnh này có tác dụng di
chuyển các trục đến một vị trí xuất phát xác định.
Giải Thích
[x1 (xv)] : Khoảng dịch chuyển và tốc độ của trục x [y1 ( (v)] : Khoảng dịch chuyển và tốc độ của trục y
[z11 (zv1)] : Khoảng dịch chuyển và tốc độ lần 1 của trục z [z12(zv2)] : Khoảng dịch chuyển và tốc độ lần thứ 2của trục z
Để hiểu rỏ hơn về khái niệm vị trí tương đối và tuyệt đối đề nghị xem thêm tài liệu hướng dẫn card giao tiếp 4.0.
4. Lệnh movep:
Ý nghĩa : Dịch chuyển theo xung
Cú pháp : MOVE [x1(xv)], [y1(yv)], [z11(zv1)], [z12(zv2)];
Ứng dụng
: Giống như lệnh move, tuy nhiện quá trình dịch chuyển
sẽ dừng khi xuất hiện xung ở ngõ vào và lệnh tiếp theo sẽ được thực hiện
Giải Thích
[x1 (xv)] : Khoảng dịch chuyển và tốc độ của trục x [y1 ( (v)] : Khoảng dịch chuyển và tốc độ của trục y
[z11 (zv1)] : Khoảng dịch chuyển và tốc độ lần 1 của trục z [z12(zv2)] : Khoảng dịch chuyển và tốc độ lần thứ 2của trục z
Xung vào phải có một bề rộng tối thiểu và khoảng cách 20 s và tối đa là 100 s,
xung này được đưa đến ngõ vào stop của card giao tiếp, trong trường hợp xung quá rộng thì sai lệch movep nên thêm một lệnh trì hỗn.
5. Lệnh send:
Ý nghĩa : Phát ký hiệu đồng bộ
Cú pháp : Send [zahl];
Ứng dụng : Để tạo khả năng đồng bộ giữa hai card giao tiếp hoặc với máy tính
thì phải gởi đi ký hiệu đồng bộ tại một vị trí xác định trong vùng dữ liệu
Giải Thích
[Zahl] là số từ 33 đến 126 (MÃ ASCII)
Tín hiệu đồng bộ phải ở trong khoảng từ 33 đến 126, không nên dùng ký số 64. Ngay đầu chương trình nên định nghĩa các ký hiệu đồng bộ bằng lệnh #define, sau đó có thể dùng một tên cho ký hiệu đồng bộ.
Ví dụ:
. . . . . . . . . . . . . . . . .
#define Bohrenistfertig 90; {ký hiệu đồng bộ bằng 90}
. . . . . .. . .. . .. . . . . .. . .
Send bohrenistfertig
6. Lệnh “wait”:
Ý nghĩa : Ký hiệu đồng bộ
Cú pháp : Wait [zahl], [offset];
Ứng dụng : Đi kèm với lệnh send như đã trình bày ở trên để chờ ký
hiệu đồng bộ từ một card giao tiếp hoặc máy tính khác.
Giải Thích
[Zahl] ký số từ 33 đến 126 (Mã ASCII)
[Offset] là một số cho biết vị trí số dòng lệnh trước hay sau hoặc một nhãn mà tại đó chương trình sẽ tiếp tục.
Card giao tiếp còn có thể thực hiện nhiều thao tác có thể tóm tắt như sau: Tiếp tục thực hiện sau khi nhận ký hiệu đồng bộ.
Card giao tiếp tự động thực hiện lệnh tiếp theo trong vùng dữ liệu khi nhận ký hiệu đồng bộ.
Thực hiện tại vị trí tương đối:
Card giao tiếp nhảy đến vị trí được cho biết trong dòng lệnh.
Nhận ký hiệu 127
Card giao tiếp thực hiện reset và đợi lệnh từ máy tính.
Ví dụ :
. . . . . . . . . . . . .
Wait 90, 5; {Đợi ký hiệu 90 và sau khi nhận nhảy lùi lại 5 dòng trong chương trình}
. . . . . . . . . . . . . . .
Wait 80, ngang; {Đợi ký hiệu 80 và nhảy về phải “ngang” sau khi nhận được ký hiệu.}
Ví dụ 2: Label1:
Move . . . . {Phần lổ}
Send TELLDA; {Sẵn sàng kiểm tra} Wait TELLOK, weiter; {Đợi cho phép}
Move . . . {Đặt phần không dùng (phần hư)}
Goto label1; {Thử phần tiếp theo}
Weiter:
Move . . . {Đặt phần trong máy} Move . . . {Tại vị trí ra}
Goto label1; {Làm lại từ đầu}
Máy tính sẽ kiểm tra các phần và thông báo cho card giao tiếp theo một yêu cầu TELLDA, sau khi kết thúc và các phần điều tốt thì TEELLOK + 1 sẽ được chuyển đi và card giao tiếp sẽ đặt phần này vào máy, trong các trường hợp khác máy tính sẽ phát TEILOK + 0 và card giao tiếp sẽ đặt các phần không xử dụng và lổ vào phần tiếp theo.
7. Lệnh “loop”
Ý nghĩa : Thực hiện vòng lặp
Cú pháp : Loop [số] Times [label];
Ứng dụng : Lặp lại các thao tác giống nhau
Giải Thích
[số] số từ 0 đến 32767, nếu bằng 0 có nghĩa là vòng lặp không chấm dứt. [Label] Lặp lại từ nhản xác định.
Ví dụ 1:
Loop _1:
Move . . . . . {Di chuyển . . . . . . .}
Loop 5 times loop_1; {Lặp lại 5 lần từ nhản “loop_1”}
Ví dụ 2:
Loop :
Move . . . . . {Di chuyển . . . . . . .}
Loop 0 times loop_1; {Lặp lại từ nhản “loop”}
Nên dùng lệnh “Repeat” và “Until” vì dễ dùng và dịch chuyển nhanh hơn, lệnh loop còn xử dụng là do tương thích với các version cũ.
8. Lệnh “Port” và “Pulse”
Ý nghĩa : Nhập xung
Cú pháp : Port [Trạng thái ]
Ý nghĩa : Phát xung
Cú pháp : Pulse [ Trạng thái ]
Ứng dụng giao tiếp
: Lệnh chỉ có tác dụng với tùy chọn “Impulsesausgable” trên card
Giải Thích
[Trạng thái ] cho biết trạng thái cần có tại ngỏ ra, xem bảng sau: Cú pháp Trạng thái
Port on; Ngỏ ra on
Port off; Ngỏ ra off
Pulse out; Phát xung 50 ms
Pulse in ; Chờ nhận xung
Pulse sync out; Phát xung, đợi xác nhận
Pulse sync in; Chờ xung, gởi xác nhận
Ngõ ra xung cũng được sử dụng cho yêu cầu đồng bộ giữa hai thiết bị (hai tùy chọn cuối cùng).
Nhiệm vụ chính của điều khiển xung là trong khi thực hiện chương trình có thể cho phép thao tác bằng tay tại một vị trí nào đó bằng cách tác động vào nút nhấn “start”, do nút “Start” được kết nối với ngỏ vào xung nên phải dùng lệnh “Pulse in”.
Ví dụ
Pulse in; {đợi tác động nút Start”}
9. Lệnh “Times” và “Delay”
Ý nghĩa : Tạo thời gian trì hỗn.
Cú pháp : Times [zeit]; hoặc delay [zeit];
Ứng dụng
: Tạo một thời gian trì hỗn, trong khoảng thời gian này card giao tiếp không làm gì cả.
Giải Thích
[ Zeit ] Thời gian trì hỗn (phần mười của giây ).
Ví dụ:
Times 50; {Trì hỗn 50 giây}
Delay 20; {Trì hỗn 2 giây}
Thời gan trì hỗn tối đa là 3276,7 giây
10. Lệnh “Refrence”
Ý nghĩa : Xác định vị trí chuẩn ( vị trí 0)
Cú pháp : Refrence [Trục ];
Ứng dụng : Rất cần thiết khi thời gian thực hiện quá dài, càng lúc càng xa vị
trí chuẩn nhằm bù lại sai sót của động cơ bước, vì hệ thống tuyến tính Isel làm việc theo chế độ điều khiển vòng hở nên không có tín hiệu báo lổi hồi tiếp.
Giải Thích
[ Trục ] Làm việc
Ví dụ:
Refrence xy; {Qua vị trí 0 của trục x và y} Refrence x; {Qua vị trí 0 của trục x } Refrence xyz; {Qua vị trí 0 cả 3 trục }
Lưu ý: Thứ tự thực hiện luôn là zyx, có nghĩa là trước tiên qua vị trí 0 của z, sau đó y và cuối cùng là x. Khi muốn thay đổi thứ tự thì phải dùng hai lệnh.
Ví dụ 2:
Refrence x; {Qua vị trí 0 của trục x}
Refrence y; {Qua vi trí 0 của trục y }
Về vị trí 0 được đúng thì trong phần khai báo phải xác định tốc độ chuẩn ( Xem mục
19. Lệnh # Ref_sped).
11. Lệnh “Tell”
Ý nghĩa : Xuất ký hiệu điều khiển
Cú pháp : Tell [GN ] [Option];
Ứng dụng : Việc xuất tín hiệu điều khiển phụ thuộc vào quá trình hệ cơ
đồng bộ, lệnh này xuất 4 ký hiệu để khởi động một card giao tiếp thứ hai hoặc cũng có thể sử dụng cho các mục đích khác.
Giải Thích
[ GN ] Số hiệu máy [Option ] Lệnh điều khiển
Ví dụ:
Tell 0 start; {Khởi động máy số 0}
Tell 0 start, wait {Khởi động máy 0 và chờ dứt}
Tell 0 Refrence xyz {Về vị trí chuẩn máy 0 } Tell 0 Refrence, wait xyz {Về vị trí 0, chờ chấm dứt}
Tốt nhất nên dùng chức năng truyền thông để kiểm tra quá trình thực hiện lệnh
này.
12. Lệnh “Stop”
Ý nghĩa : Đặt điểm dừng chương trình
Cú pháp : Stop
Ứng dụng : Báo chấm dứt chương trình.
Ví dụ
#axit x; {chọn trục làm việc}
#units mm; {chọn đơn vị mm}
Refrence x; {Về vị trí 0 của trục x} Move 100(8000); {di chuyển trục x 100mm} Stop.
Mỗi một chương trình phải có lệnh stop và phải kết thúc bằng dấu chấm phẩy.
13. Lệnh “Line”
Ýù nghĩa : Xác định thứ tự
Cú pháp : Line [ Trục ]
Ứng dụng cần.
: Thứ tự mặc định là x/y, lệnh này dùng để thay đổi thứ tự nếu
Giải Thích
[ Trục ] cần thay đổi thứ tự.
Ví dụ:
Line xy; {Thứ tự xy}
Line xz; {Thứ tự xz}
Line yz; Thứ tự yz}
Lệnh vẫn còn hiệu lực trong chương trình cho đến khi được thay đổi lại bằng lệnh “Line”. Khi khởi động thứ tự mặc định sẻ là xy.
Lệnh không ảnh hưởng khi trục quay về vị trí 0, thứ tự này là xyz.
14. Lệnh Repeat . . . until
Ý nghĩa Thực hiện vòng lặp
Cú pháp Repeat
until[số ]
Ứng dụng Thực hiện lặp lại một đoạn chương trình bắt đầu từ vị trí “repeat” cho đến “’until”.
Giải Thích
[ số ] số lần lặp lại, nếu bằng không thì quá trình lặp lại không kết thúc
Ví dụ:
Repeat {Vị trí bắt đầu lặp }
Move . . . {Dịch chuyển . . . }
Move . . . {Dịch chuyển . . . }
Until 7; {Lặp lại 7 lần}
Sau lệnh repeat khoảng có dâu chấm phẩy, do lệnh không có thông số nên trong vòng lặp có thể chứa một vòng lặp khác, số lượng “repeat” và “until” phụ thuộc vào bộ nhớ của card giao tiếp.
Phải kết thúc lệnh “until” bằng dấu chấm phẩy.
15. Lệnh “goto”
Ý nghĩa : Rẽ nhánh (nhảy)
Cú pháp : Goto [ đích ]
Ứng dụng : Khi gặp lệnh nhảy, bộ đếm lệnh sẽ thay đổi giá trị và tiếp tục thực hiện tại vị trí đích.
Giải Thích
[Đích ] Là ký số cho biết vị trí dòng lệnh tiếp tục ở trước hoặc sau dòng lệnh hiện hành hoặc một nhản ( số có thể ương hoặc âm) sẽ không kiểm tra nếu vị trí nhảy ở phía sau lệnh dừng của chương trình.
Ví dụ:
Goto 5; {Nhảy đến lệnh thứ 5 kế tiếp}
Goto5; {Nhảy lùi lại 5 lệnh } Goto begin; {Nhảy đến lệnh “Begin”} Goto end; {Nhảy đến lệnh “End”}
16. Lệnh “null”:
Ý nghĩa : Xác định vị trí 0
Cú pháp : Null [Trục]
Ứng dụng : Tạo điểm 0 cho chi tiết
Giải Thích
[ Trục ] Chọn trục cần tạo điểm 0.
Ví dụ:
Refrence xyz;
Moveto 20( ), 30( ), 15( ), 0( );
Null xyz;
Moveto 10( ), 20( ), 20( ), 0( );
Lệnh trên cùng dịch chuyển các trục về điểm 0 của máy, điểm 0 của chi tiết đặt tại vị trí 20, 30, 15 và lệnh di chuyển tiếp theo sẽ xem vị trí này là chuẩn, khoảng cách sau khi dịch chuyển so với điểm 0 chi tiết là 10, 20, 20 hoặc so với điểm 0 của máy là 30, 50, 35
Vì trong chế độ Teachin tọa độ tương đối được so sánh với điểm 0 chi tiết đầu tiên. Do đó chỉ nên dùng một điểm 0 trong chương trình bằng lệnh #null.
Điểm 0 chi tiết có thể đặt trở về vị trí điểm 0 của máy, xem thêm chi tiết trong tài liệu hướng dẫn card giao tiếp 4.0.
17. Lệnh “onkey”
Ý nghĩa : Đọc từ bàn phím
Cú pháp : Onkey [số phím ], [ nhản ]; Và
Cú pháp : Goto [ nhản “begin”]
Ứng dụng : Thực hiện
ứng dụng thông qua việc kết nối với một đơn vị
chọn
chương trình. Ví dụ bàn phím gồm 12 phím được nối đến đầu giao tiếp của card.
Giải Thích
[ Số phím ] cho biết số của phím
[ Nhản ] nhản tương ứng với phím đã chọn
Ví dụ:
#axit x;
#until mm;
#elev 4; Begin
Onkey1, do_refernce; On_key2, do_move; On_key3, end;
Goto begin;
Do_refernce
Refernce x;
Goto begin;
Do_move: Move 5(8000);
Goto begin;
End: Stop.
Nếu tác động phím F1 chương trình sẽ nhảy đến do_refernce
Nếu tác động phím F2 chương trình sẽ nhảy đến do_move
Nếu tác động F3 chương trình sẽ nhảy đến end và dừng luôn.
18. Lệnh “On_port”
Ý nghĩa : Đọc từ cổng vào.
Cú pháp : Onport [Address ], [Bitnr] = [wert], [OFFSET];
Ứng dụng : Card 4.0 đọc cổng vào và rẽ nhánh theo điều kiện.
Giải Thích
[Address ] là con số cho biết địa chỉ, đối với lệnh này giá trị là 65531. [BITNR ] xem mục 1.1