이전 셀의 LBAD 판정값이 남아있으면 이번 셀에서 판정을 못했을 때

그대로 재전송되므로 초기화하는 코드 추가
LBAD_Judge = string.Empty;
This commit is contained in:
김승준 2026-09-09 18:04:14 +09:00
parent 2dafd9096b
commit d11907dc3c

View File

@ -372,7 +372,7 @@ namespace ILSOS_KS.Sequences
> sb[SEQ_SEND_EVENT_SENDER].Send(EVENT_TRIGGER_SAVE_FILE) > sb[SEQ_CHECK_BEFORE_OR_AFTER] > sb[SEQ_SEND_EVENT_SENDER].Send(EVENT_TRIGGER_SAVE_FILE) > sb[SEQ_CHECK_BEFORE_OR_AFTER]
> sb[SEQ_BEFORE_WELD_MOVE_OBJECT] > sb[SEQ_READY_SCANNER_LIST]); > sb[SEQ_BEFORE_WELD_MOVE_OBJECT] > sb[SEQ_READY_SCANNER_LIST]);
// RCC NG인 경우 // RCC NG인 경우
sb.Flows(sb[SEQ_BEFORE_WELD_MOVE_OBJECT] > sb[SEQ_CHECK_PAGENO]); sb.Flows(sb[SEQ_BEFORE_WELD_MOVE_OBJECT] > sb[SEQ_CHECK_PAGENO]);
sb.Flows(sb[SEQ_CHECK_RCC_MODE] sb.Flows(sb[SEQ_CHECK_RCC_MODE]
@ -382,11 +382,11 @@ namespace ILSOS_KS.Sequences
> sb[SEQ_AFTER_WELD_CHECK_BEAD] > sb[SEQ_REQUEST_UNLOAD_CELL]); > sb[SEQ_AFTER_WELD_CHECK_BEAD] > sb[SEQ_REQUEST_UNLOAD_CELL]);
// 사전 검사 프로세스 추가 // 사전 검사 프로세스 추가
sb.Flows(sb[SEQ_CHECK_LOAD_COMPLETE] sb.Flows(sb[SEQ_CHECK_LOAD_COMPLETE]
> sb[SEQ_KS_WAIT_VISION] > sb[SEQ_KS_WAIT_VISION]
//> sb[SEQ_SET_SCOUT_FLYING_VISION_SEQ] > sb[SEQ_DO_ID_SCOUT_FLYING_VISION_SEQ] > sb[SEQ_GET_SCOUT_FLYING_VISION_SEQ] //> sb[SEQ_SET_SCOUT_FLYING_VISION_SEQ] > sb[SEQ_DO_ID_SCOUT_FLYING_VISION_SEQ] > sb[SEQ_GET_SCOUT_FLYING_VISION_SEQ]
//> sb[SEQ_SEND_EVENT_SENDER].Send(EVENT_TRIGGER_SAVE_FILE) > sb[SEQ_CHECK_BEFORE_OR_AFTER] > sb[SEQ_AFTER_WELD_CHECK_BEAD] //> sb[SEQ_SEND_EVENT_SENDER].Send(EVENT_TRIGGER_SAVE_FILE) > sb[SEQ_CHECK_BEFORE_OR_AFTER] > sb[SEQ_AFTER_WELD_CHECK_BEAD]
> sb[SEQ_KS_COMPLETE_VISION] > sb[SEQ_KS_COMPLETE_VISION]
> sb[SEQ_CHECK_PAGENO]); > sb[SEQ_CHECK_PAGENO]);
@ -458,7 +458,7 @@ namespace ILSOS_KS.Sequences
{ {
_PLC.WriteBit((int)eBitOutput.PC_WELD_COMPLETE, true); _PLC.WriteBit((int)eBitOutput.PC_WELD_COMPLETE, true);
Log.I(string.Format($"[PLCInterface]SET PC_WELD_COMPLETE True")); Log.I(string.Format($"[PLCInterface]SET PC_WELD_COMPLETE True"));
Thread.Sleep(200); Thread.Sleep(200);
_InterfaceStartTime = DateTime.Now; _InterfaceStartTime = DateTime.Now;
@ -1212,7 +1212,7 @@ namespace ILSOS_KS.Sequences
string directory = Path.GetDirectoryName(ExcelFile); string directory = Path.GetDirectoryName(ExcelFile);
AsyncLog.I($"{Count} SaveExcelFile.... {directory}{fileName}"); AsyncLog.I($"{Count} SaveExcelFile.... {directory}{fileName}");
} }
#endregion #endregion
Mat matLeftTop; Mat matLeftTop;
@ -1761,7 +1761,7 @@ namespace ILSOS_KS.Sequences
// } // }
// nRecipeNo = _RecipeManager.ActivatedRecipe().Id; // nRecipeNo = _RecipeManager.ActivatedRecipe().Id;
//} //}
#endregion #endregion
@ -1796,6 +1796,10 @@ namespace ILSOS_KS.Sequences
_PLC.WriteBit((int)eBitOutput.PC_LBAD_RESULT_NG, false); _PLC.WriteBit((int)eBitOutput.PC_LBAD_RESULT_NG, false);
Log.I(string.Format($"[PLCInterface]SET PC_LBAD_RESULT_NG False")); Log.I(string.Format($"[PLCInterface]SET PC_LBAD_RESULT_NG False"));
// 이전 셀의 LBAD 판정값이 남아있으면 이번 셀에서 판정을 못했을 때 그대로 재전송되므로 여기서 초기화한다.
Status.GetProcessingWeldingData().LBAD_Judge = string.Empty;
Log.I(string.Format($"[PLCInterface]CLEAR LBAD_Judge"));
_InterfaceStartTime = DateTime.Now; _InterfaceStartTime = DateTime.Now;
while (!context.Stopped) while (!context.Stopped)
@ -2285,7 +2289,7 @@ namespace ILSOS_KS.Sequences
string s3 = recipeNo.ToString(); string s3 = recipeNo.ToString();
string s4 = _ModelNo.ToString(); string s4 = _ModelNo.ToString();
string LBADSendBcrId = _BcrID; string LBADSendBcrId = _BcrID;
if (LBADSendBcrId == "" || LBADSendBcrId.Equals(null)) if (LBADSendBcrId == "" || LBADSendBcrId.Equals(null))
LBADSendBcrId = T1.ToString("HHmmss"); LBADSendBcrId = T1.ToString("HHmmss");
@ -2333,7 +2337,7 @@ namespace ILSOS_KS.Sequences
double dExecuteListTime = _Scanner.GetTime(); double dExecuteListTime = _Scanner.GetTime();
Log.I(string.Format($"ExecuteList Time : {dExecuteListTime * 1000} msec")); Log.I(string.Format($"ExecuteList Time : {dExecuteListTime * 1000} msec"));
_PLC.WriteBit((int)eBitOutput.PC_WELD_REQEUST_ACK, false); _PLC.WriteBit((int)eBitOutput.PC_WELD_REQEUST_ACK, false);
Log.I(string.Format($"[PLCInterface]SET PC_WELD_REQEUST_ACK False")); Log.I(string.Format($"[PLCInterface]SET PC_WELD_REQEUST_ACK False"));
_PLC.WriteBit((int)eBitOutput.PC_WELD_READY, false); _PLC.WriteBit((int)eBitOutput.PC_WELD_READY, false);
@ -2410,7 +2414,7 @@ namespace ILSOS_KS.Sequences
//return (int)Math.Round(decValue * 100m, MidpointRounding.AwayFromZero); //return (int)Math.Round(decValue * 100m, MidpointRounding.AwayFromZero);
return (int)Math.Round(decValue * 100m); return (int)Math.Round(decValue * 100m);
} }
public static short[] IntArrayToCatShortArray(int[] intArray) public static short[] IntArrayToCatShortArray(int[] intArray)
{ {
short[] shortArray = new short[intArray.Length]; short[] shortArray = new short[intArray.Length];
@ -2698,7 +2702,7 @@ namespace ILSOS_KS.Sequences
UpdatePLCMemoryAreaRecipe((int)eWordOutput.Line_LaserPower1, recipe); UpdatePLCMemoryAreaRecipe((int)eWordOutput.Line_LaserPower1, recipe);
Log.I($"Channel 0: {ResultDataList[0]}, Channel 1: {ResultDataList[1]}, Channel 2: {ResultDataList[2]}, Channel 3: {ResultDataList[3]}"); Log.I($"Channel 0: {ResultDataList[0]}, Channel 1: {ResultDataList[1]}, Channel 2: {ResultDataList[2]}, Channel 3: {ResultDataList[3]}");
@ -2783,8 +2787,8 @@ namespace ILSOS_KS.Sequences
for (int i = 0; i < _weding.Count; i++) for (int i = 0; i < _weding.Count; i++)
{ {
// NG 일경우 // NG 일경우
if (_weding[i] == 2) if (_weding[i] == 2)
{ {
return false; return false;
} }
} }
@ -2821,7 +2825,7 @@ namespace ILSOS_KS.Sequences
string fileName = System.IO.Path.GetFileName(fullPath); string fileName = System.IO.Path.GetFileName(fullPath);
string dirPath = Path.GetDirectoryName(fullPath); string dirPath = Path.GetDirectoryName(fullPath);
if (!string.IsNullOrEmpty(dirPath)) if (!string.IsNullOrEmpty(dirPath))
{ {
Directory.CreateDirectory(dirPath); Directory.CreateDirectory(dirPath);
@ -2854,17 +2858,17 @@ namespace ILSOS_KS.Sequences
// switch (_PageNoRcc) // switch (_PageNoRcc)
// { // {
// case 0: if (bead_result_info.Count != 24) // 변경 -> 36 // case 0: if (bead_result_info.Count != 24) // 변경 -> 36
// { // {
// Log.I($"[INFO] WeldingInfoSendPLC: Err -> {string.Join(", ", bead_result_info)} \n Count : {bead_result_info.Count}"); // Log.I($"[INFO] WeldingInfoSendPLC: Err -> {string.Join(", ", bead_result_info)} \n Count : {bead_result_info.Count}");
// } // }
// break; // break;
// case 1: if (bead_result_info.Count != 21) { Log.I($"[INFO] WeldingInfoSendPLC: Err -> {string.Join(", ", bead_result_info)} \n Count : {bead_result_info.Count}"); } break; // case 1: if (bead_result_info.Count != 21) { Log.I($"[INFO] WeldingInfoSendPLC: Err -> {string.Join(", ", bead_result_info)} \n Count : {bead_result_info.Count}"); } break;
// case 2: if (bead_result_info.Count != 24) // 변경 -> 36 // case 2: if (bead_result_info.Count != 24) // 변경 -> 36
// { // {
// Log.I($"[INFO] WeldingInfoSendPLC: Err -> {string.Join(", ", bead_result_info)} \n Count : {bead_result_info.Count}"); // Log.I($"[INFO] WeldingInfoSendPLC: Err -> {string.Join(", ", bead_result_info)} \n Count : {bead_result_info.Count}");
// } // }
// break; // break;
// case 3: if (bead_result_info.Count != 21) { Log.I($"[INFO] WeldingInfoSendPLC: Err -> {string.Join(", ", bead_result_info)} \n Count : {bead_result_info.Count}"); } break; // case 3: if (bead_result_info.Count != 21) { Log.I($"[INFO] WeldingInfoSendPLC: Err -> {string.Join(", ", bead_result_info)} \n Count : {bead_result_info.Count}"); } break;
@ -3042,7 +3046,7 @@ namespace ILSOS_KS.Sequences
// } // }
// // 검사 결화 화면 띠운다.. // // 검사 결화 화면 띠운다..
// popup.Show(); // popup.Show();
// popup.UpdateImages1(_WeldingImage[0], new OpenCvSharp.Rect(1153, 1296, 7000, 8156)); // // popup.UpdateImages1(_WeldingImage[0], new OpenCvSharp.Rect(1153, 1296, 7000, 8156)); //
// popup.UpdateImages2(_WeldingImage[1], new OpenCvSharp.Rect(1153, 1296, 7000, 8156)); // 6918 // popup.UpdateImages2(_WeldingImage[1], new OpenCvSharp.Rect(1153, 1296, 7000, 8156)); // 6918
// popup.UpdateImages3(_WeldingImage[2], new OpenCvSharp.Rect(1153, 1296, 7000, 8156)); // 6918 // popup.UpdateImages3(_WeldingImage[2], new OpenCvSharp.Rect(1153, 1296, 7000, 8156)); // 6918
// popup.UpdateImages4(_WeldingImage[3], new OpenCvSharp.Rect(1153, 1296, 7000, 8156)); // 6918 // popup.UpdateImages4(_WeldingImage[3], new OpenCvSharp.Rect(1153, 1296, 7000, 8156)); // 6918
@ -3269,7 +3273,7 @@ namespace ILSOS_KS.Sequences
// 필요한 값을 사용하세요 // 필요한 값을 사용하세요
Log.I($"Channel 0: {ResultDataList[0]}, Channel 1: {ResultDataList[1]}, Channel 2: {ResultDataList[2]}, Channel 3: {ResultDataList[3]}"); Log.I($"Channel 0: {ResultDataList[0]}, Channel 1: {ResultDataList[1]}, Channel 2: {ResultDataList[2]}, Channel 3: {ResultDataList[3]}");
} }
judgeFlag = tt.nResultFlag; judgeFlag = tt.nResultFlag;
Log.I(string.Format($"[LBAD] stReceiveData[0] {tt.nResultFlag} ")); Log.I(string.Format($"[LBAD] stReceiveData[0] {tt.nResultFlag} "));
@ -3365,7 +3369,7 @@ namespace ILSOS_KS.Sequences
} }
// 검사 결과 화면 표시 // 검사 결과 화면 표시
popup.Show(); popup.Show();
popup.UpdateImages1(_WeldingImage[0], new OpenCvSharp.Rect(1153, 896, 7000, 8156)); // popup.UpdateImages1(_WeldingImage[0], new OpenCvSharp.Rect(1153, 896, 7000, 8156)); //
popup.UpdateImages2(_WeldingImage[1], new OpenCvSharp.Rect(1153, 896, 7000, 8156)); // 6918 popup.UpdateImages2(_WeldingImage[1], new OpenCvSharp.Rect(1153, 896, 7000, 8156)); // 6918
popup.UpdateImages3(_WeldingImage[2], new OpenCvSharp.Rect(1153, 896, 7000, 8156)); // 6918 popup.UpdateImages3(_WeldingImage[2], new OpenCvSharp.Rect(1153, 896, 7000, 8156)); // 6918
popup.UpdateImages4(_WeldingImage[3], new OpenCvSharp.Rect(1153, 896, 7000, 8156)); // 6918 popup.UpdateImages4(_WeldingImage[3], new OpenCvSharp.Rect(1153, 896, 7000, 8156)); // 6918