Completata gestione allarmi CNC (non definiti su quale asse...)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -1036,7 +1036,6 @@ namespace MTC_Sim
|
||||
mAlarmSystem.Normal();
|
||||
mAlarmCNC.Normal();
|
||||
mAlarmPLC.Normal();
|
||||
mAlarmCNC.Normal();
|
||||
mAlarmGeneral.Normal();
|
||||
lg.Info("Adapter Started!");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user