diff --git a/MTC_Sim/CMSCncLib/CNC/CNC.FANUC/CNC.FANUC.vb b/MTC_Sim/CMSCncLib/CNC/CNC.FANUC/CNC.FANUC.vb
index 6d18ebb..c330a6f 100644
--- a/MTC_Sim/CMSCncLib/CNC/CNC.FANUC/CNC.FANUC.vb
+++ b/MTC_Sim/CMSCncLib/CNC/CNC.FANUC/CNC.FANUC.vb
@@ -719,6 +719,8 @@ Namespace CNC
' leggo tutto!!!
nReturn = Focas1.cnc_rddynamic2(nLibHandle(nPathIdx), 1, 28 + 4 * (4 * 1), allData)
+ '!!!FARE!!! LEGGE 1 SOLO ASSE!!!
+ 'nReturn = Focas1.cnc_rddynamic2(nLibHandle(nPathIdx), -1, 28 + 4 * (4 * nNumAxisRead), allData)
If F_CheckRetError_Cnc(nReturn, "cnc_rddynamic2 RefreshAllData CNC.FANUC.CMS_CncLib") Then
Throw New CmsNcException("ERR cnc_rddynamic2 RefreshAllData CNC.FANUC.CMS_CncLib")
@@ -729,6 +731,42 @@ Namespace CNC
End Function
+ Public Function getCncAlarm() As Focas1.ODBALMMSG2
+ ' RIFERIMENTO:
+ ' C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Misc\cnc_rdalmmsg2.htm
+
+ Dim nPathIdx As Integer
+ Dim nNumAxisRead As Integer
+ Dim nReturn As Integer
+
+ Dim allData As Focas1.ODBALMMSG2
+ ' inizializzo
+ allData = New Focas1.ODBALMMSG2
+
+ 'leggo il numero del processo attivo
+ nPathIdx = GetActivePath()
+ 'leggo num max assi dal cn
+ nNumAxisRead = Focas1.MAX_AXIS
+
+ ' vettore num allarmi MAX da leggere......
+ Dim numAllarmi As Int16
+ numAllarmi = 512
+
+ If Is30Series Then
+
+ ' leggo tutto!!!
+ nReturn = Focas1.cnc_rdalmmsg2(nLibHandle(nPathIdx), -1, numAllarmi, allData)
+
+ If F_CheckRetError_Cnc(nReturn, "cnc_rdalmmsg2 GetCncAlarm CNC.FANUC.CMS_CncLib") Then
+ Throw New CmsNcException("ERR cnc_rdalmmsg2 GetCncAlarm CNC.FANUC.CMS_CncLib")
+ End If
+ End If
+
+ Return allData
+
+ End Function
+
+
Public Function getPathGCodeMod() As Focas1.ODBGCD
' RIFERIMENTO:
' C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Misc\cnc_rdgcode.htm
diff --git a/MTC_Sim/MTC_Sim/AdapterFanuc.cs b/MTC_Sim/MTC_Sim/AdapterFanuc.cs
index baa3cee..b3aebaf 100644
--- a/MTC_Sim/MTC_Sim/AdapterFanuc.cs
+++ b/MTC_Sim/MTC_Sim/AdapterFanuc.cs
@@ -17,6 +17,10 @@ namespace MTC_Sim
/// C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Position\cnc_rddynamic2.htm
///
protected CMSCncLib.Focas1.ODBDY2_1 allDynData;
+ ///
+ /// Vettore degli allarmi CNC attivi
+ ///
+ public CMSCncLib.Focas1.ODBALMMSG2 allarmiCNC;
///
/// estende l'init della classe base...
@@ -460,7 +464,7 @@ namespace MTC_Sim
}
}
}
-
+
// SE non ho giĆ tornato un ACK...
if (!ackReturned)
{
@@ -626,18 +630,75 @@ namespace MTC_Sim
FeedRate = allDynData.actf;
- // se ho allarmi li accodo...
- if(allDynData.alarm!=0)
- {
- sb.AppendLine(string.Format("Allarmi CNC: {0}", allDynData.alarm));
- }
-
-
sb.AppendLine(string.Format("FeedRate: {0} mm/min", FeedRate));
+
+ // se ho allarmi li accodo...
+ //if (allDynData.alarm != 0)
+ //{
+ sb.AppendLine(string.Format("Allarmi CNC: {0}", allDynData.alarm));
+
+ inizio = DateTime.Now;
+ allarmiCNC = FANUC_ref.getCncAlarm();
+ if (utils.CRB("recTime")) TimingData.addResult("R-CNC-ALARMS", DateTime.Now.Subtract(inizio).Ticks);
+ checkCNCAlarms();
+ //}
+ //else
+ //{
+ // mAlarmCNC.Normal();
+ //}
+
parentForm.dataMonitor = sb.ToString();
}
+ public override void processAlarm()
+ {
+ base.processAlarm();
+
+ // ggiungo gestione allarmi CNC
+ checkCNCAlarms();
+ }
+
+ ///
+ /// Verifica i 10 allarmi CNC SE presenti
+ ///
+ private void checkCNCAlarms()
+ {
+ // faccio parse allarmi: se ci sono invio e presento
+ sendAlarmIfPresent(allarmiCNC.msg1);
+ sendAlarmIfPresent(allarmiCNC.msg2);
+ sendAlarmIfPresent(allarmiCNC.msg3);
+ sendAlarmIfPresent(allarmiCNC.msg4);
+ sendAlarmIfPresent(allarmiCNC.msg5);
+ sendAlarmIfPresent(allarmiCNC.msg6);
+ sendAlarmIfPresent(allarmiCNC.msg7);
+ sendAlarmIfPresent(allarmiCNC.msg8);
+ sendAlarmIfPresent(allarmiCNC.msg9);
+ sendAlarmIfPresent(allarmiCNC.msg10);
+ }
+
+ ///
+ /// Invia singolo allarme CNC se presente
+ ///
+ ///
+ protected void sendAlarmIfPresent(CMSCncLib.Focas1.ODBALMMSG2_data allarme)
+ {
+ // controllo valore...
+ if (allarme.alm_no > 0)
+ {
+ //if (utils.CRB("verbose")) sb.AppendLine(string.Format("Allarmi CNC: NUM {0} | MESS: {1} | ASSE: {2} | TYPE: {3}", allarme.alm_no, allarme.alm_msg, allarme.axis, allarme.type));
+
+ // se ho asse accodo ad asse altrimenti no...
+ //if (allarme.axis == 0)
+ //{
+ string codAllarme = string.Format("T{0}-N{1}", allarme.type, allarme.alm_no);
+ mAlarmCNC.Add(MTConnect.Condition.Level.FAULT, allarme.alm_msg, codAllarme, "", "");
+ //}
+ //else
+ //{ }
+ }
+ }
+
public override void getUnOp()
{
base.getUnOp();
@@ -680,7 +741,7 @@ namespace MTC_Sim
StringBuilder sb = new StringBuilder();
- sb.AppendLine(string.Format("SpeedRate UnOp_{0}: {1} rpm", i+1, SpeedRate));
+ sb.AppendLine(string.Format("SpeedRate UnOp_{0}: {1} rpm", i + 1, SpeedRate));
parentForm.dataMonitor += sb.ToString();
}
@@ -768,17 +829,17 @@ namespace MTC_Sim
//vettPath[i].mPathRapidOver.Value = PtData.PathRapidOver;
//vettPath[i].mPathPartId.Value = PtData.PartId;
//vettPath[i].mPathPartCount.Value = PtData.pzTot;
- vettPath[i].mPathCurrProg.Value = string.Format("{0}-{1}-{2}",allDynData.prgmnum, allDynData.prgnum, allDynData.seqnum);
+ vettPath[i].mPathCurrProg.Value = string.Format("{0}-{1}-{2}", allDynData.prgmnum, allDynData.prgnum, allDynData.seqnum);
//vettPath[i].mPathCurrProgRowNum.Value = PtData.ProgrRow;
//vettPath[i].mPathActiveAxes.Value = PtData.ActiveAxes;
sb.AppendLine(string.Format("Path {0}, PROG: {1}", i + 1, vettPath[i].mPathCurrProg.Value));
- sb.AppendLine(string.Format("Path {0}, Asse 1: {1:N3}", i+1, ((decimal)vettTTCoord.data1) / utils.CRI("fattdecimale")));
- sb.AppendLine(string.Format("Path {0}, Asse 2: {1:N3}", i+1, ((decimal)vettTTCoord.data2) / utils.CRI("fattdecimale")));
- sb.AppendLine(string.Format("Path {0}, Asse 3: {1:N3}", i+1, ((decimal)vettTTCoord.data3) / utils.CRI("fattdecimale")));
- sb.AppendLine(string.Format("Path {0}, Cent 1: {1:N3}", i+1, ((decimal)vettTTCoord.c1) / utils.CRI("fattdecimale")));
- sb.AppendLine(string.Format("Path {0}, Cent 2: {1:N3}", i+1, ((decimal)vettTTCoord.c2) / utils.CRI("fattdecimale")));
+ sb.AppendLine(string.Format("Path {0}, Asse 1: {1:N3}", i + 1, ((decimal)vettTTCoord.data1) / utils.CRI("fattdecimale")));
+ sb.AppendLine(string.Format("Path {0}, Asse 2: {1:N3}", i + 1, ((decimal)vettTTCoord.data2) / utils.CRI("fattdecimale")));
+ sb.AppendLine(string.Format("Path {0}, Asse 3: {1:N3}", i + 1, ((decimal)vettTTCoord.data3) / utils.CRI("fattdecimale")));
+ sb.AppendLine(string.Format("Path {0}, Cent 1: {1:N3}", i + 1, ((decimal)vettTTCoord.c1) / utils.CRI("fattdecimale")));
+ sb.AppendLine(string.Format("Path {0}, Cent 2: {1:N3}", i + 1, ((decimal)vettTTCoord.c2) / utils.CRI("fattdecimale")));
parentForm.dataMonitor += sb.ToString();
}
diff --git a/MTC_Sim/MTC_Sim/AdapterGeneric.cs b/MTC_Sim/MTC_Sim/AdapterGeneric.cs
index 597055c..966fe8a 100644
--- a/MTC_Sim/MTC_Sim/AdapterGeneric.cs
+++ b/MTC_Sim/MTC_Sim/AdapterGeneric.cs
@@ -1036,7 +1036,6 @@ namespace MTC_Sim
mAlarmSystem.Normal();
mAlarmCNC.Normal();
mAlarmPLC.Normal();
- mAlarmCNC.Normal();
mAlarmGeneral.Normal();
lg.Info("Adapter Started!");
}