영문화완료

This commit is contained in:
ChiKyun Kim
2025-09-09 17:24:19 +09:00
parent adb66451ca
commit 02028afc27
338 changed files with 2205 additions and 79829 deletions

View File

@@ -20,9 +20,9 @@ namespace Project
if (free < 3.0)
{
string msg = "FREE SPACE ERROR\n" +
"디스크 공간(3%)이 부족하여 작업을 진행할 수 없습니다\n" +
"저장경로 : {0}\n" +
"데이터를 삭제하거나 설정의 삭제주기를 확인하세요";
"Insufficient disk space (3%) to proceed with the work\n" +
"Storage path: {0}\n" +
"Please delete data or check the deletion cycle in settings";
msg = string.Format(msg, AR.SETTING.Data.GetDataPath());
PUB.popup.setMessage(msg);
DIO.SetBuzzer(true);
@@ -34,7 +34,7 @@ namespace Project
if (PUB.Result.isSetmModel == false)
{
string msg = "모션모델이 선택되지 않았습니다\n작업모델의 'MOTION'항목을 확인하세요";
string msg = "Motion model not selected\nPlease check the 'MOTION' item in the work model";
PUB.popup.setMessage(msg);
DIO.SetBuzzer(true);
PUB.sm.SetNewStep(eSMStep.IDLE);
@@ -109,11 +109,11 @@ namespace Project
if (PUB.flag.get(eVarBool.FG_USERSTEP))
{
PUB.flag.set(eVarBool.FG_USERSTEP, false, "STACHKSW");
PUB.log.AddI("작업 시작으로 인해 H/W검사 무시기능을 해제 함");
PUB.log.AddI("H/W inspection ignore function disabled due to work start");
}
//공용변수초기화
PUB.log.Add("공용변수(카운트)값 초기화");
PUB.log.Add("Common variable (count) values initialized");
VAR.I32.Clear((int)eVarInt32.LPickOfCount);
VAR.I32.Clear((int)eVarInt32.LPickOnCount);
VAR.I32.Clear((int)eVarInt32.RPickOfCount);
@@ -136,7 +136,7 @@ namespace Project
PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false);
PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true);
PUB.Result.BCDPrintPattern = PUB.GetPrintPatterns();
PUB.log.Add($"모델패턴로딩:{PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}");
PUB.log.Add($"Model pattern loading: {PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}");
//변환SID SID확인여부데이터 삭제
PUB.Result.DTSidConvertEmptyList.Clear();

View File

@@ -120,7 +120,7 @@ namespace Project
//}
if (VAR.DBL[eVarDBL.CONVL_RUNTIME] > 15)
{
PUB.log.AddE($"(L) 컨베이어 15초 초과로 버퍼 클리어");
PUB.log.AddE($"(L) Buffer cleared due to conveyor exceeding 15 seconds");
VAR.I32[eVarInt32.LEFT_ITEM_COUNT] = 0;
}
else return false;
@@ -144,7 +144,7 @@ namespace Project
//}
if (VAR.DBL[eVarDBL.CONVR_RUNTIME] > 15)
{
PUB.log.AddE($"(R) 컨베이어 15초 초과로 버퍼 클리어");
PUB.log.AddE($"(R) Buffer cleared due to conveyor exceeding 15 seconds");
VAR.I32[eVarInt32.RIGT_ITEM_COUNT] = 0;
}
else return false;
@@ -222,7 +222,7 @@ namespace Project
}
if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false;
PUB.log.AddAT($"###### 처음 작업 회피 이동 완료({target})");
PUB.log.AddAT($"###### Initial work avoidance movement completed ({target})");
}
else
{
@@ -293,7 +293,7 @@ namespace Project
//sPositionData Pos = target == eWorkPort.Left ? MOT.GetPXPos(ePXLoc.READYL) : MOT.GetPXPos(ePXLoc.READYR);
if (MOT.getPositionMatch(Pos) == false)
{
PUB.log.AddAT($"######비젼데이터없으므로 회피이동II({target})");
PUB.log.AddAT($"######Avoidance movement II due to no vision data({target})");
MOT.Move(Pos);
}
return false;
@@ -315,7 +315,7 @@ namespace Project
{
this.Invoke(new Action(() =>
{
PUB.log.Add("사용자 선택창(INF)을 호출 합니다");
PUB.log.Add("Calling user selection window (INF)");
var f = new Dialog.fSelectSIDInformation();
f.Show();
}));
@@ -337,19 +337,19 @@ namespace Project
bool ShowUserFormBCD = false;
if (AR.SETTING.Data.RetryPickOnMaxCount == 0)
{
PUB.log.Add($"픽온 재시작 횟수가 없어 사용자 확인창을 띄웁니다");
PUB.log.Add($"Showing user confirmation window due to no pick-on retry count");
ShowUserFormBCD = true;
}
else if (AR.VAR.I32[AR.eVarInt32.PickOnRetry] >= AR.SETTING.Data.RetryPickOnMaxCount)
{
PUB.log.Add($"픽온 재시도 횟수가 초과됨 (최대:{AR.SETTING.Data.RetryPickOnMaxCount})");
PUB.log.Add($"Pick-on retry count exceeded (Max: {AR.SETTING.Data.RetryPickOnMaxCount})");
ShowUserFormBCD = true;
}
else
{
if (VAR.BOOL[eVarBool.Need_UserConfirm_Data])
{
PUB.log.Add($"사용자확인창을 띄워야함");
PUB.log.Add($"Need to show user confirmation window");
ShowUserFormBCD = true;
}
else
@@ -357,12 +357,12 @@ namespace Project
//읽은데이터가 atkstandard라면 바로 팝업을 띄운다
if (PUB.Result.ItemDataC.VisionData.SID.isEmpty() || PUB.Result.ItemDataC.VisionData.SID_Trust == false)
{
PUB.log.Add($"픽온을 재시도 합니다 ({AR.VAR.I32[AR.eVarInt32.PickOnRetry]}/{AR.SETTING.Data.RetryPickOnMaxCount})");
PUB.log.Add($"Retrying pick-on ({AR.VAR.I32[AR.eVarInt32.PickOnRetry]}/{AR.SETTING.Data.RetryPickOnMaxCount})");
ShowUserFormBCD = false;
}
else
{
PUB.log.Add($"SID값이 있으니 재시도하지 않고 사용자확인창을 띄웁니다");
PUB.log.Add($"SID value exists, showing user confirmation window instead of retrying");
ShowUserFormBCD = true;
}
}
@@ -372,7 +372,7 @@ namespace Project
this.Invoke(new Action(() =>
{
var itemC = PUB.Result.ItemDataC;
PUB.log.Add("사용자 확인창을 호출 합니다");
PUB.log.Add("Calling user confirmation window");
var f = new Dialog.fLoaderInfo(itemC.VisionData.bcdMessage);
f.Show();
}));
@@ -384,7 +384,7 @@ namespace Project
VAR.I32[eVarInt32.PickOnRetry] += 1;//, 1);
VAR.BOOL[eVarBool.JOB_PickON_Retry] = true;
PUB.log.Add($"픽온재시도 ({VAR.I32[eVarInt32.PickOnRetry]})");
PUB.log.Add($"Pick-on retry ({VAR.I32[eVarInt32.PickOnRetry]})");
PUB.sm.seq.Update(cmdIndex, -2);
}
}
@@ -397,7 +397,7 @@ namespace Project
else VAR.BOOL[eVarBool.wait_for_keyenceR] = false;
PUB.Result.ItemDataC.VisionData.ReelSize = DIO.getCartSize(1);
PUB.log.AddI($"[{target}] 키엔스 확인 완료(크기:{PUB.Result.ItemDataC.VisionData.ReelSize})");
PUB.log.AddI($"[{target}] Keyence verification completed (Size: {PUB.Result.ItemDataC.VisionData.ReelSize})");
PUB.log.AddI($"[{target}] Print Position:{PUB.Result.ItemDataC.VisionData.PrintPositionData}");
@@ -412,7 +412,7 @@ namespace Project
PUB.sm.seq.Clear(eSMStep.RUN_PRINTER_ON_F);
//PUB.sm.seq.Clear(eSMStep.RUN_PRINTER_OFF_F);
PUB.Result.ItemDataC.CopyTo(ref PUB.Result.ItemDataL);
PUB.log.Add($"[{target}] 비젼데이터 카피 (C->L) ID:{PUB.Result.ItemDataL.VisionData.RID}");
PUB.log.Add($"[{target}] Vision data copy (C->L) ID:{PUB.Result.ItemDataL.VisionData.RID}");
}
else
{
@@ -423,7 +423,7 @@ namespace Project
PUB.sm.seq.Clear(eSMStep.RUN_PRINTER_ON_R);
//PUB.sm.seq.Clear(eSMStep.RUN_PRINTER_OFF_R);
PUB.Result.ItemDataC.CopyTo(ref PUB.Result.ItemDataR);
PUB.log.Add($"[{target}] 비젼데이터 카피 (C->R) ID:{PUB.Result.ItemDataR.VisionData.RID}");
PUB.log.Add($"[{target}] Vision data copy (C->R) ID:{PUB.Result.ItemDataR.VisionData.RID}");
}
//트리거 OFF
@@ -454,7 +454,7 @@ namespace Project
if (OPT_BYPASS)
{
PUB.log.Add($"바이패스이므로 이전 릴아이디 검사 안함");
PUB.log.Add($"Bypass mode - skipping previous reel ID check");
}
else
{
@@ -471,7 +471,7 @@ namespace Project
}
else
{
PUB.log.Add($"신규아이디 사용체크 OK PRE={pre_ridN},NEW={cur_ridN}");
PUB.log.Add($"New ID usage check OK PRE={pre_ridN},NEW={cur_ridN}");
if (pre_ridO.isEmpty() == false && cur_ridO.isEmpty() == false) //구형아이디는 둘다 값이 있을때 처리한다.
{
@@ -482,24 +482,24 @@ namespace Project
else
PUB.Result.SetResultMessage(eResult.OPERATION, eECode.PRE_USE_REELID_R, eNextStep.ERROR, target, pre_ridO, cur_ridO);
}
else PUB.log.Add($"신규아이디 사용체크(ORG) OK PRE={pre_ridO},NEW={cur_ridO}");
else PUB.log.Add($"New ID usage check (ORG) OK PRE={pre_ridO},NEW={cur_ridO}");
}
else
{
PUB.log.Add($"신규아이디 사용체크(ORG) SKIP(NODATA) PRE={pre_ridO},NEW={cur_ridO}");
PUB.log.Add($"New ID usage check (ORG) SKIP (NO DATA) PRE={pre_ridO},NEW={cur_ridO}");
}
}
}
else
{
PUB.log.Add($"처음작업하므로 이전 릴아이디 검사 안함");
PUB.log.Add($"First work - skipping previous reel ID check");
}
VAR.STR[eVarString.PrePick_ReelIDNew] = cur_ridN;
VAR.STR[eVarString.PrePick_ReelIDOld] = cur_ridO;
VAR.STR[eVarString.PrePick_ReelIDTarget] = target.ToString();
PUB.log.Add($"이전작업릴ID설정 값 N={cur_ridN},O={cur_ridO}");
PUB.log.Add($"Previous work reel ID set values N={cur_ridN},O={cur_ridO}");
}
PUB.sm.seq.Update(cmdIndex);
@@ -536,7 +536,7 @@ namespace Project
// if (cvrun < 6) return false;
//}
}
PUB.log.Add($"CVMODE에서 컨베이어 비어있음(SEQ)");
PUB.log.Add($"Conveyor empty in CV MODE (SEQ)");
}
PUB.sm.seq.Update(cmdIndex);
@@ -571,7 +571,7 @@ namespace Project
{
PUB.sm.seq.Clear(eSMStep.RUN_PICKER_OFF_L);
//PUB.Result.ItemData[1].CopyTo(ref PUB.Result.ItemData[0]);
PUB.log.Add($"바코드데이터 복제(LEFT)");
PUB.log.Add($"Barcode data copy (LEFT)");
PUB.flag.set(eVarBool.FG_BUSY_LEFT, true, funcName);
//프린터용 AIR처리해준다.
@@ -583,7 +583,7 @@ namespace Project
{
PUB.sm.seq.Clear(eSMStep.RUN_PICKER_OFF_R);
//PUB.Result.ItemData[1].CopyTo(ref PUB.Result.ItemData[0]);
PUB.log.Add($"바코드데이터 복제(RIGHT)");
PUB.log.Add($"Barcode data copy (RIGHT)");
PUB.flag.set(eVarBool.FG_BUSY_RIGHT, true, funcName);
//프린터용 AIR처리해준다.
@@ -592,7 +592,7 @@ namespace Project
//PUB.Result.ItemData[1].UpdateTo(ref PUB.Result.ItemData[2]);
}
PUB.Result.ItemDataC.Clear($"[{target}] 픽온완료"); //전송했으니 지운다
PUB.Result.ItemDataC.Clear($"[{target}] Pick-on completed"); //Clear after transmission
KeyenceBarcodeDataF = string.Empty;
KeyenceBarcodeDataR = string.Empty;
@@ -626,14 +626,14 @@ namespace Project
if (PUB.Result.PrintPostionList.ContainsKey(sid) == false)
{
PUB.Result.PrintPostionList.Add(sid, prn);
PUB.log.AddAT($"프린트위치저장 SID:{sid} = {prn}");
PUB.log.AddAT($"Print position saved SID:{sid} = {prn}");
}
else
{
var predata = PUB.Result.PrintPostionList[sid];
if (predata != prn)
{
PUB.log.AddAT($"프린트위치저장값 변경 SID:{sid} = {predata} -> {prn}");
PUB.log.AddAT($"Print position save value changed SID:{sid} = {predata} -> {prn}");
PUB.Result.PrintPostionList[sid] = prn;
}
}
@@ -964,7 +964,7 @@ namespace Project
if (SETTING.Data.SystemBypass == false)
{
rlt = PUB.UpdateWMS(item.VisionData); //rlt = Amkor.RestfulService.Inbound_label_attach_reel_info(reelinfo, out errmsg);
PUB.log.AddE("WMS전송" + (rlt ? "성공" : "실패") + $":{errmsg}");
PUB.log.AddE("WMS transmission " + (rlt ? "success" : "failed") + $": {errmsg}");
if (rlt == false) //230927 - 오류발생시
{
PUB.Result.SetResultMessage(eResult.OPERATION, eECode.INBOUNDWEBAPIERROR, eNextStep.PAUSE, target, errmsg);
@@ -975,7 +975,7 @@ namespace Project
{
errmsg = "bypass";
rlt = false;
PUB.log.AddAT($"System bytpass 로 인해 WMS 저장 안함");
PUB.log.AddAT($"WMS save disabled due to System bypass");
}
if (errmsg.Length > 190) errmsg = errmsg.Substring(0, 190); //230810 maxlength error
SaveData_EE(item, (target == eWorkPort.Left ? "L" : "R"), (rlt ? "OK" : errmsg), "root_sequence");
@@ -1004,7 +1004,7 @@ namespace Project
}
VAR.TIME[(int)eVarTime.JOBEVENT] = DateTime.Now;
PUB.log.AddI($"[{target}] 작업완료");
PUB.log.AddI($"[{target}] Work completed");
PUB.sm.seq.Clear(cmdIndex);
return true;
}

View File

@@ -39,7 +39,7 @@ namespace Project
//데이터가 완료되었는지 확인
if (itemC.VisionData.Confirm)
{
PUB.log.AddAT("비젼 데이터 완료로 인해 바코드 메세지를 제거 합니다");
PUB.log.AddAT("Removing barcode messages due to vision data completion");
itemC.VisionData.bcdMessage.Clear();
return EResultKeyence.Complete;
}
@@ -58,12 +58,12 @@ namespace Project
{
if (PUB.Result.DryRun)
{
PUB.log.Add($"[{target}] DRY-RUN 으로 인한 완료");
PUB.log.Add($"[{target}] Completed due to DRY-RUN");
SetDryrunData();
}
else
{
PUB.logDbg.Add($"[{target}] 키엔스 읽기 시작");
PUB.logDbg.Add($"[{target}] Keyence reading started");
if (PUB.keyenceF != null) PUB.keyenceF.Trigger(true);
if (PUB.keyenceR != null) PUB.keyenceR.Trigger(true);
}
@@ -535,7 +535,7 @@ namespace Project
//이미 수량업데이트된 경우이므로 복원시켜준다
if (itemC.VisionData.QTY0.isEmpty() == false)
{
PUB.log.AddAT($"릴아이디 변경으로 인해 수량을 복원합니다({itemC.VisionData.QTY}->{itemC.VisionData.QTY0})");
PUB.log.AddAT($"Restoring quantity due to reel ID change ({itemC.VisionData.QTY}->{itemC.VisionData.QTY0})");
itemC.VisionData.QTY = itemC.VisionData.QTY0;
itemC.VisionData.QTY0 = string.Empty;
}
@@ -546,7 +546,7 @@ namespace Project
var logtime = VAR.TIME.RUN((int)eVarTime.LOG_NEWIDERROR);
if (logtime.TotalSeconds >= 3000)
{
PUB.log.AddAT($"Reel_ID 생성실패 : {newid.message}");
PUB.log.AddAT($"Reel_ID generation failed : {newid.message}");
VAR.TIME.Update(eVarTime.LOG_NEWIDERROR);
}
}
@@ -558,11 +558,11 @@ namespace Project
{
//이미 완료된 데이터
if (itemC.VisionData.ConfirmAuto)
PUB.log.AddI($"데이터확정완료(자동)로 인한 진행");
PUB.log.AddI($"Proceeding due to data confirmation completion (automatic)");
else if (itemC.VisionData.ConfirmUser)
PUB.log.AddI($"데이터확정완료(수동)로 인한 진행");
PUB.log.AddI($"Proceeding due to data confirmation completion (manual)");
else
PUB.log.AddI($"데이터확정완료(BYPASS)로 인한 진행");
PUB.log.AddI($"Proceeding due to data confirmation completion (BYPASS)");
}
else if (itemC.VisionData.QRInputRaw.isEmpty() == false && itemC.VisionData.BATCH.isEmpty() == false)
{
@@ -646,24 +646,24 @@ namespace Project
//수량원본이 없는 경우
if (item.VisionData.QTY0.isEmpty())
{
string msg = "서버 수량 업데이트 기능은 WMS에 적용되지 않음, 필요한 경우 개발자 컨택";
string msg = "Server quantity update feature is not applicable to WMS, contact developer if needed";
var cnt = 0;// (int)(Amkor.RestfulService.get_stock_count(item.VisionData.RID, out msg));
if (mainjob)
{
PUB.log.AddE("서버 수량 업데이트 기능은 WMS에 적용되지 않음, 필요한 경우 개발자 컨택");
PUB.log.AddE("Server quantity update feature is not applicable to WMS, contact developer if needed");
}
if (cnt > 0)
{
//새로받은 데이터를 실제 수량에 추가한다
item.VisionData.QTY0 = item.VisionData.QTY;
item.VisionData.QTY = cnt.ToString();
if (mainjob) PUB.log.Add($"서버수량업데이트 RID:{item.VisionData.RID} :{item.VisionData.QTY},:{cnt}");
if (mainjob) PUB.log.Add($"Server quantity update RID:{item.VisionData.RID} Old:{item.VisionData.QTY}, New:{cnt}");
}
else
{
if (mainjob) PUB.log.AddE($"수량업데이트 실패 rID:{item.VisionData.RID},Message={msg}");
if (mainjob) PUB.log.AddE($"Quantity update failed rID:{item.VisionData.RID}, Message={msg}");
NeedConfirm = true;
if (mainjob) item.VisionData.bcdMessage.Add("수량 업데이트 실패");
if (mainjob) item.VisionData.bcdMessage.Add("Quantity update failed");
}
}
}
@@ -678,19 +678,19 @@ namespace Project
if (rqBcd.Value != null)
{
var newqty = rqBcd.Value.Data.Substring(2).Trim();
if (mainjob) PUB.log.Add($"수량업데이트(01) {item.VisionData.QTY}->{newqty}");
if (mainjob) PUB.log.Add($"Quantity update (01) {item.VisionData.QTY}->{newqty}");
item.VisionData.QTY = newqty;
if (mainjob) PUB.log.AddI("수량수동입력상태이나 RQ값이 확인되어 사용자 확인을 하지 않음");
if (mainjob) PUB.log.AddI("Manual quantity input mode but RQ value confirmed, no user confirmation required");
}
else
{
if (mainjob) item.VisionData.bcdMessage.Add("RQ값 오류 (자동불가)");
if (mainjob) item.VisionData.bcdMessage.Add("RQ value error (auto mode not possible)");
NeedConfirm = true;
}
}
else
{
if (mainjob) item.VisionData.bcdMessage.Add("수량 수동 입력 필요");
if (mainjob) item.VisionData.bcdMessage.Add("Manual quantity input required");
NeedConfirm = true;
}
}
@@ -752,7 +752,7 @@ namespace Project
{
if (NeedConfirm == false)
{
if (mainjob) item.VisionData.bcdMessage.Add("사용자 확인 필요");
if (mainjob) item.VisionData.bcdMessage.Add("User confirmation required");
NeedConfirm = true;
}
}
@@ -766,7 +766,7 @@ namespace Project
//프린트를 하지 않는다면 처리하지 않는다.
if (VAR.BOOL[eVarBool.Opt_DisablePrinter] == false)
{
if (mainjob) item.VisionData.bcdMessage.Add("첫번째 릴 확인 필요");
if (mainjob) item.VisionData.bcdMessage.Add("First reel confirmation required");
NeedConfirm = true;
}
}
@@ -778,7 +778,7 @@ namespace Project
{
if (NeedConfirm == false)
{
if (mainjob) item.VisionData.bcdMessage.Add("SID변환값 확인 필요");
if (mainjob) item.VisionData.bcdMessage.Add("SID conversion value confirmation required");
NeedConfirm = true;
}
}
@@ -793,7 +793,7 @@ namespace Project
{
item.VisionData.PrintPositionData = "1";
item.VisionData.PrintPositionCheck = true;
PUB.log.AddI($"바이패스SID({item.VisionData.SID})로 인해 인쇄위치 임의지정");
PUB.log.AddI($"Print position arbitrarily set due to bypass SID ({item.VisionData.SID})");
}
}
else
@@ -804,12 +804,12 @@ namespace Project
var preprnpos = PUB.Result.PrintPostionList[item.VisionData.SID];
item.VisionData.PrintPositionData = preprnpos;
item.VisionData.PrintPositionCheck = true;
PUB.log.AddI($"현 작업정보에서 프린트위치 찾음 SID:{item.VisionData.SID},={preprnpos}");
PUB.log.AddI($"Print position found in current job info SID:{item.VisionData.SID}, Value={preprnpos}");
}
else if (NeedConfirm == false)
{
//현작업내에서의 정보를 찾아서 적용한다 231005
if (mainjob) item.VisionData.bcdMessage.Add("부착위치 없음");
if (mainjob) item.VisionData.bcdMessage.Add("Attachment position not found");
NeedConfirm = true;
}
}
@@ -839,13 +839,13 @@ namespace Project
{
if (OPT_BYPASS)
{
PUB.log.Add("데이터가 모두 확인되어 자동 확정을 진행 합니다(bypassmode)");
PUB.log.Add("All data confirmed, proceeding with automatic confirmation (bypass mode)");
if (item.VisionData.bcdMessage.Count > 0) item.VisionData.bcdMessage.Clear();
item.VisionData.ConfirmBypass = true;
}
else if (item.VisionData.ConfirmAuto == false)
{
PUB.log.Add("데이터가 모두 확인되어 자동 확정을 진행 합니다");
PUB.log.Add("All data confirmed, proceeding with automatic confirmation");
if (item.VisionData.bcdMessage.Count > 0) item.VisionData.bcdMessage.Clear();
item.VisionData.ConfirmAuto = true;
}
@@ -858,7 +858,7 @@ namespace Project
if (mainjob)
{
NeedConfirm = true;
PUB.log.AddAT($"데이터가 완료되지 않았으나 QR을 읽은 상태이므로 바로 확인창을 띄운다");
PUB.log.AddAT($"Data incomplete but QR has been read, showing confirmation window immediately");
}
}
}
@@ -875,7 +875,7 @@ namespace Project
}
else if (PUB.Result.ItemDataC.VisionData.ConfirmAuto == false)
{
PUB.logDbg.Add($"비젼 자동 확정 처리 {Source}");
PUB.logDbg.Add($"Vision automatic confirmation processing {Source}");
PUB.Result.ItemDataC.VisionData.ConfirmAuto = true;
}
@@ -885,7 +885,7 @@ namespace Project
private void SetDryrunData()
{
var item = PUB.Result.ItemDataC;
PUB.log.AddAT("드라이런 기본 데이터 입력");
PUB.log.AddAT("Dry run basic data input");
if (item.VisionData.QTY.isEmpty()) item.VisionData.QTY = DateTime.Now.ToString("HHmm");
if (item.VisionData.MFGDATE.isEmpty()) item.VisionData.MFGDATE = DateTime.Now.ToString("yy-MM-dd");
if (item.VisionData.SID.isEmpty()) item.VisionData.SID = "108" + "0" + DateTime.Now.ToString("HH").PadLeft(2, '0') + DateTime.Now.ToString("fff").PadLeft(3, '0');

View File

@@ -49,7 +49,7 @@ namespace Project
//####################################################
if (PUB.sm.seq.Get(cmdIndex) == idx++)
{
PUB.log.Add($"[{target}] 피커 ON 작업시작");
PUB.log.Add($"[{target}] Picker ON work started");
PUB.sm.seq.Update(cmdIndex);
return false;
}
@@ -65,7 +65,7 @@ namespace Project
var PosZ = MOT.GetPZPos(ePZLoc.READY);
if (MOT.CheckMotionPos(seqTime, PosZ, funcName) == false) return false;
if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false;
PUB.log.Add($"[{target}] 피커 ON X,Y 준비위치 확인");
PUB.log.Add($"[{target}] Picker ON X,Y ready position confirmed");
DIO.SetPickerVac(true);
PUB.sm.seq.Update(cmdIndex);
return false;
@@ -205,11 +205,11 @@ namespace Project
{
baseAngle = bcd.Angle;
baseSource = bcd.barcodeSource; //230504 각도
PUB.log.AddI($"[{target}] 각도산출내용:{msg},바코드:{bcd.Data},ID:{vdata.RID}"); //210602
PUB.log.AddI($"[{target}] Angle calculation: {msg}, Barcode: {bcd.Data}, ID: {vdata.RID}"); //210602
}
else if (PUB.Result.DryRun)
{
PUB.log.AddAT($"[{target}] 드라이런으로 인해 각도를 적용하지 않음");
PUB.log.AddAT($"[{target}] Angle not applied due to dry run");
}
else
{
@@ -218,7 +218,7 @@ namespace Project
var addangle = baseSource == "R" ? SETTING.Data.RearBarcodeRotate : SETTING.Data.FrontBarcodeRotate;
var rotAngle = baseAngle + addangle + vdata.PositionAngle;
PUB.log.AddI($"[{target}]-소스:{baseSource} 회전값(Base:{baseAngle}+추가:{addangle}+비젼:{vdata.PositionAngle}={rotAngle})");
PUB.log.AddI($"[{target}] Source: {baseSource} Rotation value (Base: {baseAngle} + Additional: {addangle} + Vision: {vdata.PositionAngle} = {rotAngle})");
int dir = -1;
while (true)
@@ -234,7 +234,7 @@ namespace Project
dir = 1;
}
PUB.log.AddI($"[{target}] 회전(최종) [{rotAngle}도,방향:{dir}],RID:{vdata.RID}");
PUB.log.AddI($"[{target}] Rotation (Final) [{rotAngle} degrees, Direction: {dir}], RID: {vdata.RID}");
if (target == eWorkPort.Left)
PUB.Result.ItemDataL.VisionData.ApplyAngle = rotAngle; //회전각도를 넣는다
@@ -243,7 +243,7 @@ namespace Project
var curtheta = PUB.mot.GetActPos((int)eAxis.Z_THETA);
var newPos = curtheta + (dir * rotAngle);
PUB.log.Add($"회전전 모터 위치 : {curtheta}, 대상위치:{newPos},속도:{thpos.Speed},가속:{thpos.Acc}");
PUB.log.Add($"Motor position before rotation: {curtheta}, Target position: {newPos}, Speed: {thpos.Speed}, Acceleration: {thpos.Acc}");
if (target == eWorkPort.Left)
VAR.DBL[(int)eVarDBL.ThetaPositionL] = newPos;

View File

@@ -49,7 +49,7 @@ namespace Project
//####################################################
if (PUB.sm.seq.Get(cmdIndex) == idx++)
{
PUB.log.Add($"[{target}] 피커 RETRY 작업시작({PickerRetryCount}/{AR.SETTING.Data.RetryPickOnMaxCount})");
PUB.log.Add($"[{target}] Picker RETRY work started ({PickerRetryCount}/{AR.SETTING.Data.RetryPickOnMaxCount})");
//기존자료를 모두 삭제 한다 221102
if (PUB.Result.ItemDataC != null && PUB.Result.ItemDataC.VisionData != null && PUB.Result.ItemDataC.VisionData.barcodelist != null)
@@ -218,7 +218,7 @@ namespace Project
PUB.mot.ClearPosition((int)eAxis.Z_THETA);
if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false;
PUB.log.AddAT($"###### 재시도 작업 회피 이동 완료({target})");
PUB.log.AddAT($"###### Retry work avoidance movement completed ({target})");
PUB.sm.seq.Update(cmdIndex);
return false;
}
@@ -228,7 +228,7 @@ namespace Project
//####################################################
if (PUB.sm.seq.Get(cmdIndex) == idx++)
{
PUB.log.Add($"retry 완료로 비젼데이터를 삭제 합니다");
PUB.log.Add($"Deleting vision data due to retry completion");
PUB.Result.ItemDataC.VisionData.Clear(funcName, true);
AR.VAR.BOOL[eVarBool.JOB_PickON_Retry] = false;
PUB.sm.seq.Update(cmdIndex);

View File

@@ -70,10 +70,10 @@ namespace Project
if (DIO.GetIOInput(eDIName.R_CONV1)) return false;
if (VAR.I32[eVarInt32.RIGT_ITEM_COUNT] > 0) return false;
}
PUB.log.Add($"CVMODE에서 컨베이어 비어있음");
PUB.log.Add($"Conveyor is empty in CV MODE");
}
PUB.log.Add($"[{target}] 피커 OFF 작업시작");
PUB.log.Add($"[{target}] Picker OFF work started");
PUB.sm.seq.Update(cmdIndex);
return false;
}
@@ -87,7 +87,7 @@ namespace Project
var Pos = target == eWorkPort.Left ? MOT.GetLMPos(eLMLoc.READY) : MOT.GetRMPos(eRMLoc.READY);
if (MOT.getPositionMatch(Pos) == false)
{
PUB.Result.SetResultMessage(eResult.OPERATION, eECode.POSITION_ERROR, eNextStep.PAUSE, "프린터 Y축이 준비위치에 있지 않습니다");
PUB.Result.SetResultMessage(eResult.OPERATION, eECode.POSITION_ERROR, eNextStep.PAUSE, "Printer Y-axis is not at ready position");
return false;
}
PUB.sm.seq.Update(cmdIndex);
@@ -265,7 +265,7 @@ namespace Project
{
if (OPT_BYPASS == true || OPT_PrinterOff)
{
PUB.log.AddAT($"bypass 로 인해 추가 회전을 하지 않습니다");
PUB.log.AddAT($"Additional rotation not performed due to bypass");
}
else
{
@@ -285,7 +285,7 @@ namespace Project
else VAR.DBL[(int)eVarDBL.ThetaPositionR] = theta + OffsetAngle;
if (AR.SETTING.Data.Log_Debug)
PUB.logDbg.Add($"[{target}] 모션 추가회전 :{OffsetAngle}");
PUB.logDbg.Add($"[{target}] Motor additional rotation: {OffsetAngle}");
}
}
@@ -307,7 +307,7 @@ namespace Project
var Pos = MOT.GetPTPos(ePTLoc.READY);
Pos.Position = Theta;
if (MOT.CheckMotionPos(seqTime, Pos, funcName, false) == false) return false;
PUB.log.Add($"[{target}] 회전축 확인 완료 위치:{Theta},모터값:{PUB.mot.GetActPos((int)eAxis.Z_THETA)} => 위치초기화함");
PUB.log.Add($"[{target}] Rotation axis verification complete Position: {Theta}, Motor value: {PUB.mot.GetActPos((int)eAxis.Z_THETA)} => Position initialized");
PUB.mot.ClearPosition((int)eAxis.Z_THETA);
}

View File

@@ -34,7 +34,7 @@ namespace Project
//####################################################
if (PUB.sm.seq.Get(cmdIndex) == idx++)
{
PUB.log.Add($"[{target}] 프린트 작업 시작");
PUB.log.Add($"[{target}] Print operation started");
PUB.sm.seq.Update(cmdIndex);
return false;
}
@@ -106,7 +106,7 @@ namespace Project
item.VisionData.ZPL = zpl;
item.VisionData.PrintQRData = qrdata;
PUB.log.Add("PRINT", $"[{target}] 프린트");//QR=" + item.VisionData.QRData);
PUB.log.Add("PRINT", $"[{target}] Printing");//QR=" + item.VisionData.QRData);
if (target == eWorkPort.Left)
{
@@ -141,7 +141,7 @@ namespace Project
}
}
}
else PUB.log.AddAT($"[{target}] 프린터 기능 OFF(bypass or model or setting)");
else PUB.log.AddAT($"[{target}] Printer function OFF (bypass or model or setting)");
PUB.sm.seq.Update(cmdIndex);
return false;

View File

@@ -86,7 +86,7 @@ namespace Project
if ( == false)
{
if (seqTime.TotalMilliseconds < 100) return false;
PUB.log.AddAT($"[{target}] 용지감지기능 OFF(3초후 진행)");
PUB.log.AddAT($"[{target}] Paper detection function OFF(proceed after 3 seconds)");
}
else
{
@@ -148,7 +148,7 @@ namespace Project
if ( == false)
{
if (seqTime.TotalMilliseconds < 100) return false;
PUB.log.AddAT($"[{target}] 용지감지기능 OFF(3초후 진행)");
PUB.log.AddAT($"[{target}] Paper detection function OFF(proceed after 3 seconds)");
}
else
{

View File

@@ -25,7 +25,7 @@ namespace Project
var retval = false;
if (AR.SETTING.Data.OnlineMode == false)
{
PUB.log.AddAT($"[SAVE-EE] 오프라인으로 저장 하지 않음");
PUB.log.AddAT($"[SAVE-EE] Not saving in offline mode");
return;
}

View File

@@ -50,7 +50,7 @@ namespace Project
{
//카메라 트리거 전송
var sendok = WS_Send(target, WS, item.guid, "TRIG", item.VisionData.PrintQRData);
PUB.log.Add($"바코드트리거전송({target}) = {sendok}");
PUB.log.Add($"Barcode trigger transmission ({target}) = {sendok}");
if(sendok==false) //230512 전송실패시 오류로 한다
{
PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.VISION_TRIGERROR, eNextStep.PAUSE);
@@ -73,7 +73,7 @@ namespace Project
{
if (VAR.BOOL[eVarBool.VisionL_Retry] == false)
{
PUB.log.AddAT("비젼(L) 1회 실패로 재 시도 합니다");
PUB.log.AddAT("Vision (L) failed once, retrying");
VAR.BOOL[eVarBool.VisionL_Retry] = true;
PUB.sm.seq.Update(cmdIndex, -1);
return false;
@@ -92,7 +92,7 @@ namespace Project
{
if (VAR.BOOL[eVarBool.VisionR_Retry] == false)
{
PUB.log.AddAT("비젼(R) 1회 실패로 재 시도 합니다");
PUB.log.AddAT("Vision (R) failed once, retrying");
VAR.BOOL[eVarBool.VisionR_Retry] = true;
PUB.sm.seq.Update(cmdIndex, -1);
return false;
@@ -121,12 +121,12 @@ namespace Project
{
if (PUB.flag.get(eVarBool.FG_END_VISIONL)) //종료신호가 설정되어있다면 완료된 경우다
{
PUB.log.AddI($"{target} 비젼 종료 신호로 인해 완료 처리 합니다");
PUB.log.AddI($"{target} Completed processing due to vision end signal");
item.PrintQRValid = true;
}
else if (PUB.flag.get(eVarBool.FG_PRC_VISIONL) == false) //사용자가 취소했다면 넘어간다
{
PUB.log.AddAT($"{target} 사용자 취소로 QR검증을 넘김");
PUB.log.AddAT($"{target} Skip QR verification due to user cancellation");
item.PrintQRValid = false;
}
else return false; //아직 완료전이므로 리턴한다
@@ -135,12 +135,12 @@ namespace Project
{
if (PUB.flag.get(eVarBool.FG_END_VISIONR))
{
PUB.log.AddI($"{target} 비젼 종료 신호로 인해 완료 처리 합니다");
PUB.log.AddI($"{target} Completed processing due to vision end signal");
item.PrintQRValid = true;
}
else if (PUB.flag.get(eVarBool.FG_PRC_VISIONR) == false) //사용자가 취소했다면 넘어간다
{
PUB.log.AddAT($"{target} 사용자 취소로 QR검증을 넘김");
PUB.log.AddAT($"{target} Skip QR verification due to user cancellation");
item.PrintQRValid = false;
}
else return false; //아직 완료전이므로 리턴한다
@@ -157,7 +157,7 @@ namespace Project
//####################################################
if (PUB.sm.seq.Get(cmdIndex) == idx++)
{
PUB.log.Add($"{target} 비젼 검증 완료(결과:{item.PrintQRValid})");
PUB.log.Add($"{target} Vision verification completed (Result: {item.PrintQRValid})");
if (target == eWorkPort.Left)
PUB.flag.set(eVarBool.FG_PRC_VISIONL, false, funcName);