diff --git a/IOB-WIN-NEXT/Iob/Fanuc.cs b/IOB-WIN-NEXT/Iob/Fanuc.cs index e01a983d..faa5715e 100644 --- a/IOB-WIN-NEXT/Iob/Fanuc.cs +++ b/IOB-WIN-NEXT/Iob/Fanuc.cs @@ -516,7 +516,7 @@ namespace IOB_WIN_NEXT.Iob { string actf = answ.actf.ToString(); string acts = answ.acts.ToString(); - //string numAlarm = answ.alarm.ToString(); + //string numAlarm = memAddr.alarm.ToString(); // preparo i singoli valori dell'array... //outVal.Add("DYNDATA", string.Format("{0}#{1}#{2}", actf, acts, numAlarm)); outVal.Add("DYNDATA", string.Format("FEED {0}#SPEED_RPM {1}", actf, acts)); @@ -618,7 +618,7 @@ namespace IOB_WIN_NEXT.Iob string series = new string(answ.series); string version = new string(answ.version); string axes = new string(answ.axes); - //short addInfo = answ.addinfo; + //short addInfo = memAddr.addinfo; short max_axis = answ.max_axis; // preparo i singoli valori dell'array... outVal.Add("SYSINFO", string.Format("{0}#{1}#{2}#{3}#{4}#{5}", cnc_type, mt_type, series, version, axes, max_axis)); @@ -845,6 +845,9 @@ namespace IOB_WIN_NEXT.Iob if (cIobConf.optPar.Count > 0) { string newVal = ""; + // rifare con gestione nuova memoria da Write/optPar... + + // controllo SE salvare contapezzo if (!string.IsNullOrEmpty(getOptPar("PZCOUNT_MODE"))) { @@ -1132,6 +1135,97 @@ namespace IOB_WIN_NEXT.Iob } } + private string memAddrArt + { + get + { + string memAddr = ""; + if (memMap != null && memMap.mMapWrite != null) + { + //cerco in primis modalità NUM altrimenti standard... + if (memMap.mMapWrite.ContainsKey("setArtNum")) + { + memAddr = memMap.mMapWrite["setArtNum"].memAddr; + } + // se vuoto provo altra alternativa... + if (string.IsNullOrEmpty(memAddr) && memMap.mMapWrite.ContainsKey("setArt")) + { + memAddr = memMap.mMapWrite["setArt"].memAddr; + } + } + // se non trovato... leggo da OPT_PAR + if (string.IsNullOrEmpty(memAddr)) + { + memAddr = getOptPar("SET_NUM_ART"); + } + // bonifica variabile da definizione STD iniziale... + if (memAddr.StartsWith("STD")) + { + memAddr = memAddr.Replace("STD.", ""); + } + return memAddr; + } + } + + private string memAddrCom + { + get + { + string memAddr = ""; + if (memMap != null && memMap.mMapWrite != null) + { + //cerco in primis modalità NUM altrimenti standard... + if (memMap.mMapWrite.ContainsKey("setCommNum")) + { + memAddr = memMap.mMapWrite["setCommNum"].memAddr; + } + // se vuoto provo altra alternativa... + if (string.IsNullOrEmpty(memAddr) && memMap.mMapWrite.ContainsKey("setComm")) + { + memAddr = memMap.mMapWrite["setComm"].memAddr; + } + } + // se non trovato... leggo da OPT_PAR + if (string.IsNullOrEmpty(memAddr)) + { + memAddr = getOptPar("SET_NUM_COM"); + } + // bonifica variabile da definizione STD iniziale... + if (memAddr.StartsWith("STD")) + { + memAddr = memAddr.Replace("STD.", ""); + } + return memAddr; + } + } + + private string memAddrPzReq + { + get + { + string memAddr = ""; + if (memMap != null && memMap.mMapWrite != null) + { + //cerco in primis modalità NUM altrimenti standard... + if (memMap.mMapWrite.ContainsKey("setPzComm")) + { + memAddr = memMap.mMapWrite["setPzComm"].memAddr; + } + } + // se non trovato... leggo da OPT_PAR + if (string.IsNullOrEmpty(memAddr)) + { + memAddr = getOptPar("PZREQ_MODE"); + } + // bonifica variabile da definizione STD iniziale... + if (memAddr.StartsWith("STD")) + { + memAddr = memAddr.Replace("STD.", ""); + } + return memAddr; + } + } + /// /// Effettua impostazione del valore numerico ARTICOLO (specifico FANUC) /// @@ -1139,14 +1233,8 @@ namespace IOB_WIN_NEXT.Iob public bool setNumArt(int valReq) { bool answ = false; - // verifico quale modalità sia richiesta - string memAddr = getOptPar("SET_NUM_ART"); - // bonifica variabile... DA SOSTITUIRE con variabili WRITE!!!! - if (memAddr.StartsWith("STD")) - { - // inizio verifica area memoria/parametro levando prima parte codice - memAddr = memAddr.Replace("STD.", ""); - } + string memAddr = memAddrArt; + lgTrace($"INIT setNumArt | memAddr: {memAddr}"); if (cIobConf.optPar.Count > 0 && !string.IsNullOrEmpty(memAddr)) { // scrivo valore richiesto in area configurata @@ -1193,13 +1281,8 @@ namespace IOB_WIN_NEXT.Iob { bool answ = false; // verifico quale modalità sia richiesta - string memAddr = getOptPar("SET_NUM_COM"); - // bonifica variabile... DA SOSTITUIRE con variabili WRITE!!!! - if (memAddr.StartsWith("STD")) - { - // inizio verifica area memoria/parametro levando prima parte codice - memAddr = memAddr.Replace("STD.", ""); - } + string memAddr = memAddrCom; + lgTrace($"INIT setNumCom | memAddr: {memAddr}"); if (cIobConf.optPar.Count > 0 && !string.IsNullOrEmpty(memAddr)) { lgTrace($"setNumCom | memAddr: {memAddr} | valReq: {valReq}"); @@ -1253,7 +1336,11 @@ namespace IOB_WIN_NEXT.Iob // scrivo valore 0 x il contapezzi try { - string memAddr = getOptPar("PZREQ_MODE"); +#if false + string memAddr = getOptPar("PZREQ_MODE"); +#endif + string memAddr = memAddrPzReq; + lgTrace($"INIT setPzComm | memAddr: {memAddr}"); // contapezzi ATTUALE if (!string.IsNullOrEmpty(memAddr)) {