From 62f2f4e4dba900cd5cfc4988178b77541ca86a9b Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 24 Apr 2019 14:28:13 +0200 Subject: [PATCH] Aggiunta siemens aprochim x test Jetco --- IOB-WIN/DATA/CONF/3017.ini | 63 +++++++++++++++++++++ IOB-WIN/IOB-WIN.csproj | 3 + IOB-WIN/IobSiemensAprochim.cs | 12 ++-- IOB-WIN/IobWPS.cs | 101 ++++++++++------------------------ 4 files changed, 101 insertions(+), 78 deletions(-) create mode 100644 IOB-WIN/DATA/CONF/3017.ini diff --git a/IOB-WIN/DATA/CONF/3017.ini b/IOB-WIN/DATA/CONF/3017.ini new file mode 100644 index 00000000..e70a29e7 --- /dev/null +++ b/IOB-WIN/DATA/CONF/3017.ini @@ -0,0 +1,63 @@ +;Configurazione IOB-WIN +[IOB] +;Macchina filtraggio fanghi Aprochim x Jetco +CNCTYPE=SIEMENS_APROCHIM +PING_MS_TIMEOUT=500 + +[MACHINE] +VENDOR=Aprochim +MODEL=Micro4000 + +[CNC] +IP=192.168.0.60 +CPUTYPE=S71500 +RACK=0 +SLOT=0 + +[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= + +[MEMORY] +ADDR_READ=DB550.DBB0 +ADDR_WRITE=DB701.DBB0 +SIZE_READ=1 +SIZE_WRITE=0 +;BIT0=CONN +BIT1=DB550.DBB1 +;BIT2=PZCOUNT.STD.DB700.DBW22 +BIT3=DB550.DBB3 +BIT4=DB550.DBB4 + + +[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 +; attenzione memoria sempre base BYTE (1604 DW --> 6416...) +PZCOUNT_MODE=STD.DB550.DBDW0 +;PZ_CAD_MADDR=1602 +;PZ_REQ_MADDR=1603 +;PZ_DONE_MADDR=1604 +;PZ_GTOT_MADDR=1605 + +[BRANCH] +NAME=develop \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN.csproj b/IOB-WIN/IOB-WIN.csproj index 9e48742d..8f0faa97 100644 --- a/IOB-WIN/IOB-WIN.csproj +++ b/IOB-WIN/IOB-WIN.csproj @@ -204,6 +204,9 @@ Always + + Always + Always diff --git a/IOB-WIN/IobSiemensAprochim.cs b/IOB-WIN/IobSiemensAprochim.cs index b80ec9dd..388bd1c2 100644 --- a/IOB-WIN/IobSiemensAprochim.cs +++ b/IOB-WIN/IobSiemensAprochim.cs @@ -41,7 +41,6 @@ namespace IOB_WIN lgInfo("NEW IOB SIEMENS versione APROCHIM"); } -#if false #region area principale adapter /// @@ -98,7 +97,7 @@ namespace IOB_WIN #endregion - + #region Metodi specifici (da verificare/completare in implementazione) /// @@ -116,9 +115,9 @@ namespace IOB_WIN { Dictionary outVal = new Dictionary(); ushort valStatus = S7.Net.Types.Word.FromByteArray(RawInput.Skip(0).Take(2).ToArray()); - ushort valPosit = S7.Net.Types.Word.FromByteArray(RawInput.Skip(2).Take(2).ToArray()); + //ushort valPosit = S7.Net.Types.Word.FromByteArray(RawInput.Skip(2).Take(2).ToArray()); outVal.Add("CURR_STATO", ((statoMacchina)valStatus).ToString()); - outVal.Add("CURR_POSIT", ((posizioneSequenza)valPosit).ToString()); + //outVal.Add("CURR_POSIT", ((posizioneSequenza)valPosit).ToString()); return outVal; } @@ -131,9 +130,9 @@ namespace IOB_WIN B_input = 0; // FAPE: leggo i primi 2 WORD x decodifica stato e posizione... ushort valStatus = S7.Net.Types.Word.FromByteArray(RawInput.Skip(0).Take(2).ToArray()); - ushort valPosit = S7.Net.Types.Word.FromByteArray(RawInput.Skip(2).Take(2).ToArray()); + //ushort valPosit = S7.Net.Types.Word.FromByteArray(RawInput.Skip(2).Take(2).ToArray()); statoMacchina _stMacch = ((statoMacchina)valStatus); - posizioneSequenza _posSeq = ((posizioneSequenza)valPosit); + //posizioneSequenza _posSeq = ((posizioneSequenza)valPosit); /* ----------------------------------------------------- * bitmap MAPO @@ -267,6 +266,5 @@ namespace IOB_WIN } #endregion -#endif } } diff --git a/IOB-WIN/IobWPS.cs b/IOB-WIN/IobWPS.cs index b9e9f4f9..4ee3d960 100644 --- a/IOB-WIN/IobWPS.cs +++ b/IOB-WIN/IobWPS.cs @@ -11,26 +11,21 @@ namespace IOB_WIN public class IobWPS : IobGeneric { /* -------------------------------------------------------------------------------- - * Controlli SIEMENS Aprochim (impianti filtrazione in Jetco, gruppo macDermid) - * - basasto su SIEMENS - * - S7 vers 1500 + * Controlli dotati di GENERICA pagina WEB in cui cercare e recuperare informazioni * - * - * - * - abilitata 1 area in lettura DB15 ed 1 in scrittura DB16 (NON la usano) - * - x poter funzionare --> protezione: meccanismi di collegamento / consenti put/get - * - lettura/scrittura primi 48 byte (240 max x le due DB) - * - * LETTURA seguenti byte: - * - B0, WORD, Stato Macchina Generale - * - B2, WORD, Posizione sequenza contatore - * - B4, WORD, contatore cicli eseguiti per lubrifica - * - B40, DWORD, contapezzi azzerabile da operatore - * - B44, DWORD, contapezzi ASSOLUTO + * - il file di conf deve contenere l'URL di base + * - il file di conf deve contenere COSA cercare (es il "contenitore" del dato da estrarre) * * -------------------------------------------------------------------------------- */ - + /// + /// Pagina web da scaricare + /// + protected string baseUri = "192.168.1.55"; + /// + /// Array di configurazione degli oggetti da cercare x decodifica e recupero info + /// + protected Dictionary dataLocatorLUT; /// /// Estende l'init della classe base... @@ -47,13 +42,30 @@ namespace IOB_WIN // init connessione setConnection(); - // test completo funzionalità kawasaki, da TOGLIERE in prod... + // test completo funzionalità, da TOGLIERE in prod... #if DEBUG - kawasakiFullTest(); + wpsFullTest(); #endif #endif } + /// + /// Test funzioni WebPageScraping + /// + private void wpsFullTest() + { + // faccio un try-catch di test vari... + try + { + // faccio download preliminare pagina + // salvo la pagina completa + + } + catch (Exception exc) + { + lgError(exc, "Eccezioen durante wpsFullTest"); + } + } #if false /// @@ -134,60 +146,7 @@ namespace IOB_WIN /// protected string lastMissRobot; - /// - /// Test completo funzioni kawasaki - /// - private void kawasakiFullTest() - { - // faccio un try-catch di test vari... - try - { - //string connPar = string.Format("TCP {0}", cIobConf.cncIpAddr); - //KAWASAKI_ref = new KRcc.Commu(connPar); - //KAWASAKI_ref = new KRcc.Commu("TCP 192.168.0.92"); - if (KAWASAKI_ref.IsConnected) - { - // connect ok - resDataArray = KAWASAKI_ref.command("where", 3000); - // WHERE [RET] - // Console.WriteLine(resDataArray[1]); - // [0] = 0 - // [1] = JT1 JT2 JT3 JT4 JT5 JT6 - // -23.205 - 39.967 - 13.176 95.663 71.402 - 21.512 - // X[mm] Y[mm] Z[mm] O[deg] A[deg] T[deg] - // - 489.620 693.940 1564.733 92.612 131.285 7.482 - threadOk = commThreadOk; - macName = machineName; - cStatus = currBitmapStatus; - cSignals = currBitmapSignals; - lastCountCNC = pzCounter; - numPzPrel = pzPrelevati; - lastRecTC = lastTC; - lastMissRobot = lastMission; - } - // test contapezzi -#if false - // leggo i pezzi - int currCount = pzCounter; - // imposto a 100 - pzCounter = 100; - // rileggo x verifica - int newCount = pzCounter; - // reimposto corretti - pzCounter = currCount; -#endif - // test gest programmi -#if true - //saveProgram("prog", "default"); - sendProgram("prog", "default2"); -#endif - } - catch (Exception e) - { // e.Message = "can't connect TCP/IP" or // "can't login" - Console.WriteLine(e.Message); - } - } /// /// Imposto connessione