Completata gestione allarmi CNC (non definiti su quale asse...)

This commit is contained in:
Samuele E. Locatelli
2016-05-20 17:07:03 +02:00
parent c15b697378
commit 0fba8fadd9
3 changed files with 114 additions and 16 deletions
@@ -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
+76 -15
View File
@@ -17,6 +17,10 @@ namespace MTC_Sim
/// C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Position\cnc_rddynamic2.htm
/// </summary>
protected CMSCncLib.Focas1.ODBDY2_1 allDynData;
/// <summary>
/// Vettore degli allarmi CNC attivi
/// </summary>
public CMSCncLib.Focas1.ODBALMMSG2 allarmiCNC;
/// <summary>
/// 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();
}
/// <summary>
/// Verifica i 10 allarmi CNC SE presenti
/// </summary>
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);
}
/// <summary>
/// Invia singolo allarme CNC se presente
/// </summary>
/// <param name="allarme"></param>
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();
}
-1
View File
@@ -1036,7 +1036,6 @@ namespace MTC_Sim
mAlarmSystem.Normal();
mAlarmCNC.Normal();
mAlarmPLC.Normal();
mAlarmCNC.Normal();
mAlarmGeneral.Normal();
lg.Info("Adapter Started!");
}