Completata prima review x gestione autoODL x RAMA TFT
This commit is contained in:
@@ -21,22 +21,23 @@ namespace IOB_UT_NEXT.Config.Base
|
||||
|
||||
/// <summary>
|
||||
/// Modalità di esecuzione del cambio ODL automatico (tipicamente a tempo/simulazione su qty)
|
||||
/// - TIME (default)
|
||||
/// - SIMUL
|
||||
/// - DAILY
|
||||
/// - ...
|
||||
/// </summary>
|
||||
public string ChangeOdlMode { get; set; } = "";
|
||||
public string ChangeOdlMode { get; set; } = "TIME";
|
||||
|
||||
/// <summary>
|
||||
/// Numero di ore di durata minima (ODL corrente) prima di eseguire una richiesta di cambio ODL automatico
|
||||
/// Durata minima ODL in Ore (ODL corrente) prima di eseguire una richiesta di cambio ODL automatico
|
||||
/// </summary>
|
||||
public int ChangeOdlHours { get; set; } = 24;
|
||||
public int OdlDurationHours { get; set; } = 24;
|
||||
|
||||
/// <summary>
|
||||
/// Durata minima in minuti dello stato idle prima di eseguire una richiesta di cambio ODL
|
||||
/// Serve ad evitare un cambio ODL mentre la amcchina è in RUN
|
||||
/// </summary>
|
||||
public int ChangeOdlIdleMin { get; set; } = 0;
|
||||
public int IdleStateMin { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Abilitazione cambio ODL in caso di Reset Contapezzi guardando parametri ResetCount Min/Max...
|
||||
@@ -56,8 +57,8 @@ namespace IOB_UT_NEXT.Config.Base
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Parametri opzionali di configurazione cambio ODL, ad esempio
|
||||
/// - ChangeOdlHours
|
||||
/// - ChangeOdlIdleMin
|
||||
/// - OdlDurationHours
|
||||
/// - IdleStateMin
|
||||
/// - ResetMinCountPre
|
||||
/// - ResetMaxCountPost
|
||||
/// </summary>
|
||||
|
||||
@@ -158,12 +158,14 @@ namespace IOB_UT_NEXT.Config
|
||||
{
|
||||
AutoChangeOdl = bool.Parse(fIni.ReadString("OPTPAR", "AUTO_CHANGE_ODL", "false")),
|
||||
ChangeOdlMode = fIni.ReadString("OPTPAR", "CHANGE_ODL_MODE", ""),
|
||||
ChangeOdlHours = fIni.ReadInteger("OPTPAR", "CHANGE_ODL_HOURS", 24),
|
||||
ChangeOdlIdleMin = fIni.ReadInteger("OPTPAR", "CHANGE_ODL_IDLE_MIN", 0),
|
||||
OdlDurationHours = fIni.ReadInteger("OPTPAR", "CHANGE_ODL_HOURS", 24),
|
||||
IdleStateMin = fIni.ReadInteger("OPTPAR", "CHANGE_ODL_IDLE_MIN", 0),
|
||||
// il change ODL al reset contapezzi può essere configurato in 2 modi: con chiave esplicita oppure con il CHANGE_ODL_MODE specifico...
|
||||
ChangeOnResetCount = bool.Parse(fIni.ReadString("OPTPAR", "CHANGE_PZCOUNT_RESET", "false")) || (fIni.ReadString("OPTPAR", "CHANGE_ODL_MODE", "") == "PZCOUNT_RESET"),
|
||||
ResetCountMinPre = fIni.ReadInteger("OPTPAR", "RESET_COUNT_PRE", 100),
|
||||
ResetCountMaxPost = fIni.ReadInteger("OPTPAR", "RESET_COUNT_POST", 1),
|
||||
// gestione precedente: bastava 1 solo pezzo pre...
|
||||
ResetCountMinPre = fIni.ReadInteger("OPTPAR", "RESET_COUNT_PRE", 1),
|
||||
// e reset a zero...
|
||||
ResetCountMaxPost = fIni.ReadInteger("OPTPAR", "RESET_COUNT_POST", 0),
|
||||
};
|
||||
|
||||
exclOptPar.Add("AUTO_CHANGE_ODL");
|
||||
|
||||
+206
-94
@@ -1890,9 +1890,10 @@ namespace IOB_WIN_FORM.Iob
|
||||
public void processAutoOdl()
|
||||
{
|
||||
bool fatto = false;
|
||||
if (!string.IsNullOrEmpty(getOptPar("AUTO_CHANGE_ODL")))
|
||||
//if (!string.IsNullOrEmpty(getOptPar("AUTO_CHANGE_ODL")))
|
||||
if (IOBConfFull.Odl.AutoChangeOdl)
|
||||
{
|
||||
lgTrace("Richiesta processAutoOdl");
|
||||
lgTrace("processAutoOdl | AutoChangeOdl abilitato");
|
||||
// imposto il veto lettura contapezzi a 1 minuto x iniziare...
|
||||
dtVetoReadPzCount = DateTime.Now.AddMinutes(delayMinReadPzCount);
|
||||
string IOB_MULTI_CNAME = "";
|
||||
@@ -1904,8 +1905,6 @@ namespace IOB_WIN_FORM.Iob
|
||||
IOB_MULTI_CNAME = getOptPar("IOB_MULTI_CNAME");
|
||||
elencoMulti = IOB_MULTI_CNAME.Split(',');
|
||||
}
|
||||
// controllo SIA abilitato...
|
||||
bool doProc = false;
|
||||
DateTime adesso = DateTime.Now;
|
||||
DateTime inizioOdl = adesso;
|
||||
string rawDataInizio = "";
|
||||
@@ -1915,18 +1914,14 @@ namespace IOB_WIN_FORM.Iob
|
||||
}
|
||||
else
|
||||
{
|
||||
bool.TryParse(getOptPar("AUTO_CHANGE_ODL"), out doProc);
|
||||
if (doProc)
|
||||
bool callChangeODL = false;
|
||||
switch (IOBConfFull.Odl.ChangeOdlMode)
|
||||
{
|
||||
lgTrace("AUTO_CHANGE_ODL abilitato");
|
||||
bool callChangeODL = false;
|
||||
|
||||
if (CHANGE_ODL_MODE == "PZCOUNT_RESET")
|
||||
{
|
||||
case "PZCOUNT_RESET":
|
||||
/* verifico se sia "armato" il reset cambio ODL, DEVO essere :
|
||||
* - NON in produzione
|
||||
* - contapezzi ACT < contapezzi LAST
|
||||
* */
|
||||
* - NON in produzione
|
||||
* - contapezzi ACT < contapezzi LAST
|
||||
* */
|
||||
lgTrace("processAutoOdl: caso PZCOUNT_RESET");
|
||||
if ((!isRunning || forceResetInRun) && pzCountResetted)
|
||||
{
|
||||
@@ -1937,9 +1932,8 @@ namespace IOB_WIN_FORM.Iob
|
||||
{
|
||||
lgInfo($"isRunning: {isRunning} | pzCountResetted: {pzCountResetted} | forceResetInRun: {forceResetInRun} | contapezziIOB: {contapezziIOB} | contapezziPLC: {contapezziPLC}");
|
||||
}
|
||||
}
|
||||
else if (CHANGE_ODL_MODE == "DAILY")
|
||||
{
|
||||
break;
|
||||
case "DAILY":
|
||||
// verifico inizio ODL, se è data di oggi NON eseguo...
|
||||
if (currOdlStart().Date < adesso.Date)
|
||||
{
|
||||
@@ -1949,9 +1943,8 @@ namespace IOB_WIN_FORM.Iob
|
||||
string autoOdlRes = utils.callUrl(urlFixDailyOdl);
|
||||
fatto = autoOdlRes == "OK";
|
||||
}
|
||||
}
|
||||
else if (CHANGE_ODL_MODE == "DAILY_CONF_PZ")
|
||||
{
|
||||
break;
|
||||
case "DAILY_CONF_PZ":
|
||||
// verifico inizio ODL, se è data di oggi NON eseguo...
|
||||
if (currOdlStart().Date < adesso.Date)
|
||||
{
|
||||
@@ -1961,106 +1954,221 @@ namespace IOB_WIN_FORM.Iob
|
||||
string autoOdlRes = utils.callUrl(urlFixDailyOdlConfPzCount);
|
||||
fatto = autoOdlRes == "OK";
|
||||
}
|
||||
}
|
||||
else if (CHANGE_ODL_MODE == "TIME" || CHANGE_ODL_MODE == "SIMUL")
|
||||
{
|
||||
break;
|
||||
case "SIMUL":
|
||||
case "TIME":
|
||||
// imposto x prox controllo veto a 1 min
|
||||
VetoProcessAutoOdl = adesso.AddMinutes(1);
|
||||
// carico i parametri di configurazione x reset ODL...
|
||||
string CHANGE_ODL_HOURS = getOptPar("CHANGE_ODL_HOURS");
|
||||
string CHANGE_ODL_IDLE_MIN = getOptPar("CHANGE_ODL_IDLE_MIN");
|
||||
if (!string.IsNullOrEmpty(CHANGE_ODL_HOURS) && !string.IsNullOrEmpty(CHANGE_ODL_IDLE_MIN))
|
||||
// controllo parametri validi
|
||||
if (IOBConfFull.Odl.OdlDurationHours > 0 && IOBConfFull.Odl.IdleStateMin >= 0)
|
||||
{
|
||||
int minOdlDurHours = -1;
|
||||
int minPlcIdelMin = -1;
|
||||
int.TryParse(CHANGE_ODL_HOURS, out minOdlDurHours);
|
||||
int.TryParse(CHANGE_ODL_IDLE_MIN, out minPlcIdelMin);
|
||||
// controllo parametri validi
|
||||
if (minOdlDurHours > 0 && minPlcIdelMin >= 0)
|
||||
// leggo da server inizio ODL... se non multi 1 solo...
|
||||
inizioOdl = DateTime.Now;
|
||||
rawDataInizio = "";
|
||||
if (!isMulti)
|
||||
{
|
||||
// leggo da server inizio ODL... se non multi 1 solo...
|
||||
inizioOdl = DateTime.Now;
|
||||
rawDataInizio = "";
|
||||
rawDataInizio = callUrl(urlInizioOdlIob, false);
|
||||
DateTime.TryParse(rawDataInizio, out inizioOdl);
|
||||
}
|
||||
else
|
||||
{
|
||||
DateTime tmpData = DateTime.Now;
|
||||
// prendo il + vecchio...
|
||||
foreach (var item in elencoMulti)
|
||||
{
|
||||
fullUrl = $"{urlInizioOdlIob}|{item}";
|
||||
rawDataInizio = callUrl(fullUrl, false);
|
||||
DateTime.TryParse(rawDataInizio, out tmpData);
|
||||
inizioOdl = (tmpData < inizioOdl) ? tmpData : inizioOdl;
|
||||
}
|
||||
}
|
||||
// verifico se sia scaduto...
|
||||
if (inizioOdl.AddHours(IOBConfFull.Odl.OdlDurationHours) < adesso)
|
||||
{
|
||||
string rawIdle = "";
|
||||
int idlePeriod = 0;
|
||||
if (!isMulti)
|
||||
{
|
||||
rawDataInizio = callUrl(urlInizioOdlIob, false);
|
||||
DateTime.TryParse(rawDataInizio, out inizioOdl);
|
||||
// controllo SE sono fermo (spento o in manuale) per il
|
||||
// periodo minimo richiesto...
|
||||
rawIdle = callUrl(urlIdleTime, false);
|
||||
int.TryParse(rawIdle, out idlePeriod);
|
||||
}
|
||||
else
|
||||
{
|
||||
DateTime tmpData = DateTime.Now;
|
||||
// prendo il + vecchio...
|
||||
int tmpIdle = 0;
|
||||
// prendo il + grande...
|
||||
foreach (var item in elencoMulti)
|
||||
{
|
||||
fullUrl = $"{urlInizioOdlIob}|{item}";
|
||||
rawDataInizio = callUrl(fullUrl, false);
|
||||
DateTime.TryParse(rawDataInizio, out tmpData);
|
||||
inizioOdl = (tmpData < inizioOdl) ? tmpData : inizioOdl;
|
||||
fullUrl = $"{urlIdleTime}|{item}";
|
||||
rawIdle = callUrl(fullUrl, false);
|
||||
int.TryParse(rawIdle, out tmpIdle);
|
||||
idlePeriod = tmpIdle > idlePeriod ? tmpIdle : idlePeriod;
|
||||
}
|
||||
}
|
||||
// verifico se sia scaduto...
|
||||
if (inizioOdl.AddHours(minOdlDurHours) < adesso)
|
||||
if (idlePeriod >= IOBConfFull.Odl.IdleStateMin)
|
||||
{
|
||||
string rawIdle = "";
|
||||
int idlePeriod = 0;
|
||||
if (!isMulti)
|
||||
{
|
||||
// controllo SE sono fermo (spento o in manuale) per il
|
||||
// periodo minimo richiesto...
|
||||
rawIdle = callUrl(urlIdleTime, false);
|
||||
int.TryParse(rawIdle, out idlePeriod);
|
||||
}
|
||||
else
|
||||
{
|
||||
int tmpIdle = 0;
|
||||
// prendo il + grande...
|
||||
foreach (var item in elencoMulti)
|
||||
{
|
||||
fullUrl = $"{urlIdleTime}|{item}";
|
||||
rawIdle = callUrl(fullUrl, false);
|
||||
int.TryParse(rawIdle, out tmpIdle);
|
||||
idlePeriod = tmpIdle > idlePeriod ? tmpIdle : idlePeriod;
|
||||
}
|
||||
}
|
||||
if (idlePeriod >= minPlcIdelMin)
|
||||
{
|
||||
callChangeODL = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
// se NON fosse scaduto MA è simulato esegue controllo sul num pezzi da
|
||||
// fare, se sfora (RANDOM) > +(50...110)% --> cambia!
|
||||
if (!callChangeODL && CHANGE_ODL_MODE == "SIMUL")
|
||||
{
|
||||
var rawCount = callUrl(urlGetNumPzCurrODL, false);
|
||||
if (int.TryParse(rawCount, out var numPzReqOdl))
|
||||
{
|
||||
int limitQty = (numPzReqOdl * rndGen.Next(150, 210)) / 100;
|
||||
callChangeODL = contapezziPLC > limitQty;
|
||||
callChangeODL = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// se NON fosse scaduto MA è simulato esegue controllo sul num pezzi da
|
||||
// fare, se sfora (RANDOM) > +(50...110)% --> cambia!
|
||||
if (!callChangeODL && IOBConfFull.Odl.ChangeOdlMode == "SIMUL")
|
||||
{
|
||||
var rawCount = callUrl(urlGetNumPzCurrODL, false);
|
||||
if (int.TryParse(rawCount, out var numPzReqOdl))
|
||||
{
|
||||
int limitQty = (numPzReqOdl * rndGen.Next(150, 210)) / 100;
|
||||
callChangeODL = contapezziPLC > limitQty;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// vero processing...
|
||||
if (callChangeODL)
|
||||
#if false
|
||||
if (IOBConfFull.Odl.ChangeOdlMode == "PZCOUNT_RESET")
|
||||
{
|
||||
/* verifico se sia "armato" il reset cambio ODL, DEVO essere :
|
||||
* - NON in produzione
|
||||
* - contapezzi ACT < contapezzi LAST
|
||||
* */
|
||||
lgTrace("processAutoOdl: caso PZCOUNT_RESET");
|
||||
if ((!isRunning || forceResetInRun) && pzCountResetted)
|
||||
{
|
||||
lgTrace("Chiamata: processAutoOdl --> forceSplitODL");
|
||||
fatto = forceSplitOdl();
|
||||
pzCountResetted = false;
|
||||
lgInfo("Esecuzione processAutoOdl completata --> pzCountResetted = false");
|
||||
callChangeODL = true;
|
||||
lgInfo("Attivato cambio ODL da PZCOUNT_RESET");
|
||||
}
|
||||
else
|
||||
{
|
||||
lgInfo($"isRunning: {isRunning} | pzCountResetted: {pzCountResetted} | forceResetInRun: {forceResetInRun} | contapezziIOB: {contapezziIOB} | contapezziPLC: {contapezziPLC}");
|
||||
}
|
||||
}
|
||||
else
|
||||
else if (IOBConfFull.Odl.ChangeOdlMode == "DAILY")
|
||||
{
|
||||
lgTrace("AUTO_CHANGE_ODL DISABILITATO");
|
||||
// verifico inizio ODL, se è data di oggi NON eseguo...
|
||||
if (currOdlStart().Date < adesso.Date)
|
||||
{
|
||||
// imposto x prox controllo veto a 10 min
|
||||
VetoProcessAutoOdl = adesso.AddMinutes(10);
|
||||
// chiamo stored x creare ODL giornalieri alla data...
|
||||
string autoOdlRes = utils.callUrl(urlFixDailyOdl);
|
||||
fatto = autoOdlRes == "OK";
|
||||
}
|
||||
}
|
||||
else if (IOBConfFull.Odl.ChangeOdlMode == "DAILY_CONF_PZ")
|
||||
{
|
||||
// verifico inizio ODL, se è data di oggi NON eseguo...
|
||||
if (currOdlStart().Date < adesso.Date)
|
||||
{
|
||||
// imposto x prox controllo veto a 10 min
|
||||
VetoProcessAutoOdl = adesso.AddMinutes(10);
|
||||
// chiamo stored x creare ODL giornalieri alla data + conferma pezzi...
|
||||
string autoOdlRes = utils.callUrl(urlFixDailyOdlConfPzCount);
|
||||
fatto = autoOdlRes == "OK";
|
||||
}
|
||||
}
|
||||
else if (IOBConfFull.Odl.ChangeOdlMode == "TIME" || IOBConfFull.Odl.ChangeOdlMode == "SIMUL")
|
||||
{
|
||||
// imposto x prox controllo veto a 1 min
|
||||
VetoProcessAutoOdl = adesso.AddMinutes(1);
|
||||
// carico i parametri di configurazione x reset ODL...
|
||||
string CHANGE_ODL_HOURS = getOptPar("CHANGE_ODL_HOURS");
|
||||
string CHANGE_ODL_IDLE_MIN = getOptPar("CHANGE_ODL_IDLE_MIN");
|
||||
if (!string.IsNullOrEmpty(CHANGE_ODL_HOURS) && !string.IsNullOrEmpty(CHANGE_ODL_IDLE_MIN))
|
||||
{
|
||||
int minOdlDurHours = -1;
|
||||
int minPlcIdelMin = -1;
|
||||
int.TryParse(CHANGE_ODL_HOURS, out minOdlDurHours);
|
||||
int.TryParse(CHANGE_ODL_IDLE_MIN, out minPlcIdelMin);
|
||||
// controllo parametri validi
|
||||
if (minOdlDurHours > 0 && minPlcIdelMin >= 0)
|
||||
{
|
||||
// leggo da server inizio ODL... se non multi 1 solo...
|
||||
inizioOdl = DateTime.Now;
|
||||
rawDataInizio = "";
|
||||
if (!isMulti)
|
||||
{
|
||||
rawDataInizio = callUrl(urlInizioOdlIob, false);
|
||||
DateTime.TryParse(rawDataInizio, out inizioOdl);
|
||||
}
|
||||
else
|
||||
{
|
||||
DateTime tmpData = DateTime.Now;
|
||||
// prendo il + vecchio...
|
||||
foreach (var item in elencoMulti)
|
||||
{
|
||||
fullUrl = $"{urlInizioOdlIob}|{item}";
|
||||
rawDataInizio = callUrl(fullUrl, false);
|
||||
DateTime.TryParse(rawDataInizio, out tmpData);
|
||||
inizioOdl = (tmpData < inizioOdl) ? tmpData : inizioOdl;
|
||||
}
|
||||
}
|
||||
// verifico se sia scaduto...
|
||||
if (inizioOdl.AddHours(minOdlDurHours) < adesso)
|
||||
{
|
||||
string rawIdle = "";
|
||||
int idlePeriod = 0;
|
||||
if (!isMulti)
|
||||
{
|
||||
// controllo SE sono fermo (spento o in manuale) per il
|
||||
// periodo minimo richiesto...
|
||||
rawIdle = callUrl(urlIdleTime, false);
|
||||
int.TryParse(rawIdle, out idlePeriod);
|
||||
}
|
||||
else
|
||||
{
|
||||
int tmpIdle = 0;
|
||||
// prendo il + grande...
|
||||
foreach (var item in elencoMulti)
|
||||
{
|
||||
fullUrl = $"{urlIdleTime}|{item}";
|
||||
rawIdle = callUrl(fullUrl, false);
|
||||
int.TryParse(rawIdle, out tmpIdle);
|
||||
idlePeriod = tmpIdle > idlePeriod ? tmpIdle : idlePeriod;
|
||||
}
|
||||
}
|
||||
if (idlePeriod >= minPlcIdelMin)
|
||||
{
|
||||
callChangeODL = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
// se NON fosse scaduto MA è simulato esegue controllo sul num pezzi da
|
||||
// fare, se sfora (RANDOM) > +(50...110)% --> cambia!
|
||||
if (!callChangeODL && IOBConfFull.Odl.ChangeOdlMode == "SIMUL")
|
||||
{
|
||||
var rawCount = callUrl(urlGetNumPzCurrODL, false);
|
||||
if (int.TryParse(rawCount, out var numPzReqOdl))
|
||||
{
|
||||
int limitQty = (numPzReqOdl * rndGen.Next(150, 210)) / 100;
|
||||
callChangeODL = contapezziPLC > limitQty;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// vero processing...
|
||||
if (callChangeODL)
|
||||
{
|
||||
lgTrace("Chiamata: processAutoOdl --> forceSplitODL");
|
||||
fatto = forceSplitOdl();
|
||||
pzCountResetted = false;
|
||||
lgInfo("Esecuzione processAutoOdl completata --> pzCountResetted = false");
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lgTrace("processAutoOdl | AutoChangeOdl DISABILITATO");
|
||||
}
|
||||
// loggo se ok + processing post opzionali
|
||||
if (fatto)
|
||||
{
|
||||
lgInfo($"Effettuato processAutoOdl | mode: {CHANGE_ODL_MODE}");
|
||||
lgInfo($"Effettuato processAutoOdl | mode: {IOBConfFull.Odl.ChangeOdlMode}");
|
||||
processAutoOdlExtraStep();
|
||||
}
|
||||
}
|
||||
@@ -3546,10 +3654,12 @@ namespace IOB_WIN_FORM.Iob
|
||||
/// </summary>
|
||||
protected int B_previous = -1;
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Modalità cambio ODL
|
||||
/// </summary>
|
||||
protected string CHANGE_ODL_MODE = "";
|
||||
protected string CHANGE_ODL_MODE = "";
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Cod grupo IOB x creazione PODL al volo
|
||||
@@ -8264,12 +8374,14 @@ namespace IOB_WIN_FORM.Iob
|
||||
{
|
||||
bool.TryParse(getOptPar("ENABLE_SLOW_DATA"), out enableSlowData);
|
||||
}
|
||||
#if false
|
||||
// modalità change ODL
|
||||
CHANGE_ODL_MODE = "TIME";
|
||||
if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE")))
|
||||
{
|
||||
CHANGE_ODL_MODE = getOptPar("CHANGE_ODL_MODE");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (!string.IsNullOrEmpty(getOptPar("ENABLE_MEM_REWRITE")))
|
||||
{
|
||||
bool.TryParse(getOptPar("ENABLE_MEM_REWRITE"), out ENABLE_MEM_REWRITE);
|
||||
|
||||
@@ -50,6 +50,9 @@ BLINK_FILT=0
|
||||
AUTO_CHANGE_ODL=TRUE
|
||||
;CHANGE_ODL_MODE=PZCOUNT_RESET
|
||||
CHANGE_ODL_MODE=DAILY_CONF_PZ
|
||||
CHANGE_PZCOUNT_RESET=TRUE
|
||||
RESET_COUNT_PRE=100
|
||||
RESET_COUNT_POST=20
|
||||
PZCOUNT_MODE=OPC
|
||||
DISABLE_PZCOUNT=FALSE
|
||||
ENABLE_SEND_PZC_BLOCK=TRUE
|
||||
|
||||
@@ -245,9 +245,15 @@
|
||||
<None Include="DATA\CONF\Tend_RAMA_10_47_alarm.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="DATA\CONF\TFT_RAMA_001.ini" />
|
||||
<None Include="DATA\CONF\TFT_RAMA_001.json" />
|
||||
<None Include="DATA\CONF\TFT_RAMA_001_alarm.json" />
|
||||
<None Include="DATA\CONF\TFT_RAMA_001.ini">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="DATA\CONF\TFT_RAMA_001.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="DATA\CONF\TFT_RAMA_001_alarm.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="NLog.config">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
|
||||
@@ -48,10 +48,6 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
int.TryParse(getOptPar("MAX_TRY_PING"), out maxTryPing);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// gestione data filtering...
|
||||
if (!string.IsNullOrEmpty(getOptPar("ENABLE_DATA_FILTER")))
|
||||
{
|
||||
@@ -472,15 +468,30 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
{
|
||||
if (enablePzCountByApp)
|
||||
{
|
||||
if (string.IsNullOrEmpty(opcUaParams.keyPartCount))
|
||||
bool hasReset = false;
|
||||
string currPzCount = "";
|
||||
// modalità 1: verifico se ho condizioni di abilitazione del contapezzi
|
||||
if (checkMultiCondition(opcUaParams.condCountEnabled) || opcUaParams.condCountEnabled.checkList.Count == 0)
|
||||
{
|
||||
lgTrace("Gestione contapezzi: manca parametro per keyPartCount");
|
||||
lgTrace($"processContapezzi | check 01 | opcUaParams.keyPartCount: {opcUaParams.keyPartCount}");
|
||||
// cerco parametro contapezzi...
|
||||
currPzCount = getDataItemValue(opcUaParams.keyPartCount);
|
||||
}
|
||||
else
|
||||
{
|
||||
lgTrace("processContapezzi | check 01 | manca parametro per keyPartCount");
|
||||
}
|
||||
|
||||
// modalità 2: verifico conf di keyPartCount
|
||||
if (string.IsNullOrEmpty(opcUaParams.keyPartCount))
|
||||
{
|
||||
lgTrace("processContapezzi | check 02 | check 022 | manca parametro per keyPartCount");
|
||||
}
|
||||
else
|
||||
{
|
||||
lgTrace($"processContapezzi | check 02 | opcUaParams.keyPartCount: {opcUaParams.keyPartCount}");
|
||||
// cerco parametro contapezzi... gest alternativa se è un parametro SPECIALE
|
||||
// (con "#")
|
||||
string currPzCount = "";
|
||||
if (opcUaParams.keyPartCount.Contains(opcUaParams.kvDelim))
|
||||
{
|
||||
int iPos = opcUaParams.keyPartCount.IndexOf(opcUaParams.kvDelim);
|
||||
@@ -495,38 +506,58 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
currPzCount = getDataItemValue(opcUaParams.keyPartCount);
|
||||
}
|
||||
|
||||
// se ho un contapezzi... processo...
|
||||
if (!string.IsNullOrEmpty(currPzCount))
|
||||
}
|
||||
|
||||
// se ho un contapezzi... processo...
|
||||
if (!string.IsNullOrEmpty(currPzCount))
|
||||
{
|
||||
int newVal = -1;
|
||||
bool fatto = Int32.TryParse(currPzCount, out newVal);
|
||||
|
||||
if (fatto)
|
||||
{
|
||||
int newVal = -1;
|
||||
bool fatto = Int32.TryParse(currPzCount, out newVal);
|
||||
|
||||
if (fatto)
|
||||
// gestione decremento contapezzi: viene "messo via" solo SE c'è un
|
||||
// effettivo decremento contapezzi...
|
||||
if (newVal < contapezziPLC)
|
||||
{
|
||||
// gestione decremento contapezzi: viene "messo via" solo SE c'è un
|
||||
// effettivo decremento contapezzi...
|
||||
if (newVal < contapezziPLC)
|
||||
{
|
||||
pzCountResetted = true;
|
||||
// incremento contatore richiesta
|
||||
countKeyRichiesta = countKeyRichiesta + 1;
|
||||
// log
|
||||
lgInfo("Contapezzi resettato (PLC) --> pzCountResetted = true");
|
||||
}
|
||||
hasReset = true;
|
||||
// incremento contatore richiesta
|
||||
countKeyRichiesta = countKeyRichiesta + 1;
|
||||
// log
|
||||
lgInfo("Rilevato Reset Contapezzi PLC 01");
|
||||
}
|
||||
|
||||
// salvo nuovo valore contapezziPLC
|
||||
contapezziPLC = newVal > -1 ? newVal : contapezziPLC;
|
||||
}
|
||||
else
|
||||
{
|
||||
lgError($"Errore in decodifica valore contapezzi, valore rilevato: {currPzCount}");
|
||||
}
|
||||
// salvo nuovo valore contapezziPLC
|
||||
contapezziPLC = newVal > -1 ? newVal : contapezziPLC;
|
||||
}
|
||||
else
|
||||
{
|
||||
lgError("Errore in decodifica valore contapezzi, valore vuoto!");
|
||||
lgError($"Errore in decodifica valore contapezzi, valore rilevato: {currPzCount}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lgError($"Errore in decodifica valore contapezzi da {opcUaParams.keyPartCount} | valore vuoto!");
|
||||
}
|
||||
|
||||
|
||||
// controllo comunque, se è ZERO il contapezzi, e sul server è maggiore il
|
||||
// valore x ODL e NON abilitato il trigger reset --> abilito trigger...
|
||||
if (!pzCountResetted && contapezziPLC <= IOBConfFull.Odl.ResetCountMaxPost && contapezziIOB >= IOBConfFull.Odl.ResetCountMinPre)
|
||||
{
|
||||
hasReset = true;
|
||||
// incremento contatore richiesta
|
||||
countKeyRichiesta = countKeyRichiesta + 1;
|
||||
// log
|
||||
lgInfo($"Rilevato Reset Contapezzi PLC 02 | PLC = {contapezziPLC} <= {IOBConfFull.Odl.ResetCountMaxPost} | IOB = {contapezziIOB} >= {IOBConfFull.Odl.ResetCountMinPre}) | pzCountResetted = true");
|
||||
}
|
||||
|
||||
// 2025.03.05 calcolo condizione contapezzi con NUOVO CONF
|
||||
if (IOBConfFull.Odl.ChangeOnResetCount)
|
||||
{
|
||||
pzCountResetted = hasReset;
|
||||
lgInfo("Registrato trigger pzCountResetted");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,13 +23,8 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
/// <param name="IobConfFull">Configurazione (v 4.x)</param>
|
||||
public OpcUaCMS(AdapterFormNext caller, IobConfTree IobConfFull) : base(caller, IobConfFull)
|
||||
{
|
||||
// inizializzo classe base...
|
||||
if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE")))
|
||||
{
|
||||
CHANGE_ODL_MODE = getOptPar("CHANGE_ODL_MODE");
|
||||
}
|
||||
|
||||
// impostazioni specifiche OpcUA SCM
|
||||
// impostazioni specifiche OpcUA CMS/SCM
|
||||
lgInfo("Start adapter OpcUaCMS");
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
@@ -46,6 +41,7 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
return base.executeTasks(task2exe);
|
||||
}
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Effettua vero processing contapezzi
|
||||
/// </summary>
|
||||
@@ -92,7 +88,7 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
}
|
||||
}
|
||||
|
||||
if (CHANGE_ODL_MODE == "PZCOUNT_RESET")
|
||||
if (IOBConfFull.Odl.ChangeOdlMode == "PZCOUNT_RESET")
|
||||
{
|
||||
// controllo comunque, se è ZERO il contapezzi, e sul server è maggiore il
|
||||
// valore x ODL e NON abilitato il trigger reset --> abilito trigger...
|
||||
@@ -103,10 +99,11 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
countKeyRichiesta = countKeyRichiesta + 1;
|
||||
// log
|
||||
lgInfo("Contapezzi resettato (PLC==0 e IOB>PLC) --> pzCountResetted = true");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Effettua reset del contapezzi, NON POSSIBILE in questa versione
|
||||
|
||||
@@ -23,11 +23,7 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
/// <param name="IobConfFull">Configurazione (v 4.x)</param>
|
||||
public OpcUaEwon(AdapterFormNext caller, IobConfTree IobConfFull) : base(caller, IobConfFull)
|
||||
{
|
||||
// inizializzo classe base...
|
||||
if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE")))
|
||||
{
|
||||
CHANGE_ODL_MODE = getOptPar("CHANGE_ODL_MODE");
|
||||
}
|
||||
lgInfo("Start adapter OpcUaEwon");
|
||||
sendKeyRichiesta = true;
|
||||
}
|
||||
|
||||
@@ -45,6 +41,7 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
return base.executeTasks(task2exe);
|
||||
}
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Effettua vero processing contapezzi
|
||||
/// </summary>
|
||||
@@ -105,7 +102,8 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Effettua reset del contapezzi, NON POSSIBILE in questa versione
|
||||
|
||||
@@ -22,12 +22,6 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
public OpcUaEwonAdige(AdapterFormNext caller, IobConfTree IobConfFull) : base(caller, IobConfFull)
|
||||
{
|
||||
lgInfo("Init Ewon versione Adige/BLM");
|
||||
|
||||
// inizializzo classe base...
|
||||
if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE")))
|
||||
{
|
||||
CHANGE_ODL_MODE = getOptPar("CHANGE_ODL_MODE");
|
||||
}
|
||||
sendKeyRichiesta = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -20,12 +20,6 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
public OpcUaEwonBLM(AdapterFormNext caller, IobConfTree IobConfFull) : base(caller, IobConfFull)
|
||||
{
|
||||
lgInfo("Init Ewon versione BLM (Mecart)");
|
||||
|
||||
// inizializzo classe base...
|
||||
if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE")))
|
||||
{
|
||||
CHANGE_ODL_MODE = getOptPar("CHANGE_ODL_MODE");
|
||||
}
|
||||
sendKeyRichiesta = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,12 +22,6 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
public OpcUaEwonMecolpress(AdapterFormNext caller, IobConfTree IobConfFull) : base(caller, IobConfFull)
|
||||
{
|
||||
lgInfo("Init Ewon versione Mecolpress (STEL)");
|
||||
|
||||
// inizializzo classe base...
|
||||
if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE")))
|
||||
{
|
||||
CHANGE_ODL_MODE = getOptPar("CHANGE_ODL_MODE");
|
||||
}
|
||||
sendKeyRichiesta = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,11 +23,6 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
public OpcUaEwonMonti(AdapterFormNext caller, IobConfTree IobConfFull) : base(caller, IobConfFull)
|
||||
{
|
||||
lgInfo("Init Ewon versione Monti (Tenditalia)");
|
||||
// inizializzo classe base...
|
||||
if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE")))
|
||||
{
|
||||
CHANGE_ODL_MODE = getOptPar("CHANGE_ODL_MODE");
|
||||
}
|
||||
// impostazioni specifiche Ewon di Monti
|
||||
forceResetInRun = true;
|
||||
sendKeyRichiesta = true;
|
||||
@@ -37,6 +32,7 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
|
||||
#region Public Methods
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Effettua vero processing contapezzi
|
||||
/// </summary>
|
||||
@@ -97,7 +93,8 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
|
||||
@@ -24,11 +24,6 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
public OpcUaImas(AdapterFormNext caller, IobConfTree IobConfFull) : base(caller, IobConfFull)
|
||||
{
|
||||
lgInfo("Init OpcUa IMAS");
|
||||
// inizializzo classe base...
|
||||
if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE")))
|
||||
{
|
||||
CHANGE_ODL_MODE = getOptPar("CHANGE_ODL_MODE");
|
||||
}
|
||||
sendKeyRichiesta = true;
|
||||
}
|
||||
|
||||
@@ -46,6 +41,7 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
return base.executeTasks(task2exe);
|
||||
}
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Effettua vero processing contapezzi
|
||||
/// </summary>
|
||||
@@ -106,7 +102,8 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Effettua reset del contapezzi, NON POSSIBILE in questa versione
|
||||
|
||||
@@ -24,11 +24,6 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
public OpcUaKpw(AdapterFormNext caller, IobConfTree IobConfFull) : base(caller, IobConfFull)
|
||||
{
|
||||
lgInfo("Init OpcUa Kepware");
|
||||
// inizializzo classe base...
|
||||
if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE")))
|
||||
{
|
||||
CHANGE_ODL_MODE = getOptPar("CHANGE_ODL_MODE");
|
||||
}
|
||||
// gestione restart OpcUa client...
|
||||
if (!string.IsNullOrEmpty(getOptPar("ENABLE_CLI_RESTART")))
|
||||
{
|
||||
@@ -48,6 +43,7 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
|
||||
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Effettua vero processing contapezzi
|
||||
/// </summary>
|
||||
@@ -108,7 +104,8 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Effettua reset del contapezzi, NON POSSIBILE in questa versione
|
||||
|
||||
@@ -27,11 +27,6 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
public OpcUaKpwRama(AdapterFormNext caller, IobConfTree IobConfFull) : base(caller, IobConfFull)
|
||||
{
|
||||
lgInfo("Init OpcUa Kepware x RAMA");
|
||||
// inizializzo classe base...
|
||||
if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE")))
|
||||
{
|
||||
CHANGE_ODL_MODE = getOptPar("CHANGE_ODL_MODE");
|
||||
}
|
||||
// gestione restart OpcUa client...
|
||||
if (!string.IsNullOrEmpty(getOptPar("ENABLE_CLI_RESTART")))
|
||||
{
|
||||
|
||||
@@ -24,11 +24,6 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
public OpcUaMBH(AdapterFormNext caller, IobConfTree IobConfFull) : base(caller, IobConfFull)
|
||||
{
|
||||
lgInfo("Init OpcUa MBH");
|
||||
// inizializzo classe base...
|
||||
if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE")))
|
||||
{
|
||||
CHANGE_ODL_MODE = getOptPar("CHANGE_ODL_MODE");
|
||||
}
|
||||
// gestione restart OpcUa client...
|
||||
if (!string.IsNullOrEmpty(getOptPar("ENABLE_CLI_RESTART")))
|
||||
{
|
||||
@@ -56,6 +51,7 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
return base.executeTasks(task2exe);
|
||||
}
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Effettua vero processing contapezzi
|
||||
/// </summary>
|
||||
@@ -116,7 +112,8 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Effettua reset del contapezzi, NON POSSIBILE in questa versione
|
||||
|
||||
@@ -27,11 +27,6 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
lgInfo("Init OpcUa MBH versione Cimolai (Baglietto)");
|
||||
|
||||
// inizializzo classe base...
|
||||
if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE")))
|
||||
{
|
||||
CHANGE_ODL_MODE = getOptPar("CHANGE_ODL_MODE");
|
||||
lgInfo($"CHANGE_ODL_MODE: {CHANGE_ODL_MODE}");
|
||||
}
|
||||
if (!string.IsNullOrEmpty(getOptPar("VETO_SEND_SNAPSHOT")))
|
||||
{
|
||||
string strVETO_SEND_SNAPSHOT = getOptPar("VETO_SEND_SNAPSHOT");
|
||||
|
||||
@@ -23,12 +23,8 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
/// <param name="IobConfFull">Configurazione (v 4.x)</param>
|
||||
public OpcUaOmron(AdapterFormNext caller, IobConfTree IobConfFull) : base(caller, IobConfFull)
|
||||
{
|
||||
// inizializzo classe base...
|
||||
if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE")))
|
||||
{
|
||||
CHANGE_ODL_MODE = getOptPar("CHANGE_ODL_MODE");
|
||||
}
|
||||
sendKeyRichiesta = true;
|
||||
lgInfo("Avvio OpcUaOmron");
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
@@ -45,6 +41,7 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
return base.executeTasks(task2exe);
|
||||
}
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Effettua vero processing contapezzi
|
||||
/// </summary>
|
||||
@@ -105,7 +102,8 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Effettua reset del contapezzi, NON POSSIBILE in questa versione
|
||||
|
||||
@@ -213,10 +213,6 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
public OpcUaOmronIcoel(AdapterFormNext caller, IobConfTree IobConfFull) : base(caller, IobConfFull)
|
||||
{
|
||||
// inizializzo classe base...
|
||||
if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE")))
|
||||
{
|
||||
CHANGE_ODL_MODE = getOptPar("CHANGE_ODL_MODE");
|
||||
}
|
||||
sendKeyRichiesta = true;
|
||||
doByteRead = true;
|
||||
lgInfo($"Avviato IobOpcUaOmronIcoel | encodeReadData: {doByteRead}");
|
||||
|
||||
@@ -28,11 +28,6 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
public OpcUaSiemens(AdapterFormNext caller, IobConfTree IobConfFull) : base(caller, IobConfFull)
|
||||
{
|
||||
lgInfo("Init OpcUa Siemens");
|
||||
// inizializzo classe base...
|
||||
if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE")))
|
||||
{
|
||||
CHANGE_ODL_MODE = getOptPar("CHANGE_ODL_MODE");
|
||||
}
|
||||
// gestione restart OpcUa client...
|
||||
if (!string.IsNullOrEmpty(getOptPar("ENABLE_CLI_RESTART")))
|
||||
{
|
||||
@@ -114,6 +109,7 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
return base.executeTasks(task2exe);
|
||||
}
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Effettua vero processing contapezzi
|
||||
/// </summary>
|
||||
@@ -188,7 +184,8 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Effettua reset del contapezzi, NON POSSIBILE in questa versione
|
||||
|
||||
@@ -21,14 +21,8 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
/// <param name="IobConfFull">Configurazione (v 4.x)</param>
|
||||
public OpcUaSiemensOMP(AdapterFormNext caller, IobConfTree IobConfFull) : base(caller, IobConfFull)
|
||||
{
|
||||
lgInfo("Init OpcUa Siemens versione OMP (Cereria Finassi)");
|
||||
|
||||
// inizializzo classe base...
|
||||
if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE")))
|
||||
{
|
||||
CHANGE_ODL_MODE = getOptPar("CHANGE_ODL_MODE");
|
||||
}
|
||||
sendKeyRichiesta = true;
|
||||
lgInfo("Init OpcUa Siemens versione OMP (Cereria Finassi)");
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
@@ -24,11 +24,6 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
public OpcUaUlma(AdapterFormNext caller, IobConfTree IobConfFull) : base(caller, IobConfFull)
|
||||
{
|
||||
lgInfo("Init OpcUa ULMA");
|
||||
// inizializzo classe base...
|
||||
if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE")))
|
||||
{
|
||||
CHANGE_ODL_MODE = getOptPar("CHANGE_ODL_MODE");
|
||||
}
|
||||
sendKeyRichiesta = true;
|
||||
}
|
||||
|
||||
@@ -46,6 +41,7 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
return base.executeTasks(task2exe);
|
||||
}
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Effettua vero processing contapezzi
|
||||
/// </summary>
|
||||
@@ -106,7 +102,8 @@ namespace IOB_WIN_OPC_UA.IobOpc
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Effettua reset del contapezzi, NON POSSIBILE in questa versione
|
||||
|
||||
@@ -43,8 +43,9 @@ REM IOBVPN4MACHINE
|
||||
REM ROBOCOPY %2 \\10.51.90.5\Steamware\IOB-WIN-OPC-UA-DEB /MIR
|
||||
REM ROBOCOPY %2 \\10.51.90.5\Steamware\IOB-WIN-OPC-UA-DEB /MIR /log:RobocopyTransfer.log
|
||||
REM ROBOCOPY %2 Z:\IOB-WIN-OPC-UA-DEB /MIR
|
||||
ROBOCOPY %2 \\10.51.90.9\Steamware\IOB-WIN-OPC-UA-DEB /MIR
|
||||
REM ROBOCOPY %2 \\10.51.90.9\Steamware\IOB-WIN-OPC-UA-DEB /MIR
|
||||
REM ROBOCOPY %2 \\10.51.90.10\Steamware\IOB-WIN-OPC-UA-DEB /MIR
|
||||
ROBOCOPY %2 \\10.51.90.15\Steamware\IOB-WIN-OPC-UA-DEB /MIR
|
||||
|
||||
goto END
|
||||
|
||||
|
||||
Reference in New Issue
Block a user