[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_2 = 136,
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
@ -399,7 +403,12 @@ namespace ILSOS_CCW_H52A.Device
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_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 ILSOS_CCW_H52A.Device;
using WeldingCommon.Recipes;
using WeldingCommon.Settings;
namespace ILSOS_CCW_H52A.Recipes
{
@ -15,62 +16,14 @@ namespace ILSOS_CCW_H52A.Recipes
// 추가로 SYS_RECIPE_ACTIVATED 에서 처리가 다르게 이루어져야 할 수도 있음. 확장 가능하도록 사용성 열어둠
internal class RecipeEventHelper
{
private static SystemParameter param;
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 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_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_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_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_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())));
// 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
#region PLC Upload Parameter 2
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())));
@ -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_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_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_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())));
// 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
#region PLC Upload Parameter 3
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())));
@ -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_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_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_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())));
// 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
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)
{
if(param == null)
param = aurora.SettingEntry[CommonSettingIds.SystemParameter] as SystemParameter;
var plc = aurora.DeviceManager[CommonDeviceIds.PLCDevice] as PLCController;
int recipeRequestId = (int)plc.ReadDWord((int)eWordInput.PLC_WELDING_RECIPE_NO).data;
@ -149,47 +115,6 @@ namespace ILSOS_CCW_H52A.Recipes
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
ScannerParam _LineParam_1 = ScannerCanvasUserCtrl.ScannerParams[0];
_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.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.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.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);
// 260227 Laser 개조 후 파라미터 추가
if (param.UseRingPowerRMS)
_LineParam_1.LaserPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_1_WELDING_LASER_POWER_RING);
#endregion
#region Scanner Upload Parameter 2
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.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.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.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);
if (param.UseRingPowerRMS)
_LineParam_2.LaserPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_2_WELDING_LASER_POWER_RING);
#endregion
#region Scanner Upload Parameter 3
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.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.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.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);
if (param.UseRingPowerRMS)
_LineParam_3.LaserPower2 = (uint)(plc as PLCControllerCCWH52A).ReadDWordByDivision(eWordInput.PLC_PARAM_3_WELDING_LASER_POWER_RING);
#endregion
//TODO: Recipe 저장 되어지면 안될꺼 같은데, 확인 필요함.

View File

@ -774,6 +774,7 @@ namespace ILSOS_CCW_H52A.Sequences
if (laserParam != null) {
// EDC 보내는 용도
Status.GetProcessingWeldingData().LaserPowerCore = laserParam.LaserPower1.ToString();
Status.GetProcessingWeldingData().LaserPowerRing = laserParam.LaserPower2.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();

View File

@ -149,10 +149,8 @@
this.label81 = new System.Windows.Forms.Label();
this.nudRampingEndPower1 = new System.Windows.Forms.NumericUpDown();
this.nudRampingEndPower2 = new System.Windows.Forms.NumericUpDown();
this.nudRampingEndPower3 = new System.Windows.Forms.NumericUpDown();
this.nudRampingStartPower1 = new System.Windows.Forms.NumericUpDown();
this.nudRampingStartPower2 = new System.Windows.Forms.NumericUpDown();
this.nudRampingStartPower3 = new System.Windows.Forms.NumericUpDown();
this.nudRampingStartDist = new System.Windows.Forms.NumericUpDown();
this.nudRampingEndDist = new System.Windows.Forms.NumericUpDown();
this.lbRampingInterval = new System.Windows.Forms.Label();
@ -193,10 +191,8 @@
((System.ComponentModel.ISupportInitialize)(this.nudRampingStartADist)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nudRampingEndPower1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nudRampingEndPower2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nudRampingEndPower3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nudRampingStartPower1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nudRampingStartPower2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nudRampingStartPower3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nudRampingStartDist)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nudRampingEndDist)).BeginInit();
this.SuspendLayout();
@ -1381,10 +1377,8 @@
this.gbRamping.Controls.Add(this.label81);
this.gbRamping.Controls.Add(this.nudRampingEndPower1);
this.gbRamping.Controls.Add(this.nudRampingEndPower2);
this.gbRamping.Controls.Add(this.nudRampingEndPower3);
this.gbRamping.Controls.Add(this.nudRampingStartPower1);
this.gbRamping.Controls.Add(this.nudRampingStartPower2);
this.gbRamping.Controls.Add(this.nudRampingStartPower3);
this.gbRamping.Controls.Add(this.nudRampingStartDist);
this.gbRamping.Controls.Add(this.nudRampingEndDist);
this.gbRamping.Controls.Add(this.nudRampingInterval);
@ -1564,20 +1558,6 @@
this.nudRampingEndPower2.TabIndex = 23;
this.nudRampingEndPower2.Leave += new System.EventHandler(this.textBoxScannerParam_Leave);
//
// nudRampingEndPower3
//
this.nudRampingEndPower3.Location = new System.Drawing.Point(234, 204);
this.nudRampingEndPower3.Maximum = new decimal(new int[] {
200,
0,
0,
0});
this.nudRampingEndPower3.Name = "nudRampingEndPower3";
this.nudRampingEndPower3.Size = new System.Drawing.Size(78, 21);
this.nudRampingEndPower3.TabIndex = 25;
this.nudRampingEndPower3.Visible = false;
this.nudRampingEndPower3.Leave += new System.EventHandler(this.textBoxScannerParam_Leave);
//
// nudRampingStartPower1
//
this.nudRampingStartPower1.Location = new System.Drawing.Point(234, 108);
@ -1604,19 +1584,6 @@
this.nudRampingStartPower2.TabIndex = 21;
this.nudRampingStartPower2.Leave += new System.EventHandler(this.textBoxScannerParam_Leave);
//
// nudRampingStartPower3
//
this.nudRampingStartPower3.Location = new System.Drawing.Point(234, 132);
this.nudRampingStartPower3.Maximum = new decimal(new int[] {
200,
0,
0,
0});
this.nudRampingStartPower3.Name = "nudRampingStartPower3";
this.nudRampingStartPower3.Size = new System.Drawing.Size(78, 21);
this.nudRampingStartPower3.TabIndex = 24;
this.nudRampingStartPower3.Visible = false;
//
// nudRampingStartDist
//
this.nudRampingStartDist.DecimalPlaces = 3;
@ -1918,10 +1885,8 @@
((System.ComponentModel.ISupportInitialize)(this.nudRampingStartADist)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nudRampingEndPower1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nudRampingEndPower2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nudRampingEndPower3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nudRampingStartPower1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nudRampingStartPower2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nudRampingStartPower3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nudRampingStartDist)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nudRampingEndDist)).EndInit();
this.ResumeLayout(false);
@ -2069,10 +2034,8 @@
private System.Windows.Forms.NumericUpDown nudRampingStartDist;
private System.Windows.Forms.NumericUpDown nudRampingEndPower1;
private System.Windows.Forms.NumericUpDown nudRampingEndPower2;
private System.Windows.Forms.NumericUpDown nudRampingEndPower3;
private System.Windows.Forms.NumericUpDown nudRampingStartPower1;
private System.Windows.Forms.NumericUpDown nudRampingStartPower2;
private System.Windows.Forms.NumericUpDown nudRampingStartPower3;
private System.Windows.Forms.NumericUpDown nudRampingStartAPower1;
private System.Windows.Forms.NumericUpDown nudRampingStartAPower2;
private System.Windows.Forms.NumericUpDown nudRampingStartADist;

View File

@ -157,9 +157,6 @@ namespace CoreUnit.Scanner.UserControl.Canvas.Dialog
nudRampingStartPower1.Enabled = PermissionCheck;
nudRampingEndPower1.Enabled = PermissionCheck;
nudRampingStartPower3.Enabled = PermissionCheck;
nudRampingEndPower3.Enabled = PermissionCheck;
nudRampingStartAPower1.Enabled = PermissionCheck;
nudRampingStartAPower2.Enabled = PermissionCheck;
nudRampingStartADist.Enabled = PermissionCheck;
@ -184,8 +181,6 @@ namespace CoreUnit.Scanner.UserControl.Canvas.Dialog
nudRampingStartPower2.Visible = false;
nudRampingEndPower2.Visible = false;
nudRampingStartPower3.Visible = true;
nudRampingEndPower3.Visible = true;
#endregion
}
@ -329,13 +324,6 @@ namespace CoreUnit.Scanner.UserControl.Canvas.Dialog
else
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))
nudRampingStartDist.Value = nudRampingStartDist.Maximum;
else if (nudRampingStartDist.Minimum > Convert.ToDecimal(selectedParam.RampingStartDist))
@ -357,15 +345,6 @@ namespace CoreUnit.Scanner.UserControl.Canvas.Dialog
else
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))
nudRampingEndDist.Value = nudRampingEndDist.Maximum;
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.RampingStartPower2 = Convert.ToUInt32(nudRampingStartPower2.Value);
selectedParam.RampingStartPower3 = Convert.ToUInt32(nudRampingStartPower3.Value);
selectedParam.RampingStartDist = (double)nudRampingStartDist.Value;
selectedParam.RampingEndPower1 = Convert.ToUInt32(nudRampingEndPower1.Value);
selectedParam.RampingEndPower2 = Convert.ToUInt32(nudRampingEndPower2.Value);
selectedParam.RampingEndPower3 = Convert.ToUInt32(nudRampingEndPower3.Value);
selectedParam.RampingEndDist = (double)nudRampingEndDist.Value;
selectedParam.RampingInterval = (double)nudRampingInterval.Value;
@ -873,11 +850,9 @@ namespace CoreUnit.Scanner.UserControl.Canvas.Dialog
nudRampingStartDist.Enabled = false;
nudRampingStartPower1.Enabled = false;
nudRampingStartPower2.Enabled = false;
nudRampingStartPower3.Enabled = false;
nudRampingEndDist.Enabled = false;
nudRampingEndPower1.Enabled = false;
nudRampingEndPower2.Enabled = false;
nudRampingEndPower3.Enabled = false;
nudRampingInterval.Enabled = false;
checkBoxStartRampingSlopeMode.Enabled = false;
checkBoxEndRampingSlopeMode.Enabled = false;
@ -886,11 +861,9 @@ namespace CoreUnit.Scanner.UserControl.Canvas.Dialog
nudRampingStartDist.Enabled = true;
nudRampingStartPower1.Enabled = true;
nudRampingStartPower2.Enabled = true;
nudRampingStartPower3.Enabled = true;
nudRampingEndDist.Enabled = true;
nudRampingEndPower1.Enabled = true;
nudRampingEndPower2.Enabled = true;
nudRampingEndPower3.Enabled = true;
nudRampingInterval.Enabled = true;
checkBoxStartRampingSlopeMode.Enabled = true;
checkBoxEndRampingSlopeMode.Enabled = true;
@ -938,19 +911,17 @@ namespace CoreUnit.Scanner.UserControl.Canvas.Dialog
tbWobbelLongitudinal.ImeMode = ImeMode.Disable;
tbWobbelFrequency.ImeMode = ImeMode.Disable;
nudRampingStartAPower1.ImeMode = ImeMode.Disable;;
nudRampingStartAPower2.ImeMode = ImeMode.Disable;;
nudRampingStartADist.ImeMode = ImeMode.Disable;;
nudRampingStartAPower1.ImeMode = ImeMode.Disable;
nudRampingStartAPower2.ImeMode = ImeMode.Disable;
nudRampingStartADist.ImeMode = ImeMode.Disable;
nudRampingStartPower1.ImeMode = ImeMode.Disable;;
nudRampingStartPower2.ImeMode = ImeMode.Disable;;
nudRampingStartPower3.ImeMode = ImeMode.Disable;;
nudRampingStartDist.ImeMode = ImeMode.Disable;;
nudRampingEndPower1.ImeMode = ImeMode.Disable;;
nudRampingEndPower2.ImeMode = ImeMode.Disable;;
nudRampingEndPower3.ImeMode = ImeMode.Disable;;
nudRampingEndDist.ImeMode = ImeMode.Disable;;
nudRampingInterval.ImeMode = ImeMode.Disable;;
nudRampingStartPower1.ImeMode = ImeMode.Disable;
nudRampingStartPower2.ImeMode = ImeMode.Disable;
nudRampingStartDist.ImeMode = ImeMode.Disable;
nudRampingEndPower1.ImeMode = ImeMode.Disable;
nudRampingEndPower2.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; }
}
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;
//[Browsable(true)]
//[ReadOnly(false)]
@ -358,18 +344,6 @@ namespace CoreUnit.Scanner.UserControl.ScannerCanvas
get { return m_rampingEndPower2; }
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;
//[Browsable(true)]
@ -1568,11 +1542,9 @@ namespace CoreUnit.Scanner.UserControl.ScannerCanvas
m_rampingStartDist = 0;
m_rampingStartPower1 = 0;
m_rampingStartPower2 = 0;
m_rampingStartPower3 = 0;
m_rampingEndPower1 = 0;
m_rampingEndPower2 = 0;
m_rampingEndPower3 = 0;
m_rampingEndDist = 0;
m_RampingInterval = 0;
//m_rampingStartSlopeMode = false;
@ -1633,11 +1605,9 @@ namespace CoreUnit.Scanner.UserControl.ScannerCanvas
param.m_rampingStartPower1 = this.m_rampingStartPower1;
param.m_rampingStartPower2 = this.m_rampingStartPower2;
param.m_rampingStartPower3 = this.m_rampingStartPower3;
param.m_rampingStartDist = this.m_rampingStartDist;
param.m_rampingEndPower1 = this.m_rampingEndPower1;
param.m_rampingEndPower2 = this.m_rampingEndPower2;
param.m_rampingEndPower3 = this.m_rampingEndPower3;
param.m_rampingEndDist = this.m_rampingEndDist;
//param.m_rampingStartSlopeMode = this.m_rampingStartSlopeMode;
//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.MarkDelay), 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.MarkSpeed), 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,
item.StartPointX, item.StartPointY, item.EndPointX, item.EndPointY,
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);
}
@ -110,8 +111,10 @@ namespace WeldingCommon.Data
private double _MarkDelay;
public double PolygonDelay { get => _PolygonDelay; set => SetProperty(ref _PolygonDelay, value); }
private double _PolygonDelay;
public double Power { get => _Power; set => SetProperty(ref _Power, value); }
private double _Power;
public double PowerCore { get => _PowerCore; set => SetProperty(ref _PowerCore, value); }
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); }
private double _JumpSpeed;
public double MarkSpeed { get => _MarkSpeed; set => SetProperty(ref _MarkSpeed, value); }

View File

@ -12,7 +12,7 @@ using System.Threading.Tasks;
namespace WeldingCommon.Data
{
public class WeldingData : NotifyPropertyChangedBase
public class WeldingData : NotifyPropertyChangedBase, ICloneable
{
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 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},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 추가
laserLog.Date = DateTime.Now;
@ -416,7 +416,8 @@ namespace WeldingCommon.Sequences {
laserLog.JumpDelay = param.JumpDelay;
laserLog.MarkDelay = param.MarkDelay;
laserLog.PolygonDelay = param.PolygonDelay;
laserLog.Power = param.LaserPower1;
laserLog.PowerCore = param.LaserPower1;
laserLog.PowerRing = param.LaserPower2;
laserLog.JumpSpeed = param.JumpSpeed;
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_B1 = percentLaser1 * (float)param.RampingStartAPower2 / 100; // Ramping First Power 2
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_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
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 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_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 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}" +
$"(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}%) " +
$"(End:{param.RampingEndDist}%, Dist {EndDistance}mm {(float)param.RampingEndPower1}% -> {(float)param.RampingEndPower3}%)");
$"(Start_B:{param.RampingStartDist}%, Dist {StartDistance}mm {(float)param.RampingStartPower1}% -> {(float)param.RampingStartPower2}%) " +
$"(End:{param.RampingEndDist}%, Dist {EndDistance}mm {(float)param.RampingEndPower1}% -> {(float)param.RampingEndPower2}%)");
for (int iter = 0; iter < totalCount + 1; iter++) {
@ -742,7 +743,7 @@ namespace WeldingCommon.Sequences {
float percentLaser2 = 0.0f;
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.1. Jump(Point Shot)
@ -791,7 +792,7 @@ namespace WeldingCommon.Sequences {
// Spline 의 경우 Wobbel 해제
_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을 위한 변수 설정
// totalCount를 전체 Count에서 Mark가 시작하는 구간으로 2를 빼준다.. 아래수식에서 헷갈리지 않기 위해서..
@ -839,8 +840,8 @@ namespace WeldingCommon.Sequences {
float startingPercentLaser_A1 = percentLaser1 * (float)param.RampingStartPower1 / 100 <= 100 ?
percentLaser1 * (float)param.RampingStartPower1 / 100 : 100;
float startingPercentLaser_B1 = percentLaser1 * (float)param.RampingStartPower3 / 100 <= 100 ?
percentLaser1 * (float)param.RampingStartPower3 / 100 : 100;
float startingPercentLaser_B1 = percentLaser1 * (float)param.RampingStartPower2 / 100 <= 100 ?
percentLaser1 * (float)param.RampingStartPower2 / 100 : 100;
float risingEdgePercentLaser1 = 0;
float startingPercentLaser2 = percentLaser2 * (float)param.RampingStartPower2 / 100 <= 100 ?
@ -851,8 +852,8 @@ namespace WeldingCommon.Sequences {
// percentLaser1 * (float)param.RampingEndPower1 / 100 : 100;
float endingPercentLaser_A1 = percentLaser1 * (float)param.RampingEndPower1 / 100 <= 100 ?
percentLaser1 * (float)param.RampingEndPower1 / 100 : 100;
float endingPercentLaser_B1 = percentLaser1 * (float)param.RampingEndPower3 / 100 <= 100 ?
percentLaser1 * (float)param.RampingEndPower3 / 100 : 100;
float endingPercentLaser_B1 = percentLaser1 * (float)param.RampingEndPower2 / 100 <= 100 ?
percentLaser1 * (float)param.RampingEndPower2 / 100 : 100;
float fallingEdgePercentLaser1 = 0;
float endingPercentLaser2 = percentLaser2 * (float)param.RampingEndPower2 / 100 <= 100 ?
@ -1360,7 +1361,7 @@ namespace WeldingCommon.Sequences {
float percentLaser2 = 0;
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. 스캐너 가공 작업
// SnowMan 로드 시작
@ -1417,7 +1418,7 @@ namespace WeldingCommon.Sequences {
float percentLaser2 = 0;
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 추가
laserLog.Date = DateTime.Now;
@ -1428,7 +1429,8 @@ namespace WeldingCommon.Sequences {
laserLog.JumpDelay = param.JumpDelay;
laserLog.MarkDelay = param.MarkDelay;
laserLog.PolygonDelay = param.PolygonDelay;
laserLog.Power = param.LaserPower1;
laserLog.PowerCore = param.LaserPower1;
laserLog.PowerRing = param.LaserPower2;
laserLog.JumpSpeed = param.JumpSpeed;
laserLog.MarkSpeed = param.MarkSpeed;
@ -1570,13 +1572,13 @@ namespace WeldingCommon.Sequences {
float startingPercentLaser_A1 = percentLaser1 * (float)param.RampingStartPower1 / 100 <= 100 ?
percentLaser1 * (float)param.RampingStartPower1 / 100 : 100;
float startingPercentLaser_B1 = percentLaser1 * (float)param.RampingStartPower3 / 100 <= 100 ?
percentLaser1 * (float)param.RampingStartPower3 / 100 : 100;
float startingPercentLaser_B1 = percentLaser1 * (float)param.RampingStartPower2 / 100 <= 100 ?
percentLaser1 * (float)param.RampingStartPower2 / 100 : 100;
float startingPercentLaser_A2 = percentLaser2 * (float)param.RampingStartPower1 / 100 <= 100 ?
percentLaser2 * (float)param.RampingStartPower1 / 100 : 100;
float startingPercentLaser_B2 = percentLaser2 * (float)param.RampingStartPower3 / 100 <= 100 ?
percentLaser2 * (float)param.RampingStartPower3 / 100 : 100;
float startingPercentLaser_B2 = percentLaser2 * (float)param.RampingStartPower2 / 100 <= 100 ?
percentLaser2 * (float)param.RampingStartPower2 / 100 : 100;
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} " +
$"(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}%) " +
$"(End:{param.RampingEndDist}%, Dist {EndAngle}mm {(float)param.RampingEndPower1}% -> {(float)param.RampingEndPower3}%)");
$"(Start_B:{param.RampingStartDist}%, Dist {StartAngle}mm {(float)param.RampingStartPower1}% -> {(float)param.RampingStartPower2}%) " +
$"(End:{param.RampingEndDist}%, Dist {EndAngle}mm {(float)param.RampingEndPower1}% -> {(float)param.RampingEndPower2}%)");
// 2.2.2.2. Rising Edge 구간 파워 및 위치 변경
@ -1617,16 +1619,16 @@ namespace WeldingCommon.Sequences {
// 2.2.4.1. Falling Edge 마지막 파워 설정
float endingPercentLaser_A1 = percentLaser1 * (float)param.RampingEndPower1 / 100 <= 100 ?
percentLaser1 * (float)param.RampingEndPower1 / 100 : 100;
float endingPercentLaser_B1 = percentLaser1 * (float)param.RampingEndPower3 / 100 <= 100 ?
percentLaser1 * (float)param.RampingEndPower3 / 100 : 100;
float endingPercentLaser_B1 = percentLaser1 * (float)param.RampingEndPower2 / 100 <= 100 ?
percentLaser1 * (float)param.RampingEndPower2 / 100 : 100;
float fallingEdgePercentLaser1 = 0;
float endingPercentLaser_A2 = percentLaser2 * (float)param.RampingEndPower1 / 100 <= 100 ?
percentLaser2 * (float)param.RampingEndPower1 / 100 : 100;
float endingPercentLaser_B2 = percentLaser2 * (float)param.RampingEndPower3 / 100 <= 100 ?
percentLaser2 * (float)param.RampingEndPower3 / 100 : 100;
float endingPercentLaser_B2 = percentLaser2 * (float)param.RampingEndPower2 / 100 <= 100 ?
percentLaser2 * (float)param.RampingEndPower2 / 100 : 100;
float fallingEdgePercentLaser2 = 0;
@ -1686,7 +1688,7 @@ namespace WeldingCommon.Sequences {
float percentLaser2 = 0;
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 추가
laserLog.Date = DateTime.Now;
@ -1697,7 +1699,8 @@ namespace WeldingCommon.Sequences {
laserLog.JumpDelay = param.JumpDelay;
laserLog.MarkDelay = param.MarkDelay;
laserLog.PolygonDelay = param.PolygonDelay;
laserLog.Power = param.LaserPower1;
laserLog.PowerCore = param.LaserPower1;
laserLog.PowerRing = param.LaserPower2;
laserLog.JumpSpeed = param.JumpSpeed;
laserLog.MarkSpeed = param.MarkSpeed;
@ -1844,13 +1847,13 @@ namespace WeldingCommon.Sequences {
float startingPercentLaser_A1 = percentLaser1 * (float)param.RampingStartPower1 / 100 <= 100 ?
percentLaser1 * (float)param.RampingStartPower1 / 100 : 100;
float startingPercentLaser_B1 = percentLaser1 * (float)param.RampingStartPower3 / 100 <= 100 ?
percentLaser1 * (float)param.RampingStartPower3 / 100 : 100;
float startingPercentLaser_B1 = percentLaser1 * (float)param.RampingStartPower2 / 100 <= 100 ?
percentLaser1 * (float)param.RampingStartPower2 / 100 : 100;
float startingPercentLaser_A2 = percentLaser2 * (float)param.RampingStartPower1 / 100 <= 100 ?
percentLaser2 * (float)param.RampingStartPower1 / 100 : 100;
float startingPercentLaser_B2 = percentLaser2 * (float)param.RampingStartPower3 / 100 <= 100 ?
percentLaser2 * (float)param.RampingStartPower3 / 100 : 100;
float startingPercentLaser_B2 = percentLaser2 * (float)param.RampingStartPower2 / 100 <= 100 ?
percentLaser2 * (float)param.RampingStartPower2 / 100 : 100;
float risingEdgePercentLaser1 = 0;
@ -1858,8 +1861,8 @@ namespace WeldingCommon.Sequences {
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_B:{param.RampingStartDist}%, Dist {StartAngle}mm {(float)param.RampingStartPower1}% -> {(float)param.RampingStartPower3}%) " +
$"(End:{param.RampingEndDist}%, Dist {EndAngle}mm {(float)param.RampingEndPower1}% -> {(float)param.RampingEndPower3}%)");
$"(Start_B:{param.RampingStartDist}%, Dist {StartAngle}mm {(float)param.RampingStartPower1}% -> {(float)param.RampingStartPower2}%) " +
$"(End:{param.RampingEndDist}%, Dist {EndAngle}mm {(float)param.RampingEndPower1}% -> {(float)param.RampingEndPower2}%)");
// 2.2.2.2. Rising Edge 구간 파워 및 위치 변경
@ -1889,15 +1892,15 @@ namespace WeldingCommon.Sequences {
// 2.2.4.1. Falling Edge 마지막 파워 설정
float endingPercentLaser_A1 = percentLaser1 * (float)param.RampingEndPower1 / 100 <= 100 ?
percentLaser1 * (float)param.RampingEndPower1 / 100 : 100;
float endingPercentLaser_B1 = percentLaser1 * (float)param.RampingEndPower3 / 100 <= 100 ?
percentLaser1 * (float)param.RampingEndPower3 / 100 : 100;
float endingPercentLaser_B1 = percentLaser1 * (float)param.RampingEndPower2 / 100 <= 100 ?
percentLaser1 * (float)param.RampingEndPower2 / 100 : 100;
float fallingEdgePercentLaser1 = 0;
float endingPercentLaser_A2 = percentLaser2 * (float)param.RampingEndPower1 / 100 <= 100 ?
percentLaser2 * (float)param.RampingEndPower1 / 100 : 100;
float endingPercentLaser_B2 = percentLaser2 * (float)param.RampingEndPower3 / 100 <= 100 ?
percentLaser2 * (float)param.RampingEndPower3 / 100 : 100;
float endingPercentLaser_B2 = percentLaser2 * (float)param.RampingEndPower2 / 100 <= 100 ?
percentLaser2 * (float)param.RampingEndPower2 / 100 : 100;
float fallingEdgePercentLaser2 = 0;
@ -1955,7 +1958,7 @@ namespace WeldingCommon.Sequences {
float percentLaser2 = 0;
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. 시작 위치로 점프
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
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를 사용하지 않는다.
float startingPercentLaser2 = 0; // Math.Min(percentLaser2 * (float)param.RampingStartPower2 / 100, 100);
@ -2247,7 +2250,7 @@ namespace WeldingCommon.Sequences {
int endRampStep = 0;
// A -> Start Power, B -> End Power
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를 사용하지 않는다.
float endingPercentLaser2 = 0; // Math.Min(percentLaser2 * (float)param.RampingEndPower2 / 100, 100);

View File

@ -479,6 +479,12 @@ namespace WeldingCommon.Settings
[DisplayName("CellCenterOffsetY")]
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
{