[Add Func] RMS Parameter

- Ring Power >> SystemParameter OPTION

[Bug Fix] RingPower Ramping
- Delete Ramping Param3
This commit is contained in:
최이근 2026-02-27 22:04:23 +09:00
parent c9c8860356
commit 1ec5b0750f
10 changed files with 455 additions and 568 deletions

View File

@ -274,6 +274,10 @@ namespace ILSOS_CCW_H52A.Device
PLC_PARAM_3_WELDING_RAMPING_END_POWER_1 = 134, PLC_PARAM_3_WELDING_RAMPING_END_POWER_1 = 134,
PLC_PARAM_3_WELDING_RAMPING_END_POWER_2 = 136, PLC_PARAM_3_WELDING_RAMPING_END_POWER_2 = 136,
PLC_PARAM_3_WELDING_RAMPING_END_DISTANCE = 138, PLC_PARAM_3_WELDING_RAMPING_END_DISTANCE = 138,
PLC_PARAM_1_WELDING_LASER_POWER_RING = 140,
PLC_PARAM_2_WELDING_LASER_POWER_RING = 142,
PLC_PARAM_3_WELDING_LASER_POWER_RING = 144,
} }
public enum eWordOutput : int public enum eWordOutput : int
@ -399,7 +403,12 @@ namespace ILSOS_CCW_H52A.Device
PC_PARAM_3_WELDING_RAMPING_START_B_DISTANCE = 132, PC_PARAM_3_WELDING_RAMPING_START_B_DISTANCE = 132,
PC_PARAM_3_WELDING_RAMPING_END_POWER_1 = 134, PC_PARAM_3_WELDING_RAMPING_END_POWER_1 = 134,
PC_PARAM_3_WELDING_RAMPING_END_POWER_2 = 136, PC_PARAM_3_WELDING_RAMPING_END_POWER_2 = 136,
PC_PARAM_3_WELDING_RAMPING_END_DISTANCE = 138 PC_PARAM_3_WELDING_RAMPING_END_DISTANCE = 138,
// 260227 Laser 개조 후 파라미터 추가
PC_PARAM_1_WELDING_LASER_POWER_RING = 140,
PC_PARAM_2_WELDING_LASER_POWER_RING = 142,
PC_PARAM_3_WELDING_LASER_POWER_RING = 144,
} }
} }
} }

View File

@ -8,6 +8,7 @@ using static ILSOS_CCW_H52A.Device.PLCControllerCCWH52A;
using Aurora.Api.Manager; using Aurora.Api.Manager;
using ILSOS_CCW_H52A.Device; using ILSOS_CCW_H52A.Device;
using WeldingCommon.Recipes; using WeldingCommon.Recipes;
using WeldingCommon.Settings;
namespace ILSOS_CCW_H52A.Recipes namespace ILSOS_CCW_H52A.Recipes
{ {
@ -15,62 +16,14 @@ namespace ILSOS_CCW_H52A.Recipes
// 추가로 SYS_RECIPE_ACTIVATED 에서 처리가 다르게 이루어져야 할 수도 있음. 확장 가능하도록 사용성 열어둠 // 추가로 SYS_RECIPE_ACTIVATED 에서 처리가 다르게 이루어져야 할 수도 있음. 확장 가능하도록 사용성 열어둠
internal class RecipeEventHelper internal class RecipeEventHelper
{ {
private static SystemParameter param;
internal static void ExternalRecipeUpdate(Logger Log, IAuroraEnvironment aurora) internal static void ExternalRecipeUpdate(Logger Log, IAuroraEnvironment aurora)
{ {
if(param == null)
param = aurora.SettingEntry[CommonSettingIds.SystemParameter] as SystemParameter;
var plc = aurora.DeviceManager[CommonDeviceIds.PLCDevice] as PLCController; var plc = aurora.DeviceManager[CommonDeviceIds.PLCDevice] as PLCController;
var activatedRecipeId = aurora.RecipeManager.ActivatedRecipe().Id; var activatedRecipeId = aurora.RecipeManager.ActivatedRecipe().Id;
#region 기존 RMS 방식
//Line _Line = null;
//var layerObjectList = WeldingRecipeManager.GetWeldingLayerObjects(0);
//if (layerObjectList.ElementAt(0) is Line) {
// _Line = (Line)layerObjectList.ElementAt(0);
//}
//if (_Line != null) {
// #region 확인 필요 항목
// //plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_LASER_OFF_DELAY, (int)(_LineParam.LaserOffDelay * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_WELDING_LASER_OFF_DELAY.ToString())));
// //plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_MARK_DELAY, (int)(_LineParam.MarkDelay * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_WELDING_MARK_DELAY.ToString())));
// //plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_POLYGON_DELAY, (int)(_LineParam.PolygonDelay * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_WELDING_POLYGON_DELAY.ToString())));
// #endregion
// plc.WriteDWord((int)eWordOutput.PC_RECIPE_NO, (int)(activatedRecipeId * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_RECIPE_NO.ToString())));
// plc.WriteDWord((int)eWordOutput.PC_WELDING_RECIPE_NO, (int)(activatedRecipeId * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_RECIPE_NO.ToString())));
// plc.WriteDWord((int)eWordOutput.PC_WELDING_FOCAL_LENGTH, (int)(plc.ReadDWord((int)eWordInput.PLC_WELDING_FOCAL_LENGTH).data)); // PLC에서 받은 데이터를 그대로 넘겨주니 변환이 필요 없다
// plc.WriteDWord((int)eWordOutput.PC_SCANNER_X_AXIS, (int)(plc.ReadDWord((int)eWordInput.PLC_SCANNER_X_AXIS).data)); // PLC에서 받은 데이터를 그대로 넘겨주니 변환이 필요 없다
// ScannerParam _LineParam = ScannerCanvasUserCtrl.ScannerParams[_Line.ScannerParamNo];
// plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_LASER_POWER, (int)(_LineParam.LaserPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_LASER_POWER.ToString())));
// plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_DRAW_SPEED, (int)(_LineParam.MarkSpeed * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_DRAW_SPEED.ToString())));
// plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_JUMP_SPEED, (int)(_LineParam.JumpSpeed * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_JUMP_SPEED.ToString())));
// plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_LASER_ON_DELAY, (int)(_LineParam.LaserOnDelay * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_LASER_ON_DELAY.ToString())));
// plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_JUMP_DELAY, (int)(_LineParam.JumpDelay * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_JUMP_DELAY.ToString())));
// plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_A_POWER_1, (int)(_LineParam.RampingStartAPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_A_POWER_1.ToString())));
// plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_A_POWER_2, (int)(_LineParam.RampingStartAPower2 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_A_POWER_2.ToString())));
// plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_A_DISTANCE, (int)(_LineParam.RampingStartADist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_A_DISTANCE.ToString())));
// plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_POWER_1, (int)(_LineParam.RampingStartPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_POWER_1.ToString())));
// plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_POWER_2, (int)(_LineParam.RampingStartPower3 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_POWER_2.ToString())));
// plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_DISTANCE, (int)(_LineParam.RampingStartDist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_DISTANCE.ToString())));
// plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_POWER_1, (int)(_LineParam.RampingEndPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_POWER_1.ToString())));
// plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_POWER_2, (int)(_LineParam.RampingEndPower3 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_POWER_2.ToString())));
// plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_DISTANCE, (int)(_LineParam.RampingEndDist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_DISTANCE.ToString())));
// plc.WriteDWord((int)eWordOutput.PC_EQUIPMENT_SPEED, (int)(plc.ReadDWord((int)eWordInput.PLC_EQUIPMENT_SPEED).data)); // PLC에서 받은 데이터를 그대로 넘겨주니 변환이 필요 없다. Equipment Speed는 Rotary Speed로 PC에서는 사용하지 않고 그냥 표기만 해준다.
// Log.I(string.Format($"SET PC_RECIPE_PARAM_UPLOAD_COMPLETE True"));
// plc.WriteBit((int)eBitOutput.PC_RECIPE_PARAM_UPLOAD_COMPLETE, true);
//} else {
// Log.W("Check Whether there is Line in the Activated Recipe Object!");
//}
#endregion
#region 확인 필요 항목
//plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_LASER_OFF_DELAY, (int)(_LineParam.LaserOffDelay * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_WELDING_LASER_OFF_DELAY.ToString())));
//plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_MARK_DELAY, (int)(_LineParam.MarkDelay * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_WELDING_MARK_DELAY.ToString())));
//plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_POLYGON_DELAY, (int)(_LineParam.PolygonDelay * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_WELDING_POLYGON_DELAY.ToString())));
#endregion
plc.WriteDWord((int)eWordOutput.PC_RECIPE_NO, (int)(activatedRecipeId * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_RECIPE_NO.ToString()))); plc.WriteDWord((int)eWordOutput.PC_RECIPE_NO, (int)(activatedRecipeId * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_RECIPE_NO.ToString())));
plc.WriteDWord((int)eWordOutput.PC_WELDING_RECIPE_NO, (int)(activatedRecipeId * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_RECIPE_NO.ToString()))); plc.WriteDWord((int)eWordOutput.PC_WELDING_RECIPE_NO, (int)(activatedRecipeId * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_RECIPE_NO.ToString())));
@ -89,12 +42,16 @@ namespace ILSOS_CCW_H52A.Recipes
plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_A_POWER_2, (int)(_LineParam_1.RampingStartAPower2 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_A_POWER_2.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_A_POWER_2, (int)(_LineParam_1.RampingStartAPower2 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_A_POWER_2.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_A_DISTANCE, (int)(_LineParam_1.RampingStartADist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_A_DISTANCE.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_A_DISTANCE, (int)(_LineParam_1.RampingStartADist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_A_DISTANCE.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_POWER_1, (int)(_LineParam_1.RampingStartPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_POWER_1.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_POWER_1, (int)(_LineParam_1.RampingStartPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_POWER_1.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_POWER_2, (int)(_LineParam_1.RampingStartPower3 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_POWER_2.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_POWER_2, (int)(_LineParam_1.RampingStartPower2 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_POWER_2.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_DISTANCE, (int)(_LineParam_1.RampingStartDist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_DISTANCE.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_DISTANCE, (int)(_LineParam_1.RampingStartDist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_START_B_DISTANCE.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_POWER_1, (int)(_LineParam_1.RampingEndPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_POWER_1.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_POWER_1, (int)(_LineParam_1.RampingEndPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_POWER_1.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_POWER_2, (int)(_LineParam_1.RampingEndPower3 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_POWER_2.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_POWER_2, (int)(_LineParam_1.RampingEndPower2 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_POWER_2.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_DISTANCE, (int)(_LineParam_1.RampingEndDist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_DISTANCE.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_DISTANCE, (int)(_LineParam_1.RampingEndDist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_RAMPING_END_DISTANCE.ToString())));
// 260227 Laser 개조 후 파라미터 추가
if(param.UseRingPowerRMS)
plc.WriteDWord((int)eWordOutput.PC_PARAM_1_WELDING_LASER_POWER_RING, (int)(_LineParam_1.LaserPower2 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_1_WELDING_LASER_POWER_RING.ToString())));
#endregion #endregion
#region PLC Upload Parameter 2 #region PLC Upload Parameter 2
ScannerParam _LineParam_2 = ScannerCanvasUserCtrl.ScannerParams[1]; ScannerParam _LineParam_2 = ScannerCanvasUserCtrl.ScannerParams[1];
plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_LASER_POWER, (int)(_LineParam_2.LaserPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_LASER_POWER.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_LASER_POWER, (int)(_LineParam_2.LaserPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_LASER_POWER.ToString())));
@ -106,12 +63,16 @@ namespace ILSOS_CCW_H52A.Recipes
plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_A_POWER_2, (int)(_LineParam_2.RampingStartAPower2 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_A_POWER_2.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_A_POWER_2, (int)(_LineParam_2.RampingStartAPower2 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_A_POWER_2.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_A_DISTANCE, (int)(_LineParam_2.RampingStartADist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_A_DISTANCE.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_A_DISTANCE, (int)(_LineParam_2.RampingStartADist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_A_DISTANCE.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_B_POWER_1, (int)(_LineParam_2.RampingStartPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_B_POWER_1.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_B_POWER_1, (int)(_LineParam_2.RampingStartPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_B_POWER_1.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_B_POWER_2, (int)(_LineParam_2.RampingStartPower3 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_B_POWER_2.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_B_POWER_2, (int)(_LineParam_2.RampingStartPower2 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_B_POWER_2.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_B_DISTANCE, (int)(_LineParam_2.RampingStartDist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_B_DISTANCE.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_B_DISTANCE, (int)(_LineParam_2.RampingStartDist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_RAMPING_START_B_DISTANCE.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_RAMPING_END_POWER_1, (int)(_LineParam_2.RampingEndPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_RAMPING_END_POWER_1.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_RAMPING_END_POWER_1, (int)(_LineParam_2.RampingEndPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_RAMPING_END_POWER_1.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_RAMPING_END_POWER_2, (int)(_LineParam_2.RampingEndPower3 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_RAMPING_END_POWER_2.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_RAMPING_END_POWER_2, (int)(_LineParam_2.RampingEndPower2 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_RAMPING_END_POWER_2.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_RAMPING_END_DISTANCE, (int)(_LineParam_2.RampingEndDist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_RAMPING_END_DISTANCE.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_RAMPING_END_DISTANCE, (int)(_LineParam_2.RampingEndDist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_RAMPING_END_DISTANCE.ToString())));
// 260227 Laser 개조 후 파라미터 추가
if (param.UseRingPowerRMS)
plc.WriteDWord((int)eWordOutput.PC_PARAM_2_WELDING_LASER_POWER_RING, (int)(_LineParam_2.LaserPower2 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_2_WELDING_LASER_POWER_RING.ToString())));
#endregion #endregion
#region PLC Upload Parameter 3 #region PLC Upload Parameter 3
ScannerParam _LineParam_3 = ScannerCanvasUserCtrl.ScannerParams[2]; ScannerParam _LineParam_3 = ScannerCanvasUserCtrl.ScannerParams[2];
plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_LASER_POWER, (int)(_LineParam_3.LaserPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_LASER_POWER.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_LASER_POWER, (int)(_LineParam_3.LaserPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_LASER_POWER.ToString())));
@ -123,11 +84,14 @@ namespace ILSOS_CCW_H52A.Recipes
plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_A_POWER_2, (int)(_LineParam_3.RampingStartAPower2 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_A_POWER_2.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_A_POWER_2, (int)(_LineParam_3.RampingStartAPower2 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_A_POWER_2.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_A_DISTANCE, (int)(_LineParam_3.RampingStartADist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_A_DISTANCE.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_A_DISTANCE, (int)(_LineParam_3.RampingStartADist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_A_DISTANCE.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_B_POWER_1, (int)(_LineParam_3.RampingStartPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_B_POWER_1.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_B_POWER_1, (int)(_LineParam_3.RampingStartPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_B_POWER_1.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_B_POWER_2, (int)(_LineParam_3.RampingStartPower3 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_B_POWER_2.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_B_POWER_2, (int)(_LineParam_3.RampingStartPower2 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_B_POWER_2.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_B_DISTANCE, (int)(_LineParam_3.RampingStartDist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_B_DISTANCE.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_B_DISTANCE, (int)(_LineParam_3.RampingStartDist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_RAMPING_START_B_DISTANCE.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_RAMPING_END_POWER_1, (int)(_LineParam_3.RampingEndPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_RAMPING_END_POWER_1.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_RAMPING_END_POWER_1, (int)(_LineParam_3.RampingEndPower1 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_RAMPING_END_POWER_1.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_RAMPING_END_POWER_2, (int)(_LineParam_3.RampingEndPower3 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_RAMPING_END_POWER_2.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_RAMPING_END_POWER_2, (int)(_LineParam_3.RampingEndPower2 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_RAMPING_END_POWER_2.ToString())));
plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_RAMPING_END_DISTANCE, (int)(_LineParam_3.RampingEndDist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_RAMPING_END_DISTANCE.ToString()))); plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_RAMPING_END_DISTANCE, (int)(_LineParam_3.RampingEndDist * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_RAMPING_END_DISTANCE.ToString())));
// 260227 Laser 개조 후 파라미터 추가
if (param.UseRingPowerRMS)
plc.WriteDWord((int)eWordOutput.PC_PARAM_3_WELDING_LASER_POWER_RING, (int)(_LineParam_3.LaserPower2 * (plc as PLCControllerCCWH52A).ConvertTo2WordDivisionIndex(eWordOutput.PC_PARAM_3_WELDING_LASER_POWER_RING.ToString())));
#endregion #endregion
Log.I(string.Format($"SET PC_RECIPE_PARAM_UPLOAD_COMPLETE True")); Log.I(string.Format($"SET PC_RECIPE_PARAM_UPLOAD_COMPLETE True"));
@ -136,6 +100,8 @@ namespace ILSOS_CCW_H52A.Recipes
internal static bool ExternalRecipeChangeRequest(Logger Log, IAuroraEnvironment aurora) internal static bool ExternalRecipeChangeRequest(Logger Log, IAuroraEnvironment aurora)
{ {
if(param == null)
param = aurora.SettingEntry[CommonSettingIds.SystemParameter] as SystemParameter;
var plc = aurora.DeviceManager[CommonDeviceIds.PLCDevice] as PLCController; var plc = aurora.DeviceManager[CommonDeviceIds.PLCDevice] as PLCController;
int recipeRequestId = (int)plc.ReadDWord((int)eWordInput.PLC_WELDING_RECIPE_NO).data; int recipeRequestId = (int)plc.ReadDWord((int)eWordInput.PLC_WELDING_RECIPE_NO).data;
@ -149,47 +115,6 @@ namespace ILSOS_CCW_H52A.Recipes
return false; return false;
} }
#region 기존 RMS 방식
//Line _Line = null;
//var layerObjectList = WeldingRecipeManager.GetWeldingLayerObjects(0);
//if (layerObjectList.ElementAt(0) is Line) {
// _Line = (Line)layerObjectList.ElementAt(0);
//}
//if (_Line != null) {
// ScannerParam _LineParam = ScannerCanvasUserCtrl.ScannerParams[_Line.ScannerParamNo];
// _LineParam.LaserPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_LASER_POWER);
// _LineParam.MarkSpeed = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_DRAW_SPEED);
// _LineParam.JumpSpeed = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_JUMP_SPEED);
// // 레이저 포커스 Z축 포지션영역, 해당 파라미터를 어떻게 받아 어떻게 전달할지에 대해서 논의 필요
// //ZPosition?? = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_FOCAL_LENGTH);
// _LineParam.LaserOnDelay = (int)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_LASER_ON_DELAY);
// _LineParam.LaserOffDelay = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_LASER_OFF_DELAY);
// _LineParam.JumpDelay = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_JUMP_DELAY);
// _LineParam.MarkDelay = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_MARK_DELAY);
// _LineParam.PolygonDelay = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_POLYGON_DELAY);
// _LineParam.RampingStartAPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_RAMPING_START_A_POWER_1);
// _LineParam.RampingStartAPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_RAMPING_START_A_POWER_2);
// _LineParam.RampingStartADist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_RAMPING_START_A_DISTANCE);
// _LineParam.RampingStartPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_RAMPING_START_B_POWER_1);
// _LineParam.RampingStartPower3 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_RAMPING_START_B_POWER_2);
// _LineParam.RampingStartDist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_RAMPING_START_B_DISTANCE);
// _LineParam.RampingEndPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_RAMPING_END_POWER_1);
// _LineParam.RampingEndPower3 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_RAMPING_END_POWER_2);
// _LineParam.RampingEndDist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_WELDING_RAMPING_END_DISTANCE);
//} else {
// Log.W("Check Whether there is Line in the Activated Recipe Object!");
//}
#endregion
#region 확인 필요 항목
//_LineParam.LaserOffDelay = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_LASER_OFF_DELAY);
//_LineParam.MarkDelay = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_MARK_DELAY);
//_LineParam.PolygonDelay = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_POLYGON_DELAY);
#endregion
#region Scanner Upload Parameter 1 #region Scanner Upload Parameter 1
ScannerParam _LineParam_1 = ScannerCanvasUserCtrl.ScannerParams[0]; ScannerParam _LineParam_1 = ScannerCanvasUserCtrl.ScannerParams[0];
_LineParam_1.LaserPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_LASER_POWER); _LineParam_1.LaserPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_LASER_POWER);
@ -201,11 +126,14 @@ namespace ILSOS_CCW_H52A.Recipes
_LineParam_1.RampingStartAPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_RAMPING_START_A_POWER_2); _LineParam_1.RampingStartAPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_RAMPING_START_A_POWER_2);
_LineParam_1.RampingStartADist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_RAMPING_START_A_DISTANCE); _LineParam_1.RampingStartADist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_RAMPING_START_A_DISTANCE);
_LineParam_1.RampingStartPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_RAMPING_START_B_POWER_1); _LineParam_1.RampingStartPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_RAMPING_START_B_POWER_1);
_LineParam_1.RampingStartPower3 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_RAMPING_START_B_POWER_2); _LineParam_1.RampingStartPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_RAMPING_START_B_POWER_2);
_LineParam_1.RampingStartDist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_RAMPING_START_B_DISTANCE); _LineParam_1.RampingStartDist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_RAMPING_START_B_DISTANCE);
_LineParam_1.RampingEndPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_RAMPING_END_POWER_1); _LineParam_1.RampingEndPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_RAMPING_END_POWER_1);
_LineParam_1.RampingEndPower3 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_RAMPING_END_POWER_2); _LineParam_1.RampingEndPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_RAMPING_END_POWER_2);
_LineParam_1.RampingEndDist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_RAMPING_END_DISTANCE); _LineParam_1.RampingEndDist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_RAMPING_END_DISTANCE);
// 260227 Laser 개조 후 파라미터 추가
if (param.UseRingPowerRMS)
_LineParam_1.LaserPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_LASER_POWER_RING);
#endregion #endregion
#region Scanner Upload Parameter 2 #region Scanner Upload Parameter 2
ScannerParam _LineParam_2 = ScannerCanvasUserCtrl.ScannerParams[1]; ScannerParam _LineParam_2 = ScannerCanvasUserCtrl.ScannerParams[1];
@ -218,11 +146,13 @@ namespace ILSOS_CCW_H52A.Recipes
_LineParam_2.RampingStartAPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_RAMPING_START_A_POWER_2); _LineParam_2.RampingStartAPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_RAMPING_START_A_POWER_2);
_LineParam_2.RampingStartADist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_RAMPING_START_A_DISTANCE); _LineParam_2.RampingStartADist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_RAMPING_START_A_DISTANCE);
_LineParam_2.RampingStartPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_RAMPING_START_B_POWER_1); _LineParam_2.RampingStartPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_RAMPING_START_B_POWER_1);
_LineParam_2.RampingStartPower3 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_RAMPING_START_B_POWER_2); _LineParam_2.RampingStartPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_RAMPING_START_B_POWER_2);
_LineParam_2.RampingStartDist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_RAMPING_START_B_DISTANCE); _LineParam_2.RampingStartDist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_RAMPING_START_B_DISTANCE);
_LineParam_2.RampingEndPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_RAMPING_END_POWER_1); _LineParam_2.RampingEndPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_RAMPING_END_POWER_1);
_LineParam_2.RampingEndPower3 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_RAMPING_END_POWER_2); _LineParam_2.RampingEndPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_RAMPING_END_POWER_2);
_LineParam_2.RampingEndDist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_RAMPING_END_DISTANCE); _LineParam_2.RampingEndDist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_RAMPING_END_DISTANCE);
if (param.UseRingPowerRMS)
_LineParam_2.LaserPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_LASER_POWER_RING);
#endregion #endregion
#region Scanner Upload Parameter 3 #region Scanner Upload Parameter 3
ScannerParam _LineParam_3 = ScannerCanvasUserCtrl.ScannerParams[2]; ScannerParam _LineParam_3 = ScannerCanvasUserCtrl.ScannerParams[2];
@ -235,11 +165,13 @@ namespace ILSOS_CCW_H52A.Recipes
_LineParam_3.RampingStartAPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_RAMPING_START_A_POWER_2); _LineParam_3.RampingStartAPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_RAMPING_START_A_POWER_2);
_LineParam_3.RampingStartADist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_RAMPING_START_A_DISTANCE); _LineParam_3.RampingStartADist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_RAMPING_START_A_DISTANCE);
_LineParam_3.RampingStartPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_RAMPING_START_B_POWER_1); _LineParam_3.RampingStartPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_RAMPING_START_B_POWER_1);
_LineParam_3.RampingStartPower3 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_RAMPING_START_B_POWER_2); _LineParam_3.RampingStartPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_RAMPING_START_B_POWER_2);
_LineParam_3.RampingStartDist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_RAMPING_START_B_DISTANCE); _LineParam_3.RampingStartDist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_RAMPING_START_B_DISTANCE);
_LineParam_3.RampingEndPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_RAMPING_END_POWER_1); _LineParam_3.RampingEndPower1 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_RAMPING_END_POWER_1);
_LineParam_3.RampingEndPower3 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_RAMPING_END_POWER_2); _LineParam_3.RampingEndPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_RAMPING_END_POWER_2);
_LineParam_3.RampingEndDist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_RAMPING_END_DISTANCE); _LineParam_3.RampingEndDist = (double)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_RAMPING_END_DISTANCE);
if (param.UseRingPowerRMS)
_LineParam_3.LaserPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_LASER_POWER_RING);
#endregion #endregion
//TODO: Recipe 저장 되어지면 안될꺼 같은데, 확인 필요함. //TODO: Recipe 저장 되어지면 안될꺼 같은데, 확인 필요함.

View File

@ -774,6 +774,7 @@ namespace ILSOS_CCW_H52A.Sequences
if (laserParam != null) { if (laserParam != null) {
// EDC 보내는 용도 // EDC 보내는 용도
Status.GetProcessingWeldingData().LaserPowerCore = laserParam.LaserPower1.ToString(); Status.GetProcessingWeldingData().LaserPowerCore = laserParam.LaserPower1.ToString();
Status.GetProcessingWeldingData().LaserPowerRing = laserParam.LaserPower2.ToString();
Status.GetProcessingWeldingData().MarkSpeed = laserParam.MarkSpeed.ToString(); Status.GetProcessingWeldingData().MarkSpeed = laserParam.MarkSpeed.ToString();
Status.GetProcessingWeldingData().FocalLength = (_PLC.ReadDWord((int)eWordInput.PLC_WELDING_FOCAL_LENGTH).data / 1000f).ToString(); Status.GetProcessingWeldingData().FocalLength = (_PLC.ReadDWord((int)eWordInput.PLC_WELDING_FOCAL_LENGTH).data / 1000f).ToString();
Status.GetProcessingWeldingData().WeldingJigNo = _WeldingJigNo.ToString(); Status.GetProcessingWeldingData().WeldingJigNo = _WeldingJigNo.ToString();

File diff suppressed because it is too large Load Diff

View File

@ -98,10 +98,10 @@ namespace CoreUnit.Scanner.UserControl.Canvas.Dialog
label31.Enabled = false; label31.Enabled = false;
// Ramping Start, End 구분 후 사용한다. Power 2번은 여전히 막아둠 // Ramping Start, End 구분 후 사용한다. Power 2번은 여전히 막아둠
//label68.Enabled = false; //label68.Enabled = false;
//label69.Enabled = false; //label69.Enabled = false;
//label71.Enabled = false; //label71.Enabled = false;
//label72.Enabled = false; //label72.Enabled = false;
//label73.Enabled = false; //label73.Enabled = false;
//label70.Enabled = false; //label70.Enabled = false;
@ -157,9 +157,6 @@ namespace CoreUnit.Scanner.UserControl.Canvas.Dialog
nudRampingStartPower1.Enabled = PermissionCheck; nudRampingStartPower1.Enabled = PermissionCheck;
nudRampingEndPower1.Enabled = PermissionCheck; nudRampingEndPower1.Enabled = PermissionCheck;
nudRampingStartPower3.Enabled = PermissionCheck;
nudRampingEndPower3.Enabled = PermissionCheck;
nudRampingStartAPower1.Enabled = PermissionCheck; nudRampingStartAPower1.Enabled = PermissionCheck;
nudRampingStartAPower2.Enabled = PermissionCheck; nudRampingStartAPower2.Enabled = PermissionCheck;
nudRampingStartADist.Enabled = PermissionCheck; nudRampingStartADist.Enabled = PermissionCheck;
@ -184,8 +181,6 @@ namespace CoreUnit.Scanner.UserControl.Canvas.Dialog
nudRampingStartPower2.Visible = false; nudRampingStartPower2.Visible = false;
nudRampingEndPower2.Visible = false; nudRampingEndPower2.Visible = false;
nudRampingStartPower3.Visible = true;
nudRampingEndPower3.Visible = true;
#endregion #endregion
} }
@ -329,13 +324,6 @@ namespace CoreUnit.Scanner.UserControl.Canvas.Dialog
else else
nudRampingStartPower2.Value = Convert.ToDecimal(selectedParam.RampingStartPower2); nudRampingStartPower2.Value = Convert.ToDecimal(selectedParam.RampingStartPower2);
if (nudRampingStartPower3.Maximum < Convert.ToDecimal(selectedParam.RampingStartPower3))
nudRampingStartPower3.Value = nudRampingStartPower3.Maximum;
else if (nudRampingStartPower3.Minimum > Convert.ToDecimal(selectedParam.RampingStartPower3))
nudRampingStartPower3.Value = nudRampingStartPower3.Minimum;
else
nudRampingStartPower3.Value = Convert.ToDecimal(selectedParam.RampingStartPower3);
if (nudRampingStartDist.Maximum < Convert.ToDecimal(selectedParam.RampingStartDist)) if (nudRampingStartDist.Maximum < Convert.ToDecimal(selectedParam.RampingStartDist))
nudRampingStartDist.Value = nudRampingStartDist.Maximum; nudRampingStartDist.Value = nudRampingStartDist.Maximum;
else if (nudRampingStartDist.Minimum > Convert.ToDecimal(selectedParam.RampingStartDist)) else if (nudRampingStartDist.Minimum > Convert.ToDecimal(selectedParam.RampingStartDist))
@ -357,15 +345,6 @@ namespace CoreUnit.Scanner.UserControl.Canvas.Dialog
else else
nudRampingEndPower2.Value = Convert.ToDecimal(selectedParam.RampingEndPower2); nudRampingEndPower2.Value = Convert.ToDecimal(selectedParam.RampingEndPower2);
if (nudRampingEndPower3.Maximum < Convert.ToDecimal(selectedParam.RampingEndPower3))
nudRampingEndPower3.Value = nudRampingEndPower3.Maximum;
else if (nudRampingEndPower3.Minimum > Convert.ToDecimal(selectedParam.RampingEndPower3))
nudRampingEndPower3.Value = nudRampingEndPower3.Minimum;
else
nudRampingEndPower3.Value = Convert.ToDecimal(selectedParam.RampingEndPower3);
if (nudRampingEndDist.Maximum < Convert.ToDecimal(selectedParam.RampingEndDist)) if (nudRampingEndDist.Maximum < Convert.ToDecimal(selectedParam.RampingEndDist))
nudRampingEndDist.Value = nudRampingEndDist.Maximum; nudRampingEndDist.Value = nudRampingEndDist.Maximum;
else if (nudRampingEndDist.Minimum > Convert.ToDecimal(selectedParam.RampingEndDist)) else if (nudRampingEndDist.Minimum > Convert.ToDecimal(selectedParam.RampingEndDist))
@ -425,11 +404,9 @@ namespace CoreUnit.Scanner.UserControl.Canvas.Dialog
selectedParam.RampingStartPower1 = Convert.ToUInt32(nudRampingStartPower1.Value); selectedParam.RampingStartPower1 = Convert.ToUInt32(nudRampingStartPower1.Value);
selectedParam.RampingStartPower2 = Convert.ToUInt32(nudRampingStartPower2.Value); selectedParam.RampingStartPower2 = Convert.ToUInt32(nudRampingStartPower2.Value);
selectedParam.RampingStartPower3 = Convert.ToUInt32(nudRampingStartPower3.Value);
selectedParam.RampingStartDist = (double)nudRampingStartDist.Value; selectedParam.RampingStartDist = (double)nudRampingStartDist.Value;
selectedParam.RampingEndPower1 = Convert.ToUInt32(nudRampingEndPower1.Value); selectedParam.RampingEndPower1 = Convert.ToUInt32(nudRampingEndPower1.Value);
selectedParam.RampingEndPower2 = Convert.ToUInt32(nudRampingEndPower2.Value); selectedParam.RampingEndPower2 = Convert.ToUInt32(nudRampingEndPower2.Value);
selectedParam.RampingEndPower3 = Convert.ToUInt32(nudRampingEndPower3.Value);
selectedParam.RampingEndDist = (double)nudRampingEndDist.Value; selectedParam.RampingEndDist = (double)nudRampingEndDist.Value;
selectedParam.RampingInterval = (double)nudRampingInterval.Value; selectedParam.RampingInterval = (double)nudRampingInterval.Value;
@ -873,11 +850,9 @@ namespace CoreUnit.Scanner.UserControl.Canvas.Dialog
nudRampingStartDist.Enabled = false; nudRampingStartDist.Enabled = false;
nudRampingStartPower1.Enabled = false; nudRampingStartPower1.Enabled = false;
nudRampingStartPower2.Enabled = false; nudRampingStartPower2.Enabled = false;
nudRampingStartPower3.Enabled = false;
nudRampingEndDist.Enabled = false; nudRampingEndDist.Enabled = false;
nudRampingEndPower1.Enabled = false; nudRampingEndPower1.Enabled = false;
nudRampingEndPower2.Enabled = false; nudRampingEndPower2.Enabled = false;
nudRampingEndPower3.Enabled = false;
nudRampingInterval.Enabled = false; nudRampingInterval.Enabled = false;
checkBoxStartRampingSlopeMode.Enabled = false; checkBoxStartRampingSlopeMode.Enabled = false;
checkBoxEndRampingSlopeMode.Enabled = false; checkBoxEndRampingSlopeMode.Enabled = false;
@ -886,11 +861,9 @@ namespace CoreUnit.Scanner.UserControl.Canvas.Dialog
nudRampingStartDist.Enabled = true; nudRampingStartDist.Enabled = true;
nudRampingStartPower1.Enabled = true; nudRampingStartPower1.Enabled = true;
nudRampingStartPower2.Enabled = true; nudRampingStartPower2.Enabled = true;
nudRampingStartPower3.Enabled = true;
nudRampingEndDist.Enabled = true; nudRampingEndDist.Enabled = true;
nudRampingEndPower1.Enabled = true; nudRampingEndPower1.Enabled = true;
nudRampingEndPower2.Enabled = true; nudRampingEndPower2.Enabled = true;
nudRampingEndPower3.Enabled = true;
nudRampingInterval.Enabled = true; nudRampingInterval.Enabled = true;
checkBoxStartRampingSlopeMode.Enabled = true; checkBoxStartRampingSlopeMode.Enabled = true;
checkBoxEndRampingSlopeMode.Enabled = true; checkBoxEndRampingSlopeMode.Enabled = true;
@ -938,19 +911,17 @@ namespace CoreUnit.Scanner.UserControl.Canvas.Dialog
tbWobbelLongitudinal.ImeMode = ImeMode.Disable; tbWobbelLongitudinal.ImeMode = ImeMode.Disable;
tbWobbelFrequency.ImeMode = ImeMode.Disable; tbWobbelFrequency.ImeMode = ImeMode.Disable;
nudRampingStartAPower1.ImeMode = ImeMode.Disable;; nudRampingStartAPower1.ImeMode = ImeMode.Disable;
nudRampingStartAPower2.ImeMode = ImeMode.Disable;; nudRampingStartAPower2.ImeMode = ImeMode.Disable;
nudRampingStartADist.ImeMode = ImeMode.Disable;; nudRampingStartADist.ImeMode = ImeMode.Disable;
nudRampingStartPower1.ImeMode = ImeMode.Disable;; nudRampingStartPower1.ImeMode = ImeMode.Disable;
nudRampingStartPower2.ImeMode = ImeMode.Disable;; nudRampingStartPower2.ImeMode = ImeMode.Disable;
nudRampingStartPower3.ImeMode = ImeMode.Disable;; nudRampingStartDist.ImeMode = ImeMode.Disable;
nudRampingStartDist.ImeMode = ImeMode.Disable;; nudRampingEndPower1.ImeMode = ImeMode.Disable;
nudRampingEndPower1.ImeMode = ImeMode.Disable;; nudRampingEndPower2.ImeMode = ImeMode.Disable;
nudRampingEndPower2.ImeMode = ImeMode.Disable;; nudRampingEndDist.ImeMode = ImeMode.Disable;
nudRampingEndPower3.ImeMode = ImeMode.Disable;; nudRampingInterval.ImeMode = ImeMode.Disable;
nudRampingEndDist.ImeMode = ImeMode.Disable;;
nudRampingInterval.ImeMode = ImeMode.Disable;;
} }
} }
} }

View File

@ -297,20 +297,6 @@ namespace CoreUnit.Scanner.UserControl.ScannerCanvas
set { m_rampingStartPower2 = value; } set { m_rampingStartPower2 = value; }
} }
uint m_rampingStartPower3;
[Browsable(true)]
[ReadOnly(false)]
[Category("Ramping")]
[DisplayName("Start Power(%)")]
[Description("Start Power(Max:100, Min:0, Unit: %)")]
[XmlSerializable]
public uint RampingStartPower3
{
get { return m_rampingStartPower3; }
set { m_rampingStartPower3 = value; }
}
//bool m_rampingStartSlopeMode; //bool m_rampingStartSlopeMode;
//[Browsable(true)] //[Browsable(true)]
//[ReadOnly(false)] //[ReadOnly(false)]
@ -358,18 +344,6 @@ namespace CoreUnit.Scanner.UserControl.ScannerCanvas
get { return m_rampingEndPower2; } get { return m_rampingEndPower2; }
set { m_rampingEndPower2 = value; } set { m_rampingEndPower2 = value; }
} }
uint m_rampingEndPower3;
[Browsable(true)]
[ReadOnly(false)]
[Category("Ramping")]
[DisplayName("End Power(%)")]
[Description("End Power(Max:100, Min:0, Unit: %)")]
[XmlSerializable]
public uint RampingEndPower3
{
get { return m_rampingEndPower3; }
set { m_rampingEndPower3 = value; }
}
//bool m_rampingEndSlopeMode; //bool m_rampingEndSlopeMode;
//[Browsable(true)] //[Browsable(true)]
@ -1568,11 +1542,9 @@ namespace CoreUnit.Scanner.UserControl.ScannerCanvas
m_rampingStartDist = 0; m_rampingStartDist = 0;
m_rampingStartPower1 = 0; m_rampingStartPower1 = 0;
m_rampingStartPower2 = 0; m_rampingStartPower2 = 0;
m_rampingStartPower3 = 0;
m_rampingEndPower1 = 0; m_rampingEndPower1 = 0;
m_rampingEndPower2 = 0; m_rampingEndPower2 = 0;
m_rampingEndPower3 = 0;
m_rampingEndDist = 0; m_rampingEndDist = 0;
m_RampingInterval = 0; m_RampingInterval = 0;
//m_rampingStartSlopeMode = false; //m_rampingStartSlopeMode = false;
@ -1633,11 +1605,9 @@ namespace CoreUnit.Scanner.UserControl.ScannerCanvas
param.m_rampingStartPower1 = this.m_rampingStartPower1; param.m_rampingStartPower1 = this.m_rampingStartPower1;
param.m_rampingStartPower2 = this.m_rampingStartPower2; param.m_rampingStartPower2 = this.m_rampingStartPower2;
param.m_rampingStartPower3 = this.m_rampingStartPower3;
param.m_rampingStartDist = this.m_rampingStartDist; param.m_rampingStartDist = this.m_rampingStartDist;
param.m_rampingEndPower1 = this.m_rampingEndPower1; param.m_rampingEndPower1 = this.m_rampingEndPower1;
param.m_rampingEndPower2 = this.m_rampingEndPower2; param.m_rampingEndPower2 = this.m_rampingEndPower2;
param.m_rampingEndPower3 = this.m_rampingEndPower3;
param.m_rampingEndDist = this.m_rampingEndDist; param.m_rampingEndDist = this.m_rampingEndDist;
//param.m_rampingStartSlopeMode = this.m_rampingStartSlopeMode; //param.m_rampingStartSlopeMode = this.m_rampingStartSlopeMode;
//param.m_rampingEndSlopeMode = this.m_rampingEndSlopeMode; //param.m_rampingEndSlopeMode = this.m_rampingEndSlopeMode;

View File

@ -41,7 +41,8 @@ namespace WeldingCommon.Data
table.Columns.Add(nameof(ActualProcessUnit.JumpDelay), typeof(double)); table.Columns.Add(nameof(ActualProcessUnit.JumpDelay), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.MarkDelay), typeof(double)); table.Columns.Add(nameof(ActualProcessUnit.MarkDelay), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.PolygonDelay), typeof(double)); table.Columns.Add(nameof(ActualProcessUnit.PolygonDelay), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.Power), 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.JumpSpeed), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.MarkSpeed), typeof(double)); table.Columns.Add(nameof(ActualProcessUnit.MarkSpeed), typeof(double));
table.Columns.Add(nameof(ActualProcessUnit.JumpX), typeof(double)); table.Columns.Add(nameof(ActualProcessUnit.JumpX), typeof(double));
@ -65,7 +66,7 @@ namespace WeldingCommon.Data
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, 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.StartPointX, item.StartPointY, item.EndPointX, item.EndPointY,
item.WeldCondition, item.LaserOnDelay, item.LaserOffDelay, item.JumpDelay, item.MarkDelay, item.WeldCondition, item.LaserOnDelay, item.LaserOffDelay, item.JumpDelay, item.MarkDelay,
item.PolygonDelay, item.Power, item.JumpSpeed, item.MarkSpeed, item.JumpX, item.PolygonDelay, item.PowerCore, item.PowerRing, item.JumpSpeed, item.MarkSpeed, item.JumpX,
item.JumpY); item.JumpY);
} }
@ -110,8 +111,10 @@ namespace WeldingCommon.Data
private double _MarkDelay; private double _MarkDelay;
public double PolygonDelay { get => _PolygonDelay; set => SetProperty(ref _PolygonDelay, value); } public double PolygonDelay { get => _PolygonDelay; set => SetProperty(ref _PolygonDelay, value); }
private double _PolygonDelay; private double _PolygonDelay;
public double Power { get => _Power; set => SetProperty(ref _Power, value); } public double PowerCore { get => _PowerCore; set => SetProperty(ref _PowerCore, value); }
private double _Power; private double _PowerCore;
public double PowerRing { get => _PowerRing; set => SetProperty(ref _PowerRing, value); }
private double _PowerRing;
public double JumpSpeed { get => _JumpSpeed; set => SetProperty(ref _JumpSpeed, value); } public double JumpSpeed { get => _JumpSpeed; set => SetProperty(ref _JumpSpeed, value); }
private double _JumpSpeed; private double _JumpSpeed;
public double MarkSpeed { get => _MarkSpeed; set => SetProperty(ref _MarkSpeed, value); } public double MarkSpeed { get => _MarkSpeed; set => SetProperty(ref _MarkSpeed, value); }

View File

@ -12,7 +12,7 @@ using System.Threading.Tasks;
namespace WeldingCommon.Data namespace WeldingCommon.Data
{ {
public class WeldingData : NotifyPropertyChangedBase public class WeldingData : NotifyPropertyChangedBase, ICloneable
{ {
protected readonly Logger Log = new Logger("WeldingData"); protected readonly Logger Log = new Logger("WeldingData");
@ -109,5 +109,34 @@ namespace WeldingCommon.Data
{ {
} }
public object Clone()
{
var clone = new WeldingData();
clone._CellId = _CellId;
clone._LotId = _LotId;
clone._AutoRunStartTime = _AutoRunStartTime;
clone._WeldingStartTime = _WeldingStartTime;
clone._WeldingEndTime = _WeldingEndTime;
clone._WeldingSpanTimeMilliseconds = _WeldingSpanTimeMilliseconds;
clone._TodayProduct = _TodayProduct;
clone._TotalProduct = _TotalProduct;
clone._RecipeNo = _RecipeNo;
clone._WeldStartTime = _WeldStartTime;
clone._WeldTime = _WeldTime;
clone._WorkCellId = _WorkCellId;
clone._WorkLotId = _WorkLotId;
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._LaserPowerByLBAD = _LaserPowerByLBAD;
clone._CheckCanExist = _CheckCanExist;
clone._CheckScannerListEnd = _CheckScannerListEnd;
return clone;
}
} }
} }

View File

@ -405,7 +405,7 @@ namespace WeldingCommon.Sequences {
float percentLaser1 = 0.0f; float percentLaser1 = 0.0f;
float percentLaser2 = 0.0f; float percentLaser2 = 0.0f;
SetScannerProcessCondition(param, out percentLaser1, out percentLaser2); 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},Power:{param.LaserPower1},JumpSpeed:{param.JumpSpeed},MarkSpeed:{param.MarkSpeed})")); 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 추가 //CSV Laser Log 추가
laserLog.Date = DateTime.Now; laserLog.Date = DateTime.Now;
@ -416,7 +416,8 @@ namespace WeldingCommon.Sequences {
laserLog.JumpDelay = param.JumpDelay; laserLog.JumpDelay = param.JumpDelay;
laserLog.MarkDelay = param.MarkDelay; laserLog.MarkDelay = param.MarkDelay;
laserLog.PolygonDelay = param.PolygonDelay; laserLog.PolygonDelay = param.PolygonDelay;
laserLog.Power = param.LaserPower1; laserLog.PowerCore = param.LaserPower1;
laserLog.PowerRing = param.LaserPower2;
laserLog.JumpSpeed = param.JumpSpeed; laserLog.JumpSpeed = param.JumpSpeed;
laserLog.MarkSpeed = param.MarkSpeed; laserLog.MarkSpeed = param.MarkSpeed;
@ -639,17 +640,17 @@ namespace WeldingCommon.Sequences {
float firstPower_A1 = percentLaser1 * (float)param.RampingStartAPower1 / 100; // Ramping First Power 1 float firstPower_A1 = percentLaser1 * (float)param.RampingStartAPower1 / 100; // Ramping First Power 1
float firstPower_B1 = percentLaser1 * (float)param.RampingStartAPower2 / 100; // Ramping First Power 2 float firstPower_B1 = percentLaser1 * (float)param.RampingStartAPower2 / 100; // Ramping First Power 2
float startPower_A1 = percentLaser1 * (float)param.RampingStartPower1 / 100; // Ramping Start Power 1 float startPower_A1 = percentLaser1 * (float)param.RampingStartPower1 / 100; // Ramping Start Power 1
float startPower_B1 = percentLaser1 * (float)param.RampingStartPower3 / 100; // Ramping Start Power 3 float startPower_B1 = percentLaser1 * (float)param.RampingStartPower2 / 100; // Ramping Start Power 3
float endPower_A1 = percentLaser1 * (float)param.RampingEndPower1 / 100; // Ramping End Power 1 float endPower_A1 = percentLaser1 * (float)param.RampingEndPower1 / 100; // Ramping End Power 1
float endPower_B1 = percentLaser1 * (float)param.RampingEndPower3 / 100; // Ramping End Power 3 float endPower_B1 = percentLaser1 * (float)param.RampingEndPower2 / 100; // Ramping End Power 3
// Power2 A -> Start Power, B -> End Power // Power2 A -> Start Power, B -> End Power
float firstPower_A2 = percentLaser2 * (float)param.RampingStartAPower1 / 100; // Ramping First Power 1 float firstPower_A2 = percentLaser2 * (float)param.RampingStartAPower1 / 100; // Ramping First Power 1
float firstPower_B2 = percentLaser2 * (float)param.RampingStartAPower2 / 100; // Ramping First Power 2 float firstPower_B2 = percentLaser2 * (float)param.RampingStartAPower2 / 100; // Ramping First Power 2
float startPower_A2 = percentLaser2 * (float)param.RampingStartPower1 / 100; // Ramping Start Power 1 float startPower_A2 = percentLaser2 * (float)param.RampingStartPower1 / 100; // Ramping Start Power 1
float startPower_B2 = percentLaser2 * (float)param.RampingStartPower3 / 100; // Ramping Start Power 3 float startPower_B2 = percentLaser2 * (float)param.RampingStartPower2 / 100; // Ramping Start Power 3
float endPower_A2 = percentLaser2 * (float)param.RampingEndPower1 / 100; // Ramping End Power 1 float endPower_A2 = percentLaser2 * (float)param.RampingEndPower1 / 100; // Ramping End Power 1
float endPower_B2 = percentLaser2 * (float)param.RampingEndPower3 / 100; // Ramping End Power 3 float endPower_B2 = percentLaser2 * (float)param.RampingEndPower2 / 100; // Ramping End Power 3
double dx = (obj.P2.X - obj.P1.X) / obj.Distance * length; double dx = (obj.P2.X - obj.P1.X) / obj.Distance * length;
double dy = (obj.P2.Y - obj.P1.Y) / obj.Distance * length; double dy = (obj.P2.Y - obj.P1.Y) / obj.Distance * length;
@ -659,8 +660,8 @@ namespace WeldingCommon.Sequences {
Log.I($"[Line Weld] Ramping Condition No({obj.No + 1}), Line Length : {obj.Distance}" + Log.I($"[Line Weld] Ramping Condition No({obj.No + 1}), Line Length : {obj.Distance}" +
$"(Start_A:{param.RampingStartADist}%, Dist {FirstDistance}mm {(float)param.RampingStartAPower1}% -> {(float)param.RampingStartAPower2}%) " + $"(Start_A:{param.RampingStartADist}%, Dist {FirstDistance}mm {(float)param.RampingStartAPower1}% -> {(float)param.RampingStartAPower2}%) " +
$"(Start_B:{param.RampingStartDist}%, Dist {StartDistance}mm {(float)param.RampingStartPower1}% -> {(float)param.RampingStartPower3}%) " + $"(Start_B:{param.RampingStartDist}%, Dist {StartDistance}mm {(float)param.RampingStartPower1}% -> {(float)param.RampingStartPower2}%) " +
$"(End:{param.RampingEndDist}%, Dist {EndDistance}mm {(float)param.RampingEndPower1}% -> {(float)param.RampingEndPower3}%)"); $"(End:{param.RampingEndDist}%, Dist {EndDistance}mm {(float)param.RampingEndPower1}% -> {(float)param.RampingEndPower2}%)");
for (int iter = 0; iter < totalCount + 1; iter++) { for (int iter = 0; iter < totalCount + 1; iter++) {
@ -742,7 +743,7 @@ namespace WeldingCommon.Sequences {
float percentLaser2 = 0.0f; float percentLaser2 = 0.0f;
SetScannerProcessCondition(param, out percentLaser1, out percentLaser2); SetScannerProcessCondition(param, out percentLaser1, out percentLaser2);
Log.I(string.Format($"[Point Weld] Weld Condition(No:{param.No + 1}) Setting(LaserOnDelay:{param.LaserOnDelay},LaserOffDelay:{param.LaserOffDelay},JumpDelay:{param.JumpDelay},MarkDelay:{param.MarkDelay},PolygonDelay:{param.PolygonDelay},Power:{param.LaserPower1},JumpSpeed:{param.JumpSpeed},MarkSpeed:{param.MarkSpeed})")); Log.I(string.Format($"[Point 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})"));
// 2. 스캐너 가공 작업 // 2. 스캐너 가공 작업
// 2.1. Jump(Point Shot) // 2.1. Jump(Point Shot)
@ -791,7 +792,7 @@ namespace WeldingCommon.Sequences {
// Spline 의 경우 Wobbel 해제 // Spline 의 경우 Wobbel 해제
_Scanner.SetWobbelMode(false, 0, 0, 0, 0); _Scanner.SetWobbelMode(false, 0, 0, 0, 0);
Log.I(string.Format($"[Spline Weld] Weld Condition(No:{param.No + 1}) Setting(LaserOnDelay:{param.LaserOnDelay},LaserOffDelay:{param.LaserOffDelay},JumpDelay:{param.JumpDelay},MarkDelay:{param.MarkDelay},PolygonDelay:{param.PolygonDelay},Power:{param.LaserPower1},JumpSpeed:{param.JumpSpeed},MarkSpeed:{param.MarkSpeed})")); Log.I(string.Format($"[Spline 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})"));
// 1. Ramping을 위한 변수 설정 // 1. Ramping을 위한 변수 설정
// totalCount를 전체 Count에서 Mark가 시작하는 구간으로 2를 빼준다.. 아래수식에서 헷갈리지 않기 위해서.. // totalCount를 전체 Count에서 Mark가 시작하는 구간으로 2를 빼준다.. 아래수식에서 헷갈리지 않기 위해서..
@ -839,8 +840,8 @@ namespace WeldingCommon.Sequences {
float startingPercentLaser_A1 = percentLaser1 * (float)param.RampingStartPower1 / 100 <= 100 ? float startingPercentLaser_A1 = percentLaser1 * (float)param.RampingStartPower1 / 100 <= 100 ?
percentLaser1 * (float)param.RampingStartPower1 / 100 : 100; percentLaser1 * (float)param.RampingStartPower1 / 100 : 100;
float startingPercentLaser_B1 = percentLaser1 * (float)param.RampingStartPower3 / 100 <= 100 ? float startingPercentLaser_B1 = percentLaser1 * (float)param.RampingStartPower2 / 100 <= 100 ?
percentLaser1 * (float)param.RampingStartPower3 / 100 : 100; percentLaser1 * (float)param.RampingStartPower2 / 100 : 100;
float risingEdgePercentLaser1 = 0; float risingEdgePercentLaser1 = 0;
float startingPercentLaser2 = percentLaser2 * (float)param.RampingStartPower2 / 100 <= 100 ? float startingPercentLaser2 = percentLaser2 * (float)param.RampingStartPower2 / 100 <= 100 ?
@ -851,8 +852,8 @@ namespace WeldingCommon.Sequences {
// percentLaser1 * (float)param.RampingEndPower1 / 100 : 100; // percentLaser1 * (float)param.RampingEndPower1 / 100 : 100;
float endingPercentLaser_A1 = percentLaser1 * (float)param.RampingEndPower1 / 100 <= 100 ? float endingPercentLaser_A1 = percentLaser1 * (float)param.RampingEndPower1 / 100 <= 100 ?
percentLaser1 * (float)param.RampingEndPower1 / 100 : 100; percentLaser1 * (float)param.RampingEndPower1 / 100 : 100;
float endingPercentLaser_B1 = percentLaser1 * (float)param.RampingEndPower3 / 100 <= 100 ? float endingPercentLaser_B1 = percentLaser1 * (float)param.RampingEndPower2 / 100 <= 100 ?
percentLaser1 * (float)param.RampingEndPower3 / 100 : 100; percentLaser1 * (float)param.RampingEndPower2 / 100 : 100;
float fallingEdgePercentLaser1 = 0; float fallingEdgePercentLaser1 = 0;
float endingPercentLaser2 = percentLaser2 * (float)param.RampingEndPower2 / 100 <= 100 ? float endingPercentLaser2 = percentLaser2 * (float)param.RampingEndPower2 / 100 <= 100 ?
@ -1360,7 +1361,7 @@ namespace WeldingCommon.Sequences {
float percentLaser2 = 0; float percentLaser2 = 0;
SetScannerProcessCondition(param, out percentLaser1, out percentLaser2); SetScannerProcessCondition(param, out percentLaser1, out percentLaser2);
Log.I(string.Format($"[SnowMan Weld] Weld Condition(No:{param.No + 1}) Setting(LaserOnDelay:{param.LaserOnDelay},LaserOffDelay:{param.LaserOffDelay},JumpDelay:{param.JumpDelay},MarkDelay:{param.MarkDelay},PolygonDelay:{param.PolygonDelay},Power:{param.LaserPower1},JumpSpeed:{param.JumpSpeed},MarkSpeed:{param.MarkSpeed})")); Log.I(string.Format($"[SnowMan 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})"));
// 2. 스캐너 가공 작업 // 2. 스캐너 가공 작업
// SnowMan 로드 시작 // SnowMan 로드 시작
@ -1417,7 +1418,7 @@ namespace WeldingCommon.Sequences {
float percentLaser2 = 0; float percentLaser2 = 0;
SetScannerProcessCondition(param, out percentLaser1, out percentLaser2); SetScannerProcessCondition(param, out percentLaser1, out percentLaser2);
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},Power:{param.LaserPower1},JumpSpeed:{param.JumpSpeed},MarkSpeed:{param.MarkSpeed})")); 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 추가 //CSV Laser Log 추가
laserLog.Date = DateTime.Now; laserLog.Date = DateTime.Now;
@ -1428,7 +1429,8 @@ namespace WeldingCommon.Sequences {
laserLog.JumpDelay = param.JumpDelay; laserLog.JumpDelay = param.JumpDelay;
laserLog.MarkDelay = param.MarkDelay; laserLog.MarkDelay = param.MarkDelay;
laserLog.PolygonDelay = param.PolygonDelay; laserLog.PolygonDelay = param.PolygonDelay;
laserLog.Power = param.LaserPower1; laserLog.PowerCore = param.LaserPower1;
laserLog.PowerRing = param.LaserPower2;
laserLog.JumpSpeed = param.JumpSpeed; laserLog.JumpSpeed = param.JumpSpeed;
laserLog.MarkSpeed = param.MarkSpeed; laserLog.MarkSpeed = param.MarkSpeed;
@ -1570,13 +1572,13 @@ namespace WeldingCommon.Sequences {
float startingPercentLaser_A1 = percentLaser1 * (float)param.RampingStartPower1 / 100 <= 100 ? float startingPercentLaser_A1 = percentLaser1 * (float)param.RampingStartPower1 / 100 <= 100 ?
percentLaser1 * (float)param.RampingStartPower1 / 100 : 100; percentLaser1 * (float)param.RampingStartPower1 / 100 : 100;
float startingPercentLaser_B1 = percentLaser1 * (float)param.RampingStartPower3 / 100 <= 100 ? float startingPercentLaser_B1 = percentLaser1 * (float)param.RampingStartPower2 / 100 <= 100 ?
percentLaser1 * (float)param.RampingStartPower3 / 100 : 100; percentLaser1 * (float)param.RampingStartPower2 / 100 : 100;
float startingPercentLaser_A2 = percentLaser2 * (float)param.RampingStartPower1 / 100 <= 100 ? float startingPercentLaser_A2 = percentLaser2 * (float)param.RampingStartPower1 / 100 <= 100 ?
percentLaser2 * (float)param.RampingStartPower1 / 100 : 100; percentLaser2 * (float)param.RampingStartPower1 / 100 : 100;
float startingPercentLaser_B2 = percentLaser2 * (float)param.RampingStartPower3 / 100 <= 100 ? float startingPercentLaser_B2 = percentLaser2 * (float)param.RampingStartPower2 / 100 <= 100 ?
percentLaser2 * (float)param.RampingStartPower3 / 100 : 100; percentLaser2 * (float)param.RampingStartPower2 / 100 : 100;
float risingEdgePercentLaser1 = 0; float risingEdgePercentLaser1 = 0;
@ -1585,8 +1587,8 @@ namespace WeldingCommon.Sequences {
Log.I($"[Arc Weld] Ramping Condition No({obj.No + 1}), Arc Length : {obj.Length}, Arc Angle : {obj.SweepAngle} " + Log.I($"[Arc Weld] Ramping Condition No({obj.No + 1}), Arc Length : {obj.Length}, Arc Angle : {obj.SweepAngle} " +
$"(Start_A:{param.RampingStartADist}%, Dist {FirstAngle}mm {(float)param.RampingStartAPower1}% -> {(float)param.RampingStartAPower2}%) " + $"(Start_A:{param.RampingStartADist}%, Dist {FirstAngle}mm {(float)param.RampingStartAPower1}% -> {(float)param.RampingStartAPower2}%) " +
$"(Start_B:{param.RampingStartDist}%, Dist {StartAngle}mm {(float)param.RampingStartPower1}% -> {(float)param.RampingStartPower3}%) " + $"(Start_B:{param.RampingStartDist}%, Dist {StartAngle}mm {(float)param.RampingStartPower1}% -> {(float)param.RampingStartPower2}%) " +
$"(End:{param.RampingEndDist}%, Dist {EndAngle}mm {(float)param.RampingEndPower1}% -> {(float)param.RampingEndPower3}%)"); $"(End:{param.RampingEndDist}%, Dist {EndAngle}mm {(float)param.RampingEndPower1}% -> {(float)param.RampingEndPower2}%)");
// 2.2.2.2. Rising Edge 구간 파워 및 위치 변경 // 2.2.2.2. Rising Edge 구간 파워 및 위치 변경
@ -1617,16 +1619,16 @@ namespace WeldingCommon.Sequences {
// 2.2.4.1. Falling Edge 마지막 파워 설정 // 2.2.4.1. Falling Edge 마지막 파워 설정
float endingPercentLaser_A1 = percentLaser1 * (float)param.RampingEndPower1 / 100 <= 100 ? float endingPercentLaser_A1 = percentLaser1 * (float)param.RampingEndPower1 / 100 <= 100 ?
percentLaser1 * (float)param.RampingEndPower1 / 100 : 100; percentLaser1 * (float)param.RampingEndPower1 / 100 : 100;
float endingPercentLaser_B1 = percentLaser1 * (float)param.RampingEndPower3 / 100 <= 100 ? float endingPercentLaser_B1 = percentLaser1 * (float)param.RampingEndPower2 / 100 <= 100 ?
percentLaser1 * (float)param.RampingEndPower3 / 100 : 100; percentLaser1 * (float)param.RampingEndPower2 / 100 : 100;
float fallingEdgePercentLaser1 = 0; float fallingEdgePercentLaser1 = 0;
float endingPercentLaser_A2 = percentLaser2 * (float)param.RampingEndPower1 / 100 <= 100 ? float endingPercentLaser_A2 = percentLaser2 * (float)param.RampingEndPower1 / 100 <= 100 ?
percentLaser2 * (float)param.RampingEndPower1 / 100 : 100; percentLaser2 * (float)param.RampingEndPower1 / 100 : 100;
float endingPercentLaser_B2 = percentLaser2 * (float)param.RampingEndPower3 / 100 <= 100 ? float endingPercentLaser_B2 = percentLaser2 * (float)param.RampingEndPower2 / 100 <= 100 ?
percentLaser2 * (float)param.RampingEndPower3 / 100 : 100; percentLaser2 * (float)param.RampingEndPower2 / 100 : 100;
float fallingEdgePercentLaser2 = 0; float fallingEdgePercentLaser2 = 0;
@ -1686,7 +1688,7 @@ namespace WeldingCommon.Sequences {
float percentLaser2 = 0; float percentLaser2 = 0;
SetScannerProcessCondition(param, out percentLaser1, out percentLaser2); SetScannerProcessCondition(param, out percentLaser1, out percentLaser2);
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},Power:{param.LaserPower1},JumpSpeed:{param.JumpSpeed},MarkSpeed:{param.MarkSpeed})")); 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 추가 //CSV Laser Log 추가
laserLog.Date = DateTime.Now; laserLog.Date = DateTime.Now;
@ -1697,7 +1699,8 @@ namespace WeldingCommon.Sequences {
laserLog.JumpDelay = param.JumpDelay; laserLog.JumpDelay = param.JumpDelay;
laserLog.MarkDelay = param.MarkDelay; laserLog.MarkDelay = param.MarkDelay;
laserLog.PolygonDelay = param.PolygonDelay; laserLog.PolygonDelay = param.PolygonDelay;
laserLog.Power = param.LaserPower1; laserLog.PowerCore = param.LaserPower1;
laserLog.PowerRing = param.LaserPower2;
laserLog.JumpSpeed = param.JumpSpeed; laserLog.JumpSpeed = param.JumpSpeed;
laserLog.MarkSpeed = param.MarkSpeed; laserLog.MarkSpeed = param.MarkSpeed;
@ -1844,13 +1847,13 @@ namespace WeldingCommon.Sequences {
float startingPercentLaser_A1 = percentLaser1 * (float)param.RampingStartPower1 / 100 <= 100 ? float startingPercentLaser_A1 = percentLaser1 * (float)param.RampingStartPower1 / 100 <= 100 ?
percentLaser1 * (float)param.RampingStartPower1 / 100 : 100; percentLaser1 * (float)param.RampingStartPower1 / 100 : 100;
float startingPercentLaser_B1 = percentLaser1 * (float)param.RampingStartPower3 / 100 <= 100 ? float startingPercentLaser_B1 = percentLaser1 * (float)param.RampingStartPower2 / 100 <= 100 ?
percentLaser1 * (float)param.RampingStartPower3 / 100 : 100; percentLaser1 * (float)param.RampingStartPower2 / 100 : 100;
float startingPercentLaser_A2 = percentLaser2 * (float)param.RampingStartPower1 / 100 <= 100 ? float startingPercentLaser_A2 = percentLaser2 * (float)param.RampingStartPower1 / 100 <= 100 ?
percentLaser2 * (float)param.RampingStartPower1 / 100 : 100; percentLaser2 * (float)param.RampingStartPower1 / 100 : 100;
float startingPercentLaser_B2 = percentLaser2 * (float)param.RampingStartPower3 / 100 <= 100 ? float startingPercentLaser_B2 = percentLaser2 * (float)param.RampingStartPower2 / 100 <= 100 ?
percentLaser2 * (float)param.RampingStartPower3 / 100 : 100; percentLaser2 * (float)param.RampingStartPower2 / 100 : 100;
float risingEdgePercentLaser1 = 0; float risingEdgePercentLaser1 = 0;
@ -1858,8 +1861,8 @@ namespace WeldingCommon.Sequences {
Log.I($"[Arc3P Weld] Ramping Condition No({obj.No + 1}), Arc Angle : {obj.SweepAngle} " + Log.I($"[Arc3P Weld] Ramping Condition No({obj.No + 1}), Arc Angle : {obj.SweepAngle} " +
$"(Start_A:{param.RampingStartADist}%, Dist {FirstAngle}mm {(float)param.RampingStartAPower1}% -> {(float)param.RampingStartAPower2}%) " + $"(Start_A:{param.RampingStartADist}%, Dist {FirstAngle}mm {(float)param.RampingStartAPower1}% -> {(float)param.RampingStartAPower2}%) " +
$"(Start_B:{param.RampingStartDist}%, Dist {StartAngle}mm {(float)param.RampingStartPower1}% -> {(float)param.RampingStartPower3}%) " + $"(Start_B:{param.RampingStartDist}%, Dist {StartAngle}mm {(float)param.RampingStartPower1}% -> {(float)param.RampingStartPower2}%) " +
$"(End:{param.RampingEndDist}%, Dist {EndAngle}mm {(float)param.RampingEndPower1}% -> {(float)param.RampingEndPower3}%)"); $"(End:{param.RampingEndDist}%, Dist {EndAngle}mm {(float)param.RampingEndPower1}% -> {(float)param.RampingEndPower2}%)");
// 2.2.2.2. Rising Edge 구간 파워 및 위치 변경 // 2.2.2.2. Rising Edge 구간 파워 및 위치 변경
@ -1889,15 +1892,15 @@ namespace WeldingCommon.Sequences {
// 2.2.4.1. Falling Edge 마지막 파워 설정 // 2.2.4.1. Falling Edge 마지막 파워 설정
float endingPercentLaser_A1 = percentLaser1 * (float)param.RampingEndPower1 / 100 <= 100 ? float endingPercentLaser_A1 = percentLaser1 * (float)param.RampingEndPower1 / 100 <= 100 ?
percentLaser1 * (float)param.RampingEndPower1 / 100 : 100; percentLaser1 * (float)param.RampingEndPower1 / 100 : 100;
float endingPercentLaser_B1 = percentLaser1 * (float)param.RampingEndPower3 / 100 <= 100 ? float endingPercentLaser_B1 = percentLaser1 * (float)param.RampingEndPower2 / 100 <= 100 ?
percentLaser1 * (float)param.RampingEndPower3 / 100 : 100; percentLaser1 * (float)param.RampingEndPower2 / 100 : 100;
float fallingEdgePercentLaser1 = 0; float fallingEdgePercentLaser1 = 0;
float endingPercentLaser_A2 = percentLaser2 * (float)param.RampingEndPower1 / 100 <= 100 ? float endingPercentLaser_A2 = percentLaser2 * (float)param.RampingEndPower1 / 100 <= 100 ?
percentLaser2 * (float)param.RampingEndPower1 / 100 : 100; percentLaser2 * (float)param.RampingEndPower1 / 100 : 100;
float endingPercentLaser_B2 = percentLaser2 * (float)param.RampingEndPower3 / 100 <= 100 ? float endingPercentLaser_B2 = percentLaser2 * (float)param.RampingEndPower2 / 100 <= 100 ?
percentLaser2 * (float)param.RampingEndPower3 / 100 : 100; percentLaser2 * (float)param.RampingEndPower2 / 100 : 100;
float fallingEdgePercentLaser2 = 0; float fallingEdgePercentLaser2 = 0;
@ -1955,7 +1958,7 @@ namespace WeldingCommon.Sequences {
float percentLaser2 = 0; float percentLaser2 = 0;
SetScannerProcessCondition(param, out percentLaser1, out percentLaser2); SetScannerProcessCondition(param, out percentLaser1, out percentLaser2);
Log.I(string.Format($"[Zigzag Weld] Weld Condition(No:{param.No + 1}) Setting(LaserOnDelay:{param.LaserOnDelay},LaserOffDelay:{param.LaserOffDelay},JumpDelay:{param.JumpDelay},MarkDelay:{param.MarkDelay},PolygonDelay:{param.PolygonDelay},Power:{param.LaserPower1},JumpSpeed:{param.JumpSpeed},MarkSpeed:{param.MarkSpeed})")); Log.I(string.Format($"[Zigzag 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})"));
// 1. 시작 위치로 점프 // 1. 시작 위치로 점프
if (Math.Abs(_LastX - obj.PF1.X - xOffset) < 0.01 && Math.Abs(_LastY - obj.PF1.Y - yOffset) < 0.01) { if (Math.Abs(_LastX - obj.PF1.X - xOffset) < 0.01 && Math.Abs(_LastY - obj.PF1.Y - yOffset) < 0.01) {
@ -2105,7 +2108,7 @@ namespace WeldingCommon.Sequences {
// A -> Start Power, B -> End Power // A -> Start Power, B -> End Power
float startingPercentLaser_A1 = Math.Min(percentLaser1 * (float)param.RampingStartPower1 / 100, 100); float startingPercentLaser_A1 = Math.Min(percentLaser1 * (float)param.RampingStartPower1 / 100, 100);
float startingPercentLaser_B1 = Math.Min(percentLaser1 * (float)param.RampingStartPower3 / 100, 100); float startingPercentLaser_B1 = Math.Min(percentLaser1 * (float)param.RampingStartPower2 / 100, 100);
// 2170은 Power를 사용하지 않는다. // 2170은 Power를 사용하지 않는다.
float startingPercentLaser2 = 0; // Math.Min(percentLaser2 * (float)param.RampingStartPower2 / 100, 100); float startingPercentLaser2 = 0; // Math.Min(percentLaser2 * (float)param.RampingStartPower2 / 100, 100);
@ -2247,7 +2250,7 @@ namespace WeldingCommon.Sequences {
int endRampStep = 0; int endRampStep = 0;
// A -> Start Power, B -> End Power // A -> Start Power, B -> End Power
float endingPercentLaser_A1 = Math.Min(percentLaser1 * (float)param.RampingEndPower1 / 100, 100); float endingPercentLaser_A1 = Math.Min(percentLaser1 * (float)param.RampingEndPower1 / 100, 100);
float endingPercentLaser_B1 = Math.Min(percentLaser1 * (float)param.RampingEndPower3 / 100, 100); float endingPercentLaser_B1 = Math.Min(percentLaser1 * (float)param.RampingEndPower2 / 100, 100);
// 2170은 Power를 사용하지 않는다. // 2170은 Power를 사용하지 않는다.
float endingPercentLaser2 = 0; // Math.Min(percentLaser2 * (float)param.RampingEndPower2 / 100, 100); float endingPercentLaser2 = 0; // Math.Min(percentLaser2 * (float)param.RampingEndPower2 / 100, 100);

View File

@ -479,6 +479,12 @@ namespace WeldingCommon.Settings
[DisplayName("CellCenterOffsetY")] [DisplayName("CellCenterOffsetY")]
public double CellPosMeasureCenterOffsetY { get; set; } = 0; public double CellPosMeasureCenterOffsetY { get; set; } = 0;
// 260227 Laser 개조 후 파라미터 추가
[Browsable(true)]
[ReadOnly(false)]
[Category("RMS")]
[DisplayName("Use RingPower RMS")]
public bool UseRingPowerRMS { get; set; } = false;
} }
public class ILSOSSizeF public class ILSOSSizeF
{ {