2026-01-26 18:56:53 +09:00

91 lines
3.7 KiB
C#

using Aurora.Api;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WeldingCommon.Alarm;
using WeldingCommon.Settings;
using WeldingCommon;
using static ILSOS_ACW_H52A.Device.IOController_ACW_H52A;
using ILSOS_ACW_H52A.Sequences;
namespace ILSOS_ACW_H52A.Alarm
{
internal class AlarmHelper
{
internal static void ExternalDeviceActivatedCheckWithIO(SequenceContext context)
{
var sequenceSetting = context.GetSetting<SequenceSetting>(CommonSettingIds.Sequence);
var _io = context.GetIOUnit();
// TODO : AlarmHelper는 공통부 AlarmMonitoring 사용 시 각 프로젝트별 따로 구현할 필요 있을 때 사용함. 필요 시 사용하도록 하자
// TODO: [장비구현필요] 아래는 참고, IO 값을 지속적으로 읽어 alarm 발생하도록하는 sample code
#region Ajin IO enum Sample
// AlarmMonitoring 에서 Device 상태 check 를 IO 로 하는 로직 구현
// 1. Scanner
if (sequenceSetting.ScannerActivatedWithIO) {
}
//// 2. Laser
//if (sequenceSetting.LaserActivatedWithIO) {
// //Laser Disconnect Check 조건문 변경 필요
// if (!_io._iOUnit.ReadDiBit(Convert.ToInt32(eADIAddress.LaserAssigned))) {
// WeldingCommon.Alarm.AlarmManager.Alarm(AlarmCode.ALARM_DEVICE_IO_LASER_DISCONNECT);
// }
// if (_io._iOUnit.ReadDiBit(Convert.ToInt32(eADIAddress.LaserError))) {
// WeldingCommon.Alarm.AlarmManager.Alarm(AlarmCode.ALARM_DEVICE_IO_LASER_ERROR);
// }
// if (_io._iOUnit.ReadDiBit(Convert.ToInt32(eADIAddress.Warning))) {
// WeldingCommon.Alarm.AlarmManager.Alarm(AlarmCode.ALARM_DEVICE_IO_LASER_WARNING);
// }
// //Laser EMO IO Map 확인 필요
// if (!_io._iOUnit.ReadDiBit(Convert.ToInt32(eADIAddress.LaserEMO_1)) || !_io._iOUnit.ReadDiBit(Convert.ToInt32(eADIAddress.LaserEMO_2))) {
// WeldingCommon.Alarm.AlarmManager.Alarm(AlarmCode.ALARM_DEVICE_IO_LASER_EMO);
// }
//}
//// 3. LBAD
//if (sequenceSetting.LbadActivatedWithIO) {
// if (!_io._iOUnit.ReadDiBit(Convert.ToInt32(eADIAddress.LBADReadyStatus))) {
// WeldingCommon.Alarm.AlarmManager.Alarm(AlarmCode.ALARM_DEVICE_IO_LBAD_ERROR);
// }
//}
//// 4. OCT
//if (sequenceSetting.OctActivatedWithIO) {
// if (!_io._iOUnit.ReadDiBit(Convert.ToInt32(eADIAddress.LDDError))) {
// WeldingCommon.Alarm.AlarmManager.Alarm(AlarmCode.ALARM_DEVICE_IO_OCT_ERROR);
// }
//}
//// 5. Chiller
//if (sequenceSetting.ChillerActivatedWithIO) {
//}
//// 6. LeakSensor
////Leak Sensor IO Map 추가 필요
//if (sequenceSetting.LeakSensorActivatedWithIO) {
// if (_io._iOUnit.ReadDiBit(Convert.ToInt32(eADIAddress.LeakSensorHead))) {
// WeldingCommon.Alarm.AlarmManager.Alarm(AlarmCode.ALARM_DEVICE_IO_LEAK_SENSOR_DETECT_SCANNER);
// }
// if (_io._iOUnit.ReadDiBit(Convert.ToInt32(eADIAddress.LeakSensorChiller))) {
// WeldingCommon.Alarm.AlarmManager.Alarm(AlarmCode.ALARM_DEVICE_IO_LEAK_SENSOR_DETECT_CHILLER);
// }
//}
#endregion
#region PAIX IO enum Sample
// Sample 없음. 위와 같이 활용
#endregion
}
}
}