Update x gestione PowerOn...
This commit is contained in:
@@ -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; } = "";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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
@@ -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")
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user