Merge branch 'release/IobWinMBus_10'
This commit is contained in:
@@ -209,44 +209,32 @@ namespace IOB_UT_NEXT.Iob
|
||||
/// </summary>
|
||||
public DataQueue QueueAlarm = new DataQueue("000", "QueueAlarm", false);
|
||||
|
||||
//public ConcurrentQueue<string> QueueAlarm = new ConcurrentQueue<string>();
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto della coda degli elementi letti di tipo FluxLog (e non ancora trasmessi)
|
||||
/// </summary>
|
||||
public DataQueue QueueFLog = new DataQueue("000", "QueueFLog", false);
|
||||
|
||||
//public ConcurrentQueue<string> QueueFLog = new ConcurrentQueue<string>();
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto della coda degli elementi letti (e non ancora trasmessi)
|
||||
/// </summary>
|
||||
public DataQueue QueueIN = new DataQueue("000", "QueueIN", false);
|
||||
|
||||
//public ConcurrentQueue<string> QueueIN = new ConcurrentQueue<string>();
|
||||
|
||||
/// <summary>
|
||||
/// Coda valori MESSAGGI/EVENTI (da non sottocampionare come samples)...
|
||||
/// </summary>
|
||||
public DataQueue QueueMessages = new DataQueue("000", "QueueMessages", false);
|
||||
|
||||
//public ConcurrentQueue<string> QueueMessages = new ConcurrentQueue<string>();
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto della coda degli elementi di tipo RawTransf (e non ancora trasmessi)
|
||||
/// NB: sono salvati serializzati come stringhe
|
||||
/// </summary>
|
||||
public DataQueue QueueRawTransf = new DataQueue("000", "QueueRawTransf", false);
|
||||
|
||||
//public ConcurrentQueue<string> QueueRawTransf = new ConcurrentQueue<string>();
|
||||
|
||||
/// <summary>
|
||||
/// Coda valori LOG UTENTE (da non sottocampionare come samples)...
|
||||
/// </summary>
|
||||
public DataQueue QueueULog = new DataQueue("000", "QueueULog", false);
|
||||
|
||||
//public ConcurrentQueue<string> QueueULog = new ConcurrentQueue<string>();
|
||||
|
||||
/// <summary>
|
||||
/// alias booleano false = R
|
||||
/// </summary>
|
||||
@@ -524,6 +512,11 @@ namespace IOB_UT_NEXT.Iob
|
||||
/// </summary>
|
||||
protected DateTime lastLogStartup = DateTime.Today.AddHours(-1);
|
||||
|
||||
/// <summary>
|
||||
/// Tempo minimo ammissibile di risposta (es x errori ModBus che risponde troppo in fretta) in millisec
|
||||
/// </summary>
|
||||
protected int minRespTimeMs = 5;
|
||||
|
||||
/// <summary>
|
||||
/// Veto per registrazione completa log di startup (minuti)
|
||||
/// </summary>
|
||||
@@ -596,7 +589,7 @@ namespace IOB_UT_NEXT.Iob
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(Exception exc)
|
||||
catch (Exception exc)
|
||||
{
|
||||
lg.Error($"Eccezione in checkLogVeto: reset contatori VetoLog/VetoLogCount | message: {message}");
|
||||
lg.Error($"Raised Exc:{Environment.NewLine}{exc}");
|
||||
|
||||
@@ -6003,6 +6003,11 @@ namespace IOB_WIN_FORM.Iob
|
||||
lgError("loadMemConf: parametro ENABLE_SEND_PZC_BLOCK non trovato, verificare anche MAX_SEND_PZC_BLOCK e MIN_SEND_PZC_BLOCK");
|
||||
}
|
||||
lgInfo("loadMemConf.02");
|
||||
currPar = getOptPar("MIN_RESP_TIME_MS");
|
||||
if (!string.IsNullOrEmpty(currPar))
|
||||
{
|
||||
int.TryParse(currPar, out minRespTimeMs);
|
||||
}
|
||||
|
||||
// gruppo macchina
|
||||
CodGruppoIob = getOptPar("CodGruppoIob");
|
||||
|
||||
@@ -62,6 +62,8 @@ FORCE_DYN_DATA=TRUE
|
||||
; gestione delta minimo accettabile tra min/MAX
|
||||
DELTA_VAL=0.1
|
||||
COPY_DYN2PROD_DATA =TRUE
|
||||
;tempo minimo risposta perché sia valida
|
||||
MIN_RESP_TIME_MS=10
|
||||
|
||||
; clock base (da 10ms)
|
||||
timerIntMs=50
|
||||
|
||||
@@ -62,6 +62,8 @@ FORCE_DYN_DATA=TRUE
|
||||
; gestione delta minimo accettabile tra min/MAX
|
||||
DELTA_VAL=0.1
|
||||
COPY_DYN2PROD_DATA =TRUE
|
||||
;tempo minimo risposta perché sia valida
|
||||
MIN_RESP_TIME_MS=10
|
||||
|
||||
; clock base (da 10ms)
|
||||
timerIntMs=50
|
||||
|
||||
@@ -62,6 +62,8 @@ FORCE_DYN_DATA=TRUE
|
||||
; gestione delta minimo accettabile tra min/MAX
|
||||
DELTA_VAL=0.1
|
||||
COPY_DYN2PROD_DATA =TRUE
|
||||
;tempo minimo risposta perché sia valida
|
||||
MIN_RESP_TIME_MS=10
|
||||
|
||||
; clock base (da 10ms)
|
||||
timerIntMs=50
|
||||
|
||||
@@ -63,6 +63,8 @@ FORCE_DYN_DATA=TRUE
|
||||
; gestione delta minimo accettabile tra min/MAX
|
||||
DELTA_VAL=0.1
|
||||
COPY_DYN2PROD_DATA =TRUE
|
||||
;tempo minimo risposta perché sia valida
|
||||
MIN_RESP_TIME_MS=10
|
||||
|
||||
; clock base (da 10ms)
|
||||
timerIntMs=50
|
||||
|
||||
@@ -2081,21 +2081,24 @@ namespace IOB_WIN_MBUS.IobModbusTCP
|
||||
int memAddr = startAddr - baseAddr;
|
||||
rawData = currPLC.ReadHoldingRegisters(memAddr, numReg);
|
||||
stopwatch.Stop();
|
||||
lgTrace($"Lettura in blocco HoldingRegisters| startAddr: {startAddr} | numReg {numReg} | rawData.lenght: {rawData.Length} | {stopwatch.ElapsedMilliseconds}ms");
|
||||
lgTrace($"Lettura in blocco HoldingRegisters| startAddr: {startAddr} | numReg {numReg} | rawData.lenght: {rawData.Length} | {stopwatch.Elapsed.TotalMilliseconds}ms");
|
||||
lastReadPLC = DateTime.Now;
|
||||
// se risposta troppo rapida (< minRespTimeMs, tipicamente 5 msse non impostato in OptPar) indico NON ok e errori...
|
||||
if (stopwatch.Elapsed.TotalMilliseconds < minRespTimeMs)
|
||||
{
|
||||
allOk = false;
|
||||
currReadErrors += 10;
|
||||
}
|
||||
// se leggo tutti zero --> indico +5 read error!
|
||||
bool allZero = (rawData.Where(x => x > 0).Count() == 0);
|
||||
if (allZero)
|
||||
{
|
||||
currReadErrors += 3;
|
||||
currReadErrors += 5;
|
||||
#if false
|
||||
allOk = false;
|
||||
#endif
|
||||
}
|
||||
// salvo in LUT la versione ESPLOSA 2 byte alla volta...
|
||||
#if false
|
||||
if (allOk && rawData.Length > 0)
|
||||
#endif
|
||||
if (rawData.Length > 0)
|
||||
{
|
||||
for (int i = 0; i < rawData.Length / 2; i++)
|
||||
|
||||
@@ -49,7 +49,7 @@ BLINK_FILT=0
|
||||
|
||||
[OPTPAR]
|
||||
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
|
||||
PZCOUNT_MODE=STD.DB85.DBRE16
|
||||
PZCOUNT_MODE=STD.DB85.DBB16
|
||||
DISABLE_PZCOUNT=FALSE
|
||||
ENABLE_SEND_PZC_BLOCK=TRUE
|
||||
MIN_SEND_PZC_BLOCK=0
|
||||
|
||||
@@ -48,7 +48,7 @@ BLINK_FILT=0
|
||||
|
||||
[OPTPAR]
|
||||
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
|
||||
PZCOUNT_MODE=STD.DB85.DBRE16
|
||||
PZCOUNT_MODE=STD.DB85.DBB16
|
||||
DISABLE_PZCOUNT=FALSE
|
||||
ENABLE_SEND_PZC_BLOCK=TRUE
|
||||
MIN_SEND_PZC_BLOCK=0
|
||||
|
||||
Reference in New Issue
Block a user