acquisizione modifiche FANUC x file persistenza in OSAI

This commit is contained in:
Samuele E. Locatelli
2017-03-24 11:04:39 +01:00
parent 0eecabad0d
commit 020dffa11a
18 changed files with 145 additions and 22 deletions
-4
View File
@@ -1,9 +1,5 @@
using MTConnect;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MTC_Adapter
{
@@ -523,6 +523,10 @@ namespace MTC_Adapter
/// </summary>
public bool adpRunning = false;
/// <summary>
/// valore booleano di check se l'adapter STIA SALVANDO
/// </summary>
public bool adpSaving = false;
/// <summary>
/// valore booleano (richiesta di riavvio automatico)
/// </summary>
public bool adpTryRestart;
+1
View File
@@ -58,6 +58,7 @@
<add key="AlarmList" value="AlarmList.map"/>
<add key="defaultConfFile" value="Adapter_ItemList.xml"/>
<add key="defaultPersLayerFile" value="PersistData.dat"/>
<add key="maxNumDD" value="30"/>
<add key="defaultEsaFile" value="EsaKvara.ini"/>
<add key="CounterListFilePath" value="CounterList.map"/>
<add key="StatusListFilePath" value="StatusList.map"/>
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<AdapterConf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Version>1</Version>
<NomeAdapt>ADAPTER_OSAI</NomeAdapt>
<TipoAdapt>OSAI</TipoAdapt>
<NomeAdapt>ADAPTER_FANUC</NomeAdapt>
<TipoAdapt>FANUC</TipoAdapt>
<ContOreMaccOn>0</ContOreMaccOn>
<ContOreMaccLav>0</ContOreMaccLav>
<VacuumPump>
@@ -377,7 +377,7 @@
000376|PLC|FAULT|[COD 002107] - 530 PULSANTIERA ESTERNA ABILITATA
000377|PLC|FAULT|[COD 002108] - 504 CAMBIO UTENSILE INTERROTTO
000378|PLC|FAULT|[COD 002109] - 363 MONTANTE CENTRALE ALTO
000379|PLC|FAULT|[COD 002110] - =--- PREALLARME TERMICO TORQUE A
000379|PLC|FAULT|[COD 002110] - --- PREALLARME TERMICO TORQUE A
000380|PLC|FAULT|[COD 002111] - 498 CARICO MASSIMO SUL MANDRINO SUPERATO SOGLIA S1
000381|PLC|FAULT|[COD 002112] - --- PREALLARME TERMICO TORQUE C
000382|PLC|FAULT|[COD 002113] - 432 UTENSILE NON SGANCIATO
@@ -431,7 +431,7 @@
000430|PLC|FAULT|[COD 002161] - 289 ATTREZZAGGIO CAMBIO UTENSILE 2 IN CORSO
000431|PLC|FAULT|[COD 002162] - 584 PORTA DI SICUREZZA MAGAZZINO DISCO 2 NON CHIUSA
000432|PLC|FAULT|[COD 002163] - 514 PROTEZIONE MAGAZZINO DISCO 2 NON IN POSIZIONE
000433|PLC|FAULT|[COD 002164] -
000433|PLC|FAULT|[COD 002164] - ...
000434|PLC|FAULT|[COD 002165] - 550 GRUPPO DI FORATURA NON IN POSIZIONE
000435|PLC|FAULT|[COD 002166] - ...
000436|PLC|FAULT|[COD 002167] - ...
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -97,7 +97,7 @@
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="DotNetAdapterSDK, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
<Reference Include="DotNetAdapterSDK, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>ExtLib\DotNetAdapterSDK.dll</HintPath>
</Reference>
+48 -13
View File
@@ -149,7 +149,7 @@ namespace MTC_Adapter
var sentinalRule = new LoggingRule("*", LogLevel.Trace, sentinalTarget);
LogManager.Configuration.AddTarget("sentinal", sentinalTarget);
LogManager.Configuration.LoggingRules.Add(sentinalRule);
#endif
LogManager.ReconfigExistingLoggers();
@@ -633,6 +633,15 @@ namespace MTC_Adapter
}
}
/// <summary>
/// file persistenza generale data attuale ANTICIPATA di xx giorni
/// </summary>
/// <param name="numDD">num DD di anticipo</param>
/// <returns></returns>
public string prevPersLayerFile(int numDD)
{
return string.Format(@"{0}\{1:yyyy}\{1:yyyy-MM-dd}.mtc", utils.dataDatDir, DateTime.Now.AddDays(-numDD));
}
/// <summary>
/// salva i valori attuali del file di conf sia in file corrente che in cartella valori storici
/// </summary>
public void persistData()
@@ -653,7 +662,7 @@ namespace MTC_Adapter
private void checkNormTask()
{
// decremento...
normCount--;
// se il counter è a zero eseguo...
@@ -1169,21 +1178,29 @@ namespace MTC_Adapter
/// <param name="filePath"></param>
public void savePersistLayer(string filePath)
{
// se HO dei dati...
if (agObj.persistenceLayer != null)
// in primis check semaforo salvataggio...
if (!agObj.adpSaving)
{
try
// alzo semaforo salvataggio
agObj.adpSaving = true;
// se HO dei dati...
if (agObj.persistenceLayer != null)
{
utils.WritePlain(agObj.persistenceLayer, filePath);
try
{
utils.WritePlain(agObj.persistenceLayer, filePath);
}
catch (Exception exc)
{
lg.Error(string.Format("Errore salvataggio file{0}{1}", Environment.NewLine, exc));
}
}
catch (Exception exc)
else
{
lg.Error(string.Format("Errore salvataggio file{0}{1}", Environment.NewLine, exc));
lg.Info("persistenceLayer null, non salvato...");
}
}
else
{
lg.Info("persistenceLayer null, non salvato...");
// abbasso semaforo salvataggio
agObj.adpSaving = false;
}
}
/// <summary>
@@ -1195,6 +1212,24 @@ namespace MTC_Adapter
// inizializzo prima di leggere...
agObj.persistenceLayer = new Dictionary<string, string>();
agObj.persistenceLayer = utils.ReadPlain(filePath);
// 2017.03.23 check problema files corrotti...
if (agObj.persistenceLayer.Count == 0)
{
// se avesse letto un valore NON coerente (senza righe) PROVA a leggere a ritroso vecchi files... da histPersLayerFile e precedenti...
int numDD = 0;
int maxNumDD = utils.CRI("maxNumDD");
Dictionary<string, string> lastRead = new Dictionary<string, string>();
// continuo fino a che non leggo almeno 1 riga valida e non ho raggiunto maxDD
while (numDD < maxNumDD && lastRead.Count == 0)
{
// leggo il file storico alla data anticipata...
lastRead = utils.ReadPlain(prevPersLayerFile(numDD));
numDD++;
}
// se sono uscito PROVO a passare il file storico letto buono (oppure vuoto...)
agObj.persistenceLayer = lastRead;
}
}
#endregion
@@ -1615,6 +1650,6 @@ namespace MTC_Adapter
agObj.tryDisconnect();
}
}
}
}
+29
View File
@@ -0,0 +1,29 @@
ACC_TIME:18
ACC_TIME_WORK:0
Axis_01_AccTime:0
Axis_01_DistDone:11
Axis_01_InvDDone:15
Axis_02_AccTime:0
Axis_02_DistDone:10
Axis_02_InvDDone:17
Axis_03_AccTime:0
Axis_03_DistDone:3
Axis_03_InvDDone:11
Axis_04_AccTime:0
Axis_04_DistDone:2
Axis_04_InvDDone:7
Axis_05_AccTime:1
Axis_05_DistDone:0
Axis_05_InvDDone:0
Axis_06_AccTime:0
Axis_06_DistDone:11
Axis_06_InvDDone:15
Lubro_01_Count:0
Lubro_02_Count:0
Path_01_PartId:P000123
UnOp_01_AccTime:155
UnOp_01_NumCU:6
VacAct_01_Count:10
VacAct_02_Count:10
VacPump_01_WrkTime:4
VacPump_02_WrkTime:5
+29
View File
@@ -0,0 +1,29 @@
ACC_TIME:18
ACC_TIME_WORK:0
Axis_01_AccTime:0
Axis_01_DistDone:11
Axis_01_InvDDone:15
Axis_02_AccTime:0
Axis_02_DistDone:10
Axis_02_InvDDone:17
Axis_03_AccTime:0
Axis_03_DistDone:3
Axis_03_InvDDone:11
Axis_04_AccTime:0
Axis_04_DistDone:2
Axis_04_InvDDone:7
Axis_05_AccTime:1
Axis_05_DistDone:0
Axis_05_InvDDone:0
Axis_06_AccTime:0
Axis_06_DistDone:11
Axis_06_InvDDone:15
Lubro_01_Count:0
Lubro_02_Count:0
Path_01_PartId:P000123
UnOp_01_AccTime:155
UnOp_01_NumCU:6
VacAct_01_Count:10
VacAct_02_Count:10
VacPump_01_WrkTime:4
VacPump_02_WrkTime:5
Binary file not shown.
Binary file not shown.
Binary file not shown.
+29
View File
@@ -0,0 +1,29 @@
ACC_TIME:18
ACC_TIME_WORK:0
Axis_01_AccTime:0
Axis_01_DistDone:11
Axis_01_InvDDone:15
Axis_02_AccTime:0
Axis_02_DistDone:10
Axis_02_InvDDone:17
Axis_03_AccTime:0
Axis_03_DistDone:3
Axis_03_InvDDone:11
Axis_04_AccTime:0
Axis_04_DistDone:2
Axis_04_InvDDone:7
Axis_05_AccTime:1
Axis_05_DistDone:0
Axis_05_InvDDone:0
Axis_06_AccTime:0
Axis_06_DistDone:11
Axis_06_InvDDone:15
Lubro_01_Count:0
Lubro_02_Count:0
Path_01_PartId:P000123
UnOp_01_AccTime:155
UnOp_01_NumCU:6
VacAct_01_Count:10
VacAct_02_Count:10
VacPump_01_WrkTime:4
VacPump_02_WrkTime:5
Binary file not shown.