diff --git a/MTC_Sim/.vs/MTC_Sim/v14/.suo b/MTC_Sim/.vs/MTC_Sim/v14/.suo
index 8017c15..699a045 100644
Binary files a/MTC_Sim/.vs/MTC_Sim/v14/.suo and b/MTC_Sim/.vs/MTC_Sim/v14/.suo differ
diff --git a/MTC_Sim/MTC_Sim/AdapterFanuc.cs b/MTC_Sim/MTC_Sim/AdapterFanuc.cs
index 7b3c20a..ca34d9b 100644
--- a/MTC_Sim/MTC_Sim/AdapterFanuc.cs
+++ b/MTC_Sim/MTC_Sim/AdapterFanuc.cs
@@ -18,13 +18,18 @@ namespace MTC_Sim
///
public AdapterFanuc(CMS_MachineSim caller, AdapterConf adpConf) : base(caller, adpConf)
{
+ if (utils.CRB("verbose")) lg.Info("Start init Adapter FANUC");
Runtime.CreateNC();
FANUC_ref = (FANUC)Runtime.NC;
-
+ if (utils.CRB("verbose")) lg.Info("FANUC_ref da CMSCncLib");
+
// disconnetto e connetto...
+ if (utils.CRB("verbose")) lg.Info("FANUC: tryDisconnect");
tryDisconnect();
+ if (utils.CRB("verbose")) lg.Info("FANUC: tryConnect");
tryConnect();
+ if (utils.CRB("verbose")) lg.Info("End init Adapter FANUC");
}
public override void tryDisconnect()
@@ -496,14 +501,25 @@ namespace MTC_Sim
vettPath[idxPath].mPathType.Value = "ASSERV";
}
+ // !!!FARE!!! verificare funzioni x status SUBMODE
+
// verifico sulla STRB_DW3 i submode che POTREBBERO tutti sovrapposti...
+ if (STRB_DW3 != StFlag32.NONE)
+ {
+ string SubMode = "";
+ // cerco i bit alzati --> aggiungo relativo submode!
+ for (int i = 0; i < 32; i++)
+ {
+ // converto! e aggiungo allarmi sollevati al corretto controller allarmi...
+ if (STRB_DW3.HasFlag((StFlag32)Math.Pow(2, i)))
+ {
+ SubMode += string.Format("# {0} #", elencoSubMode[i.ToString()]);
+ }
+ }
- // devo aver già in memoria come allarmi la lista dei SUBMODE (32)
-
- // leggo come allarmi i BIT attivi
-
- // per ogni BIT attivo aggiungo nell'event del PATH (forzato a 1) l'elenco separato da spazio dei submode attivi
-
+ // se ho valori li salvo nell'event...
+ if (SubMode != "") vettPath[idxPath].mPathSubMode.Value = SubMode.Trim();
+ }
}
public override void getConfigParam()
diff --git a/MTC_Sim/MTC_Sim/AdapterGeneric.cs b/MTC_Sim/MTC_Sim/AdapterGeneric.cs
index 6a774cd..0a73453 100644
--- a/MTC_Sim/MTC_Sim/AdapterGeneric.cs
+++ b/MTC_Sim/MTC_Sim/AdapterGeneric.cs
@@ -541,6 +541,8 @@ namespace MTC_Sim
///
public allarme[] elencoAllarmi;
+ public Dictionary elencoSubMode;
+
///
/// Prima word di strobe da array flag completo
@@ -889,7 +891,7 @@ namespace MTC_Sim
///
protected void loadAllarmi()
{
- lg.Info("Inizio caricamento vettore allarmi");
+ if (utils.CRB("verbose")) lg.Info("Inizio caricamento vettore allarmi");
int totRighe = 0;
string fileName = string.Format(@"{0}\{1}", Application.StartupPath, utils.CRS("AlarmList"));
string linea;
@@ -917,7 +919,36 @@ namespace MTC_Sim
// inizializzo a zero il vettore allarmi...
int numByte = (int)Math.Ceiling(Convert.ToDecimal(rumRiga) / 8);
AlarmFlags = new byte[numByte];
-
+ if (utils.CRB("verbose")) lg.Info("Fine caricamento vettore allarmi");
+ }
+ ///
+ /// caricamento allarmi da file
+ ///
+ protected void loadSubMode()
+ {
+ if (utils.CRB("verbose")) lg.Info("Inizio caricamento vettore SubMode");
+ int totRighe = 0;
+ string fileName = string.Format(@"{0}\{1}", Application.StartupPath, utils.CRS("SubMode"));
+ string linea;
+ totRighe = File.ReadLines(fileName).Count();
+ // inizializzo
+ elencoSubMode.Clear();
+ // carica da file...
+ System.IO.StreamReader file = new System.IO.StreamReader(fileName);
+ // leggo 1 linea alla volta...
+ string[] valori;
+ while ((linea = file.ReadLine()) != null)
+ {
+ // SE non è un commento...
+ if (linea.Substring(0, 1) != "#")
+ {
+ valori = linea.Split(':');
+ elencoSubMode.Add(valori[0], valori[1]);
+ }
+ }
+ // chiudo file
+ file.Close();
+ if (utils.CRB("verbose")) lg.Info("Fine caricamento vettore SubMode");
}
///
/// Decodifica file allarme
@@ -942,7 +973,8 @@ namespace MTC_Sim
lg.Info("Starting adapter...");
// inizializzo vettori di utility..
loadAllarmi();
-
+ loadSubMode();
+
// Start the adapter lib with the port number in the text box
mAdapter.Port = port;
mAdapter.Start();
@@ -1008,7 +1040,7 @@ namespace MTC_Sim
{
// parte che eseguo SEMPRE: RECUPERO stato di tutti gli strobe/status e degli ack attualmente noti
getStrobeAndAckStatus();
-
+
// faccio refresh degli allarmi segnalati (da strobe su vettore locale)
refreshAlarmState(STRB_DW0, true);
// acquisizione degli status
@@ -1405,7 +1437,7 @@ namespace MTC_Sim
break;
}
}
-
+
///
/// recupera primo elemento codaM
///
diff --git a/MTC_Sim/MTC_Sim/App.config b/MTC_Sim/MTC_Sim/App.config
index 4658f05..4d07d7d 100644
--- a/MTC_Sim/MTC_Sim/App.config
+++ b/MTC_Sim/MTC_Sim/App.config
@@ -23,7 +23,8 @@
-
-
+
+
+
\ No newline at end of file
diff --git a/MTC_Sim/MTC_Sim/MTC_Sim.csproj b/MTC_Sim/MTC_Sim/MTC_Sim.csproj
index 48347c7..cb10d0c 100644
--- a/MTC_Sim/MTC_Sim/MTC_Sim.csproj
+++ b/MTC_Sim/MTC_Sim/MTC_Sim.csproj
@@ -88,6 +88,9 @@
SetupAdapter.cs
+
+ Always
+
Always
diff --git a/MTC_Sim/MTC_Sim/SubMode.txt b/MTC_Sim/MTC_Sim/SubMode.txt
new file mode 100644
index 0000000..1e4e70f
--- /dev/null
+++ b/MTC_Sim/MTC_Sim/SubMode.txt
@@ -0,0 +1,33 @@
+# Commenti con "#", elenco tipo codice:valore delle label dei SUB_MODE di FANUC
+0:DNC
+1:Blk/Blk
+2:BlkDel
+3:OpStop
+4:Teach
+5:Prg Test
+6:MLock
+7:DryRun
+8:Restart
+9:x1
+10:x10
+11:x100
+12:x1000
+13:
+14:
+15:
+16:
+17:
+18:
+19:
+20:Asse selezionato 1
+21:Asse selezionato 2
+22:Asse selezionato 3
+23:Asse selezionato 4
+24:Asse selezionato 5
+25:Asse selezionato 6
+26:Asse selezionato 7
+27:Asse selezionato 8
+28:Asse selezionato 9
+29:Asse selezionato 10
+30:Asse selezionato 11
+31:Asse selezionato 12
\ No newline at end of file