fix operazione avvio FANUC che si pianta al load (metodi NON in override x Counter/analog/status)

This commit is contained in:
Samuele E. Locatelli
2017-06-26 17:45:45 +02:00
parent 1098b70a2c
commit c84f1f56ce
4 changed files with 76 additions and 173 deletions
+69 -34
View File
@@ -709,53 +709,88 @@ namespace MTC_Adapter
/// <summary>
/// Gestione lettura dati manutenzione
/// </summary>
private void getMtzDataFromPlc()
public override bool getMtzDataFromPlc()
{
// recupero i dati di manutenzione dall'area di memoria IN BLOCCO
int memIndex = 14000;
byte[] tabDatiMtzByte = new byte[4 * maintData.Length];
uint[] tabDatiMtz = new uint[maintData.Length];
inizio = DateTime.Now;
FanucMemRW(R, FANUC.MemType.R, memIndex, ref tabDatiMtzByte);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiMtz", tabDatiMtzByte.Length), DateTime.Now.Subtract(inizio).Ticks);
// copio byte --> word!
Buffer.BlockCopy(tabDatiMtzByte, 0, tabDatiMtz, 0, tabDatiMtzByte.Length);
// decodifico aree memoria secondo tab configurazione
processMaintData(tabDatiMtz, maintData);
bool fatto = false;
try
{
if (maintData.Length > 0)
{
// recupero i dati di manutenzione dall'area di memoria IN BLOCCO
int memIndex = 14000;
byte[] tabDatiMtzByte = new byte[4 * maintData.Length];
uint[] tabDatiMtz = new uint[maintData.Length];
inizio = DateTime.Now;
FanucMemRW(R, FANUC.MemType.R, memIndex, ref tabDatiMtzByte);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiMtz", tabDatiMtzByte.Length), DateTime.Now.Subtract(inizio).Ticks);
// copio byte --> word!
Buffer.BlockCopy(tabDatiMtzByte, 0, tabDatiMtz, 0, tabDatiMtzByte.Length);
// decodifico aree memoria secondo tab configurazione
processMaintData(tabDatiMtz, maintData);
}
fatto = true;
}
catch
{ }
return fatto;
}
/// <summary>
/// Gestione lettura dati analogici
/// </summary>
private void getAnalogDataFromPlc()
public override bool getAnalogDataFromPlc()
{
// recupero i dati di manutenzione dall'area di memoria IN BLOCCO
int memIndex = 15000;
byte[] tabDatiAnalogByte = new byte[4 * analogData.Length];
uint[] tabDatiAnalog = new uint[analogData.Length];
inizio = DateTime.Now;
FanucMemRW(R, FANUC.MemType.R, memIndex, ref tabDatiAnalogByte);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiAnalog", tabDatiAnalogByte.Length * 4), DateTime.Now.Subtract(inizio).Ticks);
// copio byte --> word!
Buffer.BlockCopy(tabDatiAnalogByte, 0, tabDatiAnalog, 0, tabDatiAnalogByte.Length);
// decodifico aree memoria secondo tab configurazione
processAnalogData(tabDatiAnalog, analogData);
bool fatto = false;
try
{
if (analogData.Length > 0)
{
// recupero i dati di manutenzione dall'area di memoria IN BLOCCO
int memIndex = 15000;
byte[] tabDatiAnalogByte = new byte[4 * analogData.Length];
uint[] tabDatiAnalog = new uint[analogData.Length];
inizio = DateTime.Now;
FanucMemRW(R, FANUC.MemType.R, memIndex, ref tabDatiAnalogByte);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiAnalog", tabDatiAnalogByte.Length * 4), DateTime.Now.Subtract(inizio).Ticks);
// copio byte --> word!
Buffer.BlockCopy(tabDatiAnalogByte, 0, tabDatiAnalog, 0, tabDatiAnalogByte.Length);
// decodifico aree memoria secondo tab configurazione
processAnalogData(tabDatiAnalog, analogData);
}
fatto = true;
}
catch
{ }
return fatto;
}
/// <summary>
/// Gestione lettura dati status da PLC
/// </summary>
private void getStatusDataFromPlc()
public override bool getStatusDataFromPlc()
{
// recupero i dati di manutenzione dall'area di memoria IN BLOCCO
int memIndex = 14512;
int numByte = 1 + (statusData.Length / 8);
byte[] tabDatiStatus = new byte[numByte];
inizio = DateTime.Now;
FanucMemRW(R, FANUC.MemType.R, memIndex, ref tabDatiStatus);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiStatus", tabDatiStatus.Length), DateTime.Now.Subtract(inizio).Ticks);
bool fatto = false;
try
{
if (statusData.Length > 0)
{
// recupero i dati di manutenzione dall'area di memoria IN BLOCCO
int memIndex = 14512;
int numByte = 1 + (statusData.Length / 8);
byte[] tabDatiStatus = new byte[numByte];
inizio = DateTime.Now;
FanucMemRW(R, FANUC.MemType.R, memIndex, ref tabDatiStatus);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiStatus", tabDatiStatus.Length), DateTime.Now.Subtract(inizio).Ticks);
// decodifico aree memoria secondo tab configurazione
processStatusData(tabDatiStatus, statusData);
// decodifico aree memoria secondo tab configurazione
processStatusData(tabDatiStatus, statusData);
}
fatto = true;
}
catch
{ }
return fatto;
}
/// <summary>
/// Leggo dati globali comuni (x path, assi...)
+3 -1
View File
@@ -36,9 +36,11 @@
<!--PRODUZIONE
IP ETH: 192.168.139.201/255.255.255.0
ipPLC = "192.168.139.1"-->
<add key="ipPLC" value="192.168.157.2"/>
<!--<add key="ipPLC" value="192.168.157.2"/>-->
<!--OSAI DEV-->
<!--<add key ="ipPLC" value="192.168.157.2" />-->
<!--CMS PROD-->
<add key ="ipPLC" value="192.168.139.1" />
<add key="recTime" value="true"/>
<add key="verbose" value="true"/>
@@ -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_SIEMENS</NomeAdapt>
<TipoAdapt>SIEMENS</TipoAdapt>
<NomeAdapt>ADAPTER_FANUC</NomeAdapt>
<TipoAdapt>FANUC</TipoAdapt>
<ContOreMaccOn>0</ContOreMaccOn>
<ContOreMaccLav>0</ContOreMaccLav>
<ContSlittaTast>0</ContSlittaTast>
@@ -83,10 +83,6 @@
<ident>Path_01</ident>
<dataRefList />
</element>
<element>
<ident>Path_02</ident>
<dataRefList />
</element>
</Path>
<UnOp>
<element>
@@ -173,135 +169,5 @@
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_07</ident>
<dataRefList>
<dataRef>
<Key>Axis_07_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_07_Grp</Key>
<Value>00</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_08</ident>
<dataRefList>
<dataRef>
<Key>Axis_08_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_08_Grp</Key>
<Value>00</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_09</ident>
<dataRefList>
<dataRef>
<Key>Axis_09_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_09_Grp</Key>
<Value>00</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_10</ident>
<dataRefList>
<dataRef>
<Key>Axis_10_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_10_Grp</Key>
<Value>00</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_11</ident>
<dataRefList>
<dataRef>
<Key>Axis_11_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_11_Grp</Key>
<Value>00</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_12</ident>
<dataRefList>
<dataRef>
<Key>Axis_12_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_12_Grp</Key>
<Value>00</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_13</ident>
<dataRefList>
<dataRef>
<Key>Axis_13_Type</Key>
<Value>ROTARY</Value>
</dataRef>
<dataRef>
<Key>Axis_13_Grp</Key>
<Value>00</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_14</ident>
<dataRefList>
<dataRef>
<Key>Axis_14_Type</Key>
<Value>ROTARY</Value>
</dataRef>
<dataRef>
<Key>Axis_14_Grp</Key>
<Value>00</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_15</ident>
<dataRefList>
<dataRef>
<Key>Axis_15_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_15_Grp</Key>
<Value>00</Value>
</dataRef>
</dataRefList>
</element>
<element>
<ident>Axis_16</ident>
<dataRefList>
<dataRef>
<Key>Axis_16_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_16_Grp</Key>
<Value>00</Value>
</dataRef>
</dataRefList>
</element>
</Axis>
</AdapterConf>
@@ -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] - ...