diff --git a/Machines/ILSOS_PrismaticScanner/Sequences/SeqAutoRunPrismaticScanner.cs b/Machines/ILSOS_PrismaticScanner/Sequences/SeqAutoRunPrismaticScanner.cs index c283d32..45b264b 100644 --- a/Machines/ILSOS_PrismaticScanner/Sequences/SeqAutoRunPrismaticScanner.cs +++ b/Machines/ILSOS_PrismaticScanner/Sequences/SeqAutoRunPrismaticScanner.cs @@ -147,9 +147,10 @@ namespace ILSOS_PrismaticScanner.Sequences sb.AddAction(SEQ_ENTER, Sequence_Enter); sb.AddAction(SEQ_CHECK_INIT_CONDITION, CheckInitCondition); //분기 #region 26.04.08 추가된 노드 NDY - // 26.04.08 필드 좌표 0,0으로 스테이지 이동 시퀸스 + EncoderReset 호출 + // 26.04.08 필드 좌표 x 0 y 22.8(자재 기준)으로 스테이지 이동 시퀸스 sb.AddAction(SEQ_STANDBY_MOTION, SetStandbyMotion); - sb.AddAction(SEQ_STANDBY_SCANNER, SetStandbyScanner); + // 26 04 17 스테이지 x =0 에서 스캐너 엔코더 0 상태에서 기록된 듯 싶습니다. + sb.AddAction(SEQ_STANDBY_SCANNER, SetStandbyScanner); #endregion sb.AddAction(SEQ_SET_BEFORE_UPLOAD, SetBeforeUpload); @@ -279,17 +280,20 @@ namespace ILSOS_PrismaticScanner.Sequences _AxisX.JerkImm(AuroraACS.Speed.M); _AxisX.Move(); - // Laser FocusPosition Move - _AxisZ.SetTargetPos(0, TargetPosType.ABS); + // Laser FocusPosition Move 22.8 <- 세팅 Z 축 자재 위치 + _AxisZ.SetTargetPos(22.8, TargetPosType.ABS); _AxisZ.SetMoveVelocityImm(AuroraACS.Speed.M); _AxisZ.AccelerationImm(AuroraACS.Speed.M); _AxisZ.DecelerationImm(AuroraACS.Speed.M); _AxisZ.JerkImm(AuroraACS.Speed.M); _AxisZ.Move(); + //var res = context.RetryUntilSuccess( + // () => _AxisX.IsReachedTargetPosition(0) && _AxisZ.IsReachedTargetPosition(0), + // 30 * 1000, 20, true); var res = context.RetryUntilSuccess( - () => _AxisX.IsReachedTargetPosition(0) && _AxisZ.IsReachedTargetPosition(0), - 30 * 1000, 20, true); + () => _AxisX.IsReachedTargetPosition(0), // Z축 조건 제거 + 30 * 1000, 20, true); if (res == E2.TIMEOUT) { Log.E("[MoveStageToOrigin] TIMEOUT"); return null; } else if (res == E2.CANCELLED) { Log.E("[MoveStageToOrigin] CANCELLED"); return null; } @@ -323,11 +327,12 @@ namespace ILSOS_PrismaticScanner.Sequences // _Scanner.WaitForEncoderX(_Scanner.Config.MarkingStartEncoderPositionX); // Log.I($"[EncoderReset] WaitForEncoderX: {_Scanner.Config.MarkingStartEncoderPositionX}"); + // 스캐너 기준 엔코더 리셋이 스테이지 x = 0에서 이뤄졌음. 260417 _Scanner.StoreEncoder(0); _Scanner.SaveAndRestartTimer(); - Log.I("[EncoderReset] 완료 - Stage(0) = Scanner(0) 동기화"); + Log.I("[EncoderReset] 완료 - Stage(0) = Scanner 엔코더(0) 동기화"); return SequenceAction.Ok(); } //SeqTeachingPosMoveStageA패턴 참고 - 기존 GUN 프로젝트 시퀸스 @@ -349,6 +354,7 @@ namespace ILSOS_PrismaticScanner.Sequences } #endregion + // 260417 NDY 먼저 업로드 되는 것 - 페이지 2번 4번 ?? 1번 4번은 어떻게 되는지 궁금합니다. private SequenceActionResult SetBeforeUpload(SequenceContext context, string id, SequenceActionResult param) { var mainPage = CommonHelper.GetMainPage(); @@ -357,13 +363,28 @@ namespace ILSOS_PrismaticScanner.Sequences _LastX = lastX; _LastY = lastY; if (_PageNum == 2 || _PageNum == 4) { - if (_PageNum == 0) { + if (_PageNum == 2) + { // NDY 26 04 17 0 아니고 2 인 것 같습니다. MarkingStartX_1 = 현재 310 (출발위치) _Scanner.WaitForEncoderX(_Scanner.Config.MarkingStartX_1); Log.I($"[EncoderReset] WaitForEncoderX: {_Scanner.Config.MarkingStartX_1}"); - } else { + // NDY 26 04 17아래가 반영해야 할 용접 시작위치라고 생각하는 구간 엔코더 리셋이 사실 용접 시작인 360 에서 이뤄져야하는 것 같은데 위 변수 값 맞는지 확인 + //_Scanner.WaitForEncoderX(_Scanner.Config.XDiff_Page1and2); // XDiff_Page1and2 = 360 + //Log.I($"[EncoderReset] WaitForEncoderX: {_Scanner.Config.XDiff_Page1and2}"); + + // 페이지 1,2 가 360에서 가공되어야 할 것 + } + else // pageNum 4 + { // MarkingStartX_2 = 현재 640 (출발 위치) 돌아오는 , 해당 리셋 위치가 원래는 용접 위치인 590 인 Diff에서 가져와야 하는 건 아닌지 의문 _Scanner.WaitForEncoderX(_Scanner.Config.MarkingStartX_2); Log.I($"[EncoderReset] WaitForEncoderX: {_Scanner.Config.MarkingStartX_2}"); + + // NDY 26 04 17아래가 반영해야 할 용접 시작위치라고 생각하는 구간 + //_Scanner.WaitForEncoderX(_Scanner.Config.XDiff_Page3and4); // XDiff_Page3and4 = 590 + //Log.I($"[EncoderReset] WaitForEncoderX: {_Scanner.Config.XDiff_Page3and4}"); + + // 페이지 3,4 가 590에서 가공되어야 할 것 + } foreach (IDrawObject obj in _SelectedObjectList) { if (obj is Line) {