【正文】
的邏輯表達式。variable以增量方式增加。重復(fù)執(zhí)行指令區(qū),直到variable大于end。既可以是一個環(huán)形變量或者是一個本地變量 start任何有效的BASIC表達式 end任何有效的BASIC表達式 increment任何有效的BASIC表達式(可選)參閱: REPEAT,WHILE應(yīng)用: 例子1以下例子將輸出10到18置ONFOR opnum=10 to 18OP(opnum,on)NEXT OPNUMON..GOSUB類型: 結(jié)構(gòu)指令語法: ON expression GOSUB label {,label}說明: ON…GOSUB結(jié)構(gòu)使能條件跳轉(zhuǎn)。注意: 如果表達式無效,不會執(zhí)行跳轉(zhuǎn)。整數(shù)表達式用于從列表中選擇label。參數(shù): expression任何有效的BASIC表達式。參數(shù): time暫停程序的毫秒數(shù)。指令只能用在程序中。WHILE..WEND類型: 結(jié)構(gòu)指令語法: While condition說明: WHILE…WEND結(jié)構(gòu)程序之間的指令連續(xù)執(zhí)行,直到條件變成FALSE。參閱: FOR,REPEAT應(yīng)用: WHILE IN (12) = OFFMOVE (200)WAIT IDLEOP (10,OFF)MOVE (200)WAIT IDLEOP (10,ON)WENDWAIT UNTIL類型: 系統(tǒng)指令語法: WAIT UNTIL condition說明: WAIT UNTIL指令重復(fù)評估條件直到變成真。應(yīng)用: 例子1此例中,程序等待軸0的測量位置超出150,然后開始軸1的運動。注: 常量為只讀。應(yīng)用: OP (lever,ON)以上命令將輸出名為lever設(shè)置成ON。應(yīng)用: circum = 100PRINT “Radius =” 。單位units/s2。注: 此參數(shù)為只讀參數(shù)。參閱: AXIS應(yīng)用: 以下指令將軸1設(shè)置成編碼器輸出。參考82注: 此為只讀參數(shù)。CREEP速度單位為units/s。12位DAC能采用的值范圍為: DAC=2048 相應(yīng)于10V電壓 DAC=2047 相應(yīng)于10V電壓 16位DAC能采用的值范圍為: DAC=32767 相應(yīng)于10V電壓 DAC=32768 相應(yīng)于10V電壓DECEL類型: 軸的參數(shù)說明: DECEL參數(shù)包括軸的減速率。 “ mm/s/s “I_GAIN類型: 軸的參數(shù)說明: I_GAIN參數(shù)包括軸的積分增益。他可以減少超調(diào),振動。這個參數(shù)可應(yīng)用DEFPOS指令設(shè)置。注: 此參數(shù)為只讀。非空閑并不意味著軸在運動。一旦當(dāng)前運動結(jié)束,將會執(zhí)行顯示在NTYPE緩存中的運動。參閱: AXIS,MTYPEOFFPOS類型: 軸的參數(shù)說明: OFFPOS參數(shù)包括應(yīng)用在目標(biāo)位置的偏移,不影響運動。其它指令可能會在下一伺服周期之前執(zhí)行。OFFPOS=DPOSWAIT UNTIL OFFPOS=0 ‘等到執(zhí)行這個例子等價于DEFPOS (0)。應(yīng)用: SERVO AXIS (0) = ON ‘軸0是伺服控制SERVO AXIS (1) = OFF ‘軸1開環(huán)SPEED類型: 軸的參數(shù)說明: SPEED參數(shù)包括目標(biāo)速度units/s,它可以是任意正值(包括零)。單位轉(zhuǎn)換因子使用戶單位定義更方便,例如米,毫米或電機分辨率。UNITS參數(shù)保持系統(tǒng)相同的動力特性。旋轉(zhuǎn)一圈等于5毫米。比例用于匹配電機的高分辨率或機器沿圓弧運動編碼器的線數(shù)與軸上的不同。相應(yīng)的需要修改控制增益。它會產(chǎn)生10000 counts/rev。一個幫助文件根據(jù)需要可以在完成安裝后被立即顯示出來。以下用于軸0:PP_STEP AXIS(0)=4第四章 TRIO ACTIVEX控件的使用使用TRIO ACTIVEX控件Motion Coordinator Technical Reference Manual運動控制器技術(shù)參考手冊 要求說明:計算機具有USB或者以太網(wǎng)接口l Windows 98,ME,2000或XP操作系統(tǒng)l TrioUSB 驅(qū)動l TrioPCI 驅(qū)動l TrioPC OCX控件l 通過TrioPC ActiveX連接控制Trio運動控制器的知識l Trio BASIC編程語言的相關(guān)知 ActiveX控件的安裝啟動程序“Install_TrioPCMotion”并且按照屏幕提示執(zhí)行。MC控制單元內(nèi)部加工40000count/rev。缺省值為1。單位因此設(shè)置成以下:UNITS=1000*4//5PP_STEP類型: 軸的參數(shù)說明: PP_STEP參數(shù)包括與輸入編碼器線數(shù)成比例的整數(shù)值。單位必須設(shè)置成毫米。注意: UNITS參數(shù)可以是任何非零值,但是推薦用戶單位與編碼器整數(shù)脈沖相一致。參閱: ACCEL,AXIS,DATUM,DECEL,F(xiàn)ORWARD,MOVE,MOVEABS,MOVECIRC,MOVEMODIFY,REVERSE,UNITS應(yīng)用: SPEED =1000PRINT “Set speed =” 。在閉環(huán)中,運動控制算法將會輸出速度參考信號,取在開環(huán)中,速度參考完全取決于S_RTE參數(shù)。這可以使用WAITUNTIL(看例子)。當(dāng)系統(tǒng)加載偏移OFFPOS的值會被重置成零。NTYPE通過CANCEL(1)指令取消。注: 此參數(shù)為只讀。下面給出可能值。MPOS在上電時重置成零。Oi=Ki x ⊕e注意: 為了避免系統(tǒng)的不穩(wěn)定性,伺服增益需在SERVO=OFF時改變。缺省值是0。參數(shù)可以是任意正數(shù)包括零。例如,如果轉(zhuǎn)換因子設(shè)為編碼器數(shù)edges/inch,速度設(shè)為inchs/s。爬行速度用于進行原點搜尋。AXISSTATUS參數(shù)對三軸定義如下。軸數(shù)軸的類型ATYPE值0伺服13(固定)1虛擬軸0伺服軸2編碼器輸入3(缺?。┚幋a器輸出142虛擬軸0(固定)開始上電時ATYPE參數(shù)設(shè)置成軸的缺省值。參閱: AXIS,DECEL,UNITS應(yīng)用: BASE(0) ACCEL=100 ‘設(shè)置加速率 PRINT “Acceleration rate: “。注:常量為只讀。1416。ON類型: 常量說明: ON常量返回值1。注: 常數(shù)為只讀。指令只能用在程序中。注意: WHILE …WEND可以無限制嵌套。應(yīng)用: 例子1此例中,程序等待軸0的測量位置超出150,然后開始軸1的運動。OP (11,OFF)WA (2000)OP (17,ON)WAIT..UNTIL類型: 系統(tǒng)指令語法: WAIT UNTIL condition說明: WAIT UNTIL指令重復(fù)評估條件直到變成真。參閱: GOSUB,GOTO應(yīng)用: REPEATGET5,charUNTIL 1=char and char=3On char GOTO mover,stopper,changeWA類型: 系統(tǒng)指令語法: WA (time)說明: WA指令暫停程序執(zhí)行一段時間。依據(jù)GOTO指令執(zhí)行子程序或跳轉(zhuǎn)。 Label 程序中任何有效的標(biāo)志。如果表達式的值是1,使用第一個label,對于值2使用第二個label,以此類推。注意: FOR…NEXT在BASIC程序中可以嵌套8個指令。如果省略認為是1。22*VR(0)) THEN GOTO exceeds_length例子2IF IN (0) =ON ThenCount=count+1PRINT “COUNTS=” countFail=0ElseFail=fail+1EndifFOR..TO..STEP..NEXT類型: 循環(huán)和條件結(jié)構(gòu)指令語法: FOR variable=start to end [step increment] mands next variable說明: FOR…NEXT允許將FOR和NEXT之間的部分重復(fù)執(zhí)行多次。單結(jié)構(gòu)不用ENDIF。如果條件假,ELSE將會執(zhí)行或程序會跳到ENDIF如果沒有ELSE。只要多個項目用逗號,或分號分隔,都可以通過單個PRINT語句打印。所有非零值被看作ON。l 功能OP返回24個輸出的狀態(tài)。l 指令OP (output_number,value)設(shè)置單輸出通道。應(yīng)用: 例子1 下行可用于運動手輪與因子乘積的位置。參考332參數(shù): input_number輸入返回的值。兩個參數(shù)必須小于24分隔。如果未安裝P325 總線模塊,AIN(0)和AIN(1)將讀取內(nèi)置的通道以保持與老版本的兼容。 模擬輸入值盡管應(yīng)為正的值但也需檢查確保大于0。對于AIN1和AIN3通道,T_RATE參數(shù)可將數(shù)據(jù)轉(zhuǎn)換成扭矩的百分率。參閱: AXIS,CANCEL,F(xiàn)ORWARD,RAPIDSTOP應(yīng)用: back:REVERSEWAIT UNTIL IN (0) = ON ‘等待停止信號CANCELAIN類型: 系統(tǒng)參數(shù)語法: AIN(模擬通道)說明: 從模擬輸入口讀取數(shù)值,各種模擬輸入模塊可與運動控制器連接。加速率由ACCEL參數(shù)設(shè)置。MOVEABS (20,350)例子2一個貨盤由小格組成,容器離包裝機器85毫米。多軸運動距離L。通過改變軸在獨立運動,非插補,非同步可以獲得多軸運動。特定長度的比例由轉(zhuǎn)換因子UNITS參數(shù)設(shè)定。獨立運動可以被定義成相對與起始點相對運動。(1000線編碼器給出4000edges/turn)。多軸運動距離L。通過改變軸在獨立運動,非插補,非同步可以獲得多軸運動。特定長度的比例由轉(zhuǎn)換因子UNITS參數(shù)設(shè)定。feedhold,reverse jog,forward jog,forward,reverse limit inputs均是低電平有效。隨后軸以爬行速度正向運動直到碰到Z信號。5 軸以目標(biāo)速度(SPEED)正向運行,直到碰到原點開關(guān)。 目標(biāo)位置重置為0同時糾正測量位置,維持跟隨誤差。2 軸以爬行速度(CREEP)反向運行直到發(fā)現(xiàn)Z信號。將當(dāng)前位置設(shè)定為目標(biāo)位置同時AXISSTATUS狀態(tài)會被清除。目標(biāo)速度用SPEED參數(shù)設(shè)定。軸1用于MC控制單元機構(gòu)。參閱: AXIS,MTYPE,NTYPE,PMOVE,RAPIDSTOP應(yīng)用: 例子1 FORWARD WA(10000) CANCEL 例子2 MOVE(1000) MOVEABS(3000) CANCEL ‘取消運動到3000,而運動到4000。如果在緩存中還有運動,它會繼續(xù)被加載。速度軌跡(FORWARD,REVERSE,MOVE,MOVEABS,MOVECIRC)將會以DECEL參數(shù)減速直到停止。 基本軸的軸數(shù)和順序軸在軸組用于多軸運動。每個軸的運動發(fā)生器有其獨立的功能,因此每個軸能以自己的速度、加速度等進行編程,單獨運動,或者通過插補或鏈接運動鏈接在一起。參數(shù): 軸數(shù) 任何有效的BASIC表達式特定軸數(shù)。加速度因子從UNITS/SEC/SEC輸入。最后在運動過程完成以后就要通過控件連接命令Close關(guān)閉與軟件的連接,并調(diào)用子程序UpdateButtonStates刷新按扭的狀態(tài),通過點擊退出按扭便退出操作就這樣整個程序的循環(huán)與檢測再運行過程就結(jié)束了。由于各軸運動的距離有限,所以在每次運行時都要進行文本框距離數(shù)據(jù)的判斷,假如距離值超過了設(shè)定值即要顯示一個對話框顯示數(shù)據(jù)過大。設(shè)置完后而復(fù)位過程就通過循環(huán)來復(fù)位,即當(dāng)各軸進行復(fù)位時分別通過控件連接的命令OP(即OUTPUT)輸出電動機的反轉(zhuǎn)電信號(24V電壓)這時在軟件中相應(yīng)的輸出角狀態(tài)變?yōu)镺N。HC0FFC0End SubPrivate Sub Form_Unload(Cancel As Integer) If (gk_ndefaultMode) Then (gk_ndefaultMode) End IfEnd SubOption Explicit Private Sub InitAxes() Dim bok As Boolean Dim nAxise As Integer Dim nBases(gk_nAxesInUse) As Integer Dim dreadval As Double If (gk_ndefaultMode) Then bok = (WDOG, dreadval) If dreadval Then bok = (WDOG, 0) End If For nAxis = 0 To gk_nAxesInUse 1 nBases(0) = nAxis bok = (1, nBases) If bok Then bok = (SERVO, 0) End If If bok Then bok = (ATYPE, 0) End If