diff --git a/IOB-UT-NEXT/Config/IobConfTree.cs b/IOB-UT-NEXT/Config/IobConfTree.cs
index 9518ac9b..3fc607ba 100644
--- a/IOB-UT-NEXT/Config/IobConfTree.cs
+++ b/IOB-UT-NEXT/Config/IobConfTree.cs
@@ -221,7 +221,19 @@ namespace IOB_UT_NEXT.Config
exclOptPar.Add("READ_ERROR_SLEEP_TIME");
// multi...
- newConfObj.Device.IsMulti = Convert.ToBoolean(fIni.ReadString("OPTPAR", "IS_MULTI", "false")) || fIni.ReadString("OPTPAR", "IS_MULTI", "0") == "1";
+ if (!string.IsNullOrEmpty(fIni.ReadString("OPTPAR", "IS_MULTI", "false")))
+ {
+ string rawVal = fIni.ReadString("OPTPAR", "IS_MULTI", "");
+ if (rawVal.Length > 1)
+ {
+ newConfObj.Device.IsMulti = Convert.ToBoolean(fIni.ReadString("OPTPAR", "IS_MULTI", "false"));
+ }
+ else
+ {
+ newConfObj.Device.IsMulti = fIni.ReadInteger("OPTPAR", "IS_MULTI", 0) == 1;
+ }
+ //newConfObj.Device.IsMulti = Convert.ToBoolean(fIni.ReadString("OPTPAR", "IS_MULTI", "false")) || fIni.ReadInteger("OPTPAR", "IS_MULTI", 0) == 1;
+ }
exclOptPar.Add("IS_MULTI");
// BLINK
diff --git a/IOB-WIN-FORM/Iob/Generic.cs b/IOB-WIN-FORM/Iob/Generic.cs
index a263ea43..998d576c 100644
--- a/IOB-WIN-FORM/Iob/Generic.cs
+++ b/IOB-WIN-FORM/Iob/Generic.cs
@@ -1954,8 +1954,21 @@ namespace IOB_WIN_FORM.Iob
{
// 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);
+ string autoOdlRes = "";
+ if (!isMulti)
+ {
+ // chiamo stored x creare ODL giornalieri alla data + conferma pezzi...
+ autoOdlRes = utils.callUrl(urlFixDailyOdlConfPzCount);
+ }
+ else
+ {
+ // prendo il + vecchio...
+ foreach (var item in elencoMulti)
+ {
+ fullUrl = $@"{urlCommand("fixDailyOdlConfPzCount")}{item}";
+ autoOdlRes = callUrl(fullUrl, false);
+ }
+ }
fatto = autoOdlRes == "OK";
}
break;
@@ -2650,7 +2663,7 @@ namespace IOB_WIN_FORM.Iob
{
string answ = "";
// solo se valore !="", su DynData...
- if (flusso != "DYNDATA" || !string.IsNullOrEmpty(valore))
+ if (flusso != "DYNDATA" || !string.IsNullOrEmpty(valore))
{
try
{
diff --git a/IOB-WIN-MTC/DATA/CONF/3024-PING.ini b/IOB-WIN-MTC/DATA/CONF/3024-PING.ini
deleted file mode 100644
index cc4abec9..00000000
--- a/IOB-WIN-MTC/DATA/CONF/3024-PING.ini
+++ /dev/null
@@ -1,57 +0,0 @@
-;Configurazione IOB-WIN
-[IOB]
-CNCTYPE=PingWatchdog
-PING_MS_TIMEOUT=500
-IOB_NAME=3024
-
-[MACHINE]
-VENDOR=STEAMWARE
-MODEL=WATCHDOG
-
-[CNC]
-IP=192.168.0.68
-;IP=192.168.1.7 Server MP
-PORT=0000
-
-[SERVER]
-MPIP=http://192.168.1.7
-MPURL=/MP/IO
-CMDBASE=/IOB/input/
-CMDFLOG=/IOB/flog/
-CMDALIVE=/IOB
-CMDENABLED=/IOB/enabled/
-CMDADV1=?valore=
-CMDREBO=/sendReboot.aspx?idxMacchina=
-CMD_ODL_STARTED=/IOB/getCurrOdlStart/
-CMD_FORCLE_SPLIT_ODL=/IOB/forceSplitOdlFull/
-CMD_IDLE_TIME=/IOB/getIdlePeriod/
-
-[MEMORY]
-
-[BLINK]
-MAX_COUNTER_BLINK = 15
-BLINK_FILT=0
-
-[OPTPAR]
-timerIntMs=300
-VETO_QUEUE_IN=15
-AUTO_CHANGE_ODL=false
-POWEROFF_TIMEOUT_SEC=60
-DISABLE_PZCOUNT=TRUE
-;; gestioni PING
-;MAX_TRY_PING=3
-;VETO_QUEUE_IN=4
-;VETO_PING_SEC=4
-;VETO_CHECKDIR_SEC=10
-;MAX_ELAPSED_TIME_SEC=60
-;VETO_SEND_SNAPSHOT=3
-
-[BRANCH]
-NAME=master
-
-; Tags manuali
-[TAGS]
-Customer=JETCO
-HostOS=WIN
-HostName=IOB-WIN-09
-HostAddr=192.168.1.133
diff --git a/IOB-WIN-MTC/DATA/DAT/PersistData.dat b/IOB-WIN-MTC/DATA/DAT/PersistData.dat
deleted file mode 100644
index 5f282702..00000000
--- a/IOB-WIN-MTC/DATA/DAT/PersistData.dat
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/DAT/SimData.dat b/IOB-WIN-MTC/DATA/DAT/SimData.dat
deleted file mode 100644
index c59e4823..00000000
--- a/IOB-WIN-MTC/DATA/DAT/SimData.dat
+++ /dev/null
@@ -1,959 +0,0 @@
-;------------------------------------------------------------------------------------
-; filevalori simulati x provare sistema dati e filtraggio... commenti iniziano per ';', valori formato data#valore#counter
-; NOTE FILE:
-; - bit come macchine std IOB
-; B0 = POWERON
-; B1 = RUN
-; B2 = CONTAPEZZO
-; B3 = ALLARME
-; B4 = MANUALE
-; B5 = NA
-; B6 = NA
-; B7 = NA
-; - segnali alternanti su 00011100
-;------------------------------------------------------------------------------------
-;
-;----------------------------
-; inizio da spenta
-0
-0
-; indico accesa
-1
-1
-1
-; allarme (BLINK)
-9
-9
-9
-9
-9
-1
-1
-1
-1
-1
-1
-9
-9
-9
-9
-9
-1
-1
-1
-1
-1
-19
-9
-9
-9
-9
-1
-1
-1
-1
-1
-1
-; allarme manuale (2 blink, periodo diverso)
-25
-25
-17
-17
-9
-9
-1
-1
-25
-25
-17
-17
-9
-9
-1
-1
-25
-25
-17
-17
-9
-9
-1
-1
-25
-25
-17
-17
-9
-9
-1
-1
-25
-25
-17
-17
-9
-9
-1
-1
-; indico manuale
-17
-17
-17
-17
-17
-17
-17
-17
-17
-17
-1
-1
-1
-1
-1
-1
-1
-1
-17
-17
-17
-17
-17
-17
-17
-17
-17
-17
-1
-1
-1
-1
-1
-1
-1
-1
-17
-17
-17
-17
-17
-17
-17
-17
-17
-17
-1
-1
-1
-1
-1
-1
-1
-1
-; RUN!
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-; contapezzo
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-; RUN
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-; contapezzo
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-; RUN
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-; contapezzo
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-; RUN
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-; allarme (BLINK)
-9
-9
-9
-9
-9
-1
-1
-1
-1
-1
-1
-9
-9
-9
-9
-9
-1
-1
-1
-1
-1
-19
-9
-9
-9
-9
-1
-1
-1
-1
-1
-1
-; allarme manuale (2 blink, periodo diverso)
-25
-25
-17
-17
-9
-9
-1
-1
-25
-25
-17
-17
-9
-9
-1
-1
-25
-25
-17
-17
-9
-9
-1
-1
-25
-25
-17
-17
-9
-9
-1
-1
-25
-25
-17
-17
-9
-9
-1
-1
-; indico manuale
-17
-17
-17
-17
-17
-17
-17
-17
-17
-17
-1
-1
-1
-1
-1
-1
-1
-1
-17
-17
-17
-17
-17
-17
-17
-17
-17
-17
-1
-1
-1
-1
-1
-1
-1
-1
-17
-17
-17
-17
-17
-17
-17
-17
-17
-17
-1
-1
-1
-1
-1
-1
-1
-1
-; RUN!
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-; contapezzo
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-; RUN
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-; contapezzo
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-7
-7
-7
-7
-7
-3
-3
-3
-3
-3
-3
-; RUN
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/HIST/.placeholder b/IOB-WIN-MTC/DATA/HIST/.placeholder
deleted file mode 100644
index 5f282702..00000000
--- a/IOB-WIN-MTC/DATA/HIST/.placeholder
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/IOB-WIN-MTC/IOB-WIN-MTC.csproj b/IOB-WIN-MTC/IOB-WIN-MTC.csproj
index 7c65f3bd..933cacd4 100644
--- a/IOB-WIN-MTC/IOB-WIN-MTC.csproj
+++ b/IOB-WIN-MTC/IOB-WIN-MTC.csproj
@@ -268,7 +268,6 @@
Resources.resx
True
-
Always
@@ -315,15 +314,6 @@
-
- Always
-
-
- Always
-
-
- Always
-
diff --git a/IOB-WIN-OPC-UA/DATA/CONF/MAIN.ini b/IOB-WIN-OPC-UA/DATA/CONF/MAIN.ini
index 2fae86cc..6f363224 100644
--- a/IOB-WIN-OPC-UA/DATA/CONF/MAIN.ini
+++ b/IOB-WIN-OPC-UA/DATA/CONF/MAIN.ini
@@ -27,6 +27,7 @@ CLI_INST=SteamWareSim
;STARTLIST=TEND_250_53
;STARTLIST=Tend_RAMA_10_47
;STARTLIST=3026
-STARTLIST=TFT_RAMA_001
+;STARTLIST=TFT_RAMA_001
+STARTLIST=SIM_DP_02
MAXCNC=10
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/DATA/CONF/SIM_DP_02.ini b/IOB-WIN-OPC-UA/DATA/CONF/SIM_DP_02.ini
new file mode 100644
index 00000000..50358b12
--- /dev/null
+++ b/IOB-WIN-OPC-UA/DATA/CONF/SIM_DP_02.ini
@@ -0,0 +1,98 @@
+;Configurazione IOB-WIN
+[IOB]
+CNCTYPE=SIMULA
+PING_MS_TIMEOUT=500
+MinDeltaSec=5
+EnableRedisQueue=true
+
+[MACHINE]
+VENDOR=STEAMWARE
+MODEL=DEMO_SIMULATOR_MULTI
+
+[CNC]
+IP=127.0.0.1
+PORT=0000
+
+[SERVER]
+MPIP=http://10.74.82.218
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+CMD_ODL_STARTED=/IOB/getCurrOdlStart/
+CMD_FORCLE_SPLIT_ODL=/IOB/forceSplitOdlFull/
+CMD_IDLE_TIME=/IOB/getIdlePeriod/
+
+[MEMORY]
+
+[BLINK]
+MAX_COUNTER_BLINK = 15
+BLINK_FILT=0
+
+[OPTPAR]
+AUTO_CHANGE_ODL=true
+CHANGE_ODL_HOURS=24
+CHANGE_ODL_IDLE_MIN=0
+; gestione custom timer
+timerIntMs=100
+;elenco comma separated delle sub-machine (tipicamente tavole)
+IOB_MULTI_CNAME=TAV_1,TAV_2
+;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
+PZCOUNT_MODE=BIT
+ENABLE_PZ_RESET=TRUE
+;gestione invio pezzi in blocco
+ENABLE_SEND_PZC_BLOCK=TRUE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+MIN_DURATA_ODL=960
+; per il simulatore: 50|1 = WAIT 50, DURATION 1 con riferimento al PERIODO base (PER_BASE in ms, default 10 secondi)
+PER_BASE=10400
+SIM_PZCNT=10|2
+SIM_ALARM=1000|20
+SIM_MANU=50|6
+; 1 = indica che la macchina � multi --> allo scadere del contapezzo gestisce ANCHE il giro tavola sui bit relativi
+IS_MULTI=1
+; indica gestione e simulazione bit 5 --> slow/emergenza
+SIM_SLOW=6500|20
+; indica gestione e simulazione bit 6 --> warmup/cooldown
+SIM_WUCD=8000|20
+; indica gestione e simulazione bit 7 --> emergenza
+SIM_EMRG=4000|10
+; indica simulazione delle funzionalit� power ON/ OFF
+SIM_POW_ON_OFF=false
+T_ON=6
+T_OFF=22
+; indica simulazione controlli utente
+SIM_RC=82|1
+; indica simulazione registro scarti
+SIM_RS=162|1
+; indica simulazione dichiarazioni (note) utente
+SIM_DICH=262|1
+; indica matricola opr simulata
+SIM_MATR_OPR=1
+
+; conf parametri memoria READ/WRITE
+PARAM_CONF=SIM_DP_02.json
+
+;conf test FTP
+FTP_SERVER=ftp.steamware.net
+FTP_USER=testftpuser
+FTP_PWD=we4reFromB3rghem!
+FTP_CERT=
+FTP_SKIP=TRUE
+FTP_LOC_DIR=temp\csv
+FTP_REM_DIR=
+CSV_ADD_HEADER=true
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=Steamware
+HostOS=WIN
+HostName=IOB-WIN-SIMULA
+HostAddr=10.74.82.76
diff --git a/IOB-WIN-OPC-UA/DATA/CONF/SIM_DP_02.json b/IOB-WIN-OPC-UA/DATA/CONF/SIM_DP_02.json
new file mode 100644
index 00000000..5a79fdf6
--- /dev/null
+++ b/IOB-WIN-OPC-UA/DATA/CONF/SIM_DP_02.json
@@ -0,0 +1,92 @@
+{
+ "mMapWrite": {
+ "setArt": {
+ "name": "setArt",
+ "description": "Articolo",
+ "memAddr": "DB150.DBB12",
+ "tipoMem": "String",
+ "index": 12,
+ "size": 20
+ },
+ "setComm": {
+ "name": "setComm",
+ "description": "Commessa",
+ "memAddr": "DB150.DBB32",
+ "tipoMem": "String",
+ "index": 32,
+ "size": 20
+ },
+ "setPzComm": {
+ "name": "setPzComm",
+ "description": "Qta Richiesta",
+ "memAddr": "DB150.DBB8",
+ "tipoMem": "Int",
+ "index": 8,
+ "size": 4
+ },
+ "forceSetPzCount": {
+ "name": "forceSetPzCount",
+ "description": "Imposta Qta",
+ "memAddr": "DB150.DBB8",
+ "tipoMem": "Int",
+ "index": 8,
+ "size": 4
+ }
+ },
+ "mMapRead": {
+ "TEMP_01": {
+ "name": "TEMP_01",
+ "description": "Temperatura 01",
+ "tipoMem": "Real",
+ "minVal": 18,
+ "maxVal": 24
+ },
+ "POWER_01": {
+ "name": "POWER_01",
+ "description": "Potenza impianto",
+ "tipoMem": "Int",
+ "minVal": 40,
+ "maxVal": 80
+ },
+ "FEED_OVER": {
+ "name": "FEED_OVER",
+ "description": "FEED override",
+ "tipoMem": "Int",
+ "minVal": 0,
+ "maxVal": 100
+ },
+ "RAPID_OVER": {
+ "name": "RAPID_OVER",
+ "description": "RAPID override",
+ "tipoMem": "Int",
+ "minVal": 50,
+ "maxVal": 120
+ },
+ "POS_X": {
+ "name": "POS_X",
+ "description": "Asse X",
+ "tipoMem": "Int",
+ "minVal": -2000,
+ "maxVal": 2000
+ },
+ "POS_Y": {
+ "name": "POS_Y",
+ "description": "Asse Y",
+ "tipoMem": "Int",
+ "minVal": 0,
+ "maxVal": 2000
+ },
+ "POS_Z": {
+ "name": "POS_Z",
+ "description": "Asse Z",
+ "tipoMem": "Int",
+ "minVal": 0,
+ "maxVal": 1500
+ }
+ },
+ "optKVP": {
+ "fluxLogReduce": true,
+ "fluxLogRedDeadBand": 1.5,
+ "fluxLogResendPeriod": 15
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/IOB-WIN-OPC-UA.csproj b/IOB-WIN-OPC-UA/IOB-WIN-OPC-UA.csproj
index d2a001d9..54c1110d 100644
--- a/IOB-WIN-OPC-UA/IOB-WIN-OPC-UA.csproj
+++ b/IOB-WIN-OPC-UA/IOB-WIN-OPC-UA.csproj
@@ -225,6 +225,12 @@
+
+ Always
+
+
+ Always
+