亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于發(fā)那科C語(yǔ)言執(zhí)行器二次開(kāi)發(fā)應(yīng)用

        2022-01-07 11:15:32
        精密制造與自動(dòng)化 2021年4期
        關(guān)鍵詞:用戶(hù)

        薛 剛

        (上海機(jī)床廠有限公司 上海 200093)

        目前,隨著國(guó)內(nèi)外數(shù)控系統(tǒng)在柔性、可靠性和開(kāi)放性等方面的飛速發(fā)展,許多理論和技術(shù)問(wèn)題得到了較好的解決,數(shù)控機(jī)床可開(kāi)發(fā)成為智能機(jī)床,滿(mǎn)足用戶(hù)的個(gè)性化需求。為了適應(yīng)個(gè)性化市場(chǎng)的需要,數(shù)控系統(tǒng)向著開(kāi)放式結(jié)構(gòu)發(fā)展。發(fā)那科公司提供的 FANUC Series 0i-TF 數(shù)控系統(tǒng)沒(méi)有專(zhuān)門(mén)針對(duì)磨床的控制界面,但它提供了 C語(yǔ)言執(zhí)行器功能,用戶(hù)可以通過(guò)二次開(kāi)發(fā)把自己的功能模塊集成到系統(tǒng)中去,滿(mǎn)足定制化的需求。

        發(fā)那科的 C語(yǔ)言執(zhí)行器可以將機(jī)床制造商的獨(dú)有畫(huà)面編入發(fā)那科系統(tǒng),自定義 CNC系統(tǒng)軟件的顯示和操作系統(tǒng)功能??梢杂脩?yīng)用程序編寫(xiě)的畫(huà)面置換 CNC的任意畫(huà)面。和編寫(xiě)普通計(jì)算機(jī)程序相同,可以用一般的C語(yǔ)言來(lái)編寫(xiě)顯示和操作系統(tǒng)的應(yīng)用程序,并將執(zhí)行文件編入CNC。將在計(jì)算機(jī)上編譯的程序通過(guò)存儲(chǔ)卡保存到CNC裝置的Flash ROM,在啟動(dòng)CNC時(shí),被讀入內(nèi)存并在C語(yǔ)言執(zhí)行器上執(zhí)行,流程開(kāi)發(fā)流程如圖1所示。

        圖1 軟件開(kāi)發(fā)流程

        1 實(shí)施

        功能: Macro executor + C Language Executor

        Custom software size

        C Language Executor additional SRAM

        參數(shù): 8661 變量區(qū)容量(一般設(shè)置為:59)

        8662 SRAM磁盤(pán)容量(一般設(shè)置為:4)

        8781 C執(zhí)行器使用的DRAM容量(一般設(shè)置為:96)

        在發(fā)那科C語(yǔ)言執(zhí)行器功能包里已經(jīng)搭好了應(yīng)用程序的框架結(jié)構(gòu),應(yīng)用程序主要由5個(gè)獨(dú)立任務(wù)構(gòu)成,如圖2所示。

        圖2 任務(wù)框架

        (A)主任務(wù)(tsk1main.c)

        主任務(wù)進(jìn)行畫(huà)面顯示、鍵輸入、CNC數(shù)據(jù)的讀寫(xiě)等幾乎所有的處理??梢允褂盟谐绦驇?kù)的功能。

        (B)通訊任務(wù)(tsk2main.c)

        通訊任務(wù)通常在和主任務(wù)獨(dú)立進(jìn)行,監(jiān)視周期啟動(dòng)的各種狀態(tài),閱讀機(jī)/穿孔機(jī)的相關(guān)處理。

        (C)報(bào)警任務(wù)(tsk3main.c)

        通常周期性啟動(dòng)報(bào)警任務(wù),進(jìn)行各種狀態(tài)的監(jiān)視等。

        (D)窗口任務(wù)(tsk4main.c)

        在任意畫(huà)面上進(jìn)行窗口顯示。

        (E)高級(jí)任務(wù)(tsk5main.c)

        獨(dú)立的按一定周期執(zhí)行任務(wù),實(shí)時(shí)進(jìn)行高優(yōu)先級(jí)的處理和快速數(shù)據(jù)監(jiān)視處理等。

        主任務(wù)只在用戶(hù)畫(huà)面顯示過(guò)程中執(zhí)行。報(bào)警任務(wù)和通信任務(wù)都與顯示畫(huà)面無(wú)關(guān),也就是說(shuō)可以在后臺(tái)執(zhí)行。另外,應(yīng)用程序可以只有一個(gè)任務(wù)構(gòu)成,即主任務(wù)。

        任務(wù)之間的數(shù)據(jù)存取

        在進(jìn)行其他任務(wù)和數(shù)據(jù)之間的通信時(shí),使用任務(wù)之間的公共變量(dramver.c和sramver.c)中定義,作為任務(wù)之間的公共變量配置在任務(wù)之間的公共內(nèi)存里,如圖3所示。

        圖3 變量

        1.1 主任務(wù)(task1main.c)

        task1miain.c是整個(gè)C語(yǔ)言執(zhí)行器的主程序,程序會(huì)從task1main開(kāi)始運(yùn)行。task1main.c中的程序當(dāng)進(jìn)入用戶(hù)畫(huà)面中才開(kāi)始運(yùn)行,程序流程見(jiàn)圖4。

        圖4 程序流程

        1)設(shè)定用戶(hù)畫(huà)面

        登陸用戶(hù)畫(huà)面號(hào):設(shè)定CRT模式:

        設(shè)定 CNC畫(huà)面和用戶(hù)畫(huà)面切換方式:設(shè)定調(diào)色板:

        打開(kāi)顯示(CRT_OPEN):

        設(shè)定視頻模式畫(huà)面顯示

        關(guān)閉顯示(CRT_CLOSE):

        /* 用戶(hù)畫(huà)面設(shè)定 */

        crt_setuserscrn( scrn_tbl_size(crt_table),crt_table);

        2)登陸用戶(hù)畫(huà)面號(hào)函數(shù)

        在主任務(wù)中至少登陸一個(gè)用戶(hù)畫(huà)面(即使不需要 C語(yǔ)言執(zhí)行器的用戶(hù)畫(huà)面),如果不指定用戶(hù)畫(huà)面就不能再次從 CNC畫(huà)面返回用戶(hù)畫(huà)面。可以置換傳統(tǒng)的CNC畫(huà)面,也可以使用 C語(yǔ)言執(zhí)行器專(zhuān)用畫(huà)面。

        crt_cncscrn(CRT_POS_ALL) ; // 設(shè)定用戶(hù)畫(huà)面返回方式。

        /* 設(shè)定屏幕顯示方式 */

        _setvideomode( _VRES16COLOR ); // 16色,圖像640×480,文字80×30

        /* 設(shè)定用戶(hù)畫(huà)面到CNC畫(huà)面切換方式 */

        crt_setswt( CRT_SWT_GREN ) ; // 設(shè)定是否可切換、報(bào)警時(shí)是否切換,是否使用MDI鍵切換等

        3)設(shè)定CNC畫(huà)面和用戶(hù)畫(huà)面的切換方式

        Bit 0 0:允許從用戶(hù)畫(huà)面向CNC畫(huà)面切換 1;禁止從用戶(hù)畫(huà)面向CNC畫(huà)面切換(CRT_SWT_DIS)

        Bit 2 0:在圖形顯示打開(kāi)過(guò)程中禁止畫(huà)面切換1:在圖形顯示打開(kāi)過(guò)程中可以畫(huà)面切換(CRT_SWT_GREN);

        Bit 3 CNC畫(huà)面發(fā)生報(bào)警時(shí),是否自動(dòng)向報(bào)警畫(huà)面切換0:根據(jù)通常CNC的設(shè)定(參數(shù)3111#7);1:基于用戶(hù)畫(huà)面(參數(shù)8650#1)(CRT_SWT_ACNC)

        Bit 4 CNC軟件對(duì)MDI面板的功能鍵 0:進(jìn)行通常讀取1:不能進(jìn)行讀?。–NC軟鍵側(cè)不能進(jìn)行畫(huà)面切換)(CRT_SWT_MFKY)。

        在發(fā)那科基礎(chǔ)框架下,還需要自己編寫(xiě)擴(kuò)展一些輔助功能框架。運(yùn)用這些功能來(lái)進(jìn)行畫(huà)面的處理。

        1.2 界面顯示模塊(win.c)

        win.c中的程序主要負(fù)責(zé)顯示界面,一些非動(dòng)態(tài)的圖像以及文字的顯示。

        如上圖所示,添加了一個(gè)win_test函數(shù)的定義,在其中定義了win_test這個(gè)函數(shù)中包含的內(nèi)容。

        Voidwin_test(void)

        { curWIN->WinFunc=win_test;//設(shè)定當(dāng)前畫(huà)面的函數(shù)為win_test。

        curWIN->RefreshFunc=vawin_test;//設(shè)定當(dāng)前畫(huà)面的變量畫(huà)面為vawin_test。

        curWIN->InputFunc=0;//設(shè)定當(dāng)前輸入函數(shù)為0,0既是不調(diào)用輸入函數(shù)。

        curWIN->SpecialCurs=0;//判斷是否使用特殊光標(biāo)。

        curWIN->LL_index=0x01;//函數(shù)畫(huà)面所在的軟按鍵層次。

        curWIN->WinKey=SOFT_F1;//函數(shù)調(diào)用使用的軟按鍵。

        element_background();//插入背景

        dlg_cncstate();//插入NC非動(dòng)態(tài)狀態(tài)顯示

        1.3 動(dòng)態(tài)界面模塊(vawin.c)

        vawin.c中主要是負(fù)責(zé)顯示界面中的一些動(dòng)態(tài)的變量,如宏變量顯示等。

        通過(guò)上述兩步,畫(huà)面已經(jīng)可以顯示出一個(gè)畫(huà)面的框架,現(xiàn)在需要將他們添加入軟件中,便可以通過(guò)軟件調(diào)用出我們所制作的畫(huà)面。

        1.4 系統(tǒng)變量模塊(vadailog.c)

        vadailog.c文件中主要包括了一些宏變量等變量的顯示,應(yīng)為宏變量不同文字顯示,需要根據(jù)宏變量的變化適時(shí)刷新。

        void vagrinding_GRHMI(short cys,short cxs)//設(shè)置畫(huà)面變量顯示

        1.5 按鍵模塊(softkey.c)

        softkey.c 中主要是包括了軟按鍵的排序,畫(huà)面按鈕的功能

        打開(kāi)softkey.c文件, 出現(xiàn)如下顯示:

        void ll_init0(void);

        void ll_init1(void);

        void ll_init2(void);

        void ll_init3(void);

        ……

        void ll_init12(void);

        如上顯示的函數(shù)中使畫(huà)面的軟件函數(shù) void ll_init1(void)- void ll_init12(void);為不同的軟件按鈕層次所對(duì)應(yīng)的函數(shù),每一個(gè)函數(shù)對(duì)應(yīng)一個(gè)軟件層。這個(gè)函數(shù)可以添加,也可以直接在函數(shù)中編輯。如下圖中所示的,在 void ll_init1(void)函數(shù)中添加一個(gè)畫(huà)面。一個(gè)畫(huà)面存在10個(gè)軟按鍵,我們選擇一個(gè)空著的軟按鍵作為該畫(huà)面選擇的按鍵。

        把win_test畫(huà)面插入在SOFT_F6按鍵,對(duì)應(yīng)的畫(huà)面上的第6個(gè)軟按鍵。

        temp=(LLLnode*)malloc(sizeof(LLLnode));//這里為一個(gè)temp零時(shí)的結(jié)構(gòu)體聲明空間。

        temp->ll_next=0;//

        temp->ll_WinKey=SOFT_F6;//畫(huà)面的按鍵編號(hào)為F6。

        temp->ExeFunc=win_test;//選擇該畫(huà)面的運(yùn)行函數(shù),在這里是我們的畫(huà)面函數(shù),win_test。

        temp->IndexFunc=0;//頁(yè)面跳轉(zhuǎn)選擇,這里為0,可以填寫(xiě)一個(gè)。

        temp->ll_index=0x01;//當(dāng)前頁(yè)面軟件所屬的層次。

        temq->ll_next=temp;

        temq=temp;

        通過(guò)上述的過(guò)程,win_test就可以被第一層次的第6個(gè)軟按鍵所調(diào)用。然后,可以編輯軟按鍵所顯示的字符或者圖形。

        1.6 輸入?yún)^(qū)模塊(input.c)

        主要是畫(huà)面中的輸入設(shè)定,在 input中設(shè)定輸入?yún)?shù)的宏變量值,輸入方式等。

        打開(kāi)input.c文件,編輯輸入函數(shù),如下所示:

        void input_grinding(void)

        {struct odbst status;// 聲明一個(gè)狀態(tài)結(jié)構(gòu)體

        double MacroValue=0;// 聲明一個(gè)雙字型變量unsigned short nMacroNum=0;// 聲明一個(gè)無(wú)符號(hào)短型變量

        cnc_statinfo(&status);//讀取系統(tǒng)狀態(tài)到status中

        if(status.aut==0 || status.emergency==0 )//判斷當(dāng)前狀態(tài)

        2 編譯軟件

        WinRiver Compiler

        作用:

        源文件到最終文件生成的過(guò)程由 WinRiver Compiler直接編譯完成。

        MakeFile:

        編譯所需要的相關(guān)內(nèi)容定義都在批處理文件Makefile中,執(zhí)行時(shí)只需輸入nmake.exe命令即可。

        目標(biāo)文件:最終文件為存儲(chǔ)卡文件格式(.mem)

        實(shí)際使用:在 NCguide中,復(fù)制 DLL文件到NCguide文件夾;在實(shí)際CNC系統(tǒng)時(shí),用CF卡復(fù)制MEM文件到系統(tǒng)F-ROM,顯示界面效果如圖5所示。

        圖5 界面樣式

        3 結(jié)語(yǔ)

        利用 C語(yǔ)言執(zhí)行器提供的順序控制把用C語(yǔ)言設(shè)計(jì)的人機(jī)界面嵌入到C語(yǔ)言執(zhí)行器系統(tǒng)中, 最終把特有的磨床功能模塊集成到C語(yǔ)言執(zhí)行器系統(tǒng)中,形成了適合于磨床的操作系統(tǒng)。操作人員可以很方便地選擇加工程序,并進(jìn)行參數(shù)的編輯,而無(wú)須修改工件加工程序,還可以隨時(shí)得到加工過(guò)程中的各種狀態(tài)信息,實(shí)現(xiàn)數(shù)控機(jī)床的監(jiān)控和操作。這樣,不僅擴(kuò)展了數(shù)控系統(tǒng)的使用范圍,簡(jiǎn)化了操作,提高了勞動(dòng)生產(chǎn)率, 而且還可`以為機(jī)床的維護(hù)提供大量的有價(jià)值的參考信息。

        猜你喜歡
        用戶(hù)
        雅閣國(guó)內(nèi)用戶(hù)交付突破300萬(wàn)輛
        您撥打的用戶(hù)已戀愛(ài),請(qǐng)稍后再哭
        關(guān)注用戶(hù)
        關(guān)注用戶(hù)
        兩新黨建新媒體用戶(hù)與全網(wǎng)新媒體用戶(hù)之間有何差別
        關(guān)注用戶(hù)
        關(guān)注用戶(hù)
        挖掘用戶(hù)需求尖端科技應(yīng)用
        Camera360:拍出5億用戶(hù)
        100萬(wàn)用戶(hù)
        久久不见久久见www日本网| 午夜无码片在线观看影院y| 一个人看的在线播放视频| 亚洲国产熟女精品传媒| 亚洲国产免费一区二区| 97中文字幕精品一区二区三区| 国产精品一卡二卡三卡| 曝光无码有码视频专区| 国产爆乳无码一区二区在线 | 成人在线免费视频亚洲| 熟女人妻中文字幕一区| 99久久精品人妻少妇一| 亚洲日韩av一区二区三区中文| 亚洲妓女综合网99| 国产福利小视频在线观看| 日韩精品成人一区二区三区| 国产午夜激无码av毛片不卡| 天天噜日日噜狠狠噜免费| 亚洲网站地址一地址二| 国产香蕉一区二区三区| 亚洲高清中文字幕视频| 日韩吃奶摸下aa片免费观看| 无码日韩AⅤ一区二区三区| 韩国女主播一区二区三区在线观看 | аⅴ资源天堂资源库在线| av无码av在线a∨天堂app| 国产风骚主播视频一区二区| 国内嫩模自拍诱惑免费视频 | 伊人色综合九久久天天蜜桃| 亚洲线精品一区二区三区八戒| 青青草视频网站免费看| 无码喷潮a片无码高潮| 久久无码av三级| AV无码人妻一区二区三区牛牛| 日本一本一道久久香蕉男人的天堂 | 国产精品 高清 尿 小便 嘘嘘| 国产一区二区三区杨幂| 黄片免费观看视频播放| 国产三级在线观看完整版| 麻豆高清免费国产一区| 亚洲av午夜成人片精品|