Trio范例(3)

2019-03-28 22:07

ACCEL=10*SPEED DECEL=10*SPEED CREEP=1 FWD_IN=-1 REV_IN=-1 DATUM_IN=0 INVERT_IN(0,ON) DATUM(3) MOVE(-10000) WAIT IDLE DEFPOS(0)

IF IN(0)=0 AND g_zero_flag=1 THEN g_zero_flag=0

ENDIF VR(cur_couts)=108 ENDIF GOTO loop

答:回原点是一次性行为,没必要做一个循环。需要再次回原点,也只需再调用该程序一次。

FEEDHOLD_IN(FH_IN)设定一个进给保持(暂停)输入,就可以实现你想要的功能。该输入有效,机器就暂停,该输入又复位,机器就继续运行。

范例十二: 『原创』

' InitData'----------------------------------------------- GOSUB init_data

' Initialisation of serial ports----------------------------------------------- GOSUB init_serial

'Stops all movements and programs'----------------------------------------------- GOSUB stop_all

' Initialisation axis parameters'----------------------------------------------- RUN \

'Wait until process is stopped

WAIT UNTIL PROC_STATUS PROC(3)=0 WA(200) WDOG=ON WA(10)

'Return Machine Home When Power On GOSUB zero_m4

'---------------------------Main Cycle Start----------------------------------' WHILE(TRUE)

'Start the applic ation programs WDOG=ON

IF IN(safety_gate) = 0 AND IN(emg_stop)=0 AND IN(line_cut)=0 THEN TABLE(display_alarm,0) RUN \

WAIT UNTIL PROC_STATUS PROC(5)=1

RUN \

WAIT UNTIL PROC_STATUS PROC(6)=1 CLEAR_BIT(4,1) runflag=1 ENDIF

IF IN(safety_gate) = 1 THEN'Safety Gate Alarm TABLE(display_alarm,33) ENDIF

IF IN(emg_stop)=1 THEN'Emergency Alarm TABLE(display_alarm,35) ENDIF

IF IN(line_cut) = 1 THEN'Line Cut Alarm TABLE(display_alarm,36) ENDIF 'Main loop

'------------------------------------------ WHILE(runflag=1) ' Check for motion error IF MOTION_ERROR THEN '...

TABLE(display_alarm,34) GOSUB m_error runflag=0 ENDIF

' Check for Safety Gate Alarm and Emergency stop and Line Cut Alarm IF IN(1) = 1 OR IN(2)=1 OR IN(3)=1 OR READ_BIT(4,1)=1 THEN '...

GOSUB e_stop GOSUB data_reset WA(10)

CLEAR_BIT(4,1)'Reset Buttom runflag=0 ENDIF

' Check Manual Return Home

IF READ_BIT(2,0)=1 AND a_flag=0 THEN '... BASE(0) WA(2)

IF MTYPE = 0 THEN

SET_BIT(4,0)'Zero Led Display GOSUB zero_m4 WA(1)

CLEAR_BIT(4,0)'Zero Led Display ENDIF a_flag=1 ENDIF

IF READ_BIT(2,0)=0 THEN a_flag=0 WEND WEND

'---------------------------Main Cycle End----------------------------------' '---------------------------Sub Function Start------------------------------' m_error:

' Stop all movements GOSUB stop_all RETURN e_stop:

' Emergency Stop GOSUB stop_all RETURN stop_all:

GOSUB stop_all_program GOSUB stop_all_moves GOSUB wdog_off RETURN

stop_all_program: 'Stops all programs STOP \

WAIT UNTIL PROC_STATUS PROC(5)=0 STOP \

WAIT UNTIL PROC_STATUS PROC(6)=0 RETURN

stop_all_moves:

'Stops all possible moves ADDAX(-1) AXIS(0) ADDAX(-1) AXIS(1) ADDAX(-1) AXIS(2) ADDAX(-1) AXIS(3) ADDAX(-1) AXIS(4) RAPIDSTOP WA(20)

FOR i = 0 TO 7 BASE(i) CANCEL(1) WA(1) CANCEL(1) WA(1) CANCEL WAIT IDLE

DATUM(0) 'Reset the possible following error SERVO = OFF NEXT i

RETURN 'WDOG OFF wdog_off: BASE(0) 'Disable all axis WDOG=OFF RETURN init_data: safety_gate=1 emg_stop=2 line_cut=3 display_alarm=124 RETURN data_reset: '

TABLE(display_alarm,0) RETURN init_serial: 'ADDRESS=1

SETCOM(19200,7,2,2,1,5,1) WA(500) RETURN zero_m4:

'When Power On and Zero is Ok BASE(0)

UNITS=16384*16/((11*3.14159*15/70)*1000)'0.001mm SPEED=10*16384*16/UNITS CREEP=4*16384*16/UNITS

ACCEL=SPEED*100 'acc_time=10ms DECEL=SPEED*100 SERVO=0

DATUM_IN AXIS(0)=0 DATUM(3)

WAIT UNTIL DPOS AXIS(0)=0 CANCEL CANCEL

DEFPOS(0)AXIS(0) RETURN

'---------------------------Sub Function End---------------------------------'

范例十三:

螺旋插补指令(MHELICAL)

MHELICAL 螺旋插补

类型:运动控制指令

语法:MHELICAL(end1,end2,centre1,centre2,direction,distance3,[mode]) 说明:执行一个螺旋插补运动

在两个正交轴之间做圆弧插补,同时第三轴做线性运动,前五个参数和圆弧插补指令MOVECIRC()类似,第六个参数定义同时要走的第三轴的线性距离。End1和center1工作在当前的基本轴,End2和center2工作在下一轴。前四个距离和第六个参数是以各自轴的单位转换因子为单位。 参数:

end1BASE基准轴要停止的相对于起点的位置

end2BASE基准阵列中,下一个轴的要停止的相对于起点的位置 centre1圆心相对于BASE基准轴起点的位置

centre2圆心相对于BASE基准阵列,下一个轴的起点的位置

direction圆弧插补方向软件开关设成1为顺时针方向/ 设成0为逆时针方向 distance 3 BASE基准阵列中,第三轴走的线性距离

mode: 0 =标准的螺旋插补 1 =只插补前两个轴第三轴随动

例子:

例1下面的这段程序的功能是,通过轴1和轴2,使得工具绕圆角长方形运动,通过转动轴3让工具始终与长方形垂直。轴3单位是度

REP_OPTION AXIS(3)=ON ‘ 运动开始三个轴需要回零点 MERGE=ON

MOVEABS(360) AXIS(3) ‘校正3轴开始角度 WAIT IDLE AXIS(3) MOVE(0,12)


Trio范例(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:项目部安全主管先进事迹材料

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: