- Aggiunta tracelog x gestione TSVC in accumulo dati e debug
- gestione calcolo TSVC generale anche x lasco (NON int specifica)
This commit is contained in:
Samuele Locatelli
2024-10-08 15:20:46 +02:00
parent 01cc0ae711
commit 485e036126
5 changed files with 116 additions and 63 deletions
+6
View File
@@ -500,6 +500,12 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\GIACO_CENTERFRIGO_MBlock_all.json" />
<None Include="DATA\CONF\FTP_SONATEST.ini">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\FTP_SONATEST.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\IMI_SONATEST.ini">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
+4 -3
View File
@@ -3257,7 +3257,7 @@ namespace IOB_WIN_NEXT.Iob
{
outVal = new Dictionary<string, string>();
}
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
/// <param name="VCName">Nome della VC</param>
/// <param name="VCVal">Valore (nuovo) delal VC</param>
/// <returns></returns>
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;
}
+40 -23
View File
@@ -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}");
+4 -3
View File
@@ -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)
+62 -34
View File
@@ -352,10 +352,18 @@ namespace IOB_WIN_NEXT.IobSiemens
/// <returns></returns>
public override Dictionary<string, string> getDynData()
{
bool disableDynData = (getOptPar("DISABLE_DYN_DATA") == "TRUE");
bool disableDynData = true;
Dictionary<string, string> outVal = new Dictionary<string, string>();
// 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;
}