Update x gestione PowerOn...

This commit is contained in:
Samuele E. Locatelli
2020-02-26 16:59:14 +01:00
parent 8fc373dc8d
commit 7a99fbb9f6
4 changed files with 75 additions and 60 deletions
+26
View File
@@ -28,6 +28,18 @@ namespace IOB_UT
/// Nome variabile x NOME PROGRAMMA
/// </summary>
public string keyProgName { get; set; } = "";
/// <summary>
/// Indica se il ping sia un criterio valido x determinare powerON impianto
/// </summary>
public bool pingAsPowerOn { get; set; } = true;
/// <summary>
/// Nome variabile x RunMode
/// </summary>
public string keyRunMode { get; set; } = "";
/// <summary>
/// Struttura dati x check condizione PowerOn
/// </summary>
public diCheckCondition condPowerOn { get; set; }
/// <summary>
/// Dictionary dei nomi da cercare come "endsWith" a cui applicare la soglia indicata
@@ -38,4 +50,18 @@ namespace IOB_UT
/// </summary>
public Dictionary<string, string> itemTranslation { get; set; }
}
/// <summary>
/// Classe per rappresentare oggetti chaive/valore target x controlo condizioni multiple
/// </summary>
public class diCheckCondition
{
/// <summary>
/// nome variabile
/// </summary>
public string keyName { get; set; } = "";
/// <summary>
/// valore target per esito richeisto
/// </summary>
public string targetValue { get; set; } = "";
}
}
+6
View File
@@ -3,6 +3,12 @@
"keyPartReq": "GD179N_p1_x58",
"keyPartId": "",
"keyProgName": "GD179N_p1_52",
"keyRunMode": "",
"pingAsPowerOn": false,
"condPowerOn": {
"keyName": "GD179N_dtop_2",
"targetValue": "AVAILABLE"
},
"itemTranslation": {
"E_GD179N_p1_48": "ExeMode",
"E_GD179N_p1_49": "ContrMode",
+6
View File
@@ -3,6 +3,12 @@
"keyPartReq": "",
"keyPartId": "Path_01_PartId",
"keyProgName": "Path_01_CurrProg",
"keyRunMode": "",
"pingAsPowerOn": true,
"condPowerOn": {
"keyName": "POWER",
"targetValue": "OK"
},
"paramsEndThresh": {
"PosAct": 50,
"PosTgt": 50,
+37 -60
View File
@@ -904,7 +904,26 @@ namespace IOB_WIN
processMemoryDiscon();
}
}
/// <summary>
/// Recupera uno specifico dataItem
/// </summary>
/// <param name="diKey"></param>
/// <returns></returns>
public string getDataItemValue(string diKey)
{
string answ = "";
try
{
var currDataItem = dataItemMem[diKey];
answ = currDataItem.value;
}
catch (Exception exc)
{
Logging.Instance.Error($"Errore in getDataItemValue per {diKey}{Environment.NewLine}{exc}");
}
return answ;
}
#endregion
#region Metodi specifici (da verificare/completare in implementazione)
@@ -917,47 +936,11 @@ namespace IOB_WIN
if (utils.CRB("enableContapezzi"))
{
// cerco parametro contapezzi...
string currPzCount = "";
string currPzReq = "";
string currPartId = "";
string currProg = "";
try
{
var currDataItem = dataItemMem[mtcParams.keyPartCount];
currPzCount = currDataItem.value;
}
catch(Exception exc)
{
lgError($"Eccezione in recupero dati currPzCount:{Environment.NewLine}{exc}");
}
string currPzCount = getDataItemValue(mtcParams.keyPartCount);
#if false
try
{
var currDataItem = dataItemMem[mtcParams.keyPartReq];
currPzReq = currDataItem.value;
}
catch (Exception exc)
{
lgError($"Eccezione in recupero dati currPzReq:{Environment.NewLine}{exc}");
}
try
{
var currDataItem = dataItemMem[mtcParams.keyPartId];
currPartId = currDataItem.value;
}
catch (Exception exc)
{
lgError($"Eccezione in recupero dati currPartId:{Environment.NewLine}{exc}");
}
try
{
var currDataItem = dataItemMem[mtcParams.keyProgName];
currProg = currDataItem.value;
}
catch (Exception exc)
{
lgError($"Eccezione in recupero dati currProg:{Environment.NewLine}{exc}");
}
string currPzReq = getDataItemValue(mtcParams.keyPartReq);
string currPartId = getDataItemValue(mtcParams.keyPartId);
string currProg = getDataItemValue(mtcParams.keyProgName);
#endif
// se ho un contapezzi... processo...
@@ -969,7 +952,6 @@ namespace IOB_WIN
}
}
}
/// <summary>
/// Effettua lettura semafori principale
/// <paramref name="currDispData">Parametri da aggiornare x display in form</paramref>
@@ -990,9 +972,10 @@ namespace IOB_WIN
decodeToBaseBitmap();
reportRawInput(ref currDispData);
}
catch
catch (Exception exc)
{
currDispData.semIn = Semaforo.SR;
lgError($"Eccezione in readSemafori:{Environment.NewLine}{exc}");
}
}
/// <summary>
@@ -1031,9 +1014,6 @@ namespace IOB_WIN
// init a zero...
B_input = 0;
// DA RIVEDERE con conf json x decodificare stream MTC --> segnali macchina
/* -----------------------------------------------------
* bitmap MAPO
* B0: POWER_ON
@@ -1084,21 +1064,18 @@ namespace IOB_WIN
*
----------------------------------------------------- */
// Controllo booleano PING e POWERON...
bool checkPing = (testPingMachine == IPStatus.Success);
string currPowerOn = "";
MtcDataItemExt currMTC_DI = null;
try
{
currMTC_DI = dataItemMem["POWER"];
currPowerOn = currMTC_DI.value;
}
catch (Exception exc)
{
Logging.Instance.Error($"decodeToBaseBitmap 01{Environment.NewLine}{exc}");
}
bool checkPowerOn = (currPowerOn == "ON");
// Controllo booleano PING e POWERON...
string currPowerOn = getDataItemValue(mtcParams.condPowerOn.keyName);
// se valido il check ping lo eseguo... altrimenti lo do x buono
bool checkPing = !mtcParams.pingAsPowerOn;
if (!checkPing)
{
checkPing = (testPingMachine == IPStatus.Success);
}
// verifico da target value richiesto...
bool checkPowerOn = (currPowerOn == mtcParams.condPowerOn.targetValue);
// bit 0 (poweron) imposto a 1 SE pingo o PowerOn=="ON"...
B_input = (checkPing || checkPowerOn) ? 1 : 0;
@@ -1137,7 +1114,7 @@ namespace IOB_WIN
}
// controllo lavora...
if (currRun == "AUTOMATIC" || currRun == "SEMI_AUTO")
if (currRun == "AUTOMATIC" || currRun == "SEMI_AUTO" || currRun == "SEMI_AUTOMATIC")
{
if (currExe == "ACTIVE")
{