前言:中文期刊網精心挑選了程序編程范文供你參考和學習,希望我們的參考范文能激發你的文章創作靈感,歡迎閱讀。
程序編程范文1
可編程序控制器(簡稱PLC),是以微處理器為基礎、 綜合計算機技術、自動控制技術和通訊技術,是自動控制系統中的一種先進的控制設備,面向控制過程,面向用戶,在工業控制中應用很廣泛。要最大程度的發揮出PLC強大的功能,熟練而巧妙的應用PLC指令顯得非常重要,PLC功能指令很多,包含傳送比較指令、數字運算指令、數據處理指令、移位以及循環移位指令、程序控制指令、高速處理指令等,筆者根據多年教學經驗,談談在PLC課程中的編程技巧。
1 程序設計方法
在設計系統時,要認真考慮掃描周期和響應時間這兩個參數。系統響應時間是指輸入信號產生時刻與輸出信號狀態變化的時間間隔。系統響應時間是由輸入濾波時間、輸出濾波時間和掃描周期決定的。在實時性要求較高的系統中,要盡量縮短系統的響應時間,提高系統對輸入信號的反應能力和速度。選擇PLC機型時,要充分考慮PLC控制系統的結構與功能。根據系統控制流程圖及可編程控制器的I/O地址分配表,即可以進行程序設計。程序設計的方法通常有邏輯設計法、流程圖設計法及經驗設計法。
1.1 邏輯設計法。邏輯法以布爾代數為理論基礎,根據生產過程各工步之間檢測元件狀態的不同和變化,列出檢測元件狀態表。根據檢測元件、中間記憶元件及執行元件的邏輯表達式,轉換成梯形圖。繼電器控制系統線路中常用此方法,具有梯形圖簡單、占用元件及內存量少的特點。
1.2 流程圖設計法。流程圖設計法以“步”為核心,根據工作流程圖,從首步開始設計下去,直至整個程序完成為止。首先,將被控對象的工作過程分若干步,在圖中用方框表示步。方框之間用帶箭頭的直線連接起來,箭頭方向表示轉換進程。然后,按生產過程,把工步條件畫在直線左方。在方框的右邊畫出工步的控制對象。這種工作流程圖,包含了所有工作過程的信息,為編制程序提供了依據。
1.3 經驗設計法。經驗設計法是―種依據繼電器控制線路原理圖,該方法對現有繼電器控制系統的技術改造是十分有利的。具體步驟為:熟悉現有繼電器控制線路;根據繼電器控制原理圖畫出梯形圖;將程序存到可編程序控制器的存儲器;程序調試和運行。這種設計法,只要有詳細的流程圖,就能夠不再依賴原繼電器線路,這種設計方法簡單方便、周期短、調試容易。
為盡量減少指令條數,提高PLC的運行速度,還應注意以下問題:輸入繼電器、輸出繼電器、內部繼電器、定時器、計數器等器件觸點可以重復使用,這與傳統的繼電器器件不同。
2 程序設計中應注意的問題
可編程序控制器編程就是用編程語言把一個控制任務描述出來。根據程序設計過程中總結的經驗,還應注意了解PC機的技術指標。有些技術指標只需要進行一般的了解,而有些指標必須要搞清楚。例如:梯形圖所使用的各種元件編號,PC機的執行方式、執行速度、程序語言、程序容量、指令條數、輸入/輸出繼電器的點數等,只有充分掌握這些細節,才能最大程度的發揮PC機的作用。
PC機控制信息都是通過“0”和“1”兩種數字狀態進行傳輸、運算、處理和存貯的,同一時刻同一繼電器的觸點狀態不能有兩種,所以一個梯形圖中不允許有雙線圈輸出的情況。為了保持梯形圖簡潔并易于編程,在繪制梯形圖時,應注意梯形圖中的信號流向是“從左到右、從上到下”,不能倒流;幾個串聯回路并聯時,將觸點最多的回路放在最上面;幾個并聯回路串聯時,應將觸點最多的回路放在最左邊等等。
可編程序控制器實驗教學要求學生能夠利用微機控制技術進行現場監控以及編程,系統地掌握電氣控制與可編程邏輯控制的實踐環節,全面提高學生的實踐素質。具體要求為:學生理解可編程控制器的結構原理;掌握繼電器接觸器控制技術的應用;學會分析基本的控制電路與設計;學生掌握有關電器的基本知識和原理。課程以課堂講授和實驗結合為主,課外練習為輔,實踐教學環節主要采用實驗室授課,也就是理論授課同時進行實驗實踐教學,提高學生的實際動手能力,注重培養學生的分析和解決問題的能力。
3 結束語
在編制程序過程中,如果采用一些編程技巧,現代工業控制在許多場合需要數據處理,用于數據的傳送、運算、變換及程序控制等功能,在可編程序控制器中采用梯形圖編程,再轉化為指令,可使編程問題比較順利地得到解決,收到意想不到的效果。可編程序控制器的指令具有多樣性,給編程者提供了很大的想象空間,關鍵是怎樣用好它、掌握它,才能發揮出它最大的時效性。
參考文獻:
[1]陳新欣,鄧錦熾.開放式可編程控制器的設計[J].微型機與應用,2011,5.
[2]許戮,王淑英.電器控制與PLC控制技術[M].北京:機械工業出版社,2007.
程序編程范文2
【關鍵詞】 數控車子程序 編程 應用
1 引言
在數控加工中,有時在一個零件上,有兩處或兩處以上形狀和大小都相同的加工部位,為簡化程序的編制,可以用子程序來加工,或調用子程序實現循環加工,以減少編制程序時需要計算的基點的個數,簡化編程。
2 子程序介紹
(1)子程序的定義。某些被加工的零件中,常常會出現幾何形狀完全相同的加工軌跡,在編制加工程序時,有一些固定順序和重復模式的程序段,通常在幾個程序中都會使用它。這個典型的加工程序段可以做成固定程序,并單獨加以命名,這組程序段就稱為子程序。
(2)子程序的作用。使用子程序可以減少不必要的重復編程,從而達到簡化編程的目的。主程序可以調用子程序,一個子程序也可以調用下一級子程序。子程序必須在主程序結束指令后建立,其作用相當于一個固定循環。
(3)子程序的格式。子程序的格式與主程序相同,在子程序的開頭編制子程序號,在子程序的結尾用M99指令結束子程序并返回主程序。
O××××
…
M99
(4)子程序的調用。在主程序中,調用子程序的指令是一個程序段。
指令:M98
格式:M98 P×××× ×××× (前四位為調用次數,后四位為子程序號)
或M98 P×××× L××××(P后面為子程序號,L為調用次數)
說明:省略循環次數時,默認循環次數為一次。
(5)子程序的嵌套。子程序調用另一個子程序,稱為子程序的嵌套。主程序調用同一子程序執行加工,最多可執行9999次,但是子程序的嵌套不是無限次的,在編程中使用較多的是二重嵌套(不同的系統其執行的次數及層次不同),其程序執行情況如圖1所示。
3 應用子程序編程實例
(1)等距槽可以利用循環或子程序進行編程,但加工不等距槽時,就體現出了利用子程序進行編程的優勢。例如:圖2所示為車削不等距槽,已知02號刀為切槽刀,刀刃寬度為4mm,左刀尖對刀, 35mm外圓已加工好,試通過調用子程序的形式編寫其加工程序。
1)主程序。
O0001
N10 G50 X100.0 Z100.0;設定工件坐標系。
N20 M03 S900;主軸正轉,轉速900r/min。
N30 T0202;換02號切槽刀。
N40 G00 X38.0;快速定位到38mm處。
N50 Z-20.0 M08;快速定位,準備切槽,開冷卻液。
N60 M98 P31000;調用O1000的子程序3次。
N70 G00 X50.0 Z-138.0;快速定位。
N80 G01 X0 F30;切斷。
N90 M30;程序結束。
2)子程序。
O1000
N10 G00 W-4.0;Z軸負向移動4mm至第一槽處。
N20 G01 U-13.0F30;切第一槽至指定尺寸。
N30 G04 X1.0;槽底停留1S。
N40 G01 U13.0;X方向退出。
N50 G00 W-14.0;快速定位第二槽處。
N60 G01 U-13.0;切第二槽至指定尺寸。
N70 G04 X1.0;槽底停留1S。
N80 G01 U13.0;X方向退出。
N90 G00 W-20.0;Z軸負向移動20mm。
N100 M99;子程序結束,并返回主程序。
(2)如果加工等距槽,但是形狀較復雜時,循環指令就失效了,這時應用子程序就可以大大提高編程的效率。例如:圖3所示為車削等距復雜型槽,已知02號刀為切槽刀,刀刃寬度為3mm,左刀尖對刀,28mm外圓已加工好,試通過調用子程序的形式編寫其加工程序。
1)主程序。
O0002
N10 G50 X100.0 Z100.0; 設定工件坐標系。
N20 M03 S600; 主軸正轉,轉速600r/min。
N30 T0101; 選擇1號外圓刀。
N40 G00 X30.0 Z2.0;定位至30mm,距端面正向2mm。
N50 G71 U1.0 R0.5; 采用復合循環粗加工半圓球、外圓、外圓錐面等,
N60 G71 P70 Q130 U0.5 W0 F100; X正方向留精加工余量0.5mm。
N70 G42 G01 X0 F50;
N80 Z0;
N90 G03 X20.0 W-10.0 R10.0;
N100 G01 Z-42.0;
N110 X25.0 Z-50.0;
N120 Z-55.0;
N130 G40 X30.0;
N140 M00 M05;主軸停,程序加工暫停,檢測工件。
N150 M03 S1200;主軸正轉,轉速 1200r/min。
N160 G70 P70 Q130;精加工半圓球、外圓、外圓錐面等。
N170 G00 X100.0 Z100.0;返回換刀點,主軸停。
N180 M03 S800;主軸正轉,轉速 800r/min。
N190 T0202; 換02號切槽刀。
N200 G00 X22.0 Z-10.7M08;快速定位,準備切槽,開冷卻液。
N210 M98 P32000;調用O2000的子程序3次,加工3處等距外溝槽。
N220 G00 X100.0 Z100.0; 返回換刀點。
N230 M30; 程序結束。
2)子程序。
O2000
N10 G00 W-8.6;刀具沿Z軸負方向平移8.6mm。
N20 G01 U-10.0 F20;沿徑向切槽至槽底。
N30 G04 X1.0;槽底停留1S。
N40 G00 U10.0 F500;快速退至22mm處。
N50 W1.3;沿Z軸正方向平移1.3mm。
N60 G01 U-2.0;沿徑向移動至20mm處。
N70 U-8.0 W-1.3;刀具切溝槽右側面至槽底。
N80 G00 U10.0;快速退至22mm處。
N90 W-1.3; 沿Z軸正方向平移1.3mm。
N100 G01 U-2.0;沿徑向移動至20mm處。
N110 U-8.0 W1.3;刀具切溝槽左側面至槽底。
N120 G00 U10.0;快速退至22mm處。
N130 M99;子程序結束,并返回主程序。
4 結語
編寫子程序時注意應用增量坐標寫出加工路線,讓程序沿X向(或Z向)循環進刀,設置好背吃刀量,計算出加工次數,在主程序中進行調用。這種方法可減少基點的計算個數,適用于各種形狀復雜的零件,使這類零件在數控機床上的編程變得簡便。靈活的應用子程序,在很大程度上提高了零件的加工效率,并且在實際生產中收到了良好的效果。
參考文獻:
[1]謝曉紅.數控車削編程與加工技術.北京:電子工業出版社,2008.7.
程序編程范文3
關鍵詞:函數式;Java程序;應用
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)06-0099-02
函數式編程(functional programming)作為當前最流行的編程規范之一,主流語言都對其進行了支持,作為編程領域最重要的JAVA語言,也在最新的JDK8中新增了相關特性,這就是lambda(λ)表達式及Stream類。它使得JAVA語言進一步與當今流行趨勢結合,增強了JAVA語言的表現力,拓展了它的應用范圍,優化了程序的結構與可讀性
1 函數式編程簡介
函數式編程(functional programming)是一種編程模式,旨在將運算過程盡量寫成一系列嵌套的函數調用。在形式上,函數式編程允許將函數作為參數和返回值;在機制上,函數式編程在執行時進行惰性計算(lazy evaluation)和閉包等技術。最主要的優點是不修改狀態,可以將任務隨意分解,很好的符合了當前多線程、多處理器編程的趨勢。
2 JAVA中的lambda表達式
lambda(λ)表達式是JDK8最大的更新之一,旨在引入函數式編程思想優化JAVA程序。其表達形式如下:
(int even, int odd) -> even + odd
在JDK8 中,使用->符號引起表達式,該符號左邊為表達式的參數,右邊為表達式的行為。Lambda表達式可使用在多種場合,例如作為參數直接傳入某個函數:
button.addActionListemer(event->System.out.println(“button clicked??!”));
其中button是一個AWT Button 對象,由此我們可以看出,在傳統的需要匿名內部類的地方可由lambda表達式代替,另外,傳統的函數參數需要一個對象,而引入了lambda表達式之后,則可以將函數作為參數傳入,從而在代碼上更加簡潔。
引入lambda表達式的優點首先體現著對代碼的重構上,傳統的JAVA程序有一個重要的概念即匿名內部類,這個類在某些只使用一次即銷毀的情況下創建,例如常見的為按鈕添加事件
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.out.println("button clicked");}
});
但是該代碼當中有若干行是純粹的樣板代碼,沒有任何實際意義,不僅語法冗長,而且破壞了代碼的真實意圖,而采用lambda表達式改寫后,該段代碼的目的一目了然,如下所示
button.addActionListener(event->System.out.println("buttonclicked");
其次,lambda表達式配合jdk8新增的的Stream類可以提高程序――特別是循環結構――的執行效率,在JDK8之前,傳統的循環結構采用的都是外循環結構,例如試圖取得所有來自北京的教師
int count = 0;
for (Teacher teacher : allTeachers) {
if (teacher.isFrom("London")) {
count++;}
}
可以看到,傳統方式中,集合內部的數據與外部的循環語句不停的進行交換,外部程序不得不占用一部分空間為結果集做準備,從時間上到空間上都造成了浪費。而經過lambda表達式和Stream改造,原有的外部循環成為內部循環,如下例所示:
long count = allArtists.stream().filter(artist -> artist.isFrom("London")).count();
可以看出,使用lambda表達式后,內部循環只是在符合條件的集合個體中做出標識,不占用額外內存,當程序不發出最后的指令(如要求立即返回結果)時,內部循環不作出任何操作,稱為lazy模式,這樣就節省了時間。
3 用lambda表達式優化程序
初學者在使用lambda表達式時,可將其應用在集合操作中,優化其操作方式,lambda表達式與Stream類所支持的集合優化有map、filter、flatmap以及reduce等,下面將詳細介紹這幾種方式。
在這之前,首先定義一個領域模型,模仿現實世界中的某些業務需求,這個領域模型的結構如下
作者Author,包含名稱(String name)、所屬機構(String origine)和若干成員(String [] members )
著作 Book,包含名稱(String name),若干章節(List chapters)和若干作者(List authors)
章節Chapter,包含章節名稱(String name)和字數(int chars)
作者集合authors,著作集合books和章節集合chapters。
首先來介紹Stream類中的第一種操作,即map操作,該操作負責將集合當中的元素進行符合條件的轉換。例如,需要所有作者的所屬機構列表,則使用lambda表達式和Stream代碼如下:
List origines=authors.Stream().map(author->author. getOrigine()).collect(toList());
第二種常用操作是filter操作,旨在篩選出集合當中符合條件的元素,例如,需要找到所有成員數為1的作者(即該作者不是團隊而是個人),代碼如下
authors.Stream().filter(author->author.getMembers().length
最后一種常用操作為reduce,該操作類似于數據庫中的聚合函數,可對結果進行各種統計,如匯總、小計、總計等,例如要求計算所有所有作者全部著作的總字數,則代碼可以如下:
chapters.Stream().map(chapter->chapter.getChars()).reduce(0,(base,acc)->base+acc);
以上介紹了函數式編程在java中的簡單應用,作為java8中最重要的新特性,函數式編程極大的簡化了代碼的編寫,使得java這一語言煥發了新的生命力,在未來的開發中,擁有面向對象及面向函數雙重特征的java語言必定會發揮更大的作用。
參考文獻:
[1] 張迎周, 張衛豐. Haskell:一種現代純函數式語言[J].南京郵電大學學報:自然科學版,2007(4).
程序編程范文4
【關鍵詞】計算機應用程序 編程模型 發展
計算機的運行主要是通過計算機硬件和應用程序相互協調來實現的,從這兩個部分可以看出,任何部分都不能缺少,然而應用程序這一方面是計算機的心臟,決定著計算機的運行和計算,計算機開始運行時,先是把對應的信息和數據錄入計算機,這時計算機的儲存器會對這些信息進行識別和儲存,然后計算機會啟動計算功能對數據進行計算,最后把所得結果運用用戶可以查看的方法保存在硬盤中,這樣有助于用戶對其查看和計算,對于應用程序的結構,一般包括數據保存、邏輯和桌面操作等,然而不同部分的性能相比較也是不同的,所以,必須根據相關程序來運行計算機。
1 單層模型
計算機經過了很長時間的發展,自從計算機誕生以來的很長時間里,計算機都包括兩個硬件板塊,其中一個板塊是計算機的主機系統,另外一個板塊是次要部分,計算機應用程序和以及硬件系統儲存在主機部分,這就是單層應用模型,然而這種類型道德計算機性能不高,不能滿足用戶使用計算機的各種需要,所以,在接下來的發展過程中這種類型的計算機慢慢被淘汰了。
2 雙層模型
在計算機應用程序前進歷程中,因為單層模型性能不高,不能滿足用戶的需要,所以,出現了使用雙層模型的計算機,這種模型的基本原理其實就是對計算機進行創新,把主機板塊劃分為兩個部分,其中一個結構是服務器,另一個結構是客戶端。對于服務器,其功能主要是搜集和處理數據和信息,并展示在計算機服務器上面,對于信息和數據的反映在計算機桌面,需要借助客戶端來實現。雙層模型相比較單層應用模型,雙層模型有很多優點,在形式方面有著一定的相同,計算機的處理形式相比更完善,工作效率得到了較大的提高,達到了計算機正常運行的目的。然而雙層模型在使用的時候,也會出現一些問題,這說明其存在一些不足有待完善,所以,繼續完善是一種正常的趨勢。
3 多層模型
多層模型是基于雙層模型的發展而出現的,通過較長時間的研究和分析,創新性的把雙層模型的優點完美加入到了多層模型中,還依靠現論和科學技術來完善計算機的運行方式和計算機性能,多層模型主要解決了雙層模型存在的問題,這些問題包括不穩定和不安全,讓計算機實現了快速運行,運行起來非常靈活,此外,還彌補了操作方面的不足,通過多層模型可以看出,該模型使用的是模塊分開方式,這使得計算機使用和維護起來非常方便,而且存儲器與事務之間的交流越來越頻繁,可以進行信息和數據的交換,能夠實現不利用其他渠道來得到需要的信息和數據,這種模型的優點使得其在計算機應用中穩固了地位,不但沒有被淘汰還得到了人們的認可,但是,隨著科學技術的進步,人們的生活水平得到了快速提升,因此,這種模型必然會隨著時間的推移而被再次創新或者直接淘汰。
4 分布式模型
通過觀察計算機應用程序多層模型的使用情況,我們可以知道,這種模型的基本原理中的上層為下層提供服務,還有上層控制和調節下層,這一方式有可能會縮短計算機的使用壽命,所以,相關技術人員非常重視這個問題,如果想提升計算機的性能和運行效率,在完善的時候,應該依據有關規則和程序分解應用程序的代碼,接下來遵循著計算機工作規律準確確定應用程序代碼的功能,在保持現存計算機功能的情況下,又增添了新功能,然而需要借助分解對象才可以實現。
5 基于萬維網的多層模型
隨著萬維網的快速發展,因特網也得到了快速發展,因特網具有的功能表現出較大的復雜性,包括數據和信號的方式等,具體的說,萬維網應用程序具備的特征比較顯眼,一般可以通過以下幾方面來說明:
(1)通過萬維網創建的計算機編程模型的使用桌面比較簡化,可以使用便捷的搜索系統完成搜索工作,快速發現軟件所在的位置和使用的操作模式,而且,因特網在其中起著非常顯著的作用。
(2)這個基于萬維網的多層模型的使用使得管理人員的工作更加簡單,管理人員可以把一些操作系統安裝在系統中實現搜索,不用依靠其他系統來開展搜索工作,這樣,使得花費在系統維護上面的費用大幅度被減少,而且工作效率也獲得了快速提高。
(3)研究人員可以借助萬維網技術來有效做好發明工作,在制作網頁的時候,只需要借助有關的工具就可以開展工作,不會使得工作變得很復雜,關于應用開發,舊式的使用單獨的軟件包方式出現的部分應用程序慢慢的被應用到了互聯網中,采用出租服務的形式為用戶提供服務,這不但提升了研發效率,還使得研發工作不再那么繁瑣。
6 結論
伴隨著計算機的快速發展和信息技術的不斷進步,我們發現無論是在生活中還是在工作上都有計算機的參與,人們對計算機具備的功能提出了越來越高的要求,這樣引起了應用程序編程模型向著更高方向發展,本文以計算機應用程序編程模型的發展探討為題,對其所有的發展環節進行了細致的研究,發展環節包括單層模型、雙層模型、多層模型、分布式模型以及以萬維網為視角的多層模型,由于人們對計算機越來越依賴,未來計算機應用程序編程模型會繼續發展下去。
參考文獻
[1]李紅巖.計算機應用程序編程模型的發展探討[J].電子制作,2014(20):71.
[2]高書豪.計算機應用程序編程模型的發展探討[J].硅谷,2014(07):157-158.
[3]譚曦.論計算機應用程序編程模型的發展[J].電腦與信息技術,2001(02):51-53.
[4]羅新建.計算機應用程序編輯模型的發展[J].數字技術與應用,2013(08):89.
[5]王執源.計算機應用程序編程模型發展方向探析[J].信息與電腦(理論版),2016(17):55-56.
[6]余婭梅.探討計算機應用程序編程模型的發展方向[J].電腦編程技巧與維護,2015(16):16-17+25.
程序編程范文5
在機械加工中,沿圓周均布的圓弧凹槽是比較常見的結構,采用常量編程,加工程序編制、調試復雜,沒有通用性,編程效率低?;谏鲜?,采用變量編程對圓周均布的圓弧凹槽典型零件結構進行參數化編程,對該類零件凹槽結構的數控編程只需像調用固定循環指令一樣,指定圓弧凹槽幾何參數,即可用于加工,大大提高了編程和程序調試效率,對圓周均布相似結構形狀的數控銑削加工編程具有借鑒意義。
一、FANUC 0i系統宏程序編程基礎
1.變量
變量是宏程序中最重要的要素,變量提供了參數化程序中的關鍵元素――可變量,變量里存儲的是一些可以改變的數據。變量用#i表示(i=1、2、3…),變量引用將跟隨在一個地址后的數值用一個變量來代替,即引入了變量,如G01X#1F#2。
2.控制指令
控制指令起到控制程序流向的作用,實現程序的跳轉。宏程序編程時主要使用下面兩種轉移和循環語句:①IF語句(條件轉移:IF[條件表達式]GOTO n;);②WHILE語句(當……時循環)。
由WHILE語句構造的DO循環最多可以進行3重嵌套,但循環不能交叉,條件轉移IF語句可以跳出WHILE循環,但不能跳入WHILE循環。
3.宏程序的定義和調用
宏程序的定義和子程序的定義相似,不同之處主程序采用G65或G66指令調用宏程序,而使用M98指令調用子程序。宏程序還可以用G代碼、M代碼調用。
宏程序的調用格式是G65或G66 P_L_。G65為非模態調用,G66為模態調用,P值為宏程序的程序號,L值為調用次數,“”傳遞到宏程序的數據。“”有兩種格式,應用時一般采用自變量賦值Ⅰ,即用英語字母后加數值進行賦值,除了G、L、O、N和P之外,其余21個英文字母都可以給自變量賦值,每個字母賦值一次,從A、B、C……X、Y、Z ,賦值不必按字母順序進行,但I、J、K例外,不賦值的字母可以省略。
二、圓周圓弧凹槽銑削宏程序的設計
1.圓周圓弧凹槽宏程序設計
建立圓弧凹槽宏程序編程模型如圖1所示,編程坐標系原點在工件幾何中心O點,定義圓周均布圓弧凹槽幾何參數和刀具半徑變量如下:#1表示凹槽起始角度,#2表示凹槽終止角度增量值,#3表示凹槽的寬度,#18表示凹槽中心圓周半徑,#6表示凹槽個數,#10表示槽間角度值(#10=360/#6),#17表示層切距,#26表示槽深(槽深與層切距須為整數倍關系),#11表示Z坐標絕對值,#2表示刀具半徑。
設計圓周均布凹槽宏程序流程圖如圖2所示,為2層嵌套循環,凹槽加工個數循環為外層循環1,實現圓周均布n個槽的加工;每個凹槽深度分層加工循環為內循環2,完成槽深加工,每層凹槽加工走刀路線設計為圖1中點1點2點3點4點5點6點1,其中點1為下刀點和返回點。
2.圓弧凹槽宏程序源代碼
由上述圓周均布凹槽宏程序設計流程圖,根據FANUC0i-MC系統編程指令即可編制程序源代碼。為便于宏程序編程和使用,列變量和參數如表所示,編寫圓周均布凹槽宏程序如O8201所示。
三、加工實例
1.加工工件分析
某工件如圖3所示,工材鋁合金,要求加工圓周均布的6個圓弧凹槽,深度12mm。由圖可知,凹槽底面坐標值12mm,凹槽分布圓周半徑42.5mm,寬度15mm,凹槽起始角度自變量初值-15°,圓弧凹槽終止角度增量值30°,刀具半徑選取4mm,層間距選取3mm,每個槽的Z軸自變量初值取為層間距,凹槽個數6。建立編程坐標系原點在工件幾何中心,Z軸零點在工件頂面。
2.圓周圓弧凹槽宏程序的使用
通過G65引數賦值調用圓弧凹槽宏程序,即可實現該工件圓弧凹槽的加工。根據工件分析,加工6個圓弧凹槽引數賦值:D4、Z12、R42.5、C15、A-15、B30、Q3、K6。至此,可編制該工件凹槽加工主程序如O0001所示,粗、精加工時只需改變刀具半徑變量值即可。
程序編程范文6
4軸加工在實際的應用中比較廣泛。隨著多軸加工設備的應用普及,特別是5軸機床(加工中心)、復合加工中心等廣泛應用,對4軸加工的專門研究相對較少。4軸加工作為多軸加工的一種類型,具有多軸加工程序的共性又有自身的特殊特點。本文以美國參數技術公司的Creo parametric 2.0軟件加工模塊Pro/NC為平臺,重點探討4軸粗加工刀路的生成、陣列、非加工路徑的客戶化及后處理程序設置方面的問題。
一、4軸加工模型的建立
4軸加工類型總體上可以分類為“索引”和“多軸”兩種類型。“索引”類型加工主要包含4軸的粗加工和4軸的鉆孔加工?!岸噍S”類型加工主要包含4軸的鉆孔加工、4軸的區域加工和圓柱凸輪的加工。在Pro/NC的加工環境中,在一個“序列”內的刀具運動基本屬于“多軸”的特點,而刀具在不同“序列”之間的“非加工”刀路就屬于“索引”類型。圖1為本文所引用的加工模型的參照模型。
要完成加工程序的創建,首先要創建“操作”(圖2、圖3),建立一個操作的必要設置包括:①裝配參照模型;②加工原點(程序坐標系);③退刀面。
其他可選用的設置項目:參數――頭文件和末文件;選項――設定毛坯材料;夾具設置――指定夾具模型;工藝――程序實際加工時間運算;屬性――加工程序的名稱。
加工中心設置可選用的設置項目也比較多,主要包含“輸出”、“刀具”、“參數”、“裝配”、“行程”、“循環”和“屬性”。如圖4所示,此處可以指定“后處理器”。
“操作設置”完成后,下一步即為創建“序列”。
二、加工程序生成與陣列
生成單個凹槽的粗加工程序,如圖5、圖6所示。在生成加工“序列”之前先指定一把加工刀具,刀具名稱“T0001”,直徑8mm,刀長100mm。刃長20mm,底刃圓角R為1mm。然后選擇“粗加工”,在對話窗口中,定義“加工窗口”如圖6頂部曲線,窗口類型為“草繪窗口類型”,“放置平面”、“深度”和屬性選項均采用缺省值,“選項”表設置以刀具加工“在窗口圍線內”,并選擇“T0001”為加工刀具。設定的主要加工參數如表所示。
由于零件的形狀為回轉體,在圓周的四周均布4個形狀尺寸完全相同的槽,因此“窗口銑削”粗加工程序完成后,接下來就是對這個粗加工程序作含1個主例和3個子例的陣列。在Creo 2.0的加工環境中,仍然保持該軟件的突出特點,基于特征的完全相關性。高度完全相關性的特點是當下“在并行環境中,一體化協同設計與制造”不可缺失的。對于生成的各種類型的加工程序,Creo仍然像處理一個特征那樣的簡單、高效,例如我們在實際應用當中經常用到的特征“成組”、“復制”和“陣列”等操作方式在加工環境中同樣適用。具體步驟是在“特征樹”窗口中,選擇預陣列的“序列”,按鼠標右鍵在快捷菜單中選擇“陣列”。接下來的操作就是在“陣列”對話界面中選擇陣列類型為“軸陣列”、陣列個數為4以及圓周陣列的中心軸等,“陣列”操作就可完成。
三、加工子程序生成
上述操作簡單直觀,效率也較高,同時易于觀察刀路軌跡和移除切削材料。采用“陣列”方式生成的加工程序就是對每個加工的槽重復運行相同的刀路。無疑這種方式產生的加工程序代碼比較長。和陣列方式加工結果完全相同的是采用子程序的方式。采用子程序的方式的最大優點就是生成的程序較為精煉和可讀性強,且程序生成的用時較少。對于利用子程序這種方式,每次子程序被調用,加工工件就相應地轉動一個角度,即前面提到的“分度”加工類型。在制造“操作”欄點取“子程序”工具,然后在“菜單管理器”中選擇已創建的窗口加工程序“roughing”,進入子程序創建對話定義界面,如圖8所示。這種操作的結果就是生成一個加工的“構建操作”加工特征,此特征在“模型樹”窗口中可見。在生成的NCL代碼文件中出現下面的子程序調用代碼。
四、后置處理的設置
Pro/NC在加工刀路程序生成以后,生成的程序為ASCII格式的刀位置(CL)數據文件,即我們所說的APT程序。APT程序可讀性強,但是不能直接傳輸到機床上用于加工。這些文件在傳輸到機床控制系統之前,需要通過“后處理”以創建“加工控制數據”(MCD)文件。Pro/NC提供2種方式的后處理類型,一種是gpost,也是缺省使用的類型,用的是Intercim Corporation提供的G-Post后處理器。另一種是ncpost,使用的是NC ManufacturingPOST后處理器。Pro/NC在缺省狀態下提供給用戶17種銑加工后處理器和5種車削加工后處理器。但這些后處理器一般不包含對子程序代碼的處理,所以需要用戶使用FIL(Factory Inerface Language)工廠界面語言編寫。圖9為后置處理過程及過濾程序Filter文件的作用。在流程圖中CL文件為刀位程序文件,nn為后處理程序機器號。
五、結論