Files
newspark110/device/control/acs/buffercode/tohomecode.cpp

1404 lines
43 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "tohomecode.h"
ToHomeCode::ToHomeCode()
{
}
#ifdef MACHINE001
QString ToHomeCode::getCode()
{
QString code("\n");
code +=
// 取消ZA限位
"FDEF(ZA).#LL=0\n"
"FDEF(ZA).#RL=0\n"
"FMASK(ZA).#SRL=0\n"
"FMASK(ZA).#SLL=0\n"
"ENABLE (ZA)\n"
"COMMUT (ZA)\n"+
QString("VEL(ZA) = %1\n").arg(ZAAxisToSafePosVel)+
QString("ACC(ZA) = %1\n").arg(ZAAxisToSafePosVel*10)+
QString("DEC(ZA) = %1\n").arg(ZAAxisToSafePosVel*10)+
QString("JERK(ZA) = %1\n").arg(ZAAxisToSafePosVel*100)+
QString("KDEC(ZA) = %1\n").arg(ZAAxisToSafePosVel*100)+
// ZA向正方向JOG移动速度为10mm/s
"JOG (ZA),+\n"
// 阻塞直到ZA碰到右限位
"TILL FAULT(ZA).#RL\n"
"HALT ZA\n"
"HRLROUT(Z0)=0301\n"
"HLLROUT(Z0)=0300\n"
//"HRLROUT(Z0)=0501\n"
//"HLLROUT(Z0)=0500\n"
// 禁用X轴补偿
"MFLAGS(X).17=1\n"
// 禁用X机械误差补偿
"ERRORMAPOFF X,0\n"
// 禁用X轴限位
"FDEF(X).#LL=0\n"
"FDEF(X).#RL=0\n"
"FMASK(X).#SRL=0\n"
"FMASK(X).#SLL=0\n"
"ENABLE (X)\n"+
QString("VEL(X) = %1\n").arg(XAxisVel)+
QString("ACC(X) = %1\n").arg(XAxisVel*10)+
QString("DEC(X) = %1\n").arg(XAxisVel*10)+
QString("JERK(X) = %1\n").arg(XAxisVel*100)+
QString("KDEC(X) = %1\n").arg(XAxisVel*100)+
// X轴向负方向JOG移动
"JOG (X),-\n"
// 阻塞直到X轴碰到左限位
"TILL FAULT(X).#LL\n"
// 停止X轴
"HALT X\n"+
QString("VEL(X) = %1\n").arg(XAxisFindINDVel)+
QString("ACC(X) = %1\n").arg(XAxisFindINDVel*10)+
QString("DEC(X) = %1\n").arg(XAxisFindINDVel*10)+
QString("JERK(X) = %1\n").arg(XAxisFindINDVel*100)+
QString("KDEC(X) = %1\n").arg(XAxisFindINDVel*100)+
// X轴向正方向JOG移动
"JOG (X),+\n"
// 阻塞直到左限位为OFF
"TILL ^FAULT(X).#LL\n"
// X轴的IND信号置为0
"IST(X).#IND=0\n"
// 阻塞直到X轴碰到IND信号
"TILL IST(X).#IND\n"+
// 把原点磁铁位置设置为79mm
QString("SET FPOS(X)=FPOS(X)-IND(X)+%1\n").arg(XAxisINDZeroOffset)+
QString("VEL(X) = %1\n").arg(XAxisVel)+
QString("ACC(X) = %1\n").arg(XAxisVel*10)+
QString("DEC(X) = %1\n").arg(XAxisVel*10)+
QString("JERK(X) = %1\n").arg(XAxisVel*100)+
QString("KDEC(X) = %1\n").arg(XAxisVel*100)+
// 走到0点位置阻塞执行
QString("PTP/e (X),%1\n").arg(XAxisToHomePos)+
// 设置X轴软限位
QString("SRLIMIT(X)=%1\n").arg(XAxisSRLimit)+
QString("SLLIMIT(X)=%1\n").arg(XAxisSLLimit)+
// 启用X轴限位
"FDEF(X).#LL=1\n"
"FDEF(X).#RL=1\n"
"FMASK(X).#SRL=1\n"
"FMASK(X).#SLL=1\n"
"MFLAGS(Y).17=1\n"
// 禁用Y轴机械误差补偿
"ERRORMAPOFF Y,0\n"
// 禁用Y轴限位
"FDEF(Y).#LL=0\n"
"FDEF(Y).#RL=0\n"
"FMASK(Y).#SRL=0\n"
"FMASK(Y).#SLL=0\n"
"ENABLE (Y)\n"+
QString("VEL(Y) = %1\n").arg(YAxisVel)+
QString("ACC(Y) = %1\n").arg(YAxisVel*10)+
QString("DEC(Y) = %1\n").arg(YAxisVel*10)+
QString("JERK(Y) = %1\n").arg(YAxisVel*100)+
QString("KDEC(Y) = %1\n").arg(YAxisVel*100)+
// Y轴向负方向JOG移动
"JOG (Y),-\n"
// 阻塞直到Y轴碰到左限位
"TILL FAULT(Y).#LL\n"
// 停止Y轴
"HALT Y\n"+
QString("VEL(Y) = %1\n").arg(YAxisFindINDVel)+
QString("ACC(Y) = %1\n").arg(YAxisFindINDVel*10)+
QString("DEC(Y) = %1\n").arg(YAxisFindINDVel*10)+
QString("JERK(Y) = %1\n").arg(YAxisFindINDVel*100)+
QString("KDEC(Y) = %1\n").arg(YAxisFindINDVel*100)+
// Y轴向正方向JOG移动
"JOG (Y),+\n"
// 阻塞直到Y轴移开左限位
"TILL ^FAULT(Y).#LL\n"
// Y轴IND值设为0
"IST(Y).#IND=0\n"
// 直到Y轴碰到IND信号
"TILL IST(Y).#IND\n"+
// 原点磁铁位置设为114mm
QString("SET FPOS(Y)=FPOS(Y)-IND(Y)+%1\n").arg(YAxisINDZeroOffset)+
QString("VEL(Y) = %1\n").arg(YAxisVel)+
QString("ACC(Y) = %1\n").arg(YAxisVel*10)+
QString("DEC(Y) = %1\n").arg(YAxisVel*10)+
QString("JERK(Y) = %1\n").arg(YAxisVel*100)+
QString("KDEC(Y) = %1\n").arg(YAxisVel*100)+
// Y轴走到0位
QString("PTP/e (Y),%1\n").arg(YAxisToHomePos)+
// 设置Y轴软限位
QString("SRLIMIT(Y)=%1\n").arg(YAxisSRLimit)+
QString("SLLIMIT(Y)=%1\n").arg(YAxisSLLimit)+
// 启用Y轴限位
"FDEF(Y).#LL=1\n"
"FDEF(Y).#RL=1\n"
"FMASK(Y).#SRL=1\n"
"FMASK(Y).#SLL=1\n"
// 禁用Z1轴补偿
"MFLAGS(Z).17=1\n"
"ERRORMAPOFF Z,0\n"
"FDEF(Z).#LL=0\n"
"FDEF(Z).#RL=0\n"
"FMASK(Z).#SRL=0\n"
"FMASK(Z).#SLL=0\n"
"ENABLE (Z)\n"+
QString("VEL(Z) = %1\n").arg(ZAxisVel)+
QString("ACC(Z) = %1\n").arg(ZAxisVel*10)+
QString("DEC(Z) = %1\n").arg(ZAxisVel*10)+
QString("JERK(Z) = %1\n").arg(ZAxisVel*100)+
QString("KDEC(Z) = %1\n").arg(ZAxisVel*100)+
// Z1轴向正方向JOG移动
"JOG (Z),+\n"
// 阻塞直到Z1轴碰到右限位
"TILL FAULT(Z).#RL\n"
// 停止Z1轴
"HALT Z\n"+
QString("VEL(Z) = %1\n").arg(ZAxisFindINDVel)+
QString("ACC(Z) = %1\n").arg(ZAxisFindINDVel*10)+
QString("DEC(Z) = %1\n").arg(ZAxisFindINDVel*10)+
QString("JERK(Z) = %1\n").arg(ZAxisFindINDVel*100)+
QString("KDEC(Z) = %1\n").arg(ZAxisFindINDVel*100)+
// Z1轴向负方向移动
"JOG (Z),-\n"
// 阻塞直到Z1轴脱离右限位
"TILL ^FAULT(Z).#RL\n"
// Z1轴IND值设为0
"IST(Z).#IND=0\n"
// 阻塞直到Z1轴碰到IND信号
"TILL IST(Z).#IND\n"+
// Z1轴原点磁铁位置设置为-4mm lihongchang -2.5
QString("SET FPOS(Z)=FPOS(Z)-IND(Z)+%1\n").arg(ZAxisINDZeroOffset)+
QString("VEL(Z) = %1\n").arg(ZAxisVel)+
QString("ACC(Z) = %1\n").arg(ZAxisVel*10)+
QString("DEC(Z) = %1\n").arg(ZAxisVel*10)+
QString("JERK(Z) = %1\n").arg(ZAxisVel*100)+
QString("KDEC(Z) = %1\n").arg(ZAxisVel*100)+
// Z1轴回到0点
QString("PTP/e (Z),%1\n").arg(ZAxisToHomePos)+
// 设置Z1轴软限位
QString("SRLIMIT(Z)=%1\n").arg(ZAxisSRLimit)+
QString("SLLIMIT(Z)=%1\n").arg(ZAxisSLLimit)+
// 启用Z1轴软限位
"FDEF(Z).#LL=1\n"
"FDEF(Z).#RL=1\n"
"FMASK(Z).#SRL=1\n"
"FMASK(Z).#SLL=1\n"
// 禁用Z轴补偿
"MFLAGS(ZA).17=1\n"
"ERRORMAPOFF ZA,0\n"
// 禁用Z轴限位
"FDEF(ZA).#LL=0\n"
"FDEF(ZA).#RL=0\n"
"FMASK(ZA).#SRL=0\n"
"FMASK(ZA).#SLL=0\n"
"ENABLE (ZA)\n"+
QString("VEL(ZA) = %1\n").arg(ZAAxisVel)+
QString("ACC(ZA) = %1\n").arg(ZAAxisVel*10)+
QString("DEC(ZA) = %1\n").arg(ZAAxisVel*10)+
QString("JERK(ZA) = %1\n").arg(ZAAxisVel*100)+
QString("KDEC(ZA) = %1\n").arg(ZAAxisVel*100)+
// Z轴向正方向JOG移动
"JOG (ZA),+\n"
// 阻塞直到Z轴碰到右限位
"TILL FAULT(ZA).#RL\n"
// 停止Z轴
"HALT ZA\n"+
QString("VEL(ZA) = %1\n").arg(ZAAxisFindINDVel)+
QString("ACC(ZA) = %1\n").arg(ZAAxisFindINDVel*10)+
QString("DEC(ZA) = %1\n").arg(ZAAxisFindINDVel*10)+
QString("JERK(ZA) = %1\n").arg(ZAAxisFindINDVel*100)+
QString("KDEC(ZA) = %1\n").arg(ZAAxisFindINDVel*100)+
// Z轴向负方向JOG移动
"JOG (ZA),-\n"
// 阻塞直到Z轴离开右限位
"TILL ^FAULT(ZA).#RL\n"
// IND值置为0
"IST(ZA).#IND=0\n"
// 阻塞直到Z轴碰到IND信号
"TILL IST(ZA).#IND\n"+
// 原点磁铁位置设为61mm
QString("SET FPOS(ZA)=FPOS(ZA)-IND(ZA)+%1\n").arg(ZAAxisINDZeroOffset)+
QString("VEL(ZA) = %1\n").arg(ZAAxisVel)+
QString("ACC(ZA) = %1\n").arg(ZAAxisVel*10)+
QString("DEC(ZA) = %1\n").arg(ZAAxisVel*10)+
QString("JERK(ZA) = %1\n").arg(ZAAxisVel*100)+
QString("KDEC(ZA) = %1\n").arg(ZAAxisVel*100)+
QString("PTP/e (ZA),%1\n").arg(ZAAxisToHomePos)+
// 设置软限位
QString("SRLIMIT(ZA)=%1\n").arg(ZAAxisSRLimit)+
QString("SLLIMIT(ZA)=%1\n").arg(ZAAxisSLLimit)+
// 启用限位
"FDEF(ZA).#LL=1\n"
"FDEF(ZA).#RL=1\n"
"FMASK(ZA).#SRL=1\n"
"FMASK(ZA).#SLL=1\n"
// // 禁用Z2轴限位
// "FDEF(Z2).#LL=0\n"
// "FDEF(Z2).#RL=0\n"
// "FMASK(Z2).#SRL=0\n"
// "FMASK(Z2).#SLL=0\n"
// "ENABLE (Z2)\n"+
// QString("VEL(Z2) = %1\n").arg(Z2AxisVel)+
// QString("ACC(Z2) = %1\n").arg(Z2AxisVel*10)+
// QString("DEC(Z2) = %1\n").arg(Z2AxisVel*10)+
// QString("JERK(Z2) = %1\n").arg(Z2AxisVel*100)+
// QString("KDEC(Z2) = %1\n").arg(Z2AxisVel*100)+
// // Z2轴向负方向JOG移动
// "JOG (Z2),-\n"
// // 阻塞直到Z2轴碰到左限位
// "TILL FAULT(Z2).#LL\n"
// // 停止Z2轴
// "HALT Z2\n"+
// QString("VEL(Z2) = %1\n").arg(Z2AxisFindINDVel)+
// QString("ACC(Z2) = %1\n").arg(Z2AxisFindINDVel*10)+
// QString("DEC(Z2) = %1\n").arg(Z2AxisFindINDVel*10)+
// QString("JERK(Z2) = %1\n").arg(Z2AxisFindINDVel*100)+
// QString("KDEC(Z2) = %1\n").arg(Z2AxisFindINDVel*100)+
// // Z2轴向正方向JOG移动
// "JOG (Z2),+\n"
// "TILL IN(4).2\n"
// "HALT Z2\n"+
// // 原点磁铁位置设为114mm
// QString("SET FPOS(Z2)=%1\n").arg(Z2AxisINDZeroOffset)+
// QString("VEL(Z2) = %1\n").arg(Z2AxisVel)+
// QString("ACC(Z2) = %1\n").arg(Z2AxisVel*10)+
// QString("DEC(Z2) = %1\n").arg(Z2AxisVel*10)+
// QString("JERK(Z2) = %1\n").arg(Z2AxisVel*100)+
// QString("KDEC(Z2) = %1\n").arg(Z2AxisVel*100)+
// // Z2轴走到0位
// QString("PTP/e (Z2),%1\n").arg(Z2AxisToHomePos)+
// // 设置Z2轴软限位
// QString("SRLIMIT(Z2)=%1\n").arg(Z2AxisSRLimit)+
// QString("SLLIMIT(Z2)=%1\n").arg(Z2AxisSLLimit)+
// // 启用Z2轴限位
// "FDEF(Z2).#LL=1\n"
// "FDEF(Z2).#RL=1\n"
// "FMASK(Z2).#SRL=1\n"
// "FMASK(Z2).#SLL=1\n"
// 禁用Z0轴限位
"FDEF(Z0).#LL=0\n"
"FDEF(Z0).#RL=0\n"
"FMASK(Z0).#SRL=0\n"
"FMASK(Z0).#SLL=0\n"
"ECOUT( ecgetoffset(\"Modes of operation\",3),Modes_of_operation)\n"
"ecin( ecgetoffset(\"Statusword\",3),StatusWord)\n"
"ecout(ecgetoffset(\"Controlword\",3),ControlWord)\n"
"Modes_of_operation=6 !6 is Homing mode\n"
"I0=coeread/1 (3,0x6061,0)\n"
"coewrite/1 (3,0x6098,0,1) !Homing Method\n"
"coewrite/4 (3,0x6099,1,8388608/2)\n"
"coewrite/4 (3,0x6099,2,838860)\n"
"coewrite/4 (3,0x609A,0,8388608)!Home Acceleration\n"
"ControlWord=6\n"
"TILL StatusWord.0=1\n"
"ControlWord=7\n"
"TILL StatusWord.0=1 & StatusWord.1=1\n"
"ControlWord=15\n"
"TILL StatusWord.0=1 & StatusWord.1=1 & StatusWord.2=1\n"
"!Start Homing Procedure - Bit 4\n"
"ControlWord=31\n"
"TILL StatusWord.12=1 & StatusWord.10=1\n"
"ControlWord=0\n"
"Modes_of_operation=8 !go back to CSP mode\n"
"ECUNMAPIN(ecgetoffset(\"Statusword\",3))\n"
"ECUNMAPOUT(ecgetoffset(\"Modes of operation\",3))\n"
"ECUNMAPOUT(ecgetoffset(\"Controlword\",3))\n"
"wait 400\n"
"DISABLE 6\n"
"WAIT 500\n"
"ENABLE 6\n"
"PTP/E 6,0\n"
"wait 400\n"+
QString("VEL(Z0) = %1\n").arg(Z0AxisVel)+
QString("ACC(Z0) = %1\n").arg(Z0AxisVel*10)+
QString("DEC(Z0) = %1\n").arg(Z0AxisVel*10)+
QString("JERK(Z0) = %1\n").arg(Z0AxisVel*100)+
QString("KDEC(Z0) = %1\n").arg(Z0AxisVel*100)+
QString("PTP/E 6,%1\n").arg(Z0AxisINDZeroOffset)+
"WAIT 3000\n"+
QString("SET FPOS(Z0)=0\n")+
QString("SRLIMIT(Z0)=%1\n").arg(Z0AxisSRLimit)+
QString("SLLIMIT(Z0)=%1\n").arg(Z0AxisSLLimit)+
// 启用Z2轴限位
"FDEF(Z0).#LL=1\n"
"FDEF(Z0).#RL=1\n"
"FMASK(Z0).#SRL=1\n"
"FMASK(Z0).#SLL=1\n"
// 禁用DD轴限位
"FDEF(D).#LL=0\n"
"FDEF(D).#RL=0\n"
"FMASK(D).#SRL=0\n"
"FMASK(D).#SLL=0\n"
"ENABLE (D)\n"
"COMMUT (D)\n"+
QString("VEL(D) = %1\n").arg(DAxisVel)+
QString("ACC(D) = %1\n").arg(DAxisVel*10)+
QString("DEC(D) = %1\n").arg(DAxisVel*10)+
QString("JERK(D) = %1\n").arg(DAxisVel*100)+
QString("KDEC(D) = %1\n").arg(DAxisVel*100)+
// D轴向负方向JOG移动
"JOG (D),-\n"
// D轴IND值设为0
"IST(D).#IND=0\n"
// 直到D轴碰到IND信号
"TILL IST(D).#IND\n"+
// 原点磁铁位置设为114mm
QString("SET FPOS(D)=FPOS(D)-IND(D)+%1\n").arg(DAxisINDZeroOffset)+
QString("VEL(D) = %1\n").arg(DAxisVel)+
QString("ACC(D) = %1\n").arg(DAxisVel*10)+
QString("DEC(D) = %1\n").arg(DAxisVel*10)+
QString("JERK(D) = %1\n").arg(DAxisVel*100)+
QString("KDEC(D) = %1\n").arg(DAxisVel*100)+
// D轴走到0位
QString("PTP/e (D),%1\n").arg(DAxisToHomePos)+
//lihongchang 0613
"X_ToHomeF = 1\n"
"Y_ToHomeF = 1\n"
"Z_ToHomeF = 1\n"
"ZA_ToHomeF = 1\n"
"D_ToHomeF = 1\n"
"Z0_ToHomeF = 1\n"
"Z2_ToHomeF = 1\n"
"toHomeF = 1\n"
"runF = 1\n"
"STOP";
return code;
}
#else
QString ToHomeCode::getCode()
{
QString code("\n");
code +=
// 取消ZA限位
"FDEF(ZA).#LL=0\n"
"FDEF(ZA).#RL=0\n"
"FMASK(ZA).#SRL=0\n"
"FMASK(ZA).#SLL=0\n"
"ENABLE (ZA)\n"
"COMMUT (ZA)\n"+
QString("VEL(ZA) = %1\n").arg(ZAAxisToSafePosVel)+
QString("ACC(ZA) = %1\n").arg(ZAAxisToSafePosVel*10)+
QString("DEC(ZA) = %1\n").arg(ZAAxisToSafePosVel*10)+
QString("JERK(ZA) = %1\n").arg(ZAAxisToSafePosVel*100)+
QString("KDEC(ZA) = %1\n").arg(ZAAxisToSafePosVel*100)+
// ZA向正方向JOG移动速度为10mm/s
"JOG (ZA),+\n"
// 阻塞直到ZA碰到右限位
"TILL FAULT(ZA).#RL\n"
"HALT ZA\n"
"HRLROUT(Z0)=0401\n"
"HLLROUT(Z0)=0400\n"
//"HRLROUT(Z0)=0501\n"
//"HLLROUT(Z0)=0500\n"
// 禁用X轴补偿
"MFLAGS(X).17=1\n"
// 禁用X机械误差补偿
"ERRORMAPOFF X,0\n"
// 禁用X轴限位
"FDEF(X).#LL=0\n"
"FDEF(X).#RL=0\n"
"FMASK(X).#SRL=0\n"
"FMASK(X).#SLL=0\n"
"ENABLE (X)\n"+
QString("VEL(X) = %1\n").arg(XAxisVel)+
QString("ACC(X) = %1\n").arg(XAxisVel*10)+
QString("DEC(X) = %1\n").arg(XAxisVel*10)+
QString("JERK(X) = %1\n").arg(XAxisVel*100)+
QString("KDEC(X) = %1\n").arg(XAxisVel*100)+
// X轴向负方向JOG移动
"JOG (X),-\n"
// 阻塞直到X轴碰到左限位
"TILL FAULT(X).#LL\n"
// 停止X轴
"HALT X\n"+
QString("VEL(X) = %1\n").arg(XAxisFindINDVel)+
QString("ACC(X) = %1\n").arg(XAxisFindINDVel*10)+
QString("DEC(X) = %1\n").arg(XAxisFindINDVel*10)+
QString("JERK(X) = %1\n").arg(XAxisFindINDVel*100)+
QString("KDEC(X) = %1\n").arg(XAxisFindINDVel*100)+
// X轴向正方向JOG移动
"JOG (X),+\n"
// 阻塞直到左限位为OFF
"TILL ^FAULT(X).#LL\n"
// X轴的IND信号置为0
"IST(X).#IND=0\n"
// 阻塞直到X轴碰到IND信号
"TILL IST(X).#IND\n"+
// 把原点磁铁位置设置为79mm
QString("SET FPOS(X)=FPOS(X)-IND(X)+%1\n").arg(XAxisINDZeroOffset)+
QString("VEL(X) = %1\n").arg(XAxisVel)+
QString("ACC(X) = %1\n").arg(XAxisVel*10)+
QString("DEC(X) = %1\n").arg(XAxisVel*10)+
QString("JERK(X) = %1\n").arg(XAxisVel*100)+
QString("KDEC(X) = %1\n").arg(XAxisVel*100)+
// 走到0点位置阻塞执行
QString("PTP/e (X),%1\n").arg(XAxisToHomePos)+
// 设置X轴软限位
QString("SRLIMIT(X)=%1\n").arg(XAxisSRLimit)+
QString("SLLIMIT(X)=%1\n").arg(XAxisSLLimit)+
// 启用X轴限位
"FDEF(X).#LL=1\n"
"FDEF(X).#RL=1\n"
"FMASK(X).#SRL=1\n"
"FMASK(X).#SLL=1\n"
"MFLAGS(Y).17=1\n"
// 禁用Y轴机械误差补偿
"ERRORMAPOFF Y,0\n"
// 禁用Y轴限位
"FDEF(Y).#LL=0\n"
"FDEF(Y).#RL=0\n"
"FMASK(Y).#SRL=0\n"
"FMASK(Y).#SLL=0\n"
"ENABLE (Y)\n"+
QString("VEL(Y) = %1\n").arg(YAxisVel)+
QString("ACC(Y) = %1\n").arg(YAxisVel*10)+
QString("DEC(Y) = %1\n").arg(YAxisVel*10)+
QString("JERK(Y) = %1\n").arg(YAxisVel*100)+
QString("KDEC(Y) = %1\n").arg(YAxisVel*100)+
// Y轴向负方向JOG移动
"JOG (Y),-\n"
// 阻塞直到Y轴碰到左限位
"TILL FAULT(Y).#LL\n"
// 停止Y轴
"HALT Y\n"+
QString("VEL(Y) = %1\n").arg(YAxisFindINDVel)+
QString("ACC(Y) = %1\n").arg(YAxisFindINDVel*10)+
QString("DEC(Y) = %1\n").arg(YAxisFindINDVel*10)+
QString("JERK(Y) = %1\n").arg(YAxisFindINDVel*100)+
QString("KDEC(Y) = %1\n").arg(YAxisFindINDVel*100)+
// Y轴向正方向JOG移动
"JOG (Y),+\n"
// 阻塞直到Y轴移开左限位
"TILL ^FAULT(Y).#LL\n"
// Y轴IND值设为0
"IST(Y).#IND=0\n"
// 直到Y轴碰到IND信号
"TILL IST(Y).#IND\n"+
// 原点磁铁位置设为114mm
QString("SET FPOS(Y)=FPOS(Y)-IND(Y)+%1\n").arg(YAxisINDZeroOffset)+
QString("VEL(Y) = %1\n").arg(YAxisVel)+
QString("ACC(Y) = %1\n").arg(YAxisVel*10)+
QString("DEC(Y) = %1\n").arg(YAxisVel*10)+
QString("JERK(Y) = %1\n").arg(YAxisVel*100)+
QString("KDEC(Y) = %1\n").arg(YAxisVel*100)+
// Y轴走到0位
QString("PTP/e (Y),%1\n").arg(YAxisToHomePos)+
// 设置Y轴软限位
QString("SRLIMIT(Y)=%1\n").arg(YAxisSRLimit)+
QString("SLLIMIT(Y)=%1\n").arg(YAxisSLLimit)+
// 启用Y轴限位
"FDEF(Y).#LL=1\n"
"FDEF(Y).#RL=1\n"
"FMASK(Y).#SRL=1\n"
"FMASK(Y).#SLL=1\n"
// 禁用Z1轴补偿
"MFLAGS(Z).17=1\n"
"ERRORMAPOFF Z,0\n"
"FDEF(Z).#LL=0\n"
"FDEF(Z).#RL=0\n"
"FMASK(Z).#SRL=0\n"
"FMASK(Z).#SLL=0\n"
"ENABLE (Z)\n"+
QString("VEL(Z) = %1\n").arg(ZAxisVel)+
QString("ACC(Z) = %1\n").arg(ZAxisVel*10)+
QString("DEC(Z) = %1\n").arg(ZAxisVel*10)+
QString("JERK(Z) = %1\n").arg(ZAxisVel*100)+
QString("KDEC(Z) = %1\n").arg(ZAxisVel*100)+
// Z1轴向正方向JOG移动
"JOG (Z),+\n"
// 阻塞直到Z1轴碰到右限位
"TILL FAULT(Z).#RL\n"
// 停止Z1轴
"HALT Z\n"+
QString("VEL(Z) = %1\n").arg(ZAxisFindINDVel)+
QString("ACC(Z) = %1\n").arg(ZAxisFindINDVel*10)+
QString("DEC(Z) = %1\n").arg(ZAxisFindINDVel*10)+
QString("JERK(Z) = %1\n").arg(ZAxisFindINDVel*100)+
QString("KDEC(Z) = %1\n").arg(ZAxisFindINDVel*100)+
// Z1轴向负方向移动
"JOG (Z),-\n"
// 阻塞直到Z1轴脱离右限位
"TILL ^FAULT(Z).#RL\n"
// Z1轴IND值设为0
"IST(Z).#IND=0\n"
// 阻塞直到Z1轴碰到IND信号
"TILL IST(Z).#IND\n"+
// Z1轴原点磁铁位置设置为-4mm lihongchang -2.5
QString("SET FPOS(Z)=FPOS(Z)-IND(Z)+%1\n").arg(ZAxisINDZeroOffset)+
QString("VEL(Z) = %1\n").arg(ZAxisVel)+
QString("ACC(Z) = %1\n").arg(ZAxisVel*10)+
QString("DEC(Z) = %1\n").arg(ZAxisVel*10)+
QString("JERK(Z) = %1\n").arg(ZAxisVel*100)+
QString("KDEC(Z) = %1\n").arg(ZAxisVel*100)+
// Z1轴回到0点
QString("PTP/e (Z),%1\n").arg(ZAxisToHomePos)+
// 设置Z1轴软限位
QString("SRLIMIT(Z)=%1\n").arg(ZAxisSRLimit)+
QString("SLLIMIT(Z)=%1\n").arg(ZAxisSLLimit)+
// 启用Z1轴软限位
"FDEF(Z).#LL=1\n"
"FDEF(Z).#RL=1\n"
"FMASK(Z).#SRL=1\n"
"FMASK(Z).#SLL=1\n"
// 禁用Z轴补偿
"MFLAGS(ZA).17=1\n"
"ERRORMAPOFF ZA,0\n"
// 禁用Z轴限位
"FDEF(ZA).#LL=0\n"
"FDEF(ZA).#RL=0\n"
"FMASK(ZA).#SRL=0\n"
"FMASK(ZA).#SLL=0\n"
"ENABLE (ZA)\n"+
QString("VEL(ZA) = %1\n").arg(ZAAxisVel)+
QString("ACC(ZA) = %1\n").arg(ZAAxisVel*10)+
QString("DEC(ZA) = %1\n").arg(ZAAxisVel*10)+
QString("JERK(ZA) = %1\n").arg(ZAAxisVel*100)+
QString("KDEC(ZA) = %1\n").arg(ZAAxisVel*100)+
// Z轴向正方向JOG移动
"JOG (ZA),+\n"
// 阻塞直到Z轴碰到右限位
"TILL FAULT(ZA).#RL\n"
// 停止Z轴
"HALT ZA\n"+
QString("VEL(ZA) = %1\n").arg(ZAAxisFindINDVel)+
QString("ACC(ZA) = %1\n").arg(ZAAxisFindINDVel*10)+
QString("DEC(ZA) = %1\n").arg(ZAAxisFindINDVel*10)+
QString("JERK(ZA) = %1\n").arg(ZAAxisFindINDVel*100)+
QString("KDEC(ZA) = %1\n").arg(ZAAxisFindINDVel*100)+
// Z轴向负方向JOG移动
"JOG (ZA),-\n"
// 阻塞直到Z轴离开右限位
"TILL ^FAULT(ZA).#RL\n"
// IND值置为0
"IST(ZA).#IND=0\n"
// 阻塞直到Z轴碰到IND信号
"TILL IST(ZA).#IND\n"+
// 原点磁铁位置设为61mm
QString("SET FPOS(ZA)=FPOS(ZA)-IND(ZA)+%1\n").arg(ZAAxisINDZeroOffset)+
QString("VEL(ZA) = %1\n").arg(ZAAxisVel)+
QString("ACC(ZA) = %1\n").arg(ZAAxisVel*10)+
QString("DEC(ZA) = %1\n").arg(ZAAxisVel*10)+
QString("JERK(ZA) = %1\n").arg(ZAAxisVel*100)+
QString("KDEC(ZA) = %1\n").arg(ZAAxisVel*100)+
QString("PTP/e (ZA),%1\n").arg(ZAAxisToHomePos)+
// 设置软限位
QString("SRLIMIT(ZA)=%1\n").arg(ZAAxisSRLimit)+
QString("SLLIMIT(ZA)=%1\n").arg(ZAAxisSLLimit)+
// 启用限位
"FDEF(ZA).#LL=1\n"
"FDEF(ZA).#RL=1\n"
"FMASK(ZA).#SRL=1\n"
"FMASK(ZA).#SLL=1\n"
// // 禁用Z2轴限位
// "FDEF(Z2).#LL=0\n"
// "FDEF(Z2).#RL=0\n"
// "FMASK(Z2).#SRL=0\n"
// "FMASK(Z2).#SLL=0\n"
// "ENABLE (Z2)\n"+
// QString("VEL(Z2) = %1\n").arg(Z2AxisVel)+
// QString("ACC(Z2) = %1\n").arg(Z2AxisVel*10)+
// QString("DEC(Z2) = %1\n").arg(Z2AxisVel*10)+
// QString("JERK(Z2) = %1\n").arg(Z2AxisVel*100)+
// QString("KDEC(Z2) = %1\n").arg(Z2AxisVel*100)+
// // Z2轴向负方向JOG移动
// "JOG (Z2),-\n"
// // 阻塞直到Z2轴碰到左限位
// "TILL FAULT(Z2).#LL\n"
// // 停止Z2轴
// "HALT Z2\n"+
// QString("VEL(Z2) = %1\n").arg(Z2AxisFindINDVel)+
// QString("ACC(Z2) = %1\n").arg(Z2AxisFindINDVel*10)+
// QString("DEC(Z2) = %1\n").arg(Z2AxisFindINDVel*10)+
// QString("JERK(Z2) = %1\n").arg(Z2AxisFindINDVel*100)+
// QString("KDEC(Z2) = %1\n").arg(Z2AxisFindINDVel*100)+
// // Z2轴向正方向JOG移动
// "JOG (Z2),+\n"
// "TILL IN(4).2\n"
// "HALT Z2\n"+
// // 原点磁铁位置设为114mm
// QString("SET FPOS(Z2)=%1\n").arg(Z2AxisINDZeroOffset)+
// QString("VEL(Z2) = %1\n").arg(Z2AxisVel)+
// QString("ACC(Z2) = %1\n").arg(Z2AxisVel*10)+
// QString("DEC(Z2) = %1\n").arg(Z2AxisVel*10)+
// QString("JERK(Z2) = %1\n").arg(Z2AxisVel*100)+
// QString("KDEC(Z2) = %1\n").arg(Z2AxisVel*100)+
// // Z2轴走到0位
// QString("PTP/e (Z2),%1\n").arg(Z2AxisToHomePos)+
// // 设置Z2轴软限位
// QString("SRLIMIT(Z2)=%1\n").arg(Z2AxisSRLimit)+
// QString("SLLIMIT(Z2)=%1\n").arg(Z2AxisSLLimit)+
// // 启用Z2轴限位
// "FDEF(Z2).#LL=1\n"
// "FDEF(Z2).#RL=1\n"
// "FMASK(Z2).#SRL=1\n"
// "FMASK(Z2).#SLL=1\n"
// 禁用Z0轴限位
"FDEF(Z0).#LL=0\n"
"FDEF(Z0).#RL=0\n"
"FMASK(Z0).#SRL=0\n"
"FMASK(Z0).#SLL=0\n"
"ECOUT( ecgetoffset(\"Modes of operation\",4),Modes_of_operation)\n"
"ecin( ecgetoffset(\"Statusword\",4),StatusWord)\n"
"ecout(ecgetoffset(\"Controlword\",4),ControlWord)\n"
"Modes_of_operation=6 !6 is Homing mode\n"
"I0=coeread/1 (4,0x6061,0)\n"
"coewrite/1 (4,0x6098,0,1) !Homing Method\n"
"coewrite/4 (4,0x6099,1,8388608/2)\n"
"coewrite/4 (4,0x6099,2,838860)\n"
"coewrite/4 (4,0x609A,0,8388608)!Home Acceleration\n"
"ControlWord=6\n"
"TILL StatusWord.0=1\n"
"ControlWord=7\n"
"TILL StatusWord.0=1 & StatusWord.1=1\n"
"ControlWord=15\n"
"TILL StatusWord.0=1 & StatusWord.1=1 & StatusWord.2=1\n"
"!Start Homing Procedure - Bit 4\n"
"ControlWord=31\n"
"TILL StatusWord.12=1 & StatusWord.10=1\n"
"ControlWord=0\n"
"Modes_of_operation=8 !go back to CSP mode\n"
"ECUNMAPIN(ecgetoffset(\"Statusword\",4))\n"
"ECUNMAPOUT(ecgetoffset(\"Modes of operation\",4))\n"
"ECUNMAPOUT(ecgetoffset(\"Controlword\",4))\n"
"wait 400\n"
"DISABLE 7\n"
"WAIT 500\n"
"ENABLE 7\n"
"PTP/E 7,0\n"
"wait 400\n"+
QString("VEL(Z0) = %1\n").arg(Z0AxisVel)+
QString("ACC(Z0) = %1\n").arg(Z0AxisVel*10)+
QString("DEC(Z0) = %1\n").arg(Z0AxisVel*10)+
QString("JERK(Z0) = %1\n").arg(Z0AxisVel*100)+
QString("KDEC(Z0) = %1\n").arg(Z0AxisVel*100)+
QString("PTP/E 7,%1\n").arg(Z0AxisINDZeroOffset)+
"WAIT 3000\n"+
QString("SET FPOS(Z0)=0\n")+
QString("SRLIMIT(Z0)=%1\n").arg(Z0AxisSRLimit)+
QString("SLLIMIT(Z0)=%1\n").arg(Z0AxisSLLimit)+
// 启用Z2轴限位
"FDEF(Z0).#LL=1\n"
"FDEF(Z0).#RL=1\n"
"FMASK(Z0).#SRL=1\n"
"FMASK(Z0).#SLL=1\n"
// 禁用DD轴限位
"FDEF(D).#LL=0\n"
"FDEF(D).#RL=0\n"
"FMASK(D).#SRL=0\n"
"FMASK(D).#SLL=0\n"
"ENABLE (D)\n"
"COMMUT (D)\n"+
QString("VEL(D) = %1\n").arg(DAxisVel)+
QString("ACC(D) = %1\n").arg(DAxisVel*10)+
QString("DEC(D) = %1\n").arg(DAxisVel*10)+
QString("JERK(D) = %1\n").arg(DAxisVel*100)+
QString("KDEC(D) = %1\n").arg(DAxisVel*100)+
// D轴向负方向JOG移动
"JOG (D),-\n"
// D轴IND值设为0
"IST(D).#IND=0\n"
// 直到D轴碰到IND信号
"TILL IST(D).#IND\n"+
// 原点磁铁位置设为114mm
QString("SET FPOS(D)=FPOS(D)-IND(D)+%1\n").arg(DAxisINDZeroOffset)+
QString("VEL(D) = %1\n").arg(DAxisVel)+
QString("ACC(D) = %1\n").arg(DAxisVel*10)+
QString("DEC(D) = %1\n").arg(DAxisVel*10)+
QString("JERK(D) = %1\n").arg(DAxisVel*100)+
QString("KDEC(D) = %1\n").arg(DAxisVel*100)+
// D轴走到0位
QString("PTP/e (D),%1\n").arg(DAxisToHomePos)+
//lihongchang 0613
"X_ToHomeF = 1\n"
"Y_ToHomeF = 1\n"
"Z_ToHomeF = 1\n"
"ZA_ToHomeF = 1\n"
"D_ToHomeF = 1\n"
"Z0_ToHomeF = 1\n"
"Z2_ToHomeF = 1\n"
"toHomeF = 1\n"
"runF = 1\n"
"STOP";
return code;
}
#endif
QString ToHomeCode::getCode_z() //音圈回零测试使用
{
QString code("\n");
code +=
// 禁用Z1轴补偿
"MFLAGS(Z).17=1\n"
"ERRORMAPOFF Z,0\n"
"FDEF(Z).#LL=0\n"
"FDEF(Z).#RL=0\n"
"FMASK(Z).#SRL=0\n"
"FMASK(Z).#SLL=0\n"
"ENABLE (Z)\n"+
QString("VEL(Z) = %1\n").arg(ZAxisVel)+
QString("ACC(Z) = %1\n").arg(ZAxisVel*10)+
QString("DEC(Z) = %1\n").arg(ZAxisVel*10)+
QString("JERK(Z) = %1\n").arg(ZAxisVel*100)+
QString("KDEC(Z) = %1\n").arg(ZAxisVel*100)+
// Z1轴向正方向JOG移动
"JOG (Z),+\n"
// 阻塞直到Z1轴碰到右限位
"TILL FAULT(Z).#RL\n"
// 停止Z1轴
"HALT Z\n"+
QString("VEL(Z) = %1\n").arg(ZAxisFindINDVel)+
QString("ACC(Z) = %1\n").arg(ZAxisFindINDVel*10)+
QString("DEC(Z) = %1\n").arg(ZAxisFindINDVel*10)+
QString("JERK(Z) = %1\n").arg(ZAxisFindINDVel*100)+
QString("KDEC(Z) = %1\n").arg(ZAxisFindINDVel*100)+
// Z1轴向负方向移动
"JOG (Z),-\n"
// 阻塞直到Z1轴脱离右限位
"TILL ^FAULT(Z).#RL\n"
// Z1轴IND值设为0
"IST(Z).#IND=0\n"
// 阻塞直到Z1轴碰到IND信号
"TILL IST(Z).#IND\n"+
// Z1轴原点磁铁位置设置为-4mm lihongchang -2.5
QString("SET FPOS(Z)=FPOS(Z)-IND(Z)+%1\n").arg(ZAxisINDZeroOffset)+
QString("VEL(Z) = %1\n").arg(ZAxisVel)+
QString("ACC(Z) = %1\n").arg(ZAxisVel*10)+
QString("DEC(Z) = %1\n").arg(ZAxisVel*10)+
QString("JERK(Z) = %1\n").arg(ZAxisVel*100)+
QString("KDEC(Z) = %1\n").arg(ZAxisVel*100)+
// Z1轴回到0点
QString("PTP/e (Z),%1\n").arg(ZAxisToHomePos)+
// 设置Z1轴软限位
QString("SRLIMIT(Z)=%1\n").arg(ZAxisSRLimit)+
QString("SLLIMIT(Z)=%1\n").arg(ZAxisSLLimit)+
// 启用Z1轴软限位
"FDEF(Z).#LL=1\n"
"FDEF(Z).#RL=1\n"
"FMASK(Z).#SRL=1\n"
"FMASK(Z).#SLL=1\n"
"X_ToHomeF = 1\n"
"Y_ToHomeF = 1\n"
"Z_ToHomeF = 1\n"
"ZA_ToHomeF = 1\n"
"D_ToHomeF = 1\n"
"Z0_ToHomeF = 1\n"
"Z2_ToHomeF = 1\n"
"toHomeF = 1\n"
"runF = 1\n"
"STOP";
return code;
}
//QString ToHomeCode::getCode()
//{
// QString code("\n");
// code +=
// // 取消ZA限位
// "FDEF(ZA).#LL=0\n"
// "FDEF(ZA).#RL=0\n"
// "FMASK(ZA).#SRL=0\n"
// "FMASK(ZA).#SLL=0\n"
// "ENABLE (ZA)\n"
// "COMMUT (ZA)\n"+
// QString("VEL(ZA) = %1\n").arg(ZAAxisToSafePosVel)+
// QString("ACC(ZA) = %1\n").arg(ZAAxisToSafePosVel*10)+
// QString("DEC(ZA) = %1\n").arg(ZAAxisToSafePosVel*10)+
// QString("JERK(ZA) = %1\n").arg(ZAAxisToSafePosVel*100)+
// QString("KDEC(ZA) = %1\n").arg(ZAAxisToSafePosVel*100)+
// // ZA向正方向JOG移动速度为10mm/s
// "JOG (ZA),+\n"
// // 阻塞直到ZA碰到右限位
// "TILL FAULT(ZA).#RL\n"
// "HALT ZA\n"
// "HRLROUT(Z2)=0401\n"
// "HLLROUT(Z2)=0400\n"
// "HRLROUT(Z0)=0501\n"
// "HLLROUT(Z0)=0500\n"
// // 禁用X轴补偿
// "MFLAGS(X).17=1\n"
// // 禁用X机械误差补偿
// "ERRORMAPOFF X,0\n"
// // 禁用X轴限位
// "FDEF(X).#LL=0\n"
// "FDEF(X).#RL=0\n"
// "FMASK(X).#SRL=0\n"
// "FMASK(X).#SLL=0\n"
// "ENABLE (X)\n"+
// QString("VEL(X) = %1\n").arg(XAxisVel)+
// QString("ACC(X) = %1\n").arg(XAxisVel*10)+
// QString("DEC(X) = %1\n").arg(XAxisVel*10)+
// QString("JERK(X) = %1\n").arg(XAxisVel*100)+
// QString("KDEC(X) = %1\n").arg(XAxisVel*100)+
// // X轴向负方向JOG移动
// "JOG (X),-\n"
// // 阻塞直到X轴碰到左限位
// "TILL FAULT(X).#LL\n"
// // 停止X轴
// "HALT X\n"+
// QString("VEL(X) = %1\n").arg(XAxisFindINDVel)+
// QString("ACC(X) = %1\n").arg(XAxisFindINDVel*10)+
// QString("DEC(X) = %1\n").arg(XAxisFindINDVel*10)+
// QString("JERK(X) = %1\n").arg(XAxisFindINDVel*100)+
// QString("KDEC(X) = %1\n").arg(XAxisFindINDVel*100)+
// // X轴向正方向JOG移动
// "JOG (X),+\n"
// // 阻塞直到左限位为OFF
// "TILL ^FAULT(X).#LL\n"
// // X轴的IND信号置为0
// "IST(X).#IND=0\n"
// // 阻塞直到X轴碰到IND信号
// "TILL IST(X).#IND\n"+
// // 把原点磁铁位置设置为79mm
// QString("SET FPOS(X)=FPOS(X)-IND(X)+%1\n").arg(XAxisINDZeroOffset)+
// QString("VEL(X) = %1\n").arg(XAxisVel)+
// QString("ACC(X) = %1\n").arg(XAxisVel*10)+
// QString("DEC(X) = %1\n").arg(XAxisVel*10)+
// QString("JERK(X) = %1\n").arg(XAxisVel*100)+
// QString("KDEC(X) = %1\n").arg(XAxisVel*100)+
// // 走到0点位置阻塞执行
// QString("PTP/e (X),%1\n").arg(XAxisToHomePos)+
// // 设置X轴软限位
// QString("SRLIMIT(X)=%1\n").arg(XAxisSRLimit)+
// QString("SLLIMIT(X)=%1\n").arg(XAxisSLLimit)+
// // 启用X轴限位
// "FDEF(X).#LL=1\n"
// "FDEF(X).#RL=1\n"
// "FMASK(X).#SRL=1\n"
// "FMASK(X).#SLL=1\n"
// "MFLAGS(Y).17=1\n"
// // 禁用Y轴机械误差补偿
// "ERRORMAPOFF Y,0\n"
// // 禁用Y轴限位
// "FDEF(Y).#LL=0\n"
// "FDEF(Y).#RL=0\n"
// "FMASK(Y).#SRL=0\n"
// "FMASK(Y).#SLL=0\n"
// "ENABLE (Y)\n"+
// QString("VEL(Y) = %1\n").arg(YAxisVel)+
// QString("ACC(Y) = %1\n").arg(YAxisVel*10)+
// QString("DEC(Y) = %1\n").arg(YAxisVel*10)+
// QString("JERK(Y) = %1\n").arg(YAxisVel*100)+
// QString("KDEC(Y) = %1\n").arg(YAxisVel*100)+
// // Y轴向负方向JOG移动
// "JOG (Y),-\n"
// // 阻塞直到Y轴碰到左限位
// "TILL FAULT(Y).#LL\n"
// // 停止Y轴
// "HALT Y\n"+
// QString("VEL(Y) = %1\n").arg(YAxisFindINDVel)+
// QString("ACC(Y) = %1\n").arg(YAxisFindINDVel*10)+
// QString("DEC(Y) = %1\n").arg(YAxisFindINDVel*10)+
// QString("JERK(Y) = %1\n").arg(YAxisFindINDVel*100)+
// QString("KDEC(Y) = %1\n").arg(YAxisFindINDVel*100)+
// // Y轴向正方向JOG移动
// "JOG (Y),+\n"
// // 阻塞直到Y轴移开左限位
// "TILL ^FAULT(Y).#LL\n"
// // Y轴IND值设为0
// "IST(Y).#IND=0\n"
// // 直到Y轴碰到IND信号
// "TILL IST(Y).#IND\n"+
// // 原点磁铁位置设为114mm
// QString("SET FPOS(Y)=FPOS(Y)-IND(Y)+%1\n").arg(YAxisINDZeroOffset)+
// QString("VEL(Y) = %1\n").arg(YAxisVel)+
// QString("ACC(Y) = %1\n").arg(YAxisVel*10)+
// QString("DEC(Y) = %1\n").arg(YAxisVel*10)+
// QString("JERK(Y) = %1\n").arg(YAxisVel*100)+
// QString("KDEC(Y) = %1\n").arg(YAxisVel*100)+
// // Y轴走到0位
// QString("PTP/e (Y),%1\n").arg(YAxisToHomePos)+
// // 设置Y轴软限位
// QString("SRLIMIT(Y)=%1\n").arg(YAxisSRLimit)+
// QString("SLLIMIT(Y)=%1\n").arg(YAxisSLLimit)+
// // 启用Y轴限位
// "FDEF(Y).#LL=1\n"
// "FDEF(Y).#RL=1\n"
// "FMASK(Y).#SRL=1\n"
// "FMASK(Y).#SLL=1\n"
// // 禁用Z1轴补偿
// "MFLAGS(Z).17=1\n"
// "ERRORMAPOFF Z,0\n"
// "FDEF(Z).#LL=0\n"
// "FDEF(Z).#RL=0\n"
// "FMASK(Z).#SRL=0\n"
// "FMASK(Z).#SLL=0\n"
// "ENABLE (Z)\n"+
// QString("VEL(Z) = %1\n").arg(ZAxisVel)+
// QString("ACC(Z) = %1\n").arg(ZAxisVel*10)+
// QString("DEC(Z) = %1\n").arg(ZAxisVel*10)+
// QString("JERK(Z) = %1\n").arg(ZAxisVel*100)+
// QString("KDEC(Z) = %1\n").arg(ZAxisVel*100)+
// // Z1轴向正方向JOG移动
// "JOG (Z),+\n"
// // 阻塞直到Z1轴碰到右限位
// "TILL FAULT(Z).#RL\n"
// // 停止Z1轴
// "HALT Z\n"+
// QString("VEL(Z) = %1\n").arg(ZAxisFindINDVel)+
// QString("ACC(Z) = %1\n").arg(ZAxisFindINDVel*10)+
// QString("DEC(Z) = %1\n").arg(ZAxisFindINDVel*10)+
// QString("JERK(Z) = %1\n").arg(ZAxisFindINDVel*100)+
// QString("KDEC(Z) = %1\n").arg(ZAxisFindINDVel*100)+
// // Z1轴向负方向移动
// "JOG (Z),-\n"
// // 阻塞直到Z1轴脱离右限位
// "TILL ^FAULT(Z).#RL\n"
// // Z1轴IND值设为0
// "IST(Z).#IND=0\n"
// // 阻塞直到Z1轴碰到IND信号
// "TILL IST(Z).#IND\n"+
// // Z1轴原点磁铁位置设置为-4mm lihongchang -2.5
// QString("SET FPOS(Z)=FPOS(Z)-IND(Z)+%1\n").arg(ZAxisINDZeroOffset)+
// QString("VEL(Z) = %1\n").arg(ZAxisVel)+
// QString("ACC(Z) = %1\n").arg(ZAxisVel*10)+
// QString("DEC(Z) = %1\n").arg(ZAxisVel*10)+
// QString("JERK(Z) = %1\n").arg(ZAxisVel*100)+
// QString("KDEC(Z) = %1\n").arg(ZAxisVel*100)+
// // Z1轴回到0点
// QString("PTP/e (Z),%1\n").arg(ZAxisToHomePos)+
// // 设置Z1轴软限位
// QString("SRLIMIT(Z)=%1\n").arg(ZAxisSRLimit)+
// QString("SLLIMIT(Z)=%1\n").arg(ZAxisSLLimit)+
// // 启用Z1轴软限位
// "FDEF(Z).#LL=1\n"
// "FDEF(Z).#RL=1\n"
// "FMASK(Z).#SRL=1\n"
// "FMASK(Z).#SLL=1\n"
// // 禁用Z轴补偿
// "MFLAGS(ZA).17=1\n"
// "ERRORMAPOFF ZA,0\n"
// // 禁用Z轴限位
// "FDEF(ZA).#LL=0\n"
// "FDEF(ZA).#RL=0\n"
// "FMASK(ZA).#SRL=0\n"
// "FMASK(ZA).#SLL=0\n"
// "ENABLE (ZA)\n"+
// QString("VEL(ZA) = %1\n").arg(ZAAxisVel)+
// QString("ACC(ZA) = %1\n").arg(ZAAxisVel*10)+
// QString("DEC(ZA) = %1\n").arg(ZAAxisVel*10)+
// QString("JERK(ZA) = %1\n").arg(ZAAxisVel*100)+
// QString("KDEC(ZA) = %1\n").arg(ZAAxisVel*100)+
// // Z轴向正方向JOG移动
// "JOG (ZA),+\n"
// // 阻塞直到Z轴碰到右限位
// "TILL FAULT(ZA).#RL\n"
// // 停止Z轴
// "HALT ZA\n"+
// QString("VEL(ZA) = %1\n").arg(ZAAxisFindINDVel)+
// QString("ACC(ZA) = %1\n").arg(ZAAxisFindINDVel*10)+
// QString("DEC(ZA) = %1\n").arg(ZAAxisFindINDVel*10)+
// QString("JERK(ZA) = %1\n").arg(ZAAxisFindINDVel*100)+
// QString("KDEC(ZA) = %1\n").arg(ZAAxisFindINDVel*100)+
// // Z轴向负方向JOG移动
// "JOG (ZA),-\n"
// // 阻塞直到Z轴离开右限位
// "TILL ^FAULT(ZA).#RL\n"
// // IND值置为0
// "IST(ZA).#IND=0\n"
// // 阻塞直到Z轴碰到IND信号
// "TILL IST(ZA).#IND\n"+
// // 原点磁铁位置设为61mm
// QString("SET FPOS(ZA)=FPOS(ZA)-IND(ZA)+%1\n").arg(ZAAxisINDZeroOffset)+
// QString("VEL(ZA) = %1\n").arg(ZAAxisVel)+
// QString("ACC(ZA) = %1\n").arg(ZAAxisVel*10)+
// QString("DEC(ZA) = %1\n").arg(ZAAxisVel*10)+
// QString("JERK(ZA) = %1\n").arg(ZAAxisVel*100)+
// QString("KDEC(ZA) = %1\n").arg(ZAAxisVel*100)+
// QString("PTP/e (ZA),%1\n").arg(ZAAxisToHomePos)+
// // 设置软限位
// QString("SRLIMIT(ZA)=%1\n").arg(ZAAxisSRLimit)+
// QString("SLLIMIT(ZA)=%1\n").arg(ZAAxisSLLimit)+
// // 启用限位
// "FDEF(ZA).#LL=1\n"
// "FDEF(ZA).#RL=1\n"
// "FMASK(ZA).#SRL=1\n"
// "FMASK(ZA).#SLL=1\n"
// // 禁用Z2轴限位
// "FDEF(Z2).#LL=0\n"
// "FDEF(Z2).#RL=0\n"
// "FMASK(Z2).#SRL=0\n"
// "FMASK(Z2).#SLL=0\n"
// "ENABLE (Z2)\n"+
// QString("VEL(Z2) = %1\n").arg(Z2AxisVel)+
// QString("ACC(Z2) = %1\n").arg(Z2AxisVel*10)+
// QString("DEC(Z2) = %1\n").arg(Z2AxisVel*10)+
// QString("JERK(Z2) = %1\n").arg(Z2AxisVel*100)+
// QString("KDEC(Z2) = %1\n").arg(Z2AxisVel*100)+
// // Z2轴向负方向JOG移动
// "JOG (Z2),-\n"
// // 阻塞直到Z2轴碰到左限位
// "TILL FAULT(Z2).#LL\n"
// // 停止Z2轴
// "HALT Z2\n"+
// QString("VEL(Z2) = %1\n").arg(Z2AxisFindINDVel)+
// QString("ACC(Z2) = %1\n").arg(Z2AxisFindINDVel*10)+
// QString("DEC(Z2) = %1\n").arg(Z2AxisFindINDVel*10)+
// QString("JERK(Z2) = %1\n").arg(Z2AxisFindINDVel*100)+
// QString("KDEC(Z2) = %1\n").arg(Z2AxisFindINDVel*100)+
// // Z2轴向正方向JOG移动
// "JOG (Z2),+\n"
// "TILL IN(4).2\n"
// "HALT Z2\n"+
// // 原点磁铁位置设为114mm
// QString("SET FPOS(Z2)=%1\n").arg(Z2AxisINDZeroOffset)+
// QString("VEL(Z2) = %1\n").arg(Z2AxisVel)+
// QString("ACC(Z2) = %1\n").arg(Z2AxisVel*10)+
// QString("DEC(Z2) = %1\n").arg(Z2AxisVel*10)+
// QString("JERK(Z2) = %1\n").arg(Z2AxisVel*100)+
// QString("KDEC(Z2) = %1\n").arg(Z2AxisVel*100)+
// // Z2轴走到0位
// QString("PTP/e (Z2),%1\n").arg(Z2AxisToHomePos)+
// // 设置Z2轴软限位
// QString("SRLIMIT(Z2)=%1\n").arg(Z2AxisSRLimit)+
// QString("SLLIMIT(Z2)=%1\n").arg(Z2AxisSLLimit)+
// // 启用Z2轴限位
// "FDEF(Z2).#LL=1\n"
// "FDEF(Z2).#RL=1\n"
// "FMASK(Z2).#SRL=1\n"
// "FMASK(Z2).#SLL=1\n"
// // 禁用Z0轴限位
// "FDEF(Z0).#LL=0\n"
// "FDEF(Z0).#RL=0\n"
// "FMASK(Z0).#SRL=0\n"
// "FMASK(Z0).#SLL=0\n"
// "ENABLE (Z0)\n"+
// QString("VEL(Z0) = %1\n").arg(Z0AxisVel)+
// QString("ACC(Z0) = %1\n").arg(Z0AxisVel*10)+
// QString("DEC(Z0) = %1\n").arg(Z0AxisVel*10)+
// QString("JERK(Z0) = %1\n").arg(Z0AxisVel*100)+
// QString("KDEC(Z0) = %1\n").arg(Z0AxisVel*100)+
// // Z2轴向负方向JOG移动
// "JOG (Z0),-\n"
// // 阻塞直到Z2轴碰到左限位
// "TILL FAULT(Z0).#LL\n"
// // 停止Z2轴
// "HALT Z0\n"+
// QString("VEL(Z0) = %1\n").arg(Z0AxisFindINDVel)+
// QString("ACC(Z0) = %1\n").arg(Z0AxisFindINDVel*10)+
// QString("DEC(Z0) = %1\n").arg(Z0AxisFindINDVel*10)+
// QString("JERK(Z0) = %1\n").arg(Z0AxisFindINDVel*100)+
// QString("KDEC(Z0) = %1\n").arg(Z0AxisFindINDVel*100)+
// // Z2轴向正方向JOG移动
// "JOG (Z0),+\n"
// "TILL IN(5).2\n"
// "HALT Z0\n"+
// // 原点磁铁位置设为114mm
// QString("SET FPOS(Z0)=%1\n").arg(Z0AxisINDZeroOffset)+
// QString("VEL(Z0) = %1\n").arg(Z0AxisVel)+
// QString("ACC(Z0) = %1\n").arg(Z0AxisVel*10)+
// QString("DEC(Z0) = %1\n").arg(Z0AxisVel*10)+
// QString("JERK(Z0) = %1\n").arg(Z0AxisVel*100)+
// QString("KDEC(Z0) = %1\n").arg(Z0AxisVel*100)+
// // Z2轴走到0位
// QString("PTP/e (Z0),%1\n").arg(Z0AxisToHomePos)+
// // 设置Z2轴软限位
// QString("SRLIMIT(Z0)=%1\n").arg(Z0AxisSRLimit)+
// QString("SLLIMIT(Z0)=%1\n").arg(Z0AxisSLLimit)+
// // 启用Z2轴限位
// "FDEF(Z0).#LL=1\n"
// "FDEF(Z0).#RL=1\n"
// "FMASK(Z0).#SRL=1\n"
// "FMASK(Z0).#SLL=1\n"
// // 禁用DD轴限位
// "FDEF(D).#LL=0\n"
// "FDEF(D).#RL=0\n"
// "FMASK(D).#SRL=0\n"
// "FMASK(D).#SLL=0\n"
// "ENABLE (D)\n"
// "COMMUT (D)\n"+
// QString("VEL(D) = %1\n").arg(DAxisVel)+
// QString("ACC(D) = %1\n").arg(DAxisVel*10)+
// QString("DEC(D) = %1\n").arg(DAxisVel*10)+
// QString("JERK(D) = %1\n").arg(DAxisVel*100)+
// QString("KDEC(D) = %1\n").arg(DAxisVel*100)+
// // D轴向负方向JOG移动
// "JOG (D),-\n"
// // D轴IND值设为0
// "IST(D).#IND=0\n"
// // 直到D轴碰到IND信号
// "TILL IST(D).#IND\n"+
// // 原点磁铁位置设为114mm
// QString("SET FPOS(D)=FPOS(D)-IND(D)+%1\n").arg(DAxisINDZeroOffset)+
// QString("VEL(D) = %1\n").arg(DAxisVel)+
// QString("ACC(D) = %1\n").arg(DAxisVel*10)+
// QString("DEC(D) = %1\n").arg(DAxisVel*10)+
// QString("JERK(D) = %1\n").arg(DAxisVel*100)+
// QString("KDEC(D) = %1\n").arg(DAxisVel*100)+
// // D轴走到0位
// QString("PTP/e (D),%1\n").arg(DAxisToHomePos)+
////lihongchang 0613
// "X_ToHomeF = 1\n"
// "Y_ToHomeF = 1\n"
// "Z_ToHomeF = 1\n"
// "ZA_ToHomeF = 1\n"
// "D_ToHomeF = 1\n"
// "Z0_ToHomeF = 1\n"
// "Z2_ToHomeF = 1\n"
// "toHomeF = 1\n"
// "runF = 1\n"
// "STOP";
// return code;
//}
void ToHomeCode::setZAAxisToSafePosVel(double value)
{
ZAAxisToSafePosVel = value;
}
void ToHomeCode::setXAxisToHomePos(double value)
{
XAxisToHomePos = value;
}
void ToHomeCode::setYAxisToHomePos(double value)
{
YAxisToHomePos = value;
}
void ToHomeCode::setZAxisToHomePos(double value)
{
ZAxisToHomePos = value;
}
void ToHomeCode::setZAAxisToHomePos(double value)
{
ZAAxisToHomePos = value;
}
void ToHomeCode::setDAxisToHomePos(double value)
{
DAxisToHomePos = value;
}
void ToHomeCode::setZ0AxisToHomePos(double value)
{
Z0AxisToHomePos = value;
}
void ToHomeCode::setZ2AxisToHomePos(double value)
{
Z2AxisToHomePos = value;
}
void ToHomeCode::setXAxisFindINDVel(double value)
{
XAxisFindINDVel = value;
}
void ToHomeCode::setYAxisFindINDVel(double value)
{
YAxisFindINDVel = value;
}
void ToHomeCode::setZAxisFindINDVel(double value)
{
ZAxisFindINDVel = value;
}
void ToHomeCode::setZAAxisFindINDVel(double value)
{
ZAAxisFindINDVel = value;
}
void ToHomeCode::setDAxisFindINDVel(double value)
{
DAxisFindINDVel = value;
}
void ToHomeCode::setZ0AxisFindINDVel(double value)
{
Z0AxisFindINDVel = value;
}
void ToHomeCode::setZ2AxisFindINDVel(double value)
{
Z2AxisFindINDVel = value;
}
void ToHomeCode::setXAxisINDZeroOffset(double value)
{
XAxisINDZeroOffset = value;
}
void ToHomeCode::setYAxisINDZeroOffset(double value)
{
YAxisINDZeroOffset = value;
}
void ToHomeCode::setZAxisINDZeroOffset(double value)
{
ZAxisINDZeroOffset = value;
}
void ToHomeCode::setZAAxisINDZeroOffset(double value)
{
ZAAxisINDZeroOffset = value;
}
void ToHomeCode::setDAxisINDZeroOffset(double value)
{
DAxisINDZeroOffset = value;
}
void ToHomeCode::setZ0AxisINDZeroOffset(double value)
{
Z0AxisINDZeroOffset = value;
}
void ToHomeCode::setZ2AxisINDZeroOffset(double value)
{
Z2AxisINDZeroOffset = value;
}
void ToHomeCode::setXAxisSLLimit(double value)
{
XAxisSLLimit = value;
}
void ToHomeCode::setXAxisSRLimit(double value)
{
XAxisSRLimit = value;
}
void ToHomeCode::setYAxisSLLimit(double value)
{
YAxisSLLimit = value;
}
void ToHomeCode::setYAxisSRLimit(double value)
{
YAxisSRLimit = value;
}
void ToHomeCode::setZAxisSLLimit(double value)
{
ZAxisSLLimit = value;
}
void ToHomeCode::setZAxisSRLimit(double value)
{
ZAxisSRLimit = value;
}
void ToHomeCode::setZAAxisSLLimit(double value)
{
ZAAxisSLLimit = value;
}
void ToHomeCode::setZAAxisSRLimit(double value)
{
ZAAxisSRLimit = value;
}
void ToHomeCode::setDAxisSLLimit(double value)
{
DAxisSLLimit = value;
}
void ToHomeCode::setDAxisSRLimit(double value)
{
DAxisSRLimit = value;
}
void ToHomeCode::setZ0AxisSLLimit(double value)
{
Z0AxisSLLimit = value;
}
void ToHomeCode::setZ0AxisSRLimit(double value)
{
Z0AxisSRLimit = value;
}
void ToHomeCode::setZ2AxisSLLimit(double value)
{
Z2AxisSLLimit = value;
}
void ToHomeCode::setZ2AxisSRLimit(double value)
{
Z2AxisSRLimit = value;
}
void ToHomeCode::setXAxisVel(double value)
{
XAxisVel = value;
}
void ToHomeCode::setYAxisVel(double value)
{
YAxisVel = value;
}
void ToHomeCode::setZAxisVel(double value)
{
ZAxisVel = value;
}
void ToHomeCode::setZAAxisVel(double value)
{
ZAAxisVel = value;
}
void ToHomeCode::setDAxisVel(double value)
{
DAxisVel = value;
}
void ToHomeCode::setZ0AxisVel(double value)
{
Z0AxisVel = value;
}
void ToHomeCode::setZ2AxisVel(double value)
{
Z2AxisVel = value;
}