Q编程基础Q驱动器中的Q来自单词queue。这是因为Q驱动器执行的命令是排入栈,或缓存器,储存在驱动器控制部分。 定义:栈是条目的列表或序列,条目从栈的一边进入,从另一边出。对于我们的驱动器,栈中的条目就是指令, 当指令到达栈的底部的时候控制器就会执行该指令。栈存在于控制器不稳定的存储部分中,当电源关闭后留在栈中还没有执行的指令就会丢失。 Q驱动器中的程序
现在,虽然62条指令可以组合提供很多功能,但是在应用上还是有更多的需求。这里我们设计非易失性存储单元来存储更多的指令,然后把单元分解成和栈一样的大小。每个驱动器中有12个非易失性存储单元,都可以用来存储指令,表现在Q-Program中就是有12个部分(segment),每个部分有62行,即一个栈的长度。每个部分中的指令可以马上调入到栈中。例如,我们开始程序先执行segment 1,在最后有个指令是调segment 2到栈中。这个调用过程仅需要125微秒,基本上可以忽略。12个部分相互调用,每个部分有62行指令,所以现在可以有744个指令,可以实现更多功能的组合。
一个指令由2个或3个ASC码字符(只有字母是代表命令本身)构成。一些指令在初始的2或3个ASC码字符后面还跟有其他参数(字母,数字, 其他的ASCII字符)。这里有俩中基本的指令:立即和缓存。一个立即指令会被马上执行,不管目前栈中在它之前的指令的指令是什么。一个缓存指令会在栈中 等到其他在栈中存贮的缓存指令执行完以后才会执行。 缓存器和立即指令
两种类型的指令:缓存和立即。缓存指令在栈中按顺序存储,按存储的顺序执行。如果您向栈中写入两个缓存指令,
那么第二个指令只有在第一个指令结束后才会执行。(在多任务处理部分有例外)立即指令是立即被执行的,
不管栈中其他执行的指令,就是说可以和缓存指令并行执行。
▲Q编程程序示例 只有缓存指令可以用来编写程序。原因很简单,在驻留的程序中,指令是根据外部事件同时处理的。立即指令不需要外部事件的触发。当使用主机控制器写入指令到Q驱动器中,立即和缓存指令都可以使用,这取决于功能是否复杂,需要何种控制。在一些应用中,立即指令和缓存指令都可以达到目的,这样您就需要做出最佳的选择。
▲Q编程程序示例 Q编程程序分类
例如:
缓存指令类别,接下来是7个缓存指令的描述。 |
|
来自: 官山665 > 《3 运动控制技术》