158 lines
6.5 KiB
C#
158 lines
6.5 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|