供需大厅

登录/注册

公众号

更多资讯,关注微信公众号

小秘书

更多资讯,关注荣格小秘书

邮箱

您可以联系我们 info@ringiertrade.com

电话

您可以拨打热线

+86-21 6289-5533 x 269

建议或意见

+86-20 2885 5256

顶部

荣格工业资源APP

了解工业圈,从荣格工业资源APP开始。

打开

Q编程介绍及例程

来源:鸣志 发布时间:2021-02-02 819
工业金属加工智能制造其他运动控制传感器工业机器人液压与气动技术机械传动工业互联智能仓储物流仪器仪表智能加工设备
收藏
这些程序可以保存在驱动器的非易失性存储器中,驱动可以脱离主机独立运行这些程序。Q程序为系统设计提供了高度的灵活性和强大的功能。

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圈的位置。


33333.png

运动到传感器位置(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设定值:

 

444444.png

注意:当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程序段内后续指令。


1612270813455757.jpg


多任务处理(Multi-tasking)

多任务处理模式(MT1)允许程序在执行运行指令(如FL,FP,CJ,FS等)时,同时执行其他指令,而不需要等待前一个运行指令的结束。在单任务处理模式(MT0)下,Q程序是顺序执行的,即执行下一条指令会等待上一条指令的结束。例如,FL指令后是SO指令,那么驱动器在FL指令结束后才会设置输出。当开启多任务处理模式(MT1),Q程序执行运行指令的同时会执行后面的指令。例如,上面的FL,SO指令,执行多任务处理,驱动器开始运行并且立即执行输出设置,不需要等待FL指令执行完毕。多任务处理由MT指令设置,MT1为多任务处理开启,MT0为多任务处理关闭(单任务处理模式)。

   1612270813503250.jpg

例如上图所示,当MT=1,驱动器执行FL指令,等待0.5秒后设置输出口Y1为低电平,不需要等待FL指令结束后,再等待0.5秒才输出低电平。以上是一个最基本的例子,如果您尝试对您的驱动器进行编程,请尽量保证DI值足够大以观察不同的指令执行后的区别。注意,因为电机不能同时执行两种运动,即使多任务处理开启后,运动指令还是会有先后顺序。例如,多任务处理开启后,程序中连续有两种运行指令,那么驱动器还是会等待第一条指令完成后执行下一条指令。


收藏
推荐新闻