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