From 424a39f76dd7a2acb486d3de96ae9d381415924e Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Mon, 9 May 2016 15:11:10 +0200 Subject: [PATCH] Aggiunta decodifica allarmi... --- MTC_Sim/.vs/MTC_Sim/v14/.suo | Bin 164352 -> 165888 bytes MTC_Sim/MTC_Sim/AdapterFanuc.cs | 50 +++++++++++++++++++++++------- MTC_Sim/MTC_Sim/AdapterGeneric.cs | 13 ++------ MTC_Sim/MTC_Sim/utils.cs | 6 ++-- 4 files changed, 43 insertions(+), 26 deletions(-) diff --git a/MTC_Sim/.vs/MTC_Sim/v14/.suo b/MTC_Sim/.vs/MTC_Sim/v14/.suo index 2e060d62a22502e00ca5a79378f9ea5a8881e8de..069c6d639d8c85b3e4ec28b7f2f9e1573d0555b4 100644 GIT binary patch delta 7573 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 WcaCF);{Vo38pND%@@sjF>HZxL6?^Fb diff --git a/MTC_Sim/MTC_Sim/AdapterFanuc.cs b/MTC_Sim/MTC_Sim/AdapterFanuc.cs index 46b9017..4c66128 100644 --- a/MTC_Sim/MTC_Sim/AdapterFanuc.cs +++ b/MTC_Sim/MTC_Sim/AdapterFanuc.cs @@ -28,7 +28,7 @@ namespace MTC_Sim string szStatusConnection = ""; FANUC_ref.Connect(ref szStatusConnection); - + } /// /// Effettuo lettura dei 16 byte di strobe/status @@ -36,11 +36,11 @@ namespace MTC_Sim public override void getStrobeStatus() { base.getStrobeStatus(); - + // se non sono connesso esco if (!FANUC_ref.Connected) return; - // hard coded: leggo 16 word R10516--> R10532 + // hard coded: leggo le 16 word standard dello strobe... R10516--> R10532 FANUC_ref.F_RW_Byte(R, FANUC.MemType.R, 10516, ref Strobes); } /// @@ -56,17 +56,43 @@ namespace MTC_Sim { base.processAlarm(); // controllo TUTTI i flag: se ce ne sono di alzati DEVO processare... - if(STRB_DW0 != StFlag32.NONE) + if (STRB_DW0 != StFlag32.NONE) { + // blocco memoria x lettura dati + byte[] MemBlock = new byte[4]; + StFlag32 AlarmBlock = 0; + allarme currAllarm; + // primo blocco memoria allarmi + int memIndex = 10532; // verifico gli allarmi di tutti i bit alzati... for (int i = 0; i < 32; i++) { - StFlag32 AlarmsBlock = 0; if (STRB_DW0.getBit(i)) { - // recuper tutti i 32 bit del blocco - - // e aggiungo allarmi sollevati... + // recupero tutti i 32 bit del blocco + FANUC_ref.F_RW_Byte(R, FANUC.MemType.R, memIndex + i * 4, ref MemBlock); + AlarmBlock = (StFlag32)BitConverter.ToUInt32(MemBlock, 0); + for (int j = 0; j < 32; j++) + { + // converto! + // e aggiungo allarmi sollevati al corretto controller allarmi... + if (AlarmBlock.getBit(j)) + { + // recupero allarme da oggetto in memoria... + currAllarm= elencoAllarmi[i * 32 + j]; + // in base al gruppo decido dove assegnare come CONDITION... + switch(currAllarm.gruppo) + { + case "PLC": + mAlarmPLC.Add(MTConnect.Condition.Level.FAULT, currAllarm.descrizione, currAllarm.codNum, "", ""); + break; + case "CNC": + default: + mAlarmCNC.Add(MTConnect.Condition.Level.FAULT, currAllarm.descrizione, currAllarm.codNum, "", ""); + break; + } + } + } } } } @@ -81,7 +107,7 @@ namespace MTC_Sim // update status da DW3 // EMstop: verifico BIT e di conseguenza imposto - if(STRB_DW3.HasFlag(StFlag32.B00)) + if (STRB_DW3.HasFlag(StFlag32.B00)) { mEStop.Value = "TRIGGERED"; } @@ -144,7 +170,7 @@ namespace MTC_Sim vettPath[idxPath].mPathType.Value = "ASSERV"; } - + #if false @@ -214,7 +240,7 @@ namespace MTC_Sim // HARD CODE: forzo path 1 (indice 0...) int idxPath = 0; - + // IPOTESI DA VERIFICARE!!! // leggo primo byte, i cui bit indicano run mode (3450.0 --> 3450.7) @@ -292,6 +318,6 @@ namespace MTC_Sim Status8.Has(StFlag32.B18); #endif } - + } } diff --git a/MTC_Sim/MTC_Sim/AdapterGeneric.cs b/MTC_Sim/MTC_Sim/AdapterGeneric.cs index df909f2..ac22fb9 100644 --- a/MTC_Sim/MTC_Sim/AdapterGeneric.cs +++ b/MTC_Sim/MTC_Sim/AdapterGeneric.cs @@ -873,14 +873,7 @@ namespace MTC_Sim protected allarme decodeAlarmLine(string linea, char separator) { string[] valori = linea.Split(separator); - int num = 0; - try - { - num = Convert.ToInt32(valori[0]); - } - catch - { } - return new allarme(num, valori[1], valori[2], valori[3]); + return new allarme(valori[0], valori[1], valori[2], valori[3]); } #region metodi adapter @@ -944,11 +937,9 @@ namespace MTC_Sim } else if (ciclo == gatherCycle.MF) { - // leggo parametri a media freq (path, assi) + // leggo parametri a media freq (path, assi, Unità Operatrice) getPath(); - getUnOp(); - getAxis(); } else diff --git a/MTC_Sim/MTC_Sim/utils.cs b/MTC_Sim/MTC_Sim/utils.cs index 029f41e..9001086 100644 --- a/MTC_Sim/MTC_Sim/utils.cs +++ b/MTC_Sim/MTC_Sim/utils.cs @@ -254,18 +254,18 @@ namespace MTC_Sim /// public class allarme { - public int codNum; + public string codNum; public string gruppo; public string livello; public string descrizione; public allarme() { - codNum = 0; + codNum = ""; gruppo = ""; livello = ""; descrizione = ""; } - public allarme(int _codNum, string _gruppo, string _livello, string _descrizione) + public allarme(string _codNum, string _gruppo, string _livello, string _descrizione) { codNum = _codNum; gruppo = _gruppo;