综合狠狠开心-丝袜人妻无码中文字幕综合网-老司机午夜精品视频资源-国产精品麻豆成人av在线观看-色偷偷亚洲男人的天堂-成人短视频在线观看-www一区二区三区-www.欧美成-2019毛片-中文av岛国无码免费播放-超碰蜜桃-五月婷之久久综合丝袜美腿-韩国三级hd中文字幕-久久精品无码一区二区日韩av-日本熟妇浓毛hdsex

海天精工機床有限公司 海天精工博客

基于PMAC的數控程序的實現

在FANUC-0I精工系統仿真界面中,某些G、M、T等代碼需要轉換成可供PMAC識別的精工代碼。基于PMAC加工中心精工系統利用VB6.0開發精工G代碼編譯程序處理模塊,主要用于FANUC-0I精工系統仿真界面中G代碼的轉換,現以基于PMAC的宏程序編程在精工機床上的應用為例進行介紹。1.FANUC系統宏程序FANUC系統提供兩種用戶宏程序,即用戶宏程序功能A和用戶宏程序功能B[31]。由于用戶宏程序功能A的宏程序需要使用G65Hm格式的宏指令來表達各種數學運算和邏輯關系,極不直觀,且可讀性非常差,因而導致在實際工作中很少人使用它[31]。由于絕大部分的FANUC系統都支持用戶宏程序功能B,因而重點介紹用戶宏程序功能B的相關知識。1.1變量及賦值格式:#i=#j+#k;FANNC系統宏程序的變量是用變量符號#和后面的變量號指定,變量號是用以區分各變量。=就是變量的賦值指令,=左邊是被賦值的變量,=右邊是一個數值表達式[32]。表達式中包含的運算符有:+、-、*、/、[]以及一些數學運算函數,也可以包括變量。常用的數學運算函數有:正弦SIN[]、正切TAN[]、平方根SQRT[]、余弦COS[]、反正切ATAN[]、或OR、反余弦ACOS[]、與AND[]、反正弦ASIN[]、異或XOR和絕對值函數ABS[]等。1.2無條件轉移GOTO語句格式:GOTOn;n是目標程序段的標號,本指令將無條件地轉移到標有順序號(行號)n的程序段[32];1.3條件轉移指令IF語句格式1:IF[<條件表達式>]GOTOn;格式2:IF[<條件表達式>]THEN;[]中是一個條件表達式,條件表達式中可以包含的運算符有:等于EQ、不等于NE、大于GT、大于等于GE、小于LT、小于等于LE[33]。如果[]中的條件表達式成立,格式1中程序將轉移(跳轉)到標有順序號(行號)n的程序段,否則,順序執行下一條指令,如圖3-3所示[33]。如果[]中的條件表達式成立,格式2中程序將執行預先指定的宏程序語句,而且只執行一個宏程序語句。1.4循環指令WHILE格式:WHILE[<條件表達式>]DOm……ENDm[]里是程序執行的判斷條件。DO與END命令后的m是循環編號;二者之間的程序是被循環執行的語句,其中允許嵌套另一個WHILE循環。如果[]中的判斷條件成立,DO與END命令之間的程序會不斷運行,否則,將運行END命令后面的程序,如圖3-4所示。1.5嵌套格式1:D0循環可以多重嵌套,如圖3-5所示。格式2:條件轉移可以跳出循環的外面,如圖3-6所示。2.基于PMAC的精工宏程序的實現在基于PMAC構成的精工系統中,PMAC將G代碼作為特殊子程序來調用。例如在運動程序中遇到G65代碼,它將認為這是調用子程序Program1000中N65000程序段。為了增加程序的可讀性,我們采用GOSUB{數值}命令,此命令使運動程序跳轉型到同一運動程序段中{數值}指定的行號(N或0),當程序遇到GOSUB后的RETURN命令后馬上返回。CALL{數值}命令與此相似,只是它可以跳轉到另一個運動程序,比如CALL7將執行PROG7并返回,可用于用戶宏程序功能A的宏程序G65(或G66)。用戶宏程序功能A的宏程序的調用格式是G65(或G66)P_L_[參數],其中P值為宏程序的程序號,L為調用次數[34]。FANUC精工系統的宏程序在PMAC上無法實現直接運行,因此需要將宏程序轉化成PMAC能識別的代碼格式。2.1進行指令替換,PMAC能識別的加工程序指令和FANUC機床的編程語言稍有差別。為適應機床操作人員的習慣,需要將機床操作人員輸入的程序中的某些指令替換成PMAC能識別的指令,轉換后再進行下載、運行。例如“EQ”需要替換成“=”,“#”需要替換成“vall”,這一過程通過VB軟件來進行,程序代碼如下:stra1=Replace(stra1,"EQ","=",1,-1,0)stra1=Replace(stra1,"#","vall",1,-1,0)另外還有一些不能通過替換直接修改的指令,如循環指令WHILE,在FANUC機床中,用法為:WHILE[<條件表達式>]DOm……ENDm在PMAC中應用需要改為:WHILE[<條件表達式>]..….ENDWHILE故需要vb軟件將DOm刪除,將ENDm替換為ENDWHILE,程序的嵌套通過距離最近的的未配對的WHILE和ENDWHILE來實現。2.2增加程序的可讀性PMAC中參數的存儲變量都是P,Q等固定字母加數字組成的,例如p201,因此變量名稱沒有特定含義,加工程序易讀性較差,VB軟件在進行加工程序處理時可自動在加工程序之前加上定義,增強可讀性,例如定義變量p201為vail:Text2.Text="#defineval1p201"&vbCrLf&Text2.Text為了PMAC能夠識別程序代碼,需要按照PMAC程序代碼格式對程序進行轉換。例如在經過校驗的運動程序開頭添加清空緩沖區指令,把程序號00007轉換為openprog7clear,在程序結尾處加上關閉緩沖區指令’’close”,VB程序代碼如下:t1(0)="definetbuf1"&vbCrLf&"openprog"&zzz&"clear"Text2.Text=t1(0)&Text2.Text&vbCrLf&"close"對于PMAC可以直接識別的代碼,把原程序代碼進行復制即可。例如G、M、T、D代碼,+、-、*、/運算代碼,SIN()、COS〇等數學運算函數代碼,X、Y、Z等代碼[2]。[1]VB軟件界面設計為對上述構想進行程序驗證,采用VB軟件編寫精工界面。左上角的窗口用來給操作人員輸入程序。右上角的窗口用來顯示轉換后的PMAC能識別的程序。點擊“宏程序橢圓”轉換按鈕,在PMAC程序窗口出現轉換后的結果,即PMAC可識別的控制卡代碼[35]。如圖3-7所示。下面列出實現宏程序功能的關鍵VB源代碼:PrivateSub宏程序橢圓_Click()stra1=Text1(0).Texthcxpd=0If(InStr(stra1,"#"))Thenhcxpd=1stra1=Replace(stra1,"#","vall",1,-1,0)……stra1=Replace(stra1,"]",")",1,-1,0)t1=Split(stra1,";")t2=Split(t1(0),"")n=t2(1)cxh=Replace(n,"0","",1,-1,0)zzz=Replace(n,"0","",1,-1,0)t1(0)="definetbuf1"&vbCrLf&"openprog"&zzz&"clear"Text2.Text=""Fori=1To(UBound(t1)-1)t1(i)=Mid(t1(i),8,255)Text2.Text=Text2.Text&vbCrLf&t1(i)NextiText2.Text=t1(0)&Text2.Text&vbCrLf&"close"Ifhcxpd=1ThenFori=1To10Text2.Text="#defineval"&i&"p20"&i-1&vbCrLf&Text2.TextNextiFori=11To12Text2.Text="#defineval"&i&"p2"&i-1&vbCrLf&Text2.TextNextiEndIfEndSub2.4將宏程序下載到PMAC中和運行程序下載PMAC程序,需要先將轉換后的G代碼程序存入文件中,文件后綴pmc,之后通過PmacDownloadA指令將上述程序下載到PMAC中,“Download代碼”按鈕可以將轉換后的程序下載到PMAC中。點擊“運行”按鈕,通過PmacGetResponseA指令將運動命令下載到PMAC中,即可實現PMAC的宏程序加工。其中關鍵的VB源代碼如下:retum_value=PmacGetResponseA(DeviceNumber,response,255,”#lb”&cxh&”r”)其中“cxh”為程序號。本文由海天精工整理發表文章均來自網絡僅供學習參考,轉載請注明!相關內容可查閱:主頁(加工中心)、產品頁(CNC加工中心)、文章頁(精工加工中心)本文采摘自“基于PMAC的加工中心開放式精工系統研究”,因為編輯困難導致有些函數、表格、圖片、內容無法顯示,有需要者可以在網絡中查找相關文章!
留言列表
發表留言
◎歡迎參與討論,請在這里發表您的看法、交流您的觀點。