completata lettura allarmi, nuova gestione con chiave x lettura "monoblocco" + veloce ed efficiente...

This commit is contained in:
Samuele E. Locatelli
2017-03-08 22:29:22 +01:00
parent 2905e4518b
commit 59d7fd39db
8 changed files with 561 additions and 488 deletions
+217 -178
View File
@@ -32,7 +32,7 @@ namespace MTC_Adapter
/// </summary>
public otherData[] mapIOT_String;
/// <summary>
/// variabile globale x usare IOT MEMORI (!!! da eliminare alla fine dei test)
/// variabile globale x usare IOT MEMORY (!!! da eliminare alla fine dei test)
/// </summary>
protected bool useIotMem = true;
@@ -231,6 +231,183 @@ namespace MTC_Adapter
}
}
/// <summary>
/// Carica ed acquisisce dati del buffer Byte (8 bit) di memoria
/// </summary>
protected void getIotMem_Byte()
{
// HARD CODE: forzo path 1 (indice 0...)
int idxPath = 0;
// accodo dati path in DataMonitor......
StringBuilder sb = new StringBuilder();
if (connectionOk)
{
// leggo TUTTO il blocco di memoria
inizio = DateTime.Now;
ncDevice.ReadBufferByte();
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PLC_IOT-Byte", ncDevice.PLC_MemoryAreaIOT_Byte.Length), DateTime.Now.Subtract(inizio).Ticks);
}
else
{
lg.Error("Errore connessione mancante in getIotMem_Byte");
}
// Processing area BYTE
int numero = 0;
string status = "";
int bitNum = 0;
int byteNum = 0;
byte currByte;
for (int i = 0; i < mapIOT_Byte.Length; i++)
{
// gestisco in primis le variabili BIT
if (mapIOT_Byte[i].dataType == "BIT")
{
string[] memIdx = mapIOT_Byte[i].memAddr.Split('.');
// calcolo bit e byte number...
int.TryParse(memIdx[0], out byteNum);
if (memIdx.Length > 1)
{
int.TryParse(memIdx[1], out bitNum);
}
// leggo byte...
currByte = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum];
if (mapIOT_Byte[i].varName == "IOT_EXEC")
{
if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum)))
{
vettPath[idxPath].mPathExeMode.Value = "RUN";
// !!!FARE per ora prendo ANCHE poweron...
mPower.Value = "ON";
}
else
{
vettPath[idxPath].mPathExeMode.Value = "READY";
// !!!FARE per ora prendo ANCHE poweron...
mPower.Value = "OFF";
}
}
else if (mapIOT_Byte[i].varName == "IOT_HOLD")
{
if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0)
{
vettPath[idxPath].mPathExeMode.Value = "FEED_HOLD"; //"FEEDHOLD";
}
}
else if (mapIOT_Byte[i].varName == "IOT_EMG")
{
// 2017.03.07 controllo bit emergenza...
if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0)
{
mEStop.Value = "TRIGGERED";
}
else
{
mEStop.Value = "ARMED";
}
}
else if (mapIOT_Byte[i].varName == "IOT_ALRM")
{
if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0)
{
// carico IN BLOCCO memoria allarmi...
// FARE!!!
}
}
}
// vado poi a gestire le variabili BYTE
else if (mapIOT_Byte[i].dataType == "BYTE")
{
int.TryParse(mapIOT_Byte[i].memAddr, out byteNum);
if (mapIOT_Byte[i].varName == "IOT_OVRF")
{
// -------------------------------------------
// recupero dati FeedOverride
// FeedOver: 100% = 213 (il pannello è 0-120 --> 0-255, quindi 100% è 100/120*255=213)
FeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] * 100) / 213);
sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver));
}
else if (mapIOT_Byte[i].varName == "IOT_OVRS")
{
// -------------------------------------------
// recupero dati SpeedOverride
// SpeedOver: 50% = 128
SpeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] * 100) / 255);
sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver));
}
else if (mapIOT_Byte[i].varName.StartsWith("IOT_LUB_"))
{
// recupero NUMERO
try
{
numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_LUB_", "").Replace("_Status", ""));
}
catch
{
// se non trovo --> 1!
numero = 1;
}
if (mapIOT_Byte[i].varName.EndsWith("_STA"))
{
if (ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0)
{
status = "EMPTY";
}
else
{
status = "OK";
}
vettLubro[numero - 1].mLubroStatus.Value = status;
}
else if (mapIOT_Byte[i].varName.EndsWith("_CNT"))
{
vettLubro[numero - 1].mLubroNum.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i];
}
}
else if (mapIOT_Byte[i].varName.StartsWith("IOT_I_MD_"))
{
// recupero NUMERO
try
{
numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_I_MD_", ""));
}
catch
{
// se non trovo --> 1!
numero = 1;
}
// salvo in vettore carico mandrini
try
{
vettUnOp[numero - 1].mUnOpLoad.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i];
}
catch
{ }
}
else if (mapIOT_Byte[i].varName.StartsWith("IOT_PGMR_A_"))
{
// recupero NUMERO
try
{
numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_I_MD_", ""));
}
catch
{
// se non trovo --> 1!
numero = 1;
}
//// salvo in vettore carico mandrini
//try
//{
// vettUnOp[numero - 1].mUnOpLoad.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i];
//}
//catch
//{ }
}
}
}
parentForm.dataMonitor += sb.ToString();
}
/// <summary>
/// Carica ed acquisisce dati del buffer WORD (16 bit) di memoria
/// </summary>
@@ -415,8 +592,8 @@ namespace MTC_Adapter
try
{
numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_PLC_MSG_", ""));
// !!! FARE Copia aree allarmi!!!!
// copio allarmi in vettore generale AlarmFlags (dove lo gestisce) 4 byte alla volta
Buffer.BlockCopy(BitConverter.GetBytes(ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]), 0, AlarmFlags, numero * 4, 4);
}
catch
{
@@ -449,19 +626,15 @@ namespace MTC_Adapter
{
base.getGlobalData();
// accodo dati path in DataMonitor......
StringBuilder sb = new StringBuilder();
// 2017.03.07 IN BLOCCO processo TUTTI i valori della memoria WORD/DWORD...
if (useIotMem)
{
getIotMem_Word();
getIotMem_DWord();
// processo assi!
getAxis();
processAllMemory();
}
else
{
// accodo dati path in DataMonitor......
StringBuilder sb = new StringBuilder();
if (connectionOk)
{
// leggo TUTTO il blocco di memoria
@@ -564,10 +737,9 @@ namespace MTC_Adapter
// copio allarmi in vettore generale AlarFlags (dove lo gestisce)...
Buffer.BlockCopy(ncDevice.PLC_MemoryAreaAllarmi, 0, AlarmFlags, 0, ncDevice.PLC_MemoryAreaAllarmi.Length);
//Buffer.BlockCopy(ncDevice.PLC_MemAreaAlarm_tmp, 0, AlarmFlags, 0, ncDevice.PLC_MemAreaAlarm_tmp.Length);
parentForm.dataMonitor = sb.ToString();
}
parentForm.dataMonitor = sb.ToString();
}
/// <summary>
/// Path percorso file prod
@@ -714,6 +886,28 @@ namespace MTC_Adapter
}
}
}
public override void processAllMemory()
{
// inizializzo data monitor su FORM
parentForm.dataMonitor = "";
// recupero le varie memorie
getIotMem_Byte();
getIotMem_Word();
getIotMem_DWord();
//getIotMem_String();
// processo componenti specifici x info...
//getUnOp();
//getPath();
getAxis();
getConfigParam();
///acquisisco dati su programma in esecuzione e dati generali (stato, orologio, power...)
getSlowChangingData();
}
/// <summary>
/// Processo stti macchina...
/// </summary>
@@ -728,164 +922,7 @@ namespace MTC_Adapter
// 2017.03.07 IN BLOCCO processo TUTTI i valori della memoria BYTE...
if (useIotMem)
{
inizio = DateTime.Now;
ncDevice.ReadBufferByte();
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PLC_IOT-Byte", ncDevice.PLC_MemoryAreaIOT_Byte.Length), DateTime.Now.Subtract(inizio).Ticks);
// uno ad uno vado a inserirli nella mappa dei dati dell'adapter...
int numero = 0;
string status = "";
int bitNum = 0;
int byteNum = 0;
byte currByte;
for (int i = 0; i < mapIOT_Byte.Length; i++)
{
// gestisco in primis le variabili BIT
if (mapIOT_Byte[i].dataType == "BIT")
{
string[] memIdx = mapIOT_Byte[i].memAddr.Split('.');
// calcolo bit e byte number...
int.TryParse(memIdx[0], out byteNum);
if (memIdx.Length > 1)
{
int.TryParse(memIdx[1], out bitNum);
}
// leggo byte...
currByte = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum];
if (mapIOT_Byte[i].varName == "IOT_EXEC")
{
if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum)))
{
vettPath[idxPath].mPathExeMode.Value = "RUN";
// !!!FARE per ora prendo ANCHE poweron...
mPower.Value = "ON";
}
else
{
vettPath[idxPath].mPathExeMode.Value = "READY";
// !!!FARE per ora prendo ANCHE poweron...
mPower.Value = "OFF";
}
}
else if (mapIOT_Byte[i].varName == "IOT_HOLD")
{
if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0)
{
vettPath[idxPath].mPathExeMode.Value = "FEED_HOLD"; //"FEEDHOLD";
}
}
else if (mapIOT_Byte[i].varName == "IOT_EMG")
{
// 2017.03.07 controllo bit emergenza...
if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0)
{
mEStop.Value = "TRIGGERED";
}
else
{
mEStop.Value = "ARMED";
}
}
else if (mapIOT_Byte[i].varName == "IOT_ALRM")
{
if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0)
{
// carico IN BLOCCO memoria allarmi...
// FARE!!!
}
}
}
// vado poi a gestire le variabili BYTE
else if (mapIOT_Byte[i].dataType == "BYTE")
{
int.TryParse(mapIOT_Byte[i].memAddr, out byteNum);
if (mapIOT_Byte[i].varName == "IOT_OVRF")
{
// -------------------------------------------
// recupero dati FeedOverride
// FeedOver: 100% = 213 (il pannello è 0-120 --> 0-255, quindi 100% è 100/120*255=213)
FeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] * 100) / 213);
sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver));
}
else if (mapIOT_Byte[i].varName == "IOT_OVRS")
{
// -------------------------------------------
// recupero dati SpeedOverride
// SpeedOver: 50% = 128
SpeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] * 100) / 255);
sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver));
}
else if (mapIOT_Byte[i].varName.StartsWith("IOT_LUB_"))
{
// recupero NUMERO
try
{
numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_LUB_", "").Replace("_Status", ""));
}
catch
{
// se non trovo --> 1!
numero = 1;
}
if (mapIOT_Byte[i].varName.EndsWith("_STA"))
{
if (ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0)
{
status = "EMPTY";
}
else
{
status = "OK";
}
vettLubro[numero - 1].mLubroStatus.Value = status;
}
else if (mapIOT_Byte[i].varName.EndsWith("_CNT"))
{
vettLubro[numero - 1].mLubroNum.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i];
}
}
else if (mapIOT_Byte[i].varName.StartsWith("IOT_I_MD_"))
{
// recupero NUMERO
try
{
numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_I_MD_", ""));
}
catch
{
// se non trovo --> 1!
numero = 1;
}
// salvo in vettore carico mandrini
try
{
vettUnOp[numero - 1].mUnOpLoad.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i];
}
catch
{ }
}
else if (mapIOT_Byte[i].varName.StartsWith("IOT_PGMR_A_"))
{
// recupero NUMERO
try
{
numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_I_MD_", ""));
}
catch
{
// se non trovo --> 1!
numero = 1;
}
//// salvo in vettore carico mandrini
//try
//{
// vettUnOp[numero - 1].mUnOpLoad.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i];
//}
//catch
//{ }
}
}
}
processAllMemory();
}
else
{
@@ -973,9 +1010,11 @@ namespace MTC_Adapter
break;
}
}
parentForm.dataMonitor += sb.ToString();
//parentForm.dataMonitor = sb.ToString();
}
/// <summary>
/// Recupera la speed override x i mandrini (UnOp)
/// </summary>
public override void getUnOp()
{
// cicl su UnOp
@@ -985,11 +1024,9 @@ namespace MTC_Adapter
}
}
public override void getPath()
{
base.getPath();
}
/// <summary>
/// Carica info accessorie assi (direzione, feed, ...)
/// </summary>
public override void getAxis()
{
// mostro assi in DataMonitor......
@@ -1056,6 +1093,7 @@ namespace MTC_Adapter
parentForm.dataMonitor += sb.ToString();
}
#if false
public override void processAlarm()
{
base.processAlarm();
@@ -1083,6 +1121,7 @@ namespace MTC_Adapter
}
}
}
}
}
#endif
}
}
+66 -37
View File
@@ -575,6 +575,10 @@ namespace MTC_Adapter
/// </summary>
public bool adpTryRestart;
/// <summary>
/// Determina se utilizzare blocchi di memoria IOT contigui (e quindi processing "monoblocco" semplificato"=
/// </summary>
public bool procIotMem = false;
/// <summary>
/// porta x adapter (x restart)
/// </summary>
protected int adpPortNum;
@@ -968,6 +972,7 @@ namespace MTC_Adapter
lg = LogManager.GetCurrentClassLogger();
lg.Info("Avvio AdapterGeneric");
procIotMem = utils.CRB("procIotMem");
currAdpConf = adpConf;
@@ -1192,7 +1197,7 @@ namespace MTC_Adapter
// 2016.07.20: dimensione AlarmFlags è la MAX tra quella del numero allarmi ed il numero allarmi standard dalla memoria...
if (numByte < 32) numByte = 32;
AlarmFlags = new byte[numByte];
if (utils.CRB("verbose")) lg.Info("Fine caricamento vettore allarmi");
if (utils.CRB("verbose")) lg.Info(string.Format("Fine caricamento vettore allarmi: {0} allarmi caricati!", rumRiga));
}
/// <summary>
/// Caricamento altri file necessari epr adapter all'avvio
@@ -1557,45 +1562,65 @@ namespace MTC_Adapter
// processing degli strobes di allarme (da ULTIMA rappresentazione vettore dell'ADP)
processAlarm();
// ciclo HF: recupero update status & strobes vari
if (ciclo == gatherCycle.HF)
// verifico se processare tutto "in un colpo solo"
if (procIotMem)
{
// parte che eseguo SEMPRE: RECUPERO stato di tutti gli strobe/status e degli ack attualmente noti
getStrobeAndAckStatus();
// faccio refresh degli allarmi segnalati (da strobe su vettore locale)
refreshAlarmState(STRB_DW0, true);
// acquisizione degli status
processStatus();
// processing degli strobes
processStrobe();
processAllMemory();
if (ciclo == gatherCycle.LF)
{
// eventuale log!
if (utils.CRB("recTime")) logTimeResults();
}
// ciclo lentissimo
else if (ciclo == gatherCycle.VLF)
{
lg.Info("Richiesta lettura completa allarmi attivi");
// faccio comunque rilettura completa allarmi...
forceAlarmCheck();
}
}
else if (ciclo == gatherCycle.MF)
// oppure in "modalità classica" con multistep...
else
{
// leggo parametri a media freq (dati globali, path, assi, Unità Operatrice)
getGlobalData();
getUnOp();
getPath();
getAxis();
}
// ciclo lento
else if (ciclo == gatherCycle.LF)
{
// leggo EVENTUALI parametri da config file
getConfigParam();
///acquisisco dati su programma in esecuzione e dati generali (stato, orologio, power...)
getSlowChangingData();
// ciclo HF: recupero update status & strobes vari
if (ciclo == gatherCycle.HF)
{
// parte che eseguo SEMPRE: RECUPERO stato di tutti gli strobe/status e degli ack attualmente noti
getStrobeAndAckStatus();
// eventuale log!
if (utils.CRB("recTime")) logTimeResults();
}
// ciclo lentissimo
else if (ciclo == gatherCycle.VLF)
{
lg.Info("Richiesta lettura completa allarmi attivi");
// faccio comunque rilettura completa allarmi...
forceAlarmCheck();
// faccio refresh degli allarmi segnalati (da strobe su vettore locale)
refreshAlarmState(STRB_DW0, true);
// acquisizione degli status
processStatus();
// processing degli strobes
processStrobe();
}
else if (ciclo == gatherCycle.MF)
{
// leggo parametri a media freq (dati globali, path, assi, Unità Operatrice)
getGlobalData();
getUnOp();
getPath();
getAxis();
}
// ciclo lento
else if (ciclo == gatherCycle.LF)
{
// leggo EVENTUALI parametri da config file
getConfigParam();
///acquisisco dati su programma in esecuzione e dati generali (stato, orologio, power...)
getSlowChangingData();
// eventuale log!
if (utils.CRB("recTime")) logTimeResults();
}
// ciclo lentissimo
else if (ciclo == gatherCycle.VLF)
{
lg.Info("Richiesta lettura completa allarmi attivi");
// faccio comunque rilettura completa allarmi...
forceAlarmCheck();
}
}
// processo e svuoto eventuali code di invio per Codici M/S/T
@@ -1865,7 +1890,11 @@ namespace MTC_Adapter
}
}
}
/// <summary>
/// Classe fittizia in caso di processing GLOBALE di tutto in 1 solo colpo...
/// </summary>
public virtual void processAllMemory()
{ }
/// <summary>
/// metodo di recupero dei dati di identificativo macchina - DA CONF!!!
/// </summary>
@@ -4,6 +4,7 @@
<appSettings>
<add key="autoLoadConf" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="openDumpOnStart" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="procIotMem" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="startMinimized" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="windowCanMax" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="trayClose" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
@@ -4,6 +4,7 @@
<appSettings>
<add key="autoLoadConf" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="openDumpOnStart" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="procIotMem" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="startMinimized" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="windowCanMax" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="trayClose" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
+3 -2
View File
@@ -4,10 +4,11 @@
<appSettings>
<add key="autoLoadConf" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="openDumpOnStart" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="procIotMem" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<!--COMMENTATO IN DEBUG LOCALE-->
<!--<add key="startMinimized" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="startMinimized" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="windowCanMax" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="trayClose" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>-->
<add key="trayClose" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="recTime" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<!--<add key="defaultConfFile" value="SCM_ESA.xml" xdt:Transform="Replace" xdt:Locator="Match(key)"/>-->
</appSettings>
+2
View File
@@ -60,6 +60,8 @@
<add key="CounterListFilePath" value="CounterList.map" />
<add key="StatusListFilePath" value="StatusList.map" />
<add key="SubModeListFilePath" value="SubModeList.map" />
<!--conf gestione "semplificata" accesso a tutta la memoria ogni volta-->
<add key="procIotMem" value="true" />
<!--file configurazione ESA KVARA-->
<add key="IOTByteFilePath" value="IOT_ByteList.map" />
<add key="IOTWordFilePath" value="IOT_WordList.map" />
+270 -270
View File
@@ -1,58 +1,58 @@
# Commenti con "#", elenco tipo COD_NUM|GRUPPO|LEVEL|DESCRIZIONE completa
000001|PLC|FAULT|[COD 001000] - 334 ERRORE COMUNICAZIONE PROFIBUS
000002|PLC|FAULT|[COD 001001] - 700 TABELLE IN MODIFICA
000003|PLC|FAULT|[COD 001002] - 404 BILANCIAMENTO ASSE Z INSUFFICIENTE
000004|PLC|FAULT|[COD 001003] - 403 SURRISCALDAMENTO ARMADIO ELETTRICO
000005|PLC|FAULT|[COD 001004] - 173 CAMBIARE LA BATTERIA
000006|PLC|FAULT|[COD 001005] - 407 UNO O PIU ASSI IN EXTRA CORSA
000007|PLC|FAULT|[COD 001006] - 406 PULSANTI DI EMERGENZA
000008|PLC|FAULT|[COD 001007] - ...
000009|PLC|FAULT|[COD 001008] - 583 MACCHINA SPENTA
000010|PLC|FAULT|[COD 001009] - 782 RICHIESTA ESECUZIONE TEST DI SICUREZZA
000011|PLC|FAULT|[COD 001010] - 783 INCONSISTENZA SEGNALI DUALCHEK (PARATIA)
000012|PLC|FAULT|[COD 001011] - 784 SOVRACORRENTE MODULI I/O LINK
000013|PLC|FAULT|[COD 001012] - 667 CIRCUITO DI SICUREZZA GUASTO
000014|PLC|FAULT|[COD 001013] - 404 BILANCIAMENTO ASSE W INSUFFICIENTE
000015|PLC|FAULT|[COD 001014] - 584 PORTA DI SICUREZZA AUSILIARIA 1 NON CHIUSA
000016|PLC|FAULT|[COD 001015] - 584 PORTA DI SICUREZZA AUSILIARIA 2 NON CHIUSA
000017|PLC|FAULT|[COD 001016] - 001 HAI VERIFICATO TABELLE UTENSILI ? PREMERE SOFTKEY SI
000018|PLC|FAULT|[COD 001017] - 002 SEI SICURO ? PREMERE SOFTKEY SI
000019|PLC|FAULT|[COD 001018] - 666 MODULO CONTROLLO MANDRINO FERMO NON OK
000020|PLC|FAULT|[COD 001019] - 666 DISPOSITIVO DI SICUREZZA GUASTO
000021|PLC|FAULT|[COD 001020] - 689 STATUS UTENSILE NON OK
000022|PLC|FAULT|[COD 001021] - 688 ERRORE TOOLTABLE - SINCRONISMO DATI
000023|PLC|FAULT|[COD 001022] - 688 ERRORE TOOLTABLE - UTENSILE NON TROVATO
000024|PLC|FAULT|[COD 001023] - 688 ERRORE TOOLTABLE - PASTIGLIA NON TROVATA
000025|PLC|FAULT|[COD 001024] - 688 ERRORE TOOLTABLE - FAMIGLIA NON TROVATA
000026|PLC|FAULT|[COD 001025] - 688 ERRORE TOOLTABLE - MAGAZZINO/POSTO NON TROVATO
000027|PLC|FAULT|[COD 001026] - 688 ERRORE TOOLTABLE - VITA UT. ESAURITA PER FAMIGLIA
000028|PLC|FAULT|[COD 001027] - 688 ERRORE TOOLTABLE - POSTO MAGAZZINO NON TROVATO
000029|PLC|FAULT|[COD 001028] - ...
000030|PLC|FAULT|[COD 001029] - ...
000031|PLC|FAULT|[COD 001030] - ...
000032|PLC|FAULT|[COD 001031] - 146 FIELDBUS KO (375)
000033|PLC|FAULT|[COD 001032] -
000034|PLC|FAULT|[COD 001033] -
000035|PLC|FAULT|[COD 001034] -
000036|PLC|FAULT|[COD 001035] -
000037|PLC|FAULT|[COD 001036] -
000038|PLC|FAULT|[COD 001037] -
000039|PLC|FAULT|[COD 001038] -
000040|PLC|FAULT|[COD 001039] -
000041|PLC|FAULT|[COD 001040] -
000042|PLC|FAULT|[COD 001041] -
000043|PLC|FAULT|[COD 001042] -
000044|PLC|FAULT|[COD 001043] -
000045|PLC|FAULT|[COD 001044] -
000046|PLC|FAULT|[COD 001045] -
000047|PLC|FAULT|[COD 001046] -
000048|PLC|FAULT|[COD 001047] -
000049|PLC|FAULT|[COD 001048] -
000050|PLC|FAULT|[COD 001049] -
000051|PLC|FAULT|[COD 001050] -
000052|PLC|FAULT|[COD 001051] -
000053|PLC|FAULT|[COD 001052] -
000054|PLC|FAULT|[COD 001053] -
000001|PLC|FAULT|[COD 001000] -
000002|PLC|FAULT|[COD 001001] -
000003|PLC|FAULT|[COD 001002] -
000004|PLC|FAULT|[COD 001003] -
000005|PLC|FAULT|[COD 001004] -
000006|PLC|FAULT|[COD 001005] -
000007|PLC|FAULT|[COD 001006] -
000008|PLC|FAULT|[COD 001007] -
000009|PLC|FAULT|[COD 001008] -
000010|PLC|FAULT|[COD 001009] -
000011|PLC|FAULT|[COD 001010] -
000012|PLC|FAULT|[COD 001011] -
000013|PLC|FAULT|[COD 001012] -
000014|PLC|FAULT|[COD 001013] -
000015|PLC|FAULT|[COD 001014] -
000016|PLC|FAULT|[COD 001015] -
000017|PLC|FAULT|[COD 001016] -
000018|PLC|FAULT|[COD 001017] -
000019|PLC|FAULT|[COD 001018] -
000020|PLC|FAULT|[COD 001019] -
000021|PLC|FAULT|[COD 001020] -
000022|PLC|FAULT|[COD 001021] -
000023|PLC|FAULT|[COD 001022] -
000024|PLC|FAULT|[COD 001023] -
000025|PLC|FAULT|[COD 001024] -
000026|PLC|FAULT|[COD 001025] -
000027|PLC|FAULT|[COD 001026] -
000028|PLC|FAULT|[COD 001027] -
000029|PLC|FAULT|[COD 001028] -
000030|PLC|FAULT|[COD 001029] -
000031|PLC|FAULT|[COD 001030] -
000032|PLC|FAULT|[COD 001031] -
000033|PLC|FAULT|[COD 001032] -
000034|PLC|FAULT|[COD 001033] -
000035|PLC|FAULT|[COD 001034] -
000036|PLC|FAULT|[COD 001035] -
000037|PLC|FAULT|[COD 001036] -
000038|PLC|FAULT|[COD 001037] -
000039|PLC|FAULT|[COD 001038] -
000040|PLC|FAULT|[COD 001039] -
000041|PLC|FAULT|[COD 001040] -
000042|PLC|FAULT|[COD 001041] -
000043|PLC|FAULT|[COD 001042] -
000044|PLC|FAULT|[COD 001043] -
000045|PLC|FAULT|[COD 001044] -
000046|PLC|FAULT|[COD 001045] -
000047|PLC|FAULT|[COD 001046] -
000048|PLC|FAULT|[COD 001047] -
000049|PLC|FAULT|[COD 001048] -
000050|PLC|FAULT|[COD 001049] -
000051|PLC|FAULT|[COD 001050] -
000052|PLC|FAULT|[COD 001051] -
000053|PLC|FAULT|[COD 001052] -
000054|PLC|FAULT|[COD 001053] -
000055|PLC|FAULT|[COD 001054] -
000056|PLC|FAULT|[COD 001055] -
000057|PLC|FAULT|[COD 001056] -
@@ -255,109 +255,109 @@
000254|PLC|FAULT|[COD 001253] -
000255|PLC|FAULT|[COD 001254] -
000256|PLC|FAULT|[COD 001255] -
000257|PLC|FAULT|[COD 002000] - 444 PRESSIONE LIQUIDO DI RAFFREDDAMENTO INSUFFICIENTE
000258|PLC|FAULT|[COD 002001] - 441 MALFUNZIONAMENTO RAFFREDDAMENTO MANDRINI
000259|PLC|FAULT|[COD 002002] - 276 LIMITI SOFTWARE ASSE X NON ATTUALI
000260|PLC|FAULT|[COD 002003] - 512 CAMBIO ZONA INTERROTTO
000261|PLC|FAULT|[COD 002004] - 346 PARATIA NON IN POSIZIONE
000262|PLC|FAULT|[COD 002005] - 607 PREMERE PRENOTAZIONE CAMBIO ZONA
000263|PLC|FAULT|[COD 002006] - 150 AZIONAMENTI NON ABILITATI
000264|PLC|FAULT|[COD 002007] - 161 COMUNICAZIONE INVERTER IN ERRORE
000265|PLC|FAULT|[COD 002008] - 162 FATAL ERROR INVERTER
000266|PLC|FAULT|[COD 002009] - 398 PRESSIONE ARIA INSUFFICIENTE
000267|PLC|FAULT|[COD 002010] - 400 LUBRIFICAZIONE INEFFICIENTE
000268|PLC|FAULT|[COD 002011] - 460 ASSE B BLOCCATO
000269|PLC|FAULT|[COD 002012] - 458 ASSE B NON BLOCCATO
000270|PLC|FAULT|[COD 002013] - 460 ASSE C BLOCCATO
000271|PLC|FAULT|[COD 002014] - 458 ASSE C NON BLOCCATO
000272|PLC|FAULT|[COD 002015] - 105 MACCHINA IN HOLD
000273|PLC|FAULT|[COD 002016] - 614 PREMERE LA SOFTKEY RIPRISTINO ACCOPPIAMENTO Z-W
000274|PLC|FAULT|[COD 002017] - 593 PROTEZIONI DI SICUREZZA
000275|PLC|FAULT|[COD 002018] - 362 MONTANTE CENTRALE NON IN POSIZIONE
000276|PLC|FAULT|[COD 002019] - 157 SICUREZZE ANTICADUTA ASSE Z NON OK
000277|PLC|FAULT|[COD 002020] - 158 PIOLO ANTICADUTA ASSE Z NON IN POSIZIONE
000278|PLC|FAULT|[COD 002021] - 115 CONTROLLO VELOCITA MANDRINO
000279|PLC|FAULT|[COD 002022] - 135 CONVERTITORE IN BLOCCO
000280|PLC|FAULT|[COD 002023] - 514 PROTEZIONE SUPPORTO LASER NON IN POSIZIONE
000281|PLC|FAULT|[COD 002024] - 561 LASER NON IN POSIZIONE
000282|PLC|FAULT|[COD 002025] - 230 RELE TERMICO POMPA VUOTO 1
000283|PLC|FAULT|[COD 002026] - 230 RELE TERMICO POMPA VUOTO 2
000284|PLC|FAULT|[COD 002027] - 200 RELE TERMICO MANDRINO
000285|PLC|FAULT|[COD 002028] - 168 CONVERTITORE NON ABILITATO
000286|PLC|FAULT|[COD 002029] - 333 COMUNICAZIONE VOLANTINO IN ERRORE
000287|PLC|FAULT|[COD 002030] - 390 FUNZIONE T NON PERMESSA
000288|PLC|FAULT|[COD 002031] - 429 UTENSILE IN MANDRINO NON OK
000289|PLC|FAULT|[COD 002032] - 245 PROTEZIONE TERMICA ASSE A
000290|PLC|FAULT|[COD 002033] - 245 PROTEZIONE TERMICA ASSE C
000291|PLC|FAULT|[COD 002034] - 004 VUOI ATTIVARE IL PROGRAMMA? PREMERE LA SOFTKEY SI OPPURE RESET
000292|PLC|FAULT|[COD 002035] - 490 VERIFICA POSIZIONE UTENSILI
000293|PLC|FAULT|[COD 002036] - 522 NUMERO DI GIRI TROPPO ELEVATI
000294|PLC|FAULT|[COD 002037] - 498 CARICO MASSIMO SUL MANDRINO
000295|PLC|FAULT|[COD 002038] - 397 CIRCUITO REFRIGERANTE UTENSILE NON OK
000296|PLC|FAULT|[COD 002039] - 465 UTENSILE ROTTO
000297|PLC|FAULT|[COD 002040] - 559 LASER/TASTATORE IN MANDRINO
000298|PLC|FAULT|[COD 002041] - 572 TASTATORE NON PRONTO
000299|PLC|FAULT|[COD 002042] - 514 PROTEZIONE SUPPORTO TASTATORE NON IN POSIZIONE
000300|PLC|FAULT|[COD 002043] - 561 TASTATORE NON IN POSIZIONE
000301|PLC|FAULT|[COD 002044] - 163 FRENO CONVERTITORE NON OK
000302|PLC|FAULT|[COD 002045] - 572 RADIO PROBE - BATTERIA SCARICA
000303|PLC|FAULT|[COD 002046] - 640 TAVOLE NON IN POSIZIONE CORRETTA
000304|PLC|FAULT|[COD 002047] - 673 ASSE Z NON OK PER CAMBIO TAVOLA
000305|PLC|FAULT|[COD 002048] - 641 CAMBIO TAVOLA INTERROTTO
000306|PLC|FAULT|[COD 002049] - 130 PROBE DEVICE NON OK - DISATTIVARE DRY RUN
000307|PLC|FAULT|[COD 002050] - 276 LIMITI SOFTWARE ASSE C NON ATTUALI
000308|PLC|FAULT|[COD 002051] - 495 AZZERAMENTO ASSI CON UTENSILE NON CONSENTITO
000309|PLC|FAULT|[COD 002052] - 479 PORTELLE ASPIRAZIONE DESTRA NON IN POSIZIONE
000310|PLC|FAULT|[COD 002053] - 479 PORTELLE ASPIRAZIONE SINISTRA NON IN POSIZIONE
000311|PLC|FAULT|[COD 002054] - ...
000312|PLC|FAULT|[COD 002055] - ...
000313|PLC|FAULT|[COD 002056] - ...
000314|PLC|FAULT|[COD 002057] - ...
000315|PLC|FAULT|[COD 002058] - 444 PRESSIONE LIQUIDO DI RAFFREDDAMENTO MOTORI TORQUE INSUFFICIENTE(TORQUE)
000316|PLC|FAULT|[COD 002059] - 672 CIRCUITO LIQUIDO DI RAFFREDDAMENTO MOTORI TORQUE NON OK
000317|PLC|FAULT|[COD 002060] - 265 ASSE X NON IN POSIZIONE PER AZZERAMENTO
000318|PLC|FAULT|[COD 002061] - 265 ASSE Y NON IN POSIZIONE PER AZZERAMENTO
000319|PLC|FAULT|[COD 002062] - 265 ASSE Z NON IN POSIZIONE PER AZZERAMENTO
000320|PLC|FAULT|[COD 002063] - ...
000321|PLC|FAULT|[COD 002064] - 551 CONDIZIONI NON OK PER GRUPPO A FORARE
000322|PLC|FAULT|[COD 002065] - 265 ASSE B NON IN POSIZIONE PER AZZERAMENTO
000323|PLC|FAULT|[COD 002066] - 265 ASSE C NON IN POSIZIONE PER AZZERAMENTO
000324|PLC|FAULT|[COD 002067] - 270 RELE TERMICO GRUPPO DI FORATURA
000325|PLC|FAULT|[COD 002068] - ...
000326|PLC|FAULT|[COD 002069] - ...
000327|PLC|FAULT|[COD 002070] - 105 STOP DA DISPOSITIVO DI MONITORAGGIO
000328|PLC|FAULT|[COD 002071] - ...
000329|PLC|FAULT|[COD 002072] - 551 CONDIZIONI NON OK PER GRUPPO A FORARE
000330|PLC|FAULT|[COD 002073] - 265 ASSE B NON IN POSIZIONE PER AZZERAMENTO
000331|PLC|FAULT|[COD 002074] - 265 ASSE C NON IN POSIZIONE PER AZZERAMENTO
000332|PLC|FAULT|[COD 002075] - 270 RELE TERMICO GRUPPO DI FORATURA
000333|PLC|FAULT|[COD 002076] - ...
000334|PLC|FAULT|[COD 002077] - ...
000335|PLC|FAULT|[COD 002078] - 105 STOP DA DISPOSITIVO DI MONITORAGGIO
000336|PLC|FAULT|[COD 002079] - ...
000337|PLC|FAULT|[COD 002080] -
000338|PLC|FAULT|[COD 002081] -
000339|PLC|FAULT|[COD 002082] -
000340|PLC|FAULT|[COD 002083] -
000341|PLC|FAULT|[COD 002084] -
000342|PLC|FAULT|[COD 002085] -
000343|PLC|FAULT|[COD 002086] -
000344|PLC|FAULT|[COD 002087] -
000345|PLC|FAULT|[COD 002088] -
000346|PLC|FAULT|[COD 002089] -
000347|PLC|FAULT|[COD 002090] -
000348|PLC|FAULT|[COD 002091] -
000349|PLC|FAULT|[COD 002092] -
000350|PLC|FAULT|[COD 002093] -
000351|PLC|FAULT|[COD 002094] -
000352|PLC|FAULT|[COD 002095] -
000353|PLC|FAULT|[COD 002096] -
000354|PLC|FAULT|[COD 000000] -
000355|PLC|FAULT|[COD 000000] -
000356|PLC|FAULT|[COD 000000] -
000357|PLC|FAULT|[COD 000000] -
000358|PLC|FAULT|[COD 000000] -
000359|PLC|FAULT|[COD 000000] -
000257|PLC|FAULT|[COD 002000] -
000258|PLC|FAULT|[COD 002001] -
000259|PLC|FAULT|[COD 002002] -
000260|PLC|FAULT|[COD 002003] -
000261|PLC|FAULT|[COD 002004] -
000262|PLC|FAULT|[COD 002005] -
000263|PLC|FAULT|[COD 002006] -
000264|PLC|FAULT|[COD 002007] -
000265|PLC|FAULT|[COD 002008] -
000266|PLC|FAULT|[COD 002009] -
000267|PLC|FAULT|[COD 002010] -
000268|PLC|FAULT|[COD 002011] -
000269|PLC|FAULT|[COD 002012] -
000270|PLC|FAULT|[COD 002013] -
000271|PLC|FAULT|[COD 002014] -
000272|PLC|FAULT|[COD 002015] -
000273|PLC|FAULT|[COD 002016] -
000274|PLC|FAULT|[COD 002017] -
000275|PLC|FAULT|[COD 002018] -
000276|PLC|FAULT|[COD 002019] -
000277|PLC|FAULT|[COD 002020] -
000278|PLC|FAULT|[COD 002021] -
000279|PLC|FAULT|[COD 002022] -
000280|PLC|FAULT|[COD 002023] -
000281|PLC|FAULT|[COD 002024] -
000282|PLC|FAULT|[COD 002025] -
000283|PLC|FAULT|[COD 002026] -
000284|PLC|FAULT|[COD 002027] -
000285|PLC|FAULT|[COD 002028] -
000286|PLC|FAULT|[COD 002029] -
000287|PLC|FAULT|[COD 002030] -
000288|PLC|FAULT|[COD 002031] -
000289|PLC|FAULT|[COD 002032] -
000290|PLC|FAULT|[COD 002033] -
000291|PLC|FAULT|[COD 002034] -
000292|PLC|FAULT|[COD 002035] -
000293|PLC|FAULT|[COD 002036] -
000294|PLC|FAULT|[COD 002037] -
000295|PLC|FAULT|[COD 002038] -
000296|PLC|FAULT|[COD 002039] -
000297|PLC|FAULT|[COD 002040] -
000298|PLC|FAULT|[COD 002041] -
000299|PLC|FAULT|[COD 002042] -
000300|PLC|FAULT|[COD 002043] -
000301|PLC|FAULT|[COD 002044] -
000302|PLC|FAULT|[COD 002045] -
000303|PLC|FAULT|[COD 002046] -
000304|PLC|FAULT|[COD 002047] -
000305|PLC|FAULT|[COD 002048] -
000306|PLC|FAULT|[COD 002049] -
000307|PLC|FAULT|[COD 002050] -
000308|PLC|FAULT|[COD 002051] -
000309|PLC|FAULT|[COD 002052] -
000310|PLC|FAULT|[COD 002053] -
000311|PLC|FAULT|[COD 002054] -
000312|PLC|FAULT|[COD 002055] -
000313|PLC|FAULT|[COD 002056] -
000314|PLC|FAULT|[COD 002057] -
000315|PLC|FAULT|[COD 002058] -
000316|PLC|FAULT|[COD 002059] -
000317|PLC|FAULT|[COD 002060] -
000318|PLC|FAULT|[COD 002061] -
000319|PLC|FAULT|[COD 002062] -
000320|PLC|FAULT|[COD 002063] -
000321|PLC|FAULT|[COD 002064] -
000322|PLC|FAULT|[COD 002065] -
000323|PLC|FAULT|[COD 002066] -
000324|PLC|FAULT|[COD 002067] -
000325|PLC|FAULT|[COD 002068] -
000326|PLC|FAULT|[COD 002069] -
000327|PLC|FAULT|[COD 002070] -
000328|PLC|FAULT|[COD 002071] -
000329|PLC|FAULT|[COD 002072] -
000330|PLC|FAULT|[COD 002073] -
000331|PLC|FAULT|[COD 002074] -
000332|PLC|FAULT|[COD 002075] -
000333|PLC|FAULT|[COD 002076] -
000334|PLC|FAULT|[COD 002077] -
000335|PLC|FAULT|[COD 002078] -
000336|PLC|FAULT|[COD 002079] -
000337|PLC|FAULT|[COD 002080] -
000338|PLC|FAULT|[COD 002081] -
000339|PLC|FAULT|[COD 002082] -
000340|PLC|FAULT|[COD 002083] -
000341|PLC|FAULT|[COD 002084] -
000342|PLC|FAULT|[COD 002085] -
000343|PLC|FAULT|[COD 002086] -
000344|PLC|FAULT|[COD 002087] -
000345|PLC|FAULT|[COD 002088] -
000346|PLC|FAULT|[COD 002089] -
000347|PLC|FAULT|[COD 002090] -
000348|PLC|FAULT|[COD 002091] -
000349|PLC|FAULT|[COD 002092] -
000350|PLC|FAULT|[COD 002093] -
000351|PLC|FAULT|[COD 002094] -
000352|PLC|FAULT|[COD 002095] -
000353|PLC|FAULT|[COD 002096] -
000354|PLC|FAULT|[COD 000000] -
000355|PLC|FAULT|[COD 000000] -
000356|PLC|FAULT|[COD 000000] -
000357|PLC|FAULT|[COD 000000] -
000358|PLC|FAULT|[COD 000000] -
000359|PLC|FAULT|[COD 000000] -
000360|PLC|FAULT|[COD 000000] -
000361|PLC|FAULT|[COD 000000] -
000362|PLC|FAULT|[COD 000000] -
@@ -367,119 +367,119 @@
000366|PLC|FAULT|[COD 000000] -
000367|PLC|FAULT|[COD 000000] -
000368|PLC|FAULT|[COD 000000] -
000369|PLC|FAULT|[COD 002100] - 503 CAMBIO UTENSILE IN CORSO
000370|PLC|FAULT|[COD 002101] - 781 UNO O PIU ASSI SENZA RIFERIMENTO
000371|PLC|FAULT|[COD 002102] - 674 MACCHINA NON IN ZONA DI LAVORO
000372|PLC|FAULT|[COD 002103] - 785 CONSENSO APERTURA PORTE NEGATO
000373|PLC|FAULT|[COD 002104] - 520 FUNZIONE STALL MODE ATTIVA
000374|PLC|FAULT|[COD 002105] - 450 UTENSILE MANDRINO NON BLOCCATO
000375|PLC|FAULT|[COD 002106] - 780 STAZIONE OCCUPATA MAGAZZINO
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
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
000383|PLC|FAULT|[COD 002114] - 475 CUFFIA ASPIRAZIONE NON IN POSIZIONE
000384|PLC|FAULT|[COD 002115] - 498 CARICO MASSIMO SUL MANDRINO SUPERATO SOGLIA S6
000385|PLC|FAULT|[COD 002116] - 505 MOVIMENTO CONSENTITO Z+
000386|PLC|FAULT|[COD 002117] - 545 ASSE Z NON IN POSIZIONE
000387|PLC|FAULT|[COD 002118] - 528 MODALITA PROVA PROGRAMMA ATTIVA
000388|PLC|FAULT|[COD 002119] - 351 MESSAGGI PLC INVIATO SMS
000389|PLC|FAULT|[COD 002120] - 603 INDICARE IL NOME DELL OPERATORE E CAUSA ARRESTO MACCHINA
000390|PLC|FAULT|[COD 002121] - 538 TAVOLA NON POSIZIONATA
000391|PLC|FAULT|[COD 002122] - 595 BARRIERE DI SICUREZZA
000392|PLC|FAULT|[COD 002123] - 689 AVVISO TOOLTABLE - T INTERPRETATA COME MANINA
000393|PLC|FAULT|[COD 002124] - 689 AVVISO TOOLTABLE - T INTERPRETATA COME ID UTENSILE
000394|PLC|FAULT|[COD 002125] - 260 REGOLAZIONE AUTOMATICA FEED OVERRIDE IN CORSO
000395|PLC|FAULT|[COD 002126] - 464 VITA UTENSILE ESAURITA
000396|PLC|FAULT|[COD 002127] - 003 SEI SICURO DI VOLER CAMBIARE ORIGINE ? PREMERE SOFTKEY SI O RESET
000397|PLC|FAULT|[COD 002128] - 305 BLOCCAGGIO A DEPRESSIONE 1 INEFFICIENTE
000398|PLC|FAULT|[COD 002129] - 305 BLOCCAGGIO A DEPRESSIONE 2 INEFFICIENTE
000399|PLC|FAULT|[COD 002130] - 300 BLOCCAGGIO A PRESSIONE 1 INEFFICIENTE
000400|PLC|FAULT|[COD 002131] - 300 BLOCCAGGIO A PRESSIONE 2 INEFFICIENTE
000401|PLC|FAULT|[COD 002132] - 305 BLOCCAGGIO A DEPRESSIONE SUPPLEMENTARE 1 INEFFICIENTE
000402|PLC|FAULT|[COD 002133] - 305 BLOCCAGGIO A DEPRESSIONE SUPPLEMENTARE 2 INEFFICIENTE
000403|PLC|FAULT|[COD 002134] - 584 PORTE DI SICUREZZA 1 NON CHIUSE
000404|PLC|FAULT|[COD 002135] - 584 PORTE DI SICUREZZA 2 NON CHIUSE
000405|PLC|FAULT|[COD 002136] - 406 PULSANTE POWER-OFF PREMUTO
000406|PLC|FAULT|[COD 002137] - 412 AZZERAMENTO AUTOMATICO ASSI IN CORSO
000407|PLC|FAULT|[COD 002138] - 689 AVVISO TOOLTABLE - RICHIESTA CONFERMA ATTREZZAGGIO
000408|PLC|FAULT|[COD 002139] - 700 TABELLE IN MODIFICA
000409|PLC|FAULT|[COD 002140] - 442 MAGAZZINO DISCO MOBILE NON IN POSIZIONE
000410|PLC|FAULT|[COD 002141] - 442 MAGAZZINO PICK-UP 1 NON IN POSIZIONE
000411|PLC|FAULT|[COD 002142] - 442 MAGAZZINO PICK-UP 2 NON IN POSIZIONE
000412|PLC|FAULT|[COD 002143] - 442 MAGAZINO LATERALE 1 NON IN POSIZIONE
000413|PLC|FAULT|[COD 002144] - 442 MAGAZINO LATERALE 2 NON IN POSIZIONE
000414|PLC|FAULT|[COD 002145] - 514 PROTEZIONE MAGAZZINO PICK-UP 1 NON IN POSIZIONE
000415|PLC|FAULT|[COD 002146] - 514 PROTEZIONE MAGAZZINO PICK-UP 2 NON IN POSIZIONE
000416|PLC|FAULT|[COD 002147] - 514 PROTEZIONE MAGAZZINO LATERALE 1 NON IN POSIZIONE
000417|PLC|FAULT|[COD 002148] - 514 PROTEZIONE MAGAZZINO LATERALE 2 NON IN POSIZIONE
000418|PLC|FAULT|[COD 002149] - 334 ERRORE COMUNICAZIONE CANBUS
000419|PLC|FAULT|[COD 002150] - 147 CAMBIO UTENSILE 1 IN ALLARME
000420|PLC|FAULT|[COD 002151] - 160 AZIONAMENTO CAMBIO UTENSILE 1 NON PRONTO
000421|PLC|FAULT|[COD 002152] - 151 AZIONAMENTO CAMBIO UTENSILE 1 NON ALIMENTATO
000422|PLC|FAULT|[COD 002153] - 442 MAGAZZINO UTENSILI DISCO 1 NON IN POSIZIONE
000423|PLC|FAULT|[COD 002154] - 289 ATTREZZAGGIO CAMBIO UTENSILE 1 IN CORSO
000424|PLC|FAULT|[COD 002155] - 584 PORTA DI SICUREZZA MAGAZZINO DISCO 1 NON CHIUSA
000425|PLC|FAULT|[COD 002156] - 514 PROTEZIONE MAGAZZINO DISCO 1 NON IN POSIZIONE
000426|PLC|FAULT|[COD 002157] - 147 CAMBIO UTENSILE 2 IN ALLARME
000427|PLC|FAULT|[COD 002158] - 160 AZIONAMENTO CAMBIO UTENSILE 2 NON PRONTO
000428|PLC|FAULT|[COD 002159] - 151 AZIONAMENTO CAMBIO UTENSILE 2 NON ALIMENTATO
000429|PLC|FAULT|[COD 002160] - 442 MAGAZZINO UTENSILI DISCO 2 NON IN POSIZIONE
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] - ...
000434|PLC|FAULT|[COD 002165] - 550 GRUPPO DI FORATURA NON IN POSIZIONE
000435|PLC|FAULT|[COD 002166] - ...
000436|PLC|FAULT|[COD 002167] - ...
000437|PLC|FAULT|[COD 002168] - ...
000438|PLC|FAULT|[COD 002169] - ...
000439|PLC|FAULT|[COD 002170] - 250 CICLO DI ATTREZZAGGIO AUTOMATICO IN CORSO
000440|PLC|FAULT|[COD 002171] - 251 CICLO DI ATTREZZAGGIO AUTOMATICO INTERROTTO
000441|PLC|FAULT|[COD 002172] - 605 DISPOSITIVO DI REGISTRAZIONE DATI UTENSILI NON IN POSIZIONE
000442|PLC|FAULT|[COD 002173] - ...
000443|PLC|FAULT|[COD 002174] - ...
000444|PLC|FAULT|[COD 002175] - ...
000445|PLC|FAULT|[COD 002176] - 130 DISPOSITIVO MONITORAGGIO NON PRONTO
000446|PLC|FAULT|[COD 002177] - 773 LIMITE 1 MONITORAGGIO NON OK
000447|PLC|FAULT|[COD 002178] - 773 LIMITE 2 MONITORAGGIO NON OK
000448|PLC|FAULT|[COD 002179] - 773 LIMITE 3 MONITORAGGIO NON OK
000449|PLC|FAULT|[COD 002180] - ...
000450|PLC|FAULT|[COD 002181] -
000451|PLC|FAULT|[COD 002182] -
000452|PLC|FAULT|[COD 002183] -
000453|PLC|FAULT|[COD 002184] -
000454|PLC|FAULT|[COD 002185] -
000455|PLC|FAULT|[COD 002186] -
000456|PLC|FAULT|[COD 002187] -
000457|PLC|FAULT|[COD 002188] -
000458|PLC|FAULT|[COD 002189] -
000459|PLC|FAULT|[COD 002190] -
000460|PLC|FAULT|[COD 002191] -
000461|PLC|FAULT|[COD 002192] -
000462|PLC|FAULT|[COD 002193] -
000463|PLC|FAULT|[COD 002194] -
000464|PLC|FAULT|[COD 002195] -
000465|PLC|FAULT|[COD 000000] -
000466|PLC|FAULT|[COD 000000] -
000467|PLC|FAULT|[COD 000000] -
000468|PLC|FAULT|[COD 000000] -
000469|PLC|FAULT|[COD 000000] -
000470|PLC|FAULT|[COD 000000] -
000471|PLC|FAULT|[COD 000000] -
000472|PLC|FAULT|[COD 000000] -
000473|PLC|FAULT|[COD 000000] -
000474|PLC|FAULT|[COD 000000] -
000475|PLC|FAULT|[COD 000000] -
000476|PLC|FAULT|[COD 000000] -
000477|PLC|FAULT|[COD 000000] -
000478|PLC|FAULT|[COD 000000] -
000479|PLC|FAULT|[COD 000000] -
000480|PLC|FAULT|[COD 000000] -
000481|PLC|FAULT|[COD 000000] -
000369|PLC|FAULT|[COD 002100] -
000370|PLC|FAULT|[COD 002101] -
000371|PLC|FAULT|[COD 002102] -
000372|PLC|FAULT|[COD 002103] -
000373|PLC|FAULT|[COD 002104] -
000374|PLC|FAULT|[COD 002105] -
000375|PLC|FAULT|[COD 002106] -
000376|PLC|FAULT|[COD 002107] -
000377|PLC|FAULT|[COD 002108] -
000378|PLC|FAULT|[COD 002109] -
000379|PLC|FAULT|[COD 002110] -
000380|PLC|FAULT|[COD 002111] -
000381|PLC|FAULT|[COD 002112] -
000382|PLC|FAULT|[COD 002113] -
000383|PLC|FAULT|[COD 002114] -
000384|PLC|FAULT|[COD 002115] -
000385|PLC|FAULT|[COD 002116] -
000386|PLC|FAULT|[COD 002117] -
000387|PLC|FAULT|[COD 002118] -
000388|PLC|FAULT|[COD 002119] -
000389|PLC|FAULT|[COD 002120] -
000390|PLC|FAULT|[COD 002121] -
000391|PLC|FAULT|[COD 002122] -
000392|PLC|FAULT|[COD 002123] -
000393|PLC|FAULT|[COD 002124] -
000394|PLC|FAULT|[COD 002125] -
000395|PLC|FAULT|[COD 002126] -
000396|PLC|FAULT|[COD 002127] -
000397|PLC|FAULT|[COD 002128] -
000398|PLC|FAULT|[COD 002129] -
000399|PLC|FAULT|[COD 002130] -
000400|PLC|FAULT|[COD 002131] -
000401|PLC|FAULT|[COD 002132] -
000402|PLC|FAULT|[COD 002133] -
000403|PLC|FAULT|[COD 002134] -
000404|PLC|FAULT|[COD 002135] -
000405|PLC|FAULT|[COD 002136] -
000406|PLC|FAULT|[COD 002137] -
000407|PLC|FAULT|[COD 002138] -
000408|PLC|FAULT|[COD 002139] -
000409|PLC|FAULT|[COD 002140] -
000410|PLC|FAULT|[COD 002141] -
000411|PLC|FAULT|[COD 002142] -
000412|PLC|FAULT|[COD 002143] -
000413|PLC|FAULT|[COD 002144] -
000414|PLC|FAULT|[COD 002145] -
000415|PLC|FAULT|[COD 002146] -
000416|PLC|FAULT|[COD 002147] -
000417|PLC|FAULT|[COD 002148] -
000418|PLC|FAULT|[COD 002149] -
000419|PLC|FAULT|[COD 002150] -
000420|PLC|FAULT|[COD 002151] -
000421|PLC|FAULT|[COD 002152] -
000422|PLC|FAULT|[COD 002153] -
000423|PLC|FAULT|[COD 002154] -
000424|PLC|FAULT|[COD 002155] -
000425|PLC|FAULT|[COD 002156] -
000426|PLC|FAULT|[COD 002157] -
000427|PLC|FAULT|[COD 002158] -
000428|PLC|FAULT|[COD 002159] -
000429|PLC|FAULT|[COD 002160] -
000430|PLC|FAULT|[COD 002161] -
000431|PLC|FAULT|[COD 002162] -
000432|PLC|FAULT|[COD 002163] -
000433|PLC|FAULT|[COD 002164] -
000434|PLC|FAULT|[COD 002165] -
000435|PLC|FAULT|[COD 002166] -
000436|PLC|FAULT|[COD 002167] -
000437|PLC|FAULT|[COD 002168] -
000438|PLC|FAULT|[COD 002169] -
000439|PLC|FAULT|[COD 002170] -
000440|PLC|FAULT|[COD 002171] -
000441|PLC|FAULT|[COD 002172] -
000442|PLC|FAULT|[COD 002173] -
000443|PLC|FAULT|[COD 002174] -
000444|PLC|FAULT|[COD 002175] -
000445|PLC|FAULT|[COD 002176] -
000446|PLC|FAULT|[COD 002177] -
000447|PLC|FAULT|[COD 002178] -
000448|PLC|FAULT|[COD 002179] -
000449|PLC|FAULT|[COD 002180] -
000450|PLC|FAULT|[COD 002181] -
000451|PLC|FAULT|[COD 002182] -
000452|PLC|FAULT|[COD 002183] -
000453|PLC|FAULT|[COD 002184] -
000454|PLC|FAULT|[COD 002185] -
000455|PLC|FAULT|[COD 002186] -
000456|PLC|FAULT|[COD 002187] -
000457|PLC|FAULT|[COD 002188] -
000458|PLC|FAULT|[COD 002189] -
000459|PLC|FAULT|[COD 002190] -
000460|PLC|FAULT|[COD 002191] -
000461|PLC|FAULT|[COD 002192] -
000462|PLC|FAULT|[COD 002193] -
000463|PLC|FAULT|[COD 002194] -
000464|PLC|FAULT|[COD 002195] -
000465|PLC|FAULT|[COD 000000] -
000466|PLC|FAULT|[COD 000000] -
000467|PLC|FAULT|[COD 000000] -
000468|PLC|FAULT|[COD 000000] -
000469|PLC|FAULT|[COD 000000] -
000470|PLC|FAULT|[COD 000000] -
000471|PLC|FAULT|[COD 000000] -
000472|PLC|FAULT|[COD 000000] -
000473|PLC|FAULT|[COD 000000] -
000474|PLC|FAULT|[COD 000000] -
000475|PLC|FAULT|[COD 000000] -
000476|PLC|FAULT|[COD 000000] -
000477|PLC|FAULT|[COD 000000] -
000478|PLC|FAULT|[COD 000000] -
000479|PLC|FAULT|[COD 000000] -
000480|PLC|FAULT|[COD 000000] -
000481|PLC|FAULT|[COD 000000] -
000482|PLC|FAULT|[COD 000000] -
000483|PLC|FAULT|[COD 000000] -
000484|PLC|FAULT|[COD 000000] -
@@ -12,7 +12,7 @@
TODO
- inizializzazione dell'oggetto NC da thdNcEsaGvKvara con NUOVE aree di memoria
- attenzione a decodeBitData / decodeOtherData
- lettura aree allarmi!!!
- errore x continuo tentativo lettura file prod: "ERROR ATTENZIONE! file dati produzione..."
- completare le aree IOT-STRING
- verifica lettura GLOBALE di getGlobalData()