Chương trình chính gọi chương trình con máy lần

Trong khoa học máy tính, chương trình con [subprogram] hay subroutine là một đoạn chương trình được đóng gói thành một đơn vị trình, nó thực hiện một số tác vụ cụ thể mà chương trình cần thực hiện nhiều lần từ nhiều nơi trong thời gian chạy của nó. Khi chương trình cần đến tác vụ cụ thể đó thì bố trí chỉ thị gọi [call] đến chương trình con này và nhận kết quả nếu có sau khi nó thực thi xong [1].

Ngay từ lúc máy tính ra đời thì kỹ thuật lập trình kiểu cấu trúc modul hóa với các chương trình con đã được thiết lập, và được củng cố trong các phần mềm lập trình hợp ngữ. Ngày nay trong ngôn ngữ bậc cao chương trình con được diễn đạt tùy theo ngôn ngữ là các hàm [function], thủ tục [procedure] và phương thức [method],... Một số ngôn ngữ lập trình, chẳng hạn Pascal và FORTRAN, phân biệt giữa hàm [một chương trình con có trả về giá trị] và thủ tục [không trả về giá trị]. Các ngôn ngữ khác, ví dụ C và LISP, coi hai thuật ngữ này như nhau. Cái tên phương thức thường được dùng trong lập trình hướng đối tượng để gọi các chương trình con là một phần của các đối tượng.

Trong chương trình, một chương trình con được phép gọi chương trình con khác, hoặc có thể gọi chính nó. Tuy nhiên nếu bố trí gọi lẫn nhau, ví dụ subroutine A gọi subroutine B nhưng trong thân của subroutine B lại có gọi subroutine A, sẽ dẫn đến lỗi bất định khi thực hiện. Một số ngôn ngữ có hỗ trợ phát hiện lỗi này trong môi trường soạn thảo trình và khi dịch. Dẫu vậy để tránh lỗi thì khi lập trình phải tuân thủ bố trí gọi theo "mô hình cành và lá", trong đó "cành" là subroutine có gọi subroutine khác, còn "lá" là subroutine không có lệnh gọi.

Kỹ thuật lập trình dẫn đến việc tổ chức chương trình kiểu cấu trúc modul hóa, tức là chia chương trình thành nhiều modul hay đơn vị mà kỹ thuật điện toán gọi là subroutine, và trong trình chính thì thực hiện gọi chúng [2][3]. Nó đem lại cho người lập trình các lợi ích:

  1. Thay các đoạn trình giống nhau bằng một subroutine, làm cho mã chương trình ngắn hơn, sáng sủa và dễ bảo dưỡng.
  2. Đưa các subroutine đã kiểm tra vào thư viện [library] ở dạng văn bản trình hoặc dạng mã [4], để khi lập trình mới thì chỉ cần liên kết tới thư viện đó.
  3. Những chương trình lớn được thiết kế dạng cấu trúc tốt có thể trao cho các nhóm và người lập trình khác nhau lập trình, đôi khi có thể thuê người làm thêm viết các subroutine không quá phức tạp.

Do tầm quan trọng của việc tổ chức trình kiểu cấu trúc mà ngay từ khi công nghiệp máy tính ra đời, còn phải lập trình ở dạng mã máy, giới chế tạo máy đã chăm chút nhiều đến lệnh call và tổ chức của chương trình con. Nếu giải mã ngược [unassemble] mã trình thì thấy dày đặc lệnh call.

Bên cạnh các subroutine thực sự thì một số ngôn ngữ lập trình, kể cả lập trình hợp ngữ, hỗ trợ dạng chương trình con [trong văn bản trình] mà khi dịch thì thay thế bằng đoạn mã chương trình, không tạo ra subroutine dạng mã thật sự.

  • Macro: Dịch nội dung có trong macro có tên chỉ định và đặt vào vị trí tương ứng.
  • Inline: Chuyển nội dung mã được viết ở dạng hex trong procedure có tên chỉ định và đặt vào vị trí tương ứng.

Nhược điểm chính của vận dụng chương trình con liên quan đến bố trí các mã chỉ thị "dọn nhà" [housekeeping code] ở chương trình con, làm cho thời gian thi hành tác vụ kéo dài hơn so với khi đoạn mã đó được đặt thẳng trong chương trình chính.

Khi chuyển điều khiển sang chương trình con, tại các điểm vào [entry] chương trình con phải bố trí sao lưu giá trị các con trỏ [pointer] của bộ xử lý. Khi kết thúc [exit] giá trị các con trỏ được khôi phục lại từ trị sao lưu rồi mới thoát. Những đoạn mã sao lưu và khôi phục này giống nhau ở các chương trình con, tức là nếu subroutine "không làm gì" thì khi dịch ra mã vẫn có đủ cặp đoạn mã này.

Vì thế lập trình cho các vi điều khiển có tốc độ thấp và bộ nhớ hạn chế thì phải cân đối giữa việc lập hay không lập chương trình con. Các CPU điện toán hiện nay có tốc độ rất cao nên tổn thất thời gian này hiện ra không đáng kể, những người lập trình ứng dụng không cần quan tâm.

  1. ^ U.S. Election Assistance Commission [2007]. “Definitions of Words with Special Meanings”. Voluntary Voting System Guidelines. Bản gốc lưu trữ ngày 22 tháng 2 năm 2017. Truy cập ngày 14 tháng 1 năm 2013.
  2. ^ Wheeler, D. J. [1952]. “The use of sub-routines in programmes”. Proceedings of the 1952 ACM national meeting [Pittsburgh] on - ACM '52. tr. 235. doi:10.1145/609784.609816. Bản gốc lưu trữ ngày 28 tháng 6 năm 2015. Truy cập ngày 24 tháng 12 năm 2016.
  3. ^ Wilkes, M. V.; Wheeler, D. J.; Gill, S. [1951]. Preparation of Programs for an Electronic Digital Computer. Addison-Wesley.
  4. ^ Dainith, John. “"open subroutine." A Dictionary of Computing. 2004.”. Encyclopedia.com. Truy cập ngày 14 tháng 1 năm 2013.

Wikimedia Commons có thêm hình ảnh và phương tiện truyền tải về Chương trình con.

Bài viết này vẫn còn sơ khai. Bạn có thể giúp Wikipedia mở rộng nội dung để bài được hoàn chỉnh hơn.

  • x
  • t
  • s

Lấy từ “//vi.wikipedia.org/w/index.php?title=Chương_trình_con&oldid=66355372”

Chương trình con CNC giúp cho lập trình CNC đơn giản hơn, ngắn gọn và dễ chỉnh sửa. Cùng tìm hiểu cấu trúc chương trình con CNC được sử dụng như nào và bài tập áp dụng lập trình CNC.

Chương trình con CNC là một chương trình bình thường nhưng được gọi và lặp lại nhiều lần tại nhiều điểm.

Ngay cả các chương trình con CNC có thể gọi các chương trình con khác. Thông thường trong lập trình CNC, chương trình con có thể được lồng ghép tối đa bốn cấp.

Tại sao phải sử dụng chương trình con?

Khi cần gia công lặp lại nhiều lần một mẫu biên dạng thì nên biểu diễn biên dạng đó dưới dạng chương trình con để việc lập trình đơn giản hơn. Việc sửa đổi cũng trở nên linh hoạt hơn.

Ví dụ:

- Trường hợp chúng ta cần chạy biên dạng của cái áo như trên tại 4 vị trí khác nhau.

Nếu không sử dụng chương trình con thì chương trình gộp của 4 biên dạng là rất dài và khó khi cần thay đổi sửa chữa. Nhưng nếu sử dụng chương trình con thì sẽ ngắn gọn hơn rất nhiều.

Cấu trúc chương trình con CNC hệ Fanuc

Cấu trúc một chương trình con CNC trên hệ Fanuc như sau:

Cách gọi một chương trình con CNC:

Trong một chương trình chính có thể gọi chương trình con nhiều lần, và chương trình con có thể gọi chương trình cháu nhiều lần như hình dưới.

Số thế hệ tối đa có thể lòng nhau là 4. Số lần gọi tối đa một chương trình con là 999.

                                                                  Chương trình con gọi lòng nhau là 2 thế hệ.

Lệnh M98 có thể đứng chung với lệnh chuyển động. Khi đó lệnh chuyển động sẽ thực hiện trước rồi mới gọi chương trình con.

Ví dụ: G01 X100.0 M98 P1000;

Nếu muốn sau khi thực hiện chương trình con, bạn không trở về nơi đã gọi mà di chuyển tới một dòng chương trình khác, bạn phải chỉ ra dòng chương trình cần đến sau M99 P__;

Ví dụ: sau khi thực hiện chương trình con P1010, bạn gọi tới dòng lệnh N0060 bằng cách viết như sau:

M99 P0060;

                                                          Kết thúc chương trình con và gọi lại chương trình chính

Ví dụ chương trình con CNC:

Dùng chương trình con để gia công CNC hốc vuông sau đây:

Thiết lập chế độ cắt:

  • Phôi 150x150x40 mm

  • Dao: dao phay ngón D12 mm

  • Tốc độ trục chính: S2500

  • Tốc độ xuống dao: F = 200 mm/phút.

  • Tốc độ chạy dao phương ngang : F = 400 mm/phút.

  • Chiều sâu mỗi lần cắt: 2 mm.

Lời giải bài tập chương trình con CNC như sau:

Bài viết trên đây giải thích toàn bộ về chương trình con CNC và ví dụ minh họa. Nếu bạn còn thắc hay muốn tìm hiểu nhiều hơn thì hãy tham khảo khóa học CNC của trung tâm CAMMECH.
Gọi ngay hotline để được tư vấn khóa học: 0903111667

Chúc bạn thành công!

Video liên quan

Chủ Đề