Q編程基礎(chǔ)Q驅(qū)動器中的Q來自單詞queue。這是因為Q驅(qū)動器執(zhí)行的命令是排入棧,或緩存器,儲存在驅(qū)動器控制部分。 定義:棧是條目的列表或序列,條目從棧的一邊進入,從另一邊出。對于我們的驅(qū)動器,棧中的條目就是指令, 當指令到達棧的底部的時候控制器就會執(zhí)行該指令。棧存在于控制器不穩(wěn)定的存儲部分中,當電源關(guān)閉后留在棧中還沒有執(zhí)行的指令就會丟失。 Q驅(qū)動器中的程序
現(xiàn)在,雖然62條指令可以組合提供很多功能,但是在應(yīng)用上還是有更多的需求。這里我們設(shè)計非易失性存儲單元來存儲更多的指令,然后把單元分解成和棧一樣的大小。每個驅(qū)動器中有12個非易失性存儲單元,都可以用來存儲指令,表現(xiàn)在Q-Program中就是有12個部分(segment),每個部分有62行,即一個棧的長度。每個部分中的指令可以馬上調(diào)入到棧中。例如,我們開始程序先執(zhí)行segment 1,在最后有個指令是調(diào)segment 2到棧中。這個調(diào)用過程僅需要125微秒,基本上可以忽略。12個部分相互調(diào)用,每個部分有62行指令,所以現(xiàn)在可以有744個指令,可以實現(xiàn)更多功能的組合。
一個指令由2個或3個ASC碼字符(只有字母是代表命令本身)構(gòu)成。一些指令在初始的2或3個ASC碼字符后面還跟有其他參數(shù)(字母,數(shù)字, 其他的ASCII字符)。這里有倆中基本的指令:立即和緩存。一個立即指令會被馬上執(zhí)行,不管目前棧中在它之前的指令的指令是什么。一個緩存指令會在棧中 等到其他在棧中存貯的緩存指令執(zhí)行完以后才會執(zhí)行。 緩存器和立即指令
兩種類型的指令:緩存和立即。緩存指令在棧中按順序存儲,按存儲的順序執(zhí)行。如果您向棧中寫入兩個緩存指令,
那么第二個指令只有在第一個指令結(jié)束后才會執(zhí)行。(在多任務(wù)處理部分有例外)立即指令是立即被執(zhí)行的,
不管棧中其他執(zhí)行的指令,就是說可以和緩存指令并行執(zhí)行。
▲Q編程程序示例 只有緩存指令可以用來編寫程序。原因很簡單,在駐留的程序中,指令是根據(jù)外部事件同時處理的。立即指令不需要外部事件的觸發(fā)。當使用主機控制器寫入指令到Q驅(qū)動器中,立即和緩存指令都可以使用,這取決于功能是否復雜,需要何種控制。在一些應(yīng)用中,立即指令和緩存指令都可以達到目的,這樣您就需要做出最佳的選擇。
▲Q編程程序示例 Q編程程序分類
例如:
緩存指令類別,接下來是7個緩存指令的描述。 |
|
來自: 官山665 > 《3 運動控制技術(shù)》