diff --git a/IOB-WIN-NEXT/DATA/CONF/1033.ini b/IOB-WIN-NEXT/DATA/CONF/1033.ini
new file mode 100644
index 00000000..dc69397a
--- /dev/null
+++ b/IOB-WIN-NEXT/DATA/CONF/1033.ini
@@ -0,0 +1,67 @@
+;Configurazione IOB-WIN
+[IOB]
+;Macchina transfer COSMAP per Donati
+CNCTYPE=SIEMENS_ROBOTSERVICE
+PING_MS_TIMEOUT=500
+
+[MACHINE]
+VENDOR=RobotService
+MODEL=SMER12
+
+[CNC]
+IP=192.168.51.138
+CPUTYPE=S71500
+RACK=0
+SLOT=0
+
+[SERVER]
+MPIP=http://192.168.51.79
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+
+[MEMORY]
+ADDR_READ=DB15.DBB0
+ADDR_WRITE=DB14.DBB0
+SIZE_READ=10
+SIZE_WRITE=517
+
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 15
+;bit0 = 0
+;bit1 = 0
+;bit2 = 1
+;bit3 = 1
+;bit4 = 1
+;bit5 = 0
+;bit6 = 0
+;bit7 = 0
+BLINK_FILT=0
+;BLINK_FILT=28
+
+[OPTPAR]
+;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
+PZCOUNT_MODE=STD.DB15.DBDW2
+DISABLE_PZCOUNT=FALSE
+ENABLE_SEND_PZC_BLOCK=TRUE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+; gestione custom timer
+timerIntMs=30
+; GEST DATI DYN
+ENABLE_DYN_DATA=TRUE
+FORCE_DYN_DATA=TRUE
+; gestione scrittura string/char[]: true = string / false = char[]
+WRITE_PRE=TRUE
+
+; conf parametri memoria READ/WRITE
+PARAM_CONF=1033.json
+
+[BRANCH]
+NAME=master
\ No newline at end of file
diff --git a/IOB-WIN-NEXT/DATA/CONF/1033.json b/IOB-WIN-NEXT/DATA/CONF/1033.json
new file mode 100644
index 00000000..681d6240
--- /dev/null
+++ b/IOB-WIN-NEXT/DATA/CONF/1033.json
@@ -0,0 +1,52 @@
+{
+ "mMapWrite": {
+ "setComm": {
+ "name": "setComm",
+ "description": "Commessa",
+ "tipoMem": "String",
+ "memAddr": "DB14.DBB0",
+ "index": 0,
+ "size": 50
+ },
+ "setArt": {
+ "name": "setArt",
+ "description": "Articolo",
+ "tipoMem": "String",
+ "memAddr": "DB14.DBB256",
+ "index": 256,
+ "size": 50
+ },
+ "setPzComm": {
+ "name": "setPzComm",
+ "description": "Qty",
+ "memAddr": "DB14.DBB512",
+ "tipoMem": "DInt",
+ "index": 512,
+ "size": 4
+ }
+ },
+ "mMapRead": {
+ "Contatore01": {
+ "name": "PezziFineCiclo",
+ "description": "Mancanti programmati",
+ "memAddr": "DB15.DBB6",
+ "tipoMem": "DInt",
+ "index": 6,
+ "size": 4,
+ "func": "MAX",
+ "period": 60,
+ "factor": 1
+ },
+ "ContatoreParziale": {
+ "name": "ContaPezzi",
+ "description": "Contapezzi MES DBB2",
+ "memAddr": "DB15.DBB2",
+ "tipoMem": "DInt",
+ "index": 2,
+ "size": 4,
+ "func": "MAX",
+ "period": 60,
+ "factor": 1
+ }
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj
index 897e6301..ffe9e62b 100644
--- a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj
+++ b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj
@@ -178,6 +178,7 @@
+
@@ -223,6 +224,12 @@
+
+ Always
+
+
+ Always
+
Always
diff --git a/IOB-WIN-NEXT/IobSiemensRobotService.cs b/IOB-WIN-NEXT/IobSiemensRobotService.cs
index 38039e3b..194026fe 100644
--- a/IOB-WIN-NEXT/IobSiemensRobotService.cs
+++ b/IOB-WIN-NEXT/IobSiemensRobotService.cs
@@ -76,66 +76,28 @@ namespace IOB_WIN_NEXT
* B2: pzCount
* B3: allarme
* B4: manuale
- * B5: emergenza (1=attiva/premuta, 0=armed)
+ * B5: MagOutPieno
+ * B6: MagInVuoto
*
----------------------------------------------------- */
- bool fatto = false;
- ushort currStatus = 0;
- ushort allarme = 0;
- ushort valW = 0;
+ byte mainData = RawInput[0];
- var MemInt = new byte[2];
-
- // recupero
- //fatto = S7ReadBB(ref MemInt, "DB6.DBW204", 2);
- //valW = S7.Net.Types.Word.FromByteArray(MemInt.ToArray());
- //var testalW = S7.Net.Types.Word.FromByteArray(RawInput.Skip(204).Take(2).ToArray());
- currStatus = S7.Net.Types.Word.FromByteArray(RawInput.Skip(204).Take(2).ToArray());
-
- //fatto = S7ReadBB(ref MemInt, "DB6.DBW206", 2);
- //valW = S7.Net.Types.Word.FromByteArray(MemInt.ToArray());
- //allarme = valW;
- allarme = S7.Net.Types.Word.FromByteArray(RawInput.Skip(206).Take(2).ToArray());
-
- int byteSignals = 0;
+ // copio il primo byte
+ int byteSignals = RawInput[0];
// bit 0 (poweron) imposto a 1 SE connected...
if (currPLC.IsConnected)
{
byteSignals += (1 << 0);
}
- // processo dagli stati + gravi...
- if (allarme > 0)
- {
- byteSignals += (1 << 3);
- }
-
- switch (currStatus)
- {
- case 1:
- byteSignals += (1 << 1);
- break;
-
- case 2:
- byteSignals += (1 << 4);
- break;
-
- case 3:
- byteSignals += (1 << 5);
- break;
-
- default:
- break;
- }
-
// salvo!
B_input = byteSignals;
// log opzionale!
if (verboseLog)
{
- lgInfo($"Trasformazione dati: Status:{currStatus} | alarm:{allarme} --> B_input: {B_input}");
+ lgInfo($"Trasformazione dati: B0: {mainData} --> B_input: {B_input}");
}
}
@@ -216,24 +178,24 @@ namespace IOB_WIN_NEXT
break;
case taskType.forceResetPzCount:
- // processo scrittura BIT su DB6.DBDW216
- MemBlock = new byte[4];
- MemBlock = S7.Net.Types.DInt.ToByteArray(1);
- memAddrWrite = "DB6.DBDW216";
+ // processo scrittura BIT su DB6.DBB516
+ MemBlock = new byte[1];
+ MemBlock = S7.Net.Types.Byte.ToByteArray(1);
+ memAddrWrite = "DB14.DBB516";
break;
case taskType.startSetup:
- // processo scrittura BIT su DB6.DBDW216
- MemBlock = new byte[4];
- MemBlock = S7.Net.Types.DInt.ToByteArray(1);
- memAddrWrite = "DB6.DBDW216";
+ // processo scrittura BIT su DB6.DBB516
+ MemBlock = new byte[1];
+ MemBlock = S7.Net.Types.Byte.ToByteArray(1);
+ memAddrWrite = "DB14.DBB516";
break;
case taskType.stopSetup:
- // processo scrittura BIT su DB6.DBDW216
- MemBlock = new byte[4];
- MemBlock = S7.Net.Types.DInt.ToByteArray(0);
- memAddrWrite = "DB6.DBDW216";
+ // processo scrittura BIT su DB6.DBB516
+ MemBlock = new byte[1];
+ MemBlock = S7.Net.Types.Byte.ToByteArray(0);
+ memAddrWrite = "DB14.DBB516";
break;
case taskType.setParameter: