using AuroraPLC; using Hermes; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WeldingCommon.Devices; namespace ILSOS_KS.Device { partial class PLCControllerKS { bool isOn = false; void Callback(Object state) { //Timer Start 찾음.주석처리. if (!IsSimul && IsActivated) { if (isOn) { WriteBit((int)eBitOutput.PC_LIVE_STATUS, true); } else { WriteBit((int)eBitOutput.PC_LIVE_STATUS, false); } } isOn = !isOn; } 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_NOAddr = (int)eWordInput.PLC_RECIPE_NO; PLCLiveStatusAddr = (int)eBitInput.PLC_LIVE_STATUS; PLCEMOStatusAddr = (int)eBitInput.PLC_EMO_STATUS; 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 레시피 변경 완료 } 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()); } int divisionIndex = ConvertTo2WordDivisionIndex(input); return (double)(result.data / divisionIndex); } public int ConvertTo2WordDivisionIndex(eWordInput input) { var id = input.ToString(); if (id.Contains("RAMPING_START_POWER") || id.Contains("RAMPING_END_POWER") || id.Contains("NUM") || id.Contains("TIME")) return 1; else if (id.Contains("SPEED") || id.Contains("POWER_CORE") || id.Contains("POWER_RING")) return 10; //else if (id.Contains("POWER_CORE") || id.Contains("POWER_RING")) // return 100; else// if (id.Contains("DIST")) return 1000; //if (id == "PLC_HOR_WELDING_RECIPE_NUM1" || // id == "PLC_VER_WELDING_MAIN_POWER_CORE1" || // id == "PLC_VER_WELDING_MAIN_POWER_RING1" || // id == "PLC_VER_WELDING_MAIN_RAMPING_START_POWER1" || // id == "PLC_VER_WELDING_MAIN_RAMPING_END_POWER1" || // id == "PLC_VER_WELDING_SUB_POWER_CORE1" || // id == "PLC_VER_WELDING_SUB_POWER_RING1" || // id == "PLC_VER_WELDING_RECIPE_NUM1" || // id == "PLC_HOR_WELDING_MAIN_POWER_CORE1" || // id == "PLC_HOR_WELDING_MAIN_POWER_RING1" || // id == "PC_HOR_WELDING_RECIPE_NUM1" || // id == "PC_HOR_WELDING_MAIN_POWER_CORE1" || // id == "PC_HOR_WELDING_MAIN_POWER_RING1" || // id == "PC_VER_WELDING_RECIPE_NUM1" || // id == "PC_VER_WELDING_MAIN_POWER_CORE1" || // id == "PC_VER_WELDING_MAIN_POWER_RING1" || // id == "PC_VER_WELDING_SUB_POWER_CORE1" || // id == "PC_VER_WELDING_SUB_POWER_RING1" || // id == "PC_VER_WELDING_MAIN_RAMPING_START_POWER1"|| // id == "PC_VER_WELDING_MAIN_RAMPING_END_POWER1" // ) // return true; //else // return false; } public int ConvertTo2WordDivisionIndex(eWordOutput input) { var id = input.ToString(); if (id.Contains("RAMPING_START_POWER") || id.Contains("RAMPING_END_POWER") || id.Contains("NUM") || id.Contains("TIME")) return 1; else if (id.Contains("SPEED") || id.Contains("POWER_CORE") || id.Contains("POWER_RING")) return 10; //else if (id.Contains("POWER_CORE") || id.Contains("POWER_RING")) // return 100; else// if (id.Contains("DIST")) return 1000; //if (id == "PLC_HOR_WELDING_RECIPE_NUM1" || // id == "PLC_VER_WELDING_MAIN_POWER_CORE1" || // id == "PLC_VER_WELDING_MAIN_POWER_RING1" || // id == "PLC_VER_WELDING_MAIN_RAMPING_START_POWER1" || // id == "PLC_VER_WELDING_MAIN_RAMPING_END_POWER1" || // id == "PLC_VER_WELDING_SUB_POWER_CORE1" || // id == "PLC_VER_WELDING_SUB_POWER_RING1" || // id == "PLC_VER_WELDING_RECIPE_NUM1" || // id == "PLC_HOR_WELDING_MAIN_POWER_CORE1" || // id == "PLC_HOR_WELDING_MAIN_POWER_RING1" || // id == "PC_HOR_WELDING_RECIPE_NUM1" || // id == "PC_HOR_WELDING_MAIN_POWER_CORE1" || // id == "PC_HOR_WELDING_MAIN_POWER_RING1" || // id == "PC_VER_WELDING_RECIPE_NUM1" || // id == "PC_VER_WELDING_MAIN_POWER_CORE1" || // id == "PC_VER_WELDING_MAIN_POWER_RING1" || // id == "PC_VER_WELDING_SUB_POWER_CORE1" || // id == "PC_VER_WELDING_SUB_POWER_RING1" || // id == "PC_VER_WELDING_MAIN_RAMPING_START_POWER1"|| // id == "PC_VER_WELDING_MAIN_RAMPING_END_POWER1" // ) // return true; //else // return false; } public string GetBcrCode() { StringBuilder sb = new StringBuilder(); var bcrid = ReadWordBlock((int)eWordInput.PLC_BCR_ID, 16).data; foreach (var word in bcrid) sb.Append(Conv_ReadData(PLCBase.eDataType.Type_Ascii, word, 0, false, false)); return sb.ToString(); } } }