• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      帶參數(shù)傳遞的子程序技術(shù)及其應(yīng)用

      2014-11-30 09:00:02王乃彥閆明璞上海電氣電站設(shè)備有限公司汽輪廠200240
      裝備機(jī)械 2014年2期
      關(guān)鍵詞:主程序子程序調(diào)用

      王乃彥 閆明璞 上海電氣電站設(shè)備有限公司汽輪廠 (200240)

      王乃彥(1980年~),男,工程師,專(zhuān)業(yè)方向?yàn)槠啓C(jī)制造。

      0 引 言

      在數(shù)控系統(tǒng)中,為方便程序編制,數(shù)控系統(tǒng)提供多種標(biāo)準(zhǔn)循環(huán),如西門(mén)子840D中的銑螺紋循環(huán)CYCLE90(),切槽循環(huán)CYCLE93()等,作為一組基本指令的集合,實(shí)現(xiàn)了一些典型結(jié)構(gòu)的加工。數(shù)控程序編制時(shí),編程人員并不需要知道固定循環(huán)內(nèi)部的結(jié)構(gòu)和指令,只需要按說(shuō)明填寫(xiě)相應(yīng)的參數(shù)就可完成程序的編制。標(biāo)準(zhǔn)循環(huán)簡(jiǎn)化了程序、降低了編程的難度和出錯(cuò)率,增強(qiáng)了數(shù)控程序的可讀性。這些標(biāo)準(zhǔn)循環(huán)主要使用子程序技術(shù),參考標(biāo)準(zhǔn)循環(huán)的編程方法,將一些通用性較強(qiáng)的結(jié)構(gòu)使用子程序編程,同樣可以簡(jiǎn)化程序,降低程序編制的難度,提高工作效率,方便數(shù)控程序的管理。

      1 子程序技術(shù)

      數(shù)控程序編制過(guò)程中,如果零件不同位置具有相同或相似的結(jié)構(gòu)(見(jiàn)圖1),為了簡(jiǎn)化程序,可以把這些重復(fù)的程序段單獨(dú)列出,按一定的格式編寫(xiě)成子程序。主程序在執(zhí)行過(guò)程中如果需要某一子程序,通過(guò)調(diào)用指令來(lái)調(diào)用該子程序,完成相關(guān)結(jié)構(gòu)的加工。子程序執(zhí)行完后返回到主程序,繼續(xù)執(zhí)行后面的程序段。使用子程序技術(shù),不但減少了程序長(zhǎng)度,增加了程序的可讀性,還降低了程序的出錯(cuò)率,方便程序的修改。

      圖1 有相同結(jié)構(gòu)的零件

      2 帶參數(shù)傳遞的子程序

      在加工中,經(jīng)常會(huì)遇到一些典型結(jié)構(gòu),幾何形狀比較復(fù)雜,尺寸要素較多,加工方法相同或相似,區(qū)別只是位置、尺寸不同。加工這類(lèi)典型零件時(shí),數(shù)控程序使用的參數(shù)多、程序復(fù)雜。采用普通子程序編程,加工不同的零件時(shí),不能直接被調(diào)用,必須對(duì)其中涉及到的尺寸、加工參數(shù)進(jìn)行修改。這樣就增加了子程序調(diào)用的難度,而且容易出錯(cuò)。在子程序技術(shù)中,有一種帶參數(shù)傳遞的子程序技術(shù),編制的子程序類(lèi)似于數(shù)控系統(tǒng)中標(biāo)準(zhǔn)循環(huán),可以把典型結(jié)構(gòu)的加工程序封裝在子程序中,將所有的幾何尺寸、加工參數(shù)等變量以參數(shù)的形式傳遞給該子程序。同時(shí)也可以把一組類(lèi)似的加工程序封裝在一個(gè)子程序中,把加工方式作為子程序參數(shù),使用時(shí)根據(jù)需要選擇加工方式。這樣可以減少程序數(shù)量,方便程序管理。

      2.1 子程序定義

      格式:

      PROC PROGRAMNAME(VARIABLENTYP1 VARIABLE1,VARIABLENTYP2 VARIABLE2,…)

      PROC:PROC指令,子程序標(biāo)記關(guān)鍵字

      PROGRAMNAME:子程序名稱(chēng)

      VARIABLENTYP1:參數(shù)1類(lèi)型,

      VARIABLE1:參數(shù)1名稱(chēng),

      VARIABLENTYP2:參數(shù)2類(lèi)型,

      VARIABLE2:參數(shù)2名稱(chēng),

      參數(shù)可以是普通的數(shù)據(jù)類(lèi)型,也可以是數(shù)組。如果是數(shù)組,則必須在數(shù)組類(lèi)型前加關(guān)鍵字VAR。

      注意:帶 PROC 的定義指令必須在一個(gè)獨(dú)立的NC程序段中編程??梢宰疃嘤?127 個(gè)參數(shù)用于參數(shù)傳送。

      子程序定義舉例:

      PROC KONTUR(REAL LENGTH, REAL WITH)

      N10 …

      N50 X= LENGTH

      N60 Y= WITH

      N100 M17

      子程序以M17或RET結(jié)束。

      2.2 子程序調(diào)用

      主程序中,在調(diào)用帶參數(shù)傳遞的子程序前,必需用EXTERN指令對(duì)子程序聲明,格式如下:

      EXTERN NAME(TYP1, TYP2, …)

      NAME:子程序名稱(chēng)

      TYP1:參數(shù)1類(lèi)型,

      TYP2:參數(shù)2類(lèi)型,

      聲明子程序時(shí),參數(shù)類(lèi)型和順序都必須與定義時(shí)一致,每個(gè)參數(shù)類(lèi)型都必須填寫(xiě),不能省略。

      注意:此處只有參數(shù)類(lèi)型,沒(méi)有參數(shù)名稱(chēng)。

      舉例:

      N10 EXTERN KONTUR(REAL, REAL);聲明子程序

      N20 DEF REAL LENGTH,W

      N30 LENGTH=10.18

      N40 W=3.29

      N100 KONTUR(LENGTH, W) ;調(diào)用子程序

      N200 M30

      在調(diào)用子程序時(shí),參數(shù)類(lèi)型和傳送的順序都必須與子程序定義時(shí)PROC語(yǔ)句中一致。但參數(shù)名稱(chēng)不一定與子程序定義時(shí)一樣,這里只是把主程序中的相關(guān)數(shù)值(或地址)傳遞給子程序,與參數(shù)名稱(chēng)無(wú)關(guān)。

      3 應(yīng)用

      在汽輪機(jī)蒸汽閥門(mén)中,有很多大螺距的鋸齒形螺紋(圖2),因螺距太大,無(wú)法使用普通的螺紋加工方式(車(chē)削或銑削)加工。為此專(zhuān)門(mén)開(kāi)發(fā)出加工大尺寸鋸齒形螺紋的新技術(shù)解決了大尺寸螺紋的加工,參數(shù)見(jiàn)附表。

      圖2 鋸齒形螺紋結(jié)構(gòu)

      附表

      加工鋸齒形螺紋,主要采用分層切削,利用數(shù)控程序控制螺紋截面輪廓,采用普通菱形車(chē)刀多次車(chē)削,最終加工出符合圖樣要求的螺紋(見(jiàn)圖3)。

      圖3 螺紋加工示意

      因螺紋截面輪廓復(fù)雜,其精度和表面粗糙度要求較高。為了提高工作效率和便于編制數(shù)控程序,把整個(gè)加工過(guò)程分解成四部分:粗加工、精加工、圓角加工和倒角加工。粗加工以去除大部分多余材料為主要目的,在機(jī)床和刀具滿足要求的情況下盡可能地加大切削量。但在整個(gè)切削過(guò)程中,每刀的切削狀況不盡相同(比如每層的初始進(jìn)刀和后續(xù)切削工作狀況差別很大),這就要在加工過(guò)程中對(duì)其計(jì)算,調(diào)整切削參數(shù),以使其切削量盡量均衡。精加工和圓角、倒角加工過(guò)程中,精度和表面粗糙度為關(guān)注要點(diǎn)。刀尖圓弧對(duì)精度和表面粗糙度的影響尤為重要。這就要根據(jù)刀尖所處的位置對(duì)刀尖圓弧的影響進(jìn)行補(bǔ)償。以刀尖圓弧對(duì)加工輪廓的影響為例(見(jiàn)圖4):P點(diǎn)為刀具對(duì)刀零點(diǎn),很顯然,刀具切削點(diǎn)與P點(diǎn)不重合,并且其相對(duì)位置關(guān)系隨著切削點(diǎn)的變化在不斷變化。此處圓弧在空間為一螺旋曲面,切削原理與車(chē)圓弧不同,因此不能用G41(或G42)刀尖半徑補(bǔ)償。必須在程序中對(duì)P點(diǎn)和刀具切削點(diǎn)相對(duì)位置進(jìn)行計(jì)算,根據(jù)刀具切削點(diǎn)位置計(jì)算出P點(diǎn)位置,以便程序控制刀具路徑。

      圖4 刀尖圓弧對(duì)加工輪廓的影響

      因此,在此數(shù)控程序中,有大量的尺寸參數(shù)和加工參數(shù)參與運(yùn)算,并且要運(yùn)用大量的循環(huán)、判斷語(yǔ)句,整個(gè)程序非常復(fù)雜。如果采用普通編程方法,只要螺紋尺寸有所改變,或者加工方式和加工參數(shù)有所改變,程序中大量數(shù)據(jù)都必須相應(yīng)改變。為確保程序正確,在程序編制完成后需試加工,驗(yàn)證程序正確后才能應(yīng)用于生產(chǎn)。

      產(chǎn)品中涉及此類(lèi)螺紋規(guī)格繁多,螺距從5~20mm,螺紋直徑從210~1 000mm不等,既有外螺紋又有內(nèi)螺紋,加工方法無(wú)法統(tǒng)一,車(chē)削加工和鏜削加工都會(huì)用到。采用普通方法編程,程序?qū)⑦_(dá)幾十種之多。如對(duì)每種程序都進(jìn)行驗(yàn)證,成本將非常高。結(jié)果是不但工作量大,不便于加工參數(shù)的調(diào)試,而且極易出錯(cuò)。因此采用普通方法編制的程序難以維護(hù),沒(méi)有通用性。采用普通的子程序技術(shù),雖然能解決普通編程方法存在的一些問(wèn)題,但對(duì)于主程序和子程序之間存在大量的參數(shù)傳遞的情況,采用普通子程序技術(shù)也存在較大困難。

      采用帶參數(shù)的子程序技術(shù),把螺紋所有幾何尺寸和工藝參數(shù)提取出來(lái),作為螺紋子程序的參數(shù),增加相應(yīng)參數(shù)區(qū)分內(nèi)外螺紋、加工方法(直徑編程或半徑編程等)。通過(guò)這種編程方法可以把復(fù)雜的程序封裝在子程序里,在主程序調(diào)用該子程序時(shí)填寫(xiě)相應(yīng)參數(shù),即可方便地編制出各種規(guī)格的螺紋加工程序。以下以螺紋的粗加工子程序加以說(shuō)明。

      3.1 螺紋粗加工子程序

      %_N_rough_SPF

      proc rough(real U_Dim,… ,int U_FS) SAVE DISPLOF;子程序定義

      def int U_CengShu;變量定義

      ……

      def real U_Feed

      IF (U_FS<>-2)and(U_FS<>-1)and(U_FS<>1)and(U_FS<>2);參數(shù)檢查

      MSG("U_FS 參數(shù)賦值錯(cuò)誤")

      GOTOF MARK_1

      ENDIF

      ……

      U_ThStart=U_ThStart-U_zFinallow;數(shù)據(jù)運(yùn)算

      ……

      U_CengShu=U_StartDNum

      Begin_0:;層切循環(huán)

      U_N=U_Width/U_zFeed

      ……

      MSG("正在切削第"<

      U_CengShu=U_CengShu+1

      Begin_1:;每層開(kāi)始切口循環(huán)

      U_Depth=U_Depth+U_pDepth

      ……

      REPEAT Begin_1 P=U_xNum

      IF U_Num<0 GOTOF MARKE_0

      Begin_2:;每層切削循環(huán),包含運(yùn)算、選擇執(zhí)行語(yǔ)句

      U_ThStart1=U_ThStart1-U_Feed

      ……

      REPEAT Begin_2 P=U_Num

      MARKE_0:

      ……

      MSG()

      MARK_1:

      M17

      3.2 子程序說(shuō)明

      rough(real U_Dim,…,int U_FS)

      U_Dim:螺紋底孔(外圓)直徑

      ……

      U_FS:加工方式 -2:直徑編程,內(nèi)螺紋;-1:半徑編程,內(nèi)螺紋;1:半徑編程,外螺紋;2:直徑編程,外螺紋

      在子程序后應(yīng)附該程序的使用說(shuō)明以及特殊要求(如參數(shù)賦值范圍等),以便其他人在不用了解子程序內(nèi)部詳細(xì)信息的情況下就能直接調(diào)用,便于數(shù)控程序的共享。

      3.3 主程序

      %_N_NS650x20_MPF

      Extern rough(real,real,real,real,real,real,real,real,real,int,int,real,real,real,real,int,int);子程序聲明,如沒(méi)有此聲明,子程序不能被正確調(diào)用

      G90 G18

      G54 G00 T1 D1

      X800 Z100

      M3 S15

      rough (650,20,0,-250,10.5,15.5,45.25,20,10,20,1,0.2,0,0.2,0.9,5,2) ;粗加工子程序調(diào)用

      G00 X800 Z100

      M05

      M30

      4 其他常用指令

      為了避免因調(diào)用子程序?qū)е履B(tài)G功能值的改變,導(dǎo)致后續(xù)程序產(chǎn)生不可預(yù)知的錯(cuò)誤,應(yīng)在PROC指令結(jié)束處添加SAVE指令。此指令的工作過(guò)程是在調(diào)用子程序前,將G功能的值暫時(shí)保存起來(lái)。調(diào)用子程序結(jié)束后,返回主程序(或調(diào)用此子程序的子程序)后,將G功能的值恢復(fù)到調(diào)用前的狀態(tài)。比如子程序中用G90或G91改變了絕對(duì)坐標(biāo)或相對(duì)坐標(biāo)狀態(tài)時(shí),不用SAVE指令,子程序結(jié)束返回主程序后將會(huì)出現(xiàn)錯(cuò)誤。

      在子程序經(jīng)過(guò)調(diào)試、驗(yàn)證無(wú)誤后,可在PROC指令結(jié)束處添加DISPLOF指令,使程序在運(yùn)行時(shí)不顯示子程序內(nèi)部的程序段。這可使加工程序在運(yùn)行時(shí)操作界面顯得非常簡(jiǎn)潔(見(jiàn)圖5)。

      加工過(guò)程中的重要信息可通過(guò)MSG指令在屏幕上方顯示出來(lái),適當(dāng)?shù)厥褂么酥噶羁墒共僮魅藛T及時(shí)、準(zhǔn)確地了解加工狀態(tài)和加工進(jìn)度,增強(qiáng)程序執(zhí)行的透明度。如上述例子中顯示加工到第幾層。

      圖5 程序運(yùn)行界面

      5 結(jié)論

      通過(guò)帶參數(shù)的子程序技術(shù),可以實(shí)現(xiàn)典型結(jié)構(gòu)加工的標(biāo)準(zhǔn)化、模塊化,方便程序的修改和優(yōu)化。編程人員開(kāi)發(fā)出子程序,編寫(xiě)出此子程序的使用說(shuō)明,其他人就可以根據(jù)說(shuō)明直接使用此子程序,只需要填寫(xiě)子程序需要的參數(shù),而不需了解子程序的工作原理及工作過(guò)程。從而避免了編程錯(cuò)誤,降低程序測(cè)試成本,降低了編程人員的工作強(qiáng)度,大大提高工作效率。

      猜你喜歡
      主程序子程序調(diào)用
      淺談數(shù)控銑削技術(shù)代碼程序的嵌套方式研究
      核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
      電控冰箱軟件模塊化設(shè)計(jì)
      日用電器(2019年12期)2019-02-26 01:53:06
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      時(shí)光倒流 換回PotPlayer老圖標(biāo)
      基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
      淺談子程序在數(shù)控車(chē)編程中的應(yīng)用
      子程序在數(shù)控車(chē)加工槽中的應(yīng)用探索
      西門(mén)子840D系統(tǒng)JOG模式下PLC調(diào)用并執(zhí)行NC程序
      利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
      周宁县| 冷水江市| 东源县| 大姚县| 廊坊市| 灵璧县| 四平市| 铁力市| 曲松县| 额敏县| 永寿县| 青岛市| 石景山区| 那坡县| 长垣县| 丰都县| 亳州市| 上高县| 航空| 仪陇县| 长汀县| 翁牛特旗| 抚松县| 华亭县| 读书| 定安县| 龙口市| 宁明县| 聊城市| 台北市| 大港区| 邹平县| 屯昌县| 富宁县| 定日县| 永康市| 阿图什市| 利辛县| 霍林郭勒市| 收藏| 甘南县|