2 Commits

Author SHA1 Message Date
Samuele Locatelli 4bae07e9f8 Merge branch 'develop' into SDK/SqlDb 2023-03-15 15:16:44 +01:00
Samuele Locatelli 43d51c56b1 Merge branch 'develop' into SDK/SqlDb 2023-03-15 15:14:16 +01:00
442 changed files with 2931 additions and 30666 deletions
-11
View File
@@ -1,11 +0,0 @@
# 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
View File
Binary file not shown.
@@ -1,18 +0,0 @@
<?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>
-37
View File
@@ -1,37 +0,0 @@
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
@@ -1,20 +0,0 @@
<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>
-378
View File
@@ -1,378 +0,0 @@
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
}
}
-62
View File
@@ -1,62 +0,0 @@
// 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!");
}
}
@@ -1,18 +0,0 @@
<?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>
-4
View File
@@ -1,4 +0,0 @@
@echo off
REM compilo in publish
dotnet publish EgwCApp.ExcImport.csproj -p:PublishSingleFile=true -r win-x64 -c Release --self-contained false
-25
View File
@@ -1,25 +0,0 @@
{
"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"
}
-6
View File
@@ -1,6 +0,0 @@
{
"FilePath": "C:\\Temp\\test.log",
"ProcessParams": {},
"Return": "Console",
"Type": "Excel"
}
@@ -1,25 +0,0 @@
{
"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"
}
-9
View File
@@ -1,9 +0,0 @@
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
@@ -1,21 +0,0 @@
<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>
-120
View File
@@ -1,120 +0,0 @@
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
}
}
-65
View File
@@ -1,65 +0,0 @@
// 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.
-6
View File
@@ -1,6 +0,0 @@
@echo off
REM recupero versione compilata
ROBOCOPY %1 %2 *.exe /MIR
echo Eseguito restore CApp!
+3 -3
View File
@@ -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-6.0.0.0" newVersion="6.0.0.0" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.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" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
</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.2.0.0" newVersion="4.2.0.0" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
@@ -35,14 +35,47 @@
<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="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.5.2.3\lib\net46\NLog.dll</HintPath>
<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>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
@@ -50,36 +83,43 @@
</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.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 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>
<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 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>
<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=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 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>
<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=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 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>
<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>
@@ -87,11 +127,26 @@
<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>
@@ -131,5 +186,7 @@
<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>
+25 -5
View File
@@ -1,17 +1,37 @@
<?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="NLog" version="5.2.3" 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="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.3.0" targetFramework="net462" />
<package id="System.Memory" version="4.5.5" 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.Numerics.Vectors" version="4.5.0" targetFramework="net462" />
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net462" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.6.0" targetFramework="net462" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net462" />
<package id="System.Security.AccessControl" version="6.0.0" targetFramework="net462" />
<package id="System.Security.AccessControl" version="5.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>
+1 -1
View File
@@ -12,7 +12,7 @@
<copyright>#copyright#</copyright>
<tags>EgwProxy.Icoel EgwProxy Icoel</tags>
<dependencies>
<dependency id="NLog" version="5.1.2" />
<dependency id="NLog" version="4.7.9" />
<dependency id="EntityFramework" version="6.4.4" />
</dependencies>
</metadata>
+1 -1
View File
@@ -12,7 +12,7 @@
<copyright>#copyright#</copyright>
<tags>EgwProxy.Icoel EgwProxy Icoel</tags>
<dependencies>
<dependency id="NLog" version="5.1.2" />
<dependency id="NLog" version="4.7.9" />
<dependency id="EntityFramework" version="6.4.4" />
</dependencies>
</metadata>
+3 -3
View File
@@ -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-6.0.0.0" newVersion="6.0.0.0" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.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" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
</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.2.0.0" newVersion="4.2.0.0" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.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.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 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>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
+1 -1
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
<package id="System.IO.Compression" version="4.1.0" targetFramework="net462" />
</packages>
+3 -3
View File
@@ -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-6.0.0.0" newVersion="6.0.0.0" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.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" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
</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.2.0.0" newVersion="4.2.0.0" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
+4 -5
View File
@@ -39,16 +39,15 @@
<StartupObject />
</PropertyGroup>
<ItemGroup>
<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 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>
<Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<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 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>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
+2 -2
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="NLog" version="5.2.3" targetFramework="net462" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
<package id="NLog" version="4.7.9" targetFramework="net462" />
<package id="System.IO.Compression" version="4.1.0" targetFramework="net462" />
</packages>
@@ -1,3 +1,4 @@
ALTER PROCEDURE [dbo].[GetMachineFluxLog]
AS
BEGIN
@@ -25,7 +26,7 @@ BEGIN
IF(@NewIdx > @LastIdx)
BEGIN
/* --------------------------------------------------
* Invierò solo VARIAZIONI dei valori
* Inviero solo VARIAZIONI dei valori
* - CurrentPP (Part Program)
* - ActiveProdOrder (Ordine in esecuzione)
*
@@ -1,4 +1,4 @@
ALTER PROCEDURE [dbo].[stp_GetMachineProdData]
ALTER PROCEDURE [dbo].GetMachineProdData
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
@@ -24,10 +24,9 @@ BEGIN
IF(@NewIdx > @LastIdx)
BEGIN
/* --------------------------------------------------
* Invierò solo VARIAZIONI dei valori
* Invierò solo VARIAZIONI dei valori
* - CurrentProdOrder (iniziato/concluso)
* - Quantità Produzione
* - dati FluxLog x ordini/quantità/tempi di produzione
* - Quantità Produzione
*
* andando ad incrociare ogni record col precedente...
* -------------------------------------------------- */
@@ -87,66 +86,7 @@ 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)
@@ -164,3 +104,6 @@ BEGIN
COMMIT tran
END
GO
Binary file not shown.
Binary file not shown.
@@ -1,49 +0,0 @@
-- =============================================
-- 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
@@ -4,11 +4,6 @@ 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
@@ -17,49 +12,24 @@ select * from SyncState
select * from MachineSignalLog
/*
truncate table MachineFluxLog
truncate table MachineSignalLog
update SyncState
set lastidx=0
where TableName='ToMachineFluxLog'
where TableName='syn_M2ERP_MACHINE_STATE'
*/
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 top 10 * from syn_M2ERP_PRODORDERS
where ProdOrder LIKE 'PODL000%'
select * from syn_ERP2M
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
/*
@@ -94,5 +64,3 @@ select * from M2ERP_MACHINE_STATE where ActiveProdOrder = 'ODL0003743'
select * from M2ERP_PRODORDERS
select * from M2ERP_PRODORDERS where ProdOrder = 'ODL0003743'
+1 -1
View File
@@ -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.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<Reference Include="System.IO.Compression, Version=4.1.2.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>
-28
View File
@@ -1,28 +0,0 @@
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;
}
}
}
-1
View File
@@ -116,7 +116,6 @@ 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
{
+3 -54
View File
@@ -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">Lista oggetti da esportare</param>
/// <param name="path">Percorso file di output</param>
/// <param name="reportData"></param>
/// <param name="path"></param>
/// <param name="writeHeader">Indica se scrivere header ad inizio CSV</param>
/// <param name="separator">Separatore da impiegare (default ";")</param>
/// <returns></returns>
@@ -34,6 +34,7 @@ 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;
@@ -42,57 +43,5 @@ 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;
}
}
}
-348
View File
@@ -1,348 +0,0 @@
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
}
}
-129
View File
@@ -1,129 +0,0 @@
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
}
}
-5
View File
@@ -312,11 +312,6 @@ namespace IOB_UT_NEXT
///// </summary>
//FILE_XYLOG,
/// <summary>
/// File Based Log file analisys per Soitaab
/// </summary>
FILE_SOITAAB,
/// <summary>
/// Adapter KAWASAKI e-controller
/// </summary>
+14 -17
View File
@@ -75,11 +75,11 @@
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<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 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>
<Reference Include="MapoSDK, Version=6.14.2304.1209, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MapoSDK.6.14.2304.1209\lib\MapoSDK.dll</HintPath>
<Reference Include="MapoSDK, Version=6.14.2211.3016, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MapoSDK.6.14.2211.3016\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.2.3\lib\net46\NLog.dll</HintPath>
<HintPath>..\packages\NLog.5.1.2\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.8\lib\net461\Pipelines.Sockets.Unofficial.dll</HintPath>
<HintPath>..\packages\Pipelines.Sockets.Unofficial.2.2.2\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.122\lib\net461\StackExchange.Redis.dll</HintPath>
<HintPath>..\packages\StackExchange.Redis.2.6.80\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.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.PerformanceCounter.6.0.1\lib\net461\System.Diagnostics.PerformanceCounter.dll</HintPath>
<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>
<Reference Include="System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<Reference Include="System.IO.Compression, Version=4.1.2.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.3, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Pipelines.6.0.3\lib\net461\System.IO.Pipelines.dll</HintPath>
<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>
<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 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>
<Reference Include="System.Net" />
<Reference Include="System.Numerics" />
@@ -141,9 +141,6 @@
<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" />
-9
View File
@@ -816,13 +816,4 @@ 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; } = "";
}
}
-84
View File
@@ -729,60 +729,6 @@ 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>
@@ -961,36 +907,6 @@ 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>
+16 -20
View File
@@ -3,17 +3,29 @@
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<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" />
<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.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.3" newVersion="6.0.0.3" />
<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>
<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" />
@@ -22,22 +34,6 @@
<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>
+25 -56
View File
@@ -8,7 +8,6 @@ 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
@@ -67,6 +66,27 @@ 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>
@@ -251,20 +271,6 @@ 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>
@@ -343,46 +349,6 @@ 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>
@@ -754,7 +720,10 @@ namespace IOB_UT_NEXT
{
string dirPath = file.Substring(0, file.LastIndexOf('\\'));
// verifico directory
checkDir(dirPath);
if (!Directory.Exists(dirPath))
{
Directory.CreateDirectory(dirPath);
}
string[] lines = dictionary.OrderBy(i => i.Key).Select(kvp => kvp.Key + ":" + kvp.Value).ToArray();
try
{
+11 -46
View File
@@ -240,7 +240,10 @@ namespace IOB_UT_NEXT
else if (theEntry.IsDirectory)
{
string strNewDirectory = @"" + baseDirectory + @"\" + theEntry.Name;
baseUtils.checkDir(strNewDirectory);
if (!Directory.Exists(strNewDirectory))
{
Directory.CreateDirectory(strNewDirectory);
}
}
}
ZipStream.Close();
@@ -306,8 +309,13 @@ namespace IOB_UT_NEXT
}
else if (theEntry.IsDirectory)
{
string strNewDirectory = @"" + baseDirectory + @"\" + theEntry.Name;
baseUtils.checkDir(strNewDirectory);
string strNewDirectory = @"" + baseDirectory + @"\" +
theEntry.Name;
if (!Directory.Exists(strNewDirectory))
{
Directory.CreateDirectory(strNewDirectory);
}
}
}
ZipStream.Close();
@@ -903,49 +911,6 @@ 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
+8 -8
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MapoSDK" version="6.14.2304.1209" targetFramework="net462" />
<package id="MapoSDK" version="6.14.2211.3016" 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.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="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="System.Buffers" version="4.5.1" targetFramework="net462" />
<package id="System.Diagnostics.PerformanceCounter" version="6.0.1" targetFramework="net462" />
<package id="System.Diagnostics.PerformanceCounter" version="6.0.0" targetFramework="net462" />
<package id="System.IO.Compression" version="4.3.0" 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.IO.Pipelines" version="6.0.0" targetFramework="net462" />
<package id="System.Memory" version="4.5.4" 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" />
+1 -10
View File
@@ -9,18 +9,9 @@ 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>();
}
}
+14
View File
@@ -1,5 +1,19 @@
<?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>
+21 -21
View File
@@ -51,8 +51,6 @@
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();
@@ -111,6 +109,8 @@
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,25 +391,6 @@
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;
@@ -1066,6 +1047,25 @@
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);
+241 -248
View File
@@ -41,7 +41,7 @@ namespace IOB_WIN_NEXT
/// <summary>
/// Oggetto x gestione dell'adapter GENERICO (x poter usare metodi di ognuno...)
/// </summary>
public Iob.Generic iobObj;
public IobGeneric iobObj;
/// <summary>
/// tipo di adapter prescelto...
@@ -50,89 +50,6 @@ 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>
@@ -232,7 +149,7 @@ namespace IOB_WIN_NEXT
if (needSend)
{
// segnalo reboot (programma)...
Iob.Generic.callUrl(iobObj.urlReboot, true);
IobGeneric.callUrl(iobObj.urlReboot, true);
}
}
else
@@ -250,12 +167,6 @@ 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
@@ -760,99 +671,6 @@ 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>
@@ -1095,6 +913,168 @@ 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)
@@ -1199,6 +1179,26 @@ 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, Iob.iobRefreshedEventArgs e)
private void IobObj_eh_refreshed(object sender, iobRefreshedEventArgs e)
{
// aggiorno!
updateFormDisplay(e.DisplayDataObject);
@@ -1576,13 +1576,11 @@ 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", ""),
@@ -1604,7 +1602,7 @@ namespace IOB_WIN_NEXT
string dirPath = $"{path}\\DATA\\{IOBConf.serverData.ClientInstall}";
string fullPath = $"{dirPath}\\{fileName}";
// verifica directory
baseUtils.checkDir(dirPath);
Directory.CreateDirectory(dirPath);
// salvataggio
File.WriteAllText(fullPath, confJson);
@@ -1629,184 +1627,179 @@ namespace IOB_WIN_NEXT
switch (tipoScelto)
{
case tipoAdapter.SIMULA:
iobObj = new Iob.Simula(this, IOBConf);
iobObj = new IobSimula(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.BECKHOFF:
case tipoAdapter.BECKHOFF_CPA:
iobObj = new IobBeckhoff.BeckhoffCpa(this, IOBConf);
iobObj = new IobBeckhoffCpa(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.FILE_GEN:
iobObj = new IobFile.FileGen(this, IOBConf);
iobObj = new IobFile(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.FILE_EUROM63:
iobObj = new IobFile.FileEurom63(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.FILE_SOITAAB:
iobObj = new IobFile.IobFileSoitaab(this, IOBConf);
iobObj = new IobFileEurom63(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.FANUC:
iobObj = new Iob.Fanuc(this, IOBConf);
iobObj = new IobFanuc(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.KAWASAKI:
iobObj = new Iob.Kawasaki(this, IOBConf);
iobObj = new IobKawasaki(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.IcoelDb:
iobObj = new IobSql.IcoelDb(this, IOBConf);
iobObj = new IobIcoelDb(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.IcoelSoap:
iobObj = new IobNet.IcoelSoap(this, IOBConf);
iobObj = new IobIcoelSoap(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.MODBUS_TCP:
iobObj = new IobModbusTCP.ModbusTCP(this, IOBConf);
iobObj = new IobModbusTCP(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.MODBUS_TCP_CEDAX:
iobObj = new IobModbusTCP.ModbusTCPCedax(this, IOBConf);
iobObj = new IobModbusTCPCedax(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.MODBUS_TCP_CENTERFRIGO:
iobObj = new IobModbusTCP.ModbusTCPCenterfrigo(this, IOBConf);
iobObj = new IobModbusTCPCenterfrigo(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.MODBUS_TCP_FIMAT:
iobObj = new IobModbusTCP.ModbusTCPFimat(this, IOBConf);
iobObj = new IobModbusTCPFimat(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.MODBUS_TCP_HAM:
iobObj = new IobModbusTCP.ModbusTCPHam(this, IOBConf);
iobObj = new IobModbusTCPHam(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.MODBUS_TCP_HELPI:
iobObj = new IobModbusTCP.ModbusTCPHelpi(this, IOBConf);
iobObj = new IobModbusTCPHelpi(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.MODBUS_TCP_IMAS_AEROMEC:
iobObj = new IobModbusTCP.ModbusTCPImaxAeromec(this, IOBConf);
iobObj = new IobModbusTCPImaxAeromec(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.MODBUS_TCP_RIMOR:
iobObj = new IobModbusTCP.ModbusTCPRimor(this, IOBConf);
iobObj = new IobModbusTCPRimor(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.MODBUS_TCP_SAIM:
iobObj = new IobModbusTCP.ModbusTCPSaim(this, IOBConf);
iobObj = new IobModbusTCPSaim(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.MODBUS_TCP_ZETAPACK:
iobObj = new IobModbusTCP.ModbusTCPZetapack(this, IOBConf);
iobObj = new IobModbusTCPZetapack(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.MTConnect:
iobObj = new Iob.MTConnect(this, IOBConf);
iobObj = new IobMTC(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.OMRON:
iobObj = new Iob.Omron(this, IOBConf);
iobObj = new IobOmron(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.OpcUa:
iobObj = new IobOpc.OpcUa(this, IOBConf);
iobObj = new IobOpcUa(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.OpcUaCMS:
case tipoAdapter.OpcUaSCM:
iobObj = new IobOpc.OpcUaCMS(this, IOBConf);
iobObj = new IobOpcUaCMS(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.OpcUaEwon:
iobObj = new IobOpc.OpcUaEwon(this, IOBConf);
iobObj = new IobOpcUaEwon(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.OpcUaEwonBLM:
iobObj = new IobOpc.OpcUaEwonBLM(this, IOBConf);
iobObj = new IobOpcUaEwonBLM(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.OpcUaEwonMonti:
iobObj = new IobOpc.OpcUaEwonMonti(this, IOBConf);
iobObj = new IobOpcUaEwonMonti(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.OpcUaEwonMecolpress:
iobObj = new IobOpc.OpcUaEwonMecolpress(this, IOBConf);
iobObj = new IobOpcUaEwonMecolpress(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.OpcUaImasAeromec:
iobObj = new IobOpc.OpcUaImas(this, IOBConf);
iobObj = new IobOpcUaImas(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.OpcUaMBH:
iobObj = new IobOpc.OpcUaMBH(this, IOBConf);
iobObj = new IobOpcUaMBH(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.OpcUaMBHCimolai:
iobObj = new IobOpc.OpcUaMBHCimolai(this, IOBConf);
iobObj = new IobOpcUaMBHCimolai(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.OpcUaOmron:
iobObj = new IobOpc.OpcUaOmron(this, IOBConf);
iobObj = new IobOpcUaOmron(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.OpcUaOmronIcoel:
iobObj = new IobOpc.OpcUaOmronIcoel(this, IOBConf);
iobObj = new IobOpcUaOmronIcoel(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.OpcUaSiemens:
iobObj = new IobOpc.OpcUaSiemens(this, IOBConf);
iobObj = new IobOpcUaSiemens(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.OpcUaSiemensOMP:
iobObj = new IobOpc.OpcUaSiemensOMP(this, IOBConf);
iobObj = new IobOpcUaSiemensOMP(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.OpcUaUlma:
iobObj = new IobOpc.OpcUaUlma(this, IOBConf);
iobObj = new IobOpcUaUlma(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.PingWatchdog:
iobObj = new IobNet.Ping(this, IOBConf);
iobObj = new IobPing(this, IOBConf);
start.Enabled = true;
break;
@@ -1814,103 +1807,103 @@ namespace IOB_WIN_NEXT
case tipoAdapter.OSAI_CNDEX:
case tipoAdapter.OSAI_VB6:
// versione EgwProxy.OsaiCncLib
iobObj = new Iob.OSAI(this, IOBConf);
iobObj = new IobOSAI(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.SIEMENS:
iobObj = new IobSiemens.Siemens(this, IOBConf);
iobObj = new IobSiemens(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.SIEMENS_APROCHIM:
iobObj = new IobSiemens.SiemensAprochim(this, IOBConf);
iobObj = new IobSiemensAprochim(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.SIEMENS_AT2001:
iobObj = new IobSiemens.SiemensAt2001(this, IOBConf);
iobObj = new IobSiemensAt2001(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.SIEMENS_COMECA:
iobObj = new IobSiemens.SiemensComeca(this, IOBConf);
iobObj = new IobSiemensComeca(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.SIEMENS_COMUR:
iobObj = new IobSiemens.SiemensComur(this, IOBConf);
iobObj = new IobSiemensComur(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.SIEMENS_COSMAP:
iobObj = new IobSiemens.SiemensCosmap(this, IOBConf);
iobObj = new IobSiemensCosmap(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.SIEMENS_FAPE:
iobObj = new IobSiemens.SiemensFape(this, IOBConf);
iobObj = new IobSiemensFape(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.SIEMENS_INGENIA:
iobObj = new IobSiemens.SiemensIngenia(this, IOBConf);
iobObj = new IobSiemensIngenia(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.SIEMENS_LASCO:
iobObj = new IobSiemens.SiemensLasco(this, IOBConf);
iobObj = new IobSiemensLasco(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.SIEMENS_NWSE:
iobObj = new IobSiemens.SiemensNWSE(this, IOBConf);
iobObj = new IobSiemensNWSE(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.SIEMENS_PRESSOIL_CEI:
iobObj = new IobSiemens.SiemensPressoilCei(this, IOBConf);
iobObj = new IobSiemensPressoilCei(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.SIEMENS_ROBOTSERVICE:
iobObj = new IobSiemens.SiemensRobotService(this, IOBConf);
iobObj = new IobSiemensRobotService(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.SIEMENS_SAET:
iobObj = new IobSiemens.SiemensSaet(this, IOBConf);
iobObj = new IobSiemensSaet(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.SIEMENS_SIMEC:
iobObj = new IobSiemens.SiemensSimec(this, IOBConf);
iobObj = new IobSiemensSimec(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.SIEMENS_TORRI:
iobObj = new IobSiemens.SiemensTorri(this, IOBConf);
iobObj = new IobSiemensTorri(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.SQLSERVER_LANTEK:
iobObj = new IobSql.SqlServLantek(this, IOBConf);
iobObj = new IobSqlServLantek(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.SQLSERVER_PAMA:
iobObj = new IobSql.SqlServPama(this, IOBConf);
iobObj = new IobSqlServPama(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.WPS:
iobObj = new IobNet.WebPageScrap(this, IOBConf);
iobObj = new IobWPS(this, IOBConf);
start.Enabled = true;
break;
case tipoAdapter.ND:
default:
iobObj = new Iob.Simula(this, IOBConf);
iobObj = new IobSimula(this, IOBConf);
start.Enabled = false;
break;
}
+7 -21
View File
@@ -111,21 +111,15 @@
</appSettings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<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>
<probing privatePath="lib;libs" />
<probing privatePath="lib;libs" xmlns="" />
<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.3" newVersion="6.0.0.3" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Channels" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
@@ -136,20 +130,12 @@
<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" />
<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.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" />
<assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
@@ -10,7 +10,6 @@ MODEL=Travel Lift
[CNC]
IP=192.168.60.234
PING_IP=192.168.60.235
PORT=48010
GETPRGNAME=true
@@ -46,8 +45,8 @@ MAX_COUNTER_BLINK = 30
BLINK_FILT=0
[OPTPAR]
AUTO_CHANGE_ODL=TRUE
CHANGE_ODL_MODE=MACHINE
AUTO_CHANGE_ODL=true
CHANGE_ODL_MODE=TIME
CHANGE_ODL_HOURS=24
CHANGE_ODL_IDLE_MIN=5
PZCOUNT_MODE=OPC
@@ -59,7 +58,6 @@ 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
@@ -70,22 +68,16 @@ FTP_SKIP=TRUE
FTP_LOC_DIR=temp\csv
FTP_REM_DIR=
CSV_ADD_HEADER=true
VETO_SEND_SNAPSHOT=3
;NO_PING=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
; Tags manuali
[TAGS]
Customer=Baglietto
HostOS=WIN
HostName=SRVBAG-TRAVEL
HostAddr=192.168.60.15
NAME=master
+1 -2
View File
@@ -67,8 +67,7 @@ FORCE_DYN_DATA=TRUE
DEM_FACT_DYN_DATA=5
ENABLE_DATA_FILTER=TRUE
ENABLE_CLI_RESTART=TRUE
SyncStateServer=localhost\sqlexpress
SyncStateDb=MoonPro_ISF
SyncStateDb=localhost\sqlexpress
SyncStateUser=egalware
SyncStatePwd=egalware2022
SyncStateCTout=
+5 -5
View File
@@ -5,11 +5,11 @@
"keyProgName": "Path_01_CurrProg",
"keyRunMode": "Path_01_RUN_MODE",
"pingAsPowerOn": true,
"emergencyArmedTrue": false,
"condPowerOn": {
"keyName": "POWER",
"targetValue": "OK"
},
"condPowerOn":
{
"keyName": "POWER",
"targetValue": "OK"
},
"condWork": [
{
"keyName": "Path_01_EXE_MODE",
-2
View File
@@ -72,8 +72,6 @@ SyncStateUser=steamware
SyncStatePwd=viadante16
SyncStateCTout=
VetoReadSec=2
VetoSyncSec=10
;FullPodlUrl=true
; clock base (da 10ms)
timerIntMs=20
+43 -44
View File
@@ -10,37 +10,9 @@
}
},
"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": "03) Filtro 1 Ore funzionamento",
"description": "Ore funzionamento filtro 1",
"memAddr": "420201",
"tipoMem": "Int",
"index": 20201,
@@ -54,7 +26,7 @@
},
"MinFunzFiltro1": {
"name": "MinFunzFiltro1",
"description": "04) Filtro 1 Minuti funzionamento",
"description": "Minuti funzionamento filtro 1",
"memAddr": "420205",
"tipoMem": "Int",
"index": 20205,
@@ -68,7 +40,7 @@
},
"OreFunzFiltroPar1": {
"name": "OreFunzFiltroPar1",
"description": "Filtro 1 (c) Ore funzionamento (contatore parziale azzerabile)",
"description": "Ore funzionamento filtro 1 (contatore parziale azzerabile)",
"memAddr": "420203",
"tipoMem": "Int",
"index": 20203,
@@ -82,7 +54,7 @@
},
"MinFunzFiltroPar1": {
"name": "MinFunzFiltroPar1",
"description": "Filtro 1 (d) Minuti funzionamento (contatore parziale azzerabile)",
"description": "Minuti funzionamento filtro 1 (contatore parziale azzerabile)",
"memAddr": "420206",
"tipoMem": "Int",
"index": 20206,
@@ -96,7 +68,7 @@
},
"OreFunzFiltro2": {
"name": "OreFunzFiltro2",
"description": "Filtro 2 (a) Ore funzionamento ",
"description": "Ore funzionamento filtro 2",
"memAddr": "420301",
"tipoMem": "Int",
"index": 20301,
@@ -110,7 +82,7 @@
},
"MinFunzFiltro2": {
"name": "MinFunzFiltro2",
"description": "Filtro 2 (b) Minuti funzionamento",
"description": "Minuti funzionamento filtro 2",
"memAddr": "420305",
"tipoMem": "Int",
"index": 20305,
@@ -124,7 +96,7 @@
},
"OreFunzFiltroPar2": {
"name": "OreFunzFiltroPar2",
"description": "Filtro 2 (c) Ore funzionamento (contatore parziale azzerabile)",
"description": "Ore funzionamento filtro 1 (contatore parziale azzerabile)",
"memAddr": "420303",
"tipoMem": "Int",
"index": 20303,
@@ -138,7 +110,7 @@
},
"MinFunzFiltroPar2": {
"name": "MinFunzFiltroPar2",
"description": "Filtro 2 (d) Minuti funzionamento (contatore parziale azzerabile)",
"description": "Minuti funzionamento filtro 1 (contatore parziale azzerabile)",
"memAddr": "420306",
"tipoMem": "Int",
"index": 20306,
@@ -152,7 +124,7 @@
},
"OreFunzAspiratore": {
"name": "OreFunzAspiratore",
"description": "Aspiratore (a) Ore funzionamento",
"description": "Ore funzionamento Aspiratore",
"memAddr": "420401",
"tipoMem": "Int",
"index": 20401,
@@ -166,7 +138,7 @@
},
"MinFunzAspiratore": {
"name": "MinFunzAspiratore",
"description": "Aspiratore (b) Minuti funzionamento",
"description": "Minuti funzionamento Aspiratore",
"memAddr": "420405",
"tipoMem": "Int",
"index": 20405,
@@ -180,7 +152,7 @@
},
"OreFunzAspiratorePar": {
"name": "OreFunzAspiratorePar",
"description": "Aspiratore (c) Ore funzionamento (contatore parziale azzerabile)",
"description": "Ore funzionamento Aspiratore (contatore parziale azzerabile)",
"memAddr": "420403",
"tipoMem": "Int",
"index": 20403,
@@ -194,7 +166,7 @@
},
"MinFunzAspiratorePar": {
"name": "MinFunzAspiratorePar",
"description": "Aspiratore (d) Minuti funzionamento (contatore parziale azzerabile)",
"description": "Minuti funzionamento Aspiratore (contatore parziale azzerabile)",
"memAddr": "420406",
"tipoMem": "Int",
"index": 20406,
@@ -205,13 +177,40 @@
"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": {
"EndOrdIntCond": "421002|1=1",
//"AlarmIntCond": "421002|1=1",
"ManualIntCond": "421002|1=3",
"AlarmIntCond": "421004|0=1",
"ManualIntCond": "421004|0=3",
//"EStopBitCond": "100040.0=1",
"WorkIntCond": "421002|1=2,4"
"WorkIntCond": "421004|0=2,4"
}
}
+3 -4
View File
@@ -208,10 +208,9 @@
}
},
"optMemPar": {
"EndOrdIntCond": "406198|1=1",
//"AlarmIntCond": "406200|0=1",
"ManualIntCond": "406198|1=3",
"AlarmIntCond": "406200|0=1",
"ManualIntCond": "406200|0=3",
//"EStopBitCond": "100040.0=1",
"WorkIntCond": "406198|1=2,4"
"WorkIntCond": "406200|0=2,4"
}
}
@@ -1,89 +0,0 @@
;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
@@ -1,10 +0,0 @@
{
"mMapWrite": {
},
"mMapRead": {
},
"optKVP": {
//"path-remBase": "C:\\Temp"
"path-remBase": "\\\\ecs900\\Logs"
}
}
@@ -1,83 +0,0 @@
;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
@@ -1,10 +0,0 @@
{
"mMapWrite": {
},
"mMapRead": {
},
"optKVP": {
//"path-remBase": "C:\\Temp"
"path-remBase": "\\\\ecs900\\Logs"
}
}
+3 -10
View File
@@ -45,19 +45,12 @@ 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_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
;STARTLIST=IMI_RIMOR_SAB_01
STARTLIST=IMI_RIMOR_VER_01
MAXCNC=10
+1 -4
View File
@@ -2,16 +2,13 @@
[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.183
;IP=10.74.82.253
IP=10.74.83.112
PORT=0000
[SERVER]
-88
View File
@@ -1,88 +0,0 @@
;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
-176
View File
@@ -1,176 +0,0 @@
{
"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"
}
}
}
-7
View File
@@ -1,7 +0,0 @@
{
"ReadBlocks": {
"40000": 64,
"40420": 64,
"40900": 8
}
}
-54
View File
@@ -1,54 +0,0 @@
[
{
"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",
"##",
"##",
"##",
"##",
"##",
"##",
"##",
"##",
"##",
"##",
"##",
"##",
"##",
"##"
]
}
]
+6 -9
View File
@@ -3,7 +3,6 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -92,12 +91,10 @@ FTP_LOC_DIR=temp\csv
FTP_REM_DIR=
CSV_ADD_HEADER=true
[BRANCH]
NAME=master
; conf file import
FILE_IMPORT_FOLDER=c:\temp\import
FILE_IMPORT_TYPE=*.xlsx
FILE_ARCHIVE_FOLDER=c:\temp\import\archive
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
[BRANCH]
NAME=master
+11 -16
View File
@@ -84,21 +84,16 @@
"maxVal": 1500
}
},
"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}}"
"fileDecod": {
"Product": 3,
"Variety": 9,
"Supplier": 8,
"ExtDoc": 2,
"DateRif": 14,
"QtyTot": 22,
"NumPack": 21,
"NumPed": 17,
"PackPed": 18,
"PesoPack": 20
}
}
+1 -9
View File
@@ -3,7 +3,6 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -92,11 +91,4 @@ FTP_LOC_DIR=temp\csv
FTP_REM_DIR=
[BRANCH]
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
NAME=master
+12
View File
@@ -83,5 +83,17 @@
"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
}
}
+2 -10
View File
@@ -3,7 +3,6 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -35,7 +34,7 @@ BLINK_FILT=0
[OPTPAR]
AUTO_CHANGE_ODL=true
AUTO_SNAPSHOT_DOSSIER=false
AUTO_SNAPSHOT_DOSSIER=true
CHANGE_ODL_HOURS=24
CHANGE_ODL_IDLE_MIN=0
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
@@ -93,11 +92,4 @@ FTP_REM_DIR=
[BRANCH]
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
NAME=master
+2 -10
View File
@@ -3,7 +3,6 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -34,7 +33,7 @@ BLINK_FILT=0
[OPTPAR]
AUTO_CHANGE_ODL=true
AUTO_SNAPSHOT_DOSSIER=false
AUTO_SNAPSHOT_DOSSIER=true
CHANGE_ODL_HOURS=24
CHANGE_ODL_IDLE_MIN=0
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
@@ -91,11 +90,4 @@ FTP_LOC_DIR=temp\csv
FTP_REM_DIR=
[BRANCH]
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
NAME=master
+2 -10
View File
@@ -3,7 +3,6 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -34,7 +33,7 @@ BLINK_FILT=0
[OPTPAR]
AUTO_CHANGE_ODL=true
AUTO_SNAPSHOT_DOSSIER=false
AUTO_SNAPSHOT_DOSSIER=true
CHANGE_ODL_HOURS=24
CHANGE_ODL_IDLE_MIN=0
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
@@ -91,11 +90,4 @@ FTP_LOC_DIR=temp\csv
FTP_REM_DIR=
[BRANCH]
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
NAME=master
+2 -10
View File
@@ -3,7 +3,6 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -34,7 +33,7 @@ BLINK_FILT=0
[OPTPAR]
AUTO_CHANGE_ODL=true
AUTO_SNAPSHOT_DOSSIER=false
AUTO_SNAPSHOT_DOSSIER=true
CHANGE_ODL_HOURS=24
CHANGE_ODL_IDLE_MIN=0
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
@@ -91,11 +90,4 @@ FTP_LOC_DIR=temp\csv
FTP_REM_DIR=
[BRANCH]
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
NAME=master
+2 -10
View File
@@ -3,7 +3,6 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -34,7 +33,7 @@ BLINK_FILT=0
[OPTPAR]
AUTO_CHANGE_ODL=true
AUTO_SNAPSHOT_DOSSIER=false
AUTO_SNAPSHOT_DOSSIER=true
CHANGE_ODL_HOURS=24
CHANGE_ODL_IDLE_MIN=0
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
@@ -92,11 +91,4 @@ FTP_REM_DIR=
[BRANCH]
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
NAME=master
+2 -10
View File
@@ -3,7 +3,6 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -34,7 +33,7 @@ BLINK_FILT=0
[OPTPAR]
AUTO_CHANGE_ODL=false
AUTO_SNAPSHOT_DOSSIER=false
AUTO_SNAPSHOT_DOSSIER=true
CHANGE_ODL_HOURS=48
CHANGE_ODL_IDLE_MIN=10
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
@@ -91,11 +90,4 @@ FTP_LOC_DIR=temp\csv
FTP_REM_DIR=
[BRANCH]
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
NAME=master
+3 -21
View File
@@ -3,7 +3,6 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -51,7 +50,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
@@ -59,7 +58,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
@@ -75,22 +74,5 @@ 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
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
NAME=master
+95 -83
View File
@@ -1,87 +1,99 @@
{
"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
}
"mMapWrite": {
"setArt": {
"name": "setArt",
"description": "Articolo",
"memAddr": "DB150.DBB12",
"tipoMem": "String",
"index": 12,
"size": 20
},
"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
}
"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
}
},
"fileDecod": {
"Product": 2,
"Variety": 3,
"Supplier": 4,
"ExtDoc": 0,
"DateRif": 1,
"QtyTot": 15,
"NumPack": 14,
"NumPed": 11,
"PackPed": 12,
"PesoPack": 13
}
}
+4 -22
View File
@@ -3,7 +3,6 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -51,7 +50,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
@@ -59,7 +58,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
@@ -73,24 +72,7 @@ SIM_DICH=262|1
SIM_MATR_OPR=1
; conf parametri memoria READ/WRITE
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
PARAM_CONF=SIM_DP_01.json
[BRANCH]
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
NAME=master
+95 -83
View File
@@ -1,87 +1,99 @@
{
"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
}
"mMapWrite": {
"setArt": {
"name": "setArt",
"description": "Articolo",
"memAddr": "DB150.DBB12",
"tipoMem": "String",
"index": 12,
"size": 20
},
"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
}
"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
}
},
"fileDecod": {
"Product": 2,
"Variety": 3,
"Supplier": 4,
"ExtDoc": 0,
"DateRif": 1,
"QtyTot": 15,
"NumPack": 14,
"NumPed": 11,
"PackPed": 12,
"PesoPack": 13
}
}
+1 -8
View File
@@ -72,11 +72,4 @@ MAX_PZ_INCR_PERC=1000
PARAM_CONF=SIM_PIZ00.json
[BRANCH]
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
NAME=master
+1 -8
View File
@@ -72,11 +72,4 @@ MAX_PZ_INCR_PERC=1000
PARAM_CONF=SIM_PIZ00.json
[BRANCH]
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
NAME=master
+1 -8
View File
@@ -72,11 +72,4 @@ MAX_PZ_INCR_PERC=1000
PARAM_CONF=SIM_PIZ00.json
[BRANCH]
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
NAME=master
+1 -8
View File
@@ -72,11 +72,4 @@ MAX_PZ_INCR_PERC=1000
PARAM_CONF=SIM_PIZ00.json
[BRANCH]
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
NAME=master
+150 -165
View File
@@ -1,168 +1,153 @@
{
"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"
"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
}]
}
],
"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
}
]
}
}
+1 -1
View File
@@ -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/
-80
View File
@@ -1,80 +0,0 @@
;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
-342
View File
@@ -1,342 +0,0 @@
{
"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