Merge branch 'release/DelayPzCount_setup'
This commit is contained in:
@@ -67,6 +67,11 @@ namespace IOB_UT_NEXT.Config.Base
|
||||
/// </summary>
|
||||
public double DelayReadPzCount { get; set; } = 0.5;
|
||||
|
||||
/// <summary>
|
||||
/// Tempo di attesa (in minuti) x lettura contapezzi standard DOPO fase di setup (default 6 sec, da init 0.6 sec)
|
||||
/// </summary>
|
||||
public double DelayReadPzCountSetup { get; set; } = 0.1;
|
||||
|
||||
/// <summary>
|
||||
/// Disabilitazione invio DynData di WDST (WatchDogStateTransfer)
|
||||
/// </summary>
|
||||
|
||||
@@ -121,6 +121,7 @@ namespace IOB_UT_NEXT.Config
|
||||
CodIOB = fIni.ReadString("IOB", "IOB_NAME", codIob),
|
||||
CodGruppoIob = fIni.ReadString("OPTPAR", "CodGruppoIob", "ND-00"),
|
||||
DelayReadPzCount = Convert.ToDouble(fIni.ReadString("OPTPAR", "DELAY_READ_PZ_COUNT", "0")),
|
||||
DelayReadPzCountSetup = Convert.ToDouble(fIni.ReadString("OPTPAR", "DELAY_READ_PZ_COUNT_SETUP", "0.01")),
|
||||
FileName = Path.GetFileName(iniFilePath),
|
||||
Customer = fIni.ReadString("TAGS", "Customer", "EgalWare"),
|
||||
EnabelPodlManFull = bool.Parse(fIni.ReadString("OPTPAR", "EnabelPodlManFull", "false")),
|
||||
|
||||
@@ -298,6 +298,12 @@ namespace IOB_UT_NEXT.Iob
|
||||
/// </summary>
|
||||
public int vetoPingSec = 1;
|
||||
|
||||
/// <summary>
|
||||
/// Veto specifico per la gestione (svuotamento) coda contapezzi (es in fase di attrezzaggio e reset lenti)
|
||||
/// Tipicamente impostato a DelayReadPzCountSetup dopo attrezzaggio...
|
||||
/// </summary>
|
||||
public DateTime vetoQueuePzCount = DateTime.Now;
|
||||
|
||||
/// <summary>
|
||||
/// Imposta veto chiamata split (durante chiamata, per 60 sec)
|
||||
/// </summary>
|
||||
|
||||
@@ -5792,46 +5792,55 @@ namespace IOB_WIN_FORM.Iob
|
||||
|
||||
private async Task SvuotaCodaContapezziAsync()
|
||||
{
|
||||
// permetto al max 2 tentativi infruttuosi...
|
||||
int maxTry = 2;
|
||||
int oldContapezzi = contapezziIOB;
|
||||
// SE HO gestione contapezzi...
|
||||
if (!IOBConfFull.Device.EnabPzCount)
|
||||
// verifico non sia impedita la gestione contapezzi (per evitare invio su macchine lente nel reset all'attrezzaggio)
|
||||
if (DateTime.Now <= vetoQueuePzCount)
|
||||
{
|
||||
lgDebug($"Contapezzi disabilitato da configuraizone: IOBConfFull.Device.EnabPzCount: {IOBConfFull.Device.EnabPzCount}");
|
||||
lgInfo($"Ciclo SvuotaCodaContapezziAsync DISABILITATO fino a {vetoQueuePzCount}");
|
||||
}
|
||||
else
|
||||
{
|
||||
// se ho contapezzi OLTRE limite...
|
||||
while ((MPOnline) && (contapezziPLC > contapezziIOB + minSendPzCountBlock))
|
||||
|
||||
// permetto al max 2 tentativi infruttuosi...
|
||||
int maxTry = 2;
|
||||
int oldContapezzi = contapezziIOB;
|
||||
// SE HO gestione contapezzi...
|
||||
if (!IOBConfFull.Device.EnabPzCount)
|
||||
{
|
||||
lgInfo($"Ciclo SvuotaCodaContapezziAsync --> contapezziPLC: {contapezziPLC} | contapezziIOB: {contapezziIOB}");
|
||||
if (!isMulti)
|
||||
lgDebug($"Contapezzi disabilitato da configuraizone: IOBConfFull.Device.EnabPzCount: {IOBConfFull.Device.EnabPzCount}");
|
||||
}
|
||||
else
|
||||
{
|
||||
// se ho contapezzi OLTRE limite...
|
||||
while ((MPOnline) && (contapezziPLC > contapezziIOB + minSendPzCountBlock))
|
||||
{
|
||||
pzCntReload(true);
|
||||
lgInfo($"Ciclo SvuotaCodaContapezziAsync --> contapezziPLC: {contapezziPLC} | contapezziIOB: {contapezziIOB}");
|
||||
if (!isMulti)
|
||||
{
|
||||
pzCntReload(true);
|
||||
}
|
||||
// provo invio
|
||||
if (!isMulti)
|
||||
{
|
||||
trySendPzCountBlock();
|
||||
}
|
||||
// verifica per evitare loop infinito invio fallito
|
||||
if (oldContapezzi == contapezziIOB)
|
||||
{
|
||||
maxTry--;
|
||||
}
|
||||
else
|
||||
{
|
||||
maxTry = 2;
|
||||
oldContapezzi = contapezziIOB;
|
||||
}
|
||||
// verifico maxTry: se li ho esauriti esco!
|
||||
if (maxTry <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
// aspetto x dare tempo calcolo
|
||||
await Task.Delay(500);
|
||||
}
|
||||
// provo invio
|
||||
if (!isMulti)
|
||||
{
|
||||
trySendPzCountBlock();
|
||||
}
|
||||
// verifica per evitare loop infinito invio fallito
|
||||
if (oldContapezzi == contapezziIOB)
|
||||
{
|
||||
maxTry--;
|
||||
}
|
||||
else
|
||||
{
|
||||
maxTry = 2;
|
||||
oldContapezzi = contapezziIOB;
|
||||
}
|
||||
// verifico maxTry: se li ho esauriti esco!
|
||||
if (maxTry <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
// aspetto x dare tempo calcolo
|
||||
await Task.Delay(500);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1245,6 +1245,8 @@ namespace IOB_WIN_FORM.Iob
|
||||
{
|
||||
taskVal = $"NO DATA MEM, SET task: {iKey} --> {item.Value}";
|
||||
}
|
||||
// imposto reset gestione pzcount da parametri
|
||||
vetoQueuePzCount = DateTime.Now.AddMinutes(IOBConfFull.General.DelayReadPzCountSetup);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -75,6 +75,8 @@ VETO_SIG_IN=false
|
||||
BASE_SAMPLE_PERIOD=600
|
||||
MAX_ELAPSED_TIME_SEC=900
|
||||
DISABLE_SEND_WDST=TRUE
|
||||
; ritardo rilettura pezzi post setup in minuti
|
||||
DELAY_READ_PZ_COUNT_SETUP=0.5
|
||||
|
||||
; conf parametri memoria READ/WRITE
|
||||
OPC_PARAM_CONF=2014.json
|
||||
|
||||
@@ -360,7 +360,7 @@
|
||||
"name": "OPC_actParts",
|
||||
"description": "Contapezzi",
|
||||
"func": "POINT",
|
||||
"period": 6,
|
||||
"period": 60,
|
||||
"tipoMem": "Int",
|
||||
"memAddr": "ns=2;s=/Channel/State/actParts",
|
||||
"index": 0,
|
||||
@@ -371,7 +371,7 @@
|
||||
"description": "Ultimo TCiclo",
|
||||
"func": "POINT",
|
||||
"period": 60,
|
||||
"tipoMem": "Int",
|
||||
"tipoMem": "String",
|
||||
"memAddr": "ns=2;s=/Channel/State/oldProgNetTime",
|
||||
"index": 0,
|
||||
"size": 1
|
||||
@@ -380,7 +380,7 @@
|
||||
"name": "OPC_QUANTITA_PRODOTTA",
|
||||
"description": "QUANTITA PRODOTTA",
|
||||
"func": "MAX",
|
||||
"period": 6,
|
||||
"period": 60,
|
||||
"tipoMem": "Int",
|
||||
"memAddr": "ns=2;s=/NC/_N_CH_GD2_ACX/QUANTITA_PRODOTTA",
|
||||
"index": 0,
|
||||
|
||||
@@ -28,8 +28,8 @@ CLI_INST=SteamWareSim
|
||||
;STARTLIST=3026
|
||||
;STARTLIST=TFT_RAMA_001
|
||||
;STARTLIST=SIM_DP_01
|
||||
STARTLIST=1042
|
||||
;STARTLIST=2014
|
||||
;STARTLIST=1042
|
||||
STARTLIST=2014
|
||||
;STARTLIST=2015
|
||||
;STARTLIST=2016
|
||||
|
||||
|
||||
@@ -113,6 +113,8 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
|
||||
if (addResetPzCount)
|
||||
{
|
||||
// imposto reset gestione pzcount da parametri
|
||||
vetoQueuePzCount = DateTime.Now.AddMinutes(IOBConfFull.General.DelayReadPzCountSetup);
|
||||
// se è una doppia tavola aggiungo anche tag "processOtherInfo"...
|
||||
if (isMulti)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user