From ab9b08a53ccfee53129954af35fd7df26c5b2864 Mon Sep 17 00:00:00 2001 From: NohDoyeon241104 Date: Thu, 9 Apr 2026 15:42:59 +0900 Subject: [PATCH] dd --- AuroraDevices/AuroraACS/ACSMotor.cs | 1 + .../AuroraLaserScanner/ScannerObj.cs | 4 +- .../AuroraLaserScanner/ScannerRTC6.cs | 48 ++-- .../.~lock.각형배터리 캔캡 MOF용접 제어컨셉_260408.pptx# | 1 + .../각형고속용접단동기_ACS_Buffer&Variable_Info_20260407.xlsx | Bin 0 -> 15246 bytes .../각형배터리 캔캡 MOF용접 제어컨셉_260408.pptx | Bin 0 -> 52500 bytes .../LASA/GUI/Canvas/DrawTools/LineTool.cs | 37 +++ .../LASA/GUI/Canvas/Layers/DrawingLayer.cs | 6 + .../LASA/GUI/DB/RecipeWeldingLines.cs | 131 +++++++--- .../Recipes/UCScannerObjectTeaching.xaml | 5 + .../UCScannerObjectTeachingControlBox.xaml | 195 +++++++++++++- ...cannerObjectTeachingControlBoxViewModel.cs | 241 ++++++++++++++++++ 12 files changed, 598 insertions(+), 71 deletions(-) create mode 100644 Doc/FromLGPRI/각형 고속등속용접 RND설비_MOF테스트관련프로그램개발컨셉및acs변수공유건/.~lock.각형배터리 캔캡 MOF용접 제어컨셉_260408.pptx# create mode 100644 Doc/FromLGPRI/각형 고속등속용접 RND설비_MOF테스트관련프로그램개발컨셉및acs변수공유건/각형고속용접단동기_ACS_Buffer&Variable_Info_20260407.xlsx create mode 100644 Doc/FromLGPRI/각형 고속등속용접 RND설비_MOF테스트관련프로그램개발컨셉및acs변수공유건/각형배터리 캔캡 MOF용접 제어컨셉_260408.pptx diff --git a/AuroraDevices/AuroraACS/ACSMotor.cs b/AuroraDevices/AuroraACS/ACSMotor.cs index 440c1d9..47aa61d 100644 --- a/AuroraDevices/AuroraACS/ACSMotor.cs +++ b/AuroraDevices/AuroraACS/ACSMotor.cs @@ -116,6 +116,7 @@ namespace AuroraACS return alarms; } + // 실제 위치 읽어오는 메소드 public override double GetActualPos() { return ACSLibrary.ReadMotorPosition(AxisNo); diff --git a/AuroraDevices/AuroraLaserScanner/ScannerObj.cs b/AuroraDevices/AuroraLaserScanner/ScannerObj.cs index 52d698f..4c68573 100644 --- a/AuroraDevices/AuroraLaserScanner/ScannerObj.cs +++ b/AuroraDevices/AuroraLaserScanner/ScannerObj.cs @@ -338,8 +338,8 @@ namespace AuroraLaserScanner #region 26.04.08 NDY 오차 추적 메소드 OVERRIDE 추가 RTC6 (부모클래스 -자식클래스에서 override 가능하도록 abstract 처리 ) - public abstract void SetFlyLimit(uint portNo, int xMin, int xMax, int yMin, int yMax); - public abstract void SetFlyLimitZ(uint portNo, int zMin, int zMax); + //public abstract void SetFlyLimit(uint portNo, int xMin, int xMax, int yMin, int yMax); + //public abstract void SetFlyLimitZ(uint portNo, int zMin, int zMax); #endregion } diff --git a/AuroraDevices/AuroraLaserScanner/ScannerRTC6.cs b/AuroraDevices/AuroraLaserScanner/ScannerRTC6.cs index be7ca3e..5849202 100644 --- a/AuroraDevices/AuroraLaserScanner/ScannerRTC6.cs +++ b/AuroraDevices/AuroraLaserScanner/ScannerRTC6.cs @@ -154,23 +154,23 @@ namespace AuroraLaserScanner #region 좌표 변환 작업 수행 // 26.04.08 NDY - MOTF Tracking Error Limit 설정 추가 - 요기서 처리해야 한다고 한다. // 하드웨어 보호를 위해 실제 좌표 변환 및 가공 시작 전 울타리를 칩니다. - if (config.UseMarkingOnTheFly) - { - // 1. mm 단위를 bits 단위로 변환 - int xLimitBits = Convert.ToInt32(config.FlyLimitXmm * m_ScaleXYFactor); - int yLimitBits = Convert.ToInt32(config.FlyLimitYmm * m_ScaleXYFactor); + //if (config.UseMarkingOnTheFly) + //{ + // // 1. mm 단위를 bits 단위로 변환 + // int xLimitBits = Convert.ToInt32(config.FlyLimitXmm * m_ScaleXYFactor); + // int yLimitBits = Convert.ToInt32(config.FlyLimitYmm * m_ScaleXYFactor); - // 2. 오버라이드된 메서드 호출 (중앙 0 기준 +- 범위 설정) - this.SetFlyLimit(m_deviceNo, -xLimitBits, xLimitBits, -yLimitBits, yLimitBits); - Log.D($"[RTC6ScannerUnit] MOTF Limit 적용: ±{config.FlyLimitXmm}mm (±{xLimitBits} bits)"); + // // 2. 오버라이드된 메서드 호출 (중앙 0 기준 +- 범위 설정) + // this.SetFlyLimit(m_deviceNo, -xLimitBits, xLimitBits, -yLimitBits, yLimitBits); + // Log.D($"[RTC6ScannerUnit] MOTF Limit 적용: ±{config.FlyLimitXmm}mm (±{xLimitBits} bits)"); - if (config.Use3DMode) - { - int zLimitBits = Convert.ToInt32(config.FlyLimitZmm * m_ScaleZFactor); - this.SetFlyLimitZ(m_deviceNo, -zLimitBits, zLimitBits); - Log.D($"[RTC6ScannerUnit] MOTF Z-Limit 적용: ±{config.FlyLimitZmm}mm (±{zLimitBits} bits)"); - } - } + // if (config.Use3DMode) + // { + // int zLimitBits = Convert.ToInt32(config.FlyLimitZmm * m_ScaleZFactor); + // this.SetFlyLimitZ(m_deviceNo, -zLimitBits, zLimitBits); + // Log.D($"[RTC6ScannerUnit] MOTF Z-Limit 적용: ±{config.FlyLimitZmm}mm (±{zLimitBits} bits)"); + // } + //} @@ -1123,16 +1123,16 @@ namespace AuroraLaserScanner } #region 26.04.08 NDY - 오차 추적 메소드 OVERRIDE 추가 RTC6 (자식클래스 -실제 RTC6Wrap전달 지점) - public override void SetFlyLimit(uint portNo,int xMin, int xMax , int yMin,int yMax ) - { - // mm 를 bits로 처리해줘야한다. + //public override void SetFlyLimit(uint portNo,int xMin, int xMax , int yMin,int yMax ) + //{ + // // mm 를 bits로 처리해줘야한다. - RTC6Wrap.n_set_fly_limits(portNo, xMin, xMax, yMin, yMax); - } - public override void SetFlyLimitZ(uint portNo, int zMin, int zMax) - { - RTC6Wrap.n_set_fly_limits_z(portNo, zMin, zMax); - } + // RTC6Wrap.n_set_fly_limits(portNo, xMin, xMax, yMin, yMax); + //} + //public override void SetFlyLimitZ(uint portNo, int zMin, int zMax) + //{ + // RTC6Wrap.n_set_fly_limits_z(portNo, zMin, zMax); + //} #endregion } diff --git a/Doc/FromLGPRI/각형 고속등속용접 RND설비_MOF테스트관련프로그램개발컨셉및acs변수공유건/.~lock.각형배터리 캔캡 MOF용접 제어컨셉_260408.pptx# b/Doc/FromLGPRI/각형 고속등속용접 RND설비_MOF테스트관련프로그램개발컨셉및acs변수공유건/.~lock.각형배터리 캔캡 MOF용접 제어컨셉_260408.pptx# new file mode 100644 index 0000000..abb5d8a --- /dev/null +++ b/Doc/FromLGPRI/각형 고속등속용접 RND설비_MOF테스트관련프로그램개발컨셉및acs변수공유건/.~lock.각형배터리 캔캡 MOF용접 제어컨셉_260408.pptx# @@ -0,0 +1 @@ +,DESKTOP-CN4O63O/User,DESKTOP-CN4O63O,09.04.2026 09:04,file:///C:/Users/User/AppData/Roaming/LibreOffice/4; \ No newline at end of file diff --git a/Doc/FromLGPRI/각형 고속등속용접 RND설비_MOF테스트관련프로그램개발컨셉및acs변수공유건/각형고속용접단동기_ACS_Buffer&Variable_Info_20260407.xlsx b/Doc/FromLGPRI/각형 고속등속용접 RND설비_MOF테스트관련프로그램개발컨셉및acs변수공유건/각형고속용접단동기_ACS_Buffer&Variable_Info_20260407.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..05e0f5256bef3b017a9bb6d575255e8ba3ac0ae0 GIT binary patch literal 15246 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
LS1c{IHFq0pNz;2YcjvS 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 J?b&~Q`#(1GE6)G` literal 0 HcmV?d00001 diff --git a/Doc/FromLGPRI/각형 고속등속용접 RND설비_MOF테스트관련프로그램개발컨셉및acs변수공유건/각형배터리 캔캡 MOF용접 제어컨셉_260408.pptx b/Doc/FromLGPRI/각형 고속등속용접 RND설비_MOF테스트관련프로그램개발컨셉및acs변수공유건/각형배터리 캔캡 MOF용접 제어컨셉_260408.pptx new file mode 100644 index 0000000000000000000000000000000000000000..42422a7f0db14cafc38479314466041ca664281a GIT binary patch literal 52500 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 literal 0 HcmV?d00001 diff --git a/WeldingComponents/LASA/GUI/Canvas/DrawTools/LineTool.cs b/WeldingComponents/LASA/GUI/Canvas/DrawTools/LineTool.cs index a181c8e..62e9f2c 100644 --- a/WeldingComponents/LASA/GUI/Canvas/DrawTools/LineTool.cs +++ b/WeldingComponents/LASA/GUI/Canvas/DrawTools/LineTool.cs @@ -125,6 +125,36 @@ namespace CoreUnit.Control.UserControl.Canvas public class Line : DrawObjectBase, IDrawObject, ISerialize { + #region 26.04.09 + // 26.04.09 NDY [´ë¸éÀû MOTF] Large MOTF Position ÆĶó¹ÌÅÍ Ã߰¡ + // P1 + ÀÌÀü ÆäÀÌÁöÀÇ LargeMOTFOffsetX/Y°¡ ´õÇØÁø ½ÇÁ¦ °¡°ø À§ġ + float m_largeMOTFPositionX = 0.0f; + [Browsable(false)] + [ReadOnly(true)] + [Category("Large MOTF")] + [DisplayName("Large MOTF Position X")] + [Description("P1 + Large MOTF Offset X °¡ ¹ݿµµÈ ½ÇÁ¦ °¡°ø À§ġ X")] + [XmlSerializable] + public float LargeMOTFPositionX + { + get { return m_largeMOTFPositionX; } + set { m_largeMOTFPositionX = value; } + } + + float m_largeMOTFPositionY = 0.0f; + [Browsable(false)] + [ReadOnly(true)] + [Category("Large MOTF")] + [DisplayName("Large MOTF Position Y")] + [Description("P1 + Large MOTF Offset Y °¡ ¹ݿµµÈ ½ÇÁ¦ °¡°ø À§ġ Y")] + [XmlSerializable] + public float LargeMOTFPositionY + { + get { return m_largeMOTFPositionY; } + set { m_largeMOTFPositionY = value; } + } + #endregion + UnitPoint m_p1, m_p2; [Browsable(false)] @@ -210,6 +240,11 @@ namespace CoreUnit.Control.UserControl.Canvas m_alignOffset = acopy.m_alignOffset; m_MadebyRCC = acopy.m_MadebyRCC; m_RCC_PowerRatio = acopy.m_RCC_PowerRatio; + + + // 26.04.09 NDY [´ë¸éÀû MOTF] Ã߰¡ + m_largeMOTFPositionX = acopy.m_largeMOTFPositionX; + m_largeMOTFPositionY = acopy.m_largeMOTFPositionY; } #region IDrawObject Members @@ -495,8 +530,10 @@ namespace CoreUnit.Control.UserControl.Canvas public virtual IDrawObject Clone() { + Line l = new Line(); l.Copy(this); + return l; } diff --git a/WeldingComponents/LASA/GUI/Canvas/Layers/DrawingLayer.cs b/WeldingComponents/LASA/GUI/Canvas/Layers/DrawingLayer.cs index d77e469..00976aa 100644 --- a/WeldingComponents/LASA/GUI/Canvas/Layers/DrawingLayer.cs +++ b/WeldingComponents/LASA/GUI/Canvas/Layers/DrawingLayer.cs @@ -30,6 +30,12 @@ namespace CoreUnit.Control.UserControl.Canvas set { m_name = value; } } + #region 26.04.09 + // 26.04.09 NDY [´ë¸éÀû MOTF] ÆäÀÌÁö ·¹º§ Offset ÆĶó¹ÌÅÍ Ã߰¡ + public double LargeMOTFOffsetX { get; set; } = 0.0; + public double LargeMOTFOffsetY { get; set; } = 0.0; + #endregion + public DrawingLayer(int no, string name, Color color, float width) { m_no = no; diff --git a/WeldingComponents/LASA/GUI/DB/RecipeWeldingLines.cs b/WeldingComponents/LASA/GUI/DB/RecipeWeldingLines.cs index 308e489..efb9631 100644 --- a/WeldingComponents/LASA/GUI/DB/RecipeWeldingLines.cs +++ b/WeldingComponents/LASA/GUI/DB/RecipeWeldingLines.cs @@ -16,10 +16,21 @@ using JsonSerializer = System.Text.Json.JsonSerializer; namespace DB.Recipe { + // 설명 추가 : XML 기반 저장/로딩 구조 - XmlUtil.WriteProperties 프로퍼티를 자동을 저장하는 방식이라서 프로퍼티만 추가하면 된다고 한다. + // XmlUtil.WriteProperties(this, wr) 가 this의 프로퍼티를 자동 직렬화 하니깐 Save() / Load() 수정 없이 프로퍼티 추가만으로 XML에 자동 저장 / 로딩되는 형태 + public class RecipeWeldingLines : Recipe { + + #region 26.04.09 NDY + // 26.04.09 NDY [대면적 MOTF] 레시피 레벨 파라미터 추가 + public bool UseLargeMOTF { get; set; } = false; + public int LargeMOTFPageCount { get; set; } = 1; + #endregion + DataModel m_model; - public DataModel Model { + public DataModel Model + { get { lock (this) { return m_model; } } set { lock (this) { m_model = value; } } } @@ -28,26 +39,33 @@ namespace DB.Recipe List m_powerProfiles = new List(); - public List PowerProfiles { + public List PowerProfiles + { get { lock (this) { return m_powerProfiles; } } set { lock (this) { m_powerProfiles = value; } } } + + + // 생성자 public RecipeWeldingLines() { } - + #region 메서드 영역 public void Reset() { } public override void Save(XmlWriter wr, bool includeModel) { - try { + try + { XmlUtil.WriteProperties(this, wr); SaveWeldingParam(wr); if (includeModel) Model.Save(wr); - } catch (Exception ex) { + } + catch (Exception ex) + { UtilUnit.logUnit.SetLog(LogUnit.eLogType.ALARM, MethodBase.GetCurrentMethod().Name, ex.Message); } } @@ -56,10 +74,13 @@ namespace DB.Recipe { string jsonString = string.Empty; var options = new JsonSerializerOptions { WriteIndented = true }; - try { + try + { jsonString += JsonSerializer.Serialize(ScannerCanvasUserCtrl.ScannerParams, options); jsonString += Model.Save(); - } catch (Exception ex) { + } + catch (Exception ex) + { UtilUnit.logUnit.SetLog(LogUnit.eLogType.ALARM, MethodBase.GetCurrentMethod().Name, ex.Message); } return jsonString; @@ -67,10 +88,13 @@ namespace DB.Recipe public override void Load(XmlElement xmlElement) { - try { + try + { LoadWeldingParam(xmlElement); Model.Load(xmlElement); - } catch (Exception ex) { + } + catch (Exception ex) + { UtilUnit.logUnit.SetLog(LogUnit.eLogType.ALARM, MethodBase.GetCurrentMethod().Name, ex.Message); } } @@ -86,7 +110,8 @@ namespace DB.Recipe #region 1.Scanner Objects에 대한 데이터 저장 wr.WriteStartElement("WeldingParameters"); wr.WriteStartElement("items"); - foreach (ScannerParam param in ScannerCanvasUserCtrl.ScannerParams) { + foreach (ScannerParam param in ScannerCanvasUserCtrl.ScannerParams) + { wr.WriteStartElement("WeldingParameter"); CoreUnit.Common.XmlUtil.WriteProperties(param, wr); wr.WriteEndElement(); @@ -98,18 +123,24 @@ namespace DB.Recipe private void LoadWeldingParam(XmlElement root) { - try { + try + { ScannerCanvasUserCtrl.ScannerParams.Clear(); int paramNo = 0; - foreach (XmlElement node in root.ChildNodes) { - if (node.Name == "WeldingParameters") { + foreach (XmlElement node in root.ChildNodes) + { + if (node.Name == "WeldingParameters") + { #region 1.Scanner Objects에 대한 데이터 로딩 - foreach (XmlElement subNode in node.ChildNodes) { - if (subNode.Name == "items") { + foreach (XmlElement subNode in node.ChildNodes) + { + if (subNode.Name == "items") + { //ScannerCanvasUserCtrl.ScannerParams.Clear(); - foreach (XmlElement itemNode in subNode.ChildNodes) { + foreach (XmlElement itemNode in subNode.ChildNodes) + { ScannerParam param = new ScannerParam(); CoreUnit.Common.XmlUtil.ParseProperties(itemNode, param); param.No = paramNo; @@ -122,16 +153,20 @@ namespace DB.Recipe } } - if (ScannerCanvasUserCtrl.ScannerParams.Count < 128) { + if (ScannerCanvasUserCtrl.ScannerParams.Count < 128) + { CreateScannerParams(); } - for (int i = 0; i < ScannerCanvasUserCtrl.ScannerParams.Count; i++) { + for (int i = 0; i < ScannerCanvasUserCtrl.ScannerParams.Count; i++) + { WeldingParameterIDEditor.UpdateColorList(i, ScannerCanvasUserCtrl.ScannerParams[i].Color); } - } catch (Exception e) { + } + catch (Exception e) + { throw e; } } @@ -140,7 +175,8 @@ namespace DB.Recipe { ScannerCanvasUserCtrl.ScannerParams.Clear(); - for (int i = 0; i < 128; i++) { + for (int i = 0; i < 128; i++) + { ScannerParam param = new ScannerParam(); param.No = i; ScannerCanvasUserCtrl.ScannerParams.Add(param); @@ -231,17 +267,20 @@ namespace DB.Recipe public List ReadOnlyScanParams { get; private set; } public void LoadFileReadOnly(string fileName) { - try { + try + { XmlDocument doc = new XmlDocument(); var extenstion = Path.GetExtension(fileName); - if (extenstion == ".json") { + if (extenstion == ".json") + { var jsonString = File.ReadAllText(fileName); doc = JsonConvert.DeserializeXmlNode(jsonString, "RecipeBody"); } - else { + else + { FileInfo fi = new FileInfo(fileName); StreamReader sr = new StreamReader(fileName); doc.Load(sr); @@ -250,44 +289,58 @@ namespace DB.Recipe XmlElement root = doc.DocumentElement; - foreach (XmlElement childnode in root.ChildNodes) { - foreach (Recipe recipe in recipeList) { - if (childnode.Name == recipe.GetType().Name) { + foreach (XmlElement childnode in root.ChildNodes) + { + foreach (Recipe recipe in recipeList) + { + if (childnode.Name == recipe.GetType().Name) + { recipe.LoadReadOnly(childnode); } } } - } catch (Exception ex) { + } + catch (Exception ex) + { throw ex; } } public override void LoadReadOnly(XmlElement xmlElement) { - try { + try + { ReadOnlyScanParams = LoadWeldingParamReadOnly(xmlElement); - if(Model is null) + if (Model is null) Model = new DataModel(); Model.Load(xmlElement); - } catch (Exception ex) { + } + catch (Exception ex) + { UtilUnit.logUnit.SetLog(LogUnit.eLogType.ALARM, MethodBase.GetCurrentMethod().Name, ex.Message); } } private List LoadWeldingParamReadOnly(XmlElement root) { - try { + try + { List weldingParam = new List(); weldingParam.Clear(); int paramNo = 0; - foreach (XmlElement node in root.ChildNodes) { - if (node.Name == "WeldingParameters") { + foreach (XmlElement node in root.ChildNodes) + { + if (node.Name == "WeldingParameters") + { #region 1.Scanner Objects에 대한 데이터 로딩 - foreach (XmlElement subNode in node.ChildNodes) { - if (subNode.Name == "items") { - foreach (XmlElement itemNode in subNode.ChildNodes) { + foreach (XmlElement subNode in node.ChildNodes) + { + if (subNode.Name == "items") + { + foreach (XmlElement itemNode in subNode.ChildNodes) + { ScannerParam param = new ScannerParam(); CoreUnit.Common.XmlUtil.ParseProperties(itemNode, param); param.No = paramNo; @@ -300,10 +353,14 @@ namespace DB.Recipe } } return weldingParam; - } catch (Exception e) { + } + catch (Exception e) + { throw e; } } #endregion + + #endregion } } \ No newline at end of file diff --git a/WeldingComponents/WeldingCommon/Views/Recipes/UCScannerObjectTeaching.xaml b/WeldingComponents/WeldingCommon/Views/Recipes/UCScannerObjectTeaching.xaml index f8d0b55..df076f4 100644 --- a/WeldingComponents/WeldingCommon/Views/Recipes/UCScannerObjectTeaching.xaml +++ b/WeldingComponents/WeldingCommon/Views/Recipes/UCScannerObjectTeaching.xaml @@ -23,7 +23,12 @@ + + + + + diff --git a/WeldingComponents/WeldingCommon/Views/Recipes/UCScannerObjectTeachingControlBox.xaml b/WeldingComponents/WeldingCommon/Views/Recipes/UCScannerObjectTeachingControlBox.xaml index 8be4b4f..09d173f 100644 --- a/WeldingComponents/WeldingCommon/Views/Recipes/UCScannerObjectTeachingControlBox.xaml +++ b/WeldingComponents/WeldingCommon/Views/Recipes/UCScannerObjectTeachingControlBox.xaml @@ -18,18 +18,22 @@ + + - - - + + + + + @@ -76,6 +80,7 @@ + @@ -122,12 +127,102 @@ - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +