208 lines
5.8 KiB
C#
208 lines
5.8 KiB
C#
using Aurora.Util.HislogPlus;
|
|
using AuroraPLC;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace WeldingCommon.Devices
|
|
{
|
|
public partial class PLCController
|
|
{
|
|
public enum eCommonBitInput : int
|
|
{
|
|
PLC_LIVE_STATUS = 0X00,
|
|
PLC_AUTO_STATUS,
|
|
PLC_AUTO_REQ,
|
|
PLC_MANUAL_REQ,
|
|
PLC_LIGHT_ALARM_STATUS,
|
|
PLC_HEAVY_ALARM_STATUS,
|
|
PLC_DOOR_INTERLOCK,
|
|
PLC_EMO_STATUS,
|
|
PLC_PAGE_CHANGE_REQ,
|
|
PLC_RMS_USED,
|
|
EMPTY_10,
|
|
EMPTY_11,
|
|
EMPTY_12,
|
|
EMPTY_13,
|
|
EMPTY_14,
|
|
EMPTY_15,
|
|
PLC_WELD_READY_REQ,
|
|
PLC_WELD_WAIT,
|
|
PLC_WELD_COMPLETE_ACK,
|
|
EMPTY_19,
|
|
EMPTY_20,
|
|
EMPTY_21,
|
|
EMPTY_22,
|
|
EMPTY_23,
|
|
EMPTY_24,
|
|
EMPTY_25,
|
|
EMPTY_26,
|
|
EMPTY_27,
|
|
EMPTY_28,
|
|
EMPTY_29,
|
|
PLC_ALARM_RESET,
|
|
EMPTY_31,
|
|
EMPTY_32,
|
|
EMPTY_33,
|
|
EMPTY_34,
|
|
EMPTY_35,
|
|
EMPTY_36,
|
|
PLC_RMS_PARAMETER_READ_REQUEST,
|
|
EMPTY_38,
|
|
EMPTY_39,
|
|
EMPTY_40,
|
|
}
|
|
|
|
public enum eCommonBitOutput : int
|
|
{
|
|
PC_LIVE_STATUS = 0X00,
|
|
PC_AUTO_STATUS,
|
|
PC_AUTO_COMPLETE,
|
|
PC_MANUAL_COMPLETE,
|
|
PC_LIGHT_ALARM_STATUS,
|
|
PC_HEAVY_ALARM_STATUS,
|
|
EMPTY_06,
|
|
EMPTY_07,
|
|
PC_PAGE_CHANGE_COMPLETE,
|
|
EMPTY_09,
|
|
EMPTY_10,
|
|
EMPTY_11,
|
|
EMPTY_12,
|
|
EMPTY_13,
|
|
EMPTY_14,
|
|
EMPTY_15,
|
|
PC_WELD_READY_ACK,
|
|
PC_WELD_BUSY,
|
|
PC_WELD_COMPLETE,
|
|
EMPTY_19,
|
|
PC_WELD_NG, // ng(vision Compensation fail) 발생 시 살림
|
|
EMPTY_21,
|
|
EMPTY_22,
|
|
EMPTY_23,
|
|
EMPTY_24,
|
|
EMPTY_25,
|
|
EMPTY_26,
|
|
EMPTY_27,
|
|
EMPTY_28,
|
|
EMPTY_29,
|
|
EMPTY_30,
|
|
EMPTY_31,
|
|
EMPTY_32,
|
|
EMPTY_33,
|
|
EMPTY_34,
|
|
EMPTY_35,
|
|
EMPTY_36,
|
|
PC_RMS_PARAMETER_READ_REQUEST_ACK,
|
|
EMPTY_38,
|
|
EMPTY_39,
|
|
EMPTY_40,
|
|
}
|
|
|
|
public enum eCommonWordInput : int
|
|
{
|
|
PLC_ERROR_CODE = 0X00,
|
|
PLC_PAGE_NO,
|
|
PLC_STEP_NO,
|
|
EMPTY_03,
|
|
PLC_CURRENT_SLOT_NO, // EL / CLEAN 사용
|
|
EMPTY_05,
|
|
EMPTY_06,
|
|
EMPTY_07,
|
|
EMPTY_08,
|
|
EMPTY_09,
|
|
EMPTY_10,
|
|
EMPTY_11,
|
|
EMPTY_12,
|
|
EMPTY_13,
|
|
EMPTY_14,
|
|
EMPTY_15,
|
|
EMPTY_16,
|
|
EMPTY_17,
|
|
EMPTY_18,
|
|
EMPTY_19,
|
|
PLC_CELL_ID_01,
|
|
PLC_CELL_ID_02,
|
|
PLC_CELL_ID_03,
|
|
PLC_CELL_ID_04,
|
|
PLC_CELL_ID_05,
|
|
PLC_CELL_ID_06,
|
|
PLC_CELL_ID_07,
|
|
PLC_CELL_ID_08,
|
|
PLC_CELL_ID_09,
|
|
PLC_CELL_ID_10,
|
|
PLC_LOT_ID_01,
|
|
PLC_LOT_ID_02,
|
|
PLC_LOT_ID_03,
|
|
PLC_LOT_ID_04,
|
|
PLC_LOT_ID_05,
|
|
PLC_LOT_ID_06,
|
|
PLC_LOT_ID_07,
|
|
PLC_LOT_ID_08,
|
|
}
|
|
|
|
public enum eCommonWordOutput : int
|
|
{
|
|
PC_ERROR_CODE = 0X00,
|
|
PC_PAGE_NO,
|
|
EMPTY_02,
|
|
EMPTY_03,
|
|
EMPTY_04,
|
|
EMPTY_05,
|
|
EMPTY_06,
|
|
EMPTY_07,
|
|
PC_WELD_OFFSET_X,
|
|
EMPTY_09,
|
|
PC_WELD_OFFSET_Y,
|
|
EMPTY_11,
|
|
PC_DISPLACEMENT1_MEASUREMENT,
|
|
EMPTY_13,
|
|
PC_DISPLACEMENT2_MEASUREMENT = 0X0E,
|
|
EMPTY_15,
|
|
EMPTY_16,
|
|
EMPTY_17,
|
|
EMPTY_18,
|
|
EMPTY_19,
|
|
}
|
|
|
|
// PLC 주소 초기화
|
|
void InitPLCAddress()
|
|
{
|
|
ePLCErrCode retCode = ePLCErrCode.MemMapPaser_Fail;
|
|
switch (mmapFileType) {
|
|
case PLCMMapFileType.CSV:
|
|
ParsePLCBitWordAddressFromCSV(BitInputPath, BitOutputPath, WordInputPath, WordOutputPath, out retCode);
|
|
break;
|
|
case PLCMMapFileType.EXCEL:
|
|
ParsePLCBitWordAddressFromExcel(BitInputPath, BitOutputPath, WordInputPath, WordOutputPath, out retCode);
|
|
break;
|
|
default:
|
|
Log.E($"No supported fileType: {mmapFileType}");
|
|
break;
|
|
}
|
|
//===================================================
|
|
|
|
switch (retCode) {
|
|
case ePLCErrCode.MemMapPaser_BitInput_LoadFail: {
|
|
#warning [LUKAS][PLC] 아래 주석은 Aurora 알람 기능에 연동할 때 검토 (csv 파일이 없을때 알림용)
|
|
//_alarmService.SetAlarm(AlarmCode.ALARM_PLC_EXCEL_BIT_INPUT_LOAD_FAIL);
|
|
break;
|
|
}
|
|
case ePLCErrCode.MemMapPaser_BitOutput_LoadFail: {
|
|
//_alarmService.SetAlarm(AlarmCode.ALARM_PLC_EXCEL_BIT_OUTPUT_LOAD_FAIL);
|
|
break;
|
|
}
|
|
case ePLCErrCode.MemMapPaser_WordInput_LoadFail: {
|
|
//_alarmService.SetAlarm(AlarmCode.ALARM_PLC_EXCEL_WORD_INPUT_LOAD_FAIL);
|
|
break;
|
|
}
|
|
case ePLCErrCode.MemMapPaser_WordOutput_LoadFail: {
|
|
//_alarmService.SetAlarm(AlarmCode.ALARM_PLC_EXCEL_WORD_OUTPUT_LOAD_FAIL);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|