feat: 260415 장비 활성화 추가 및 알람매니저에 AutoRunACS 추가

-> 사용안하는 Device의 AxisY1,Y2 주석처리
-> 모터 동작에 영향 x , 스캐너 갈보모터 영향 X 확인
This commit is contained in:
RnD_Welder 2026-04-15 10:49:19 +09:00
parent b2589be67d
commit 69679864ef
17 changed files with 62 additions and 50 deletions

View File

@ -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);

View File

@ -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 추가
}
}
}

View File

@ -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

View File

@ -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
}

View File

@ -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();

View File

@ -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);

View File

@ -158,6 +158,9 @@ namespace WeldingCommon.Alarm
StopSequence(CommonSequenceIds.SeqScoutNormal);
StopSequence(CommonSequenceIds.SeqUploadWeldingList);
StopSequence(CommonSequenceIds.SeqTeachingRun);
//26.04.15 추가
StopSequence(CommonSequenceIds.SeqAutoRunACS);
}
}

View File

@ -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()

View File

@ -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";

View File

@ -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;

View File

@ -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)

View File

@ -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;

View File

@ -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);

View File

@ -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(

View File

@ -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);
}
}