Fix gestione sendPzBlock x tav singola/multi
This commit is contained in:
@@ -129,7 +129,7 @@ namespace IOB_WIN_FORM.Iob
|
||||
protected bool enableCliRestart = false;
|
||||
|
||||
/// <summary>
|
||||
/// Boolean x indicare contapezzi abilitato a livello di conf apoplicazione
|
||||
/// Boolean x indicare contapezzi abilitato a livello di conf applicazione
|
||||
/// </summary>
|
||||
protected bool enablePzCountByApp = true;
|
||||
|
||||
@@ -3080,7 +3080,7 @@ namespace IOB_WIN_FORM.Iob
|
||||
if (checkServerAlive)
|
||||
{
|
||||
string url2call = $"{urlRemTask2Exe}{taskName}";
|
||||
if(!string.IsNullOrEmpty(codTav))
|
||||
if (!string.IsNullOrEmpty(codTav))
|
||||
{
|
||||
url2call = $"{urlRemTask2ExeTav(codTav)}{taskName}";
|
||||
}
|
||||
@@ -3919,12 +3919,89 @@ namespace IOB_WIN_FORM.Iob
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua verifica se abilitato invio pezzi in blocco e nel caso
|
||||
/// Effettua verifica se abilitato invio pezzi in blocco PER TAVOLE e nel caso
|
||||
/// - invio in blocco pezzi
|
||||
/// - aggiornamento del contapezzi (passato come ref) x nuovo valore post invio
|
||||
/// </summary>
|
||||
protected virtual void trySendPzCountBlock(string forceMachName)
|
||||
/// <param name="fullCode">Idx macchina completo, con tavola/pallet di invio</param>
|
||||
/// <param name="pzCountMes">Contapezzi MES (IOB) attuale</param>
|
||||
/// <param name="pzCountImp">Contapezzi impianto (per la tavola indicata)</param>
|
||||
protected virtual void trySendPzCountBlock(string fullCode, int pzCountMes, int pzCountImp)
|
||||
{
|
||||
lgDebug($"Chiamata trySendPzCountBlock MULTI | fullCode: {fullCode} | pzCountMes: {pzCountMes} | pzCountImp: {pzCountImp}");
|
||||
// in primis HA SENSO procedere SOLO SE server MP è Online...
|
||||
if (MPOnline)
|
||||
{
|
||||
// SOLO SE online la macchina...
|
||||
if (IobOnline)
|
||||
{
|
||||
int qtyAdded = 0;
|
||||
int numIncr = 0;
|
||||
// verifico se la funzione SIA abilitata
|
||||
if (enableSendPzCountBlock)
|
||||
{
|
||||
int delta = pzCountImp - pzCountMes;
|
||||
// se è abilitata verifico differenza: se ho DELTA > minSendPzCountBlock -->
|
||||
// invio un blocco <= maxSendPzCountBlock
|
||||
if (delta > minSendPzCountBlock)
|
||||
{
|
||||
// init genObj display
|
||||
newDisplayData currDispData = new newDisplayData();
|
||||
// resta indietro di ALMENO minSendPzCountBlock pezzi x recuperare 1:1...
|
||||
numIncr = delta > maxSendPzCountBlock + minSendPzCountBlock ? maxSendPzCountBlock : delta - minSendPzCountBlock;
|
||||
// invio il num max di pezzi ammesso in blocco!
|
||||
lastUrl = $"{urlAddPzCount}{numIncr}".Replace(IOBConfFull.General.CodIOB, fullCode);
|
||||
string resp = utils.callUrlNow(lastUrl);
|
||||
if (!string.IsNullOrEmpty(resp))
|
||||
{
|
||||
// dalla risposta (come numero) capisco SE ha aggiunto i pezzi (e quanti)
|
||||
int.TryParse(resp, out qtyAdded);
|
||||
if (qtyAdded > 0)
|
||||
{
|
||||
// aggiorno contapezzi ...
|
||||
pzCountMes += qtyAdded;
|
||||
lgInfo($"SEND incremento contapezzi: send: {numIncr} | resp: {qtyAdded} | contapezziMES: {pzCountMes}");
|
||||
// invio conferma contapezzi..
|
||||
string fullUrl = $"{urlSetPzCount}{pzCountMes}".Replace(IOBConfFull.General.CodIOB, fullCode);
|
||||
string retVal = utils.callUrl(fullUrl);
|
||||
// verifica se tutto OK
|
||||
if (retVal != $"{pzCountMes}")
|
||||
{
|
||||
// errore salvataggio contapezzi
|
||||
lgError($"trySendPzCountBlock: errore salvataggio contapezzi: contapezziMES {pzCountMes} | risposta: {retVal}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lgError($"Richiesto incremento {numIncr} ma NON registrato su server MP-IO");
|
||||
}
|
||||
}
|
||||
currDispData.newUrlCallData = lastUrl;
|
||||
currDispData.counter = pzCountMes;
|
||||
currDispData.semOut = Semaforo.SV;
|
||||
raiseRefresh(currDispData);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lgError("Impossibile trySendPzCountBlock: IobOnline è false");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lgError("Impossibile trySendPzCountBlock: MPOnline è false");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua verifica se abilitato invio pezzi in blocco (caso macchina standard/singolo contapezzi) e nel caso
|
||||
/// - invio in blocco pezzi
|
||||
/// - aggiornamento del contapezzi (passato come ref) x nuovo valore post invio
|
||||
/// </summary>
|
||||
protected virtual void trySendPzCountBlock()
|
||||
{
|
||||
lgDebug($"Chiamata trySendPzCountBlock STD | pzCountMes: {contapezziIOB} | pzCountImp: {contapezziPLC}");
|
||||
// in primis HA SENSO procedere SOLO SE server MP è Online...
|
||||
if (MPOnline)
|
||||
{
|
||||
@@ -3947,10 +4024,6 @@ namespace IOB_WIN_FORM.Iob
|
||||
numIncr = delta > maxSendPzCountBlock + minSendPzCountBlock ? maxSendPzCountBlock : delta - minSendPzCountBlock;
|
||||
// invio il num max di pezzi ammesso in blocco!
|
||||
lastUrl = $"{urlAddPzCount}{numIncr}";
|
||||
if (!string.IsNullOrEmpty(forceMachName))
|
||||
{
|
||||
lastUrl = lastUrl.Replace(IOBConfFull.General.CodIOB, forceMachName);
|
||||
}
|
||||
string resp = utils.callUrlNow(lastUrl);
|
||||
if (!string.IsNullOrEmpty(resp))
|
||||
{
|
||||
@@ -3963,10 +4036,6 @@ namespace IOB_WIN_FORM.Iob
|
||||
lgInfo($"SEND incremento contapezzi: send: {numIncr} | resp: {qtyAdded} | contapezziIOB: {contapezziIOB}");
|
||||
// invio conferma contapezzi..
|
||||
string fullUrl = $"{urlSetPzCount}{contapezziIOB}";
|
||||
if (!string.IsNullOrEmpty(forceMachName))
|
||||
{
|
||||
fullUrl = fullUrl.Replace(IOBConfFull.General.CodIOB, forceMachName);
|
||||
}
|
||||
string retVal = utils.callUrl(fullUrl);
|
||||
// verifica se tutto OK
|
||||
if (retVal != contapezziIOB.ToString())
|
||||
@@ -5327,7 +5396,7 @@ namespace IOB_WIN_FORM.Iob
|
||||
// provo invio
|
||||
if (!isMulti)
|
||||
{
|
||||
trySendPzCountBlock("");
|
||||
trySendPzCountBlock();
|
||||
}
|
||||
// verifica per evitare loop infinito invio fallito
|
||||
if (oldContapezzi == contapezziIOB)
|
||||
|
||||
@@ -94,7 +94,7 @@ namespace IOB_WIN_MBUS.IobModbusTCP
|
||||
/// - invio in blocco pezzi
|
||||
/// - aggiornamento del contapezzi (passato come ref) x nuovo valore post invio
|
||||
/// </summary>
|
||||
protected override void trySendPzCountBlock(string forceMachName)
|
||||
protected override void trySendPzCountBlock()
|
||||
{
|
||||
// non fa nulla se non accettare lato IOB i pezzi del PLC... su GWMS NON è gestito il contapezzi
|
||||
if (contapezziIOB != contapezziPLC)
|
||||
|
||||
@@ -207,7 +207,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens
|
||||
/// - invio in blocco pezzi
|
||||
/// - aggiornamento del contapezzi (passato come ref) x nuovo valore post invio
|
||||
/// </summary>
|
||||
protected override void trySendPzCountBlock(string forceMachName)
|
||||
protected override void trySendPzCountBlock()
|
||||
{
|
||||
// non fa nulla se non accettare lato IOB i pezzi del PLC... su GWMS NON è gestito il contapezzi
|
||||
if (contapezziIOB != contapezziPLC)
|
||||
|
||||
@@ -440,7 +440,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens
|
||||
// verifico se variato contapezzi... e se passato ritardo minimo...
|
||||
if ((contapezziPLC - contapezziIOB) > minSendPzCountBlock)
|
||||
{
|
||||
trySendPzCountBlock("");
|
||||
trySendPzCountBlock();
|
||||
}
|
||||
|
||||
// invio a server contapezzi (aggiornato)
|
||||
|
||||
Reference in New Issue
Block a user