From 69679864ef3f6afc622fca024cdcd6ac76b3a786 Mon Sep 17 00:00:00 2001 From: RnD_Welder Date: Wed, 15 Apr 2026 10:49:19 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20260415=20=EC=9E=A5=EB=B9=84=20=ED=99=9C?= =?UTF-8?q?=EC=84=B1=ED=99=94=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EC=95=8C?= =?UTF-8?q?=EB=9E=8C=EB=A7=A4=EB=8B=88=EC=A0=80=EC=97=90=20AutoRunACS=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20->=20=EC=82=AC=EC=9A=A9=EC=95=88=ED=95=98?= =?UTF-8?q?=EB=8A=94=20Device=EC=9D=98=20AxisY1,Y2=20=EC=A3=BC=EC=84=9D?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=20->=20=EB=AA=A8=ED=84=B0=20=EB=8F=99?= =?UTF-8?q?=EC=9E=91=EC=97=90=20=EC=98=81=ED=96=A5=20x=20,=20=EC=8A=A4?= =?UTF-8?q?=EC=BA=90=EB=84=88=20=EA=B0=88=EB=B3=B4=EB=AA=A8=ED=84=B0=20?= =?UTF-8?q?=EC=98=81=ED=96=A5=20X=20=ED=99=95=EC=9D=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AuroraDevices/AuroraIO/IODevice.cs | 6 ++--- Doc/ToNDH/로그_한글_깨짐_문제해결_260415.docx | Bin 0 -> 60851 bytes Doc/ToNDH/번들프로그램세팅법_260414.pptx | 0 .../Alarm/AlarmManager_PrismaticScanner.cs | 1 + Machines/ILSOS_PrismaticScanner/EquipDef.cs | 7 ++---- .../ILSOS_PrismaticScanner/EquipmentSetup.cs | 4 ++-- .../Sequences/SequenceManager.cs | 3 ++- .../LASA/GUI/Common/ExcelManagementUnit.cs | 3 ++- .../WeldingCommon/Alarm/AlarmManager.cs | 3 +++ .../WeldingCommon/CommonEquipmentSetup.cs | 13 +++++++---- .../WeldingCommon/EquipDefCommon.cs | 8 ++++--- .../Gun/Monitoring/SeqAlarmMonitor.cs | 11 +++++---- .../Sequences/Gun/SeqSplitLine.cs | 18 +++++++------- .../StageA/SeqWeldingCellStageA.cs | 4 ++-- .../Utils/ExcelManagementUnit.cs | 3 ++- .../ACS/Stage/UCStageMotorMovingViewModel.cs | 6 ++--- .../Recipes/Gun/UCMainRecipeViewModel.cs | 22 +++++++++--------- 17 files changed, 62 insertions(+), 50 deletions(-) create mode 100644 Doc/ToNDH/로그_한글_깨짐_문제해결_260415.docx create mode 100644 Doc/ToNDH/번들프로그램세팅법_260414.pptx diff --git a/AuroraDevices/AuroraIO/IODevice.cs b/AuroraDevices/AuroraIO/IODevice.cs index e62da44..bf820ee 100644 --- a/AuroraDevices/AuroraIO/IODevice.cs +++ b/AuroraDevices/AuroraIO/IODevice.cs @@ -281,9 +281,9 @@ namespace AuroraIO Log.I(string.Format($"파일({fileName})이 존재하지 않습니다. Device Config의 File 경로를 확인하세요.")); return 0; - //StreamWriter writer = new StreamWriter(fileName, false, System.Text.Encoding.Unicode); - //writer.WriteLine("Index,Address,ID,IoType,ActiveLevel,BoardNo,Description,HighNecCond,LowNecCond,HighSensor,LowSensor,WaitInterlockTimeOut,WaitSensorTimeOut,HighSufCond,LowSufCond"); - //writer.Close(); + StreamWriter writer = new StreamWriter(fileName, false, System.Text.Encoding.Unicode); + writer.WriteLine("Index,Address,ID,IoType,ActiveLevel,BoardNo,Description,HighNecCond,LowNecCond,HighSensor,LowSensor,WaitInterlockTimeOut,WaitSensorTimeOut,HighSufCond,LowSufCond"); + writer.Close(); } StreamReader sr = new StreamReader(fileName, System.Text.Encoding.Default); diff --git a/Doc/ToNDH/로그_한글_깨짐_문제해결_260415.docx b/Doc/ToNDH/로그_한글_깨짐_문제해결_260415.docx new file mode 100644 index 0000000000000000000000000000000000000000..4b76b4a5e06a78c1e71c256d9260df72431eadb9 GIT binary patch literal 60851 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 z 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 -} zDzG`@8e$C!s0f$SUi{2~x|QW6w`!=5SwU~M()?+DpD;B9CnB6K(l{P#c20X_ci?ug z^Qo<;?WDt86yTxo`ApkPi9t=&AKNOgPgo(?cZ5mw_tfo8;^K+W5t#a&omofqw|PqZ z4Y#uinnFI+$}R6cd8Km2Y-Yn@IC+K+Vv@*Vf=r37$zqmgSvrxJ#ZW&ky5>Ks+*w9yb~Y8tm3d@? z7#^BKZR}K8Y9h&QHdM3Iw1K z_0;b`H{t3%b9d!>WQps*RxZcdEE);hZCwvu_n&6$cW_XLQu3UuMytL9(C=T-kz(d6FdgF~NC!C8(M87a)geX4aVPjlo+;{@D+t zSv4dZp?qr)cvWBD@(JSwBPXRa`Vpgq}Zt^N+8Yt2!<#Wb4Coh{ikY80>6Q@jZG+t@>BG5Mwqlm*Yvp7L}MBDN8JQ+0F_+Rac` zJpKpl5jn{0;CPU6e6%pfK|n5H&HER;u$)w|s-7jpOGig>4tg5a5w+PAXkoq} z5U|JfUxL39!C`^}UWFDw^c>$uUp5{d{|~;70?tP!9oR-CjvC~Gwr+I@jcJ7WJ!85e z-#MDdD_zOu@TVG;n3s(EbpoVjJi`dIg?|bD- z?I{q}WftOp4$qE~m0^(|NBrIi=0^pXL!8 zl9hdGuNsc{pqj+bZrzg7u8DHUpb|KD+a!D?lX?-XLe~2uthjz`lhND6(W-Z*hFe3l zRD^n<@@8Y4;G!(akKOOrQA2^|!8h)nrL#IMz8^v*n9GOpRV!IEFxxWGgW9l+po=@l zZxDCXTx8_xy7%0kQ`LDrOE4n8zh7ryJ1Mw4uFbp8^tVu{sO14)>F=DW4`K}0Jpic= z(t$vLmMMzmd7ziZVDZ+bJ{}m{^+WAmG5C={IG&%l3cwJ6)`9;0yHW_mch;U5SDd24 z;h7ScHziZW57evy80v!G!9bukAcyN~K=>CLn7eqn0gX7U{Xdyr6-p@5gMkdNtiNpe zBQiFXn9O3I{zu|v~Hz@Hx jcGyQ~5UBLScg_FSeP1!40~87Zu>yxKAo6Pqhgbgt3f8{I literal 0 HcmV?d00001 diff --git a/Doc/ToNDH/번들프로그램세팅법_260414.pptx b/Doc/ToNDH/번들프로그램세팅법_260414.pptx new file mode 100644 index 0000000..e69de29 diff --git a/Machines/ILSOS_PrismaticScanner/Alarm/AlarmManager_PrismaticScanner.cs b/Machines/ILSOS_PrismaticScanner/Alarm/AlarmManager_PrismaticScanner.cs index 8c80a72..0bf9890 100644 --- a/Machines/ILSOS_PrismaticScanner/Alarm/AlarmManager_PrismaticScanner.cs +++ b/Machines/ILSOS_PrismaticScanner/Alarm/AlarmManager_PrismaticScanner.cs @@ -24,6 +24,7 @@ namespace ILSOS_PrismaticScanner.Alarm // High Alarm 은 Sequence 정지 if (alarm.Level == AlarmLevel.H) { StopSequence(SequenceIds.SeqAutoRun); + StopSequence(SequenceIds.SeqAutoRunACS); // 26.04.15 추가 } } } diff --git a/Machines/ILSOS_PrismaticScanner/EquipDef.cs b/Machines/ILSOS_PrismaticScanner/EquipDef.cs index f7b0ef6..9d802be 100644 --- a/Machines/ILSOS_PrismaticScanner/EquipDef.cs +++ b/Machines/ILSOS_PrismaticScanner/EquipDef.cs @@ -17,8 +17,8 @@ namespace ILSOS_PrismaticScanner internal class MotorIds { public const string AxisX2 = "AxisX2"; - public const string AxisY1 = "AxisY1"; - public const string AxisY2 = "AxisY2"; + //public const string AxisY1 = "AxisY1"; + //public const string AxisY2 = "AxisY2"; public const string AxisZ = "AxisZ"; // TODO: 이정인 선임 ACS 변수 맵 수신 후 실제 번호 검증 @@ -41,9 +41,6 @@ namespace ILSOS_PrismaticScanner public const string SeqAlarmMonitor = "SeqAlarmMonitor"; public const string SeqStatusMonitor = "SeqStatusMonitor"; - // 26.04.09 NDY - ACS MOTF AutoRun - > SeqAutoRun은 CommonSequenceIds에 존재함. - public const string SeqAutoRunACS = "SeqAutoRunACS"; - } public class StreamMessageNames diff --git a/Machines/ILSOS_PrismaticScanner/EquipmentSetup.cs b/Machines/ILSOS_PrismaticScanner/EquipmentSetup.cs index 1b86372..56f70cc 100644 --- a/Machines/ILSOS_PrismaticScanner/EquipmentSetup.cs +++ b/Machines/ILSOS_PrismaticScanner/EquipmentSetup.cs @@ -153,7 +153,7 @@ namespace ILSOS_PrismaticScanner var ACS = new ScannerACS(isSimul); registry.Register(DeviceIds.ACS, () => ACS, new ACSDeviceConfig()); - // TODO: 축 번호는 이정인 선임 변수 맵 수신 후 검증 + // TODO: 스테이지 X는 2 스테이지 Z는 4 확인완료 Y 사용 안함 var motorX2 = new ACSMotor(MotorIds.AxisX2, ACS, 2, (int)MotorIds.eMotorIdx.AxisX2); registry.Register(MotorIds.AxisX2, () => motorX2, new ACSMotorConfig(MotorIds.AxisX2), @@ -228,7 +228,7 @@ namespace ILSOS_PrismaticScanner // ACS MOTF 전용 시퀀스를 별도 Builder로 등록 var seqAutoRunPrismaticScannerACS = new SeqAutoRunPrismaticScannerACS(); _SeqAutoRunPrismaticScannerACS_Builder = seqAutoRunPrismaticScannerACS.Builder(); - register(SequenceIds.SeqAutoRunACS, _SeqAutoRunPrismaticScannerACS_Builder); + register(CommonSequenceIds.SeqAutoRunACS, _SeqAutoRunPrismaticScannerACS_Builder); #endregion } diff --git a/Machines/ILSOS_PrismaticScanner/Sequences/SequenceManager.cs b/Machines/ILSOS_PrismaticScanner/Sequences/SequenceManager.cs index 704db3b..96a8f4d 100644 --- a/Machines/ILSOS_PrismaticScanner/Sequences/SequenceManager.cs +++ b/Machines/ILSOS_PrismaticScanner/Sequences/SequenceManager.cs @@ -95,6 +95,7 @@ namespace ILSOS_PrismaticScanner.Sequences //register(CommonSequenceIds.DeviceMonitor, DeviceMonitoring.Builder()); base.Register(aurora, register); + //SeqMarkGrid 시퀸스 등록 if (_SeqMarkGrid == null) { _SeqMarkGrid = new SeqMarkGrid(); @@ -169,7 +170,7 @@ namespace ILSOS_PrismaticScanner.Sequences #region 26.04.09 NDY - ACS MOTF AutoRun Sequence 등록 // 기존 SeqAutoRun(SeqAutoRunPrismaticScanner)은 건드리지 않고 - // ACS MOTF 전용 시퀀스를 별도 ID(SeqAutoRunACS)로 등록 + // ACS MOTF 전용 시퀀스를 별도 ID(SeqAutoRunACS)로 등록 - 이미 존재한다고 뜸 if (_SeqAutoRunPrismaticScannerACS == null) { _SeqAutoRunPrismaticScannerACS = new SeqAutoRunPrismaticScannerACS(); diff --git a/WeldingComponents/LASA/GUI/Common/ExcelManagementUnit.cs b/WeldingComponents/LASA/GUI/Common/ExcelManagementUnit.cs index 69d1e11..f5df63f 100644 --- a/WeldingComponents/LASA/GUI/Common/ExcelManagementUnit.cs +++ b/WeldingComponents/LASA/GUI/Common/ExcelManagementUnit.cs @@ -569,7 +569,8 @@ namespace CoreUnit.Common // 다른 프로세스도 파일 읽고 쓸 수 있도록. FileStream FileStream = new FileStream(path, FileMode.Append, FileAccess.Write, FileShare.ReadWrite); - StreamWriter sw = new StreamWriter(FileStream, System.Text.Encoding.Unicode); + StreamWriter sw = new StreamWriter(FileStream, System.Text.Encoding.Unicode); // 26.04.15 기존 코드 주석처리함 + //StreamWriter sw = new StreamWriter(FileStream, System.Text.Encoding.UTF8); // 26.04.15 변경 코드 UTF8로 변경 log 깨짐 현상 if (isFile) { sw.WriteLine(strItem); diff --git a/WeldingComponents/WeldingCommon/Alarm/AlarmManager.cs b/WeldingComponents/WeldingCommon/Alarm/AlarmManager.cs index 86bf626..5d7cc41 100644 --- a/WeldingComponents/WeldingCommon/Alarm/AlarmManager.cs +++ b/WeldingComponents/WeldingCommon/Alarm/AlarmManager.cs @@ -158,6 +158,9 @@ namespace WeldingCommon.Alarm StopSequence(CommonSequenceIds.SeqScoutNormal); StopSequence(CommonSequenceIds.SeqUploadWeldingList); StopSequence(CommonSequenceIds.SeqTeachingRun); + + //26.04.15 추가 + StopSequence(CommonSequenceIds.SeqAutoRunACS); } } diff --git a/WeldingComponents/WeldingCommon/CommonEquipmentSetup.cs b/WeldingComponents/WeldingCommon/CommonEquipmentSetup.cs index 41f8072..d740144 100644 --- a/WeldingComponents/WeldingCommon/CommonEquipmentSetup.cs +++ b/WeldingComponents/WeldingCommon/CommonEquipmentSetup.cs @@ -46,11 +46,16 @@ namespace WeldingCommon builder .AddLanguage("en-US", "ko-KR") .AddDeviceActiveStatus(CommonDeviceIds.Scanner) - .AddDeviceActiveStatus(CommonDeviceIds.Laser) - .AddDeviceActiveStatus(CommonDeviceIds.IODevice) - .AddDeviceActiveStatus(CommonDeviceIds.PLCDevice) + //.AddDeviceActiveStatus(CommonDeviceIds.Laser) + //.AddDeviceActiveStatus(CommonDeviceIds.IODevice) + //.AddDeviceActiveStatus(CommonDeviceIds.PLCDevice) .AddDeviceActiveStatus(CommonDeviceIds.Light) - .AddDeviceActiveStatus(CommonDeviceIds.SmcChiller); + .AddDeviceActiveStatus(CommonDeviceIds.ACS) + .AddDeviceActiveStatus(CommonDeviceIds.AxisX2) + .AddDeviceActiveStatus(CommonDeviceIds.AxisZ); + + //.AddDeviceActiveStatus(CommonDeviceIds.Light) + //.AddDeviceActiveStatus(CommonDeviceIds.SmcChiller); } public bool CanShutDown() diff --git a/WeldingComponents/WeldingCommon/EquipDefCommon.cs b/WeldingComponents/WeldingCommon/EquipDefCommon.cs index d432918..d88fce4 100644 --- a/WeldingComponents/WeldingCommon/EquipDefCommon.cs +++ b/WeldingComponents/WeldingCommon/EquipDefCommon.cs @@ -219,6 +219,8 @@ namespace WeldingCommon public const string MotorInit = "MotorInit"; public const string OneShot = "OneShot"; #endregion + // 26.04.09 NDY - ACS MOTF AutoRun - > SeqAutoRun은 CommonSequenceIds에 존재함. + public const string SeqAutoRunACS = "SeqAutoRunACS"; } public class EquipEvent @@ -266,10 +268,10 @@ namespace WeldingCommon // 26 .04.13 public class CommonMotorIds { - public const string AxisX1 = "AxisX1"; + //public const string AxisX1 = "AxisX1"; public const string AxisX2 = "AxisX2"; - public const string AxisY1 = "AxisY1"; - public const string AxisY2 = "AxisY2"; + //public const string AxisY1 = "AxisY1"; + //public const string AxisY2 = "AxisY2"; // Ajin Motor public const string AxisZ = "AxisZ"; diff --git a/WeldingComponents/WeldingCommon/Sequences/Gun/Monitoring/SeqAlarmMonitor.cs b/WeldingComponents/WeldingCommon/Sequences/Gun/Monitoring/SeqAlarmMonitor.cs index 93ca139..b404229 100644 --- a/WeldingComponents/WeldingCommon/Sequences/Gun/Monitoring/SeqAlarmMonitor.cs +++ b/WeldingComponents/WeldingCommon/Sequences/Gun/Monitoring/SeqAlarmMonitor.cs @@ -51,7 +51,7 @@ namespace WeldingCommon.Sequences.Monitoring private static Laser _laser; private static LaserTruFiber _laserCore; private static ScannerACS _acs; // 26.04.13 - private static ACSMotor _axisX, _axisY1, _axisY2, _axisZ; + private static ACSMotor _axisX, _axisZ; //, _axisY1, _axisY2, public const int NODE_SLEEP = 100; // msec @@ -80,6 +80,7 @@ namespace WeldingCommon.Sequences.Monitoring } + //StartNode 알람 private static SequenceActionResult StartNode(SequenceContext context, string id, SequenceActionResult param) { _SequenceSetting = context.Settings[CommonSettingIds.Sequence] as SequenceSetting; @@ -95,11 +96,11 @@ namespace WeldingCommon.Sequences.Monitoring if (_axisX is null) _axisX = context.Devices[CommonMotorIds.AxisX2] as ACSMotor; - if (_axisY1 is null) - _axisY1 = context.Devices[CommonMotorIds.AxisY1] as ACSMotor; + //if (_axisY1 is null) + // _axisY1 = context.Devices[CommonMotorIds.AxisY1] as ACSMotor; - if (_axisY2 is null) - _axisY2 = context.Devices[CommonMotorIds.AxisY2] as ACSMotor; + //if (_axisY2 is null) + // _axisY2 = context.Devices[CommonMotorIds.AxisY2] as ACSMotor; if (_axisZ is null) _axisZ = context.Devices[CommonMotorIds.AxisZ] as ACSMotor; diff --git a/WeldingComponents/WeldingCommon/Sequences/Gun/SeqSplitLine.cs b/WeldingComponents/WeldingCommon/Sequences/Gun/SeqSplitLine.cs index 1c2fc6f..50b9e21 100644 --- a/WeldingComponents/WeldingCommon/Sequences/Gun/SeqSplitLine.cs +++ b/WeldingComponents/WeldingCommon/Sequences/Gun/SeqSplitLine.cs @@ -137,15 +137,15 @@ namespace WeldingCommon.Sequences _laserCal = context.Settings[CommonSettingIds.LaserPowerCalParam] as LaserPowerCalParam; _AxisX = context.Devices[CommonMotorIds.AxisX2] as ACSMotor; - _AxisZ = context.Devices[CommonMotorIds.AxisZ] as ACSMotor; - if (_data[LineInLinesIndex].YAxisType == (int)eYAxisType.Y1) { - _AxisY = context.Devices[CommonMotorIds.AxisY1] as ACSMotor; - _acsMotion.SetWeldingAxes((int)CommonMotorIds.eMotorIdx.AxisX2, (int)CommonMotorIds.eMotorIdx.AxisY1); - } - else { - _AxisY = context.Devices[CommonMotorIds.AxisY2] as ACSMotor; - _acsMotion.SetWeldingAxes((int)CommonMotorIds.eMotorIdx.AxisX2, (int)CommonMotorIds.eMotorIdx.AxisY2); - } + //_AxisZ = context.Devices[CommonMotorIds.AxisZ] as ACSMotor; + //if (_data[LineInLinesIndex].YAxisType == (int)eYAxisType.Y1) { + // _AxisY = context.Devices[CommonMotorIds.AxisY1] as ACSMotor; + // _acsMotion.SetWeldingAxes((int)CommonMotorIds.eMotorIdx.AxisX2, (int)CommonMotorIds.eMotorIdx.AxisY1); + //} + //else { + // _AxisY = context.Devices[CommonMotorIds.AxisY2] as ACSMotor; + // _acsMotion.SetWeldingAxes((int)CommonMotorIds.eMotorIdx.AxisX2, (int)CommonMotorIds.eMotorIdx.AxisY2); + //} if (Status.EquipmentStatus == eEqpStatus.Manual) diff --git a/WeldingComponents/WeldingCommon/Sequences/Gun/SubSequence/StageA/SeqWeldingCellStageA.cs b/WeldingComponents/WeldingCommon/Sequences/Gun/SubSequence/StageA/SeqWeldingCellStageA.cs index 1719c86..a797403 100644 --- a/WeldingComponents/WeldingCommon/Sequences/Gun/SubSequence/StageA/SeqWeldingCellStageA.cs +++ b/WeldingComponents/WeldingCommon/Sequences/Gun/SubSequence/StageA/SeqWeldingCellStageA.cs @@ -124,8 +124,8 @@ namespace WeldingCommon.Sequences.SubSequence.StageA _AxisX = context.Devices[CommonMotorIds.AxisX2] as ACSMotor; _AxisZ = context.Devices[CommonMotorIds.AxisZ] as ACSMotor; - _MotorY1 = context.Devices[CommonMotorIds.AxisY1] as ACSMotor; - _MotorY2 = context.Devices[CommonMotorIds.AxisY2] as ACSMotor; + //_MotorY1 = context.Devices[CommonMotorIds.AxisY1] as ACSMotor; + //_MotorY2 = context.Devices[CommonMotorIds.AxisY2] as ACSMotor; if (_mainRecipe.YAxisUseType == MainRecipe.YAxisType.Y1) { _AxisY = _MotorY1; diff --git a/WeldingComponents/WeldingCommon/Utils/ExcelManagementUnit.cs b/WeldingComponents/WeldingCommon/Utils/ExcelManagementUnit.cs index d8693a2..ce30cbd 100644 --- a/WeldingComponents/WeldingCommon/Utils/ExcelManagementUnit.cs +++ b/WeldingComponents/WeldingCommon/Utils/ExcelManagementUnit.cs @@ -576,7 +576,8 @@ namespace WeldingCommon.Utils // 다른 프로세스도 파일 읽고 쓸 수 있도록. FileStream FileStream = new FileStream(path, FileMode.Append, FileAccess.Write, FileShare.ReadWrite); - StreamWriter sw = new StreamWriter(FileStream, System.Text.Encoding.Unicode); + StreamWriter sw = new StreamWriter(FileStream, System.Text.Encoding.Unicode); // 26.04.15 기존 코드 주석처리함 + //StreamWriter sw = new StreamWriter(FileStream, System.Text.Encoding.UTF8); // 26.04.15 변경 코드 UTF8로 변경 log 깨짐 현상 if (isFile) { sw.WriteLine(strItem); diff --git a/WeldingComponents/WeldingCommon/Views/Manual/ACS/Stage/UCStageMotorMovingViewModel.cs b/WeldingComponents/WeldingCommon/Views/Manual/ACS/Stage/UCStageMotorMovingViewModel.cs index e11e15c..9dcc847 100644 --- a/WeldingComponents/WeldingCommon/Views/Manual/ACS/Stage/UCStageMotorMovingViewModel.cs +++ b/WeldingComponents/WeldingCommon/Views/Manual/ACS/Stage/UCStageMotorMovingViewModel.cs @@ -112,12 +112,12 @@ namespace WeldingCommon.Views.ACS ACS = _env.DeviceManager[CommonDeviceIds.ACS] as ScannerACS; MotorX = _env.DeviceManager[CommonMotorIds.AxisX2] as ACSMotor; - MotorY1 = _env.DeviceManager[CommonMotorIds.AxisY1] as ACSMotor; - MotorY2 = _env.DeviceManager[CommonMotorIds.AxisY2] as ACSMotor; + //MotorY1 = _env.DeviceManager[CommonMotorIds.AxisY1] as ACSMotor; + //MotorY2 = _env.DeviceManager[CommonMotorIds.AxisY2] as ACSMotor; MotorZ = _env.DeviceManager[CommonMotorIds.AxisZ] as ACSMotor; XAxis = MotorX; - YAxis = MotorY1; + //YAxis = MotorY1; ZAxis = MotorZ; CurrentPosUpdateTimer = CreateTimer( diff --git a/WeldingComponents/WeldingCommon/Views/Recipes/Gun/UCMainRecipeViewModel.cs b/WeldingComponents/WeldingCommon/Views/Recipes/Gun/UCMainRecipeViewModel.cs index 93237e8..111ba47 100644 --- a/WeldingComponents/WeldingCommon/Views/Recipes/Gun/UCMainRecipeViewModel.cs +++ b/WeldingComponents/WeldingCommon/Views/Recipes/Gun/UCMainRecipeViewModel.cs @@ -80,7 +80,7 @@ namespace WeldingCommon.Views private IScannerACS _motion; // 변경 private ScannerACS _acs; // 변경 - private ACSMotor _AxisX; + private ACSMotor _AxisX; // AxisX,Y는 갈보모터 기준이고 private ACSMotor _AxisY; private ACSMotor _MotorY1, _MotorY2; public MainRecipe Recipe { get => _Recipe; private set => SetProperty(ref _Recipe, value); } @@ -118,8 +118,8 @@ namespace WeldingCommon.Views Recipe = recipeItem as MainRecipe; - _MotorY1 = _devices[CommonMotorIds.AxisY1] as ACSMotor; //변경 - _MotorY2 = _devices[CommonMotorIds.AxisY2] as ACSMotor; //변경 + //_MotorY1 = _devices[CommonMotorIds.AxisY1] as ACSMotor; //변경 + //_MotorY2 = _devices[CommonMotorIds.AxisY2] as ACSMotor; //변경 _AxisX = _env.DeviceManager[CommonMotorIds.AxisX2] as ACSMotor; // 변경 //if (Recipe.YAxisUseType == MainRecipe.YAxisType.Y1) { @@ -313,8 +313,8 @@ namespace WeldingCommon.Views _MotorY2.Move(); Log.V($"Move Y2 Position : {teachingSetting.SettingPositions[(int)eTeachingPosition.StageWeldingStartPos].AxisY2}"); - _AxisY = _env.DeviceManager[CommonMotorIds.AxisY1] as ACSMotor; - _acs.WriteVariableInt("iPCget_LCI_ASMASK_Y", (int)CommonMotorIds.eMotorIdx.AxisY1); + //_AxisY = _env.DeviceManager[CommonMotorIds.AxisY1] as ACSMotor; + //_acs.WriteVariableInt("iPCget_LCI_ASMASK_Y", (int)CommonMotorIds.eMotorIdx.AxisY1); } else { @@ -323,8 +323,8 @@ namespace WeldingCommon.Views _MotorY1.Move(); Log.V($"Move Y1 Position : {teachingSetting.SettingPositions[(int)eTeachingPosition.StageWeldingStartPos].AxisY1}"); - _AxisY = _env.DeviceManager[CommonMotorIds.AxisY2] as ACSMotor; - _acs.WriteVariableInt("iPCget_LCI_ASMASK_Y", (int)CommonMotorIds.eMotorIdx.AxisY2); + //_AxisY = _env.DeviceManager[CommonMotorIds.AxisY2] as ACSMotor; + //_acs.WriteVariableInt("iPCget_LCI_ASMASK_Y", (int)CommonMotorIds.eMotorIdx.AxisY2); } } } @@ -341,8 +341,8 @@ namespace WeldingCommon.Views _MotorY2.Move(); Log.V($"Move Y2 Position : {teachingSetting.SettingPositions[(int)eTeachingPosition.StageWeldingStartPos].AxisY2}"); - _AxisY = _env.DeviceManager[CommonMotorIds.AxisY1] as ACSMotor; - _acs.WriteVariableInt("iPCget_LCI_ASMASK_Y", (int)CommonMotorIds.eMotorIdx.AxisY1); + //_AxisY = _env.DeviceManager[CommonMotorIds.AxisY1] as ACSMotor; + //_acs.WriteVariableInt("iPCget_LCI_ASMASK_Y", (int)CommonMotorIds.eMotorIdx.AxisY1); } else { @@ -351,8 +351,8 @@ namespace WeldingCommon.Views _MotorY1.Move(); Log.V($"Move Y1 Position : {teachingSetting.SettingPositions[(int)eTeachingPosition.StageWeldingStartPos].AxisY1}"); - _AxisY = _env.DeviceManager[CommonMotorIds.AxisY2] as ACSMotor; - _acs.WriteVariableInt("iPCget_LCI_ASMASK_Y", (int)CommonMotorIds.eMotorIdx.AxisY2); + //_AxisY = _env.DeviceManager[CommonMotorIds.AxisY2] as ACSMotor; + //_acs.WriteVariableInt("iPCget_LCI_ASMASK_Y", (int)CommonMotorIds.eMotorIdx.AxisY2); } }