refactor(*):03LaserCut_V00.00.01,Spark100项目发货前功能提取
This commit is contained in:
@@ -11,6 +11,9 @@
|
||||
#define ACSCTL_RUNF_V "runF"
|
||||
#define ACSCTL_RCECATADDR_V "RangeSAddr"
|
||||
#define ACSCTL_RSVALUE_V "RangeV"
|
||||
#define ACSCTL_RCECATADDR_V_Z0 "RangeSAddr_Z0"
|
||||
#define ACSCTL_RSVALUE_V_Z0 "RangeV_Z0"
|
||||
#define ACSCTL_Z0_VALUE "Z0_value"
|
||||
#define ACSCTL_DI1_V "DI1"
|
||||
#define ACSCTL_DI2_V "DI2"
|
||||
#define ACSCTL_DO1_V "DO1"
|
||||
|
||||
@@ -26,3 +26,30 @@ QString Buffer0AutoExeCode::getCode()
|
||||
"STOP";
|
||||
return code;
|
||||
}
|
||||
|
||||
|
||||
QString Buffer0AutoExeCode::getCode_2()
|
||||
{
|
||||
QString code("\n");
|
||||
/*
|
||||
* ECUNMAPIN 此函数用于将ECIN定义的所有映射重置为特定偏移量
|
||||
* ECIN 将EtherCAT偏移地址的值映射到变量
|
||||
*/
|
||||
code+=
|
||||
"AUTOEXEC:\n"
|
||||
"ECUNMAPIN(RangeSAddr)\n"
|
||||
"ECUNMAPIN(RangeSAddr_Z0)\n"
|
||||
// 禁用报警
|
||||
"SAFETYCONF ALL,#NT,\"-\"\n"
|
||||
"ECIN(RangeSAddr, RangeVInt)\n"
|
||||
"ECIN(RangeSAddr_Z0, RangeVInt_Z0)\n"
|
||||
"WAIT 50\n"
|
||||
"WHILE 1\n"
|
||||
// 测距值换算为mm
|
||||
"RangeV=RangeVInt/10000\n"
|
||||
"RangeV_Z0=RangeVInt_Z0/10000\n"
|
||||
"END\n"
|
||||
"STOP";
|
||||
return code;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ class Buffer0AutoExeCode
|
||||
public:
|
||||
Buffer0AutoExeCode();
|
||||
QString getCode();
|
||||
QString getCode_2();
|
||||
};
|
||||
|
||||
#endif // BUFFER0AUTOEXECODE_H
|
||||
|
||||
@@ -117,7 +117,7 @@ QString RSensorToZero::getCode()
|
||||
|
||||
QString code;
|
||||
code+=
|
||||
QString("GLOBAL INT DuiLingF=-1\n")+
|
||||
QString("GLOBAL INT DuiLingF=-1\n")+ //粗测高标志位
|
||||
QString("VEL(Z) = 2\n")+
|
||||
QString("ACC(Z) = 20\n")+
|
||||
QString("DEC(Z) = 20\n")+
|
||||
@@ -191,3 +191,69 @@ QString RSensorToZero::getCode()
|
||||
"STOP";
|
||||
return code;
|
||||
}
|
||||
QString RSensorToZero::getCode_Z0()
|
||||
{
|
||||
/*
|
||||
"ECIN(RangeSAddr_Z0, RangeVInt_Z0)\n"
|
||||
"RangeV_Z0=RangeVInt_Z0/10000\n"
|
||||
*/
|
||||
QString code;
|
||||
code+=
|
||||
QString("VEL(Z0) = 2\n")+
|
||||
QString("ACC(Z0) = 20\n")+
|
||||
QString("DEC(Z0) = 20\n")+
|
||||
QString("JERK(Z0) = 200\n")+
|
||||
QString("KDEC(Z0) = 200\n")+
|
||||
QString("PTP/e Z0, 0\n")+
|
||||
"WAIT 4000\n"
|
||||
"IF (RangeV_Z0-Z0_value)<-1.5\n"+
|
||||
QString("VEL(Z0) = %1\n").arg(ZAAxisToSafePosVel)+
|
||||
QString("ACC(Z0) = %1\n").arg(ZAAxisToSafePosVel*10)+
|
||||
QString("DEC(Z0) = %1\n").arg(ZAAxisToSafePosVel*10)+
|
||||
QString("JERK(Z0) = %1\n").arg(ZAAxisToSafePosVel*100)+
|
||||
QString("KDEC(Z0) = %1\n").arg(ZAAxisToSafePosVel*100)+
|
||||
QString("PTP/e Z0, %1\n").arg(ZAAxisSafePos)+
|
||||
QString("VEL(Z0) = %1\n").arg(ZAAxisToZero1Vel)+
|
||||
QString("ACC(Z0) = %1\n").arg(ZAAxisToZero1Vel*10)+
|
||||
QString("DEC(Z0) = %1\n").arg(ZAAxisToZero1Vel*10)+
|
||||
QString("JERK(Z0) = %1\n").arg(ZAAxisToZero1Vel*100)+
|
||||
QString("KDEC(Z0) = %1\n").arg(ZAAxisToZero1Vel*100)+
|
||||
"PTP Z0, -30\n"
|
||||
"TILL ABS(RangeV_Z0-Z0_value) < 0.1\n"
|
||||
"HALT Z0\n"
|
||||
"WAIT 4000\n"+
|
||||
QString("VEL(Z0) = %1\n").arg(ZAAxisToZero2Vel)+
|
||||
QString("ACC(Z0) = %1\n").arg(ZAAxisToZero2Vel*10)+
|
||||
QString("DEC(Z0) = %1\n").arg(ZAAxisToZero2Vel*10)+
|
||||
QString("JERK(Z0) = %1\n").arg(ZAAxisToZero2Vel*100)+
|
||||
QString("KDEC(Z0) = %1\n").arg(ZAAxisToZero2Vel*100)+
|
||||
"PTP/er Z0, RangeV_Z0-Z0_value\n"
|
||||
"WAIT 4000\n"
|
||||
"ELSE\n"+
|
||||
QString("VEL(Z0) = %1\n").arg(ZAAxisToZero1Vel)+
|
||||
QString("ACC(Z0) = %1\n").arg(ZAAxisToZero1Vel*10)+
|
||||
QString("DEC(Z0) = %1\n").arg(ZAAxisToZero1Vel*10)+
|
||||
QString("JERK(Z0) = %1\n").arg(ZAAxisToZero1Vel*100)+
|
||||
QString("KDEC(Z0) = %1\n").arg(ZAAxisToZero1Vel*100)+
|
||||
"PTP/ER Z0,RangeV_Z0-Z0_value\n"
|
||||
"WAIT 4000\n"+
|
||||
QString("VEL(Z0) = %1\n").arg(ZAAxisToZero2Vel)+
|
||||
QString("ACC(Z0) = %1\n").arg(ZAAxisToZero2Vel*10)+
|
||||
QString("DEC(Z0) = %1\n").arg(ZAAxisToZero2Vel*10)+
|
||||
QString("JERK(Z0) = %1\n").arg(ZAAxisToZero2Vel*100)+
|
||||
QString("KDEC(Z0) = %1\n").arg(ZAAxisToZero2Vel*100)+
|
||||
"PTP/ER Z0,RangeV_Z0-Z0_value\n"
|
||||
"WAIT 4000\n"
|
||||
"END\n"
|
||||
"IF ABS(RangeV_Z0-Z0_value) >= 0.0003\n"+
|
||||
QString("VEL(Z0) = %1\n").arg(ZAAxisToZero3Vel)+
|
||||
QString("ACC(Z0) = %1\n").arg(ZAAxisToZero3Vel*10)+
|
||||
QString("DEC(Z0) = %1\n").arg(ZAAxisToZero3Vel*10)+
|
||||
QString("JERK(Z0) = %1\n").arg(ZAAxisToZero3Vel*100)+
|
||||
QString("KDEC(Z0) = %1\n").arg(ZAAxisToZero3Vel*100)+
|
||||
"PTP/er Z0, RangeV_Z0-Z0_value\n"
|
||||
"END\n"
|
||||
"runF = 1\n"
|
||||
"STOP";
|
||||
return code;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ class RSensorToZero{
|
||||
public:
|
||||
RSensorToZero();
|
||||
QString getCode();
|
||||
QString getCode_Z0();
|
||||
void setZAAxisSafePos(double value);
|
||||
void setZAAxisToSafePosVel(double value);
|
||||
void setZAAxisToZero1Vel(double value);
|
||||
@@ -13,7 +14,7 @@ public:
|
||||
void setZAAxisToZero3Vel(double value);
|
||||
int CuCeGaoDoNum{0};
|
||||
int CuCeGaoDiNum{0};
|
||||
|
||||
double Z0_value;
|
||||
private:
|
||||
double ZAAxisSafePos{0.0};
|
||||
double ZAAxisToSafePosVel{0.0};
|
||||
|
||||
@@ -769,6 +769,76 @@ QString ToHomeCode::getCode()
|
||||
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()
|
||||
//{
|
||||
|
||||
@@ -7,6 +7,7 @@ class ToHomeCode
|
||||
public:
|
||||
explicit ToHomeCode();
|
||||
QString getCode();
|
||||
QString getCode_z(); //<2F><>Ȧ<EFBFBD><C8A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
||||
|
||||
void setZAAxisToSafePosVel(double value);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user