Aggiunta gestioen eccezione in FANUC x non gestire chiamate 3D disabilitate se soli 3 assi

This commit is contained in:
Samuele E. Locatelli
2017-12-27 10:34:34 +01:00
parent e6948d0b9d
commit c564ced4bc
5 changed files with 1056 additions and 1043 deletions
+20 -14
View File
@@ -675,7 +675,7 @@ namespace MTC_Adapter
// processo eventuali altri bit status non noti...
string UnkStatus = "";
// cerco i bit alzati --> aggiungo in stringa! TRANNE 31 e 32 che sono watvhdog...
// cerco i bit alzati --> aggiungo in stringa! TRANNE 31 e 32 che sono watchdog...
for (int i = 14; i < 30; i++)
{
// converto! e aggiungo allarmi sollevati al corretto controller allarmi...
@@ -1104,12 +1104,16 @@ namespace MTC_Adapter
if (vettGCodes.gcd2.flag > 0) GCodAttivi += string.Format("[{0}]", vettGCodes.gcd2.code);
if (vettGCodes.gcd3.flag > 0) GCodAttivi += string.Format("[{0}]", vettGCodes.gcd3.code);
parentForm.commPlcActive = true;
inizio = DateTime.Now;
CMSCncLib.Focas1.ODB5AXMAN vettTTCoord = FANUC_ref.getPathTTCoord();
if (utils.CRB("recTime")) TimingData.addResult("R-TTCoord", DateTime.Now.Subtract(inizio).Ticks);
parentForm.commPlcActive = false;
// 2017.12.27 gestione assi limitati --> non sono abilitate le funzioni £D, quindi DISABILITO da conf...
CMSCncLib.Focas1.ODB5AXMAN vettTTCoord = new CMSCncLib.Focas1.ODB5AXMAN();
if (!utils.CRB("FanucLimit3D"))
{
parentForm.commPlcActive = true;
inizio = DateTime.Now;
vettTTCoord = FANUC_ref.getPathTTCoord();
if (utils.CRB("recTime")) TimingData.addResult("R-TTCoord", DateTime.Now.Subtract(inizio).Ticks);
parentForm.commPlcActive = false;
}
// ciclo su path
StringBuilder sb_2;
StringBuilder sb_3;
@@ -1120,13 +1124,15 @@ namespace MTC_Adapter
sb_3 = new StringBuilder();
vettPath[i].mPathCodG_Act.Value = GCodAttivi;
vettPath[i].mPathPosActX.Value = ((decimal)vettTTCoord.data1) / utils.CRI("fattdecimale");
vettPath[i].mPathPosActY.Value = ((decimal)vettTTCoord.data2) / utils.CRI("fattdecimale");
vettPath[i].mPathPosActZ.Value = ((decimal)vettTTCoord.data3) / utils.CRI("fattdecimale");
vettPath[i].mPathPosActI.Value = ((decimal)vettTTCoord.c1) / utils.CRI("fattdecimale");
vettPath[i].mPathPosActJ.Value = ((decimal)vettTTCoord.c2) / utils.CRI("fattdecimale");
vettPath[i].mPathPosActK.Value = "0"; // è 5 assi...nullo...
if (!utils.CRB("FanucLimit3D"))
{
vettPath[i].mPathPosActX.Value = ((decimal)vettTTCoord.data1) / utils.CRI("fattdecimale");
vettPath[i].mPathPosActY.Value = ((decimal)vettTTCoord.data2) / utils.CRI("fattdecimale");
vettPath[i].mPathPosActZ.Value = ((decimal)vettTTCoord.data3) / utils.CRI("fattdecimale");
vettPath[i].mPathPosActI.Value = ((decimal)vettTTCoord.c1) / utils.CRI("fattdecimale");
vettPath[i].mPathPosActJ.Value = ((decimal)vettTTCoord.c2) / utils.CRI("fattdecimale");
vettPath[i].mPathPosActK.Value = "0"; // è 5 assi...nullo...
}
// 2017.01.16 da rivedere
vettPath[i].mPathCurrProgRowNum.Value = "";
+4 -2
View File
@@ -45,7 +45,7 @@
<!--<add key ="ipPLC" value="192.168.214.1" />-->
<!--CMS PROD-->
<!--<add key ="ipPLC" value="192.168.139.1" />-->
<add key ="ipPLC" value="192.168.214.1" />
<add key ="ipPLC" value="192.168.139.1" />
<add key="recTime" value="true"/>
<add key="verbose" value="true"/>
@@ -79,8 +79,10 @@
<add key="AnalogDataFilePath" value="AnalogData.map"/>
<add key="StatusListFilePath" value="StatusList.map"/>
<add key="SubModeListFilePath" value="SubModeList.map"/>
<!--GEstione path siemens-->
<!--Gestione path siemens-->
<add key="SiemensBaseCountPath" value="0"/>
<!--gestione FANUC con assi limitati-->
<add key="FanucLimit3D" value="true"/>
<!--conf gestione "semplificata" accesso a tutta la memoria ogni volta-->
<!--conf x CMS-->
<add key="procIotMem" value="false"/>
@@ -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>
File diff suppressed because it is too large Load Diff
+5 -1
View File
@@ -461,4 +461,8 @@ Alcune note finali su cosa verificare e alcune possibili cause di errori e probl
- è importante NON inserire controlli di stato di tipo codificato con indici superiori agli oggetti definiti nell'`Agent_ItemList.xml`, ovvero ad esempio inserire `UnOp_02_Status` se si fosse definita 1 sola unità operatrice (la variabile è lo stato della 2° unità operatrice/mandrino) / si pososno inserire valori `EMPTY_xx` oppure commentare con un prefisso i valori da ignorare (ad es se non c'è 6° asse: `Axis_06_DistDone` --> `noAxis_06_DistDone`, `___Axis_06_DistDone`, `***Axis_06_DistDone`, ...)
- attenzione ad evitare "a capo" a fine file o caratteri strani che il sistema cerca di interpretarli e si blocca.
- OSAI
- attenzione che OSAI richeide che l'ordine degli assi impostati sia quello fornito dal controller SOAP, ovvero si deve guardare nell'adapter (in modalità debug) come sono espressi gli assi e manterene lo stesos ordine sul PLC, sull'adapter (che in ogni caso riordina rispetto a come invia i dati il webservice) e sull'agent
- attenzione che OSAI richeide che l'ordine degli assi impostati sia quello fornito dal controller SOAP, ovvero si deve guardare nell'adapter (in modalità debug) come sono espressi gli assi e manterene lo stesos ordine sul PLC, sull'adapter (che in ogni caso riordina rispetto a come invia i dati il webservice) e sull'agent
- FANUC
- modifica 2017.12.27: attenzione se ci sono machcine con numero di assi limitato (ad esempio con teste a 3assi, in cui non vanno le modalità 3D come TTip, teach, posizione...) perché alcune chiamate fanuc standard non funzionano (anzi proprio fanno crashare le focas) - per evitare problemi impostare la chiave **FanucLimit3D** a **true** (se manva o di default è **false**) che SALTA IN BLOCCO tali letture basate sulle **Focas1.cnc_rd5axmandt**; di conseguenza va commentato in XML dell'AGENT anche la parte corrispondente che NON verrà valorizzata (**mPathPosAct[XYZ/IJK]**)