diff --git a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs index 998c7b7..2c3653b 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs @@ -692,69 +692,31 @@ namespace MTC_Adapter mEStop.Value = "ARMED"; } - // HARD CODE: forzo path 1 (indice 0...) - int idxPath = 0; - // switch su run mode... + // verifico POWER ON... if (STRB_DW2.HasFlag(StFlag32.B01)) { - vettPath[idxPath].mPathRunMode.Value = "AUTOMATIC"; + mPower.Value = "ON"; } - else if (STRB_DW2.HasFlag(StFlag32.B02)) + else { - vettPath[idxPath].mPathRunMode.Value = "EDIT"; - } - else if (STRB_DW2.HasFlag(StFlag32.B03)) - { - vettPath[idxPath].mPathRunMode.Value = "MANUAL_DATA_INPUT"; - } - else if (STRB_DW2.HasFlag(StFlag32.B04)) - { - vettPath[idxPath].mPathRunMode.Value = "MANUAL"; - } - else if (STRB_DW2.HasFlag(StFlag32.B05)) - { - vettPath[idxPath].mPathRunMode.Value = "MANUAL"; // "JOG"; - } - else if (STRB_DW2.HasFlag(StFlag32.B06)) - { - vettPath[idxPath].mPathRunMode.Value = "MANUAL"; //"JOGINC"; - } - else if (STRB_DW2.HasFlag(StFlag32.B07)) - { - vettPath[idxPath].mPathRunMode.Value = "MANUAL"; //"HANDLE"; + mPower.Value = "OFF"; } - // switch su EXE mode... - string exeMode = ""; - if (STRB_DW2.HasFlag(StFlag32.B08)) + // Processo selezionato 0=P1, 1=P2 + if (STRB_DW2.HasFlag(StFlag32.B02)) { - exeMode = "ACTIVE"; + mPower.Value = "P2"; } - else if (STRB_DW2.HasFlag(StFlag32.B09)) + else { - exeMode = "READY"; - } - else if (STRB_DW2.HasFlag(StFlag32.B10)) - { - exeMode = "STOPPED"; // "HOLD"; - } - else if (STRB_DW2.HasFlag(StFlag32.B11)) - { - exeMode = "FEED_HOLD"; // "FEEDHOLD"; - } - //// appunto: modi da creare - //INTERRUPTED(da creare) - //OPTIONAL_STOP(da creare) - //PROGRAM_STOPPED(da creare) - //PROGRAM_COMPLETED(da creare) - - if (vettPath[idxPath].mPathExeMode.Value.ToString() != exeMode) - { - vettPath[idxPath].mPathExeMode.Value = exeMode; + mPower.Value = "P1"; } - // verifico tipo path... - if (STRB_DW2.HasFlag(StFlag32.B12)) + // HARD CODE: forzo path 1 (indice 0...) + int idxPath = 0; + + // verifico tipo processo path... + if (STRB_DW2.HasFlag(StFlag32.B03)) { vettPath[idxPath].mPathType.Value = "LAVORO"; } @@ -763,15 +725,79 @@ namespace MTC_Adapter vettPath[idxPath].mPathType.Value = "ASSERV"; } - // verifico POWER ON... - if (STRB_DW2.HasFlag(StFlag32.B13)) + // switch su RUN mode... + string runMode = ""; + if (STRB_DW2.HasFlag(StFlag32.B04)) { - mPower.Value = "ON"; + runMode = "AUTOMATIC"; } - else + else if (STRB_DW2.HasFlag(StFlag32.B05)) { - mPower.Value = "OFF"; + runMode = "EDIT"; } + else if (STRB_DW2.HasFlag(StFlag32.B06)) + { + runMode = "MANUAL_DATA_INPUT"; + } + else if (STRB_DW2.HasFlag(StFlag32.B07)) + { + runMode = "MANUAL"; + } + else if (STRB_DW2.HasFlag(StFlag32.B08)) + { + runMode = "SEMI_AUTO"; + } + // salvo valore selezionato + if (vettPath[idxPath].mPathRunMode.Value.ToString() != runMode) + { + vettPath[idxPath].mPathRunMode.Value = runMode; + } + + //EsecuzioneRUN-- > "ACTIVE" + //EsecuzioneREADY-- > "READY" + //EsecuzioneSTOP-- > "STOPPED" + //EsecuzioneFEEDHOLD-- > "FEED_HOLD" + //EsecuzioneOSTOP-- > "OPTIONAL_STOP" + //EsecuzionePSTOP-- > "PROGRAM_STOPPED" + //EsecuzionePCOMP-- > "PROGRAM_COMPLETED" + + // switch su EXE mode... + string exeMode = ""; + if (STRB_DW2.HasFlag(StFlag32.B09)) + { + exeMode = "ACTIVE"; + } + else if (STRB_DW2.HasFlag(StFlag32.B10)) + { + exeMode = "READY"; + } + else if (STRB_DW2.HasFlag(StFlag32.B11)) + { + exeMode = "STOPPED"; + } + else if (STRB_DW2.HasFlag(StFlag32.B12)) + { + exeMode = "FEED_HOLD"; + } + else if (STRB_DW2.HasFlag(StFlag32.B13)) + { + exeMode = "OPTIONAL_STOP"; + } + else if (STRB_DW2.HasFlag(StFlag32.B14)) + { + exeMode = "PROGRAM_STOPPED"; + } + else if (STRB_DW2.HasFlag(StFlag32.B15)) + { + exeMode = "PROGRAM_COMPLETED"; + } + // salvo valore selezionato + if (vettPath[idxPath].mPathExeMode.Value.ToString() != exeMode) + { + vettPath[idxPath].mPathExeMode.Value = exeMode; + } + + // processo eventuali altri bit status non noti... string UnkStatus = ""; diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index 95217ab..1a2df8f 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -851,6 +851,10 @@ namespace MTC_Adapter /// public Event mPower = new Event("POWER"); /// + /// processo selezionato + /// + public Event mProcSel = new Event("PROC_SEL"); + /// /// ID operatore?!? /// public Event mOperator = new Event("OperatorId"); @@ -951,6 +955,7 @@ namespace MTC_Adapter mAdapter.AddDataItem(mAccTimeWork); mAdapter.AddDataItem(mClock); mAdapter.AddDataItem(mPower); + mAdapter.AddDataItem(mProcSel); mAdapter.AddDataItem(mEStop); // programma e produzione