using Hermes; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WeldingCommon.Devices; namespace ILSOS_CCW_H52A.Device { partial class PLCControllerCCWH52A { public override void MappingPLCAddr() { PLC_AUTO_REQAddr = (int)eBitInput.PLC_AUTO_REQ; PLC_MANUAL_REQAddr = (int)eBitInput.PLC_MANUAL_REQ; PLC_RECIPE_CHANGE_REQAddr = (int)eBitInput.PLC_RECIPE_CHANGE_REQ; PLC_RECIPE_CHANGE_COMPLETE_ARKAddr = (int)eBitInput.PLC_RECIPE_CHANGE_COMP_ARK; PLC_RECIPE_NOAddr = (int)eWordInput.PLC_RECIPE_NO; PLC_LIVE_STATUSAddr = (int)eBitInput.PLC_LIVE_STATUS; PLC_EMO_STATUSAddr = (int)eBitInput.PLC_EMO_STATUS; PLC_USE_DISPLACEMENT_SENSORAddr = (int)eBitInput.PLC_USE_DISPLACEMENT_SENSOR; //용접 변위센서 사용 PLC_STAGE_MOVINGAddr = (int)eBitInput.PLC_STAGE_MOVING; //Rotary Stage가 움직이고 있을 때 On PLC_USE_WELD_JIG_1Addr = (int)eBitInput.PLC_USE_WELD_JIG_1; //지그 1번 용접수행 여부 PLC_USE_WELD_JIG_2Addr = (int)eBitInput.PLC_USE_WELD_JIG_2; //지그 2번 용접수행 여부 PLC_USE_WELD_JIG_3Addr = (int)eBitInput.PLC_USE_WELD_JIG_3; //지그 3번 용접수행 여부 PLC_USE_WELD_JIG_4Addr = (int)eBitInput.PLC_USE_WELD_JIG_4; //지그 4번 용접수행 여부 PLC_USE_WELD_JIG_5Addr = (int)eBitInput.PLC_USE_WELD_JIG_5; //지그 5번 용접수행 여부 PLC_USE_WELD_JIG_6Addr = (int)eBitInput.PLC_USE_WELD_JIG_6; //지그 6번 용접수행 여부 PLC_USE_WELD_JIG_7Addr = (int)eBitInput.PLC_USE_WELD_JIG_7; //지그 7번 용접수행 여부 PLC_USE_WELD_JIG_8Addr = (int)eBitInput.PLC_USE_WELD_JIG_8; //지그 8번 용접수행 여부 PLC_USE_WELD_JIG_9Addr = (int)eBitInput.PLC_USE_WELD_JIG_9; //지그 9번 용접수행 여부 PLC_USE_WELD_JIG_10Addr = (int)eBitInput.PLC_USE_WELD_JIG_10; //지그 10번 용접수행 여부 PLC_USE_WELD_JIG_11Addr = (int)eBitInput.PLC_USE_WELD_JIG_11; //지그 11번 용접수행 여부 PLC_USE_WELD_JIG_12Addr = (int)eBitInput.PLC_USE_WELD_JIG_12; //지그 12번 용접수행 여부 PLC_USE_WELD_JIG_13Addr = (int)eBitInput.PLC_USE_WELD_JIG_13; //지그 13번 용접수행 여부 PLC_USE_WELD_JIG_14Addr = (int)eBitInput.PLC_USE_WELD_JIG_14; //지그 14번 용접수행 여부 PLC_USE_WELD_JIG_15Addr = (int)eBitInput.PLC_USE_WELD_JIG_15; //지그 15번 용접수행 여부 PLC_USE_WELD_JIG_16Addr = (int)eBitInput.PLC_USE_WELD_JIG_16; //지그 16번 용접수행 여부 PC_LIVE_STATUSAddr = (int)eBitOutput.PC_LIVE_STATUS; PC_AUTO_STATUSAddr = (int)eBitOutput.PC_AUTO_STATUS; //PC 자동운전 상태 PC_AUTO_COMPLETEAddr = (int)eBitOutput.PC_AUTO_COMPLETE; //PC 자동운전 변경 완료 PC_MANUAL_COMPLETEAddr = (int)eBitOutput.PC_MANUAL_COMPLETE; //PC 수동운전 변경 완료 PC_LIGHT_ALARM_STATUSAddr = (int)eBitOutput.PC_LIGHT_ALARM_STATUS; //PC 경알람 상태 PC_HEAVY_ALARM_STATUSAddr = (int)eBitOutput.PC_HEAVY_ALARM_STATUS; //PC 중알람 상태 PC_RECIPE_CHANGE_COMPLETEAddr = (int)eBitOutput.PC_RECIPE_CHANGE_COMPLETE; //PC 레시피 변경 완료 PC_LASER_READYAddr = (int)eBitOutput.PC_LASER_READY; //PC Laser Ready 상태 PC_LASER_ONAddr = (int)eBitOutput.PC_LASER_ON; PC_WELD_COMPLETE_1Addr = (int)eBitOutput.PC_WELD_COMPLETE_1; //지그 1번 용접완료 여부 PC_WELD_COMPLETE_2Addr = (int)eBitOutput.PC_WELD_COMPLETE_2; //지그 2번 용접완료 여부 PC_WELD_COMPLETE_3ADdr = (int)eBitOutput.PC_WELD_COMPLETE_3; //지그 3번 용접완료 여부 PC_WELD_COMPLETE_4Addr = (int)eBitOutput.PC_WELD_COMPLETE_4; //지그 4번 용접완료 여부 PC_WELD_COMPLETE_5Addr = (int)eBitOutput.PC_WELD_COMPLETE_5; //지그 5번 용접완료 여부 PC_WELD_COMPLETE_6Addr = (int)eBitOutput.PC_WELD_COMPLETE_6; //지그 6번 용접완료 여부 PC_WELD_COMPLETE_7Addr = (int)eBitOutput.PC_WELD_COMPLETE_7; //지그 7번 용접완료 여부 PC_WELD_COMPLETE_8Addr = (int)eBitOutput.PC_WELD_COMPLETE_8; //지그 8번 용접완료 여부 PC_WELD_COMPLETE_9Addr = (int)eBitOutput.PC_WELD_COMPLETE_9; //지그 9번 용접완료 여부 PC_WELD_COMPLETE_10Addr = (int)eBitOutput.PC_WELD_COMPLETE_10; //지그 10번 용접완료 여부 PC_WELD_COMPLETE_11Addr = (int)eBitOutput.PC_WELD_COMPLETE_11; //지그 11번 용접완료 여부 PC_WELD_COMPLETE_12Addr = (int)eBitOutput.PC_WELD_COMPLETE_12; //지그 12번 용접완료 여부 PC_WELD_COMPLETE_13Addr = (int)eBitOutput.PC_WELD_COMPLETE_13; //지그 13번 용접완료 여부 PC_WELD_COMPLETE_14Addr = (int)eBitOutput.PC_WELD_COMPLETE_14; //지그 14번 용접완료 여부 PC_WELD_COMPLETE_15Addr = (int)eBitOutput.PC_WELD_COMPLETE_15; //지그 15번 용접완료 여부 PC_WELD_COMPLETE_16Addr = (int)eBitOutput.PC_WELD_COMPLETE_16; //지그 16번 용접완료 여부 } public double ReadDWordByDivision(eWordInput input) { var result = ReadDWord((int)input); if (result.err != E1.OK) { // 로그 에러 넣기 //Log.E("Error While Reading Double Word Division {0}", result.err.ToString()); } double divisionIndex = ConvertTo2WordDivisionIndex(input.ToString()); return (result.data / (double)divisionIndex); } public int ConvertTo2WordDivisionIndex(string id) { if (id.Contains("RECIPE") || id.Contains("RAMPING_START_POWER") || id.Contains("RAMPING_START_A_POWER") || id.Contains("RAMPING_START_B_POWER") || id.Contains("RAMPING_END_POWER") || id.Contains("DELAY")) return 1; else if (id.Contains("LASER_POWER") || id.Contains("SPEED")) return 10; else return 1000; } } }