diff --git a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj index c8b1873f..005db73c 100644 --- a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj +++ b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj @@ -500,6 +500,12 @@ Always + + Always + + + Always + Always diff --git a/IOB-WIN-NEXT/Iob/Generic.cs b/IOB-WIN-NEXT/Iob/Generic.cs index ec122dfc..705b1a0b 100644 --- a/IOB-WIN-NEXT/Iob/Generic.cs +++ b/IOB-WIN-NEXT/Iob/Generic.cs @@ -3257,7 +3257,7 @@ namespace IOB_WIN_NEXT.Iob { outVal = new Dictionary(); } - bool scaduto = stackVal_TSVC(chiave, valore); + bool scaduto = stackVal_TSVC(chiave, valore, DateTime.Now); // recupero VC valore = getVal_TSVC(chiave, scaduto); @@ -3605,7 +3605,7 @@ namespace IOB_WIN_NEXT.Iob /// Nome della VC /// Valore (nuovo) delal VC /// - public bool stackVal_TSVC(string VCName, double VCVal) + public bool stackVal_TSVC(string VCName, double VCVal, DateTime dtLimit) { bool answ = false; // cerco VC... @@ -3613,10 +3613,11 @@ namespace IOB_WIN_NEXT.Iob { TSVC_Data[VCName].dataArray.Add(VCVal); // ora verifico scadenza... - if (TSVC_Data[VCName].DTStart.AddSeconds(TSVC_Data[VCName].Period) < DateTime.Now) + if (TSVC_Data[VCName].DTStart.AddSeconds(TSVC_Data[VCName].Period) < dtLimit) { answ = true; } + lgTrace($"stackVal_TSVC | {VCName} | {VCVal} | scaduta: {answ}"); } return answ; } diff --git a/IOB-WIN-NEXT/IobNet/Ftp.cs b/IOB-WIN-NEXT/IobNet/Ftp.cs index a73e5c8b..2e747c15 100644 --- a/IOB-WIN-NEXT/IobNet/Ftp.cs +++ b/IOB-WIN-NEXT/IobNet/Ftp.cs @@ -114,6 +114,7 @@ namespace IOB_WIN_NEXT.IobNet string newDir = ""; bool taskOk = false; string taskVal = ""; + string fNameOdl = "ODL_ATTIVO.txt"; // cerco task specifici: se ho startSetup --> imposto bit DBB701.DBB0.4 foreach (var item in task2exe) { @@ -171,36 +172,52 @@ namespace IOB_WIN_NEXT.IobNet case taskType.startSetup: case taskType.stopSetup: - // scrivo file ultima richiesta setup - string fName = $"{item.Key}.txt"; - string basePath = System.Windows.Forms.Application.StartupPath; - string tempDir = Path.Combine(basePath, "temp"); - string locFile = Path.Combine(tempDir, fName); - string remFile = $"{RemoteBaseDir}/{fName}"; - // creo file locale - File.WriteAllText(locFile, item.Value); - // creo file temp x invio - currActParam.Add("LocalFile", locFile); - currActParam.Add("RemoteFile", remFile); - currAct = new ActionConfig() + // verifico di avere già un ODL corrente... + if (currIdxODL == 0) { - Id = "01", - Description = "Upload File", - Action = ActType.UploadFile, - ParamList = currActParam - }; - // eseguo step... - taskOk = doStep(currAct); - if (taskOk) - { - taskVal = $"File uploaded: {item.Key} --> {item.Value} | locFile: {locFile} | remFile: {remFile}"; + lgTrace($"Manca ODL corrente: non procedo con impostazione start/stop setup"); } else { - lgError($"Error in startSetup | fileUpload | locFile: {locFile} | remFile: {remFile}"); + string odlFolder = $"ODL{currIdxODL:00000000}"; + // scrivo file ultima richiesta setup + string fName = $"{item.Key}.txt"; + string basePath = System.Windows.Forms.Application.StartupPath; + string tempDir = Path.Combine(basePath, "temp"); + string locFile = Path.Combine(tempDir, fName); + // salva col nome FISSO di ODL_CORRENTE + string remFile = $"{RemoteBaseDir}/{odlFolder}/{fNameOdl}"; + //string remFile = $"{RemoteBaseDir}/{odlFolder}/{fName}"; + // creo file locale + File.WriteAllText(locFile, item.Value); + // creo file temp x invio + currActParam.Add("LocalFile", locFile); + currActParam.Add("RemoteFile", remFile); + currAct = new ActionConfig() + { + Id = "01", + Description = "Upload File", + Action = ActType.UploadFile, + ParamList = currActParam + }; + // eseguo step... + taskOk = doStep(currAct); + if (taskOk) + { + taskVal = $"File uploaded: {item.Key} --> {item.Value} | locFile: {locFile} | remFile: {remFile}"; + } + else + { + lgError($"Error in startSetup | fileUpload | locFile: {locFile} | remFile: {remFile}"); + } } break; + case taskType.endProd: + // cerco tutti i file dell'odl arttivo e li elimino + + break; + default: taskVal = $"taskReq: {tName} | key: {item.Key} | val: {item.Value} | SKIPPED | NO EXEC"; lgInfo($"Chiamata senza processing: taskOk: {taskOk} | taskVal: {taskVal}"); diff --git a/IOB-WIN-NEXT/IobSiemens/SiemensAprochim.cs b/IOB-WIN-NEXT/IobSiemens/SiemensAprochim.cs index ef96ac77..ed507845 100644 --- a/IOB-WIN-NEXT/IobSiemens/SiemensAprochim.cs +++ b/IOB-WIN-NEXT/IobSiemens/SiemensAprochim.cs @@ -99,10 +99,11 @@ namespace IOB_WIN_NEXT.IobSiemens if (utils.CRB("enableTSVC")) { + DateTime adesso = DateTime.Now; // salvo in stack le VC rilevate - bool scad01 = stackVal_TSVC("pressCamFilt", pressCamFilt); - bool scad02 = stackVal_TSVC("pressLinUt", pressLinUt); - bool scad03 = stackVal_TSVC("tempH2O", tempH2O); + bool scad01 = stackVal_TSVC("pressCamFilt", pressCamFilt, adesso); + bool scad02 = stackVal_TSVC("pressLinUt", pressLinUt, adesso); + bool scad03 = stackVal_TSVC("tempH2O", tempH2O, adesso); // verifico SE devo riportare dati VC if (scad01 || scad02 || scad03) diff --git a/IOB-WIN-NEXT/IobSiemens/SiemensLasco.cs b/IOB-WIN-NEXT/IobSiemens/SiemensLasco.cs index 996b2931..a4a39b56 100644 --- a/IOB-WIN-NEXT/IobSiemens/SiemensLasco.cs +++ b/IOB-WIN-NEXT/IobSiemens/SiemensLasco.cs @@ -352,10 +352,18 @@ namespace IOB_WIN_NEXT.IobSiemens /// public override Dictionary getDynData() { - bool disableDynData = (getOptPar("DISABLE_DYN_DATA") == "TRUE"); + bool disableDynData = true; Dictionary outVal = new Dictionary(); // processing try + { + disableDynData = (getOptPar("DISABLE_DYN_DATA") == "TRUE"); + } + catch (Exception exc) + { + lgError(exc, "Errore in getOptPar x DISABLE_DYN_DATA"); + } + try { // le 3 posizioni sono in 1/10 mm x cui vanno divise x 10... x avere MM double RamPosition = S7.Net.Types.Int.FromByteArray(RawInput.Skip(18).Take(2).ToArray()) / 10; @@ -380,44 +388,64 @@ namespace IOB_WIN_NEXT.IobSiemens if (utils.CRB("enableTSVC")) { + // per sicurezza prendo 1 sec avanti così da prendere tutti i valori insieme + DateTime adesso = DateTime.Now.AddSeconds(1); bool[] scaduti = new bool[16]; // salvo in stack le VC rilevate - scaduti[0] = stackVal_TSVC("RamPosition", RamPosition); - scaduti[1] = stackVal_TSVC("LowerEjectorPosition", LowerEjectorPosition); - scaduti[2] = stackVal_TSVC("UpperTool", UpperTool); - scaduti[3] = stackVal_TSVC("TempMainMotorU", TempMainMotorU); - scaduti[4] = stackVal_TSVC("TempMainMotorV", TempMainMotorV); - scaduti[5] = stackVal_TSVC("TempMainMotorW", TempMainMotorW); - scaduti[6] = stackVal_TSVC("TempSpindleNut", TempSpindleNut); - scaduti[7] = stackVal_TSVC("TempMotoModule", TempMotoModule); - scaduti[8] = stackVal_TSVC("TempOilCirculation", TempOilCirculation); - scaduti[9] = stackVal_TSVC("TempHydraulicUnit", TempHydraulicUnit); - scaduti[10] = stackVal_TSVC("PressHydraulicPump", PressHydraulicPump); - scaduti[11] = stackVal_TSVC("PressHydraulicAccumulator", PressHydraulicAccumulator); - scaduti[12] = stackVal_TSVC("PressCounterforceOil", PressCounterforceOil); - scaduti[13] = stackVal_TSVC("PressCounterforceGas", PressCounterforceGas); - scaduti[14] = stackVal_TSVC("ForcePressureActual", ForcePressureActual); - scaduti[15] = stackVal_TSVC("ForceOnBushing", ForceOnBushing); + scaduti[0] = stackVal_TSVC("RamPosition", RamPosition, adesso); + scaduti[1] = stackVal_TSVC("LowerEjectorPosition", LowerEjectorPosition, adesso); + scaduti[2] = stackVal_TSVC("UpperTool", UpperTool, adesso); + scaduti[3] = stackVal_TSVC("TempMainMotorU", TempMainMotorU, adesso); + scaduti[4] = stackVal_TSVC("TempMainMotorV", TempMainMotorV, adesso); + scaduti[5] = stackVal_TSVC("TempMainMotorW", TempMainMotorW, adesso); + scaduti[6] = stackVal_TSVC("TempSpindleNut", TempSpindleNut, adesso); + scaduti[7] = stackVal_TSVC("TempMotoModule", TempMotoModule, adesso); + scaduti[8] = stackVal_TSVC("TempOilCirculation", TempOilCirculation, adesso); + scaduti[9] = stackVal_TSVC("TempHydraulicUnit", TempHydraulicUnit, adesso); + scaduti[10] = stackVal_TSVC("PressHydraulicPump", PressHydraulicPump, adesso); + scaduti[11] = stackVal_TSVC("PressHydraulicAccumulator", PressHydraulicAccumulator, adesso); + scaduti[12] = stackVal_TSVC("PressCounterforceOil", PressCounterforceOil, adesso); + scaduti[13] = stackVal_TSVC("PressCounterforceGas", PressCounterforceGas, adesso); + scaduti[14] = stackVal_TSVC("ForcePressureActual", ForcePressureActual, adesso); + scaduti[15] = stackVal_TSVC("ForceOnBushing", ForceOnBushing, adesso); // verifico SE devo riportare dati VC if (baseUtils.CountTrue(scaduti) > 0) { - RamPosition = getVal_TSVC_int("RamPosition", scaduti[0]); - LowerEjectorPosition = getVal_TSVC_int("LowerEjectorPosition", scaduti[1]); - UpperTool = getVal_TSVC_int("UpperTool", scaduti[2]); - TempMainMotorU = getVal_TSVC_int("TempMainMotorU", scaduti[3]); - TempMainMotorV = getVal_TSVC_int("TempMainMotorV", scaduti[4]); - TempMainMotorW = getVal_TSVC_int("TempMainMotorW", scaduti[5]); - TempSpindleNut = getVal_TSVC_int("TempSpindleNut", scaduti[6]); - TempMotoModule = getVal_TSVC_int("TempMotoModule", scaduti[7]); - TempOilCirculation = getVal_TSVC_int("TempOilCirculation", scaduti[8]); - TempHydraulicUnit = getVal_TSVC_int("TempHydraulicUnit", scaduti[9]); - PressHydraulicPump = getVal_TSVC_int("PressHydraulicPump", scaduti[10]); - PressHydraulicAccumulator = getVal_TSVC_int("PressHydraulicAccumulator", scaduti[11]); - PressCounterforceOil = getVal_TSVC_int("PressCounterforceOil", scaduti[12]); - PressCounterforceGas = getVal_TSVC_int("PressCounterforceGas", scaduti[13]); - ForcePressureActual = getVal_TSVC_int("ForcePressureActual", scaduti[14]); - ForceOnBushing = getVal_TSVC_int("ForceOnBushing", scaduti[15]); + RamPosition = (int)getVal_TSVC("RamPosition", scaduti[0]); + LowerEjectorPosition = (int)getVal_TSVC("LowerEjectorPosition", scaduti[1]); + UpperTool = (int)getVal_TSVC("UpperTool", scaduti[2]); + TempMainMotorU = (int)getVal_TSVC("TempMainMotorU", scaduti[3]); + TempMainMotorV = (int)getVal_TSVC("TempMainMotorV", scaduti[4]); + TempMainMotorW = (int)getVal_TSVC("TempMainMotorW", scaduti[5]); + TempSpindleNut = (int)getVal_TSVC("TempSpindleNut", scaduti[6]); + TempMotoModule = (int)getVal_TSVC("TempMotoModule", scaduti[7]); + TempOilCirculation = (int)getVal_TSVC("TempOilCirculation", scaduti[8]); + TempHydraulicUnit = (int)getVal_TSVC("TempHydraulicUnit", scaduti[9]); + PressHydraulicPump = (int)getVal_TSVC("PressHydraulicPump", scaduti[10]); + PressHydraulicAccumulator = (int)getVal_TSVC("PressHydraulicAccumulator", scaduti[11]); + PressCounterforceOil = (int)getVal_TSVC("PressCounterforceOil", scaduti[12]); + PressCounterforceGas = (int)getVal_TSVC("PressCounterforceGas", scaduti[13]); + ForcePressureActual = (int)getVal_TSVC("ForcePressureActual", scaduti[14]); + ForceOnBushing = (int)getVal_TSVC("ForceOnBushing", scaduti[15]); + + //vecchia gestione valori INT + //RamPosition = getVal_TSVC_int("RamPosition", scaduti[0]); + //LowerEjectorPosition = getVal_TSVC_int("LowerEjectorPosition", scaduti[1]); + //UpperTool = getVal_TSVC_int("UpperTool", scaduti[2]); + //TempMainMotorU = getVal_TSVC_int("TempMainMotorU", scaduti[3]); + //TempMainMotorV = getVal_TSVC_int("TempMainMotorV", scaduti[4]); + //TempMainMotorW = getVal_TSVC_int("TempMainMotorW", scaduti[5]); + //TempSpindleNut = getVal_TSVC_int("TempSpindleNut", scaduti[6]); + //TempMotoModule = getVal_TSVC_int("TempMotoModule", scaduti[7]); + //TempOilCirculation = getVal_TSVC_int("TempOilCirculation", scaduti[8]); + //TempHydraulicUnit = getVal_TSVC_int("TempHydraulicUnit", scaduti[9]); + //PressHydraulicPump = getVal_TSVC_int("PressHydraulicPump", scaduti[10]); + //PressHydraulicAccumulator = getVal_TSVC_int("PressHydraulicAccumulator", scaduti[11]); + //PressCounterforceOil = getVal_TSVC_int("PressCounterforceOil", scaduti[12]); + //PressCounterforceGas = getVal_TSVC_int("PressCounterforceGas", scaduti[13]); + //ForcePressureActual = getVal_TSVC_int("ForcePressureActual", scaduti[14]); + //ForceOnBushing = getVal_TSVC_int("ForceOnBushing", scaduti[15]); outVal.Add("RamPosition", $"{RamPosition:N1}"); outVal.Add("LowerEjectorPosition", $"{LowerEjectorPosition:N1}"); @@ -474,7 +502,7 @@ namespace IOB_WIN_NEXT.IobSiemens } catch (Exception exc) { - lgError(exc, "Errore in getDynData x Siemens Aprochim"); + lgError(exc, "Errore in getDynData x Siemens LASCO"); } return outVal; }