鳴志驅動器特有的《Q編程》

時間:2019-11-07 08:03 作者:鳴志迷 分享到:

Q編程基礎

Q驅動器中的Q來自單詞queue。這是因為Q驅動器執行的命令是排入棧,或緩存器,儲存在驅動器控制部分。 定義:棧是條目的列表或序列,條目從棧的一邊進入,從另一邊出。對于我們的驅動器,棧中的條目就是指令, 當指令到達棧的底部的時候控制器就會執行該指令。棧存在于控制器不穩定的存儲部分中,當電源關閉后留在棧中還沒有執行的指令就會丟失。

Q驅動器中的程序

現在,雖然62條指令可以組合提供很多功能,但是在應用上還是有更多的需求。這里我們設計非易失性存儲單元來存儲更多的指令,然后把單元分解成和棧一樣的大小。每個驅動器中有12個非易失性存儲單元,都可以用來存儲指令,表現在Q-Program中就是有12個部分(segment),每個部分有62行,即一個棧的長度。每個部分中的指令可以馬上調入到棧中。例如,我們開始程序先執行segment 1,在最后有個指令是調segment 2到棧中。這個調用過程僅需要125微秒,基本上可以忽略。12個部分相互調用,每個部分有62行指令,所以現在可以有744個指令,可以實現更多功能的組合。
指令結構
Q驅動器中所有的指令由3個可能的部分構成:指令本身和倆個參數。
一些指令沒有參數,一些指令一定需要配參數,還有一些指令的功能取決于是否有參數。

一個指令由2個或3個ASC碼字符(只有字母是代表命令本身)構成。一些指令在初始的2或3個ASC碼字符后面還跟有其他參數(字母,數字, 其他的ASCII字符)。這里有倆中基本的指令:立即和緩存。一個立即指令會被馬上執行,不管目前棧中在它之前的指令的指令是什么。一個緩存指令會在棧中 等到其他在棧中存貯的緩存指令執行完以后才會執行。
提示:棧中最多可以存儲62條指令
結構如下:
指令(參數1 )(參數2 )
指令一般由2個字母構成(有的是3個),參數一般由ASCII字符構成-字母,數字,其他的ASCII字符。例如:
FL
Feed to length指令 沒有參數 立即執行
SO1L
Set Output 指令 參數1="1",參數2="L" 設置驅動器輸出1為低電平
RL91000
寄存器Load指令 參數1="9",參數2="1000" 用戶定義的數據寄存器9寫入值1000。

緩存器和立即指令

兩種類型的指令:緩存和立即。緩存指令在棧中按順序存儲,按存儲的順序執行。如果您向棧中寫入兩個緩存指令, 那么第二個指令只有在第一個指令結束后才會執行。(在多任務處理部分有例外)立即指令是立即被執行的, 不管棧中其他執行的指令,就是說可以和緩存指令并行執行。
所有的指令都是這兩種類型。

0707-06.jpg

▲Q編程程序示例

只有緩存指令可以用來編寫程序。原因很簡單,在駐留的程序中,指令是根據外部事件同時處理的。立即指令不需要外部事件的觸發。當使用主機控制器寫入指令到Q驅動器中,立即和緩存指令都可以使用,這取決于功能是否復雜,需要何種控制。在一些應用中,立即指令和緩存指令都可以達到目的,這樣您就需要做出最佳的選擇。

0707-05.jpg

▲Q編程程序示例

Q編程程序分類

例如:
報警:AR(立即)AX(緩存)
停止:ST(立即)SM(緩存)
清除棧:SK(立即)QK(緩存)
寄存器裝載:RL(立即)RX(緩存)

緩存指令類別,接下來是7個緩存指令的描述。
1、運行指令
2、伺服指令
3、配置指令
4、I/O指令
5、通訊指令
6、Q 程序指令
7、寄存器指令

版權所有: 轉載請注明《鳴志迷》

手工制作 Handmade

舟山麻将官方下载