This commit is contained in:
2024-09-10 11:50:41 +08:00
parent 9e4c2ff8d1
commit f36e9615cb
2 changed files with 29 additions and 27 deletions
+20 -18
View File
@@ -292,7 +292,7 @@ void createModbusStrs(const int startPos,double& Value, std::shared_ptr <detData
data->writeBack("short", startPos, QString::number(Value < 0 ? 2 : 1));
data->writeBack("short", startPos + 1, QString::number(abs(static_cast<int>(Value))));
double pvalue = Value - static_cast<int>(Value);
data->writeBack("short", startPos + 2, QString::number(static_cast<int>(abs(pvalue * 100))));
data->writeBack("short", startPos + 2, QString::number(static_cast<int>(abs(pvalue * 1000))));
}
correctionStruct* correctionData1x = new correctionStruct();
@@ -350,6 +350,7 @@ double offsetLimit(double valueIn,double offsetLimitIn)
}
void ALGO_Correction(std::shared_ptr <detData> data)
{
//x轴方向为-x 值越大-x越大 y方向为y+,值越大y+越大 z方向为y+,值越大z+越大
//data->writeBack("short", 274, "1");
//return;
CorrectionPoints resultPoints;
@@ -378,30 +379,39 @@ void ALGO_Correction(std::shared_ptr <detData> data)
double offsetLimit_Y = currentProductConfig._correctionConfigStruct.offsetLimit_Y;
double offsetLimit_Z = currentProductConfig._correctionConfigStruct.offsetLimit_Z;
//计算值
double correctionFinalResultX = correction_X - resultPoints.OriginX - baseOffset_X;
double correctionFinalResultY = correction_Y - resultPoints.OriginY - baseOffset_Y;
double correctionFinalResultZ = correction_Z - resultPoints.OriginZ - baseOffset_Z;
std::cout << "correctionFinalResultX" << correctionFinalResultX << std::endl;
std::cout << "correctionFinalResultY" << correctionFinalResultY << std::endl;
std::cout << "correctionFinalResultZ" << correctionFinalResultZ << std::endl;
//限制小数点后三位
correctionFinalResultX = doubleLmit(correctionFinalResultX, 3);
correctionFinalResultY = doubleLmit(correctionFinalResultY, 3);
correctionFinalResultZ = doubleLmit(correctionFinalResultZ, 3);
std::cout << "correctionFinalResultX" << correctionFinalResultX << std::endl;
std::cout << "correctionFinalResultY" << correctionFinalResultY << std::endl;
std::cout << "correctionFinalResultZ" << correctionFinalResultZ << std::endl;
//限制最大最小值
correctionFinalResultX = offsetLimit(correctionFinalResultX, offsetLimit_X);
correctionFinalResultY = offsetLimit(correctionFinalResultY, offsetLimit_Y);
correctionFinalResultZ = offsetLimit(correctionFinalResultZ, offsetLimit_Z);
//方向修正
correctionFinalResultY = -correctionFinalResultY;
correctionFinalResultZ = -correctionFinalResultZ;
std::cout << "correctionFinalResultX" << correctionFinalResultX << std::endl;
std::cout << "correctionFinalResultY" << correctionFinalResultY << std::endl;
std::cout << "correctionFinalResultZ" << correctionFinalResultZ << std::endl;
createModbusStrs(310, correctionFinalResultX, data);
createModbusStrs(313, correctionFinalResultY, data);
createModbusStrs(316, correctionFinalResultZ, data);
/*createModbusStrs(319, 0, data);
createModbusStrs(322, 0, data);
createModbusStrs(325, 0, data);*/
data->writeBack("short", 274, "1");
//double offsetRx = data->_productDataStruct.baseRad[0] - point.x;
//double offsetRy = data->_productDataStruct.baseRad[1] - point.y;
//double offsetRz = data->_productDataStruct.baseRad[2] - point.z;
@@ -420,16 +430,8 @@ void ALGO_Correction(std::shared_ptr <detData> data)
//offsetRy = doubleLmit(offsetRy, 3);
//offsetRz = doubleLmit(offsetRz, 3);
std::cout << "offsetX:" << data->pointsOffsetStruct_.baseOffsetX << "offsetY:" << data->pointsOffsetStruct_.baseOffsetY << "offsetZ:" << data->pointsOffsetStruct_.baseOffsetZ << std::endl;
//std::cout << "offsetX:" << data->pointsOffsetStruct_.baseOffsetX << "offsetY:" << data->pointsOffsetStruct_.baseOffsetY << "offsetZ:" << data->pointsOffsetStruct_.baseOffsetZ << std::endl;
//std::cout << "offsetRx:" << offsetRx << "offsetRy:" << offsetRy << "offsetRz:" << offsetRz << std::endl;
/*createModbusStrs(310, data->pointsOffsetStruct_.baseOffsetX,data);
createModbusStrs(313, data->pointsOffsetStruct_.baseOffsetY, data);
createModbusStrs(316, data->pointsOffsetStruct_.baseOffsetZ, data);*/
//createModbusStrs(319, offsetRx, data);
//createModbusStrs(322, offsetRy, data);
//createModbusStrs(325, offsetRz, data);
data->writeBack("short", 274, "1");
}
+9 -9
View File
@@ -6,15 +6,15 @@
["800-41485-01","800-103367-01","800-48770-01","800-50688-01"],
"Correction":
{
"correction_X":0,
"correction_Y":0,
"correction_Z":0,
"correction_X":-247.742,
"correction_Y":-395.592,
"correction_Z":-56.6341,
"baseOffset_X":0,
"baseOffset_Y":0,
"baseOffset_Z":0,
"offsetLimit_X":10,
"offsetLimit_Y":10,
"offsetLimit_Z":10,
"offsetLimit_X":30,
"offsetLimit_Y":30,
"offsetLimit_Z":0,
"commit":"limit对基础偏移不生效,单位为mm"
},
"imgPosPath":"./imgPosTip/Test1.jpg",
@@ -23,12 +23,12 @@
"baseY":0.00,
"baseZ":0.00,
"baseRx":0.00,
"baseRy":0.00,
"baseRy":0.00,
"baseRz":0.00,
"connectorAmout":-1,
"halconAlgoIndex":1,
"isBackExist":false,
"backArmIndex":-1,
"isBackExist":true,
"backArmIndex":11,
"cameraSetting":
{
"0":"Gain:60/Expouse:25000"