diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1a266bc4..a743d5b1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -36,7 +36,7 @@ variables: .version-fix: &version-fix - | $env:NEW_REL = $env:VERS_MAIN+"."+(get-date –format yyMM)+"."+(get-date –format ddHH) - $env:NUM_REL = $env:VERS_MAIN+"."+(get-date –format yyMM)+"."+(get-date –format ddHH) + $env:NUM_REL = $env:VERS_MAIN+"."+(get-date –format yyMM)+"."+(get-date –format dHH) $env:NUM_DEB = $env:VERS_MAIN+"."+(get-date –format yyMM)+"-beta."+(get-date –format dHH) $env:NEW_COPYRIGHT = "EgalWare @ 2006-" + (get-date -format yyyy) $contenuto = Get-Content -path 'VersGen\VersGen.cs' -Raw diff --git a/EgwProxy.Icoel.DataLayer/Controllers/DbController.cs b/EgwProxy.Icoel.DataLayer/Controllers/DbController.cs index 0727fdb5..98ab5ffd 100644 --- a/EgwProxy.Icoel.DataLayer/Controllers/DbController.cs +++ b/EgwProxy.Icoel.DataLayer/Controllers/DbController.cs @@ -2,8 +2,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; /*------------------------------------------------ * Aggiunto fix come da link seguente: @@ -14,6 +12,7 @@ using System.Threading.Tasks; * using SqlProviderServices= System.Data.Entity.SqlServer.SqlProviderServices; * */ + namespace EgwProxy.Icoel.DataLayer.Controllers { /// @@ -26,29 +25,9 @@ namespace EgwProxy.Icoel.DataLayer.Controllers private static ExportDbContext dbExportCtx; private static TrackerDbContext dbTrackerCtx; #endif - private static SyncStateDbContext dbSyncStateCtx; - private static NLog.Logger Log = LogManager.GetCurrentClassLogger(); -#if false - /// - /// Avvio dell'oggetto gestione DB con le 3 stringhe di connessione specifiche - /// - /// Connesisone Db frontiera Entrata Merce - /// Connessione DB Tracker - /// Connessione DB IcoelExport - /// Connessione DB locale di SYNC - public DbController(string connEntrata, string connTracker, string connExport, string connSyncState) - { - dbEntrataCtx = new EntrataDbContext(connEntrata); - Log.Info("Avviata classe EntrataDbContext"); - dbExportCtx = new ExportDbContext(connExport); - Log.Info("Avviata classe ExportDbContext"); - dbTrackerCtx = new TrackerDbContext(connTracker); - Log.Info("Avviata classe dbTrackerCtx"); - dbSyncStateCtx = new SyncStateDbContext(connSyncState); - Log.Info("Avviata classe dbSyncStateCtx"); - } -#endif + #region Public Constructors + /// /// Avvio dell'oggetto gestione DB con stringa di connessione specifica /// @@ -59,6 +38,25 @@ namespace EgwProxy.Icoel.DataLayer.Controllers Log.Info("Avviata classe dbSyncStateCtx"); } + #endregion Public Constructors + + #region Public Methods + + /// + /// Recupera la tab di CurrData corrente + /// + /// + public List CurrDataGetAll() + { + List dbResult = new List(); + + dbResult = dbSyncStateCtx + .DbSetCurrData + .ToList(); + + return dbResult; + } + /// /// Dispose classe /// @@ -73,94 +71,6 @@ namespace EgwProxy.Icoel.DataLayer.Controllers dbSyncStateCtx.Dispose(); } -#if false - /// - /// Elenco record Entrata Merce (Frontiera) - /// - /// idx da cui partire a recuperare - /// - public List EntrateGetFromIdx(int minIdx = 0) - { - List dbResult = new List(); - dbResult = dbEntrataCtx - .DbSetEntrataMerce - .Where(x => (x.ID_CHIAVE >= minIdx)) - .OrderBy(x => x.ID_CHIAVE) - .ToList(); - - return dbResult; - } - - /// - /// Elenco ultimi record Entrata Merce (Frontiera) - /// - /// numero records da recuperare - /// - public List EntrateGetLast(int numRec = 100) - { - List dbResult = new List(); - dbResult = dbEntrataCtx - .DbSetEntrataMerce - .OrderByDescending(x => x.ID_CHIAVE) - .Take(numRec) - .ToList(); - - return dbResult; - } - - /// - /// Elenco record ProductsTotal (da Icoel Export Products) - /// - /// idx da cui partire a recuperare - /// - public List ExportProductsGetFromIdx(int minIdx = 0) - { - List dbResult = new List(); - dbResult = dbExportCtx - .DbSetProductsTotals - .Where(x => (x.SizerBatchId >= minIdx)) - .OrderBy(x => x.SizerBatchId) - .ToList(); - - return dbResult; - } - - /// - /// Elenco ultimi record ProductsTotal (da Icoel Export Products) - /// - /// numero records da recuperare - /// - public List ExportProductsGetLast(int numRec = 0) - { - List dbResult = new List(); - dbResult = dbExportCtx - .DbSetProductsTotals - .OrderByDescending(x => x.SizerBatchId) - .ThenByDescending(x => x.Index) - .Take(numRec) - .ToList(); - - return dbResult; - } -#endif - - /// - /// Esegue una volta la stored di ImportAll (x recupero dati da DB esterni) e poi - /// restitusice in output la tab di SyncState x verificare lo stato - /// - /// - public List SyncStateDoImportAll() - { - List dbResult = new List(); - - dbResult = dbSyncStateCtx - .Database - .SqlQuery("EXEC stp_ImportAll") - .ToList(); - - return dbResult; - } - /// /// Esegue una volta la stored di ImportAll (x recupero dati da DB esterni) e poi /// restitusice in output la tab di SyncState x verificare lo stato @@ -178,6 +88,23 @@ namespace EgwProxy.Icoel.DataLayer.Controllers return dbResult; } + /// + /// Esegue una volta la stored di ImportAll (x recupero dati da DB esterni) e poi + /// restitusice in output la tab di SyncState x verificare lo stato + /// + /// + public List SyncStateDoImportAll() + { + List dbResult = new List(); + + dbResult = dbSyncStateCtx + .Database + .SqlQuery("EXEC stp_ImportAll") + .ToList(); + + return dbResult; + } + /// /// recupera la tab di SyncState corrente /// @@ -193,60 +120,13 @@ namespace EgwProxy.Icoel.DataLayer.Controllers return dbResult; } -#if false - /// - /// Elenco record DettConfezioni (da Icoel TrackerLotti) - /// - /// idx da cui partire a recuperare - /// - public List TrackConfezioniGetFromIdx(int minIdx = 0) - { - List dbResult = new List(); - dbResult = dbTrackerCtx - .DbSetConfezioni - .Where(x => (x.Pack_Id >= minIdx)) - .OrderBy(x => x.Pack_Id) - .ToList(); + #endregion Public Methods - return dbResult; - } + #region Private Fields - /// - /// Elenco ultimi record DettaglioConfezioni (da Icoel TrackerLotti) - /// - /// numero records da recuperare - /// - public List TrackConfezioniGetLast(int numRec = 0) - { - List dbResult = new List(); - dbResult = dbTrackerCtx - .DbSetConfezioni - .OrderByDescending(x => x.Pack_Id) - .Take(numRec) - .ToList(); + private static SyncStateDbContext dbSyncStateCtx; + private static NLog.Logger Log = LogManager.GetCurrentClassLogger(); - return dbResult; - } - - /// - /// Elenco dettaglio conferimento x PackId (da Icoel TrackerLotti) - /// ATTENZIONE: in caso di mancata associazione lotto ingresso con lavorazione corrente la - /// vista restituisce nuovo (possibile lavorare senza lotto ingresso e senza tracking) - /// - /// idx da cui partire a recuperare - /// - public List TrackPackConfDetailByIdx(long packId = 0) - { - List dbResult = new List(); - dbResult = dbTrackerCtx - .DbSetConferimento - .Where(x => (x.PackId == packId)) - .OrderBy(x => x.NUMERO_LOTTO) - .ThenByDescending(x => x.QUANTITA_ENTRATA) - .ToList(); - - return dbResult; - } -#endif + #endregion Private Fields } } \ No newline at end of file diff --git a/EgwProxy.Icoel.DataLayer/DatabaseModels/CurrDataModel.cs b/EgwProxy.Icoel.DataLayer/DatabaseModels/CurrDataModel.cs new file mode 100644 index 00000000..f6fb6573 --- /dev/null +++ b/EgwProxy.Icoel.DataLayer/DatabaseModels/CurrDataModel.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Data.Entity.Spatial; + +namespace EgwProxy.Icoel.DataLayer.DatabaseModels +{ + + [Table("CurrData")] + public partial class CurrDataModel + { + [Key] + [StringLength(50)] + public string Topic { get; set; } + + public decimal CurrVal { get; set; } = 0; + } +} diff --git a/EgwProxy.Icoel.DataLayer/DatabaseModels/SyncStateModel.cs b/EgwProxy.Icoel.DataLayer/DatabaseModels/SyncStateModel.cs index 477c3fc5..b37fa326 100644 --- a/EgwProxy.Icoel.DataLayer/DatabaseModels/SyncStateModel.cs +++ b/EgwProxy.Icoel.DataLayer/DatabaseModels/SyncStateModel.cs @@ -25,5 +25,7 @@ namespace EgwProxy.Icoel.DataLayer.DatabaseModels public long NumRecIn { get; set; } public long NumRecOut { get; set; } + + public DateTime LastUpdate { get; set; } = DateTime.Today; } } diff --git a/EgwProxy.Icoel.DataLayer/EgwProxy.Icoel.DataLayer.csproj b/EgwProxy.Icoel.DataLayer/EgwProxy.Icoel.DataLayer.csproj index c1aaa5c3..ffb54d76 100644 --- a/EgwProxy.Icoel.DataLayer/EgwProxy.Icoel.DataLayer.csproj +++ b/EgwProxy.Icoel.DataLayer/EgwProxy.Icoel.DataLayer.csproj @@ -65,6 +65,7 @@ + diff --git a/EgwProxy.Icoel.DataLayer/SyncStateDbContext.cs b/EgwProxy.Icoel.DataLayer/SyncStateDbContext.cs index 1e811380..fd401841 100644 --- a/EgwProxy.Icoel.DataLayer/SyncStateDbContext.cs +++ b/EgwProxy.Icoel.DataLayer/SyncStateDbContext.cs @@ -32,10 +32,15 @@ namespace EgwProxy.Icoel.DataLayer } /// - /// DbSet dai dati stato sync DB esterni <--> locale + /// DbSet dei dati stato sync DB esterni <--> locale /// public virtual DbSet DbSetSyncState { get; set; } + /// + /// DbSet CurrData + /// + public virtual DbSet DbSetCurrData { get; set; } + protected override void OnModelCreating(DbModelBuilder modelBuilder) { } diff --git a/EgwProxy.Icoel/Compac/ComClient.cs b/EgwProxy.Icoel/Compac/ComClient.cs index 587f5dd6..3f5ee6e6 100644 --- a/EgwProxy.Icoel/Compac/ComClient.cs +++ b/EgwProxy.Icoel/Compac/ComClient.cs @@ -182,18 +182,20 @@ namespace EgwProxy.Icoel.Compac internal Dictionary GetPerfMeters() { Dictionary answ = new Dictionary(); - // indicata in tonnOra + // velocità processo indicata in tonnellate /oOra double velTonnOra = SSClient.GetMachineTonnesPH(); // velocità espressa in frutti/minuto double velFruttiMinuto = SSClient.GetMachineTotalFPM(); // percentuale riempimento carrellini double percRiemp = SSClient.GetMachineCupfill(); - //// indicata in carrelli/minuto - //int[] velCarrMinuto = SSClient.GetMachineRodsPM(); + // Numero confezioni/ora + double numPackOra = SSClient.GetMachinePacksPH(); + // accodo i valori ricavati - answ.Add("VelTonnOra", velTonnOra); - answ.Add("VelFruttiMinuto", velFruttiMinuto); + answ.Add("NumPacksOra", numPackOra); answ.Add("PercRiemp", percRiemp); + answ.Add("VelFruttiMinuto", velFruttiMinuto); + answ.Add("VelTonnOra", velTonnOra); return answ; } diff --git a/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_002.ini b/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_002.ini index 5e6b3216..3cf5fb6e 100644 --- a/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_002.ini +++ b/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_002.ini @@ -63,13 +63,12 @@ MIN_SEND_PZC_BLOCK=0 MAX_SEND_PZC_BLOCK=100 ENABLE_DYN_DATA=TRUE FORCE_DYN_DATA=TRUE -DEM_FACT_DYN_DATA=3 +DEM_FACT_DYN_DATA=2 ENABLE_DATA_FILTER=TRUE ENABLE_CLI_RESTART=TRUE -VETO_SIG_IN=TRUE ; clock base (da 10ms) -timerIntMs=50 +timerIntMs=40 ; conf parametri memoria READ/WRITE PARAM_CONF=GIACO_ICOEL_002.json diff --git a/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_002.json b/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_002.json index 0a64c117..766e5bcb 100644 --- a/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_002.json +++ b/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_002.json @@ -10,8 +10,8 @@ "tipoMem": "Real", "index": 0, "size": 0, - "func": "MEDIAN", - "period": 60, + "func": "AVG", + "period": 50, "factor": 1 }, "VelFruttiMinuto": { @@ -21,8 +21,19 @@ "tipoMem": "Real", "index": 0, "size": 0, - "func": "MEDIAN", - "period": 60, + "func": "AVG", + "period": 50, + "factor": 1 + }, + "NumPacksOra": { + "name": "NumPacksOra", + "description": "Numero confezioni / Ora", + "memAddr": "NumPacksOra", + "tipoMem": "Real", + "index": 0, + "size": 0, + "func": "AVG", + "period": 50, "factor": 1 }, "PercRiemp": { @@ -32,8 +43,8 @@ "tipoMem": "Real", "index": 0, "size": 0, - "func": "MEDIAN", - "period": 60, + "func": "AVG", + "period": 50, "factor": 1 } } diff --git a/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_003.ini b/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_003.ini index 1e4925d1..28be2133 100644 --- a/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_003.ini +++ b/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_003.ini @@ -66,13 +66,12 @@ FORCE_DYN_DATA=TRUE DEM_FACT_DYN_DATA=5 ENABLE_DATA_FILTER=TRUE ENABLE_CLI_RESTART=TRUE -VETO_SIG_IN=TRUE SyncStateDb=localhost\sqlexpress SyncStateUser=egalware SyncStatePwd=egalware2022 ; clock base (da 10ms) -timerIntMs=10 +timerIntMs=20 ; conf parametri memoria READ/WRITE PARAM_CONF=GIACO_ICOEL_003.json diff --git a/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_003.json b/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_003.json index 0a64c117..96401b9a 100644 --- a/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_003.json +++ b/IOB-WIN-NEXT/DATA/CONF/GIACO_ICOEL_003.json @@ -3,36 +3,25 @@ }, "mMapRead": { - "VelTonnOra": { - "name": "VelTonnOra", - "description": "Velocità Impianto Tonnellate / Ora", - "memAddr": "VelTonnOra", + "TotMerceProcTonn": { + "name": "TotMerceProcTonn", + "description": "Totale merce processata oggi su impianto (Tonn)", + "memAddr": "TotMerceProcTonn", "tipoMem": "Real", "index": 0, "size": 0, - "func": "MEDIAN", + "func": "MAX", "period": 60, "factor": 1 }, - "VelFruttiMinuto": { - "name": "VelFruttiMinuto", - "description": "Velocità Impianto Frutti / Minuto", - "memAddr": "VelFruttiMinuto", + "TotMerceCaricTonn": { + "name": "TotMerceCaricTonn", + "description": "Totale merce caricata oggi su impianto (Tonn)", + "memAddr": "TotMerceCaricTonn", "tipoMem": "Real", "index": 0, "size": 0, - "func": "MEDIAN", - "period": 60, - "factor": 1 - }, - "PercRiemp": { - "name": "PercRiemp", - "description": "Percentuale riempimento carrelli", - "memAddr": "PercRiemp", - "tipoMem": "Real", - "index": 0, - "size": 0, - "func": "MEDIAN", + "func": "MAX", "period": 60, "factor": 1 } diff --git a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj index 1be1e006..2a05ddb2 100644 --- a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj +++ b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj @@ -88,10 +88,10 @@ ..\packages\EasyModbusTCP.5.6.0\lib\net40\EasyModbus.dll - ..\packages\EgwProxy.Icoel.3.6.2205.2812\lib\EgwProxy.Icoel.dll + ..\packages\EgwProxy.Icoel.3.6.2206.116\lib\EgwProxy.Icoel.dll - ..\packages\EgwProxy.Icoel.3.6.2205.2812\lib\EgwProxy.Icoel.DataLayer.dll + ..\packages\EgwProxy.Icoel.3.6.2206.116\lib\EgwProxy.Icoel.DataLayer.dll ..\packages\EgwProxy.MultiCncLib.3.6.2205.2319\lib\EgwProxy.MultiCncLib.dll diff --git a/IOB-WIN-NEXT/IobIcoelDb.cs b/IOB-WIN-NEXT/IobIcoelDb.cs index 3bb11b86..f4a9ebb4 100644 --- a/IOB-WIN-NEXT/IobIcoelDb.cs +++ b/IOB-WIN-NEXT/IobIcoelDb.cs @@ -111,6 +111,14 @@ namespace IOB_WIN_NEXT saveValue(ref outVal, item.LastIdx, $"{item.TableName}_LastIdx"); saveValue(ref outVal, item.LastIdxIn, $"{item.TableName}_LastIdxIn"); } + + // aggiungo anche i campi currData + var currData = dbProxy.DataController.CurrDataGetAll(); + foreach (var item in currData) + { + saveValue(ref outVal, (double)item.CurrVal, item.Topic); + } + lastReadPLC = DateTime.Now; return outVal; } diff --git a/IOB-WIN-NEXT/packages.config b/IOB-WIN-NEXT/packages.config index 43bf02c1..a81b056b 100644 --- a/IOB-WIN-NEXT/packages.config +++ b/IOB-WIN-NEXT/packages.config @@ -2,11 +2,11 @@ - + - +