diff --git a/IOB-WIN/IobFanuc.cs b/IOB-WIN/IobFanuc.cs index acab6a16..bd6b6bc0 100644 --- a/IOB-WIN/IobFanuc.cs +++ b/IOB-WIN/IobFanuc.cs @@ -12,6 +12,7 @@ namespace IOB_WIN { protected byte[] MemBlockF = new byte[2]; + protected byte[] MemBlockG = new byte[44]; protected byte[] MemBlockF_pre = new byte[2]; /// /// wrapper chiamata lettura/scrittura SINGOLO BYTE... @@ -364,20 +365,25 @@ namespace IOB_WIN } } } - + /// + /// Esegue processing MODE (e nel contempo recupera altri dati dell'area G) + /// public override void processMode() { if (utils.CRB("enableMode")) { try { + //int memIndex = 43; + //byte[] MemBlock = new byte[1]; + //FanucMemRW(R, FANUC.MemType.G, memIndex, ref MemBlock); inizio = DateTime.Now; - int memIndex = 43; - byte[] MemBlock = new byte[1]; - FanucMemRW(R, FANUC.MemType.G, memIndex, ref MemBlock); - if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-G43", MemBlock.Length), DateTime.Now.Subtract(inizio).Ticks); + // leggo tutto da 1 a 43... + int memIndex = 1; + FanucMemRW(R, FANUC.MemType.G, memIndex, ref MemBlockG); + if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-G-AREA", MemBlockG.Length), DateTime.Now.Subtract(inizio).Ticks); // verifico modo con valore corrente, se cambia aggiorno... - CNC_MODE newMode = decodeG43(MemBlock[0]); + CNC_MODE newMode = decodeG43(MemBlockG[43]); if (newMode != currMode) { // aggiorno! @@ -485,12 +491,13 @@ namespace IOB_WIN return outVal; } /// - /// Recupero dati override + /// Recupero dati override (da area G che è già stata letta...) /// /// public override Dictionary getOverrides() { Dictionary outVal = new Dictionary(); +#if false inizio = DateTime.Now; // leggo da G0 a G30 perché DOVREBBE contenere tutto quanto mi serve: G12 FeedOver, G30 SpeedOver... try @@ -514,7 +521,10 @@ namespace IOB_WIN catch (Exception exc) { lg.Error(exc, "Errore in getOverrides"); - } + } +#endif + outVal.Add("FEED_OVER", MemBlockG[30].ToString()); + outVal.Add("RAPID_OVER", MemBlockG[12].ToString()); return outVal; } diff --git a/IOB-WIN/IobGeneric.cs b/IOB-WIN/IobGeneric.cs index b90ea734..5d07b1b5 100644 --- a/IOB-WIN/IobGeneric.cs +++ b/IOB-WIN/IobGeneric.cs @@ -155,7 +155,11 @@ namespace IOB_WIN /// /// Ultimo Override set letto /// - public string lastOverride { get; set; } + public string lastOverrideFS { get; set; } + /// + /// Ultimo Override set letto + /// + public string lastOverrideRapid { get; set; } /// /// Array dei contatori x segnali blinking @@ -418,16 +422,16 @@ namespace IOB_WIN else if (ciclo == gatherCycle.MF) { processMode(); + processOverride(); } else if (ciclo == gatherCycle.LF) { processContapezzi(); processProgram(); - processDynData(); - processOverride(); } else if (ciclo == gatherCycle.VLF) { + processDynData(); // recupero dati SETUP (sysinfo) e li invio/mostro se variati... processSysInfo(); // se richiesto faccio salvataggio aree memorie @@ -1630,13 +1634,14 @@ namespace IOB_WIN } else { - currOverride.Add("OVERRIDES", string.Format("D-{0:HHmm}", DateTime.Now)); + currOverride.Add("FEED_OVER", string.Format("D-{0:HHmm}", DateTime.Now)); } // verifico SE sia cambiato il programma... - if (lastOverride != currOverride["OVERRIDES"]) + if (lastOverrideFS != currOverride["FEED_OVER"] || lastOverrideRapid != currOverride["RAPID_OVER"]) { // salvo! - lastOverride = currOverride["OVERRIDES"]; + lastOverrideFS = currOverride["FEED_OVER"]; + lastOverrideRapid = currOverride["RAPID_OVER"]; // per ogni valore del dizionario mostro ed accodo! string sVal = ""; foreach (var item in currOverride)