一 运动控制器的特点
SMC6480运动控制器是雷赛公司自主研发的基于10/100M以太网的通用型独立式运动控制器,可支持多个控制器和PC机组成运动控制系统;也可应用于各种单工位自动化设备上。
本控制器可控制4个步进或伺服电机,具有轨迹控制、网络控制等高级功能。基于FPGA的硬件结构,确保SMC6480控制器实现运动控制的高性能和系统运行的稳定性。运动控制算法及控制模块如:直线插补、圆弧插补、指令脉冲速度控制、原点及限位等信号的检测处理,均由运动控制器完成。
二 BASIC指令集的特点
SMC6480运动控制器采用雷赛公司自主开发的BASIC指令集编写用户的控制程序,通过简单的编程、参数设定即可开发出稳定可靠、高性能、高速连续轨迹运动控制系统。该指令集具有如下优点:
1.简单易学:基本的程序指令和Visual BASIC兼容;电机控制指令十分简单。和常用的PC机编程语言相比,该指令集具有统一变量类型、动态参数识别等特点,使用更加灵活。
2.交互性强:程序为解释执行方式,可以实时交互控制,用户可以随时了解程序执行的状态。
3.实时多任务:可以同时运行6个子任务,所以具有强大的实时多任务处理功能。
4. 中断响应:定时器信号、通用数字输入信号、限位信号可作为中断源,中断处理程序使控制器的响应速度更快。
三 电池焊接机的运动轨迹
某客户电池焊接机要求焊接电池端面顶部跑道形轨迹,产品外形如图1、图2所示。焊接轨迹如图3所示。
图1 电池产品外形一 图2 电池产品外形二
图3 焊接轨迹图
该电池焊接机的机械结构很特殊:X轴上固定Y轴,Y轴上固定U轴;电池工装固定在U轴上;激光焊接头水平固定,如图4所示。在焊接过程中焊接头始终保持和焊缝垂直的状态。
图4 焊接机俯视图
在运动控制器的控制之下,电池运动的位置如图5所示变化,先是C1位、然后是C2、C3、C4、C5和C6位。
图5 运动轨迹俯视图
如图6所示,电池的运动可以分解为X、Y轴的圆弧插补运动和U轴的旋转运动;即U轴的轴心OU绕圆心点O做圆弧插补运动;同时,电池绕U轴的轴心OU做旋转运动。当圆弧插补运动的圆心角a和电池绕U轴的转角b相等时,相当于电池绕圆心O做旋转运动。
图6 运动轨迹分析
电池焊缝上的点P0运动到P(m,n)处的轨迹方程为:
m = R sin a
n = R cos a
其中R为图6中的线段OP。
显然,该轨迹就是复合运动所产生的圆弧。在SMC6480运动控制器的BASIC程序中,调用螺旋插补命令,该复合运动就可以十分简单地完成。
四 电池焊接机的硬件结构
设备控制系统硬件结构图如图7所示。客户通过以太网从PC机下载BASIC程序至SMC6480运动控制器;机器正常运行时,不需要PC机参与工作。触摸屏通过串口与SMC6480交换信息、显示控制器的运动状态,接收操作者的指令。
图7 设备硬件系统结构图
五 焊接机BASIC程序
电池外形尺寸如图8所示,触摸屏界面如图9所示。
图8 焊接轨迹图
图9 触摸屏界面
BASIC程序代码如下:
auto: ’开机自动运行程序
Dim speed1 ’定义速度变量
FLASH_READ 1, speed1 ’读取已储存在Flash中的速度值
modbus_reg(2) = speed1 ’将读取的速度值显示在触摸屏上
run_state = 1 ’定义运动状态:1:停止,2:运行
out(1,0) ’初始化输出口1
out(3,0) ’初始化输出口3
while 1
if in(1) = 1 then ’触摸屏的启动按钮按下
if run_state = 1 then
stop 1
run 1, runtask ’启动任务1:runtask
end if
else
if in(4) = 1 then ’触摸屏的回零按钮按下
if run_state = 1 then
homemove ’运动平台回原点
end if
else
if modbus_bit(0) = 1 then ’触摸屏的保存参数按钮按下
modbus_bit(0) = 0
speed1= modbus_reg(2)
FLASH_WRITE 1, speed1 ’将速度参数保存到FLASH中
end if
end if
end if
wend
end
runtask: ’运行
run_state =2
out(3,0) ’运动完成信号置零
out(1,1) ’开激光
base(0,1,2)
VSPEED = speed1 ’设定当前坐标系插补轨迹速度
pmoveabs(100,100) ’按绝对坐标点位运动到起始点
wait idle ’等待轴停止
move(1000,0) ’直线插补,相对运动到(1000,0)
wait idle ’等待轴停止
MHELICAL(-1000,0,-500,0,1,100,1) ’螺旋插补,XY轴顺时针、相对运动半个圆、
’同时U轴转180度;
’U轴设定为每100个脉冲对应180度
wait idle ’等待轴停止
move(1000,0) ’直线插补,相对运动到(1000,0)
wait idle ’等待轴停止
MHELICAL(-1000,0,-500,0,1,100,1) ’螺旋插补,XY顺时针相对运动半个圆、
’同时U轴转180度
wait idle ’等待轴停止,整个轨迹结束
out(1,0) ’关激光
run_state = 1
out(3,1) ’运动完成信号输出
end
程序中几个关键指令解释如下:
1.PMOVEABS
语法:PMOVEABS( position1, position2, position3, position4 )
描述:点位运动
参数:position i:第i个轴运动坐标
2.MOVE
语法:MOVE( distance1 ,distance2 ,distance3 ,distance4 )
描述:直线插补运动
参数:distance i:第i个轴运动距离
3.MHELICAL
语法:MHELICAL(end1,end2,centre1,centre2,direction,distance3,mode)
描述:螺旋插补运动,第一轴和第二轴进行圆弧插补,第三轴相对于一、二轴的圆弧角做比例运动
参数:end1:第一个轴终点坐标
end2:第二个轴终点坐标
centre1:第一个轴圆心坐标,相对与起始点
centre2:第二个轴圆心坐标,相对与起始点
Direction:0-逆时针,1-顺时针
distance3:第三个轴运动距离
Mode:0-第三轴参与速度计算;1-第三轴不参与速度计算
六 总结
综上所述,我们可以看出,和PLC相比SMC6480运动控制器具有运动控制功能多、处理I/O信号能力强、性价比高等优点;而且采用BASIC编程十分简单、方便,很容易上手;使用SMC6480运动控制器可以轻而易举地完成各种自动化设备的复杂运动控制。