版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998編輯器軟件說明編輯器軟件說明2嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998激活編輯器激活編輯器開始開始ipos-compiler編輯器編輯器3嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998編輯器程序窗口說明編輯器程序窗口說明菜單欄菜單欄工具欄工具欄程序窗口程序窗口狀態(tài)欄狀態(tài)欄目錄欄目錄欄4嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998工具欄和菜單欄工具欄和菜單欄5嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/199
2、8創(chuàng)建新項(xiàng)目創(chuàng)建新項(xiàng)目點(diǎn)擊點(diǎn)擊按鈕按鈕-創(chuàng)建新項(xiàng)目創(chuàng)建新項(xiàng)目對話框用于定義對話框用于定義ipos程序的基本結(jié)構(gòu)。程序的基本結(jié)構(gòu)。初始部分初始部分任務(wù)任務(wù)2中斷響應(yīng)中斷響應(yīng)6嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998程序編輯器說明程序編輯器說明task2程序部分程序部分初始程序部分初始程序部分激活激活task2程序程序主程序部分(主程序部分( task1)7嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998比較功能比較功能點(diǎn)擊點(diǎn)擊按鈕按鈕-編輯器內(nèi)程序和控制器內(nèi)程序比較編輯器內(nèi)程序和控制器內(nèi)程序比較控制器內(nèi)程序和編輯器內(nèi)程序不相同控制器內(nèi)程
3、序和編輯器內(nèi)程序不相同控制器內(nèi)程序和編輯器內(nèi)程序相同控制器內(nèi)程序和編輯器內(nèi)程序相同8嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998編譯程序編譯程序點(diǎn)擊點(diǎn)擊按鈕按鈕-編譯程序編譯程序提示編譯成功或不成功提示編譯成功或不成功程序掃描時(shí)間程序掃描時(shí)間程序占內(nèi)存的程序占內(nèi)存的比例比例9嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998編譯并下載程序編譯并下載程序點(diǎn)擊點(diǎn)擊按鈕按鈕-編譯并下載程序編譯并下載程序提示編譯成功或不成功提示編譯成功或不成功10嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998插入指令行插入指令行點(diǎn)擊點(diǎn)擊
4、按鈕按鈕-插入指令行插入指令行(編輯器提供了標(biāo)準(zhǔn)的輸入方式編輯器提供了標(biāo)準(zhǔn)的輸入方式)c-結(jié)構(gòu)結(jié)構(gòu)系統(tǒng)功能系統(tǒng)功能11嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998運(yùn)行和停止程序運(yùn)行和停止程序點(diǎn)擊點(diǎn)擊按鈕按鈕-運(yùn)行程序運(yùn)行程序點(diǎn)擊點(diǎn)擊按鈕按鈕-停止程序停止程序task2狀態(tài)顯示狀態(tài)顯示task1狀態(tài)顯示狀態(tài)顯示12嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998變量窗口變量窗口選擇下拉菜單選擇下拉菜單-顯示所有的顯示所有的ipos(h1-h511)變量)變量display/all variablesipos變量包括系統(tǒng)變量、全局變量和用戶變
5、量。變量包括系統(tǒng)變量、全局變量和用戶變量。 系統(tǒng)變量為有固定含義變量(系統(tǒng)變量為有固定含義變量(h453-h511)。)。 全局變量為特殊應(yīng)用模塊中指定的變量。全局變量為特殊應(yīng)用模塊中指定的變量。 用戶變量為用戶程序中可任意調(diào)用的變量。用戶變量為用戶程序中可任意調(diào)用的變量。13嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998變量窗口變量窗口選擇下拉菜單選擇下拉菜單-編輯編輯顯示變量顯示變量display/variable watch/edit window選擇變量選擇變量增加顯示變量增加顯示變量刪除顯示變量刪除顯示變量顯示變量區(qū)顯示變量區(qū)所有變量區(qū)所有變量區(qū)14嚴(yán)選內(nèi)
6、容ipos-compiler編輯器編輯器ly 2_e 10/1998選擇顯示方式選擇顯示方式點(diǎn)擊鼠標(biāo)右鍵選擇點(diǎn)擊鼠標(biāo)右鍵選擇顯示方式顯示方式顯示方式:顯示方式: 帶符號的十進(jìn)制帶符號的十進(jìn)制 無符號的十進(jìn)制無符號的十進(jìn)制 十六進(jìn)制十六進(jìn)制 二進(jìn)制二進(jìn)制 ascii代碼代碼15嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998注釋說明注釋說明多行注釋多行注釋 /* . */單行注釋單行注釋 / .單行注釋單行注釋/ 說明:說明:便于用戶編譯和便于用戶編譯和解讀程序。解讀程序。16嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998程序信息程序信息選擇
7、下拉菜單選擇下拉菜單-顯示程序信息顯示程序信息display/program information程序內(nèi)存程序內(nèi)存創(chuàng)建日期創(chuàng)建日期原文件目錄原文件目錄17嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998compilercompiler運(yùn)算指令說明運(yùn)算指令說明18嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998運(yùn)算指令說明運(yùn)算指令說明常用算術(shù)運(yùn)算指令:常用算術(shù)運(yùn)算指令:符號符號格式格式說明說明舉例舉例“+”h= h + h加 加h10=h11+ h12; ;“-”h= h - h減 減h10=h11 - h13; ;“”h= h * h乘 乘
8、h10=h11 * h14; ;“/”h= h / h除 除h10=h11 / h15; ;19嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998運(yùn)算指令說明運(yùn)算指令說明常用邏輯運(yùn)算指令:常用邏輯運(yùn)算指令:符號符號格式格式說明說明舉例舉例“”(條件(條件1)(條件)(條件2)與與“|”(條件(條件1)|(條件(條件2)或或例:例:if (h1=3)&(h2=5) h100=h1+h2 ;如果如果h1等于等于3,并且,并且h2等于等于5時(shí)時(shí)執(zhí)行執(zhí)行h100=h1+h2;例:例:if (h110) | (h25) h100=h1+h2 ;如果如果h1大于大于10,或者,或者
9、h2小于小于5時(shí)時(shí)執(zhí)行執(zhí)行h100=h1+h2;20嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998指令說明指令說明常用位與位邏輯運(yùn)算指令:常用位與位邏輯運(yùn)算指令:符號符號格式格式說明說明舉例舉例“”(操作數(shù)(操作數(shù)1)(操作數(shù))(操作數(shù)2)位和位位和位與與h3=h1h2“|”(操作數(shù)(操作數(shù)1)|(操作數(shù)(操作數(shù)2)位和位位和位或或h3=h1 | h2“”(操作數(shù)(操作數(shù)1)(操作數(shù))(操作數(shù)2)位和位位和位異或異或h3=h1 h2h1-0000,0000,1111,1100h2-0000,0000,0000,0101h3-0000,0000,0000,0100h1
10、-0000,0000,1111,1100h2-0000,0000,0000,0101h3-0000,0000,1111,1101h1-0000,0000,1111,1100h2-0000,0000,0000,0101h3-0000,0000,1111,1001與運(yùn)算與運(yùn)算異或運(yùn)算異或運(yùn)算或運(yùn)算或運(yùn)算21嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998指令說明指令說明常用移位運(yùn)算指令:常用移位運(yùn)算指令:例:例:h3=h1; 4如果如果h1左移左移4位,右側(cè)位,右側(cè) 由由0添滿添滿符號符號格式格式說明說明舉例舉例“”操作數(shù)操作數(shù)左移位數(shù)左移位數(shù)操作數(shù)左移操作數(shù)左移h3=h
11、1”操作數(shù)操作數(shù)右移位數(shù)右移位數(shù)操作數(shù)右移操作數(shù)右移h3=h110h1-0000,0000,1010,0101h3-0000,1010,0101,000022嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998指令說明指令說明常用比較指令:常用比較指令:符號符號格式格式說明說明舉例舉例“”操作數(shù)操作數(shù)1 操作數(shù)操作數(shù)2大于大于“=”操作數(shù)操作數(shù)1 =操作數(shù)操作數(shù)3大于等于大于等于“”操作數(shù)操作數(shù)1 =操作數(shù)操作數(shù)4小于小于“=”操作數(shù)操作數(shù)1 =5) h100=h1+h2 ;如果如果h1等于等于3,并且,并且h2大于等于大于等于5時(shí)時(shí),執(zhí)行執(zhí)行h100=h1+h2;23嚴(yán)
12、選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998compilercompiler結(jié)構(gòu)指令說明結(jié)構(gòu)指令說明24嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998指令說明指令說明- if.else表達(dá):表達(dá):if(條件)(條件) 程序程序1; else 程序程序2; 說明:說明:如果條件滿足,執(zhí)行程序如果條件滿足,執(zhí)行程序1;如果條件不滿足,執(zhí)行程序如果條件不滿足,執(zhí)行程序2。無無 else 分支分支有有 else 分支分支程序塊(無程序塊(無 else 分支)分支)程序塊(有程序塊(有 else 分支)分支)if ( h1 = 3 ) h2 = 1
13、0;if ( h1 = 3 ) h2 = 10;else h2 = 8;if ( h1 3 ) h2 = 10; h3 = 11; if ( h1 3 ) h2 = 9;else h2 = 10; h3 = 11; 例:例:25嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998指令說明指令說明- while表達(dá):表達(dá): while (條件)(條件) 程序;程序; 說明:說明:如果條件滿足,程序循環(huán)執(zhí)行;如果條件滿足,程序循環(huán)執(zhí)行;如果條件不滿足,退出程序;如果條件不滿足,退出程序;例例1:h2 = 0;h1 = 10; while ( h1 5 ) h2 = h2 +
14、1; h1=h1-1; h1 = 0;while ( h1 10 ) continue; h2 = h2 + 2; 例例2:注:如果注:如果h1大于大于10,將不執(zhí)行,將不執(zhí)行 h2=h2+2指令,跳到指令,跳到while 的末端。的末端。h1 = 0;while ( 1 ) +h1; if ( h1 = 20 ) break; if ( h1 10 ) continue; h2 = h2 + 2; 例例3:注:如果注:如果h1等于等于20,將退出,將退出while 指令;如果指令;如果h1大于大于10,跳到,跳到 while的末端。的末端。26嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器l
15、y 2_e 10/1998指令說明指令說明- switchcasedefault表達(dá):表達(dá):說明:說明:如果表達(dá)式為如果表達(dá)式為1,執(zhí)行程序,執(zhí)行程序1;如果表達(dá)式為如果表達(dá)式為2,執(zhí)行程序,執(zhí)行程序2;當(dāng)條件都不滿足時(shí),執(zhí)行程序當(dāng)條件都不滿足時(shí),執(zhí)行程序n。注:如果注:如果h1等于等于1,h2加加1; 如果如果h1等于等于2,h3加加1; 如果如果h1不等于不等于1、2,h4加加1;switch ( 表達(dá)式表達(dá)式) case value 1: 程序程序 1 ; case value 2: 程序程序 2 ;. default: 程序程序n ; switch ( h1 ) case 1: +h2
16、; break; case 2: +h3; break; default: +h4; break; 例:例:27嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998常用的系統(tǒng)變量常用的系統(tǒng)變量說明說明28嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998h483(input lvl)-開關(guān)量輸入開關(guān)量輸入開關(guān)量輸入為只讀。開關(guān)量輸入為只讀。 例:例:h483.6=1代表了代表了di10為高電平的狀態(tài)。為高電平的狀態(tài)。 例:例:h483=19=24+21+20代表了代表了di04、di01和和di00為高電平的狀態(tài),為高電平的狀態(tài), 其余開關(guān)量輸入為
17、低電平。其余開關(guān)量輸入為低電平。注:注:二進(jìn)制輸入二進(jìn)制輸入端子定義端子定義di17 di16 di15 di14 di13 di12 di11 di10 di05 di04 di03 di02 di01 di00h483.x13131212111110109 98 87 76 65 54 43 32 21 10 0含義含義2 2 13132 2 12122 2 11112 2 10102 2 9 92 2 8 82 2 7 72 2 6 62 2 5 52 2 4 42 2 3 32 2 2 22 2 1 12 2 0 0di011a二進(jìn)制輸入二進(jìn)制輸入主板二進(jìn)制輸入主板二進(jìn)制輸入29嚴(yán)選內(nèi)
18、容ipos-compiler編輯器編輯器ly 2_e 10/1998h482(output lvl)-開關(guān)量輸出開關(guān)量輸出 h482開關(guān)量輸入為只讀。開關(guān)量輸入為只讀。 例:例:h482.6=1代表了代表了do13為高電平的狀態(tài)。為高電平的狀態(tài)。 例:例:h482=19=24+21+20代表了代表了do11、di01和和db00為高電平的狀態(tài),為高電平的狀態(tài), 其余開關(guān)量輸出為低電平。其余開關(guān)量輸出為低電平。注:注:二進(jìn)制輸出二進(jìn)制輸出端子端子do17do16do15do14do13do12do11do10do02do01db00h482.x10109 98 87 76 65 54 43 32
19、 21 10 0含義含義2 2 10102 92 82 72 62 52 42 32 22 12 0開關(guān)量輸出開關(guān)量輸出dio11a主板開關(guān)量輸出主板開關(guān)量輸出30嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998h481(output lvl)-開關(guān)量輸出開關(guān)量輸出-只寫只寫 h482開關(guān)量輸入為只寫。開關(guān)量輸入為只寫。 例:例:h481.2=1代表了設(shè)置代表了設(shè)置do02為高電平。為高電平。 例:例:h481=6=22+21代表了設(shè)置代表了設(shè)置do02、do01為高電平。為高電平。注:注:二進(jìn)制輸出二進(jìn)制輸出端子端子do02do01db00h481.x2 21 10
20、 0含義含義2 22 12 0主板開關(guān)量輸出主板開關(guān)量輸出31嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998h480(output lvl)-開關(guān)量輸出開關(guān)量輸出-只寫只寫 h480開關(guān)量輸入為只寫。開關(guān)量輸入為只寫。 例:例:h480.2=1代表了設(shè)置代表了設(shè)置do12為高電平。為高電平。 例:例:h481=6=22+21代表了設(shè)置代表了設(shè)置do12、do11為高電平。為高電平。注:注:二進(jìn)制輸出二進(jìn)制輸出端子端子do17do16do15do14do13do12do11do10h480.x7 76 65 54 43 32 21 10 0含義含義2 2 7 72 6
21、2 52 42 32 22 12 0開關(guān)量輸出開關(guān)量輸出dio11a32嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998h473(ipos 狀態(tài)字)狀態(tài)字)33嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998h484(ipos 控制字)控制字)34嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998h509、h510和和h511-位置值位置值變量變量名稱名稱說明說明接口接口h509actpos abs絕對值編碼器位置值絕對值編碼器位置值x62h510actpos ext外部編碼器位置值外部編碼器位置值x14h511act
22、pos mor電機(jī)編碼器位置值電機(jī)編碼器位置值x1535嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998sewsew標(biāo)準(zhǔn)功能說明標(biāo)準(zhǔn)功能說明36嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998sew標(biāo)準(zhǔn)功能說明標(biāo)準(zhǔn)功能說明-bitclear、bitset、bitmove、bitnegmove符號符號格式格式說明說明舉例舉例_bitclear_bitclear( (h , ,bit) )位清零_bitclear( (h100 , ,0) )_bitset_bitset( (h , ,bit) )位置位_bitset( (h101 , ,2) )
23、_bitmove_bitmove( (h , ,bit, ,h , ,bit) )位賦值_bitmove( (h10 , ,5, ,h15 , ,0) )_bitmoveneg_bitmoveneg( (h , ,bit, ,h , ,bit) )位取反賦值_bitmoveneg( (h10 , ,5, ,h15 , ,0) )位指令位指令37嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998sew標(biāo)準(zhǔn)功能說明標(biāo)準(zhǔn)功能說明-bitclear、bitset、bitmove、bitnegmove _bitset( h481, 2 ); di01yesno _bitclear
24、( h481, 2 ); start 舉例:舉例:當(dāng)當(dāng)di01=1時(shí),時(shí),do02=1;當(dāng)當(dāng)di01=0時(shí),時(shí),do02=0; if( di01 ) _bitset( h481,2 ); /h481.1-do02 else _bitclear( h481, 2 ); /h481.1-do02 38嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998sew標(biāo)準(zhǔn)功能說明標(biāo)準(zhǔn)功能說明-_go0符號符號: _go0(類型)(類型)描述:描述:該指令定義參考運(yùn)行類型。該指令定義參考運(yùn)行類型。說明:說明:類型由類型由c、u、w、nw和和cam或或reset組成。組成。 go0_c_w
25、_zp go0_u_w_zp go0_c_nw_zp go0_u_nw_zp go0_c_w_cam go0_u_w_cam go0_c_nw_cam go0_u_nw_camc(conditional)-只有在沒有參考點(diǎn)時(shí),參考運(yùn)行有效。只有在沒有參考點(diǎn)時(shí),參考運(yùn)行有效。u(unconditional)-無論有無參考點(diǎn),參考運(yùn)行始終有效。無論有無參考點(diǎn),參考運(yùn)行始終有效。w(wait)-等待,直到參考運(yùn)行結(jié)束。等待,直到參考運(yùn)行結(jié)束。nw(nowait)-不等待,運(yùn)行下一條指令。不等待,運(yùn)行下一條指令。zp(zero pulse)-參考運(yùn)行到零脈沖。參考運(yùn)行到零脈沖。cam-參考運(yùn)行到凸輪點(diǎn)
26、。參考運(yùn)行到凸輪點(diǎn)。39嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998類型類型0:類型類型1:p903(參考類型)(參考類型)說明:說明: 當(dāng)定義為當(dāng)定義為cam,初始位,初始位 置為參考點(diǎn)。置為參考點(diǎn)。 當(dāng)定義為當(dāng)定義為zp,零脈沖位置,零脈沖位置 為參考點(diǎn)。為參考點(diǎn)。零脈沖零脈沖初始位置初始位置凸輪開關(guān)凸輪開關(guān)正轉(zhuǎn)極限正轉(zhuǎn)極限反轉(zhuǎn)極限反轉(zhuǎn)極限說明:說明: 向反轉(zhuǎn)極限方向運(yùn)行。向反轉(zhuǎn)極限方向運(yùn)行。40嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998類型類型2:p903(參考類型)(參考類型)凸輪開關(guān)凸輪開關(guān)正轉(zhuǎn)極限正轉(zhuǎn)極限反轉(zhuǎn)極限反轉(zhuǎn)極限
27、說明:說明: 向正轉(zhuǎn)極限方向運(yùn)行。向正轉(zhuǎn)極限方向運(yùn)行。 凸輪開關(guān)的下降沿為參考凸輪開關(guān)的下降沿為參考 點(diǎn)。點(diǎn)。類型類型3:反轉(zhuǎn)極限反轉(zhuǎn)極限正轉(zhuǎn)極限正轉(zhuǎn)極限說明:說明: 向正轉(zhuǎn)極限方向運(yùn)行。向正轉(zhuǎn)極限方向運(yùn)行。 正轉(zhuǎn)極限開關(guān)的下降沿為正轉(zhuǎn)極限開關(guān)的下降沿為 參考點(diǎn)。參考點(diǎn)。41嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998類型類型4:類型類型5:p903(參考類型)(參考類型)說明:說明:向反轉(zhuǎn)極限方向運(yùn)行。向反轉(zhuǎn)極限方向運(yùn)行。 反轉(zhuǎn)極限開關(guān)的下降沿為反轉(zhuǎn)極限開關(guān)的下降沿為 參考點(diǎn)。參考點(diǎn)。說明:說明: 當(dāng)前位為參考點(diǎn)。當(dāng)前位為參考點(diǎn)。當(dāng)前位當(dāng)前位42嚴(yán)選內(nèi)容ipos
28、-compiler編輯器編輯器ly 2_e 10/1998類型類型6:p903(參考類型)(參考類型)凸輪開關(guān)凸輪開關(guān)正轉(zhuǎn)極限正轉(zhuǎn)極限反轉(zhuǎn)極限反轉(zhuǎn)極限說明:說明: 向正轉(zhuǎn)極限方向運(yùn)行。向正轉(zhuǎn)極限方向運(yùn)行。 凸輪開關(guān)的反方向下降沿凸輪開關(guān)的反方向下降沿為參考點(diǎn)。為參考點(diǎn)。類型類型7:反轉(zhuǎn)極限反轉(zhuǎn)極限正轉(zhuǎn)極限正轉(zhuǎn)極限說明:說明:向反轉(zhuǎn)極限方向運(yùn)行。向反轉(zhuǎn)極限方向運(yùn)行。 凸輪開關(guān)的反方向下降沿凸輪開關(guān)的反方向下降沿為參考點(diǎn)。為參考點(diǎn)。凸輪開關(guān)凸輪開關(guān)43嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998nogo0_u_nw_zp! di00yesgo0_reset! refe
29、rencereturnyesno/運(yùn)行參考點(diǎn)運(yùn)行參考點(diǎn)/沒到參考點(diǎn)沒到參考點(diǎn)di01start referencemodeend referencemodeyesno/參考運(yùn)行條件參考運(yùn)行條件 referencemode() /參考運(yùn)行模式參考運(yùn)行模式 if(di01 ) /參考運(yùn)行條件參考運(yùn)行條件 _go0( go0_u_nw_zp); /參考運(yùn)行參考運(yùn)行 while(!referenced) /沒有到達(dá)參考點(diǎn)沒有到達(dá)參考點(diǎn) if(!di00 ) / 如如di03=0退出參考運(yùn)行程序退出參考運(yùn)行程序 _go0( go0_reset ); return; 參考運(yùn)行舉例參考運(yùn)行舉例44嚴(yán)選內(nèi)容i
30、pos-compiler編輯器編輯器ly 2_e 10/1998sew標(biāo)準(zhǔn)功能說明標(biāo)準(zhǔn)功能說明-_goabs符號符號: _goabs(類型,位置)(類型,位置)描述:描述:該指令定義運(yùn)行到一個(gè)該指令定義運(yùn)行到一個(gè)絕對位置絕對位置。說明:說明: 類型由類型由go_nowait和和go_wait組成。組成。 go_nowait-不等待,運(yùn)行下一條指令。不等待,運(yùn)行下一條指令。 go_wait-等待,直到到達(dá)給定絕對位置。等待,直到到達(dá)給定絕對位置。 位置可為一個(gè)常數(shù)、變量或間接變量。位置可為一個(gè)常數(shù)、變量或間接變量。指目標(biāo)位和參考位指目標(biāo)位和參考位之間的距離之間的距離45嚴(yán)選內(nèi)容ipos-comp
31、iler編輯器編輯器ly 2_e 10/1998絕對位置運(yùn)行舉例絕對位置運(yùn)行舉例startpositioninggo_nowaitposition! di00yesnoas_pstopreturnyesendpositioning! in_position/ 絕對位置運(yùn)行絕對位置運(yùn)行/ 沒有到達(dá)絕對位置沒有到達(dá)絕對位置/ di00=0,退出絕對,退出絕對 位置運(yùn)行位置運(yùn)行positioning( ) _goabs( go_nowait,position ); while( !in_position) if( !di00 ) _axisstop( as_pstop ); return; 46嚴(yán)選
32、內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998sew標(biāo)準(zhǔn)功能說明標(biāo)準(zhǔn)功能說明-_gorel符號符號: _gorel(類型,位置)(類型,位置)描述:描述:該指令定義運(yùn)行到一個(gè)該指令定義運(yùn)行到一個(gè)相對位置相對位置。說明:說明: 類型由類型由go_nowait和和go_wait組成。組成。 go_nowait-不等待,運(yùn)行下一條指令。不等待,運(yùn)行下一條指令。 go_wait-等待,直到到達(dá)給定相對位置。等待,直到到達(dá)給定相對位置。 位置可為一個(gè)常數(shù)、變量或間接變量。位置可為一個(gè)常數(shù)、變量或間接變量。指目標(biāo)位和當(dāng)前位指目標(biāo)位和當(dāng)前位之間的距離之間的距離47嚴(yán)選內(nèi)容ipos-c
33、ompiler編輯器編輯器ly 2_e 10/1998sew標(biāo)準(zhǔn)功能說明標(biāo)準(zhǔn)功能說明-_setsys符號符號: _setsys(系統(tǒng)值,變量)(系統(tǒng)值,變量)描述:描述:設(shè)定系統(tǒng)值。設(shè)定系統(tǒng)值。 系統(tǒng)值包括:系統(tǒng)值包括: ss_n11:內(nèi)部固定轉(zhuǎn)速內(nèi)部固定轉(zhuǎn)速 n11 ss_n12:內(nèi)部固定轉(zhuǎn)速內(nèi)部固定轉(zhuǎn)速 n12 ss_n13:內(nèi)部固定轉(zhuǎn)速內(nèi)部固定轉(zhuǎn)速 n13 ss_n21:內(nèi)部固定轉(zhuǎn)速內(nèi)部固定轉(zhuǎn)速 n21 ss_n22:內(nèi)部固定轉(zhuǎn)速內(nèi)部固定轉(zhuǎn)速 n22 ss_n23:內(nèi)部固定轉(zhuǎn)速內(nèi)部固定轉(zhuǎn)速 n23 ss_pidata:設(shè)定設(shè)定 pi 字字* * h = pi 字的個(gè)數(shù)字的個(gè)數(shù)* * h
34、+ 1 = pi 1* * h + 2 = pi 2* * h + 3 = pi 3 ss_opmode: 設(shè)定運(yùn)行模式設(shè)定運(yùn)行模式* * h = 11: cfc (speed control)* * h = 12: cfc & torque control* * h = 13: cfc & ipos (positioning)* * h = 14: cfc & synchronous operation (drs11a)* h = 16: servo (speed control)* * h = 17: servo & torque control* * h = 18: servo & ip
35、os (positioning)h = 19: servo & synchronous operation (drs11a) h100=5000;_setsys( ss_n11,h100 ); h100=3; /pi字的個(gè)數(shù)字的個(gè)數(shù) h101=10; /pi1 h102=100; /pi2 h103=1000; /pi3_setsys( ss_pidata,h100 ); h100=13; _setsys( ss_opmode,h100 ); 48嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998sew標(biāo)準(zhǔn)功能說明標(biāo)準(zhǔn)功能說明-_setsys ss_imax: 設(shè)定最大
36、電流值設(shè)定最大電流值 (cfc or servo only); unit: 0.1 % ss_posramp: 位控斜率位控斜率; 單位單位: 1 ms* * h = 位控上升斜率位控上升斜率 1* * h + 1 = 位控下降斜率位控下降斜率 2 ss_posspeed:位控轉(zhuǎn)速位控轉(zhuǎn)速; 單位單位: 0.1 rpm* * h = cw速度速度* * h + 1 = ccw速度速度 h100=1000; /定義上升斜率定義上升斜率 h101=1000; /定義下降斜率定義下降斜率 _setsys( ss_posramp,h100 ); h100=1000; /定義定義cw轉(zhuǎn)速轉(zhuǎn)速 h101=
37、1000; /定義定義ccw轉(zhuǎn)速轉(zhuǎn)速 _setsys( ss_posspeed, h100); 49嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998sew標(biāo)準(zhǔn)功能說明標(biāo)準(zhǔn)功能說明-_getsys符號符號: _getsys(系統(tǒng)值,變量)(系統(tǒng)值,變量)描述:描述:讀取系統(tǒng)值。讀取系統(tǒng)值。 系統(tǒng)值包括:系統(tǒng)值包括: gs_actcur:實(shí)際電流值實(shí)際電流值 gs_actspeed: 實(shí)際轉(zhuǎn)速實(shí)際轉(zhuǎn)速 gs_spspeed:設(shè)定轉(zhuǎn)速設(shè)定轉(zhuǎn)速 gs_error:故障代碼故障代碼 gs_sysstate: 7-段碼顯示段碼顯示 gs_actpos:實(shí)際位置實(shí)際位置 gs_sp
38、pos:設(shè)定位置設(shè)定位置 gs_inputs:二進(jìn)制輸入(包括主板和擴(kuò)展板)二進(jìn)制輸入(包括主板和擴(kuò)展板) gs_outputs:二進(jìn)制輸出(包括主板和擴(kuò)展板)二進(jìn)制輸出(包括主板和擴(kuò)展板) gs_ixt:系統(tǒng)的利用率系統(tǒng)的利用率 gs_aninputs: 模擬量輸入模擬量輸入1和和2的電壓值的電壓值* * h = 模擬量輸入模擬量輸入1* * h + 1 = 模擬量輸入模擬量輸入2將系統(tǒng)值存放在變量中將系統(tǒng)值存放在變量中50嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998sew標(biāo)準(zhǔn)功能說明標(biāo)準(zhǔn)功能說明-_getsys gs_anoutputs: 模擬量輸出模擬量輸出
39、* * h = 模擬量輸出模擬量輸出 1* * h + 1 = 模擬量輸出模擬量輸出 2 gs_podata 讀取讀取po值值* * h + 0: 總線類型總線類型 0 = reserved 1 = s0 (rs485 #1) 2 = s1 (rs485 #2) 3 = fieldbus 4 = reserved 5 = sbus* * h + 1 = po data 的個(gè)數(shù)的個(gè)數(shù)* * h + 2 = po1* * h + 3 = po2* * h + 4 = po3 h100=3; /定義定義fieldbus總線類型總線類型 h101=3; /定義定義po值的個(gè)數(shù)值的個(gè)數(shù) _getsys(
40、 h100,gs_podata ); /讀取讀取po值值 h200=h103*10; /將將po2乘以乘以10 51嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998程序舉例程序舉例52嚴(yán)選內(nèi)容主板主板x13x13開關(guān)量輸入說明:開關(guān)量輸入說明:凸輪開關(guān)凸輪開關(guān)( p602=reference cam )dcomv024di05di04di03di02di01di00控制器禁止控制器禁止 dgnd接外部24v直流電源的0v說明:說明: 1。di00(控制器禁止)-在自動運(yùn)行、點(diǎn)動運(yùn)行和參考運(yùn)行時(shí),di00為 高電平;急停時(shí),dioo為低電平。 2。 di03-凸輪開關(guān)。
41、53嚴(yán)選內(nèi)容di011adi011a擴(kuò)展板擴(kuò)展板x22x22開關(guān)量輸入說明:開關(guān)量輸入說明:允許參考運(yùn)行允許參考運(yùn)行 (1秒的脈沖)秒的脈沖)允許自動運(yùn)行允許自動運(yùn)行 (1秒的脈沖)秒的脈沖)反點(diǎn)運(yùn)行反點(diǎn)運(yùn)行正點(diǎn)運(yùn)行正點(diǎn)運(yùn)行di16di17di15di14di13di12di11di10模式選擇模式選擇di10di1110點(diǎn)動模式01尋參模式11自動模式說明:1。di10、di11為模式選擇為模式選擇-不同的組合可以選擇點(diǎn)動模式、尋參模式和自動模式。不同的組合可以選擇點(diǎn)動模式、尋參模式和自動模式。2。在點(diǎn)動模式下。在點(diǎn)動模式下-di12高電平時(shí)為正點(diǎn)運(yùn)行,高電平時(shí)為正點(diǎn)運(yùn)行,di13高電平為反
42、點(diǎn)運(yùn)行。高電平為反點(diǎn)運(yùn)行。3。在參考模式下。在參考模式下-di14 1秒秒 高電平觸發(fā)參考運(yùn)行。高電平觸發(fā)參考運(yùn)行。 4。在自動模式下。在自動模式下-di15 di14 1秒秒 高電平觸發(fā)自動運(yùn)行。高電平觸發(fā)自動運(yùn)行。5。p610-p617=ipos input。54嚴(yán)選內(nèi)容55嚴(yán)選內(nèi)容 while(1) if(!di10&di11) /點(diǎn)動模式點(diǎn)動模式 jogmode(); if(di10&!di11) /參考運(yùn)行模式參考運(yùn)行模式 referencemode(); if(di10&di11) automaticmode(); /自動模式自動模式 主程序:主程序:start maininiti
43、alization1!di10&di11jogmodeautomaticmodedi10& di11di10& !di11referencemodeyesyesyesnono選擇點(diǎn)動運(yùn)行選擇點(diǎn)動運(yùn)行選擇尋參運(yùn)行選擇尋參運(yùn)行選擇自動運(yùn)行選擇自動運(yùn)行56嚴(yán)選內(nèi)容點(diǎn)動子程序:點(diǎn)動子程序:start jogmode!di10&di11yesnogs_actposcurrentpostiondi12& ! di13targetpos=currentpostion+409600! di12& di13targetpos=currentpostion-409600yesnoas_pstopend jogmo
44、deyesno/取當(dāng)前位取當(dāng)前位/選擇正轉(zhuǎn)選擇正轉(zhuǎn)/選擇反轉(zhuǎn)選擇反轉(zhuǎn)/運(yùn)行停止運(yùn)行停止/取目標(biāo)位取目標(biāo)位 57嚴(yán)選內(nèi)容點(diǎn)動子程序:點(diǎn)動子程序: jogmode() /點(diǎn)動模式點(diǎn)動模式 while(!di10&di11 ) /di10=0 di11=1選擇點(diǎn)動模式選擇點(diǎn)動模式 jogspeed ; /選擇點(diǎn)動轉(zhuǎn)速選擇點(diǎn)動轉(zhuǎn)速 _getsys(currentposition,gs_actpos ); /讀取當(dāng)前位置讀取當(dāng)前位置 if( di12&!di13 ) /di12=1 di13=0選擇正點(diǎn)運(yùn)行選擇正點(diǎn)運(yùn)行 targetpos=h511+409600; /計(jì)算目標(biāo)位置計(jì)算目標(biāo)位置=h511(
45、當(dāng)前位置當(dāng)前位置)+409600 continue; /跳轉(zhuǎn)到跳轉(zhuǎn)到while的末端的末端 if(!di12&di13 ) /di12=0 di13=1選擇反點(diǎn)運(yùn)行選擇反點(diǎn)運(yùn)行 targetpos=h511-409600; /計(jì)算目標(biāo)位置計(jì)算目標(biāo)位置=h511(當(dāng)前位置當(dāng)前位置)-409600 continue; /跳轉(zhuǎn)到跳轉(zhuǎn)到while的末端的末端 _axisstop( as_pstop ); /停止運(yùn)行停止運(yùn)行 58嚴(yán)選內(nèi)容ipos-compiler編輯器編輯器ly 2_e 10/1998nogo0_u_nw_zp! di00yesgo0_reset! referencereturnyes
46、no/運(yùn)行參考點(diǎn)運(yùn)行參考點(diǎn)/沒到參考點(diǎn)沒到參考點(diǎn)di14start referencemodeend referencemodeyesno/參考運(yùn)行條件參考運(yùn)行條件 referencemode( ) /參考運(yùn)行模式參考運(yùn)行模式 if(di14) /參考運(yùn)行條件參考運(yùn)行條件 _go0( go0_u_nw_cam ); /參考運(yùn)行參考運(yùn)行 while( ! referenced) /沒有到達(dá)參考點(diǎn)沒有到達(dá)參考點(diǎn) if(!di00 ) / 如如di03=0退出參考運(yùn)行程序退出參考運(yùn)行程序 _go0( go0_reset ); return; 參考運(yùn)行子程序參考運(yùn)行子程序59嚴(yán)選內(nèi)容ipos-comp
47、iler編輯器編輯器ly 2_e 10/1998自動運(yùn)行子程序自動運(yùn)行子程序startpositioninggo_nowaitposition! di00yesnoas_pstopreturnyesendpositioning! in_position/ 絕對位置運(yùn)行絕對位置運(yùn)行/ 沒有到達(dá)絕對位置沒有到達(dá)絕對位置/ di00=0,退出絕對,退出絕對 位置運(yùn)行位置運(yùn)行positioning( ) _goabs( go_nowait,position ); while( !in_position) if( !di00 ) _axisstop( as_pstop ); return; 60嚴(yán)選內(nèi)容
48、ipos程序?qū)嵗绦?:開關(guān)量控制多段速通過三個(gè)端子(di03、di04、di05)控制7段速度。參數(shù)設(shè)定:di01(p600):enable/rap.stopdi03(p602):ipos inputdi04(p603):ipos inputdi05(p604):ipos inputsetpointsource(p100):bipol./fix.setptoperating mode(p700):vfc,vfc-n-control程序?qū)⑵邆€(gè)速度定義給h1到h7,用一個(gè)pointer變量指示端子的變化,然后以pointer為指針,按照端子的變化將七個(gè)速度分別傳遞給n11。variabledi0
49、5di04di03speed rpmh1001-1200h2010-800h3011-300h4100200h5101500h6110900h7111140061嚴(yán)選內(nèi)容/*= ipos source file=*/#include #define inputimage (inputlevel 3) & 0 x00000007)#define fixedsetpointon _bitset( controlword , 4 )#define fixedsetpointoff _bitclear( controlword , 4 )#define fixedsetpoint1 h1#define
50、 fixedsetpoint2 h2#define fixedsetpoint3 h3#define fixedsetpoint4 h4#define fixedsetpoint5 h5#define fixedsetpoint6 h6#define fixedsetpoint7 h7/ declaration of variableslong pointer, fixedsetpoint;/*= main function (ipos initial function)=*/main() /*- initialization -*/ fixedsetpoint1 = -1200 * 10;
51、fixedsetpoint2 = -800 * 10; fixedsetpoint3 = -300 * 10;fixedsetpoint4 = 200 * 10; fixedsetpoint5 = 500 * 10; fixedsetpoint6 = 900 * 10; fixedsetpoint7 = 1400 * 10; /*- main program loop -*/ while(1) pointer = inputimage; fixedsetpoint = *pointer; _setsys( ss_n11,fixedsetpoint ); if( pointer = 0 ) fi
52、xedsetpointoff; else fixedsetpointon; 開關(guān)量控制多段速程序62嚴(yán)選內(nèi)容程序2:位控程序+中間位置變速程序主要分為兩部分,首先為尋零,然后就是位控部分。位控部分利用h511 actpos_mot(實(shí)際位置)與設(shè)定的兩個(gè)位置switchpos1和switchpos2比較來選擇相應(yīng)的速度從而達(dá)到走位過程中的變速。/*= ipos source file=*/ #include #include #pragma globals 350 365#define second 1000#define referenced (statusword & 0 x100000)
53、#define in_position (statusword & 0 x80000) #define posspeed1 _setsys( ss_posspeed,speed1 )#define posspeed2 _setsys( ss_posspeed,speed2 )#define posspeed3 _setsys( ss_posspeed,speed3 )#define cwtravel 0#define ccwtravel 1 ssposspeed speed1, speed2, speed3; ssposramp posramp1; long startposition, li
54、mitposition;long switchpos1, switchpos2;long traveldirection;63嚴(yán)選內(nèi)容/*= main function (ipos initial function)=*/main() /*- initialization -*/ speed1.cw = speed1.ccw = 600 * 10; speed2.cw = speed2.ccw = 1100 * 10; speed3.cw = 400 * 10; speed3.ccw = 1400 * 10; posramp1.up = 500; posramp1.down = 500; st
55、artposition = 0; limitposition = 200000; switchpos1 = 80000; switchpos2 = 140000; traveldirection = cwtravel;_setsys( ss_posramp,posramp1 ); /*- main program loop -*/ while(1) if ( !referenced ) referencetravel(); else positioning(); /*= functions=*/referencetravel() if ( di00 ) _go0( go0_u_nw_zp );
56、 while( ! referenced ) if( !di00 ) _go0( go0_reset ); return; traveldirection = cwtravel; 64嚴(yán)選內(nèi)容positioning() if( di01 & di00 ) if( traveldirection = cwtravel ) if( actpos_mot switchpos1 ) posspeed1; else if( actpos_mot switchpos2 ) posspeed2; else posspeed3; _goabs( go_nowait,limitposition ); if( i
57、n_position ) _wait( second ); traveldirection = ccwtravel; if( traveldirection = ccwtravel ) / query condition for return travel posspeed3; _goabs( go_nowait,startposition ); / initiate return movement if( in_position ) / query whether destination position reached traveldirection = cwtravel; _wait(
58、second ); else _axisstop( as_pstop ); / perform positioning stop traveldirection = ccwtravel; / set travel direction on return travel 65嚴(yán)選內(nèi)容程序3:位控程序-jog模式,尋參模式,自動位控模式主程序首先判斷是否尋過參,如果沒有,則進(jìn)入尋參模式。如果尋參完畢,在di01為0時(shí)進(jìn)入點(diǎn)動模式,在di01為1時(shí)進(jìn)入自動位控模式。在點(diǎn)動模式下,di03和di04用來控制cw和ccw。程序中在尋參模式中用_go0指令來尋零;而在點(diǎn)動模式下使用了_gorel指令(讓電機(jī)
59、向某一方向走相對于當(dāng)前位置的一段距離,達(dá)到點(diǎn)動效果);在自動模式下,設(shè)定了兩個(gè)位置,目的是讓電機(jī)在這兩個(gè)固定位置往返運(yùn)動,所以用_goabs指令來走絕對位置。參數(shù)設(shè)定:di01(p600):ipos inputdi02(p601):ipos input di03(p602):ipos inputdi04(p603):ipos inputdi05(p604):cw limit switchdi06(p605):reference camdi07(p606):ccw limit switchoperating mode(p700): &iposreference travel type(p903)
60、:166嚴(yán)選內(nèi)容/*= ipos source file=*/#include #include #pragma globals 350 365#define second 1000#define referenced (statusword & 0 x100000) #define in_position (statusword & 0 x80000) #define creeptraverse _setsys( ss_posspeed,creeptraversespeed )#define rapidtraverse _setsys( ss_posspeed,rapidtraversesp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公大樓幕墻施工安裝合同
- 電子元器件瑕疵管理方案
- 物業(yè)管理集團(tuán)福利費(fèi)管理手冊
- 家具行業(yè)項(xiàng)目招投標(biāo)信息表
- 高空農(nóng)業(yè)噴灑合同
- 2025個(gè)人信用貸款借款合同
- 臨沂生態(tài)農(nóng)場租賃合同
- 門店市場調(diào)研渠道分析
- 醫(yī)用高值耗材管理指南
- 智能家居大清包施工合同
- 新《安全生產(chǎn)法》解讀PPT課件
- E車E拍行車記錄儀說明書 - 圖文-
- 人才梯隊(duì)-繼任計(jì)劃-建設(shè)方案(珍貴)
- WLANAP日常操作維護(hù)規(guī)范
- 《健身氣功》(選修)教學(xué)大綱
- 王家?guī)r隧道工程地質(zhì)勘察報(bào)告(總結(jié))
- GE公司燃?xì)廨啓C(jī)組支持軸承結(jié)構(gòu)及性能分析
- 《昆明的雨》優(yōu)質(zhì)課一等獎(jiǎng)(課堂PPT)
- 油氣田地面建設(shè)工程ppt課件
- 電動蝶閥安裝步驟說明
- 全自動電鍍流水線操作說明書(共12頁)
評論
0/150
提交評論