图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运动控制器可以轻而易举地完成各种自动化设备的复杂运动控制。
作者简介
聂国强 男 ,工程师 2007年河北工程大学自动化专业毕业,现在深圳从事自动化技术研发工作。
左 力 男, 博士,高级工程师 1998年华中理工大学机械学院毕业,现在深圳从事自动化技术研发工作。