diff --git a/Rs.SkyLine/Commom/NozzleCollection.cs b/Rs.SkyLine/Commom/NozzleCollection.cs index 4421acd..91b346e 100644 --- a/Rs.SkyLine/Commom/NozzleCollection.cs +++ b/Rs.SkyLine/Commom/NozzleCollection.cs @@ -1,4 +1,5 @@ using NPOI.SS.Formula.Eval; +using Rs.Controls; using Rs.DataAccess; using Rs.Framework; using Rs.MotionPlat.Flow; @@ -314,5 +315,10 @@ namespace Rs.MotionPlat.Commom { return nozzles; } + + public static double GetNozzleGrabOffsetY(int nozzleIndex) + { + return SysConfigParam.GetValue($"Nozzle{nozzleIndex}CenterY") - SysConfigParam.GetValue("Nozzle1CenterY"); + } } } diff --git a/Rs.SkyLine/Commom/VisionProcess.cs b/Rs.SkyLine/Commom/VisionProcess.cs index 54a7cdd..8e8fa7a 100644 --- a/Rs.SkyLine/Commom/VisionProcess.cs +++ b/Rs.SkyLine/Commom/VisionProcess.cs @@ -76,9 +76,16 @@ namespace Rs.MotionPlat.Commom get { if (LocationOk) - return -1 * (Row - ModelRow) * GlobalVar.DownCameraMmPerPixel; + { + double sourceOffsetY = (-1 * (Row - ModelRow) * GlobalVar.DownCameraMmPerPixel); + double offsetY = NozzleManager.GetNozzleGrabOffsetY(NozzleIndex); + //MessageQueue.Instance.Insert( $"吸嘴{NozzleIndex},补偿前:{sourceOffsetY},增加偏移量{offsetY},补偿后:{sourceOffsetY - offsetY}"); + return sourceOffsetY - offsetY; + } else + { return 0; + } } } diff --git a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs index 711db5f..bc19bdf 100644 --- a/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs +++ b/Rs.SkyLine/Flow/NormalFlow/DischargeFlow.cs @@ -813,7 +813,7 @@ namespace Rs.MotionPlat.Flow needGrabNum = NozzleManager.GetNozzlesByStatus(ENozzleStatus.ToUnload).Count(); //targetX = SysConfigParam.GetValue($"Nozzle{needGrabNum}CenterX") - 30; targetX = SysConfigParam.GetValue($"Nozzle8CenterX") - 30; - targetY = SysConfigParam.GetValue($"Nozzle8CenterY"); + targetY = SysConfigParam.GetValue($"Nozzle1CenterY"); errCode = AxisControl.LoadX.MovePos(targetX, GlobalVar.WholeSpeed); if (errCode == ErrorCode.Ok || GlobalVar.VirtualAxis) { @@ -1037,6 +1037,14 @@ namespace Rs.MotionPlat.Flow // NozzleManager.GetNozzle(ni).SN = item.SN; // ni++; //} + //foreach (MatchResult matchResult in mrs) + //{ + // if(matchResult.IsOK) + // { + + // matchResult.OffsetRow = matchResult.OffsetRow + offsetY; + // } + //} reGrabCount = 0; OnMatchResult?.Invoke(mrs); flowStep = EDischargeFlowStep.到放料位上方;