WeldingJigNo -> JigNo 필드명 통일 및 APD 구조 개선

-WeldingData.WeldingJigNo를 JigNo로 rename, WorkJigNo 필드추가
-관련 참조 일괄 수정(JigInfo, EDC, SeqAutoRunACW/CCW)
-ActualProcessData : APD파라미터를 ActualProcessParameter로 분리하고 단일 열 -> 객체별 16개열(_1~_16)구조로 변경
-SaveCellAPD()호출 위치를 report!=null 블록 내부로 이동(CellId/LotId 설정 후 저장되도록 순서 보장)
-UCMainAutoRun에 HeadNo 항목추가(Rows7->8)
-ScannerCCWH52A시뮬모드 E2.ABORTED 리턴 주석 처리
This commit is contained in:
최이근 2026-03-26 12:48:07 +09:00
parent 0052bb13a8
commit 6b72f38236
11 changed files with 127 additions and 81 deletions

View File

@ -37,9 +37,7 @@ namespace AuroraLaserScanner
Config = config as ScannerConfig;
if (IsSimul) {
_scannerObj = new ScannerSimul();
//return E1.OK;
}
else if (Config.Type == eRTCType.RTC5) {
} else if (Config.Type == eRTCType.RTC5) {
_scannerObj = new ScannerRTC5();
} else if (Config.Type == eRTCType.RTC6) {
_scannerObj = new ScannerRTC6();

View File

@ -35,7 +35,7 @@ namespace ILSOS_ACW_H52A.RMS
string strLaserCenterPower = Status.GetProcessingWeldingData().LaserPowerCore;
string strMarkSpeed = Status.GetProcessingWeldingData().MarkSpeed;
string strFocalLength = Status.GetProcessingWeldingData().FocalLength;
string strJigNo = Status.GetProcessingWeldingData().WeldingJigNo;
string strJigNo = Status.GetProcessingWeldingData().JigNo;
string strLaserPowerByLBAD = Status.GetProcessingWeldingData().LaserPowerByLBAD;

View File

@ -871,7 +871,7 @@ namespace ILSOS_ACW_H52A.Sequences
Status.GetProcessingWeldingData().LaserPowerCore = laserParam.LaserPower1.ToString();
Status.GetProcessingWeldingData().MarkSpeed = laserParam.MarkSpeed.ToString();
Status.GetProcessingWeldingData().FocalLength = (_PLC.ReadDWord((int)eWordInput.PLC_WELDING_FOCAL_LENGTH).data / 1000f).ToString();
Status.GetProcessingWeldingData().WeldingJigNo = _WeldingJigNo.ToString();
Status.GetProcessingWeldingData().JigNo = _WeldingJigNo.ToString();
}
}
@ -1131,7 +1131,7 @@ namespace ILSOS_ACW_H52A.Sequences
Status.GetProcessingWeldingData().RecipeNo = _RecipeNo;
Status.GetProcessingWeldingData().LaserPowerByLBAD = _LaserPowerByLBAD.ToString();
Status.GetProcessingWeldingData().WeldingJigNo = _CompletedJigNo.ToString();
Status.GetProcessingWeldingData().JigNo = _CompletedJigNo.ToString();
}
private SequenceActionResult SetReportCellResult_SeqParams(SequenceContext context, string id, SequenceActionResult param)

View File

@ -121,7 +121,7 @@ namespace ILSOS_CCW_H52A.Data
InnerCellInfo.LaserPowerRing = data.LaserPowerRing;
InnerCellInfo.MarkSpeed = data.MarkSpeed;
InnerCellInfo.FocalLength = data.FocalLength;
InnerCellInfo.WeldingJigNo = data.WeldingJigNo;
InnerCellInfo.JigNo = data.JigNo;
InnerCellInfo.LaserPowerByLBAD = data.LaserPowerByLBAD;
InnerCellInfo.CheckCanExist = data.CheckCanExist;
InnerCellInfo.CheckScannerListEnd = data.CheckScannerListEnd;

View File

@ -31,7 +31,7 @@ namespace ILSOS_CCW_H52A.Device
if (ret == E1.OK && IsSimul) {
if (_plc == null) {
_plc = Application.Current.AuroraEnv().DeviceManager[CommonDeviceIds.PLCDevice] as PLCControllerCCWH52A;
return E2.ABORTED;
//return E2.ABORTED;
}
// 값의 동기화가 필요해서 추가 함

View File

@ -35,7 +35,7 @@ namespace ILSOS_CCW_H52A.RMS
string strLaserCenterPower = Status.GetProcessingWeldingData().LaserPowerCore;
string strMarkSpeed = Status.GetProcessingWeldingData().MarkSpeed;
string strFocalLength = Status.GetProcessingWeldingData().FocalLength;
string strJigNo = Status.GetProcessingWeldingData().WeldingJigNo;
string strJigNo = Status.GetProcessingWeldingData().JigNo;
string strLaserPowerByLBAD = Status.GetProcessingWeldingData().LaserPowerByLBAD;

View File

@ -631,19 +631,11 @@ namespace ILSOS_CCW_H52A.Sequences
Status.GetProcessingWeldingData().WeldingStartTime = report.WeldStartTime;
Status.GetProcessingWeldingData().WeldingEndTime = report.WeldEndTime;
Status.GetProcessingWeldingData().WeldingSpanTimeMilliseconds = report.WeldingSpanTime.TotalMilliseconds.ToString();
Status.GetProcessingWeldingData().WeldingJigNo = report.JigNo.ToString();
Status.GetProcessingWeldingData().APD.UpdateHeadNo(report.JigNo.ToString());
Status.GetProcessingWeldingData().JigNo = report.JigNo.ToString();
SaveCellAPD();
}
SaveCellAPD();
}
//if (_SystemParameter.BypassModeLBAD == false) {
// if (_StreamLightLBAD.SendWeldingStop() == false) {
// Log.I(string.Format($"[LBAD Interface]SendWeldingStop null"));
// //return null;
// }
//}
UtilUnit.logUnit.SetLog(LogUnit.eLogType.PRODUCT, MethodBase.GetCurrentMethod().Name, "UPDATE_WELDING_TIME;" + jigComplete.WeldingSpanTime.TotalMilliseconds);
UtilUnit.logUnit.SetLog(LogUnit.eLogType.PRODUCT, MethodBase.GetCurrentMethod().Name, "UPDATE_PRODUCT_COUNT;" + jigComplete.WeldEndTime.ToString("yyyy-MM-dd HH:mm:ss"));
@ -797,7 +789,7 @@ namespace ILSOS_CCW_H52A.Sequences
_CellScheduler.Prefetch2.CellId = recvInfo.CellId;
Status.GetProcessingWeldingData().WorkLotId = recvInfo.LotId;
Status.GetProcessingWeldingData().WorkCellId = recvInfo.CellId;
Status.GetProcessingWeldingData().WeldingJigNo = _WeldingJigNo.ToString();
Status.GetProcessingWeldingData().WorkJigNo = _WeldingJigNo.ToString();
if (_CellScheduler.Prefetch2 != null)
Log.I($"Prefetch2 >> CellId({_CellScheduler.Prefetch2.CellId}) [CanExist({_CellScheduler.Prefetch2.IsCanExist})] [JigNo({_CellScheduler.Prefetch2.JigNo})] " +

View File

@ -104,7 +104,7 @@
<Button Grid.Row="0" Grid.Column="2" Margin="3" Command="{Binding CMD_Reset}" Content="Reset" CommandParameter="TotalProduct" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}" />
<Button Grid.Row="1" Grid.Column="2" Margin="3" Command="{Binding CMD_Reset}" Content="Reset" CommandParameter="TodayProduct" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}" />
<UniformGrid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" Rows="7">
<UniformGrid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" Rows="8">
<usercontrols:UCKeyValueString Height="30" KeyText="Date Time" ValueText="{Binding NowDateTime, StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" KeyHorizontalAlignment="Right" KeyTextWidth="0.8*" IsReadOnly="True"/>
<usercontrols:UCKeyValueString Height="30" KeyText="AutoRun Start Time" ValueText="{Binding CurrentWeldingData.AutoRunStartTime, StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" KeyHorizontalAlignment="Right" KeyTextWidth="0.8*" IsReadOnly="True"/>
<usercontrols:UCKeyValueString Height="30" KeyText="Weld Start Time" ValueText="{Binding CurrentWeldingData.WeldingStartTime, StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" KeyHorizontalAlignment="Right" KeyTextWidth="0.8*" IsReadOnly="True"/>
@ -112,6 +112,7 @@
<usercontrols:UCKeyValueString Height="30" KeyText="Welding Time (ms)" ValueText="{Binding CurrentWeldingData.WeldingSpanTimeMilliseconds}" KeyHorizontalAlignment="Right" KeyTextWidth="0.8*" IsReadOnly="True"/>
<usercontrols:UCKeyValueString Height="30" KeyText="Lot ID" ValueText="{Binding CurrentWeldingData.LotId}" KeyHorizontalAlignment="Right" KeyTextWidth="0.8*" IsReadOnly="True"/>
<usercontrols:UCKeyValueString Height="30" KeyText="Cell ID" ValueText="{Binding CurrentWeldingData.CellId}" KeyHorizontalAlignment="Right" KeyTextWidth="0.8*" ValueTextSize="11" IsReadOnly="True"/>
<usercontrols:UCKeyValueString Height="30" KeyText="Head No" ValueText="{Binding CurrentWeldingData.JigNo}" KeyHorizontalAlignment="Right" KeyTextWidth="0.8*" ValueTextSize="11" IsReadOnly="True"/>
</UniformGrid>
</Grid>
</GroupBox>

View File

@ -29,33 +29,43 @@ namespace WeldingCommon.Data
table.Columns.Add(nameof(ActualProcessUnit.LotID), typeof(string));
table.Columns.Add(nameof(ActualProcessUnit.CellID), typeof(string));
table.Columns.Add(nameof(ActualProcessUnit.HeadNo), typeof(string));
table.Columns.Add(nameof(ActualProcessUnit.WeldType), typeof(string));
table.Columns.Add(nameof(ActualProcessUnit.EncoderCheck), typeof(bool));
table.Columns.Add(nameof(ActualProcessUnit.StartPointX), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.StartPointY), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.EndPointX), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.EndPointY), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.WeldCondition), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.LaserOnDelay), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.LaserOffDelay), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.JumpDelay), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.MarkDelay), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.PolygonDelay), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.PowerCore), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.PowerRing), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.JumpSpeed), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.MarkSpeed), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.JumpX), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.JumpY), typeof(double));
}
//table.Columns.Add(nameof(ActualProcessUnit.WeldType), typeof(string));
for (int i = 0; i < 16; i++)
TableColumnsAdd("_" + (i + 1).ToString());
}
public void TableClear()
{
table.Clear();
}
public void TableColumnsAdd(string objectNo)
{
table.Columns.Add(nameof(ActualProcessParameter.WeldType) + objectNo, typeof(string));
table.Columns.Add(nameof(ActualProcessParameter.StartPointX) + objectNo, typeof(double));
table.Columns.Add(nameof(ActualProcessParameter.StartPointY) + objectNo, typeof(double));
table.Columns.Add(nameof(ActualProcessParameter.EndPointX) + objectNo, typeof(double));
table.Columns.Add(nameof(ActualProcessParameter.EndPointY) + objectNo, typeof(double));
table.Columns.Add(nameof(ActualProcessParameter.WeldCondition) + objectNo, typeof(double));
table.Columns.Add(nameof(ActualProcessParameter.LaserOnDelay) + objectNo, typeof(double));
table.Columns.Add(nameof(ActualProcessParameter.LaserOffDelay) + objectNo, typeof(double));
table.Columns.Add(nameof(ActualProcessParameter.JumpDelay) + objectNo, typeof(double));
table.Columns.Add(nameof(ActualProcessParameter.MarkDelay) + objectNo, typeof(double));
table.Columns.Add(nameof(ActualProcessParameter.PolygonDelay) + objectNo, typeof(double));
table.Columns.Add(nameof(ActualProcessParameter.PowerCore) + objectNo, typeof(double));
table.Columns.Add(nameof(ActualProcessParameter.PowerRing) + objectNo, typeof(double));
table.Columns.Add(nameof(ActualProcessParameter.JumpSpeed) + objectNo, typeof(double));
table.Columns.Add(nameof(ActualProcessParameter.MarkSpeed) + objectNo, typeof(double));
table.Columns.Add(nameof(ActualProcessParameter.JumpX) + objectNo, typeof(double));
table.Columns.Add(nameof(ActualProcessParameter.JumpY) + objectNo, typeof(double));
}
public void CreateFiles(string fullPathNoExt, ExportFormat format = ExportFormat.CSV)
{
if (fullPathNoExt == null)
return;
if(format == ExportFormat.CSV)
CSV_Manager.GetInstance().Save_DataTableToCsv(fullPathNoExt, table);
CSV_Manager.GetInstance().Save_DataTableToCsv(fullPathNoExt, table);
Clear();
}
@ -63,11 +73,41 @@ namespace WeldingCommon.Data
protected override void InsertItem(int index, ActualProcessUnit item)
{
base.InsertItem(index, item);
table.Rows.Add(item.Date.ToString("yyyy-MM-dd"), item.Date.ToString("HH:mm:ss.fff"), item.LotID, item.CellID, item.HeadNo, item.WeldType, item.EncoderCheck,
item.StartPointX, item.StartPointY, item.EndPointX, item.EndPointY,
item.WeldCondition, item.LaserOnDelay, item.LaserOffDelay, item.JumpDelay, item.MarkDelay,
item.PolygonDelay, item.PowerCore, item.PowerRing, item.JumpSpeed, item.MarkSpeed, item.JumpX,
item.JumpY);
var values = new List<object>();
// 공통값 1회만 추가
values.Add(item.Date.ToString("yyyy-MM-dd"));
values.Add(item.Date.ToString("HH:mm:ss.fff"));
values.Add(item.LotID);
values.Add(item.CellID);
values.Add(item.HeadNo);
values.Add(item.EncoderCheck);
// ParamAPD[0] ~ [15] 반복 추가
for (int i = 0; i < item.ParamAPD.Count; i++)
{
var apd = item.ParamAPD[i];
values.Add(apd.WeldType);
values.Add(apd.StartPointX);
values.Add(apd.StartPointY);
values.Add(apd.EndPointX);
values.Add(apd.EndPointY);
values.Add(apd.WeldCondition);
values.Add(apd.LaserOnDelay);
values.Add(apd.LaserOffDelay);
values.Add(apd.JumpDelay);
values.Add(apd.MarkDelay);
values.Add(apd.PolygonDelay);
values.Add(apd.PowerCore);
values.Add(apd.PowerRing);
values.Add(apd.JumpSpeed);
values.Add(apd.MarkSpeed);
values.Add(apd.JumpX);
values.Add(apd.JumpY);
}
table.Rows.Add(values.ToArray());
}
public void UpdateHeadNo(string headNo)
{
@ -94,10 +134,19 @@ namespace WeldingCommon.Data
private string _CellID;
public string HeadNo { get => _HeadNo; set => SetProperty(ref _HeadNo, value); }
private string _HeadNo;
public string WeldType { get => _WeldType; set => SetProperty(ref _WeldType, value); }
private string _WeldType;
public bool EncoderCheck { get => _EncoderCheck; set => SetProperty(ref _EncoderCheck, value); }
private bool _EncoderCheck;
public List<ActualProcessParameter> ParamAPD { get => _ParamAPD; set => SetProperty(ref _ParamAPD, value); }
private List<ActualProcessParameter> _ParamAPD = new List<ActualProcessParameter>();
}
public class ActualProcessParameter : NotifyPropertyChangedBase
{
public string WeldType { get => _WeldType; set => SetProperty(ref _WeldType, value); }
private string _WeldType;
public double StartPointX { get => _StartPointX; set => SetProperty(ref _StartPointX, value); }
private double _StartPointX;
public double StartPointY { get => _StartPointY; set => SetProperty(ref _StartPointY, value); }

View File

@ -59,6 +59,8 @@ namespace WeldingCommon.Data
// <EDC, SeqAutoRunSMW, SeqAutoRunLHS_Normal, SeqReceiveCellInfo>
private string _WorkJigNo;
public string WorkJigNo { get => _WorkJigNo; set => SetProperty(ref _WorkJigNo, value); }
private string _WorkCellId;
public string WorkCellId { get => _WorkCellId; set => SetProperty(ref _WorkCellId, value); }
private string _WorkLotId;
@ -84,8 +86,8 @@ namespace WeldingCommon.Data
public string MarkSpeed { get => _MarkSpeed; set => SetProperty(ref _MarkSpeed, value); }
private string _FocalLength;
public string FocalLength { get => _FocalLength; set => SetProperty(ref _FocalLength, value); }
private string _WeldingJigNo;
public string WeldingJigNo { get => _WeldingJigNo; set => SetProperty(ref _WeldingJigNo, value); }
private string _JigNo;
public string JigNo { get => _JigNo; set => SetProperty(ref _JigNo, value); }
private string _LaserPowerByLBAD;
public string LaserPowerByLBAD { get => _LaserPowerByLBAD; set => SetProperty(ref _LaserPowerByLBAD, value); }
@ -121,13 +123,14 @@ namespace WeldingCommon.Data
this.WeldTime = string.Empty;
this.WorkCellId = string.Empty;
this.WorkLotId = string.Empty;
this.WorkJigNo = string.Empty;
this.LBAD_Judge = string.Empty;
this.LDD_Judge = string.Empty;
this.LaserPowerCore = string.Empty;
this.LaserPowerRing = string.Empty;
this.MarkSpeed = string.Empty;
this.FocalLength = string.Empty;
this.WeldingJigNo = string.Empty;
this.JigNo = string.Empty;
this.LaserPowerByLBAD = string.Empty;
this.CheckCanExist = false;
this.CheckScannerListEnd = false;
@ -149,13 +152,14 @@ namespace WeldingCommon.Data
clone._WeldTime = _WeldTime;
clone._WorkCellId = _WorkCellId;
clone._WorkLotId = _WorkLotId;
clone._WorkJigNo = _WorkJigNo;
clone._LBAD_Judge = _LBAD_Judge;
clone._LDD_Judge = _LDD_Judge;
clone._LaserPowerCore = _LaserPowerCore;
clone._LaserPowerRing = _LaserPowerRing;
clone._MarkSpeed = _MarkSpeed;
clone._FocalLength = _FocalLength;
clone._WeldingJigNo = _WeldingJigNo;
clone._JigNo = _JigNo;
clone._LaserPowerByLBAD = _LaserPowerByLBAD;
clone._CheckCanExist = _CheckCanExist;
clone._CheckScannerListEnd = _CheckScannerListEnd;

View File

@ -69,6 +69,7 @@ namespace WeldingCommon.Sequences {
private static DateTime _UploadstartTime;
private static TimeSpan _UploadSpanTime;
public ActualProcessUnit LaserAPD;
private double Rotation_Degree = 0;
public SequenceBuilder Builder()
@ -116,6 +117,8 @@ namespace WeldingCommon.Sequences {
_LaserPowerCalParam = context.GetSetting<LaserPowerCalParam>(CommonSettingIds.LaserPowerCalParam);//우선 AuroraRecipe로 상속받아서 함수 사용하도록 함
_SystemParameter = context.GetSetting<SystemParameter>(CommonSettingIds.SystemParameter);
LaserAPD = new ActualProcessUnit();
InitDev(context);
if (!CheckDeviceReady(context)) { //Check Device
AlarmManager.Alarm(AlarmCode.ALARM_SEQUENCE_UploadWeldingList_DeviceNotReady);
@ -283,8 +286,15 @@ namespace WeldingCommon.Sequences {
_ExternalCommandOffset.X = (float)_InitParam.CellMeasureCenterOffsetX;
_ExternalCommandOffset.Y = (float)_InitParam.CellMeasureCenterOffsetY;
LaserAPD.Date = DateTime.Now;
LaserAPD.LotID = Status.GetProcessingWeldingData().WorkLotId;
LaserAPD.CellID = Status.GetProcessingWeldingData().WorkCellId;
LaserAPD.HeadNo = Status.GetProcessingWeldingData().WorkJigNo;
int drawObjectCount = FuncLoadDrawObjectScannerParam(_InitParam.SelectedDrawObjectList);
Status.GetProcessingWeldingData().APD.Add(LaserAPD);
LaserAPD = null;
return SequenceAction.Ok();
}
@ -401,14 +411,13 @@ namespace WeldingCommon.Sequences {
// 1. 스캐너 가공 조건 설정
// TODO: ScannerCanvasUserCtrl 의 값이 제대로 가져와 지는지 확인 필요함. mainPage 로 접근해서 가져와야 할 것인데.
ScannerParam param = ScannerCanvasUserCtrl.ScannerParams[obj.ScannerParamNo];
var laserLog = new ActualProcessUnit();
var laserLog = new ActualProcessParameter();
float percentLaser1 = 0.0f;
float percentLaser2 = 0.0f;
SetScannerProcessCondition(param, out percentLaser1, out percentLaser2);
Log.I(string.Format($"[Line Weld] Weld Condition(No:{param.No + 1}) Setting(LaserOnDelay:{param.LaserOnDelay},LaserOffDelay:{param.LaserOffDelay},JumpDelay:{param.JumpDelay},MarkDelay:{param.MarkDelay},PolygonDelay:{param.PolygonDelay},CorePower:{param.LaserPower1},RingPower:{param.LaserPower2},JumpSpeed:{param.JumpSpeed},MarkSpeed:{param.MarkSpeed})"));
//CSV Laser Log 추가
laserLog.Date = DateTime.Now;
laserLog.WeldType = "Line";
laserLog.WeldCondition = param.No + 1;
laserLog.LaserOnDelay = param.LaserOnDelay;
@ -739,9 +748,8 @@ namespace WeldingCommon.Sequences {
laserLog.StartPointY = obj.PF1.Y;
laserLog.EndPointX = obj.PF2.X;
laserLog.EndPointY = obj.PF2.Y;
laserLog.LotID = Status.GetProcessingWeldingData().WorkLotId;
laserLog.CellID = Status.GetProcessingWeldingData().WorkCellId;
Status.GetProcessingWeldingData().APD.Add(laserLog);
LaserAPD.ParamAPD.Add(laserLog);
}
private void LoadDotScannerParam(Dot obj)
@ -1426,7 +1434,7 @@ namespace WeldingCommon.Sequences {
// 1.스캐너 가공조건 설정
ScannerParam param = ScannerCanvasUserCtrl.ScannerParams[obj.ScannerParamNo];
var laserLog = new ActualProcessUnit();
var laserParamLog = new ActualProcessParameter();
float percentLaser1 = 0;
float percentLaser2 = 0;
SetScannerProcessCondition(param, out percentLaser1, out percentLaser2);
@ -1434,18 +1442,17 @@ namespace WeldingCommon.Sequences {
Log.I(string.Format($"[Arc Weld] Weld Condition(No:{param.No + 1}) Setting(LaserOnDelay:{param.LaserOnDelay},LaserOffDelay:{param.LaserOffDelay},JumpDelay:{param.JumpDelay},MarkDelay:{param.MarkDelay},PolygonDelay:{param.PolygonDelay},CorePower:{param.LaserPower1},RingPower:{param.LaserPower2},JumpSpeed:{param.JumpSpeed},MarkSpeed:{param.MarkSpeed})"));
//CSV Laser Log 추가
laserLog.Date = DateTime.Now;
laserLog.WeldType = "Arc";
laserLog.WeldCondition = param.No + 1;
laserLog.LaserOnDelay = param.LaserOnDelay;
laserLog.LaserOffDelay = param.LaserOffDelay;
laserLog.JumpDelay = param.JumpDelay;
laserLog.MarkDelay = param.MarkDelay;
laserLog.PolygonDelay = param.PolygonDelay;
laserLog.PowerCore = param.LaserPower1;
laserLog.PowerRing = param.LaserPower2;
laserLog.JumpSpeed = param.JumpSpeed;
laserLog.MarkSpeed = param.MarkSpeed;
laserParamLog.WeldType = "Arc";
laserParamLog.WeldCondition = param.No + 1;
laserParamLog.LaserOnDelay = param.LaserOnDelay;
laserParamLog.LaserOffDelay = param.LaserOffDelay;
laserParamLog.JumpDelay = param.JumpDelay;
laserParamLog.MarkDelay = param.MarkDelay;
laserParamLog.PolygonDelay = param.PolygonDelay;
laserParamLog.PowerCore = param.LaserPower1;
laserParamLog.PowerRing = param.LaserPower2;
laserParamLog.JumpSpeed = param.JumpSpeed;
laserParamLog.MarkSpeed = param.MarkSpeed;
// 2. 스캐너 가공 작업
// 2.1. Wobbel 관련 설정
@ -1672,13 +1679,11 @@ namespace WeldingCommon.Sequences {
_LastY = obj.PF2.Y + yOffset;
//CSV Laser Log 추가
laserLog.StartPointX = obj.PF1.X;
laserLog.StartPointY = obj.PF1.Y;
laserLog.EndPointX = obj.PF2.X;
laserLog.EndPointY = obj.PF2.Y;
laserLog.LotID = Status.GetProcessingWeldingData().WorkLotId;
laserLog.CellID = Status.GetProcessingWeldingData().WorkCellId;
Status.GetProcessingWeldingData().APD.Add(laserLog);
laserParamLog.StartPointX = obj.PF1.X;
laserParamLog.StartPointY = obj.PF1.Y;
laserParamLog.EndPointX = obj.PF2.X;
laserParamLog.EndPointY = obj.PF2.Y;
LaserAPD.ParamAPD.Add(laserParamLog);
if (obj.MadebyRCC) {
Log.I(string.Format($"[RCC SubPath Arc Weld] Arc center ({obj.CenterPointF.X + xOffset},{obj.CenterPointF.Y + yOffset}), Sweep angle : ({obj.SweepAngle})"));
@ -1696,7 +1701,7 @@ namespace WeldingCommon.Sequences {
// 1.스캐너 가공조건 설정
ScannerParam param = ScannerCanvasUserCtrl.ScannerParams[obj.ScannerParamNo];
var laserLog = new ActualProcessUnit();
var laserLog = new ActualProcessParameter();
float percentLaser1 = 0;
float percentLaser2 = 0;
SetScannerProcessCondition(param, out percentLaser1, out percentLaser2);
@ -1704,7 +1709,6 @@ namespace WeldingCommon.Sequences {
Log.I(string.Format($"[Arc3P Weld] Weld Condition(No:{param.No + 1}) Setting(LaserOnDelay:{param.LaserOnDelay},LaserOffDelay:{param.LaserOffDelay},JumpDelay:{param.JumpDelay},MarkDelay:{param.MarkDelay},PolygonDelay:{param.PolygonDelay},CorePower:{param.LaserPower1},RingPower:{param.LaserPower2},JumpSpeed:{param.JumpSpeed},MarkSpeed:{param.MarkSpeed})"));
//CSV Laser Log 추가
laserLog.Date = DateTime.Now;
laserLog.WeldType = "Arc3";
laserLog.WeldCondition = param.No + 1;
laserLog.LaserOnDelay = param.LaserOnDelay;
@ -1947,9 +1951,7 @@ namespace WeldingCommon.Sequences {
laserLog.StartPointY = obj.PF1.Y;
laserLog.EndPointX = obj.PF2.X;
laserLog.EndPointY = obj.PF2.Y;
laserLog.LotID = Status.GetProcessingWeldingData().WorkLotId;
laserLog.CellID = Status.GetProcessingWeldingData().WorkCellId;
Status.GetProcessingWeldingData().APD.Add(laserLog);
LaserAPD.ParamAPD.Add(laserLog);
if (obj.MadebyRCC) {
Log.I(string.Format($"[RCC SubPath Arc3P Weld] Arc center ({obj.CenterPointF.X + xOffset},{obj.CenterPointF.Y + yOffset}), Sweep angle : ({obj.SweepAngle})"));