Files
newspark110/device/control/acs/buffercode/maxisabsmovecode.cpp
Chenwenxuan edac2715f0 init
2024-03-06 14:54:30 +08:00

669 lines
18 KiB
C++
Raw Permalink 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 "maxisabsmovecode.h"
MAxisABSMoveCode::MAxisABSMoveCode()
{
}
QString MAxisABSMoveCode::getCode_L()
{
QString code("\n");
code =
getSurCode_L()+
"runF = 1\n"
"STOP";
return code;
}
QString MAxisABSMoveCode::getCode()
{
QString code("\n");
code =
getSurCode()+
"runF = 1\n"
"STOP";
return code;
}
QString MAxisABSMoveCode::getLaserMarkCode()
{
QString code("\n");
code =
getAutoToLaserMarkCode()+
"runF = 1\n"
"STOP";
return code;
}
QString MAxisABSMoveCode::getToCameraCode()
{
QString code("\n");
code =
getAutoToCameraCode()+
"runF = 1\n"
"STOP";
return code;
}
void MAxisABSMoveCode::setXAxisTGPos(double value)
{
XTargetPos = value;
}
void MAxisABSMoveCode::setYAxisTGPos(double value)
{
YTargetPos = value;
}
void MAxisABSMoveCode::setZAxisTGPos(double value)
{
ZTargetPos = value;
}
void MAxisABSMoveCode::setZAAxisTGPos(double value)
{
ZATargetPos = value;
}
void MAxisABSMoveCode::setZ2AxisTGPos(double value)
{
Z2TargetPos = value;
}
void MAxisABSMoveCode::setZ0AxisTGPos(double value)
{
Z0TargetPos = value;
}
void MAxisABSMoveCode::setZAAxisSafePos(double value)
{
ZASafePos = value;
}
void MAxisABSMoveCode::setZAAxisToSafePosVel(double value)
{
ZAAxisToSafePosVel = value;
}
void MAxisABSMoveCode::setXAxisVel(double value)
{
XAxisVel = value;
}
void MAxisABSMoveCode::setYAxisVel(double value)
{
YAxisVel = value;
}
void MAxisABSMoveCode::setZAAxisVel(double value)
{
ZAAxisVel = value;
}
void MAxisABSMoveCode::setZ2AxisVel(double value)
{
Z2AxisVel = value;
}
void MAxisABSMoveCode::setZ0AxisVel(double value)
{
Z0AxisVel = value;
}
void MAxisABSMoveCode::setZAxisVel(double value)
{
ZAxisVel = value;
}
void MAxisABSMoveCode::setXAxisIsMove(bool value)
{
XAxisIsMove = value;
}
void MAxisABSMoveCode::setYAxisIsMove(bool value)
{
YAxisIsMove = value;
}
void MAxisABSMoveCode::setZAxisIsMove(bool value)
{
ZAxisIsMove = value;
}
void MAxisABSMoveCode::setZAAxisIsMove(bool value)
{
ZAAxisIsMove = value;
}
void MAxisABSMoveCode::setZ2AxisIsMove(bool value)
{
Z2AxisIsMove = value;
}
void MAxisABSMoveCode::setZ0AxisIsMove(bool value)
{
Z0AxisIsMove = value;
}
void MAxisABSMoveCode::disableZAAxisToSafePos(bool value)
{
disabelZAToSafePos = value;
}
void MAxisABSMoveCode::setCMRSwitch(bool value)
{
CMRHSwitch = value;
}
/***************************************************************
* 修改码1008610010
* 日期:
* 2024.3.4
* 功能:
* 添加新接口先移动Z0
**************************************************************/
QString MAxisABSMoveCode::getSurCode_L()
{
QString moveAxis;
if(XAxisIsMove)
moveAxis+="X";
if(YAxisIsMove)
{
if(moveAxis.isEmpty())
moveAxis+="Y";
else
moveAxis+=",Y";
}
if(ZAxisIsMove)
{
if(moveAxis.isEmpty())
moveAxis+="Z";
else
moveAxis+=",Z";
}
if(ZAAxisIsMove)
{
if(moveAxis.isEmpty())
moveAxis+="ZA";
else
moveAxis+=",ZA";
}
if(Z2AxisIsMove)
{
if(moveAxis.isEmpty())
moveAxis+="Z2";
else
moveAxis+=",Z2";
}
if(Z0AxisIsMove)
{
if(moveAxis.isEmpty())
moveAxis+="Z0";
else
moveAxis+=",Z0";
}
surCode+=
QString("ENABLE (%1)\n").arg(moveAxis);
// "REAL ZAFPos\n"
// "ZAFPos = FPOS(ZA)\n";
if(Z0AxisIsMove)
{
surCode +=
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 Z0,%1\n").arg(Z0TargetPos,0,'f',4);
Z0AxisIsMove = false;
}
if(!disabelZAToSafePos)
{
surCode+=
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)+
QString("PTP/e ZA,%1\n").arg(ZASafePos,0,'f',4);
}
if(XAxisIsMove&&YAxisIsMove)
{
surCode +=
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)+
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);
if(CMRHSwitch)
{
surCode += QString("PTP/re (X,Y),%1,%2\n").arg(XTargetPos,0,'f',4).arg(YTargetPos,0,'f',4);
}
else
{
surCode += QString("PTP/e (X,Y),%1,%2\n").arg(XTargetPos,0,'f',4).arg(YTargetPos,0,'f',4);
}
}
else
{
if(XAxisIsMove)
{
surCode+=
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)+
QString("PTP/e (X),%1\n").arg(XTargetPos,0,'f',4);
}
if(YAxisIsMove)
{
surCode+=
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)+
QString("PTP/e (Y),%1\n").arg(YTargetPos,0,'f',4);
}
}
if(ZAAxisIsMove&&ZAxisIsMove)
{
surCode +=
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("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)+
QString("PTP/e (ZA,Z),%1,%2\n").arg(ZATargetPos,0,'f',4).arg(ZTargetPos,0,'f',4);
}
else
{
if(ZAxisIsMove)
{
surCode +=
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)+
QString("PTP/e Z,%1\n").arg(ZTargetPos,0,'f',4);
}
if(ZAAxisIsMove)
{
surCode +=
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(ZATargetPos,0,'f',4);
}
// else
// {
// surCode +=
// 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)+
// //ZA回到原来位置
// "PTP/e ZA,ZAFPos\n";
// }
}
if(Z2AxisIsMove)
{
surCode +=
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)+
QString("PTP/e Z2,%1\n").arg(Z2TargetPos,0,'f',4);
Z2AxisIsMove = false;
}
return surCode;
}
QString MAxisABSMoveCode::getSurCode()
{
QString moveAxis;
if(XAxisIsMove)
moveAxis+="X";
if(YAxisIsMove)
{
if(moveAxis.isEmpty())
moveAxis+="Y";
else
moveAxis+=",Y";
}
if(ZAxisIsMove)
{
if(moveAxis.isEmpty())
moveAxis+="Z";
else
moveAxis+=",Z";
}
if(ZAAxisIsMove)
{
if(moveAxis.isEmpty())
moveAxis+="ZA";
else
moveAxis+=",ZA";
}
if(Z2AxisIsMove)
{
if(moveAxis.isEmpty())
moveAxis+="Z2";
else
moveAxis+=",Z2";
}
surCode+=
QString("ENABLE (%1)\n").arg(moveAxis);
// "REAL ZAFPos\n"
// "ZAFPos = FPOS(ZA)\n";
if(!disabelZAToSafePos)
{
surCode+=
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)+
QString("PTP/e ZA,%1\n").arg(ZASafePos,0,'f',4);
}
if(XAxisIsMove&&YAxisIsMove)
{
surCode +=
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)+
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);
if(CMRHSwitch)
{
surCode += QString("PTP/re (X,Y),%1,%2\n").arg(XTargetPos,0,'f',4).arg(YTargetPos,0,'f',4);
}
else
{
surCode += QString("PTP/e (X,Y),%1,%2\n").arg(XTargetPos,0,'f',4).arg(YTargetPos,0,'f',4);
}
}
else
{
if(XAxisIsMove)
{
surCode+=
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)+
QString("PTP/e (X),%1\n").arg(XTargetPos,0,'f',4);
}
if(YAxisIsMove)
{
surCode+=
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)+
QString("PTP/e (Y),%1\n").arg(YTargetPos,0,'f',4);
}
}
if(ZAAxisIsMove&&ZAxisIsMove)
{
surCode +=
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("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)+
QString("PTP/e (ZA,Z),%1,%2\n").arg(ZATargetPos,0,'f',4).arg(ZTargetPos,0,'f',4);
}
else
{
if(ZAxisIsMove)
{
surCode +=
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)+
QString("PTP/e Z,%1\n").arg(ZTargetPos,0,'f',4);
}
if(ZAAxisIsMove)
{
surCode +=
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(ZATargetPos,0,'f',4);
}
// else
// {
// surCode +=
// 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)+
// //ZA回到原来位置
// "PTP/e ZA,ZAFPos\n";
// }
}
if(Z2AxisIsMove)
{
surCode +=
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)+
QString("PTP/e Z2,%1\n").arg(Z2TargetPos,0,'f',4);
Z2AxisIsMove = false;
}
if(Z0AxisIsMove)
{
surCode +=
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 Z0,%1\n").arg(Z0TargetPos,0,'f',4);
Z0AxisIsMove = false;
}
return surCode;
}
QString MAxisABSMoveCode::getAutoToCameraCode()
{
QString moveAxis;
if(XAxisIsMove)
moveAxis+="X";
if(YAxisIsMove)
{
if(moveAxis.isEmpty())
moveAxis+="Y";
else
moveAxis+=",Y";
}
if(ZAxisIsMove)
{
if(moveAxis.isEmpty())
moveAxis+="Z";
else
moveAxis+=",Z";
}
if(ZAAxisIsMove)
{
if(moveAxis.isEmpty())
moveAxis+="ZA";
else
moveAxis+=",ZA";
}
if(Z2AxisIsMove)
{
if(moveAxis.isEmpty())
moveAxis+="Z2";
else
moveAxis+=",Z2";
}
surCode+=
QString("ENABLE (%1)\n").arg(moveAxis);
// "REAL ZAFPos\n"
// "ZAFPos = FPOS(ZA)\n";
if(XAxisIsMove&&YAxisIsMove)
{
surCode +=
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)+
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);
}
{
if(ZAAxisIsMove)
{
surCode +=
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);
}
surCode += QString("PTP/e (X,Y,ZA),%1,%2,%3\n").arg(XTargetPos).arg(YTargetPos).arg(ZATargetPos);
}
return surCode;
}
QString MAxisABSMoveCode::getAutoToLaserMarkCode()
{
QString moveAxis;
if(XAxisIsMove)
moveAxis+="X";
if(YAxisIsMove)
{
if(moveAxis.isEmpty())
moveAxis+="Y";
else
moveAxis+=",Y";
}
if(ZAxisIsMove)
{
if(moveAxis.isEmpty())
moveAxis+="Z";
else
moveAxis+=",Z";
}
if(ZAAxisIsMove)
{
if(moveAxis.isEmpty())
moveAxis+="ZA";
else
moveAxis+=",ZA";
}
if(Z2AxisIsMove)
{
if(moveAxis.isEmpty())
moveAxis+="Z2";
else
moveAxis+=",Z2";
}
surCode+=
QString("ENABLE (%1)\n").arg(moveAxis);
// "REAL ZAFPos\n"
// "ZAFPos = FPOS(ZA)\n";
//if(!disabelZAToSafePos)
{
surCode+=
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)+
QString("PTP/e ZA,%1\n").arg(ZASafePos);
}
//if(XAxisIsMove&&YAxisIsMove)
{
surCode +=
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)+
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);
}
{
surCode +=
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)+
QString("PTP/e (X,Y,Z2),%1,%2,%3\n").arg(XTargetPos).arg(YTargetPos).arg(Z2TargetPos);
}
return surCode;
}