中航工業昌河飛機工業集團公司 (江西景德鎮 333002) 劉 暉 胡 輝
一般大型工件加工程序根據工藝要求,將其分為若干個子程序。操作人員在數控機床加工完第一個子程序后,手動調用第二個子程序繼續執行,完成后再依次調用執行。這樣的話,不僅增加了操作人員工作量,而且容易耽誤生產時間。在西門子840D系統中,可以通過EXTCALL指令來解決該問題。
EXTCALL指令用來調用外部子程序,其編程格式為EXTCALL(“路徑/程序名”)。假如一個工件程序包含四個子程序:P01、P02、P03、P04。如果這些程序位于子程序(SPF)目錄下,或者這些被調用的程序與發出調用命令的程序在同一目錄下,那么在EXTCALL指令中只需輸入程序名,就可以在程序中執行以下指令完成該工件的加工:

但是如果這些被調用的程序與發出調用命令的程序不在同一目錄下,執行以上指令的話,系統會出現報警14011:P01不存在或沒編輯。這時就需要在EXTCALL指令中輸入要調用程序的絕對路徑。假設這些子程序放置在工件程序(WKS)中的PMAIN目錄下,則需要按以下格式調用執行:


如果子程序位于CUS(用戶循環)、CMA(制造商循環)、CST(標準循環)目錄中,將路徑名稱改成/_N_CUS_DIR/子程序名_SPF、/_N_CMA_DIR/子程序名_SPF、/_N_CST_DIR/子程序名_SPF即可。
使用EXTCALL指令,還可以調用網絡驅動器以及ATA卡上的程序。
使用EXTCALL指令調用外部子程序時,外部子程序不允許包含跳轉指令,如GOTOF、GOTOB、CASE、FOR、LOOP、WHILE及REPEAT,但是允許包含嵌套的EXTCALL調用。
對于西門子840D系統來說,存在一個問題就是,如果工件程序容量較大,由于NCU存儲容量有限,無法全部加載入NCU。……