Compare commits
194 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5442ca494a | |||
| 68b819e430 | |||
| e8812faad2 | |||
| 4825b10e35 | |||
| 7e825d0e93 | |||
| 2b81645350 | |||
| 924519f157 | |||
| a5a46a7a41 | |||
| 24ff59aeb8 | |||
| eb4655edbd | |||
| 9be445273e | |||
| 87f7288c08 | |||
| 4f21fc3b94 | |||
| 3e9a96861f | |||
| 4d0353cd83 | |||
| 13c10dc0dc | |||
| 5f5b89e445 | |||
| eddec0566a | |||
| f78c1422be | |||
| 25fa766aeb | |||
| 9f6d5a80da | |||
| bb14c275d5 | |||
| 9a70d3806f | |||
| 22fbc5c763 | |||
| 7e819f39ad | |||
| 845567ca33 | |||
| d0c14f17fd | |||
| 6ae0a594e6 | |||
| 458d378c12 | |||
| d5f041756b | |||
| ed93c4d123 | |||
| a2423c157d | |||
| 86a7bdc912 | |||
| 604ab558fc | |||
| af461e1cbf | |||
| b9c6bbcd82 | |||
| 73958c8573 | |||
| fe9543681a | |||
| 56b5850b1a | |||
| c5e4605de6 | |||
| 96be4bdf64 | |||
| ff1586b36d | |||
| 7abe80f7b0 | |||
| 27d76311a0 | |||
| 88d65ae806 | |||
| 03e2d68477 | |||
| d9de2b52d6 | |||
| 6b73efa871 | |||
| 597597ef5b | |||
| c884e4886a | |||
| d1eeb7f43e | |||
| b644a9973f | |||
| a57fc701aa | |||
| 092e2cea15 | |||
| b3db69f682 | |||
| de7d55ac7d | |||
| cd49fe747c | |||
| c987caf75e | |||
| de908b710c | |||
| 5d83283178 | |||
| 23143ff639 | |||
| 34ee4d48ab | |||
| 9fdee19c7c | |||
| 2f2a1c5856 | |||
| 236b44a7d5 | |||
| aac9d92780 | |||
| 6a214b937d | |||
| 5a46383da4 | |||
| 5828994ee3 | |||
| 305af5c74d | |||
| dcf95e37ce | |||
| b44092654c | |||
| 7d4b9e8fdf | |||
| 4b1d5d9ba5 | |||
| d32968950a | |||
| 87a480132b | |||
| b6f5df7cc0 | |||
| ee9d6bccd9 | |||
| 020d48ef81 | |||
| b5a10f0a4d | |||
| 4fbd022656 | |||
| f7741afc30 | |||
| 5aa295e892 | |||
| 05464488c2 | |||
| 9c74816bab | |||
| e0847cd908 | |||
| 916939ac04 | |||
| ff43684c34 | |||
| 10f24fd8a9 | |||
| 7fe9041597 | |||
| d0abff101f | |||
| f0cd2524cf | |||
| c593e804a7 | |||
| c35950da01 | |||
| 4f56bfefba | |||
| 10cda086d2 | |||
| b31ade6b6a | |||
| 5730bfa154 | |||
| c8f2572f51 | |||
| 71c8a26ac8 | |||
| 9a348bef64 | |||
| 62cf634c95 | |||
| 789defb69d | |||
| a10d23b131 | |||
| a75726bdad | |||
| 06d05b8d95 | |||
| c11a9a91b8 | |||
| d2596d57df | |||
| 2a98a0270a | |||
| 5ed50840ac | |||
| 3a6689d752 | |||
| 3538277d0b | |||
| 51e0486c01 | |||
| 76052f9b23 | |||
| e71de2c52f | |||
| c19b635366 | |||
| dff6e4a4e2 | |||
| 6acc206fb1 | |||
| 674e34f9b5 | |||
| 79f20fd611 | |||
| 0758afdd98 | |||
| 3160d2b60b | |||
| 6b5c4ddaa7 | |||
| 957d245a53 | |||
| eca5cd628c | |||
| 1118725454 | |||
| d28d3ddcfa | |||
| f6b926d77e | |||
| 48ffbb6de1 | |||
| 7010548337 | |||
| 55e8aada24 | |||
| 7aed2bfb32 | |||
| 3c215cbaa5 | |||
| c16ca8d422 | |||
| 77ba05537c | |||
| 79e9e6c348 | |||
| 97bc417be4 | |||
| 6b7a854bb1 | |||
| 1d08af6a1f | |||
| 1abbbf0f06 | |||
| 52632c24ba | |||
| ee8a02c156 | |||
| 6b3e5b8715 | |||
| c2d76264eb | |||
| 6c1f620775 | |||
| 81abde6743 | |||
| b4afc67f55 | |||
| bfd46d3c26 | |||
| 32a0be9f90 | |||
| fbd955e218 | |||
| 86b17ddeba | |||
| 206020281d | |||
| dbc4a03df2 | |||
| 9a9138998b | |||
| 57992108cd | |||
| 020516dcac | |||
| 6d1ba5f1ad | |||
| a347d4e60d | |||
| f7420ad6c5 | |||
| 2c5f3ad29c | |||
| 36b5e5c81e | |||
| c20adac35c | |||
| 1b46b1b083 | |||
| b6e0353f78 | |||
| 0dd39fc73f | |||
| ca960ff094 | |||
| 6776fe848f | |||
| 0f0acaae49 | |||
| b3315ebc7c | |||
| 4255a813d6 | |||
| 4abc80f676 | |||
| 1c17d2ed2d | |||
| 200ba3c7d5 | |||
| 8c38ac95ec | |||
| b4e5297c5a | |||
| f63a34a547 | |||
| 26e2f3a3a0 | |||
| 0829d4474a | |||
| 42185bf93e | |||
| c5e5a5befe | |||
| 466e91de18 | |||
| 083362ccf7 | |||
| 90fb77a2c3 | |||
| 6e96070cd1 | |||
| 60972602b0 | |||
| a4bdc7fd21 | |||
| fa7d1fdee6 | |||
| e7dc77a058 | |||
| e12de0f60e | |||
| 9e76475908 | |||
| cda3a89b78 | |||
| add5495c29 | |||
| 8799c74874 | |||
| ad6b0478f3 |
+11
@@ -0,0 +1,11 @@
|
||||
# ToDo's aperti
|
||||
## ALL
|
||||
- verifica disattivazione WDST da IOB vari
|
||||
- riorganizzazione GLOBALE degli IOB x folder del tipo iob (OPC-UA, ModBus, Siemens...)
|
||||
|
||||
## IMI REMOSA
|
||||
|
||||
Da completare:
|
||||
- lantek: capire come rendono il link tra dati PODL e part program
|
||||
- check stato dati IMI altri impianto (sembrano "vuotini")
|
||||
|
||||
BIN
Binary file not shown.
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Any CPU</Platform>
|
||||
<PublishDir>bin\Release\net6.0\win-x64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<_TargetId>Folder</_TargetId>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||
<SelfContained>false</SelfContained>
|
||||
<PublishSingleFile>true</PublishSingleFile>
|
||||
<PublishReadyToRun>false</PublishReadyToRun>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.2.32516.85
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EgwCApp.Core", "EgwCApp.Core\EgwCApp.Core.csproj", "{DF02D478-2309-48B8-BF0D-90B02327AF02}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EgwCApp.XmlProc", "EgwCApp.XmlProc\EgwCApp.XmlProc.csproj", "{64BC5889-BE30-489A-B78F-8B3EE08819CB}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EgwCApp.XmlTesting", "EgwCApp.XmlTesting\EgwCApp.XmlTesting.csproj", "{52D72303-ACAB-4289-8856-0F56A50474FC}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{DF02D478-2309-48B8-BF0D-90B02327AF02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{DF02D478-2309-48B8-BF0D-90B02327AF02}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DF02D478-2309-48B8-BF0D-90B02327AF02}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{DF02D478-2309-48B8-BF0D-90B02327AF02}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{64BC5889-BE30-489A-B78F-8B3EE08819CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{64BC5889-BE30-489A-B78F-8B3EE08819CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{64BC5889-BE30-489A-B78F-8B3EE08819CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{64BC5889-BE30-489A-B78F-8B3EE08819CB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{52D72303-ACAB-4289-8856-0F56A50474FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{52D72303-ACAB-4289-8856-0F56A50474FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{52D72303-ACAB-4289-8856-0F56A50474FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{52D72303-ACAB-4289-8856-0F56A50474FC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {2AF3181F-288A-47D5-8087-2AB660476D85}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,20 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\EgwCApp.Core\EgwCApp.Core.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="testConf.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,378 @@
|
||||
using EgwCApp.Core;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static EgwCApp.Core.WharehouseData;
|
||||
|
||||
namespace EgwCApp.XmlProc
|
||||
{
|
||||
public class ImportProc
|
||||
{
|
||||
#region Public Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Init oggetto per import
|
||||
/// </summary>
|
||||
/// <param name="confFileName"></param>
|
||||
public ImportProc(string confFileName)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(confFileName))
|
||||
{
|
||||
fileConfName = confFileName;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Decodifica configurazione
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool decodeConfig()
|
||||
{
|
||||
bool answ = false;
|
||||
if (!string.IsNullOrEmpty(fileConfName))
|
||||
{
|
||||
// deserializzo config
|
||||
if (!File.Exists(fileConfName))
|
||||
{
|
||||
Console.WriteLine($"Error: ConfigFile not found | {fileConfName}");
|
||||
}
|
||||
else
|
||||
{
|
||||
string rawData = File.ReadAllText(fileConfName);
|
||||
// se ho contenuto procedo
|
||||
if (string.IsNullOrEmpty(rawData))
|
||||
{
|
||||
Console.WriteLine($"Error: ConfigFile empty! | {fileConfName}");
|
||||
}
|
||||
else
|
||||
{
|
||||
// deserializzo
|
||||
taskConfig = JsonConvert.DeserializeObject<ConfigFile>(rawData);
|
||||
answ = taskConfig != null;
|
||||
}
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Esegue import (se possibile)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool doProcess()
|
||||
{
|
||||
bool answ = false;
|
||||
if (taskConfig != null)
|
||||
{
|
||||
// verifico esista il file...
|
||||
if (string.IsNullOrEmpty(taskConfig.FileInPath) && File.Exists(taskConfig.FileInPath))
|
||||
{
|
||||
// manca file ingresso!!! esco!
|
||||
}
|
||||
else
|
||||
{
|
||||
// verifico il tipo di process necessario...
|
||||
switch (taskConfig.Type)
|
||||
{
|
||||
case ImportType.CSV:
|
||||
fileReturnData = File.ReadAllText(taskConfig.FileInPath);
|
||||
answ = true;
|
||||
break;
|
||||
|
||||
case ImportType.Excel:
|
||||
fileReturnData = processExcelImport(taskConfig.FileInPath);
|
||||
answ = true;
|
||||
break;
|
||||
|
||||
case ImportType.ND:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Esecuzione ritorno informazioni secondo configurazione...
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool doReturn()
|
||||
{
|
||||
bool answ = false;
|
||||
if (taskConfig != null)
|
||||
{
|
||||
// verifico il tipo di return necessario...
|
||||
switch (taskConfig.Return)
|
||||
{
|
||||
case ReturnMode.Console:
|
||||
Console.WriteLine(fileReturnData);
|
||||
answ = true;
|
||||
break;
|
||||
|
||||
case ReturnMode.Redis:
|
||||
break;
|
||||
|
||||
case ReturnMode.File:
|
||||
// verifico path ci sia... sennò creo
|
||||
string outPath = string.IsNullOrEmpty(taskConfig.FileOutPath) ? "FileOut.txt" : taskConfig.FileOutPath;
|
||||
// verifico se vadano salvati in una folder differente...
|
||||
if (!string.IsNullOrEmpty(taskConfig.ConvertDir))
|
||||
{
|
||||
if (!Directory.Exists(taskConfig.ConvertDir))
|
||||
{
|
||||
Directory.CreateDirectory(taskConfig.ConvertDir);
|
||||
}
|
||||
outPath = Path.Combine(taskConfig.ConvertDir, Path.GetFileName(outPath));
|
||||
}
|
||||
// salvo il file!
|
||||
File.WriteAllText(outPath, fileReturnData);
|
||||
answ = true;
|
||||
break;
|
||||
|
||||
case ReturnMode.ND:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
// se fatto eventualmente archivio
|
||||
if (answ)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(taskConfig.ArchiveDir))
|
||||
{
|
||||
// verifico cartella archivio
|
||||
if (!Directory.Exists(taskConfig.ArchiveDir))
|
||||
{
|
||||
Directory.CreateDirectory(taskConfig.ArchiveDir);
|
||||
}
|
||||
// sposto file
|
||||
string fName = Path.GetFileName(taskConfig.FileInPath);
|
||||
File.Move(taskConfig.FileInPath, Path.Combine(taskConfig.ArchiveDir, fName), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
/// <summary>
|
||||
/// Nome del file config da processare
|
||||
/// </summary>
|
||||
protected string fileConfName { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Contenuto del file da restituire come return data (serializzato)
|
||||
/// </summary>
|
||||
protected string fileReturnData { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Configurazione del task da eseguire
|
||||
/// </summary>
|
||||
protected ConfigFile? taskConfig { get; set; } = new ConfigFile();
|
||||
|
||||
#endregion Protected Properties
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
/// <summary>
|
||||
/// Estrae da una riga l'i-esimo elemento
|
||||
/// </summary>
|
||||
/// <param name="riga"></param>
|
||||
/// <param name="col"></param>
|
||||
/// <returns></returns>
|
||||
protected string getCellVal(System.Data.DataRow? riga, int col)
|
||||
{
|
||||
string answ = "";
|
||||
if (riga != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
answ = $"{riga.ItemArray[col]}".Trim();
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cleanup stringa x impiego tipo ident da char dubbi
|
||||
/// </summary>
|
||||
/// <param name="origData"></param>
|
||||
/// <returns></returns>
|
||||
protected string strFixId(string origData)
|
||||
{
|
||||
return origData.Replace(".", "").Replace(" ", "_");
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
#region Private Methods
|
||||
|
||||
/// <summary>
|
||||
/// Importa un file excel e restituisce una
|
||||
/// </summary>
|
||||
/// <param name="fileItem"></param>
|
||||
/// <returns></returns>
|
||||
private string processExcelImport(string fileItem)
|
||||
{
|
||||
string outVal = "";
|
||||
int numErr = 0;
|
||||
// test procedura di import files excel x Giacovelli...
|
||||
var currExcel = new ExcelMan(fileItem);
|
||||
// creo lista dati in formato RegGiacenze...
|
||||
Dictionary<string, BatchRec> listaGiac = new Dictionary<string, BatchRec>();
|
||||
var dtSet = currExcel.getDataSet();
|
||||
if (dtSet != null && dtSet.Tables != null && dtSet.Tables.Count > 0)
|
||||
{
|
||||
string nomeFile = Path.GetFileName(fileItem);
|
||||
nomeFile = nomeFile.Substring(0, nomeFile.LastIndexOf("."));
|
||||
var elSheet = dtSet.Tables;
|
||||
int idxTab = 0;
|
||||
// cerco lo sheet corretto se > 1
|
||||
if (dtSet.Tables.Count > 1)
|
||||
{
|
||||
bool found = false;
|
||||
for (int i = 0; i < dtSet.Tables.Count; i++)
|
||||
{
|
||||
if (nomeFile.Contains(dtSet.Tables[i].TableName))
|
||||
{
|
||||
idxTab = i;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
// controllo parametro opzionale...
|
||||
if (!found && taskConfig != null && !string.IsNullOrEmpty(taskConfig.TargetName))
|
||||
{
|
||||
if (dtSet.Tables[i].TableName == taskConfig.TargetName)
|
||||
{
|
||||
idxTab = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var tabella = dtSet.Tables[idxTab];
|
||||
int numRighe = tabella.Rows.Count;
|
||||
int idxODL = taskConfig != null ? taskConfig.IdxODL : 0;
|
||||
for (int i = 0; i < numRighe; i++)
|
||||
{
|
||||
if (taskConfig != null && taskConfig.ProcessParamInt != null && taskConfig.ProcessParamInt.Count > 5)
|
||||
{
|
||||
if (numErr < numRighe / 5)
|
||||
{
|
||||
try
|
||||
{
|
||||
// variabili di appoggio...
|
||||
DateTime dtRif = DateTime.Today;
|
||||
double qtyTot = 0;
|
||||
int numPack = 0;
|
||||
var riga = tabella.Rows[i];
|
||||
if (riga != null)
|
||||
{
|
||||
string ddt = getCellVal(riga, taskConfig.ProcessParamInt["ExtDoc"]);
|
||||
string sDate = getCellVal(riga, taskConfig.ProcessParamInt["DateRif"]);
|
||||
string prod = getCellVal(riga, taskConfig.ProcessParamInt["Product"]);
|
||||
// verifiche x import: header, data e DDT (vuoti o "-") --> SKIP!
|
||||
bool checkHeaderKo = (ddt == "DDT" || prod == "PRODOTTO");
|
||||
bool checkEmptyDdt = (string.IsNullOrEmpty(ddt) || ddt == "-");
|
||||
bool checkEmptyDate = (string.IsNullOrEmpty(sDate) || sDate == "-");
|
||||
if (checkHeaderKo)
|
||||
{
|
||||
//lgTrace($"SKIP header");
|
||||
}
|
||||
else if (checkEmptyDdt || checkEmptyDate)
|
||||
{
|
||||
//lgTrace($"SKIP linea vuota | i: {i} | ddt: {ddt} | date: {sDate} | prod: {prod}");
|
||||
}
|
||||
else
|
||||
{
|
||||
string variety = getCellVal(riga, taskConfig.ProcessParamInt["Variety"]);
|
||||
string suppl = getCellVal(riga, taskConfig.ProcessParamInt["Supplier"]);
|
||||
string sQty = getCellVal(riga, taskConfig.ProcessParamInt["QtyTot"]);
|
||||
string sNum = getCellVal(riga, taskConfig.ProcessParamInt["NumPack"]);
|
||||
string numPed = getCellVal(riga, taskConfig.ProcessParamInt["NumPed"]);
|
||||
string packPed = getCellVal(riga, taskConfig.ProcessParamInt["PackPed"]);
|
||||
string pesoPack = getCellVal(riga, taskConfig.ProcessParamInt["PesoPack"]);
|
||||
DateTime.TryParse(sDate, out dtRif);
|
||||
int.TryParse(sNum, out numPack);
|
||||
double.TryParse(sQty, out qtyTot);
|
||||
string identRG = ddt.Length > 2 ? $"{strFixId(ddt)}.{strFixId(prod)}.{strFixId(variety)}.{strFixId(suppl)}" : $"{dtRif:yyyyMMdd}.{strFixId(prod)}.{strFixId(variety)}.{strFixId(suppl)}";
|
||||
string notes = $"{numPed}x{packPed}x{pesoPack}";
|
||||
// verifico di avere dati per proseguire...
|
||||
bool checkIdent = !string.IsNullOrEmpty($"{prod}{variety}{suppl}");
|
||||
if (checkIdent)
|
||||
{
|
||||
BatchRec newRow = new BatchRec()
|
||||
{
|
||||
IdxODL = idxODL,
|
||||
IdentRG = identRG,
|
||||
DateRif = dtRif,
|
||||
ExtDoc = ddt,
|
||||
Product = prod,
|
||||
Variety = variety,
|
||||
Supplier = suppl,
|
||||
NumPack = numPack,
|
||||
QtyTot = qtyTot,
|
||||
Notes = notes
|
||||
};
|
||||
// verifico: se manca aggiungo
|
||||
if (!listaGiac.ContainsKey(identRG))
|
||||
{
|
||||
listaGiac.Add(identRG, newRow);
|
||||
}
|
||||
else
|
||||
{
|
||||
// altrimenti aggiorno giacenza con valori numerici
|
||||
listaGiac[identRG].NumPack += newRow.NumPack;
|
||||
listaGiac[identRG].QtyTot += newRow.QtyTot;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//lgError($"Errore verifica identità riga | prod: {prod} | variety: {variety} | suppl: {suppl}");
|
||||
numErr++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
numErr++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (listaGiac.Count > 0)
|
||||
{
|
||||
// converto in una nuova lista...
|
||||
int rCounter = 1;
|
||||
Dictionary<int, BatchRec> list2Send = new Dictionary<int, BatchRec>();
|
||||
foreach (var item in listaGiac)
|
||||
{
|
||||
list2Send.Add(rCounter, item.Value);
|
||||
rCounter++;
|
||||
}
|
||||
// serializzo e restituisco file JSON...
|
||||
var serVal = JsonConvert.SerializeObject(list2Send);
|
||||
if (serVal != null && !string.IsNullOrEmpty(serVal))
|
||||
{
|
||||
outVal = serVal;
|
||||
}
|
||||
}
|
||||
return outVal;
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
// See https://aka.ms/new-console-template for more information
|
||||
|
||||
// ExcImport: Excel Importer, per IobWin in logica lettura Giacenze
|
||||
// parametri:
|
||||
// $0: Path ConfigFile file per esecuzione
|
||||
|
||||
|
||||
using EgwCApp.XmlProc;
|
||||
|
||||
string separator = "--------------------------------------";
|
||||
string fileName = "";
|
||||
|
||||
// controllo args, se mancassero o incompleti mostro help
|
||||
if (args.Length < 1)
|
||||
{
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine("- ExcelFileImporter - Core 6.0");
|
||||
Console.WriteLine("- v.0.0.0.0 | @Egalware 2022+");
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Mancano parametri per esecuzione:");
|
||||
Console.WriteLine("");
|
||||
Console.WriteLine("$0: ConfigFile da impiegare");
|
||||
|
||||
// provo a processare testConf...
|
||||
fileName = "testConf.json";
|
||||
}
|
||||
else
|
||||
{
|
||||
fileName = args[0];
|
||||
}
|
||||
|
||||
// ora processo se ho filename valido...
|
||||
if (!string.IsNullOrEmpty(fileName))
|
||||
{
|
||||
// verifico se ho file...
|
||||
if (File.Exists(fileName))
|
||||
{
|
||||
ImportProc importObj = new ImportProc(fileName);
|
||||
bool stepOk = importObj.decodeConfig();
|
||||
if (stepOk)
|
||||
{
|
||||
stepOk = importObj.doProcess();
|
||||
if (!stepOk)
|
||||
{
|
||||
Console.WriteLine("Errore in processing file");
|
||||
}
|
||||
else
|
||||
{
|
||||
importObj.doReturn();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("Errore in processing config file");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("Errore file non trovato!");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Any CPU</Platform>
|
||||
<PublishDir>bin\Release\net6.0\win-x64\publish\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<_TargetId>Folder</_TargetId>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||
<SelfContained>false</SelfContained>
|
||||
<PublishSingleFile>true</PublishSingleFile>
|
||||
<PublishReadyToRun>false</PublishReadyToRun>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,4 @@
|
||||
@echo off
|
||||
|
||||
REM compilo in publish
|
||||
dotnet publish EgwCApp.ExcImport.csproj -p:PublishSingleFile=true -r win-x64 -c Release --self-contained false
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"ArchiveDir": "C:\\temp\\import\\archive",
|
||||
"ConvertDir": "C:\\temp\\import\\convert",
|
||||
"FileInPath": "C:\\temp\\import\\01.12.xlsx",
|
||||
"FileOutPath": "01.12.json",
|
||||
"IdxODL": 987654321,
|
||||
"ProcessParamInt": {
|
||||
"Product": 3,
|
||||
"Variety": 9,
|
||||
"Supplier": 8,
|
||||
"ExtDoc": 2,
|
||||
"DateRif": 14,
|
||||
"QtyTot": 22,
|
||||
"NumPack": 21,
|
||||
"NumPed": 17,
|
||||
"PackPed": 18,
|
||||
"PesoPack": 20
|
||||
},
|
||||
"ProcessParamStr": {},
|
||||
"RedisDB": 0,
|
||||
"RedisOut": "",
|
||||
"Return": "File",
|
||||
"TargetName": "DB Loco",
|
||||
"Type": "Excel"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"FilePath": "C:\\Temp\\test.log",
|
||||
"ProcessParams": {},
|
||||
"Return": "Console",
|
||||
"Type": "Excel"
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"ArchiveDir": "C:\\temp\\import\\archive",
|
||||
"ConvertDir": "C:\\temp\\import\\convert",
|
||||
"FileInPath": "C:\\temp\\import\\01.12.xlsx",
|
||||
"FileOutPath": "01.12.json",
|
||||
"IdxODL": 987654321,
|
||||
"ProcessParamInt": {
|
||||
"Product": 3,
|
||||
"Variety": 9,
|
||||
"Supplier": 8,
|
||||
"ExtDoc": 2,
|
||||
"DateRif": 14,
|
||||
"QtyTot": 22,
|
||||
"NumPack": 21,
|
||||
"NumPed": 17,
|
||||
"PackPed": 18,
|
||||
"PesoPack": 20
|
||||
},
|
||||
"ProcessParamStr": {},
|
||||
"RedisDB": 0,
|
||||
"RedisOut": "",
|
||||
"Return": "File",
|
||||
"TargetName": "DB Loco",
|
||||
"Type": "Excel"
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
echo ------------ Parametri compilazione ------------
|
||||
echo OutDir: $(OutDir)
|
||||
echo Configuration: $(ConfigurationName)
|
||||
echo ProjectDir: $(ProjectDir)
|
||||
echo AssemblyName: $(AssemblyName)
|
||||
echo TargetDir: $(TargetDir)
|
||||
echo ------------ Parametri compilazione ------------
|
||||
|
||||
preBuild.bat $(SolutionDir)EgwCApp.ExcImport\EgwCApp.ExcImport.csproj $(SolutionDir)EgwCApp.ExcImport\bin\Release\net6.0\publish\win-x64\ $(ProjectDir)Utils
|
||||
@@ -0,0 +1,21 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\EgwCApp.Core\EgwCApp.Core.csproj" />
|
||||
<ProjectReference Include="..\EgwCApp.XmlProc\EgwCApp.XmlProc.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="Tools\ExcImport.exe">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,120 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using EgwCApp.Core;
|
||||
using Newtonsoft.Json;
|
||||
using System.Diagnostics;
|
||||
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace EgwCApp.XmlTesting
|
||||
{
|
||||
public class FileProcMan
|
||||
{
|
||||
#region Public Constructors
|
||||
|
||||
public FileProcMan(string toolDir, string exeFileName)
|
||||
{
|
||||
this.confFileName = "conf.json";
|
||||
this.baseDir = toolDir;
|
||||
this.exeName = exeFileName;
|
||||
appPath = $"./{baseDir}/{exeName}";
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Processa il singolo file e riporta tempo esecuzione
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public TimeSpan doProcess(string fPath)
|
||||
{
|
||||
TimeSpan outVal = new TimeSpan();
|
||||
Stopwatch sw = new Stopwatch();
|
||||
// preparo file conf
|
||||
createConfFile(fPath);
|
||||
// avvio processing
|
||||
Console.WriteLine("calling ext app with args:");
|
||||
Console.WriteLine($"{appPath} {confFileName}");
|
||||
Console.WriteLine();
|
||||
|
||||
ProcessStartInfo psi = new ProcessStartInfo
|
||||
{
|
||||
FileName = appPath,
|
||||
Arguments = $"{confFileName}",
|
||||
WindowStyle = ProcessWindowStyle.Minimized,
|
||||
//WindowStyle = ProcessWindowStyle.Hidden,
|
||||
UseShellExecute = false,
|
||||
//CreateNoWindow = true,
|
||||
RedirectStandardOutput = true,
|
||||
RedirectStandardInput = true,
|
||||
};
|
||||
|
||||
sw.Start();
|
||||
|
||||
Process p = Process.Start(psi);
|
||||
|
||||
string q = "";
|
||||
while (!p.HasExited)
|
||||
{
|
||||
q += p.StandardOutput.ReadToEnd();
|
||||
}
|
||||
|
||||
sw.Stop();
|
||||
outVal = sw.Elapsed;
|
||||
|
||||
return outVal;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Fields
|
||||
|
||||
protected string appPath = "";
|
||||
protected string baseDir = "";
|
||||
protected string confFileName = "";
|
||||
protected string exeName = "";
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#region Private Methods
|
||||
|
||||
private void createConfFile(string item)
|
||||
{
|
||||
Dictionary<string, int> importParams = new Dictionary<string, int>();
|
||||
importParams.Add("Product", 3);
|
||||
importParams.Add("Variety", 9);
|
||||
importParams.Add("Supplier", 8);
|
||||
importParams.Add("ExtDoc", 2);
|
||||
importParams.Add("DateRif", 14);
|
||||
importParams.Add("QtyTot", 22);
|
||||
importParams.Add("NumPack", 21);
|
||||
importParams.Add("NumPed", 17);
|
||||
importParams.Add("PackPed", 18);
|
||||
importParams.Add("PesoPack", 20);
|
||||
// calcolo nome file conf specifico
|
||||
string outFileName = Path.GetFileName(item).Replace("xlsx", "json");
|
||||
confFileName = $"conf_{outFileName}";
|
||||
// calcolo outFIleName
|
||||
var newConf = new ConfigFile()
|
||||
{
|
||||
ArchiveDir = @"C:\temp\import\archive\",
|
||||
ConvertDir = @"C:\temp\import\convert\",
|
||||
Type = ImportType.Excel,
|
||||
FileInPath = item,
|
||||
FileOutPath = outFileName,
|
||||
Return = ReturnMode.File,
|
||||
ProcessParamInt = importParams,
|
||||
TargetName = "DB Loco"
|
||||
};
|
||||
// serializzo e salvo!
|
||||
var rawData = JsonConvert.SerializeObject(newConf, Formatting.Indented);
|
||||
File.WriteAllText(confFileName, rawData);
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
// See https://aka.ms/new-console-template for more information
|
||||
|
||||
using EgwCApp.Core;
|
||||
using System.Diagnostics;
|
||||
using Newtonsoft.Json;
|
||||
using EgwCApp.XmlTesting;
|
||||
|
||||
Dictionary<string, TimeSpan> statsColl = new Dictionary<string, TimeSpan>();
|
||||
Stopwatch sw = new Stopwatch();
|
||||
|
||||
string separator = "--------------------------------------";
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine("Console Test Application");
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine();
|
||||
|
||||
// creo il file di configurazione...
|
||||
string fileName = "conf.json";
|
||||
ConfigFile newConf = new ConfigFile();
|
||||
string rawData = "";
|
||||
|
||||
// test CSV
|
||||
//newConf = new ConfigFile()
|
||||
//{
|
||||
// Type = ImportType.CSV,
|
||||
// FileInPath = @"C:\Temp\test.log",
|
||||
// Return = ReturnMode.Console
|
||||
//};
|
||||
|
||||
|
||||
// svuoto eventuali conf vecchi
|
||||
var listaConf = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.json");
|
||||
if (listaConf != null && listaConf.Count() > 0)
|
||||
{
|
||||
foreach (var file2del in listaConf)
|
||||
{
|
||||
File.Delete(file2del);
|
||||
}
|
||||
}
|
||||
// cerco file xlsx e ciclo...
|
||||
var listaFiles = Directory.GetFiles(@"C:\temp\import\", "*.xlsx");
|
||||
if (listaFiles != null && listaFiles.Count() > 0)
|
||||
{
|
||||
FileProcMan fpm = new FileProcMan("Tools", "ExcImport.exe");
|
||||
foreach (var item in listaFiles)
|
||||
{
|
||||
TimeSpan timeElaps = fpm.doProcess(item);
|
||||
|
||||
statsColl.Add($"Ext prog executed for {item}", timeElaps);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Console.WriteLine(separator);
|
||||
Console.WriteLine("press enter to proceed...");
|
||||
|
||||
Console.ReadLine();
|
||||
|
||||
foreach (var item in statsColl)
|
||||
{
|
||||
Console.WriteLine($"{item.Key} {item.Value.TotalMilliseconds} ms");
|
||||
}
|
||||
//Console.WriteLine($"Display executed in {timeElaps.TotalMilliseconds} ms");
|
||||
|
||||
Console.ReadLine();
|
||||
Binary file not shown.
@@ -0,0 +1,6 @@
|
||||
@echo off
|
||||
|
||||
REM recupero versione compilata
|
||||
ROBOCOPY %1 %2 *.exe /MIR
|
||||
|
||||
echo Eseguito restore CApp!
|
||||
@@ -19,11 +19,11 @@
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
@@ -39,7 +39,7 @@
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
|
||||
@@ -35,47 +35,14 @@
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Azure.Core, Version=1.6.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Azure.Core.1.6.0\lib\net461\Azure.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Azure.Identity, Version=1.3.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Azure.Identity.1.3.0\lib\netstandard2.0\Azure.Identity.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.1.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Data.SqlClient, Version=4.1.0.0, Culture=neutral, PublicKeyToken=23ec7fc2d6eaa4a5, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Data.SqlClient.4.1.1\lib\net461\Microsoft.Data.SqlClient.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Identity.Client, Version=4.22.0.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Identity.Client.4.22.0\lib\net461\Microsoft.Identity.Client.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Identity.Client.Extensions.Msal, Version=2.16.5.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Identity.Client.Extensions.Msal.2.16.5\lib\net45\Microsoft.Identity.Client.Extensions.Msal.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.JsonWebTokens, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.JsonWebTokens.6.8.0\lib\net461\Microsoft.IdentityModel.JsonWebTokens.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.Logging, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.Logging.6.8.0\lib\net461\Microsoft.IdentityModel.Logging.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.Protocols, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.Protocols.6.8.0\lib\net461\Microsoft.IdentityModel.Protocols.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.6.8.0\lib\net461\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.Tokens, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.Tokens.6.8.0\lib\net461\Microsoft.IdentityModel.Tokens.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.4.7.9\lib\net45\NLog.dll</HintPath>
|
||||
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.5.2.3\lib\net46\NLog.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
@@ -83,43 +50,36 @@
|
||||
</Reference>
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Configuration.ConfigurationManager, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Configuration.ConfigurationManager.5.0.0\lib\net461\System.Configuration.ConfigurationManager.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.OracleClient" />
|
||||
<Reference Include="System.Diagnostics.DiagnosticSource, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Diagnostics.DiagnosticSource.4.6.0\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.IdentityModel" />
|
||||
<Reference Include="System.IdentityModel.Tokens.Jwt, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IdentityModel.Tokens.Jwt.6.8.0\lib\net461\System.IdentityModel.Tokens.Jwt.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IO.Compression, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Compression.4.1.0\lib\net46\System.IO.Compression.dll</HintPath>
|
||||
<Reference Include="System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
|
||||
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Net" />
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.6.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.Security" />
|
||||
<Reference Include="System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.AccessControl.5.0.0\lib\net461\System.Security.AccessControl.dll</HintPath>
|
||||
<Reference Include="System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.AccessControl.6.0.0\lib\net461\System.Security.AccessControl.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net461\System.Security.Cryptography.Algorithms.dll</HintPath>
|
||||
@@ -127,26 +87,11 @@
|
||||
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Cryptography.ProtectedData, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.ProtectedData.4.5.0\lib\net461\System.Security.Cryptography.ProtectedData.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Permissions.5.0.0\lib\net461\System.Security.Permissions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ServiceModel" />
|
||||
<Reference Include="System.ServiceProcess" />
|
||||
<Reference Include="System.Text.Encodings.Web, Version=4.0.5.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Encodings.Web.4.7.2\lib\net461\System.Text.Encodings.Web.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Text.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Json.4.6.0\lib\net461\System.Text.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.2\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Transactions" />
|
||||
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
|
||||
@@ -186,7 +131,5 @@
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\Microsoft.Data.SqlClient.SNI.4.0.1\build\net46\Microsoft.Data.SqlClient.SNI.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Data.SqlClient.SNI.4.0.1\build\net46\Microsoft.Data.SqlClient.SNI.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\Microsoft.Data.SqlClient.SNI.4.0.1\build\net46\Microsoft.Data.SqlClient.SNI.targets" Condition="Exists('..\packages\Microsoft.Data.SqlClient.SNI.4.0.1\build\net46\Microsoft.Data.SqlClient.SNI.targets')" />
|
||||
</Project>
|
||||
@@ -1,37 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Azure.Core" version="1.6.0" targetFramework="net462" />
|
||||
<package id="Azure.Identity" version="1.3.0" targetFramework="net462" />
|
||||
<package id="EntityFramework" version="6.4.4" targetFramework="net462" />
|
||||
<package id="Microsoft.Bcl.AsyncInterfaces" version="1.0.0" targetFramework="net462" />
|
||||
<package id="Microsoft.Data.SqlClient" version="4.1.1" targetFramework="net462" />
|
||||
<package id="Microsoft.Data.SqlClient.SNI" version="4.0.1" targetFramework="net462" />
|
||||
<package id="Microsoft.Identity.Client" version="4.22.0" targetFramework="net462" />
|
||||
<package id="Microsoft.Identity.Client.Extensions.Msal" version="2.16.5" targetFramework="net462" />
|
||||
<package id="Microsoft.IdentityModel.JsonWebTokens" version="6.8.0" targetFramework="net462" />
|
||||
<package id="Microsoft.IdentityModel.Logging" version="6.8.0" targetFramework="net462" />
|
||||
<package id="Microsoft.IdentityModel.Protocols" version="6.8.0" targetFramework="net462" />
|
||||
<package id="Microsoft.IdentityModel.Protocols.OpenIdConnect" version="6.8.0" targetFramework="net462" />
|
||||
<package id="Microsoft.IdentityModel.Tokens" version="6.8.0" targetFramework="net462" />
|
||||
<package id="NLog" version="4.7.9" targetFramework="net462" />
|
||||
<package id="NLog" version="5.2.3" targetFramework="net462" />
|
||||
<package id="System.Buffers" version="4.5.1" targetFramework="net462" />
|
||||
<package id="System.Configuration.ConfigurationManager" version="5.0.0" targetFramework="net462" />
|
||||
<package id="System.Diagnostics.DiagnosticSource" version="4.6.0" targetFramework="net462" />
|
||||
<package id="System.IdentityModel.Tokens.Jwt" version="6.8.0" targetFramework="net462" />
|
||||
<package id="System.IO" version="4.3.0" targetFramework="net462" />
|
||||
<package id="System.IO.Compression" version="4.1.0" targetFramework="net462" />
|
||||
<package id="System.Memory" version="4.5.4" targetFramework="net462" />
|
||||
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
|
||||
<package id="System.Memory" version="4.5.5" targetFramework="net462" />
|
||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net462" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="4.6.0" targetFramework="net462" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net462" />
|
||||
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net462" />
|
||||
<package id="System.Security.AccessControl" version="5.0.0" targetFramework="net462" />
|
||||
<package id="System.Security.AccessControl" version="6.0.0" targetFramework="net462" />
|
||||
<package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net462" />
|
||||
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net462" />
|
||||
<package id="System.Security.Cryptography.ProtectedData" version="4.5.0" targetFramework="net462" />
|
||||
<package id="System.Security.Permissions" version="5.0.0" targetFramework="net462" />
|
||||
<package id="System.Security.Principal.Windows" version="5.0.0" targetFramework="net462" />
|
||||
<package id="System.Text.Encodings.Web" version="4.7.2" targetFramework="net462" />
|
||||
<package id="System.Text.Json" version="4.6.0" targetFramework="net462" />
|
||||
<package id="System.Threading.Tasks.Extensions" version="4.5.2" targetFramework="net462" />
|
||||
<package id="System.ValueTuple" version="4.5.0" targetFramework="net462" />
|
||||
</packages>
|
||||
@@ -12,7 +12,7 @@
|
||||
<copyright>#copyright#</copyright>
|
||||
<tags>EgwProxy.Icoel EgwProxy Icoel</tags>
|
||||
<dependencies>
|
||||
<dependency id="NLog" version="4.7.9" />
|
||||
<dependency id="NLog" version="5.1.2" />
|
||||
<dependency id="EntityFramework" version="6.4.4" />
|
||||
</dependencies>
|
||||
</metadata>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<copyright>#copyright#</copyright>
|
||||
<tags>EgwProxy.Icoel EgwProxy Icoel</tags>
|
||||
<dependencies>
|
||||
<dependency id="NLog" version="4.7.9" />
|
||||
<dependency id="NLog" version="5.1.2" />
|
||||
<dependency id="EntityFramework" version="6.4.4" />
|
||||
</dependencies>
|
||||
</metadata>
|
||||
|
||||
@@ -50,11 +50,11 @@
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
@@ -70,7 +70,7 @@
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.IO.Compression, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Compression.4.1.0\lib\net46\System.IO.Compression.dll</HintPath>
|
||||
<Reference Include="System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="System.IO.Compression" version="4.1.0" targetFramework="net462" />
|
||||
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
|
||||
</packages>
|
||||
@@ -36,11 +36,11 @@
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
@@ -56,7 +56,7 @@
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
|
||||
@@ -39,15 +39,16 @@
|
||||
<StartupObject />
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.4.7.9\lib\net45\NLog.dll</HintPath>
|
||||
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.5.2.3\lib\net46\NLog.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.IO.Compression, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Compression.4.1.0\lib\net46\System.IO.Compression.dll</HintPath>
|
||||
<Reference Include="System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.ServiceModel" />
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="NLog" version="4.7.9" targetFramework="net462" />
|
||||
<package id="System.IO.Compression" version="4.1.0" targetFramework="net462" />
|
||||
<package id="NLog" version="5.2.3" targetFramework="net462" />
|
||||
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
|
||||
</packages>
|
||||
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
+1
-2
@@ -1,4 +1,3 @@
|
||||
|
||||
ALTER PROCEDURE [dbo].[GetMachineFluxLog]
|
||||
AS
|
||||
BEGIN
|
||||
@@ -26,7 +25,7 @@ BEGIN
|
||||
IF(@NewIdx > @LastIdx)
|
||||
BEGIN
|
||||
/* --------------------------------------------------
|
||||
* Inviero solo VARIAZIONI dei valori
|
||||
* Invierò solo VARIAZIONI dei valori
|
||||
* - CurrentPP (Part Program)
|
||||
* - ActiveProdOrder (Ordine in esecuzione)
|
||||
*
|
||||
+64
-7
@@ -1,4 +1,4 @@
|
||||
ALTER PROCEDURE [dbo].GetMachineProdData
|
||||
ALTER PROCEDURE [dbo].[stp_GetMachineProdData]
|
||||
AS
|
||||
BEGIN
|
||||
-- SET NOCOUNT ON added to prevent extra result sets from
|
||||
@@ -24,9 +24,10 @@ BEGIN
|
||||
IF(@NewIdx > @LastIdx)
|
||||
BEGIN
|
||||
/* --------------------------------------------------
|
||||
* Invierò solo VARIAZIONI dei valori
|
||||
* Invierò solo VARIAZIONI dei valori
|
||||
* - CurrentProdOrder (iniziato/concluso)
|
||||
* - Quantità Produzione
|
||||
* - Quantità Produzione
|
||||
* - dati FluxLog x ordini/quantità/tempi di produzione
|
||||
*
|
||||
* andando ad incrociare ogni record col precedente...
|
||||
* -------------------------------------------------- */
|
||||
@@ -86,7 +87,66 @@ BEGIN
|
||||
FROM cteActDec
|
||||
WHERE OrdAction <> 'NONE'
|
||||
|
||||
|
||||
-- ora processo ANCHE come fluxLog i record dei degli ordini (cod ordine, tempi...)
|
||||
;WITH cteCurrOrd AS
|
||||
(
|
||||
SELECT ID
|
||||
,ProdOrder
|
||||
,Targa as IdxMacchina
|
||||
,[DateTime] AS DtEvento
|
||||
,ProdOrderState
|
||||
,ProdQty
|
||||
,ElapsedTime
|
||||
FROM syn_M2ERP_PRODORDERS
|
||||
WHERE ID > @LastIdx AND ID <= @NewIdx
|
||||
)
|
||||
, ctePrevOrd AS
|
||||
(
|
||||
SELECT ID
|
||||
,ProdOrder
|
||||
,Targa as IdxMacchina
|
||||
,[DateTime] AS DtEvento
|
||||
,ProdOrderState
|
||||
,ProdQty
|
||||
,ElapsedTime
|
||||
FROM syn_M2ERP_PRODORDERS
|
||||
WHERE ID >= @LastIdx AND ID < @NewIdx
|
||||
)
|
||||
, cteActDec AS
|
||||
(
|
||||
SELECT curr.DtEvento as DtEve
|
||||
,curr.IdxMacchina
|
||||
,CASE
|
||||
WHEN curr.ProdOrderState = 1 THEN 'StartOrd'
|
||||
--WHEN curr.ProdOrderState = 2 THEN 'PauseOrd'
|
||||
WHEN curr.ProdOrderState = 3 THEN 'EndOrd'
|
||||
--WHEN curr.ProdOrderState = 6 THEN 'InsOrd'
|
||||
ELSE 'NONE'
|
||||
END AS OrdAction
|
||||
,CAST(CASE
|
||||
WHEN LEFT(curr.ProdOrder, 4) = 'PODL' THEN REPLACE(curr.ProdOrder,'PODL','')
|
||||
ELSE '0' END AS NVARCHAR(50)) AS IdxPodl
|
||||
,CAST(CASE
|
||||
WHEN LEFT(curr.ProdOrder, 3) = 'ODL' THEN REPLACE(curr.ProdOrder,'ODL','')
|
||||
ELSE '0' END AS NVARCHAR(50)) AS IdxOdl
|
||||
,CAST(curr.ProdOrder AS NVARCHAR(50)) as CodComm
|
||||
,curr.ProdQty as PzCount
|
||||
,CAST(curr.ElapsedTime AS NVARCHAR(50)) AS ElapsedTime
|
||||
FROM cteCurrOrd curr
|
||||
INNER JOIN ctePrevOrd prev
|
||||
ON curr.ID = prev.ID+1
|
||||
WHERE (curr.ProdOrder <> prev.ProdOrder)
|
||||
OR (curr.ProdOrderState <> prev.ProdOrderState)
|
||||
OR (curr.ProdQty <> prev.ProdQty)
|
||||
)
|
||||
-- lego i valori col precedente x calcolare se siano variati x insert valori
|
||||
--INSERT INTO MachineFluxLog(DtEvento, IdxMacchina, CodFlux, Valore, Cnt)
|
||||
SELECT DtEve as DtEvento, IdxMacchina, CodFlux, Valore,0 as Cnt
|
||||
FROM cteActDec
|
||||
UNPIVOT (Valore FOR CodFlux IN (CodComm, ElapsedTime, IdxOdl, IdxPOdl)) AS Unpvt
|
||||
WHERE OrdAction <> 'NONE'
|
||||
AND Valore <> '0'
|
||||
|
||||
-- aggiorno valore indice processato
|
||||
MERGE SyncState AS tgt
|
||||
USING (SELECT @NewIdx as LastIdx, 'ToMachineProdData' AS TableName) as src (LastIdx, TableName)
|
||||
@@ -104,6 +164,3 @@ BEGIN
|
||||
COMMIT tran
|
||||
|
||||
END
|
||||
GO
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
+35
-3
@@ -4,6 +4,11 @@ select * from SyncState
|
||||
select * from MesPODL_last
|
||||
select * from MesPODL_req
|
||||
|
||||
select * from MachineFluxLog
|
||||
select * from MachineProdData
|
||||
select * from MachineSignalLog
|
||||
|
||||
|
||||
-- test scrittura PODL: OK!
|
||||
exec dbo.SyncPodlToMachine
|
||||
|
||||
@@ -12,24 +17,49 @@ select * from SyncState
|
||||
select * from MachineSignalLog
|
||||
|
||||
/*
|
||||
truncate table MachineSignalLog
|
||||
truncate table MachineFluxLog
|
||||
update SyncState
|
||||
set lastidx=0
|
||||
where TableName='syn_M2ERP_MACHINE_STATE'
|
||||
where TableName='ToMachineFluxLog'
|
||||
*/
|
||||
|
||||
select top 2 * from MachineFluxLog order by 1 desc
|
||||
select top 2 * from MachineProdData order by 1 desc
|
||||
select top 10 * from MachineSignalLog order by 1 desc
|
||||
select * from SyncState
|
||||
|
||||
exec dbo.GetMachineFluxLog
|
||||
select * from MachineFluxLog
|
||||
|
||||
select * from syn_ERP2M
|
||||
select * from syn_M2ERP_MACHINE_STATE
|
||||
select * from syn_M2ERP_PRODORDERS
|
||||
|
||||
|
||||
select * from syn_ERP2M
|
||||
select top 10 * from syn_M2ERP_PRODORDERS
|
||||
where ProdOrder LIKE 'PODL000%'
|
||||
|
||||
|
||||
select top 10 * from syn_M2ERP_PRODORDERS
|
||||
where ProdOrder LIKE '%ODL%'
|
||||
order by 1 desc
|
||||
|
||||
EXEC GetMachineProdData
|
||||
SELECT * FROM SyncState
|
||||
SELECT * FROM MachineFluxLog
|
||||
SELECT * FROM MachineProdData
|
||||
SELECT * FROM MachineSignalLog
|
||||
|
||||
|
||||
/*
|
||||
truncate table MachineProdData
|
||||
update SyncState
|
||||
set lastidx=0
|
||||
where TableName='ToMachineProdData'
|
||||
*/
|
||||
|
||||
select * from ActType
|
||||
|
||||
|
||||
|
||||
/*
|
||||
@@ -64,3 +94,5 @@ select * from M2ERP_MACHINE_STATE where ActiveProdOrder = 'ODL0003743'
|
||||
select * from M2ERP_PRODORDERS
|
||||
|
||||
select * from M2ERP_PRODORDERS where ProdOrder = 'ODL0003743'
|
||||
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
-- =============================================
|
||||
-- Author: S.E.L.
|
||||
-- Create date: 2023.03.17
|
||||
-- Description: Verifica ordini aperti - EXT schema/special
|
||||
-- =============================================
|
||||
CREATE PROCEDURE ext.stp_OrdState
|
||||
(
|
||||
@onlyOpen INT = 0 -- 1 = solo ordini rimasti aperti/validi
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
-- SET NOCOUNT ON added to prevent extra result sets from
|
||||
-- interfering with SELECT statements.
|
||||
SET NOCOUNT ON;
|
||||
|
||||
|
||||
|
||||
IF (@onlyOpen = 0)
|
||||
BEGIN
|
||||
;WITH cteOrd AS
|
||||
(
|
||||
SELECT ProdOrder, MAX(id) as lastID
|
||||
FROM syn_M2ERP_PRODORDERS
|
||||
GROUP BY ProdOrder
|
||||
)
|
||||
SELECT m2erp.*
|
||||
FROM syn_M2ERP_PRODORDERS m2erp
|
||||
INNER JOIN cteord cte ON m2erp.ID=cte.lastID
|
||||
ORDER BY 1 DESC
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
;WITH cteOrd AS
|
||||
(
|
||||
SELECT ProdOrder, MAX(id) as lastID
|
||||
FROM syn_M2ERP_PRODORDERS
|
||||
GROUP BY ProdOrder
|
||||
)
|
||||
SELECT m2erp.*
|
||||
FROM syn_M2ERP_PRODORDERS m2erp
|
||||
INNER JOIN cteord cte ON m2erp.ID=cte.lastID
|
||||
WHERE m2erp.ProdOrderState NOT IN (3,4)
|
||||
ORDER BY 1 DESC
|
||||
END
|
||||
|
||||
|
||||
|
||||
END
|
||||
GO
|
||||
@@ -101,7 +101,7 @@
|
||||
<Reference Include="System.Diagnostics.PerformanceCounter, Version=6.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Diagnostics.PerformanceCounter.6.0.1\lib\net461\System.Diagnostics.PerformanceCounter.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<Reference Include="System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Private>True</Private>
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace IOB_UT_NEXT
|
||||
{
|
||||
public class BitUtils
|
||||
{
|
||||
/// <summary>
|
||||
/// Test se il bit sia attivo
|
||||
/// </summary>
|
||||
/// <param name="val2check">valkore da verificare</param>
|
||||
/// <param name="bitNum">bit da verificare (0 based, 00..31)</param>
|
||||
/// <returns></returns>
|
||||
public static bool isActive(int val2check, int bitNum)
|
||||
{
|
||||
bool answ = false;
|
||||
// testa i-esimo bit (max 32 bit...)
|
||||
if (bitNum <= 31)
|
||||
{
|
||||
answ = ((val2check & (1 << bitNum)) != 0);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -116,6 +116,7 @@ namespace IOB_UT_NEXT
|
||||
public string Note { get; set; } = "";
|
||||
public string CodCli { get; set; } = "";
|
||||
public DateTime InsertDate { get; set; } = DateTime.Now;
|
||||
public string Recipe { get; set; } = "";
|
||||
|
||||
public string CodFase
|
||||
{
|
||||
|
||||
@@ -14,8 +14,8 @@ namespace IOB_UT_NEXT
|
||||
/// Effettua salvataggio in file di un generico oggetto in formato CSV
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="reportData"></param>
|
||||
/// <param name="path"></param>
|
||||
/// <param name="reportData">Lista oggetti da esportare</param>
|
||||
/// <param name="path">Percorso file di output</param>
|
||||
/// <param name="writeHeader">Indica se scrivere header ad inizio CSV</param>
|
||||
/// <param name="separator">Separatore da impiegare (default ";")</param>
|
||||
/// <returns></returns>
|
||||
@@ -34,7 +34,6 @@ namespace IOB_UT_NEXT
|
||||
lines.Add(header);
|
||||
}
|
||||
var valueLines = reportData.Select(row => string.Join($"{separator}", fieldList.Split(separator).Select(a => row.GetType().GetProperty(a).GetValue(row, null))));
|
||||
//var valueLines = reportData.Select(row => string.Join(";", header.Split(';').Select(a => row.GetType().GetProperty(a).GetValue(row, null))));
|
||||
lines.AddRange(valueLines);
|
||||
File.WriteAllLines(path, lines.ToArray());
|
||||
answ = true;
|
||||
@@ -43,5 +42,57 @@ namespace IOB_UT_NEXT
|
||||
{ }
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua salvataggio in file di un generico oggetto in formato Fixed width
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="reportData">Lista oggetti da esportare</param>
|
||||
/// <param name="path">Percorso file di output</param>
|
||||
/// <param name="widthList">Vettore delle larghezze richieste</param>
|
||||
/// <returns></returns>
|
||||
public static bool SaveFixedWidth<T>(List<T> reportData, string path, Dictionary<string, int> widthList, Dictionary<string, char> fieldLPad, Dictionary<string, int> numDecReq)
|
||||
{
|
||||
bool answ = false;
|
||||
var lines = new List<string>();
|
||||
try
|
||||
{
|
||||
IEnumerable<PropertyDescriptor> props = TypeDescriptor.GetProperties(typeof(T)).OfType<PropertyDescriptor>();
|
||||
var elencoValori = props.ToList();
|
||||
foreach (var dataRow in reportData)
|
||||
{
|
||||
string currRow = "";
|
||||
// processo 1:1 x width...
|
||||
foreach (var item in widthList)
|
||||
{
|
||||
string currValue = dataRow.GetType().GetProperty(item.Key).GetValue(dataRow, null).ToString();
|
||||
// se ha un num decimali specifico richiesto esegue...
|
||||
if (numDecReq.ContainsKey(item.Key))
|
||||
{
|
||||
string nDec = $"N{numDecReq[item.Key]}";
|
||||
decimal rawVal = 0;
|
||||
decimal.TryParse(currValue, out rawVal);
|
||||
currValue = rawVal.ToString(nDec);
|
||||
}
|
||||
if (currValue.Length > item.Value)
|
||||
{
|
||||
currValue = currValue.Substring(0, item.Value);
|
||||
}
|
||||
// se ha un LPad richiesto esegue...
|
||||
if (fieldLPad.ContainsKey(item.Key))
|
||||
{
|
||||
currValue = currValue.PadLeft(item.Value, fieldLPad[item.Key]);
|
||||
}
|
||||
currRow += string.Format($"{{0,-{item.Value}}}", currValue);
|
||||
}
|
||||
lines.Add(currRow);
|
||||
}
|
||||
File.WriteAllLines(path, lines.ToArray());
|
||||
answ = true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,348 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace IOB_UT_NEXT.DataModel
|
||||
{
|
||||
public class Fimat
|
||||
{
|
||||
#region Public Classes
|
||||
|
||||
[XmlRoot(ElementName = "A_Recipe")]
|
||||
public class ARecipe
|
||||
{
|
||||
#region Public Properties
|
||||
|
||||
[XmlElement(ElementName = "ColRecipe")]
|
||||
public List<ColRecipe> ColRecipe { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "DesRecipe")]
|
||||
public DesRecipe DesRecipe { get; set; }
|
||||
|
||||
[XmlAttribute(AttributeName = "noNamespaceSchemaLocation")]
|
||||
public string NoNamespaceSchemaLocation { get; set; }
|
||||
|
||||
[XmlText]
|
||||
public string Text { get; set; }
|
||||
|
||||
[XmlAttribute(AttributeName = "xsi")]
|
||||
public string Xsi { get; set; }
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
|
||||
[XmlRoot(ElementName = "ColData")]
|
||||
public class ColData
|
||||
{
|
||||
#region Public Properties
|
||||
|
||||
[XmlElement(ElementName = "ColourCode")]
|
||||
public string ColourCode { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "CompNumber")]
|
||||
public int CompNumber { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Cost")]
|
||||
public double Cost { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Date")]
|
||||
public string Date { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Description")]
|
||||
public string Description { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "DosDuration")]
|
||||
public int DosDuration { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "DosError")]
|
||||
public string DosError { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "DosNote")]
|
||||
public string DosNote { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Origin")]
|
||||
public string Origin { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "PartsPerc")]
|
||||
public double PartsPerc { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "PartsWeight")]
|
||||
public double PartsWeight { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "TypComp")]
|
||||
public string TypComp { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Weight-gr")]
|
||||
public double Weightgr { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Weight-gr-dosed")]
|
||||
public double Weightgrdosed { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Weight-gr-prev")]
|
||||
public double Weightgrprev { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Weight-gr-total")]
|
||||
public double Weightgrtotal { get; set; }
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
|
||||
[XmlRoot(ElementName = "ColRecipe")]
|
||||
public class ColRecipe
|
||||
{
|
||||
#region Public Properties
|
||||
|
||||
[XmlElement(ElementName = "ColData")]
|
||||
public ColData ColData { get; set; }
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Record consumo componente x rendiconto settimanale
|
||||
/// </summary>
|
||||
public class ConsRec
|
||||
{
|
||||
#region Public Properties
|
||||
|
||||
public string FileRef { get; set; } = "";
|
||||
public string ColourCode { get; set; } = "";
|
||||
public string Description { get; set; } = "";
|
||||
public DateTime DtRif { get; set; } = DateTime.Now;
|
||||
public double WeightGrTot { get; set; } = 0;
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Record consumo componente x rendiconto settimanale
|
||||
/// </summary>
|
||||
public class ConsOut
|
||||
{
|
||||
#region Public Properties
|
||||
|
||||
public string CodMag { get; set; } = "";
|
||||
public string ColourCode { get; set; } = "";
|
||||
public string Description { get; set; } = "";
|
||||
public string UM { get; set; } = "";
|
||||
public double WeightKgProc { get; set; } = 0;
|
||||
public DateTime DtRif { get; set; } = DateTime.Now;
|
||||
//public string FileRef { get; set; } = "";
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Record info sul periodo indicato
|
||||
/// </summary>
|
||||
public class PeriodInfo
|
||||
{
|
||||
#region Public Properties
|
||||
|
||||
public int NumFilesReceived { get; set; } = 0;
|
||||
public string CurrStatus { get; set; } = "";
|
||||
public Dictionary<string, string> ActionList { get; set; } = new Dictionary<string, string>();
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
/// <summary>
|
||||
/// Configurazione x conversioni dati
|
||||
/// </summary>
|
||||
public class ConvSetup
|
||||
{
|
||||
/// <summary>
|
||||
/// Inclusione o meno dell'header in file CSV
|
||||
/// </summary>
|
||||
public bool addHeader { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Numero cifre decimale x arrotondamento
|
||||
/// </summary>
|
||||
public int numDec { get; set; } = 3;
|
||||
|
||||
/// <summary>
|
||||
/// CodMagazzino
|
||||
/// </summary>
|
||||
public string codMag { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Modalità export:
|
||||
/// csv / FixWidth
|
||||
/// </summary>
|
||||
public string mode { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Rapporti di conversione x gli item indicati
|
||||
/// </summary>
|
||||
public Dictionary<string, double> convRatio { get; set; } = new Dictionary<string, double>();
|
||||
/// <summary>
|
||||
/// Lunghezza fissa campi
|
||||
/// </summary>
|
||||
public Dictionary<string, int> fieldLength { get; set; } = new Dictionary<string, int>();
|
||||
/// <summary>
|
||||
/// Numero decimali campo
|
||||
/// </summary>
|
||||
public Dictionary<string, int> fieldNDec { get; set; } = new Dictionary<string, int>();
|
||||
/// <summary>
|
||||
/// Padding left (OVE necessari)
|
||||
/// </summary>
|
||||
public Dictionary<string, char> fieldLPad { get; set; } = new Dictionary<string, char>();
|
||||
}
|
||||
|
||||
[XmlRoot(ElementName = "DesData")]
|
||||
public class DesData
|
||||
{
|
||||
#region Public Properties
|
||||
|
||||
[XmlElement(ElementName = "Article")]
|
||||
public string Article { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "CustDrumCode")]
|
||||
public string CustDrumCode { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Customer")]
|
||||
public string Customer { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Date")]
|
||||
public string Date { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Design")]
|
||||
public string Design { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "DosDuration")]
|
||||
public int DosDuration { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "DosedLine")]
|
||||
public int DosedLine { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "DosType")]
|
||||
public string DosType { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "DrumCode")]
|
||||
public string DrumCode { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "DrumInitialWeightKG")]
|
||||
public double DrumInitialWeightKG { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "DrumTag")]
|
||||
public int DrumTag { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "DrumType")]
|
||||
public int DrumType { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Info1")]
|
||||
public string Info1 { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Info2")]
|
||||
public string Info2 { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Info3")]
|
||||
public string Info3 { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Info4")]
|
||||
public string Info4 { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Info5")]
|
||||
public string Info5 { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Info6")]
|
||||
public string Info6 { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Info7")]
|
||||
public string Info7 { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Info8")]
|
||||
public string Info8 { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Info9")]
|
||||
public string Info9 { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "LotID")]
|
||||
public string LotID { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Note1")]
|
||||
public string Note1 { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Note2")]
|
||||
public string Note2 { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "OrderCode")]
|
||||
public string OrderCode { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Prio")]
|
||||
public string Prio { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Quantity-kg")]
|
||||
public double Quantitykg { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Quantity-kg-dosed")]
|
||||
public double Quantitykgdosed { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "RecipeStatus")]
|
||||
public string RecipeStatus { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "RecipeType")]
|
||||
public string RecipeType { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "RecName")]
|
||||
public string RecName { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "ReqType")]
|
||||
public string ReqType { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Screen")]
|
||||
public string Screen { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Sequence")]
|
||||
public int Sequence { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "SequenceTot")]
|
||||
public int SequenceTot { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Series")]
|
||||
public int Series { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "ServiceType")]
|
||||
public string ServiceType { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "SplitCurrent")]
|
||||
public int SplitCurrent { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "SplitTotal")]
|
||||
public int SplitTotal { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Taglio-D")]
|
||||
public double TaglioD { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Taglio-N")]
|
||||
public double TaglioN { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "UM")]
|
||||
public int UM { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "Variant")]
|
||||
public string Variant { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "ViscoName")]
|
||||
public string ViscoName { get; set; }
|
||||
|
||||
[XmlElement(ElementName = "ViscoValue")]
|
||||
public double ViscoValue { get; set; }
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
|
||||
[XmlRoot(ElementName = "DesRecipe")]
|
||||
public class DesRecipe
|
||||
{
|
||||
#region Public Properties
|
||||
|
||||
[XmlElement(ElementName = "DesData")]
|
||||
public DesData DesData { get; set; }
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
|
||||
#endregion Public Classes
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
using StackExchange.Redis;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace IOB_UT_NEXT
|
||||
{
|
||||
/// <summary>
|
||||
/// Classe gestione code, a seconda della conf come LIST redis o come concurrent queue in memoria
|
||||
/// </summary>
|
||||
public class DataQueue
|
||||
{
|
||||
#region Public Fields
|
||||
|
||||
public int Count = 0;
|
||||
|
||||
#endregion Public Fields
|
||||
|
||||
#region Public Constructors
|
||||
|
||||
public DataQueue(string codIOB, string qName, bool useRedis)
|
||||
{
|
||||
UseRedis = useRedis;
|
||||
CodIOB = codIOB;
|
||||
QueueName = qName;
|
||||
KeyName = redisMan.redHash($"IOB:QUEUE:{CodIOB}:{QueueName}");
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Accodamento elemento
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
public void Enqueue(string item)
|
||||
{
|
||||
if (UseRedis)
|
||||
{
|
||||
redisMan.redQueuePush(KeyName, item);
|
||||
Count = (int)redisMan.redQueueCount(KeyName);
|
||||
}
|
||||
else
|
||||
{
|
||||
MemQueue.Enqueue(item);
|
||||
Count = MemQueue.Count;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Lista string degli elementi in coda, svuotando la coda
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<string> ToList()
|
||||
{
|
||||
List<string> answ = new List<string>();
|
||||
if (UseRedis)
|
||||
{
|
||||
Count = (int)redisMan.redQueueCount(KeyName);
|
||||
// ciclo x prendere tutti...
|
||||
while (Count > 0)
|
||||
{
|
||||
answ.Add(redisMan.redQueuePop(KeyName));
|
||||
Count = (int)redisMan.redQueueCount(KeyName);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
answ = MemQueue.ToList();
|
||||
Count = MemQueue.Count;
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupera 1 record dalla coda...
|
||||
/// </summary>
|
||||
/// <param name="result"></param>
|
||||
/// <returns></returns>
|
||||
public bool TryDequeue(out string result)
|
||||
{
|
||||
bool fatto = false;
|
||||
if (UseRedis)
|
||||
{
|
||||
result = redisMan.redQueuePop(KeyName);
|
||||
Count = (int)redisMan.redQueueCount(KeyName);
|
||||
fatto = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
fatto = MemQueue.TryDequeue(out result);
|
||||
Count = MemQueue.Count;
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Private Fields
|
||||
|
||||
private string CodIOB = "NA";
|
||||
|
||||
private RedisKey KeyName = "NA";
|
||||
|
||||
/// <summary>
|
||||
/// Coda modalità memoria locale
|
||||
/// </summary>
|
||||
private ConcurrentQueue<string> MemQueue = new ConcurrentQueue<string>();
|
||||
|
||||
private string QueueName = "NA";
|
||||
|
||||
/// <summary>
|
||||
/// Indica se usare redis come datastore vs memoria
|
||||
/// </summary>
|
||||
private bool UseRedis = false;
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Private Properties
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto connessione REDIS
|
||||
/// </summary>
|
||||
private RedisIobCache redisMan { get; set; } = new RedisIobCache();
|
||||
|
||||
#endregion Private Properties
|
||||
}
|
||||
}
|
||||
@@ -312,6 +312,11 @@ namespace IOB_UT_NEXT
|
||||
///// </summary>
|
||||
//FILE_XYLOG,
|
||||
|
||||
/// <summary>
|
||||
/// File Based Log file analisys per Soitaab
|
||||
/// </summary>
|
||||
FILE_SOITAAB,
|
||||
|
||||
/// <summary>
|
||||
/// Adapter KAWASAKI e-controller
|
||||
/// </summary>
|
||||
|
||||
@@ -75,11 +75,11 @@
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="ICSharpCode.SharpZipLib, Version=1.3.1.9, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\SharpZipLib.1.3.1\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
<Reference Include="ICSharpCode.SharpZipLib, Version=1.4.2.13, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\SharpZipLib.1.4.2\lib\netstandard2.0\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MapoSDK, Version=6.14.2211.3016, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MapoSDK.6.14.2211.3016\lib\MapoSDK.dll</HintPath>
|
||||
<Reference Include="MapoSDK, Version=6.14.2304.1209, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MapoSDK.6.14.2304.1209\lib\MapoSDK.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||
@@ -88,13 +88,13 @@
|
||||
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.5.1.2\lib\net46\NLog.dll</HintPath>
|
||||
<HintPath>..\packages\NLog.5.2.3\lib\net46\NLog.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Pipelines.Sockets.Unofficial, Version=1.0.0.0, Culture=neutral, PublicKeyToken=42ea0a778e13fbe2, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Pipelines.Sockets.Unofficial.2.2.2\lib\net461\Pipelines.Sockets.Unofficial.dll</HintPath>
|
||||
<HintPath>..\packages\Pipelines.Sockets.Unofficial.2.2.8\lib\net461\Pipelines.Sockets.Unofficial.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\StackExchange.Redis.2.6.80\lib\net461\StackExchange.Redis.dll</HintPath>
|
||||
<HintPath>..\packages\StackExchange.Redis.2.6.122\lib\net461\StackExchange.Redis.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
@@ -102,17 +102,17 @@
|
||||
</Reference>
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Diagnostics.PerformanceCounter, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Diagnostics.PerformanceCounter.6.0.0\lib\net461\System.Diagnostics.PerformanceCounter.dll</HintPath>
|
||||
<Reference Include="System.Diagnostics.PerformanceCounter, Version=6.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Diagnostics.PerformanceCounter.6.0.1\lib\net461\System.Diagnostics.PerformanceCounter.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<Reference Include="System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IO.Pipelines, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Pipelines.6.0.0\lib\net461\System.IO.Pipelines.dll</HintPath>
|
||||
<Reference Include="System.IO.Pipelines, Version=6.0.0.3, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Pipelines.6.0.3\lib\net461\System.IO.Pipelines.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
|
||||
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Net" />
|
||||
<Reference Include="System.Numerics" />
|
||||
@@ -141,6 +141,9 @@
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="BitUtils.cs" />
|
||||
<Compile Include="DataModel\Fimat.cs" />
|
||||
<Compile Include="DataQueue.cs" />
|
||||
<Compile Include="FileProcMan.cs" />
|
||||
<Compile Include="IntConditionCheck.cs" />
|
||||
<Compile Include="BitConditionCheck.cs" />
|
||||
|
||||
@@ -816,4 +816,13 @@ namespace IOB_UT_NEXT
|
||||
#endregion Public Properties
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generico evento log
|
||||
/// </summary>
|
||||
public class GenLogRow
|
||||
{
|
||||
public DateTime dtRif { get; set; } = DateTime.Now;
|
||||
|
||||
public string valString { get; set; } = "";
|
||||
}
|
||||
}
|
||||
@@ -729,6 +729,60 @@ namespace IOB_UT_NEXT
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Conteggio elementi in QUEUE (FIFO)
|
||||
/// </summary>
|
||||
/// <param name="queueName"></param>
|
||||
/// <param name="value"></param>
|
||||
public long redQueueCount(RedisKey queueName)
|
||||
{
|
||||
return cache.ListLength(queueName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupero valore in QUEUE (FIFO)
|
||||
/// </summary>
|
||||
/// <param name="queueName"></param>
|
||||
/// <param name="value"></param>
|
||||
public RedisValue redQueuePop(RedisKey queueName)
|
||||
{
|
||||
return cache.ListLeftPop(queueName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Scrittura valore in QUEUE (FIFO)
|
||||
/// </summary>
|
||||
/// <param name="queueName"></param>
|
||||
/// <param name="value"></param>
|
||||
public void redQueuePush(RedisKey queueName, RedisValue value)
|
||||
{
|
||||
cache.ListRightPush(queueName, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// RIMUOVE un singolo valore (riga) dalla hash
|
||||
/// </summary>
|
||||
/// <param name="hashKey"></param>
|
||||
/// <param name="hashField"></param>
|
||||
/// <returns></returns>
|
||||
public string redRemoveHashField(string hashKey, string hashField)
|
||||
{
|
||||
string answ = "";
|
||||
// cerco se ci sia valore in redis...
|
||||
try
|
||||
{
|
||||
RedisKey chiave = hashKey;
|
||||
RedisValue campo = hashField;
|
||||
RedisValue valOut = cache.HashDelete(chiave, campo);
|
||||
answ = valOut.ToString();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Logging.Instance.Error($"redRemoveHashField{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Salvataggio di una hash di valori
|
||||
/// </summary>
|
||||
@@ -907,6 +961,36 @@ namespace IOB_UT_NEXT
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Conteggio elementi in QUEUE (LIFO)
|
||||
/// </summary>
|
||||
/// <param name="queueName"></param>
|
||||
/// <param name="value"></param>
|
||||
public long redStackCount(RedisKey queueName)
|
||||
{
|
||||
return cache.ListLength(queueName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupero valore in STACK (LIFO)
|
||||
/// </summary>
|
||||
/// <param name="stackName"></param>
|
||||
/// <returns></returns>
|
||||
public RedisValue redStackPop(RedisKey stackName)
|
||||
{
|
||||
return cache.ListRightPop(stackName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Scrittura valore in STACK (LIFO)
|
||||
/// </summary>
|
||||
/// <param name="stackName"></param>
|
||||
/// <param name="value"></param>
|
||||
public void redStackPush(RedisKey stackName, RedisValue value)
|
||||
{
|
||||
cache.ListRightPush(stackName, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Resetta (elimina) un contatore in Redis
|
||||
/// </summary>
|
||||
|
||||
+20
-16
@@ -3,29 +3,17 @@
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" />
|
||||
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
|
||||
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.3" newVersion="6.0.0.3" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Channels" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
@@ -34,6 +22,22 @@
|
||||
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" /></startup></configuration>
|
||||
|
||||
+56
-25
@@ -8,6 +8,7 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.NetworkInformation;
|
||||
using System.Security.Cryptography;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace IOB_UT_NEXT
|
||||
@@ -66,27 +67,6 @@ namespace IOB_UT_NEXT
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce la prima cifra (a sx) da un numero (es x decodere quale memoria modbus sia)
|
||||
/// </summary>
|
||||
/// <param name="num">Numero di cui trovare la priam cifra</param>
|
||||
/// <returns></returns>
|
||||
public static int getFirstInt(int num)
|
||||
{
|
||||
if (num >= 100000000) num /= 100000000;
|
||||
if (num >= 10000) num /= 10000;
|
||||
if (num >= 100) num /= 100;
|
||||
if (num >= 10) num /= 10;
|
||||
|
||||
#if false
|
||||
// formulazione alternativa con ciclo...
|
||||
while (num >= 10)
|
||||
num /= 10;
|
||||
#endif
|
||||
|
||||
return num;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// formatta un numero in forma binaria 0/1
|
||||
/// </summary>
|
||||
@@ -271,6 +251,20 @@ namespace IOB_UT_NEXT
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test esistenza/creazione directory
|
||||
/// </summary>
|
||||
/// <param name="dirPath"></param>
|
||||
public static void checkDir(string dirPath)
|
||||
{
|
||||
if (!Directory.Exists(dirPath))
|
||||
{
|
||||
lg.Info($"Dir not found: {dirPath}");
|
||||
Directory.CreateDirectory(dirPath);
|
||||
lg.Info($"reated local dir {dirPath}");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Conteggio valori true in un array di boolean
|
||||
/// </summary>
|
||||
@@ -349,6 +343,46 @@ namespace IOB_UT_NEXT
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Calcolo MD5 del fine indicato
|
||||
/// </summary>
|
||||
/// <param name="fileName"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetFileMd5(string fileName)
|
||||
{
|
||||
string answ = "";
|
||||
using (var md5 = MD5.Create())
|
||||
{
|
||||
using (var stream = File.OpenRead(fileName))
|
||||
{
|
||||
var hash = md5.ComputeHash(stream);
|
||||
answ = BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant();
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce la prima cifra (a sx) da un numero (es x decodere quale memoria modbus sia)
|
||||
/// </summary>
|
||||
/// <param name="num">Numero di cui trovare la priam cifra</param>
|
||||
/// <returns></returns>
|
||||
public static int getFirstInt(int num)
|
||||
{
|
||||
if (num >= 100000000) num /= 100000000;
|
||||
if (num >= 10000) num /= 10000;
|
||||
if (num >= 100) num /= 100;
|
||||
if (num >= 10) num /= 10;
|
||||
|
||||
#if false
|
||||
// formulazione alternativa con ciclo...
|
||||
while (num >= 10)
|
||||
num /= 10;
|
||||
#endif
|
||||
|
||||
return num;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// IP della macchina
|
||||
/// </summary>
|
||||
@@ -720,10 +754,7 @@ namespace IOB_UT_NEXT
|
||||
{
|
||||
string dirPath = file.Substring(0, file.LastIndexOf('\\'));
|
||||
// verifico directory
|
||||
if (!Directory.Exists(dirPath))
|
||||
{
|
||||
Directory.CreateDirectory(dirPath);
|
||||
}
|
||||
checkDir(dirPath);
|
||||
string[] lines = dictionary.OrderBy(i => i.Key).Select(kvp => kvp.Key + ":" + kvp.Value).ToArray();
|
||||
try
|
||||
{
|
||||
|
||||
+46
-11
@@ -240,10 +240,7 @@ namespace IOB_UT_NEXT
|
||||
else if (theEntry.IsDirectory)
|
||||
{
|
||||
string strNewDirectory = @"" + baseDirectory + @"\" + theEntry.Name;
|
||||
if (!Directory.Exists(strNewDirectory))
|
||||
{
|
||||
Directory.CreateDirectory(strNewDirectory);
|
||||
}
|
||||
baseUtils.checkDir(strNewDirectory);
|
||||
}
|
||||
}
|
||||
ZipStream.Close();
|
||||
@@ -309,13 +306,8 @@ namespace IOB_UT_NEXT
|
||||
}
|
||||
else if (theEntry.IsDirectory)
|
||||
{
|
||||
string strNewDirectory = @"" + baseDirectory + @"\" +
|
||||
|
||||
theEntry.Name;
|
||||
if (!Directory.Exists(strNewDirectory))
|
||||
{
|
||||
Directory.CreateDirectory(strNewDirectory);
|
||||
}
|
||||
string strNewDirectory = @"" + baseDirectory + @"\" + theEntry.Name;
|
||||
baseUtils.checkDir(strNewDirectory);
|
||||
}
|
||||
}
|
||||
ZipStream.Close();
|
||||
@@ -911,6 +903,49 @@ namespace IOB_UT_NEXT
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Compressione zip x folder indicata
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static bool zippaDirectory(string dirPath, string nomeZip)
|
||||
{
|
||||
bool fatto = false;
|
||||
try
|
||||
{
|
||||
using (ZipOutputStream s = new ZipOutputStream(File.Create(nomeZip)))
|
||||
{
|
||||
s.SetLevel(5);
|
||||
byte[] buffer = new byte[4096];
|
||||
// processo x ogni file nella directory...
|
||||
var file2zip = Directory.GetFiles(dirPath);
|
||||
foreach (var currFile in file2zip)
|
||||
{
|
||||
ZipEntry entry = new ZipEntry(Path.GetFileName(currFile));
|
||||
// Could also use the last write time or similar for the file.
|
||||
entry.DateTime = DateTime.Now;
|
||||
s.PutNextEntry(entry);
|
||||
using (FileStream fs = File.OpenRead(currFile))
|
||||
{
|
||||
// Using a fixed size buffer here makes no noticeable difference for output
|
||||
// but keeps a lid on memory usage.
|
||||
int sourceBytes;
|
||||
do
|
||||
{
|
||||
sourceBytes = fs.Read(buffer, 0, buffer.Length);
|
||||
s.Write(buffer, 0, sourceBytes);
|
||||
} while (sourceBytes > 0);
|
||||
}
|
||||
}
|
||||
s.Finish();
|
||||
s.Close();
|
||||
}
|
||||
fatto = true;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return fatto;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Fields
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="MapoSDK" version="6.14.2211.3016" targetFramework="net462" />
|
||||
<package id="MapoSDK" version="6.14.2304.1209" targetFramework="net462" />
|
||||
<package id="Microsoft.Bcl.AsyncInterfaces" version="6.0.0" targetFramework="net462" />
|
||||
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net462" />
|
||||
<package id="NLog" version="5.1.2" targetFramework="net462" />
|
||||
<package id="Pipelines.Sockets.Unofficial" version="2.2.2" targetFramework="net462" />
|
||||
<package id="SharpZipLib" version="1.3.1" targetFramework="net462" />
|
||||
<package id="StackExchange.Redis" version="2.6.80" targetFramework="net462" />
|
||||
<package id="NLog" version="5.2.3" targetFramework="net462" />
|
||||
<package id="Pipelines.Sockets.Unofficial" version="2.2.8" targetFramework="net462" />
|
||||
<package id="SharpZipLib" version="1.4.2" targetFramework="net462" />
|
||||
<package id="StackExchange.Redis" version="2.6.122" targetFramework="net462" />
|
||||
<package id="System.Buffers" version="4.5.1" targetFramework="net462" />
|
||||
<package id="System.Diagnostics.PerformanceCounter" version="6.0.0" targetFramework="net462" />
|
||||
<package id="System.Diagnostics.PerformanceCounter" version="6.0.1" targetFramework="net462" />
|
||||
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
|
||||
<package id="System.IO.Pipelines" version="6.0.0" targetFramework="net462" />
|
||||
<package id="System.Memory" version="4.5.4" targetFramework="net462" />
|
||||
<package id="System.IO.Pipelines" version="6.0.3" targetFramework="net462" />
|
||||
<package id="System.Memory" version="4.5.5" targetFramework="net462" />
|
||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net462" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net462" />
|
||||
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net462" />
|
||||
|
||||
@@ -9,9 +9,18 @@ namespace IOB_UT_NEXT
|
||||
{
|
||||
public class plcMemMapExt : plcMemMap
|
||||
{
|
||||
/// <summary>
|
||||
/// Dizionario parametri opzionali
|
||||
/// </summary>
|
||||
public Dictionary<string, string> optMemPar { get; set; } = new Dictionary<string, string>();
|
||||
/// <summary>
|
||||
/// Dizionario x decodifica file
|
||||
/// </summary>
|
||||
public Dictionary<string, int> fileDecod { get; set; } = new Dictionary<string, int>();
|
||||
/// <summary>
|
||||
/// Lista ulteriori configurazioni KeyValuePair
|
||||
/// </summary>
|
||||
public Dictionary<string, string> optKVP { get; set; } = new Dictionary<string, string>();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,19 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
Generated
+21
-21
@@ -51,6 +51,8 @@
|
||||
this.tabMes = new System.Windows.Forms.TabPage();
|
||||
this.btnForceAutoOdl = new System.Windows.Forms.Button();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.label25 = new System.Windows.Forms.Label();
|
||||
this.lblQueueRwTrLog = new System.Windows.Forms.Label();
|
||||
this.label24 = new System.Windows.Forms.Label();
|
||||
this.lblQueueULog = new System.Windows.Forms.Label();
|
||||
this.label19 = new System.Windows.Forms.Label();
|
||||
@@ -109,8 +111,6 @@
|
||||
this.lblOutMessage3 = new System.Windows.Forms.Label();
|
||||
this.lblOutMessage2 = new System.Windows.Forms.Label();
|
||||
this.tabData = new System.Windows.Forms.TabControl();
|
||||
this.label25 = new System.Windows.Forms.Label();
|
||||
this.lblQueueRwTrLog = new System.Windows.Forms.Label();
|
||||
this.statusStrip1.SuspendLayout();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.tabMes.SuspendLayout();
|
||||
@@ -391,6 +391,25 @@
|
||||
this.panel1.Size = new System.Drawing.Size(343, 306);
|
||||
this.panel1.TabIndex = 88;
|
||||
//
|
||||
// label25
|
||||
//
|
||||
this.label25.AutoSize = true;
|
||||
this.label25.Location = new System.Drawing.Point(10, 213);
|
||||
this.label25.Name = "label25";
|
||||
this.label25.Size = new System.Drawing.Size(85, 13);
|
||||
this.label25.TabIndex = 96;
|
||||
this.label25.Text = "RwTr Queue len";
|
||||
//
|
||||
// lblQueueRwTrLog
|
||||
//
|
||||
this.lblQueueRwTrLog.AutoSize = true;
|
||||
this.lblQueueRwTrLog.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblQueueRwTrLog.Location = new System.Drawing.Point(104, 213);
|
||||
this.lblQueueRwTrLog.Name = "lblQueueRwTrLog";
|
||||
this.lblQueueRwTrLog.Size = new System.Drawing.Size(31, 13);
|
||||
this.lblQueueRwTrLog.TabIndex = 97;
|
||||
this.lblQueueRwTrLog.Text = "###";
|
||||
//
|
||||
// label24
|
||||
//
|
||||
this.label24.AutoSize = true;
|
||||
@@ -1047,25 +1066,6 @@
|
||||
this.tabData.TabIndex = 71;
|
||||
this.tabData.Selected += new System.Windows.Forms.TabControlEventHandler(this.TabData_Selected);
|
||||
//
|
||||
// label25
|
||||
//
|
||||
this.label25.AutoSize = true;
|
||||
this.label25.Location = new System.Drawing.Point(10, 213);
|
||||
this.label25.Name = "label25";
|
||||
this.label25.Size = new System.Drawing.Size(85, 13);
|
||||
this.label25.TabIndex = 96;
|
||||
this.label25.Text = "RwTr Queue len";
|
||||
//
|
||||
// lblQueueRwTrLog
|
||||
//
|
||||
this.lblQueueRwTrLog.AutoSize = true;
|
||||
this.lblQueueRwTrLog.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblQueueRwTrLog.Location = new System.Drawing.Point(104, 213);
|
||||
this.lblQueueRwTrLog.Name = "lblQueueRwTrLog";
|
||||
this.lblQueueRwTrLog.Size = new System.Drawing.Size(31, 13);
|
||||
this.lblQueueRwTrLog.TabIndex = 97;
|
||||
this.lblQueueRwTrLog.Text = "###";
|
||||
//
|
||||
// AdapterForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
|
||||
+248
-241
@@ -41,7 +41,7 @@ namespace IOB_WIN_NEXT
|
||||
/// <summary>
|
||||
/// Oggetto x gestione dell'adapter GENERICO (x poter usare metodi di ognuno...)
|
||||
/// </summary>
|
||||
public IobGeneric iobObj;
|
||||
public Iob.Generic iobObj;
|
||||
|
||||
/// <summary>
|
||||
/// tipo di adapter prescelto...
|
||||
@@ -50,6 +50,89 @@ namespace IOB_WIN_NEXT
|
||||
|
||||
#endregion Public Fields
|
||||
|
||||
#region Protected Fields
|
||||
|
||||
/// <summary>
|
||||
/// contatore veloce
|
||||
/// </summary>
|
||||
protected int fastCount;
|
||||
|
||||
/// <summary>
|
||||
/// Data-Ora prima apertura FORM...
|
||||
/// </summary>
|
||||
protected DateTime firstStart;
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto ultimo inviato stato IOB x REDIS
|
||||
/// </summary>
|
||||
protected IobWinStatus lastIobStatus = new IobWinStatus() { lastUpdate = DateTime.Now.AddHours(-1), lastDataOut = DateTime.Now.AddHours(-1) };
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto ultimo inviato stato MP-IO x REDIS
|
||||
/// </summary>
|
||||
protected ServerMpStatus lastSrvStatus = new ServerMpStatus();
|
||||
|
||||
/// <summary>
|
||||
/// ultimo tentativo riavvio...
|
||||
/// </summary>
|
||||
protected DateTime lastStartTry;
|
||||
|
||||
/// <summary>
|
||||
/// contatore normale
|
||||
/// </summary>
|
||||
protected int normCount;
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto connessioen REDIS
|
||||
/// </summary>
|
||||
protected RedisIobCache redisMan = new RedisIobCache();
|
||||
|
||||
/// <summary>
|
||||
/// Generatore numeri random
|
||||
/// </summary>
|
||||
protected Random rndGen = new Random();
|
||||
|
||||
/// <summary>
|
||||
/// Contatore campionamento memoria
|
||||
/// </summary>
|
||||
protected int sampleMemCount;
|
||||
|
||||
/// <summary>
|
||||
/// Indica se inviare avvio adapter con FluxLog
|
||||
/// </summary>
|
||||
protected bool sendStartFLog = false;
|
||||
|
||||
/// <summary>
|
||||
/// contatore lento
|
||||
/// </summary>
|
||||
protected int slowCount;
|
||||
|
||||
/// <summary>
|
||||
/// contatore sync allarmi
|
||||
/// </summary>
|
||||
protected int verySlowCount;
|
||||
|
||||
/// <summary>
|
||||
/// Temnpo attesa std in MS
|
||||
/// </summary>
|
||||
protected int waitRecMSec = 30000;
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#region Private Fields
|
||||
|
||||
/// <summary>
|
||||
/// Dizionario dei valori bloccati x evitare log eccessivo
|
||||
/// </summary>
|
||||
private Dictionary<string, DateTime> vetoLogError = new Dictionary<string, DateTime>();
|
||||
|
||||
/// <summary>
|
||||
/// Periodo di veto log in minuti
|
||||
/// </summary>
|
||||
private int vetoPeriodMin = 15;
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Public Constructors
|
||||
|
||||
/// <summary>
|
||||
@@ -149,7 +232,7 @@ namespace IOB_WIN_NEXT
|
||||
if (needSend)
|
||||
{
|
||||
// segnalo reboot (programma)...
|
||||
IobGeneric.callUrl(iobObj.urlReboot, true);
|
||||
Iob.Generic.callUrl(iobObj.urlReboot, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -167,6 +250,12 @@ namespace IOB_WIN_NEXT
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Private Delegates
|
||||
|
||||
private delegate void SafeCallDelegate(string text);
|
||||
|
||||
#endregion Private Delegates
|
||||
|
||||
#region Public Properties
|
||||
|
||||
public int alQueueLen
|
||||
@@ -671,6 +760,99 @@ namespace IOB_WIN_NEXT
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
/// <summary>
|
||||
/// Valore protected comunicazione PLC
|
||||
/// </summary>
|
||||
protected bool _commPlcActive { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Valore protetto stato comunicazione
|
||||
/// </summary>
|
||||
protected int _commSrvActive { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Valore protected semaforo IN
|
||||
/// </summary>
|
||||
protected Semaforo _sIN { get; set; } = Semaforo.ND;
|
||||
|
||||
/// <summary>
|
||||
/// Valore protected semaforo OUT
|
||||
/// </summary>
|
||||
protected Semaforo _sOUT { get; set; } = Semaforo.ND;
|
||||
|
||||
/// <summary>
|
||||
/// Codice IOB della macchina cui connettersi (x scegliere corretto file di conf...)
|
||||
/// </summary>
|
||||
protected string CurrIOB { get; set; }
|
||||
|
||||
protected int delayShowLogMs { get; set; } = utils.CRI("delayShowLogMs");
|
||||
|
||||
/// <summary>
|
||||
/// Dictionary dei divieti del datamonitor
|
||||
/// </summary>
|
||||
protected Dictionary<int, DateTime> dMonDisplVetoVeto { get; set; } = new Dictionary<int, DateTime>();
|
||||
|
||||
/// <summary>
|
||||
/// array degli oggetti datamonitor da mostrare
|
||||
/// </summary>
|
||||
protected Dictionary<int, List<string>> dMonValues { get; set; } = new Dictionary<int, List<string>>();
|
||||
|
||||
/// <summary>
|
||||
/// Veto a NUOVE scritture in COUNTER...
|
||||
/// </summary>
|
||||
protected DateTime logCounterVeto { get; set; } = DateTime.Now;
|
||||
|
||||
/// <summary>
|
||||
/// Lista String da mostrare quale TaskLog corrente...
|
||||
/// </summary>
|
||||
protected List<string> logTaskString { get; set; } = new List<string>();
|
||||
|
||||
/// <summary>
|
||||
/// Lista String da mostrare quale WatchLog corrente...
|
||||
/// </summary>
|
||||
protected ConcurrentQueue<string> logWatchString { get; set; } = new ConcurrentQueue<string>();
|
||||
|
||||
/// <summary>
|
||||
/// Veto a NUOVE scritture in logWatch...
|
||||
/// </summary>
|
||||
protected DateTime logWatchWriteVeto { get; set; } = DateTime.Now;
|
||||
|
||||
protected int maxAlQueue { get; set; }
|
||||
|
||||
protected int maxEvQueue { get; set; }
|
||||
|
||||
protected int maxFlQueue { get; set; }
|
||||
|
||||
protected int maxMsQueue { get; set; }
|
||||
|
||||
protected int maxRwTrQueue { get; set; }
|
||||
|
||||
protected int maxUlQueue { get; set; }
|
||||
|
||||
protected int qAlLen { get; set; }
|
||||
|
||||
protected int qEvLen { get; set; }
|
||||
|
||||
protected int qFlLen { get; set; }
|
||||
|
||||
protected int qMsLen { get; set; }
|
||||
|
||||
protected int qRTrLen { get; set; }
|
||||
|
||||
protected int qUlLen { get; set; }
|
||||
|
||||
protected int totQueue
|
||||
{
|
||||
get
|
||||
{
|
||||
return qEvLen + qFlLen + qAlLen + qMsLen + qUlLen;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Protected Properties
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
@@ -913,168 +1095,6 @@ namespace IOB_WIN_NEXT
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Fields
|
||||
|
||||
/// <summary>
|
||||
/// contatore veloce
|
||||
/// </summary>
|
||||
protected int fastCount;
|
||||
|
||||
/// <summary>
|
||||
/// Data-Ora prima apertura FORM...
|
||||
/// </summary>
|
||||
protected DateTime firstStart;
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto ultimo inviato stato IOB x REDIS
|
||||
/// </summary>
|
||||
protected IobWinStatus lastIobStatus = new IobWinStatus() { lastUpdate = DateTime.Now.AddHours(-1), lastDataOut = DateTime.Now.AddHours(-1) };
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto ultimo inviato stato MP-IO x REDIS
|
||||
/// </summary>
|
||||
protected ServerMpStatus lastSrvStatus = new ServerMpStatus();
|
||||
|
||||
/// <summary>
|
||||
/// ultimo tentativo riavvio...
|
||||
/// </summary>
|
||||
protected DateTime lastStartTry;
|
||||
|
||||
/// <summary>
|
||||
/// contatore normale
|
||||
/// </summary>
|
||||
protected int normCount;
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto connessioen REDIS
|
||||
/// </summary>
|
||||
protected RedisIobCache redisMan = new RedisIobCache();
|
||||
|
||||
/// <summary>
|
||||
/// Generatore numeri random
|
||||
/// </summary>
|
||||
protected Random rndGen = new Random();
|
||||
|
||||
/// <summary>
|
||||
/// Contatore campionamento memoria
|
||||
/// </summary>
|
||||
protected int sampleMemCount;
|
||||
|
||||
/// <summary>
|
||||
/// Indica se inviare avvio adapter con FluxLog
|
||||
/// </summary>
|
||||
protected bool sendStartFLog = false;
|
||||
|
||||
/// <summary>
|
||||
/// contatore lento
|
||||
/// </summary>
|
||||
protected int slowCount;
|
||||
|
||||
/// <summary>
|
||||
/// contatore sync allarmi
|
||||
/// </summary>
|
||||
protected int verySlowCount;
|
||||
|
||||
/// <summary>
|
||||
/// Temnpo attesa std in MS
|
||||
/// </summary>
|
||||
protected int waitRecMSec = 30000;
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
/// <summary>
|
||||
/// Valore protected comunicazione PLC
|
||||
/// </summary>
|
||||
protected bool _commPlcActive { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Valore protetto stato comunicazione
|
||||
/// </summary>
|
||||
protected int _commSrvActive { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Valore protected semaforo IN
|
||||
/// </summary>
|
||||
protected Semaforo _sIN { get; set; } = Semaforo.ND;
|
||||
|
||||
/// <summary>
|
||||
/// Valore protected semaforo OUT
|
||||
/// </summary>
|
||||
protected Semaforo _sOUT { get; set; } = Semaforo.ND;
|
||||
|
||||
/// <summary>
|
||||
/// Codice IOB della macchina cui connettersi (x scegliere corretto file di conf...)
|
||||
/// </summary>
|
||||
protected string CurrIOB { get; set; }
|
||||
|
||||
protected int delayShowLogMs { get; set; } = utils.CRI("delayShowLogMs");
|
||||
|
||||
/// <summary>
|
||||
/// Dictionary dei divieti del datamonitor
|
||||
/// </summary>
|
||||
protected Dictionary<int, DateTime> dMonDisplVetoVeto { get; set; } = new Dictionary<int, DateTime>();
|
||||
|
||||
/// <summary>
|
||||
/// array degli oggetti datamonitor da mostrare
|
||||
/// </summary>
|
||||
protected Dictionary<int, List<string>> dMonValues { get; set; } = new Dictionary<int, List<string>>();
|
||||
|
||||
/// <summary>
|
||||
/// Veto a NUOVE scritture in COUNTER...
|
||||
/// </summary>
|
||||
protected DateTime logCounterVeto { get; set; } = DateTime.Now;
|
||||
|
||||
/// <summary>
|
||||
/// Lista String da mostrare quale TaskLog corrente...
|
||||
/// </summary>
|
||||
protected List<string> logTaskString { get; set; } = new List<string>();
|
||||
|
||||
/// <summary>
|
||||
/// Lista String da mostrare quale WatchLog corrente...
|
||||
/// </summary>
|
||||
protected ConcurrentQueue<string> logWatchString { get; set; } = new ConcurrentQueue<string>();
|
||||
|
||||
/// <summary>
|
||||
/// Veto a NUOVE scritture in logWatch...
|
||||
/// </summary>
|
||||
protected DateTime logWatchWriteVeto { get; set; } = DateTime.Now;
|
||||
|
||||
protected int maxAlQueue { get; set; }
|
||||
|
||||
protected int maxEvQueue { get; set; }
|
||||
|
||||
protected int maxFlQueue { get; set; }
|
||||
|
||||
protected int maxMsQueue { get; set; }
|
||||
|
||||
protected int maxRwTrQueue { get; set; }
|
||||
|
||||
protected int maxUlQueue { get; set; }
|
||||
|
||||
protected int qAlLen { get; set; }
|
||||
|
||||
protected int qEvLen { get; set; }
|
||||
|
||||
protected int qFlLen { get; set; }
|
||||
|
||||
protected int qMsLen { get; set; }
|
||||
|
||||
protected int qRTrLen { get; set; }
|
||||
|
||||
protected int qUlLen { get; set; }
|
||||
|
||||
protected int totQueue
|
||||
{
|
||||
get
|
||||
{
|
||||
return qEvLen + qFlLen + qAlLen + qMsLen + qUlLen;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Protected Properties
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
@@ -1179,26 +1199,6 @@ namespace IOB_WIN_NEXT
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
#region Private Fields
|
||||
|
||||
/// <summary>
|
||||
/// Dizionario dei valori bloccati x evitare log eccessivo
|
||||
/// </summary>
|
||||
private Dictionary<string, DateTime> vetoLogError = new Dictionary<string, DateTime>();
|
||||
|
||||
/// <summary>
|
||||
/// Periodo di veto log in minuti
|
||||
/// </summary>
|
||||
private int vetoPeriodMin = 15;
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Private Delegates
|
||||
|
||||
private delegate void SafeCallDelegate(string text);
|
||||
|
||||
#endregion Private Delegates
|
||||
|
||||
#region Private Methods
|
||||
|
||||
private void btnForceAutoOdl_Click(object sender, EventArgs e)
|
||||
@@ -1515,7 +1515,7 @@ namespace IOB_WIN_NEXT
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void IobObj_eh_refreshed(object sender, iobRefreshedEventArgs e)
|
||||
private void IobObj_eh_refreshed(object sender, Iob.iobRefreshedEventArgs e)
|
||||
{
|
||||
// aggiorno!
|
||||
updateFormDisplay(e.DisplayDataObject);
|
||||
@@ -1576,11 +1576,13 @@ namespace IOB_WIN_NEXT
|
||||
optPar = optParRead,
|
||||
versIOB = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(),
|
||||
codIOB = fIni.ReadString("IOB", "IOB_NAME", CurrIOB),
|
||||
EnableRedisQueue = bool.Parse(fIni.ReadString("IOB", "EnableRedisQueue", "false")),
|
||||
disableExeTask = bool.Parse(fIni.ReadString("IOB", "DIS_EXE_TASK", "false")),
|
||||
disableStateCh = bool.Parse(fIni.ReadString("IOB", "DIS_STATE_CH", "false")),
|
||||
filenameIOB = CurrIOB,
|
||||
minDeltaSec = fIni.ReadInteger("IOB", "MinDeltaSec", 6),
|
||||
cncIpAddr = fIni.ReadString("CNC", "IP", "::1"),
|
||||
cncPingAddr = fIni.ReadString("CNC", "PING_IP", fIni.ReadString("CNC", "IP", "::1")),
|
||||
cncPort = fIni.ReadString("CNC", "PORT", "0"),
|
||||
iniFileName = iniConfFile,
|
||||
cpuType = fIni.ReadString("CNC", "CPUTYPE", ""),
|
||||
@@ -1602,7 +1604,7 @@ namespace IOB_WIN_NEXT
|
||||
string dirPath = $"{path}\\DATA\\{IOBConf.serverData.ClientInstall}";
|
||||
string fullPath = $"{dirPath}\\{fileName}";
|
||||
// verifica directory
|
||||
Directory.CreateDirectory(dirPath);
|
||||
baseUtils.checkDir(dirPath);
|
||||
// salvataggio
|
||||
File.WriteAllText(fullPath, confJson);
|
||||
|
||||
@@ -1627,179 +1629,184 @@ namespace IOB_WIN_NEXT
|
||||
switch (tipoScelto)
|
||||
{
|
||||
case tipoAdapter.SIMULA:
|
||||
iobObj = new IobSimula(this, IOBConf);
|
||||
iobObj = new Iob.Simula(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.BECKHOFF:
|
||||
case tipoAdapter.BECKHOFF_CPA:
|
||||
iobObj = new IobBeckhoffCpa(this, IOBConf);
|
||||
iobObj = new IobBeckhoff.BeckhoffCpa(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.FILE_GEN:
|
||||
iobObj = new IobFile(this, IOBConf);
|
||||
iobObj = new IobFile.FileGen(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.FILE_EUROM63:
|
||||
iobObj = new IobFileEurom63(this, IOBConf);
|
||||
iobObj = new IobFile.FileEurom63(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.FILE_SOITAAB:
|
||||
iobObj = new IobFile.IobFileSoitaab(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.FANUC:
|
||||
iobObj = new IobFanuc(this, IOBConf);
|
||||
iobObj = new Iob.Fanuc(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.KAWASAKI:
|
||||
iobObj = new IobKawasaki(this, IOBConf);
|
||||
iobObj = new Iob.Kawasaki(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.IcoelDb:
|
||||
iobObj = new IobIcoelDb(this, IOBConf);
|
||||
iobObj = new IobSql.IcoelDb(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.IcoelSoap:
|
||||
iobObj = new IobIcoelSoap(this, IOBConf);
|
||||
iobObj = new IobNet.IcoelSoap(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.MODBUS_TCP:
|
||||
iobObj = new IobModbusTCP(this, IOBConf);
|
||||
iobObj = new IobModbusTCP.ModbusTCP(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.MODBUS_TCP_CEDAX:
|
||||
iobObj = new IobModbusTCPCedax(this, IOBConf);
|
||||
iobObj = new IobModbusTCP.ModbusTCPCedax(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.MODBUS_TCP_CENTERFRIGO:
|
||||
iobObj = new IobModbusTCPCenterfrigo(this, IOBConf);
|
||||
iobObj = new IobModbusTCP.ModbusTCPCenterfrigo(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.MODBUS_TCP_FIMAT:
|
||||
iobObj = new IobModbusTCPFimat(this, IOBConf);
|
||||
iobObj = new IobModbusTCP.ModbusTCPFimat(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.MODBUS_TCP_HAM:
|
||||
iobObj = new IobModbusTCPHam(this, IOBConf);
|
||||
iobObj = new IobModbusTCP.ModbusTCPHam(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.MODBUS_TCP_HELPI:
|
||||
iobObj = new IobModbusTCPHelpi(this, IOBConf);
|
||||
iobObj = new IobModbusTCP.ModbusTCPHelpi(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.MODBUS_TCP_IMAS_AEROMEC:
|
||||
iobObj = new IobModbusTCPImaxAeromec(this, IOBConf);
|
||||
iobObj = new IobModbusTCP.ModbusTCPImaxAeromec(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.MODBUS_TCP_RIMOR:
|
||||
iobObj = new IobModbusTCPRimor(this, IOBConf);
|
||||
iobObj = new IobModbusTCP.ModbusTCPRimor(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.MODBUS_TCP_SAIM:
|
||||
iobObj = new IobModbusTCPSaim(this, IOBConf);
|
||||
iobObj = new IobModbusTCP.ModbusTCPSaim(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.MODBUS_TCP_ZETAPACK:
|
||||
iobObj = new IobModbusTCPZetapack(this, IOBConf);
|
||||
iobObj = new IobModbusTCP.ModbusTCPZetapack(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.MTConnect:
|
||||
iobObj = new IobMTC(this, IOBConf);
|
||||
iobObj = new Iob.MTConnect(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.OMRON:
|
||||
iobObj = new IobOmron(this, IOBConf);
|
||||
iobObj = new Iob.Omron(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.OpcUa:
|
||||
iobObj = new IobOpcUa(this, IOBConf);
|
||||
iobObj = new IobOpc.OpcUa(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.OpcUaCMS:
|
||||
case tipoAdapter.OpcUaSCM:
|
||||
iobObj = new IobOpcUaCMS(this, IOBConf);
|
||||
iobObj = new IobOpc.OpcUaCMS(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.OpcUaEwon:
|
||||
iobObj = new IobOpcUaEwon(this, IOBConf);
|
||||
iobObj = new IobOpc.OpcUaEwon(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.OpcUaEwonBLM:
|
||||
iobObj = new IobOpcUaEwonBLM(this, IOBConf);
|
||||
iobObj = new IobOpc.OpcUaEwonBLM(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.OpcUaEwonMonti:
|
||||
iobObj = new IobOpcUaEwonMonti(this, IOBConf);
|
||||
iobObj = new IobOpc.OpcUaEwonMonti(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.OpcUaEwonMecolpress:
|
||||
iobObj = new IobOpcUaEwonMecolpress(this, IOBConf);
|
||||
iobObj = new IobOpc.OpcUaEwonMecolpress(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.OpcUaImasAeromec:
|
||||
iobObj = new IobOpcUaImas(this, IOBConf);
|
||||
iobObj = new IobOpc.OpcUaImas(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.OpcUaMBH:
|
||||
iobObj = new IobOpcUaMBH(this, IOBConf);
|
||||
iobObj = new IobOpc.OpcUaMBH(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.OpcUaMBHCimolai:
|
||||
iobObj = new IobOpcUaMBHCimolai(this, IOBConf);
|
||||
iobObj = new IobOpc.OpcUaMBHCimolai(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.OpcUaOmron:
|
||||
iobObj = new IobOpcUaOmron(this, IOBConf);
|
||||
iobObj = new IobOpc.OpcUaOmron(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.OpcUaOmronIcoel:
|
||||
iobObj = new IobOpcUaOmronIcoel(this, IOBConf);
|
||||
iobObj = new IobOpc.OpcUaOmronIcoel(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.OpcUaSiemens:
|
||||
iobObj = new IobOpcUaSiemens(this, IOBConf);
|
||||
iobObj = new IobOpc.OpcUaSiemens(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.OpcUaSiemensOMP:
|
||||
iobObj = new IobOpcUaSiemensOMP(this, IOBConf);
|
||||
iobObj = new IobOpc.OpcUaSiemensOMP(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.OpcUaUlma:
|
||||
iobObj = new IobOpcUaUlma(this, IOBConf);
|
||||
iobObj = new IobOpc.OpcUaUlma(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.PingWatchdog:
|
||||
iobObj = new IobPing(this, IOBConf);
|
||||
iobObj = new IobNet.Ping(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
@@ -1807,103 +1814,103 @@ namespace IOB_WIN_NEXT
|
||||
case tipoAdapter.OSAI_CNDEX:
|
||||
case tipoAdapter.OSAI_VB6:
|
||||
// versione EgwProxy.OsaiCncLib
|
||||
iobObj = new IobOSAI(this, IOBConf);
|
||||
iobObj = new Iob.OSAI(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.SIEMENS:
|
||||
iobObj = new IobSiemens(this, IOBConf);
|
||||
iobObj = new IobSiemens.Siemens(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.SIEMENS_APROCHIM:
|
||||
iobObj = new IobSiemensAprochim(this, IOBConf);
|
||||
iobObj = new IobSiemens.SiemensAprochim(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.SIEMENS_AT2001:
|
||||
iobObj = new IobSiemensAt2001(this, IOBConf);
|
||||
iobObj = new IobSiemens.SiemensAt2001(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.SIEMENS_COMECA:
|
||||
iobObj = new IobSiemensComeca(this, IOBConf);
|
||||
iobObj = new IobSiemens.SiemensComeca(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.SIEMENS_COMUR:
|
||||
iobObj = new IobSiemensComur(this, IOBConf);
|
||||
iobObj = new IobSiemens.SiemensComur(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.SIEMENS_COSMAP:
|
||||
iobObj = new IobSiemensCosmap(this, IOBConf);
|
||||
iobObj = new IobSiemens.SiemensCosmap(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.SIEMENS_FAPE:
|
||||
iobObj = new IobSiemensFape(this, IOBConf);
|
||||
iobObj = new IobSiemens.SiemensFape(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.SIEMENS_INGENIA:
|
||||
iobObj = new IobSiemensIngenia(this, IOBConf);
|
||||
iobObj = new IobSiemens.SiemensIngenia(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.SIEMENS_LASCO:
|
||||
iobObj = new IobSiemensLasco(this, IOBConf);
|
||||
iobObj = new IobSiemens.SiemensLasco(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.SIEMENS_NWSE:
|
||||
iobObj = new IobSiemensNWSE(this, IOBConf);
|
||||
iobObj = new IobSiemens.SiemensNWSE(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.SIEMENS_PRESSOIL_CEI:
|
||||
iobObj = new IobSiemensPressoilCei(this, IOBConf);
|
||||
iobObj = new IobSiemens.SiemensPressoilCei(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.SIEMENS_ROBOTSERVICE:
|
||||
iobObj = new IobSiemensRobotService(this, IOBConf);
|
||||
iobObj = new IobSiemens.SiemensRobotService(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.SIEMENS_SAET:
|
||||
iobObj = new IobSiemensSaet(this, IOBConf);
|
||||
iobObj = new IobSiemens.SiemensSaet(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.SIEMENS_SIMEC:
|
||||
iobObj = new IobSiemensSimec(this, IOBConf);
|
||||
iobObj = new IobSiemens.SiemensSimec(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.SIEMENS_TORRI:
|
||||
iobObj = new IobSiemensTorri(this, IOBConf);
|
||||
iobObj = new IobSiemens.SiemensTorri(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.SQLSERVER_LANTEK:
|
||||
iobObj = new IobSqlServLantek(this, IOBConf);
|
||||
iobObj = new IobSql.SqlServLantek(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.SQLSERVER_PAMA:
|
||||
iobObj = new IobSqlServPama(this, IOBConf);
|
||||
iobObj = new IobSql.SqlServPama(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.WPS:
|
||||
iobObj = new IobWPS(this, IOBConf);
|
||||
iobObj = new IobNet.WebPageScrap(this, IOBConf);
|
||||
start.Enabled = true;
|
||||
break;
|
||||
|
||||
case tipoAdapter.ND:
|
||||
default:
|
||||
iobObj = new IobSimula(this, IOBConf);
|
||||
iobObj = new Iob.Simula(this, IOBConf);
|
||||
start.Enabled = false;
|
||||
break;
|
||||
}
|
||||
|
||||
+21
-7
@@ -111,15 +111,21 @@
|
||||
</appSettings>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<probing privatePath="lib;libs" />
|
||||
<probing privatePath="lib;libs" xmlns="" />
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.3" newVersion="6.0.0.3" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Channels" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
@@ -130,12 +136,20 @@
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
|
||||
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
|
||||
@@ -10,6 +10,7 @@ MODEL=Travel Lift
|
||||
|
||||
[CNC]
|
||||
IP=192.168.60.234
|
||||
PING_IP=192.168.60.235
|
||||
PORT=48010
|
||||
GETPRGNAME=true
|
||||
|
||||
@@ -45,8 +46,8 @@ MAX_COUNTER_BLINK = 30
|
||||
BLINK_FILT=0
|
||||
|
||||
[OPTPAR]
|
||||
AUTO_CHANGE_ODL=true
|
||||
CHANGE_ODL_MODE=TIME
|
||||
AUTO_CHANGE_ODL=TRUE
|
||||
CHANGE_ODL_MODE=MACHINE
|
||||
CHANGE_ODL_HOURS=24
|
||||
CHANGE_ODL_IDLE_MIN=5
|
||||
PZCOUNT_MODE=OPC
|
||||
@@ -58,6 +59,7 @@ ENABLE_DYN_DATA=FALSE
|
||||
FORCE_DYN_DATA=TRUE
|
||||
ENABLE_DATA_FILTER=TRUE
|
||||
ENABLE_CLI_RESTART=TRUE
|
||||
MAX_ELAPSED_TIME_SEC=60
|
||||
MAX_TRY_PING=3
|
||||
DISABLE_SEND_WDST=TRUE
|
||||
FTP_SERVER=192.168.60.234
|
||||
@@ -68,16 +70,22 @@ FTP_SKIP=TRUE
|
||||
FTP_LOC_DIR=temp\csv
|
||||
FTP_REM_DIR=
|
||||
CSV_ADD_HEADER=true
|
||||
|
||||
VETO_SEND_SNAPSHOT=3
|
||||
|
||||
;NO_PING=TRUE
|
||||
;EXEMODE_CHECK_BYPASS=true
|
||||
|
||||
; conf aree allarme
|
||||
ALARM_CONF=BAGLIETTO_CIMOLAI_01_alarm.json
|
||||
|
||||
;ALARM_CONF=CIMOLAI_01_alarm.json
|
||||
; conf parametri memoria READ/WRITE
|
||||
OPC_PARAM_CONF=BAGLIETTO_CIMOLAI_01.json
|
||||
;OPC_PARAM_CONF=CIMOLAI_01.json
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
NAME=master
|
||||
|
||||
; Tags manuali
|
||||
[TAGS]
|
||||
Customer=Baglietto
|
||||
HostOS=WIN
|
||||
HostName=SRVBAG-TRAVEL
|
||||
HostAddr=192.168.60.15
|
||||
|
||||
@@ -67,7 +67,8 @@ FORCE_DYN_DATA=TRUE
|
||||
DEM_FACT_DYN_DATA=5
|
||||
ENABLE_DATA_FILTER=TRUE
|
||||
ENABLE_CLI_RESTART=TRUE
|
||||
SyncStateDb=localhost\sqlexpress
|
||||
SyncStateServer=localhost\sqlexpress
|
||||
SyncStateDb=MoonPro_ISF
|
||||
SyncStateUser=egalware
|
||||
SyncStatePwd=egalware2022
|
||||
SyncStateCTout=
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
"keyProgName": "Path_01_CurrProg",
|
||||
"keyRunMode": "Path_01_RUN_MODE",
|
||||
"pingAsPowerOn": true,
|
||||
"condPowerOn":
|
||||
{
|
||||
"keyName": "POWER",
|
||||
"targetValue": "OK"
|
||||
},
|
||||
"emergencyArmedTrue": false,
|
||||
"condPowerOn": {
|
||||
"keyName": "POWER",
|
||||
"targetValue": "OK"
|
||||
},
|
||||
"condWork": [
|
||||
{
|
||||
"keyName": "Path_01_EXE_MODE",
|
||||
|
||||
@@ -72,6 +72,8 @@ SyncStateUser=steamware
|
||||
SyncStatePwd=viadante16
|
||||
SyncStateCTout=
|
||||
VetoReadSec=2
|
||||
VetoSyncSec=10
|
||||
;FullPodlUrl=true
|
||||
|
||||
; clock base (da 10ms)
|
||||
timerIntMs=20
|
||||
|
||||
@@ -10,9 +10,37 @@
|
||||
}
|
||||
},
|
||||
"mMapRead": {
|
||||
"StatoLavorazione": {
|
||||
"name": "01) StatoLavorazione",
|
||||
"description": "Stato Lavorazione",
|
||||
"memAddr": "421004",
|
||||
"tipoMem": "Int",
|
||||
"index": 21004,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 999999,
|
||||
"unit": "#"
|
||||
},
|
||||
"DurataLavorazione": {
|
||||
"name": "02) DurataLavorazione",
|
||||
"description": "Durata Lavorazione",
|
||||
"memAddr": "421002",
|
||||
"tipoMem": "Int",
|
||||
"index": 21002,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 999999,
|
||||
"unit": "h/m"
|
||||
},
|
||||
"OreFunzFiltro1": {
|
||||
"name": "OreFunzFiltro1",
|
||||
"description": "Ore funzionamento filtro 1",
|
||||
"description": "03) Filtro 1 Ore funzionamento",
|
||||
"memAddr": "420201",
|
||||
"tipoMem": "Int",
|
||||
"index": 20201,
|
||||
@@ -26,7 +54,7 @@
|
||||
},
|
||||
"MinFunzFiltro1": {
|
||||
"name": "MinFunzFiltro1",
|
||||
"description": "Minuti funzionamento filtro 1",
|
||||
"description": "04) Filtro 1 Minuti funzionamento",
|
||||
"memAddr": "420205",
|
||||
"tipoMem": "Int",
|
||||
"index": 20205,
|
||||
@@ -40,7 +68,7 @@
|
||||
},
|
||||
"OreFunzFiltroPar1": {
|
||||
"name": "OreFunzFiltroPar1",
|
||||
"description": "Ore funzionamento filtro 1 (contatore parziale azzerabile)",
|
||||
"description": "Filtro 1 (c) Ore funzionamento (contatore parziale azzerabile)",
|
||||
"memAddr": "420203",
|
||||
"tipoMem": "Int",
|
||||
"index": 20203,
|
||||
@@ -54,7 +82,7 @@
|
||||
},
|
||||
"MinFunzFiltroPar1": {
|
||||
"name": "MinFunzFiltroPar1",
|
||||
"description": "Minuti funzionamento filtro 1 (contatore parziale azzerabile)",
|
||||
"description": "Filtro 1 (d) Minuti funzionamento (contatore parziale azzerabile)",
|
||||
"memAddr": "420206",
|
||||
"tipoMem": "Int",
|
||||
"index": 20206,
|
||||
@@ -68,7 +96,7 @@
|
||||
},
|
||||
"OreFunzFiltro2": {
|
||||
"name": "OreFunzFiltro2",
|
||||
"description": "Ore funzionamento filtro 2",
|
||||
"description": "Filtro 2 (a) Ore funzionamento ",
|
||||
"memAddr": "420301",
|
||||
"tipoMem": "Int",
|
||||
"index": 20301,
|
||||
@@ -82,7 +110,7 @@
|
||||
},
|
||||
"MinFunzFiltro2": {
|
||||
"name": "MinFunzFiltro2",
|
||||
"description": "Minuti funzionamento filtro 2",
|
||||
"description": "Filtro 2 (b) Minuti funzionamento",
|
||||
"memAddr": "420305",
|
||||
"tipoMem": "Int",
|
||||
"index": 20305,
|
||||
@@ -96,7 +124,7 @@
|
||||
},
|
||||
"OreFunzFiltroPar2": {
|
||||
"name": "OreFunzFiltroPar2",
|
||||
"description": "Ore funzionamento filtro 1 (contatore parziale azzerabile)",
|
||||
"description": "Filtro 2 (c) Ore funzionamento (contatore parziale azzerabile)",
|
||||
"memAddr": "420303",
|
||||
"tipoMem": "Int",
|
||||
"index": 20303,
|
||||
@@ -110,7 +138,7 @@
|
||||
},
|
||||
"MinFunzFiltroPar2": {
|
||||
"name": "MinFunzFiltroPar2",
|
||||
"description": "Minuti funzionamento filtro 1 (contatore parziale azzerabile)",
|
||||
"description": "Filtro 2 (d) Minuti funzionamento (contatore parziale azzerabile)",
|
||||
"memAddr": "420306",
|
||||
"tipoMem": "Int",
|
||||
"index": 20306,
|
||||
@@ -124,7 +152,7 @@
|
||||
},
|
||||
"OreFunzAspiratore": {
|
||||
"name": "OreFunzAspiratore",
|
||||
"description": "Ore funzionamento Aspiratore",
|
||||
"description": "Aspiratore (a) Ore funzionamento",
|
||||
"memAddr": "420401",
|
||||
"tipoMem": "Int",
|
||||
"index": 20401,
|
||||
@@ -138,7 +166,7 @@
|
||||
},
|
||||
"MinFunzAspiratore": {
|
||||
"name": "MinFunzAspiratore",
|
||||
"description": "Minuti funzionamento Aspiratore",
|
||||
"description": "Aspiratore (b) Minuti funzionamento",
|
||||
"memAddr": "420405",
|
||||
"tipoMem": "Int",
|
||||
"index": 20405,
|
||||
@@ -152,7 +180,7 @@
|
||||
},
|
||||
"OreFunzAspiratorePar": {
|
||||
"name": "OreFunzAspiratorePar",
|
||||
"description": "Ore funzionamento Aspiratore (contatore parziale azzerabile)",
|
||||
"description": "Aspiratore (c) Ore funzionamento (contatore parziale azzerabile)",
|
||||
"memAddr": "420403",
|
||||
"tipoMem": "Int",
|
||||
"index": 20403,
|
||||
@@ -166,7 +194,7 @@
|
||||
},
|
||||
"MinFunzAspiratorePar": {
|
||||
"name": "MinFunzAspiratorePar",
|
||||
"description": "Minuti funzionamento Aspiratore (contatore parziale azzerabile)",
|
||||
"description": "Aspiratore (d) Minuti funzionamento (contatore parziale azzerabile)",
|
||||
"memAddr": "420406",
|
||||
"tipoMem": "Int",
|
||||
"index": 20406,
|
||||
@@ -177,40 +205,13 @@
|
||||
"minVal": 0,
|
||||
"maxVal": 999999,
|
||||
"unit": "m"
|
||||
},
|
||||
"DurataLavorazione": {
|
||||
"name": "DurataLavorazione",
|
||||
"description": "Durata Lavorazione",
|
||||
"memAddr": "421002",
|
||||
"tipoMem": "Int",
|
||||
"index": 21002,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 999999,
|
||||
"unit": "h/m"
|
||||
},
|
||||
"StatoLavorazione": {
|
||||
"name": "StatoLavorazione",
|
||||
"description": "Stato Lavorazione",
|
||||
"memAddr": "421004",
|
||||
"tipoMem": "Int",
|
||||
"index": 21004,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 999999,
|
||||
"unit": "#"
|
||||
}
|
||||
},
|
||||
"optMemPar": {
|
||||
"AlarmIntCond": "421004|0=1",
|
||||
"ManualIntCond": "421004|0=3",
|
||||
"EndOrdIntCond": "421002|1=1",
|
||||
//"AlarmIntCond": "421002|1=1",
|
||||
"ManualIntCond": "421002|1=3",
|
||||
//"EStopBitCond": "100040.0=1",
|
||||
"WorkIntCond": "421004|0=2,4"
|
||||
"WorkIntCond": "421002|1=2,4"
|
||||
}
|
||||
}
|
||||
@@ -208,9 +208,10 @@
|
||||
}
|
||||
},
|
||||
"optMemPar": {
|
||||
"AlarmIntCond": "406200|0=1",
|
||||
"ManualIntCond": "406200|0=3",
|
||||
"EndOrdIntCond": "406198|1=1",
|
||||
//"AlarmIntCond": "406200|0=1",
|
||||
"ManualIntCond": "406198|1=3",
|
||||
//"EStopBitCond": "100040.0=1",
|
||||
"WorkIntCond": "406200|0=2,4"
|
||||
"WorkIntCond": "406198|1=2,4"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
;Configurazione IOB-WIN
|
||||
[IOB]
|
||||
;Accesso gestione sync DB x LANTEK --> MoonPro_IOB_ISF --> Chiamate REST
|
||||
CNCTYPE=SQLSERVER_LANTEK
|
||||
PING_MS_TIMEOUT=500
|
||||
MinDeltaSec=5
|
||||
IOB_NAME=IMI_SOITAAB_Z2342
|
||||
DIS_EXE_TASK=FALSE
|
||||
DIS_STATE_CH=TRUE
|
||||
|
||||
[MACHINE]
|
||||
VENDOR=SOITAAB
|
||||
MODEL=Ossitaglio Z2342 + sw nesting LANTEK
|
||||
|
||||
[CNC]
|
||||
IP=127.0.0.1
|
||||
PORT=1443
|
||||
GETPRGNAME=false
|
||||
|
||||
[SERVER]
|
||||
MPIP=http://192.168.0.110
|
||||
MPURL=/MP/IO
|
||||
CMDBASE=/IOB/input/
|
||||
CMDFLOG=/IOB/flog/
|
||||
CMDALIVE=/IOB
|
||||
CMDENABLED=/IOB/enabled/
|
||||
CMDADV1=?valore=
|
||||
CMDREBO=/sendReboot.aspx?idxMacchina=
|
||||
CMDRAWTRANSF=/IOB/rawTransfJson/
|
||||
|
||||
[MEMORY]
|
||||
ADDR_READ=DB9999.DBB0
|
||||
ADDR_WRITE=DB9999.DBB0
|
||||
SIZE_READ=0
|
||||
SIZE_WRITE=0
|
||||
;BIT0=CONN
|
||||
;BIT1=DB60.DBB1
|
||||
;BIT2=PZCOUNT.STD.DB700.DBW22
|
||||
;BIT3=DB60.DBB3
|
||||
;BIT4=DB60.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]
|
||||
AUTO_CHANGE_ODL=false
|
||||
CHANGE_ODL_MODE=TIME
|
||||
CHANGE_ODL_HOURS=24
|
||||
CHANGE_ODL_IDLE_MIN=5
|
||||
PZCOUNT_MODE=PAMA
|
||||
DISABLE_PZCOUNT=FALSE
|
||||
ENABLE_SEND_PZC_BLOCK=TRUE
|
||||
MIN_SEND_PZC_BLOCK=0
|
||||
MAX_SEND_PZC_BLOCK=100
|
||||
ENABLE_DYN_DATA=TRUE
|
||||
FORCE_DYN_DATA=TRUE
|
||||
DEM_FACT_DYN_DATA=5
|
||||
ENABLE_DATA_FILTER=TRUE
|
||||
ENABLE_CLI_RESTART=TRUE
|
||||
DISABLE_SEND_WDST=TRUE
|
||||
SyncStateServer=308SERVER60\LANTEK
|
||||
SyncStateDb=MoonPro_IOB_ISF_LANTEK
|
||||
SyncStateUser=steamware
|
||||
SyncStatePwd=viadante16
|
||||
SyncStateCTout=
|
||||
VetoReadSec=2
|
||||
VetoSyncSec=10
|
||||
FullPodlUrl=true
|
||||
|
||||
; clock base (da 10ms)
|
||||
timerIntMs=20
|
||||
|
||||
; conf parametri memoria READ/WRITE
|
||||
PARAM_CONF=IMI_SOITAAB_Z2342_01.json
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"mMapWrite": {
|
||||
},
|
||||
"mMapRead": {
|
||||
},
|
||||
"optKVP": {
|
||||
//"path-remBase": "C:\\Temp"
|
||||
"path-remBase": "\\\\ecs900\\Logs"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
;Configurazione IOB-WIN
|
||||
[IOB]
|
||||
;Accesso gestione sync con FILE SOITAAB
|
||||
CNCTYPE=FILE_SOITAAB
|
||||
PING_MS_TIMEOUT=500
|
||||
MinDeltaSec=5
|
||||
IOB_NAME=IMI_SOITAAB_Z2342
|
||||
DIS_EXE_TASK=TRUE
|
||||
DIS_STATE_CH=FALSE
|
||||
|
||||
[MACHINE]
|
||||
VENDOR=SOITAAB
|
||||
MODEL=Ossitaglio Z2342
|
||||
|
||||
[CNC]
|
||||
;IP=ecs900
|
||||
IP=172.28.30.53
|
||||
PORT=0
|
||||
GETPRGNAME=false
|
||||
|
||||
[SERVER]
|
||||
MPIP=http://192.168.0.110
|
||||
MPURL=/MP/IO
|
||||
CMDBASE=/IOB/input/
|
||||
CMDFLOG=/IOB/flog/
|
||||
CMDALIVE=/IOB
|
||||
CMDENABLED=/IOB/enabled/
|
||||
CMDADV1=?valore=
|
||||
CMDREBO=/sendReboot.aspx?idxMacchina=
|
||||
CMDRAWTRANSF=/IOB/rawTransfJson/
|
||||
|
||||
[MEMORY]
|
||||
ADDR_READ=DB9999.DBB0
|
||||
ADDR_WRITE=DB9999.DBB0
|
||||
SIZE_READ=0
|
||||
SIZE_WRITE=0
|
||||
;BIT0=CONN
|
||||
;BIT1=DB60.DBB1
|
||||
;BIT2=PZCOUNT.STD.DB700.DBW22
|
||||
;BIT3=DB60.DBB3
|
||||
;BIT4=DB60.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]
|
||||
AUTO_CHANGE_ODL=false
|
||||
CHANGE_ODL_MODE=TIME
|
||||
CHANGE_ODL_HOURS=24
|
||||
CHANGE_ODL_IDLE_MIN=5
|
||||
PZCOUNT_MODE=SOITAAB
|
||||
DISABLE_PZCOUNT=FALSE
|
||||
ENABLE_SEND_PZC_BLOCK=TRUE
|
||||
MIN_SEND_PZC_BLOCK=0
|
||||
MAX_SEND_PZC_BLOCK=100
|
||||
ENABLE_DYN_DATA=TRUE
|
||||
FORCE_DYN_DATA=TRUE
|
||||
DEM_FACT_DYN_DATA=5
|
||||
ENABLE_DATA_FILTER=TRUE
|
||||
ENABLE_CLI_RESTART=TRUE
|
||||
DISABLE_SEND_WDST=TRUE
|
||||
VetoReadSec=5
|
||||
|
||||
; clock base (da 10ms)
|
||||
timerIntMs=20
|
||||
|
||||
; conf parametri memoria READ/WRITE
|
||||
PARAM_CONF=IMI_SOITAAB_Z2342_02.json
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"mMapWrite": {
|
||||
},
|
||||
"mMapRead": {
|
||||
},
|
||||
"optKVP": {
|
||||
//"path-remBase": "C:\\Temp"
|
||||
"path-remBase": "\\\\ecs900\\Logs"
|
||||
}
|
||||
}
|
||||
@@ -45,12 +45,19 @@ CLI_INST=SteamWareSim
|
||||
;STARTLIST=BAGLIETTO_CIMOLAI_01
|
||||
;STARTLIST=SIMUL_01
|
||||
;STARTLIST=GIACO_SAIM_003
|
||||
;STARTLIST=SIMUL_01
|
||||
;STARTLIST=PIZ09
|
||||
;STARTLIST=IMI_RIMOR_SAB_01
|
||||
;STARTLIST=IMI_RIMOR_SAB_02
|
||||
;STARTLIST=IMI_RIMOR_VER_01
|
||||
;STARTLIST=IMI_RIMOR_VER_02
|
||||
;STARTLIST=IMI_RIMOR_SAB_01
|
||||
STARTLIST=IMI_RIMOR_VER_01
|
||||
;STARTLIST=IMI_PAMA_392
|
||||
;STARTLIST=Tend_FIMAT_01
|
||||
;STARTLIST=PIZ10
|
||||
;STARTLIST=IMI_SOITAAB_Z2342_02
|
||||
|
||||
;STARTLIST=SIMUL_02
|
||||
;NB: mettere copy always ai file di conf x fare test...
|
||||
;STARTLIST=SIMUL_01
|
||||
STARTLIST=PING
|
||||
|
||||
MAXCNC=10
|
||||
@@ -2,13 +2,16 @@
|
||||
[IOB]
|
||||
CNCTYPE=PingWatchdog
|
||||
PING_MS_TIMEOUT=500
|
||||
;IOB_NAME=SIMUL_09
|
||||
IOB_NAME=SIMUL_01
|
||||
|
||||
[MACHINE]
|
||||
VENDOR=STEAMWARE
|
||||
MODEL=WATCHDOG
|
||||
|
||||
[CNC]
|
||||
IP=10.74.83.112
|
||||
IP=10.74.83.183
|
||||
;IP=10.74.82.253
|
||||
PORT=0000
|
||||
|
||||
[SERVER]
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
;Configurazione IOB-WIN
|
||||
[IOB]
|
||||
;Impianto HAM Guardamiglio per Pizzaferri
|
||||
CNCTYPE=MODBUS_TCP_HAM
|
||||
PING_MS_TIMEOUT=1000
|
||||
|
||||
[MACHINE]
|
||||
VENDOR=HAM
|
||||
MODEL=HAM
|
||||
|
||||
[CNC]
|
||||
IP=192.168.10.100
|
||||
;IP=hamsantilario.dyndns.org
|
||||
PORT=502
|
||||
|
||||
[SERVER]
|
||||
;MPIP=https://localhost:44339
|
||||
MPIP=https://gwms.egalware.com
|
||||
MPURL=/pizzaferri/api
|
||||
CMDBASE=/IOB/input/
|
||||
CMDFLOG=/IOB/flog/
|
||||
CMDALIVE=/IOB
|
||||
CMDENABLED=/IOB/enabled/
|
||||
CMDADV1=?valore=
|
||||
CMDREBO=/IOB/sendReboot?idxMacchina=
|
||||
|
||||
[MEMORY]
|
||||
ADDR_READ=40000
|
||||
ADDR_WRITE=40400
|
||||
SIZE_READ=64
|
||||
SIZE_WRITE=358
|
||||
|
||||
HR_BASE_ADDR=40000
|
||||
;DELTA_BASE=1
|
||||
DELTA_BASE=0
|
||||
INDEX_LUT_CORR=-1
|
||||
|
||||
|
||||
[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.DB85.DBRE16
|
||||
DISABLE_PZCOUNT=TRUE
|
||||
ENABLE_SEND_PZC_BLOCK=TRUE
|
||||
MIN_SEND_PZC_BLOCK=0
|
||||
MAX_SEND_PZC_BLOCK=100
|
||||
; GEST DATI DYN
|
||||
ENABLE_DYN_DATA=TRUE
|
||||
FORCE_DYN_DATA=TRUE
|
||||
; gestione delta minimo accettabile tra min/MAX
|
||||
DELTA_VAL=0.1
|
||||
|
||||
; clock base (da 10ms)
|
||||
timerIntMs=50
|
||||
|
||||
MAX_ERROR_READ=10
|
||||
|
||||
; conf parametri memoria READ/WRITE
|
||||
PARAM_CONF=PIZ10.json
|
||||
|
||||
NO_PING=FALSE
|
||||
; conf blocchi memoria x READ
|
||||
MEM_BLOCK=PIZ10_MBlock.json
|
||||
; conf aree allarme
|
||||
ALARM_CONF=PIZ10_alarm.json
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
|
||||
; Tags manuali
|
||||
[TAGS]
|
||||
Customer=Pizzaferri
|
||||
HostOS=WIN
|
||||
HostName=PIZZAFERRI-IOB-WIN-03
|
||||
HostAddr=192.168.10.50
|
||||
@@ -0,0 +1,176 @@
|
||||
{
|
||||
"mMapWrite": {
|
||||
"SetLowTempAmb01": {
|
||||
"name": "SetLowTempAmb01",
|
||||
"description": "Set point di avviso per bassa temperatura ambiente nell'impianto 01",
|
||||
"memAddr": "40421",
|
||||
"tipoMem": "Real",
|
||||
"index": 421,
|
||||
"size": 2,
|
||||
"minVal": -200,
|
||||
"maxVal": 200,
|
||||
"unit": "C"
|
||||
},
|
||||
"SetHighTempAmb01": {
|
||||
"name": "SetHighTempAmb01",
|
||||
"description": "Set point di avviso per alta temperatura ambiente nell'impianto 01",
|
||||
"memAddr": "40423",
|
||||
"tipoMem": "Real",
|
||||
"index": 423,
|
||||
"size": 2,
|
||||
"minVal": -200,
|
||||
"maxVal": 200,
|
||||
"unit": "C"
|
||||
},
|
||||
"SetLowTempAmb02": {
|
||||
"name": "SetLowTempAmb02",
|
||||
"description": "Set point di avviso per bassa temperatura ambiente nell'impianto 02",
|
||||
"memAddr": "40425",
|
||||
"tipoMem": "Real",
|
||||
"index": 425,
|
||||
"size": 2,
|
||||
"minVal": -200,
|
||||
"maxVal": 200,
|
||||
"unit": "C"
|
||||
},
|
||||
"SetHighTempAmb02": {
|
||||
"name": "SetHighTempAmb02",
|
||||
"description": "Set point di avviso per alta temperatura ambiente nell'impianto 02",
|
||||
"memAddr": "40427",
|
||||
"tipoMem": "Real",
|
||||
"index": 427,
|
||||
"size": 2,
|
||||
"minVal": -200,
|
||||
"maxVal": 200,
|
||||
"unit": "C"
|
||||
}
|
||||
},
|
||||
"mMapRead": {
|
||||
"Level": {
|
||||
"name": "Level",
|
||||
"description": "Livello Serbatoio",
|
||||
"memAddr": "40001",
|
||||
"tipoMem": "Real",
|
||||
"index": 1,
|
||||
"size": 2,
|
||||
"func": "MEDIAN",
|
||||
"period": 90,
|
||||
"factor": 360,
|
||||
"minVal": 0,
|
||||
"maxVal": 100,
|
||||
"unit": "Kg"
|
||||
},
|
||||
"MainPress": {
|
||||
"name": "MainPress",
|
||||
"description": "Pressione Serbatoio",
|
||||
"memAddr": "40003",
|
||||
"tipoMem": "Real",
|
||||
"index": 3,
|
||||
"size": 2,
|
||||
"func": "MEDIAN",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 400,
|
||||
"unit": "bar"
|
||||
},
|
||||
"TempSerb": {
|
||||
"name": "TempSerb",
|
||||
"description": "Temperatura prodotto all'interno del serbatoio",
|
||||
"memAddr": "40049",
|
||||
"tipoMem": "Real",
|
||||
"index": 49,
|
||||
"size": 2,
|
||||
"func": "MEDIAN",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": -200,
|
||||
"maxVal": 200,
|
||||
"unit": "C"
|
||||
},
|
||||
"SetLowTempAmb01": {
|
||||
"name": "SetLowTempAmb01",
|
||||
"description": "Set point di avviso per bassa temperatura ambiente nell'impianto 01",
|
||||
"memAddr": "40421",
|
||||
"tipoMem": "Real",
|
||||
"index": 421,
|
||||
"size": 2,
|
||||
"func": "MEDIAN",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": -200,
|
||||
"maxVal": 200,
|
||||
"unit": "C"
|
||||
},
|
||||
"SetHighTempAmb01": {
|
||||
"name": "SetHighTempAmb01",
|
||||
"description": "Set point di avviso per alta temperatura ambiente nell'impianto 01",
|
||||
"memAddr": "40423",
|
||||
"tipoMem": "Real",
|
||||
"index": 423,
|
||||
"size": 2,
|
||||
"func": "MEDIAN",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": -200,
|
||||
"maxVal": 200,
|
||||
"unit": "C"
|
||||
},
|
||||
"SetLowTempAmb02": {
|
||||
"name": "SetLowTempAmb02",
|
||||
"description": "Set point di avviso per bassa temperatura ambiente nell'impianto 02",
|
||||
"memAddr": "40425",
|
||||
"tipoMem": "Real",
|
||||
"index": 425,
|
||||
"size": 2,
|
||||
"func": "MEDIAN",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": -200,
|
||||
"maxVal": 200,
|
||||
"unit": "C"
|
||||
},
|
||||
"SetHighTempAmb02": {
|
||||
"name": "SetHighTempAmb02",
|
||||
"description": "Set point di avviso per alta temperatura ambiente nell'impianto 02",
|
||||
"memAddr": "40427",
|
||||
"tipoMem": "Real",
|
||||
"index": 427,
|
||||
"size": 2,
|
||||
"func": "MEDIAN",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": -200,
|
||||
"maxVal": 200,
|
||||
"unit": "C"
|
||||
},
|
||||
"PressBH": {
|
||||
"name": "PressBH",
|
||||
"description": "Pressione media all'interno dell'accumulo GNC (pacco bombole) di alta pressione",
|
||||
"memAddr": "40019",
|
||||
"tipoMem": "Real",
|
||||
"index": 19,
|
||||
"size": 2,
|
||||
"func": "MEDIAN",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 400,
|
||||
"unit": "bar"
|
||||
},
|
||||
"PressBL": {
|
||||
"name": "PressBL",
|
||||
"description": "Pressione media all'interno dell'accumulo GNC (pacco bombole) di media pressione",
|
||||
"memAddr": "40021",
|
||||
"tipoMem": "Real",
|
||||
"index": 21,
|
||||
"size": 2,
|
||||
"func": "MEDIAN",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 400,
|
||||
"unit": "bar"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"ReadBlocks": {
|
||||
"40000": 64,
|
||||
"40420": 64,
|
||||
"40900": 8
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
[
|
||||
{
|
||||
"blinkVal": 100,
|
||||
"description": "Allarmi Impianto",
|
||||
"tipoMem": "DInt",
|
||||
"memAddr": "40901",
|
||||
"index": 901,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"Basso livello serbatoio",
|
||||
"Alto livello serbatoio",
|
||||
"Errore trasmettitore livello",
|
||||
"Bassa pressione serbatoio",
|
||||
"Alta pressione serbatoio",
|
||||
"##",
|
||||
"##",
|
||||
"Allarme rilevatore gas 1",
|
||||
"##",
|
||||
"##",
|
||||
"Allarme rilevatore gas 2",
|
||||
"##",
|
||||
"##",
|
||||
"Allarme rilevatore gas 3",
|
||||
"##",
|
||||
"##"
|
||||
]
|
||||
},
|
||||
{
|
||||
"blinkVal": 100,
|
||||
"description": "Emergenza",
|
||||
"tipoMem": "DInt",
|
||||
"memAddr": "40907",
|
||||
"index": 907,
|
||||
"size": 2,
|
||||
"messages": [
|
||||
"##",
|
||||
"Pulsante di Emergenza Premuto",
|
||||
"##",
|
||||
"##",
|
||||
"##",
|
||||
"##",
|
||||
"##",
|
||||
"##",
|
||||
"##",
|
||||
"##",
|
||||
"##",
|
||||
"##",
|
||||
"##",
|
||||
"##",
|
||||
"##",
|
||||
"##"
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -3,6 +3,7 @@
|
||||
CNCTYPE=SIMULA
|
||||
PING_MS_TIMEOUT=500
|
||||
MinDeltaSec=5
|
||||
EnableRedisQueue=true
|
||||
|
||||
[MACHINE]
|
||||
VENDOR=STEAMWARE
|
||||
@@ -91,10 +92,12 @@ FTP_LOC_DIR=temp\csv
|
||||
FTP_REM_DIR=
|
||||
CSV_ADD_HEADER=true
|
||||
|
||||
; conf file import
|
||||
FILE_IMPORT_FOLDER=c:\temp\import
|
||||
FILE_IMPORT_TYPE=*.xlsx
|
||||
FILE_ARCHIVE_FOLDER=c:\temp\import\archive
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
NAME=master
|
||||
|
||||
; Tags manuali
|
||||
[TAGS]
|
||||
Customer=Steamware
|
||||
HostOS=WIN
|
||||
HostName=IOB-WIN-SIMULA
|
||||
HostAddr=10.74.82.76
|
||||
|
||||
@@ -84,16 +84,21 @@
|
||||
"maxVal": 1500
|
||||
}
|
||||
},
|
||||
"fileDecod": {
|
||||
"Product": 3,
|
||||
"Variety": 9,
|
||||
"Supplier": 8,
|
||||
"ExtDoc": 2,
|
||||
"DateRif": 14,
|
||||
"QtyTot": 22,
|
||||
"NumPack": 21,
|
||||
"NumPed": 17,
|
||||
"PackPed": 18,
|
||||
"PesoPack": 20
|
||||
"optKVP": {
|
||||
"hasRecipe": true,
|
||||
"maxPodlQty": 530,
|
||||
"useLocalRecipe": true,
|
||||
"path-locBase": "C:\\MesData\\",
|
||||
"path-00-Arch": "ArchivioRicette\\FIMAT",
|
||||
"path-01-Temp": "01-Temp\\FIMAT",
|
||||
"path-02-Sent": "02-Inviate\\FIMAT",
|
||||
"path-03-Recv": "03-Ricevute\\FIMAT",
|
||||
"path-04-remReq": "Y:\\",
|
||||
"path-05-remExe": "C:\\MesData\\Remote\\Dosed",
|
||||
"path-06-remRec": "R:\\",
|
||||
"path-outReport": "C:\\MesData\\Report",
|
||||
"path-confSetup": "C:\\MesData\\Setup\\setupConsumi.json",
|
||||
"replace-<Variant>": "<Variant>{{PODL}}",
|
||||
"replace-<Info1>": "<Info1>Kg{{Qty}} | {{Note}}"
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
CNCTYPE=SIMULA
|
||||
PING_MS_TIMEOUT=500
|
||||
MinDeltaSec=5
|
||||
EnableRedisQueue=true
|
||||
|
||||
[MACHINE]
|
||||
VENDOR=STEAMWARE
|
||||
@@ -91,4 +92,11 @@ FTP_LOC_DIR=temp\csv
|
||||
FTP_REM_DIR=
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
NAME=master
|
||||
|
||||
; Tags manuali
|
||||
[TAGS]
|
||||
Customer=Steamware
|
||||
HostOS=WIN
|
||||
HostName=IOB-WIN-SIMULA
|
||||
HostAddr=10.74.82.76
|
||||
|
||||
@@ -83,17 +83,5 @@
|
||||
"minVal": 0,
|
||||
"maxVal": 1500
|
||||
}
|
||||
},
|
||||
"fileDecod": {
|
||||
"Product": 2,
|
||||
"Variety": 3,
|
||||
"Supplier": 4,
|
||||
"ExtDoc": 0,
|
||||
"DateRif": 1,
|
||||
"QtyTot": 15,
|
||||
"NumPack": 14,
|
||||
"NumPed": 11,
|
||||
"PackPed": 12,
|
||||
"PesoPack": 13
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
CNCTYPE=SIMULA
|
||||
PING_MS_TIMEOUT=500
|
||||
MinDeltaSec=5
|
||||
EnableRedisQueue=true
|
||||
|
||||
[MACHINE]
|
||||
VENDOR=STEAMWARE
|
||||
@@ -34,7 +35,7 @@ BLINK_FILT=0
|
||||
|
||||
[OPTPAR]
|
||||
AUTO_CHANGE_ODL=true
|
||||
AUTO_SNAPSHOT_DOSSIER=true
|
||||
AUTO_SNAPSHOT_DOSSIER=false
|
||||
CHANGE_ODL_HOURS=24
|
||||
CHANGE_ODL_IDLE_MIN=0
|
||||
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
|
||||
@@ -92,4 +93,11 @@ FTP_REM_DIR=
|
||||
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
NAME=master
|
||||
|
||||
; Tags manuali
|
||||
[TAGS]
|
||||
Customer=Steamware
|
||||
HostOS=WIN
|
||||
HostName=IOB-WIN-SIMULA
|
||||
HostAddr=10.74.82.76
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
CNCTYPE=SIMULA
|
||||
PING_MS_TIMEOUT=500
|
||||
MinDeltaSec=5
|
||||
EnableRedisQueue=true
|
||||
|
||||
[MACHINE]
|
||||
VENDOR=STEAMWARE
|
||||
@@ -33,7 +34,7 @@ BLINK_FILT=0
|
||||
|
||||
[OPTPAR]
|
||||
AUTO_CHANGE_ODL=true
|
||||
AUTO_SNAPSHOT_DOSSIER=true
|
||||
AUTO_SNAPSHOT_DOSSIER=false
|
||||
CHANGE_ODL_HOURS=24
|
||||
CHANGE_ODL_IDLE_MIN=0
|
||||
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
|
||||
@@ -90,4 +91,11 @@ FTP_LOC_DIR=temp\csv
|
||||
FTP_REM_DIR=
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
NAME=master
|
||||
|
||||
; Tags manuali
|
||||
[TAGS]
|
||||
Customer=Steamware
|
||||
HostOS=WIN
|
||||
HostName=IOB-WIN-SIMULA
|
||||
HostAddr=10.74.82.76
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
CNCTYPE=SIMULA
|
||||
PING_MS_TIMEOUT=500
|
||||
MinDeltaSec=5
|
||||
EnableRedisQueue=true
|
||||
|
||||
[MACHINE]
|
||||
VENDOR=STEAMWARE
|
||||
@@ -33,7 +34,7 @@ BLINK_FILT=0
|
||||
|
||||
[OPTPAR]
|
||||
AUTO_CHANGE_ODL=true
|
||||
AUTO_SNAPSHOT_DOSSIER=true
|
||||
AUTO_SNAPSHOT_DOSSIER=false
|
||||
CHANGE_ODL_HOURS=24
|
||||
CHANGE_ODL_IDLE_MIN=0
|
||||
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
|
||||
@@ -90,4 +91,11 @@ FTP_LOC_DIR=temp\csv
|
||||
FTP_REM_DIR=
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
NAME=master
|
||||
|
||||
; Tags manuali
|
||||
[TAGS]
|
||||
Customer=Steamware
|
||||
HostOS=WIN
|
||||
HostName=IOB-WIN-SIMULA
|
||||
HostAddr=10.74.82.76
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
CNCTYPE=SIMULA
|
||||
PING_MS_TIMEOUT=500
|
||||
MinDeltaSec=5
|
||||
EnableRedisQueue=true
|
||||
|
||||
[MACHINE]
|
||||
VENDOR=STEAMWARE
|
||||
@@ -33,7 +34,7 @@ BLINK_FILT=0
|
||||
|
||||
[OPTPAR]
|
||||
AUTO_CHANGE_ODL=true
|
||||
AUTO_SNAPSHOT_DOSSIER=true
|
||||
AUTO_SNAPSHOT_DOSSIER=false
|
||||
CHANGE_ODL_HOURS=24
|
||||
CHANGE_ODL_IDLE_MIN=0
|
||||
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
|
||||
@@ -90,4 +91,11 @@ FTP_LOC_DIR=temp\csv
|
||||
FTP_REM_DIR=
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
NAME=master
|
||||
|
||||
; Tags manuali
|
||||
[TAGS]
|
||||
Customer=Steamware
|
||||
HostOS=WIN
|
||||
HostName=IOB-WIN-SIMULA
|
||||
HostAddr=10.74.82.76
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
CNCTYPE=SIMULA
|
||||
PING_MS_TIMEOUT=500
|
||||
MinDeltaSec=5
|
||||
EnableRedisQueue=true
|
||||
|
||||
[MACHINE]
|
||||
VENDOR=STEAMWARE
|
||||
@@ -33,7 +34,7 @@ BLINK_FILT=0
|
||||
|
||||
[OPTPAR]
|
||||
AUTO_CHANGE_ODL=true
|
||||
AUTO_SNAPSHOT_DOSSIER=true
|
||||
AUTO_SNAPSHOT_DOSSIER=false
|
||||
CHANGE_ODL_HOURS=24
|
||||
CHANGE_ODL_IDLE_MIN=0
|
||||
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
|
||||
@@ -91,4 +92,11 @@ FTP_REM_DIR=
|
||||
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
NAME=master
|
||||
|
||||
; Tags manuali
|
||||
[TAGS]
|
||||
Customer=Steamware
|
||||
HostOS=WIN
|
||||
HostName=IOB-WIN-SIMULA
|
||||
HostAddr=10.74.82.76
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
CNCTYPE=SIMULA
|
||||
PING_MS_TIMEOUT=500
|
||||
MinDeltaSec=5
|
||||
EnableRedisQueue=true
|
||||
|
||||
[MACHINE]
|
||||
VENDOR=STEAMWARE
|
||||
@@ -33,7 +34,7 @@ BLINK_FILT=0
|
||||
|
||||
[OPTPAR]
|
||||
AUTO_CHANGE_ODL=false
|
||||
AUTO_SNAPSHOT_DOSSIER=true
|
||||
AUTO_SNAPSHOT_DOSSIER=false
|
||||
CHANGE_ODL_HOURS=48
|
||||
CHANGE_ODL_IDLE_MIN=10
|
||||
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
|
||||
@@ -90,4 +91,11 @@ FTP_LOC_DIR=temp\csv
|
||||
FTP_REM_DIR=
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
NAME=master
|
||||
|
||||
; Tags manuali
|
||||
[TAGS]
|
||||
Customer=Steamware
|
||||
HostOS=WIN
|
||||
HostName=IOB-WIN-SIMULA
|
||||
HostAddr=10.74.82.76
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
CNCTYPE=SIMULA
|
||||
PING_MS_TIMEOUT=500
|
||||
MinDeltaSec=5
|
||||
EnableRedisQueue=true
|
||||
|
||||
[MACHINE]
|
||||
VENDOR=STEAMWARE
|
||||
@@ -50,7 +51,7 @@ PER_BASE=10500
|
||||
SIM_PZCNT=10|3
|
||||
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
|
||||
; 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=3500|20
|
||||
@@ -58,7 +59,7 @@ SIM_SLOW=3500|20
|
||||
SIM_WUCD=8000|20
|
||||
; indica gestione e simulazione bit 7 --> emergenza
|
||||
SIM_EMRG=4000|10
|
||||
; indica simulazione delle funzionalità power ON/ OFF
|
||||
; indica simulazione delle funzionalità power ON/ OFF
|
||||
SIM_POW_ON_OFF=true
|
||||
T_ON=6
|
||||
T_OFF=22
|
||||
@@ -74,5 +75,22 @@ SIM_MATR_OPR=1
|
||||
; conf parametri memoria READ/WRITE
|
||||
PARAM_CONF=SIM_DP_01.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
|
||||
NAME=master
|
||||
|
||||
; Tags manuali
|
||||
[TAGS]
|
||||
Customer=Steamware
|
||||
HostOS=WIN
|
||||
HostName=IOB-WIN-SIMULA
|
||||
HostAddr=10.74.82.76
|
||||
|
||||
@@ -1,99 +1,87 @@
|
||||
{
|
||||
"mMapWrite": {
|
||||
"setArt": {
|
||||
"name": "setArt",
|
||||
"description": "Articolo",
|
||||
"memAddr": "DB150.DBB12",
|
||||
"tipoMem": "String",
|
||||
"index": 12,
|
||||
"size": 20
|
||||
"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
|
||||
}
|
||||
},
|
||||
"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
|
||||
}
|
||||
}
|
||||
},
|
||||
"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
|
||||
}
|
||||
},
|
||||
"fileDecod": {
|
||||
"Product": 2,
|
||||
"Variety": 3,
|
||||
"Supplier": 4,
|
||||
"ExtDoc": 0,
|
||||
"DateRif": 1,
|
||||
"QtyTot": 15,
|
||||
"NumPack": 14,
|
||||
"NumPed": 11,
|
||||
"PackPed": 12,
|
||||
"PesoPack": 13
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
CNCTYPE=SIMULA
|
||||
PING_MS_TIMEOUT=500
|
||||
MinDeltaSec=5
|
||||
EnableRedisQueue=true
|
||||
|
||||
[MACHINE]
|
||||
VENDOR=STEAMWARE
|
||||
@@ -50,7 +51,7 @@ 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
|
||||
; 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
|
||||
@@ -58,7 +59,7 @@ SIM_SLOW=6500|20
|
||||
SIM_WUCD=8000|20
|
||||
; indica gestione e simulazione bit 7 --> emergenza
|
||||
SIM_EMRG=4000|10
|
||||
; indica simulazione delle funzionalità power ON/ OFF
|
||||
; indica simulazione delle funzionalit� power ON/ OFF
|
||||
SIM_POW_ON_OFF=false
|
||||
T_ON=6
|
||||
T_OFF=22
|
||||
@@ -72,7 +73,24 @@ SIM_DICH=262|1
|
||||
SIM_MATR_OPR=1
|
||||
|
||||
; conf parametri memoria READ/WRITE
|
||||
PARAM_CONF=SIM_DP_01.json
|
||||
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
|
||||
NAME=master
|
||||
|
||||
; Tags manuali
|
||||
[TAGS]
|
||||
Customer=Steamware
|
||||
HostOS=WIN
|
||||
HostName=IOB-WIN-SIMULA
|
||||
HostAddr=10.74.82.76
|
||||
|
||||
@@ -1,99 +1,87 @@
|
||||
{
|
||||
"mMapWrite": {
|
||||
"setArt": {
|
||||
"name": "setArt",
|
||||
"description": "Articolo",
|
||||
"memAddr": "DB150.DBB12",
|
||||
"tipoMem": "String",
|
||||
"index": 12,
|
||||
"size": 20
|
||||
"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
|
||||
}
|
||||
},
|
||||
"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
|
||||
}
|
||||
}
|
||||
},
|
||||
"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
|
||||
}
|
||||
},
|
||||
"fileDecod": {
|
||||
"Product": 2,
|
||||
"Variety": 3,
|
||||
"Supplier": 4,
|
||||
"ExtDoc": 0,
|
||||
"DateRif": 1,
|
||||
"QtyTot": 15,
|
||||
"NumPack": 14,
|
||||
"NumPed": 11,
|
||||
"PackPed": 12,
|
||||
"PesoPack": 13
|
||||
}
|
||||
}
|
||||
@@ -72,4 +72,11 @@ MAX_PZ_INCR_PERC=1000
|
||||
PARAM_CONF=SIM_PIZ00.json
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
NAME=master
|
||||
|
||||
; Tags manuali
|
||||
[TAGS]
|
||||
Customer=Steamware
|
||||
HostOS=WIN
|
||||
HostName=IOB-WIN-SIMULA
|
||||
HostAddr=10.74.82.76
|
||||
|
||||
@@ -72,4 +72,11 @@ MAX_PZ_INCR_PERC=1000
|
||||
PARAM_CONF=SIM_PIZ00.json
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
NAME=master
|
||||
|
||||
; Tags manuali
|
||||
[TAGS]
|
||||
Customer=Steamware
|
||||
HostOS=WIN
|
||||
HostName=IOB-WIN-SIMULA
|
||||
HostAddr=10.74.82.76
|
||||
|
||||
@@ -72,4 +72,11 @@ MAX_PZ_INCR_PERC=1000
|
||||
PARAM_CONF=SIM_PIZ00.json
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
NAME=master
|
||||
|
||||
; Tags manuali
|
||||
[TAGS]
|
||||
Customer=Steamware
|
||||
HostOS=WIN
|
||||
HostName=IOB-WIN-SIMULA
|
||||
HostAddr=10.74.82.76
|
||||
|
||||
@@ -72,4 +72,11 @@ MAX_PZ_INCR_PERC=1000
|
||||
PARAM_CONF=SIM_PIZ00.json
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
NAME=master
|
||||
|
||||
; Tags manuali
|
||||
[TAGS]
|
||||
Customer=Steamware
|
||||
HostOS=WIN
|
||||
HostName=IOB-WIN-SIMULA
|
||||
HostAddr=10.74.82.76
|
||||
|
||||
@@ -1,153 +1,168 @@
|
||||
{
|
||||
"BrowseFullVal": "ns=4;i=5001",
|
||||
"BrowseNSIndex": 4,
|
||||
"BrowseValue": 5001,
|
||||
"keyPartCount": "tomes_17_partial_prod",
|
||||
"keyPartReq": "tomach_6_quantity",
|
||||
"keyPartId": "",
|
||||
"keyProgName": "",
|
||||
"keyRunMode": "",
|
||||
"pingAsPowerOn": false,
|
||||
"condWork": [{
|
||||
"keyName": "tomes_5_autom",
|
||||
"targetValue": "True"
|
||||
}],
|
||||
"condPowerOn": {
|
||||
"checkMode": "AND",
|
||||
"checkList": [{
|
||||
"keyName": "tomes_2_mach_on",
|
||||
"targetValue": "True"
|
||||
}]
|
||||
},
|
||||
"condReady": {
|
||||
"checkMode": "AND",
|
||||
"checkList": []
|
||||
},
|
||||
"condManual": {
|
||||
"checkMode": "AND",
|
||||
"checkList": [{
|
||||
"keyName": "tomes_6_manual",
|
||||
"targetValue": "True"
|
||||
}]
|
||||
},
|
||||
"condEStop": {
|
||||
"checkMode": "AND",
|
||||
"checkList": []
|
||||
},
|
||||
"condError": {
|
||||
"checkMode": "AND",
|
||||
"checkList": [{
|
||||
"keyName": "tomes_7_alarm",
|
||||
"targetValue": "True"
|
||||
}]
|
||||
},
|
||||
"condCountEnabled": {
|
||||
"checkMode": "AND",
|
||||
"checkList": []
|
||||
},
|
||||
"condWarmUpCoolDown": {
|
||||
"checkMode": "OR",
|
||||
"checkList": []
|
||||
},
|
||||
"condWarning": {
|
||||
"checkMode": "AND",
|
||||
"checkList": [{
|
||||
"keyName": "tomes_8_warning",
|
||||
"targetValue": "True"
|
||||
}]
|
||||
},
|
||||
"condSetup": {
|
||||
"checkMode": "AND",
|
||||
"checkList": [{
|
||||
"keyName": "tomes_3_setup",
|
||||
"targetValue": "True"
|
||||
}]
|
||||
},
|
||||
"fluxLogVeto": [
|
||||
"tomes_1_Watchdog"
|
||||
],
|
||||
"itemTranslation": {
|
||||
"avail": "Machine Available",
|
||||
"rstat": "Execution Mode",
|
||||
"mode": "Controller Mode",
|
||||
"ncprog": "Program Name",
|
||||
"tomes_13_good_prod": "Pezzi Prodotta",
|
||||
"tomach_6_quantity": "Qta Richiesta",
|
||||
"fdovrd": "PATH FEED OVERRIDE",
|
||||
"rovrd": "PATH RAPID OVERRIDE"
|
||||
},
|
||||
"paramsEndThresh": {
|
||||
"InvDDone": 50
|
||||
},
|
||||
"mMapWrite": {
|
||||
"setPzComm": {
|
||||
"name": "setPzComm",
|
||||
"description": "Qty",
|
||||
"tipoMem": "Int",
|
||||
"memAddr": "ns=4;s=tomach_6_quantity",
|
||||
"index": 0,
|
||||
"size": 4
|
||||
},
|
||||
"setComm": {
|
||||
"name": "setComm",
|
||||
"description": "Commessa",
|
||||
"tipoMem": "String",
|
||||
"memAddr": "ns=4;s=tomach_4_prod_order",
|
||||
"index": 0,
|
||||
"size": 24
|
||||
},
|
||||
"setArt": {
|
||||
"name": "setArt",
|
||||
"description": "Articolo",
|
||||
"tipoMem": "String",
|
||||
"memAddr": "ns=4;s=tomach_3_code_die",
|
||||
"index": 0,
|
||||
"size": 24
|
||||
}
|
||||
},
|
||||
"subscribedItems": [
|
||||
"ns=4;s=tomes_1_Watchdog",
|
||||
"ns=4;s=tomes_2_mach_on",
|
||||
"ns=4;s=tomes_3_setup",
|
||||
"ns=4;s=tomes_4_impulse",
|
||||
"ns=4;s=tomes_5_autom",
|
||||
"ns=4;s=tomes_6_manual",
|
||||
"ns=4;s=tomes_7_alarm",
|
||||
"ns=4;s=tomes_8_warning",
|
||||
"ns=4;s=tomes_10_cycle_life",
|
||||
"ns=4;s=tomes_11_ack_new_order",
|
||||
"ns=4;s=tomes_13_good_prod",
|
||||
"ns=4;s=tomes_14_bad_prod_calipso",
|
||||
"ns=4;s=tomes_15_bad_prod_startup",
|
||||
"ns=4;s=tomes_16_bad_prod_stop",
|
||||
"ns=4;s=tomes_17_partial_prod",
|
||||
"ns=4;s=tomes_18_total_prod",
|
||||
"ns=4;s=tomes_20_code_die",
|
||||
"ns=4;s=tomes_21_order",
|
||||
"ns=4;s=tomach_1_watchdog",
|
||||
"ns=4;s=tomach_2_new_prod",
|
||||
"ns=4;s=tomach_3_code_die",
|
||||
"ns=4;s=tomach_4_prod_order",
|
||||
"ns=4;s=tomach_6_quantity"
|
||||
],
|
||||
"WatchDog": {
|
||||
"IsEnabled": true,
|
||||
"MemConfRead": "ns=4;s=tomes_1_Watchdog",
|
||||
"MemConfWrite": "ns=4;s=tomach_1_watchdog",
|
||||
"MaxVal": 9999
|
||||
},
|
||||
"SetupConf": {
|
||||
"SetupMode": "MECOLPRESS",
|
||||
"EnableAdvSetup": false,
|
||||
"checkParList": {
|
||||
"tomach_3_code_die": "tomes_20_code_die",
|
||||
"tomach_4_prod_order": "tomes_21_order"
|
||||
},
|
||||
"writeParAction": [{
|
||||
"TargetParam": "ns=4;s=tomach_2_new_prod",
|
||||
"TargetValEqual": 0,
|
||||
"TargetValNotEqual": 1,
|
||||
"DisablePzCountNotEqual": true
|
||||
}]
|
||||
"BrowseFullVal": "ns=4;i=5001",
|
||||
"BrowseNSIndex": 4,
|
||||
"BrowseValue": 5001,
|
||||
"keyPartCount": "tomes_17_partial_prod",
|
||||
"keyPartReq": "tomach_6_quantity",
|
||||
"keyPartId": "",
|
||||
"keyProgName": "",
|
||||
"keyRunMode": "",
|
||||
"pingAsPowerOn": false,
|
||||
"condWork": [
|
||||
{
|
||||
"keyName": "tomes_5_autom",
|
||||
"targetValue": "True"
|
||||
}
|
||||
],
|
||||
"condPowerOn": {
|
||||
"checkMode": "AND",
|
||||
"checkList": [
|
||||
{
|
||||
"keyName": "tomes_2_mach_on",
|
||||
"targetValue": "True"
|
||||
}
|
||||
]
|
||||
},
|
||||
"condReady": {
|
||||
"checkMode": "AND",
|
||||
"checkList": []
|
||||
},
|
||||
"condManual": {
|
||||
"checkMode": "AND",
|
||||
"checkList": [
|
||||
{
|
||||
"keyName": "tomes_6_manual",
|
||||
"targetValue": "True"
|
||||
}
|
||||
]
|
||||
},
|
||||
"condEStop": {
|
||||
"checkMode": "AND",
|
||||
"checkList": []
|
||||
},
|
||||
"condError": {
|
||||
"checkMode": "AND",
|
||||
"checkList": [
|
||||
{
|
||||
"keyName": "tomes_7_alarm",
|
||||
"targetValue": "True"
|
||||
}
|
||||
]
|
||||
},
|
||||
"condCountEnabled": {
|
||||
"checkMode": "AND",
|
||||
"checkList": []
|
||||
},
|
||||
"condWarmUpCoolDown": {
|
||||
"checkMode": "OR",
|
||||
"checkList": [],
|
||||
"negateValue": true
|
||||
},
|
||||
"condWarning": {
|
||||
"checkMode": "AND",
|
||||
"checkList": [
|
||||
{
|
||||
"keyName": "tomes_8_warning",
|
||||
"targetValue": "True"
|
||||
}
|
||||
]
|
||||
},
|
||||
"condSetup": {
|
||||
"checkMode": "AND",
|
||||
"checkList": [
|
||||
{
|
||||
"keyName": "tomes_3_setup",
|
||||
"targetValue": "True"
|
||||
}
|
||||
]
|
||||
},
|
||||
"fluxLogVeto": [
|
||||
"tomes_1_Watchdog"
|
||||
],
|
||||
"itemTranslation": {
|
||||
"avail": "Machine Available",
|
||||
"rstat": "Execution Mode",
|
||||
"mode": "Controller Mode",
|
||||
"ncprog": "Program Name",
|
||||
"tomes_13_good_prod": "Pezzi Prodotta",
|
||||
"tomach_6_quantity": "Qta Richiesta",
|
||||
"fdovrd": "PATH FEED OVERRIDE",
|
||||
"rovrd": "PATH RAPID OVERRIDE"
|
||||
},
|
||||
"paramsEndThresh": {
|
||||
"InvDDone": 50
|
||||
},
|
||||
"mMapWrite": {
|
||||
"setPzComm": {
|
||||
"name": "setPzComm",
|
||||
"description": "Qty",
|
||||
"tipoMem": "Int",
|
||||
"memAddr": "ns=4;s=tomach_6_quantity",
|
||||
"index": 0,
|
||||
"size": 4
|
||||
},
|
||||
"setComm": {
|
||||
"name": "setComm",
|
||||
"description": "Commessa",
|
||||
"tipoMem": "String",
|
||||
"memAddr": "ns=4;s=tomach_4_prod_order",
|
||||
"index": 0,
|
||||
"size": 24
|
||||
},
|
||||
"setArt": {
|
||||
"name": "setArt",
|
||||
"description": "Articolo",
|
||||
"tipoMem": "String",
|
||||
"memAddr": "ns=4;s=tomach_3_code_die",
|
||||
"index": 0,
|
||||
"size": 24
|
||||
}
|
||||
},
|
||||
"subscribedItems": [
|
||||
"ns=4;s=tomes_1_Watchdog",
|
||||
"ns=4;s=tomes_2_mach_on",
|
||||
"ns=4;s=tomes_3_setup",
|
||||
"ns=4;s=tomes_4_impulse",
|
||||
"ns=4;s=tomes_5_autom",
|
||||
"ns=4;s=tomes_6_manual",
|
||||
"ns=4;s=tomes_7_alarm",
|
||||
"ns=4;s=tomes_8_warning",
|
||||
"ns=4;s=tomes_10_cycle_life",
|
||||
"ns=4;s=tomes_11_ack_new_order",
|
||||
"ns=4;s=tomes_13_good_prod",
|
||||
"ns=4;s=tomes_14_bad_prod_calipso",
|
||||
"ns=4;s=tomes_15_bad_prod_startup",
|
||||
"ns=4;s=tomes_16_bad_prod_stop",
|
||||
"ns=4;s=tomes_17_partial_prod",
|
||||
"ns=4;s=tomes_18_total_prod",
|
||||
"ns=4;s=tomes_20_code_die",
|
||||
"ns=4;s=tomes_21_order",
|
||||
"ns=4;s=tomach_1_watchdog",
|
||||
"ns=4;s=tomach_2_new_prod",
|
||||
"ns=4;s=tomach_3_code_die",
|
||||
"ns=4;s=tomach_4_prod_order",
|
||||
"ns=4;s=tomach_6_quantity"
|
||||
],
|
||||
"WatchDog": {
|
||||
"IsEnabled": true,
|
||||
"MemConfRead": "ns=4;s=tomes_1_Watchdog",
|
||||
"MemConfWrite": "ns=4;s=tomach_1_watchdog",
|
||||
"MaxVal": 9999
|
||||
},
|
||||
"SetupConf": {
|
||||
"SetupMode": "MECOLPRESS",
|
||||
"EnableAdvSetup": false,
|
||||
"checkParList": {
|
||||
"tomach_3_code_die": "tomes_20_code_die",
|
||||
"tomach_4_prod_order": "tomes_21_order"
|
||||
},
|
||||
"writeParAction": [
|
||||
{
|
||||
"TargetParam": "ns=4;s=tomach_2_new_prod",
|
||||
"TargetValEqual": 0,
|
||||
"TargetValNotEqual": 1,
|
||||
"DisablePzCountNotEqual": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,7 @@ IP=192.168.250.53
|
||||
PORT=4840
|
||||
GETPRGNAME=true
|
||||
|
||||
[SERVER]
|
||||
[SERVER]
|
||||
MPIP=http://192.168.10.7
|
||||
MPURL=/MP/IO
|
||||
CMDBASE=/IOB/input/
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
;Configurazione IOB-WIN
|
||||
[IOB]
|
||||
;Impianto Rimor verniciatura - IMI Remosa
|
||||
CNCTYPE=MODBUS_TCP_FIMAT
|
||||
PING_MS_TIMEOUT=1000
|
||||
MinDeltaSec=5
|
||||
;IOB_NAME=Tend_Fimat
|
||||
DIS_EXE_TASK=FALSE
|
||||
DIS_STATE_CH=FALSE
|
||||
|
||||
[MACHINE]
|
||||
VENDOR=FIMAT
|
||||
MODEL=Impianto mix colori - PLC
|
||||
|
||||
[CNC]
|
||||
IP=192.168.10.49
|
||||
PORT=502
|
||||
|
||||
[SERVER]
|
||||
MPIP=http://192.168.10.7
|
||||
MPURL=/MP/IO
|
||||
CMDBASE=/IOB/input/
|
||||
CMDFLOG=/IOB/flog/
|
||||
CMDALIVE=/IOB
|
||||
CMDENABLED=/IOB/enabled/
|
||||
CMDADV1=?valore=
|
||||
CMDREBO=/sendReboot.aspx?idxMacchina=
|
||||
|
||||
[MEMORY]
|
||||
ADDR_READ=40000
|
||||
ADDR_WRITE=40000
|
||||
SIZE_READ=10
|
||||
SIZE_WRITE=0
|
||||
HR_BASE_ADDR=40000
|
||||
DELTA_BASE=0
|
||||
INDEX_LUT_CORR=0
|
||||
MODBUS_EXT_REG=0
|
||||
|
||||
|
||||
[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.DB85.DBRE16
|
||||
DISABLE_PZCOUNT=TRUE
|
||||
ENABLE_SEND_PZC_BLOCK=TRUE
|
||||
MIN_SEND_PZC_BLOCK=0
|
||||
MAX_SEND_PZC_BLOCK=100
|
||||
; GEST DATI DYN
|
||||
ENABLE_DYN_DATA=TRUE
|
||||
FORCE_DYN_DATA=TRUE
|
||||
; gestione delta minimo accettabile tra min/MAX
|
||||
DELTA_VAL=0.1
|
||||
; clock base (da 10ms)
|
||||
timerIntMs=10
|
||||
; conf parametri memoria READ/WRITE
|
||||
PARAM_CONF=Tend_FIMAT_01.json
|
||||
NO_PING=FALSE
|
||||
; conf blocchi memoria x READ
|
||||
MEM_BLOCK=Tend_FIMAT_01_MBlock.json
|
||||
; conf aree allarme
|
||||
ALARM_CONF=Tend_FIMAT_01_alarm.json
|
||||
; rimozione check limiti min/max dynData
|
||||
disDynDataRangeCheck=true
|
||||
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
@@ -0,0 +1,342 @@
|
||||
{
|
||||
"mMapWrite": {},
|
||||
"mMapRead": {
|
||||
"StatoMacchina": {
|
||||
"name": "StatoMacchina",
|
||||
"description": "Stato della Macchina",
|
||||
"memAddr": "40001",
|
||||
"tipoMem": "Int",
|
||||
"index": 1,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 10,
|
||||
"unit": "#"
|
||||
},
|
||||
"ElencoAnomalie": {
|
||||
"name": "ElencoAnomalie",
|
||||
"description": "Elenco Anomalie",
|
||||
"memAddr": "40002",
|
||||
"tipoMem": "Int",
|
||||
"index": 2,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 10,
|
||||
"unit": "#"
|
||||
},
|
||||
"ElencoAttivita": {
|
||||
"name": "ElencoAttivita",
|
||||
"description": "Elenco Attivita",
|
||||
"memAddr": "40003",
|
||||
"tipoMem": "Int",
|
||||
"index": 3,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 10,
|
||||
"unit": "#"
|
||||
},
|
||||
"StatoRicircolo": {
|
||||
"name": "StatoRicircolo",
|
||||
"description": "Stato Ricircolo Serbatoi",
|
||||
"memAddr": "40004",
|
||||
"tipoMem": "Int",
|
||||
"index": 4,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 10,
|
||||
"unit": "#"
|
||||
},
|
||||
"NumAllarmi": {
|
||||
"name": "NumAllarmi",
|
||||
"description": "NUmero Allarmi Presenti",
|
||||
"memAddr": "40005",
|
||||
"tipoMem": "Int",
|
||||
"index": 5,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 1000,
|
||||
"unit": "#"
|
||||
},
|
||||
"NumAllarmiNR": {
|
||||
"name": "NumAllarmiNR",
|
||||
"description": "NUmero Allarmi Non Riconosciuti",
|
||||
"memAddr": "40006",
|
||||
"tipoMem": "Int",
|
||||
"index": 6,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 1000,
|
||||
"unit": "#"
|
||||
},
|
||||
"ModoPreparazione": {
|
||||
"name": "ModoPreparazione",
|
||||
"description": "Modo Preparazione Ricetta",
|
||||
"memAddr": "40007",
|
||||
"tipoMem": "Int",
|
||||
"index": 7,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 10,
|
||||
"unit": "#"
|
||||
},
|
||||
"NumRicette": {
|
||||
"name": "NumRicette",
|
||||
"description": "Numero Ricette in coda",
|
||||
"memAddr": "40008",
|
||||
"tipoMem": "Int",
|
||||
"index": 8,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 1000,
|
||||
"unit": "#"
|
||||
},
|
||||
"StatoImport": {
|
||||
"name": "StatoImport",
|
||||
"description": "Stato Importazione file ricette XML da esterno",
|
||||
"memAddr": "40009",
|
||||
"tipoMem": "Int",
|
||||
"index": 9,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 10,
|
||||
"unit": "#"
|
||||
},
|
||||
"LivSerb01": {
|
||||
"name": "LivSerb01",
|
||||
"description": "Livello Servatoio 01",
|
||||
"memAddr": "40020",
|
||||
"tipoMem": "Int",
|
||||
"index": 20,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 1000,
|
||||
"unit": "#"
|
||||
},
|
||||
"LivSerb02": {
|
||||
"name": "LivSerb02",
|
||||
"description": "Livello Servatoio 02",
|
||||
"memAddr": "40021",
|
||||
"tipoMem": "Int",
|
||||
"index": 21,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 1000,
|
||||
"unit": "#"
|
||||
},
|
||||
"LivSerb03": {
|
||||
"name": "LivSerb03",
|
||||
"description": "Livello Servatoio 03",
|
||||
"memAddr": "40022",
|
||||
"tipoMem": "Int",
|
||||
"index": 22,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 1000,
|
||||
"unit": "#"
|
||||
},
|
||||
"LivSerb04": {
|
||||
"name": "LivSerb04",
|
||||
"description": "Livello Servatoio 04",
|
||||
"memAddr": "40023",
|
||||
"tipoMem": "Int",
|
||||
"index": 23,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 1000,
|
||||
"unit": "#"
|
||||
},
|
||||
"LivSerb05": {
|
||||
"name": "LivSerb05",
|
||||
"description": "Livello Servatoio 05",
|
||||
"memAddr": "40024",
|
||||
"tipoMem": "Int",
|
||||
"index": 24,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 1000,
|
||||
"unit": "#"
|
||||
},
|
||||
"LivSerb06": {
|
||||
"name": "LivSerb06",
|
||||
"description": "Livello Servatoio 06",
|
||||
"memAddr": "40025",
|
||||
"tipoMem": "Int",
|
||||
"index": 25,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 1000,
|
||||
"unit": "#"
|
||||
},
|
||||
"LivSerb07": {
|
||||
"name": "LivSerb07",
|
||||
"description": "Livello Servatoio 07",
|
||||
"memAddr": "40026",
|
||||
"tipoMem": "Int",
|
||||
"index": 26,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 1000,
|
||||
"unit": "#"
|
||||
},
|
||||
"LivSerb08": {
|
||||
"name": "LivSerb08",
|
||||
"description": "Livello Servatoio 08",
|
||||
"memAddr": "40027",
|
||||
"tipoMem": "Int",
|
||||
"index": 27,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 1000,
|
||||
"unit": "#"
|
||||
},
|
||||
"LivSerb09": {
|
||||
"name": "LivSerb09",
|
||||
"description": "Livello Servatoio 09",
|
||||
"memAddr": "40028",
|
||||
"tipoMem": "Int",
|
||||
"index": 28,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 1000,
|
||||
"unit": "#"
|
||||
},
|
||||
"LivSerb10": {
|
||||
"name": "LivSerb10",
|
||||
"description": "Livello Servatoio 10",
|
||||
"memAddr": "40029",
|
||||
"tipoMem": "Int",
|
||||
"index": 29,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 1000,
|
||||
"unit": "#"
|
||||
},
|
||||
"LivSerb11": {
|
||||
"name": "LivSerb11",
|
||||
"description": "Livello Servatoio 11",
|
||||
"memAddr": "40030",
|
||||
"tipoMem": "Int",
|
||||
"index": 30,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 1000,
|
||||
"unit": "#"
|
||||
},
|
||||
"LivSerb12": {
|
||||
"name": "LivSerb12",
|
||||
"description": "Livello Servatoio 12",
|
||||
"memAddr": "40031",
|
||||
"tipoMem": "Int",
|
||||
"index": 31,
|
||||
"size": 1,
|
||||
"func": "MAX",
|
||||
"period": 90,
|
||||
"factor": 1,
|
||||
"minVal": 0,
|
||||
"maxVal": 1000,
|
||||
"unit": "#"
|
||||
}
|
||||
},
|
||||
"optMemPar": {
|
||||
"AlarmIntCond": "40000|1=2",
|
||||
"ManualBitCond": "40002.1=1",
|
||||
"EStopBitCond": "40002.0=1",
|
||||
"WorkIntCond": "40000|1=3",
|
||||
//"VarInt2Translate": "40001,40007",
|
||||
//"VarBit2Translate": "40003"
|
||||
},
|
||||
"optKVP": {
|
||||
"hasRecipe": true,
|
||||
"maxPodlQty": 530,
|
||||
"useLocalRecipe": true,
|
||||
"path-locBase": "E:\\MesData\\",
|
||||
"path-remBase": "C:\\MesData\\Remote",
|
||||
"path-00-Arch": "ArchivioRicette\\FIMAT",
|
||||
"path-01-Temp": "01-Temp\\FIMAT",
|
||||
"path-02-Sent": "02-Inviate\\FIMAT",
|
||||
"path-03-Recv": "03-Ricevute\\FIMAT",
|
||||
"path-04-remReq": "Y:\\",
|
||||
"path-05-remExe": "Z:\\",
|
||||
"path-06-remRec": "R:\\",
|
||||
"path-outReport": "C:\\MesData\\Report",
|
||||
"path-confSetup": "E:\\MesData\\Setup\\setupConsumi.json",
|
||||
"replace-<Variant>": "<Variant>{{PODL}}",
|
||||
"replace-<Info1>": "<Info1>Kg{{Qty}} | {{Note}}"
|
||||
},
|
||||
"itemTranslation": {
|
||||
"40001_0": "Stato non aggiornato per mancanza comunicazione da computer",
|
||||
"40001_1": "Stato non aggiornato per mancanza comunicazione da PLC",
|
||||
"40001_2": "Presenza di anomalie od attivita che limitano il funzionamento",
|
||||
"40001_3": "Macchina impegnata per attivita normale in corso",
|
||||
"40001_4": "Macchina libera e pronta al funzionamento",
|
||||
"40003.0": "Posizione di dosaggio impegnata",
|
||||
"40003.1": "Bidone con ricetta terminata od annullata da rimuovere da posizione di dosaggio",
|
||||
"40003.2": "Ricetta in preparazione",
|
||||
"40003.3": "Lavaggio valvole in corso",
|
||||
"40003.4": "Avvio caricamento nuova ricetta in corso",
|
||||
"40007_0": "Nessuno",
|
||||
"40007_1": "Singola ricetta",
|
||||
"40007_2": "Coda (modo non ancora avviato)",
|
||||
"40007_3": "Coda (modo avviato)",
|
||||
"40007_4": "Correzione"
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user