時間:2021-01-29 10:51:34來源:上海安浦鳴志自動化設(shè)備有限公司
Q編程介紹
SCL指令的使用已經(jīng)有很多年的歷史。Q程序是建立在SCL指令基礎(chǔ)之上的一個新的平臺,擴展了SCL命令的使用,允許用戶創(chuàng)建與存儲SCL指令。這些程序可以保存在驅(qū)動器的非易失性存儲器中,驅(qū)動可以脫離主機獨立運行這些程序。Q程序為系統(tǒng)設(shè)計提供了高度的靈活性和強大的功能。主要特點如下:
? 運動控制(例如FL、FP、SH等)
? 執(zhí)行駐留程序
? 多任務(wù)處理(請參閱MT指令)
? 條件判斷(例如OI、TI等指令)
? 數(shù)學(xué)運算(例如R+、R-、R*、R/、R|、R&等指令)
? 寄存器操作(例如RX、RM等指令)
1個Q程序支持多達12個程序段,每個程序段最多可以編寫62條指令。
參考例程
以下內(nèi)容給出了Q編程的參考例程,并對這些指令逐條進行了解釋,Q編程中所有指令均為緩存指令(Buffered Commands)
點到點相對運動(Feed to Length)
FL(Feed to Length)指令用來完成點到點相對位置運動,當(dāng)執(zhí)行該指令時,電機將按照設(shè)定的加速度(AC),減速度(DE)及運行速度(VE),完成一段固定的相對位置距離(DI)。電機轉(zhuǎn)動的方向由DI指令的正負(fù)極性決定。比如,DI32000 代表電機順時針轉(zhuǎn)動32000步(或微步),而DI-32000代表電機逆時針轉(zhuǎn)動32000步(或微步)。上圖中列出了一個參考例程,Q程序通過WI指令首先等待輸入口3接收一個下降沿觸發(fā)信號,如果條件滿足,電機將按照20 轉(zhuǎn)/秒的轉(zhuǎn)速,轉(zhuǎn)動4圈;如果條件不滿足,程序?qū)⒁恢蓖A粼?/span>WI指令處等待輸入口3接收正確的觸發(fā)信號為止。
點到點絕對運動(Feed to Position)
FP(Feed to Position)指令用來完成點到點絕對位置運動,當(dāng)執(zhí)行該指令時,電機將按照設(shè)定的加速度(AC),減速度(DE)及運行速度(VE),完成一段絕對位置距離(DI)。DI指令代表目標(biāo)絕對位置,電機轉(zhuǎn)動方向不由其正負(fù)極性決定,而由電機當(dāng)前絕對位置與目標(biāo)絕對位置來決定。上圖中列出了一個參考例程,Q程序通過WI指令首先等待輸入口3接收一個下降沿觸發(fā)信號,如果條件滿足,電機將按照20 轉(zhuǎn)/秒的轉(zhuǎn)速,轉(zhuǎn)動4圈,然后等待1秒(WT指令),然后電機以20 轉(zhuǎn)/秒的轉(zhuǎn)速回到絕對位置0點;如果條件不滿足,程序?qū)⒁恢蓖A粼?/span>WI指令處等待輸入口3接收正確的觸發(fā)信號為止。
SP(Set Position)指令用來設(shè)置電機當(dāng)前的絕對位置,如發(fā)送“SP0”指令,將電機當(dāng)前位置設(shè)為絕對位置零點。注意,SP指令設(shè)置的參數(shù)是以編碼器Encoder Counts作為基本單位的,比如一個裝有500線編碼器的電機,一圈有2000個Encoder Counts,如發(fā)送“SP5000”指令,將電機當(dāng)前位置設(shè)為以絕對位置零點順時針方向2.5圈的位置。
運動到傳感器位置(Feed to Sensor)
FS(Feed to Sensor)指令使電機以一個固定速度轉(zhuǎn)動,直到一個輸入口的電平狀態(tài)滿足觸發(fā)條件,電機減速,運動停止。運動參數(shù)由AC,DE,VE及DI指令決定,注意DI指令在FS指令執(zhí)行時代表輸入口電平狀態(tài)滿足觸發(fā)條件后,電機減速到0的運動距離,注意DI設(shè)定的減速具體必須大于最小減速距離Dm,最小減速距離由DE,VE,EG指令決定,計算公式如下,其中V代表VE設(shè)定值,R代表EG設(shè)定值,D代表DE設(shè)定值:
注意:當(dāng)DI設(shè)定值大于最小減速距離Dm時,電機接收到輸入口觸發(fā)電平狀態(tài)(找到傳感器)后,會繼續(xù)以當(dāng)前速度向前運動(DI-Dm)的距離,然后以DE設(shè)定的減速度減速,直到完成Dm的減速距離。同時,DI指令也決定了電機剛開始運動的方向,比如,DI8000 代表執(zhí)行FS指令后,電機順時針轉(zhuǎn)動,而DI-8000代表執(zhí)行FS指令后,電機逆時針轉(zhuǎn)動。輸入口電平狀態(tài)分為H(高電平),L(低電平),R(上升沿),F(下降沿)這幾種狀態(tài)。
上圖中列出了一個參考例程,Q程序通過WI指令首先等待輸入口3接收一個下降沿觸發(fā)信號,如果條件滿足,取消限位功能,電機以5轉(zhuǎn)/秒的轉(zhuǎn)速順時針方向轉(zhuǎn)動,直到輸入口7接收到一個高電平觸發(fā)狀態(tài),驅(qū)動器找到了傳感器,于是以DE設(shè)定的減速度,DI設(shè)定的減速距離完成減速到0。然后電機等待1秒鐘,隨后以20轉(zhuǎn)/秒的速度運行到絕對位置零點處,打開限位功能。
循環(huán)(Looping)
用戶可以通過兩種方式來實現(xiàn)程序的循環(huán)。第一種使用QG(Queue Goto)指令,設(shè)置QG參數(shù)使程序回到設(shè)定的行數(shù)。下圖中列出了一個參考例程,在FL指令后等待時間0.5秒(WT0.5),然后使用QG指令,使程序回到第一行重新執(zhí)行,實現(xiàn)不斷循環(huán)。
第二種方法是使用QR(Queue Repeat)指令,QR指令指明跳轉(zhuǎn)到哪一行和循環(huán)次數(shù)。下圖中列出了一個參考例程,QR指令表示跳轉(zhuǎn)到第二行,參數(shù)為3,即循環(huán)次數(shù)由用戶自定義寄存器3中的值決定,在這里RX指令寫入數(shù)值5到自定義寄存器3, 所以程序循環(huán)執(zhí)行5次。
跳轉(zhuǎn)(Jumping)
程序跳轉(zhuǎn)由QJ(Queue Jump)指令實現(xiàn),跳轉(zhuǎn)和循環(huán)不同,跳轉(zhuǎn)主要判斷條件是否滿足,即跳轉(zhuǎn)指令通常和TI(輸入檢測),TR(寄存器檢測),CR(寄存器比較)指令配合使用。下圖中列出了一個參考例程,有兩種可能的運動,順時針旋轉(zhuǎn),當(dāng)輸入信號5有效時(低電平有效)電機開始逆時針旋轉(zhuǎn),加速度300,減速度450,速度18.5,兩種運動間有0.25秒的等待時間。然后,檢測X5信號的狀態(tài),當(dāng) X5信號有效時(True),程序跳轉(zhuǎn)到第10行,開始逆時針旋轉(zhuǎn),如果X5信號為高時程序直接到第7行進行順時針旋轉(zhuǎn), 執(zhí)行完后回到第一行進行循環(huán)。
程序調(diào)用(Calling)
程序調(diào)用是在不同的程序段(Segment)之間實現(xiàn)的。QC(Queue Call)指令允許用戶結(jié)束一個當(dāng)前程序段,調(diào)用另一個程序段,執(zhí)行完后,回到執(zhí)行調(diào)用指令的第一個程序段。這樣,用戶可以把需要多次循環(huán)的程序單獨放到一個段中進行調(diào)用,以減少循環(huán)的次數(shù)和降低程序結(jié)構(gòu)的復(fù)雜度。下圖中列出了一個參考例程,由第1程序段(Segment 1)和第2程序段(Segment 2)組成:
第1程序段在第6、10行調(diào)用第2程序段,第2程序段中設(shè)置Y1低電平輸出,等待0.25秒,設(shè)置Y2低電平輸出,等待0.25秒。然后設(shè)置Y2高電平輸出,等待0.25秒,設(shè)置Y1高電平輸出,回到第1程序段,繼續(xù)執(zhí)行第1程序段內(nèi)后續(xù)指令。
多任務(wù)處理(Multi-tasking)
多任務(wù)處理模式(MT1)允許程序在執(zhí)行運行指令(如FL,FP,CJ,FS等)時,同時執(zhí)行其他指令,而不需要等待前一個運行指令的結(jié)束。在單任務(wù)處理模式(MT0)下,Q程序是順序執(zhí)行的,即執(zhí)行下一條指令會等待上一條指令的結(jié)束。例如,FL指令后是SO指令,那么驅(qū)動器在FL指令結(jié)束后才會設(shè)置輸出。當(dāng)開啟多任務(wù)處理模式(MT1),Q程序執(zhí)行運行指令的同時會執(zhí)行后面的指令。例如,上面的FL,SO指令,執(zhí)行多任務(wù)處理,驅(qū)動器開始運行并且立即執(zhí)行輸出設(shè)置,不需要等待FL指令執(zhí)行完畢。多任務(wù)處理由MT指令設(shè)置,MT1為多任務(wù)處理開啟,MT0為多任務(wù)處理關(guān)閉(單任務(wù)處理模式)。
例如上圖所示,當(dāng)MT=1,驅(qū)動器執(zhí)行FL指令,等待0.5秒后設(shè)置輸出口Y1為低電平,不需要等待FL指令結(jié)束后,再等待0.5秒才輸出低電平。以上是一個最基本的例子,如果您嘗試對您的驅(qū)動器進行編程,請盡量保證DI值足夠大以觀察不同的指令執(zhí)行后的區(qū)別。注意,因為電機不能同時執(zhí)行兩種運動,即使多任務(wù)處理開啟后,運動指令還是會有先后順序。例如,多任務(wù)處理開啟后,程序中連續(xù)有兩種運行指令,那么驅(qū)動器還是會等待第一條指令完成后執(zhí)行下一條指令。
中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.wangxinlc.cn)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>2025-04-30
性能躍升20%!維宏NK300CX Plus數(shù)控系統(tǒng)...
2025-04-11
rpi-image-gen:樹莓派軟件鏡像構(gòu)建的終...
2025-04-08
【產(chǎn)品解讀】全面提升精密制造檢測節(jié)拍...
2025-03-31
激光閃耀 智慧引領(lǐng) | WISE MASER 黑武士...
2025-03-20