From 419e13a82fcddee36d81356a3a9906ca8bb461ed Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 23 Sep 2021 19:06:39 +0200 Subject: [PATCH] COmpletata prima revisione sw x RobotService --- IOB-WIN-NEXT/DATA/CONF/1033.ini | 67 +++++++++++++++++++++++ IOB-WIN-NEXT/DATA/CONF/1033.json | 52 ++++++++++++++++++ IOB-WIN-NEXT/IOB-WIN-NEXT.csproj | 7 +++ IOB-WIN-NEXT/IobSiemensRobotService.cs | 74 +++++++------------------- 4 files changed, 144 insertions(+), 56 deletions(-) create mode 100644 IOB-WIN-NEXT/DATA/CONF/1033.ini create mode 100644 IOB-WIN-NEXT/DATA/CONF/1033.json 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: