以施耐德公司的位置控制模板TSXCAY系列为例:如图所示:9针D型阳插座输出4路模拟信号,可以控制4台驱动器。
15针D型插座接收反馈信号。
反馈信号可以是绝对编码SSI或增量编码RS422。
它们的电源由外部提供。
电源可以是5V或24V。
外部电源由HE10型插座接入。
如图示说明:TSXCAY位置控制单元还集成了基本的输入/输出端子,使得在运动控制过程中更加完善了它的控制功能,例如:原点开关,位置限位,事件开关等,电源也由此输入。
如图所示:I0: 原点开关I1: 紧急停止开关I2: 事件开关I3: 自较正开关Q0:辅助输出下面就是一个在通道0 实际连接的例子。
PO是原点开关,用于程序中的寻原点的执行。
FCD,FCG,AT_UR都是紧急停止开关。
EVT是一个事件开关,可以在程序中进行中断情况的处理。
REC可以是自校正的处理开关。
另外,TSXCAY还集成了对驱动单元的管理功能,例如,驱动器的使能,驱动器出错的报警等。
如图示:COMx, VALVARx为输出到相应驱动器的使能控制。
OK_VARx 为驱动器正常工作的输入信号。
连接如图:TSXCAY 驱动器综上所述,所有这些硬件构成了位置控制的最基本要素,无论是哪家的产品,结构都基本如此。
2.3 脉冲输出的位置控制结构如上图所示脉冲输出对位置的控制,结构简捷,不需要来自电机或驱动器的反馈。
运动的位置取决于驱动器接收的脉冲数,运动的速度取决于脉冲的频率。
对电流,速度,位置的调节都在驱动器里。
它可以实现对位置的点到点的控制和同步跟随控制。
2.4 典型的硬件结构如图所示以施耐德公司的步进控制模板TSXCFY系列为例15针D型插座输出脉冲信号,使能信号。
同时也接收来自驱动器的运行状态信号。
连接结构如下图所示:TSXCFY 驱动器在TSXCFY模板中也集成有基本的输入/输出点,这些输入/输出点构成了运动控制的完整功能。
如限位,原点等。
它们的功能分布如图所示:这些输入/输出点的连接,都是通过HE10端子连接的,通过这些I/O点,实现了对运动过程中,原点的定位,紧急停车及事件的中断处理。
实际的连接如下图:2.5 运动控制的软件编程设计各个伺服产品供应商都为自己的产品配上了相应的控制软件,有的集成在PLC软件中,有的集成在CNC软件中,有的自成体系。
但就其编程规律和所要完成的目标基本是一致的。
我们以施耐德PREMIUM PLC中的编程语言PL7为例,说明运动控制系统的编程设计。
2.5.1运动控制系统的配置由于运动控制模板是挂在PLC机架上,因此,在对它进行编程时,首先要对它的参数进行组态,以满足实际要求。
在一个CPU机架上, 我们配置位置控制模板CAY21.点击CAY21,出现如下画面:点击下拉菜单,选择”Position control”。
出现如下画面:Units: 单位,在此点击下拉菜单,选择合适的单位,如:MM(毫米)等。
Initial resolution: 初始分辨率,Distance:长度距离; Counts:脉冲数。
初始分辨率取决于编码器的分辨率。
它通常不是一个整数。
它是一个比例数,表述为:初始分辨率=长度( Distance)/脉冲数(Counts)。
式中:长度(Distance)指运动物体走过的距离。
脉冲数(Counts)指对应于走过的距离,编码器发出的脉冲数。
例如:电机转一圈发出512个脉冲,对应走过的长度为10000微米,因此,初始分辨率为10000/512=19.5微米。
Encoder type: 编码器类型,可以选择增量编码或绝对编码。
Inversion: 对模拟量输出或测量输入进行反向,从而不用改动硬件连接就可以定义某一方向为正向。
Sequence control: 此参数用于定义分段运动不停止(G01,G11,G30)时的跟随顺序。
Hi limit: 正向位置限制值。
Lo limit: 反向位置限制值。
Max. speed: 最高速度限制。
Max. setpoint: 最高模拟量输出值。
Max.acc. Vmax: 最快加速时间。
Event: 事件的使能,选择事件有效,则遇到事件触发就进入中断程序。
Event input: 事件触发形式选择。
Reference point: 寻原点方式选择。
Recalibrate: 自校正位置,防止累计误差。
按以上原则,填好参数,点击最上面的‘对钩’栏,如无错误,配置就完成了。
如下图:完成对系统的组态后,我们就可以编写程序了。
2.5.2 运动控制命令的编写在PL7中,运动控制的编程语言为: SMOVE %CHxy.i (N_Run,G9_,G,X,F,M)%Chxy.i: 轴控模块在PLC组态中的地址。
x:机架号y:轴控模块在机架上的位置i:轴通道号如上图,机架号为零,x=0CAY21占用的槽位是2号,所以地址是%CH2.0和%CH2.1两个轴通道。
N_Run:0- 32767, SMOVE功能执行的任务标号,在调试方式下用以确认当前的动作所属。
G9_:运动动作类型标识90:运动到一个绝对位置。
91:运动到一个与当前位置相关的相对位置。
98:运动到一个与存储位置PREF相关的相对位置。
(用指令码G07来存储PREF位置值)60:沿指定方向的绝对运动(只在无限轴)。
68:沿指定方向运动到一个与存储位置PREF相关的相对位置。
(只在无限轴)G:指令码09:运动到位置并停止01:运动到位置且不停10:运动到触发事件点并停止11:运动到触发事件点且不停止14:寻原点05:等待事件07:当事件触发时存储当前位置62:强制原点21:无限轴运动中的动态参考点设置04:停止运动指令码图示如下:X:对应要到达的位置。
这个位置可以是立即数,也可以是双字变量%MDi,内部常数%KDi 。
这里需要注意,当使用指令G14和G62时,此时X值表示:要设定的原点位置。
长度单位是在组态中设定的单位。
F:运动的速度,这个速度可以是立即数,也可以是双字变量%MDi和常量%KDi。
速度值的选取在10到最大值之间。
单位取决于长度单位。
速度单位=U*1000/min, 式中U为长度单位。
例如:长度单位为:mm,速度单位=mm*1000/min--> m/minM:事件处理设置,辅助输出设置。
它是由4个半字节组成的16进制码,16# 3 2 1 0当第12位:设为1,则事件触发指令G10,G11,G05,G07有效。
设为0,则事件触发指令无效。
第二组半字节用于在G01,G09,G10,G11指令时设置相关通道的辅助输出。
这组半字节为:0:Unchanged: 输出无变化。
1:synchronized with mvt: 指令开始执行时,输出状态定义。
2:consecutive to mvt: 指令执行结束时,输出状态定义。
第0组半字节用于定义输出的高/低有效。
0:定义输出为“0”。
1:定义输出为“1”。
对于事件指令G05,用第13位来定义:第13位:0:等待时间中断或一个事件。
1:等待位置刷新中断。
例子:16#0101:表示事件触发中断无效,当执行SMOVE指令时,辅助输出为 1。
16#1201:表示事件触发中断有效,SMOVE指令执行结束,辅助输出为 1。
此M码通过选择Auxiliary discrete output 列出的选项,自动完成设置。
如图所示2.5.3 基本运动命令的使用最基本运动•运动到一个位置(指令码 01,09),•一直运动到一个事件触发(指令码11,10),•寻原点(指令码14)。
在编写这些程序时,我们要写出要到达的位置及运动速度,加减速参数在组态中设置(矩形,三角形,梯形)。
例1:相对于原点走一绝对定长,位置=50000,速度=1000。
(类型:90)例2:相对目前位置走一定长,长度=40000,速度=1000。
(类型:91)例3:相对于存储器PREF1内位置走一定长,定长=30000,速度=1000。
(类型:98)存储器PREF1内位置由G07指令设置。
在无限轴的应用中,不论当前位置和目标位置怎样,它总是可以从正向或反向到达目标。
也就是说,有3种方式可以完成从A点到B点的运动。
•正向走到位置。
(Movement 1)•反向走到位置。
(Movement 2)•最短的运动距离,由位控模块决定运动方向。
或由速度符号决定运动方向。
(Movement 3)所以,无限轴的运动可以如下编程:例4:相对于原点的最短距离运动,到达位置(类型:90)。
在这种情况下,最短运动距离决定运动方向。
例5:按设置方向运动,到达位置(类型:60)。
在这种情况下,速度符号定义了方向。
例6:点到点,到位置后停止一直运动到触发事件的输入(指令码:10,11)指令 G11,G10 非常类似于指令G01,G09, 只不过是遇到事件触发,指令结束。
(或者,没有碰到事件触发,而到达设定位置,使指令结束。
)这些事件EVENT的触发•可以是从相关通道的事件输入端输入的上升沿或下降沿。
(这取绝于在EVENT 选项中的组态。
)•也可以是由程序产生的上升沿 EXT_EVENT 位 (%Qxy.i.10),它是由位置参数决定的。
当一直没有碰到事件触发,而且到达这个位置,则指令就结束了。
当M参数的第12位被设成“1”则碰到事件触发就可以启动一个事件处理程序。
例7:一直运动到触发事件,但不停止运动例 8:一直运动到触发事件,并停止.编简单的加工指令一个简单的加工指令如下:G32,G30 通常用来建立一个简单加工轮廓,它包括:•用指令G32 定义趋进速度。
•用指令G30 定义加工速度和目标位置。
例9:起始速度1000,然后加工到位置5000000时,速度为500。
寻原点程序的编制:寻原点指令如下:根据寻原点方式,运动轴找原点开关或编码器电气零点位置,找到后,把当前位置定义为原点。
寻原点方式在轴控的组态画面中完成。
例10:原点定义在5000000。
运动速度为200。
即,碰到原点开关后,停止的位置为5000000。
例11:寻原点方式为:反方向碰原点开关后,在电气零点停止。
此点为原点。
在运动过程中,参考点的设置:指令码 21在运动过程中,通过触发一个参考点事件来定义参考点的指令如下:例:执行条件:•增量编码器•重校功能无效状态•运动指令码为60停止运动: 指令码 04这个指令功能是用来停止G01,G30和G11这些没有停止功能的运动的, 它相当于停止命令。
但与停止命令不同的是,当用G04停止一个运动时,并不清空缓冲器。
例如,10秒后,停止一个G01的运动。
SMOVE %CH 2.0 (1,91,01,100000,1500,16#0000)SMOVE %CH 2.0 (2,90,05, 0 ,10000,16#0000)SMOVE %CH 2.0 (3,90,04,0,0,16#0000)强制参考点:指令码 62这个指令用于强制一个参考点(此时电机不能运动,处于静止)。