diff --git a/MTC_Sim/.vs/MTC_Sim/v14/.suo b/MTC_Sim/.vs/MTC_Sim/v14/.suo
index d663181..acdb068 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 30d62c7..a3be696 100644
--- a/MTC_Sim/MTC_Sim/AdapterFanuc.cs
+++ b/MTC_Sim/MTC_Sim/AdapterFanuc.cs
@@ -11,7 +11,7 @@ namespace MTC_Sim
{
protected FANUC FANUC_ref;
- protected StatusFlag CurrStatus;
+ protected StatusBitMap CurrStatus;
protected StFlag8 Status8;
protected StFlag32 Status32;
diff --git a/MTC_Sim/MTC_Sim/AdapterGeneric.cs b/MTC_Sim/MTC_Sim/AdapterGeneric.cs
index 2a62627..d891cb3 100644
--- a/MTC_Sim/MTC_Sim/AdapterGeneric.cs
+++ b/MTC_Sim/MTC_Sim/AdapterGeneric.cs
@@ -500,7 +500,7 @@ namespace MTC_Sim
///
/// Status flag
///
- public StatusFlag STATUS_FLAG = 0;
+ public StatusBitMap STATUS_FLAG = 0;
///
/// Variabili stato macchina principali
///
diff --git a/MTC_Sim/MTC_Sim/CMS_MachineSim.cs b/MTC_Sim/MTC_Sim/CMS_MachineSim.cs
index e0c86ac..6e0fad2 100644
--- a/MTC_Sim/MTC_Sim/CMS_MachineSim.cs
+++ b/MTC_Sim/MTC_Sim/CMS_MachineSim.cs
@@ -400,7 +400,7 @@ namespace MTC_Sim
SysErr_03.Checked = !SysErr_03.Checked;
break;
}
- agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusFlag.AL01;
+ agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusBitMap.AL01;
}
// toggle 1 allarme PLC nello 0.4% dei casi
if (rnd.Next(0, 1000) > 996)
@@ -418,7 +418,7 @@ namespace MTC_Sim
PlcErr_03.Checked = !PlcErr_03.Checked;
break;
}
- agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusFlag.AL02;
+ agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusBitMap.AL02;
}
// toggle 1 allarme CNC nello 0.3% dei casi
if (rnd.Next(0, 1000) > 997)
@@ -436,7 +436,7 @@ namespace MTC_Sim
CncErr_03.Checked = !CncErr_03.Checked;
break;
}
- agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusFlag.AL03;
+ agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusBitMap.AL03;
}
@@ -685,51 +685,33 @@ namespace MTC_Sim
{
prodData answ = new prodData();
// carico da form
- answ.ProgramName = program.Text;
- answ.ProgrRow = PROG_ROW_NUM.Text;
- answ.PartId = partID.Text;
answ.Operator = OPERATOR_ID.Text;
// variabili lette da + controlli
answ.Status = stop.Enabled;
answ.Power = Power;
answ.AccTime = AccTime;
- answ.EmrStop = estop.Checked;
- if (automatic.Checked) answ.RunMode = "AUTOMATIC";
- else if (mdi.Checked) answ.RunMode = "MANUAL_DATA_INPUT";
- else if (edit.Checked) answ.RunMode = "EDIT";
- else answ.RunMode = "MANUAL";
-
- if (running.Checked) answ.ExeMode = "ACTIVE";
- else if (feedhold.Checked) answ.ExeMode = "FEED_HOLD";
- else if (stopped.Checked) answ.ExeMode = "STOPPED";
- else if (ready.Checked) answ.ExeMode = "READY";
-
+ answ.EmrStop = estop.Checked;
answ.FuncMode = ((KeyValuePair)functionalMode.SelectedItem).Key;
answ.MessageCode = messageCode.Text;
answ.MessageText = messageText.Text;
- // pezzi
- answ.pzOk = pzOk;
- answ.pzKo = pzKo;
- answ.pzTot = pzOk + pzKo;
-
- // parto vuoto con statusFlag...
+ // parto vuoto con StatusBitMap...
agObj.STATUS_FLAG = 0;
// aggiorno status flag in base a valori...
- if (answ.EmrStop) agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusFlag.ESTOP;
- if (automatic.Checked) agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusFlag.RM_AUTO;
- else if (mdi.Checked) agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusFlag.RM_MDI;
- else if (edit.Checked) agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusFlag.RM_EDIT;
- else agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusFlag.RM_MANUAL;
+ if (answ.EmrStop) agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusBitMap.ESTOP;
+ if (automatic.Checked) agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusBitMap.RM_AUTO;
+ else if (mdi.Checked) agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusBitMap.RM_MDI;
+ else if (edit.Checked) agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusBitMap.RM_EDIT;
+ else agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusBitMap.RM_MANUAL;
- if (running.Checked) agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusFlag.EM_RUN;
- else if (feedhold.Checked) agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusFlag.EM_FEEDHOLD;
- else if (stopped.Checked) agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusFlag.EM_STOP;
- else if (ready.Checked) agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusFlag.EM_READY;
- if(answ.FuncMode!= "1") agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusFlag.HM;
+ if (running.Checked) agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusBitMap.EM_RUN;
+ else if (feedhold.Checked) agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusBitMap.EM_FEEDHOLD;
+ else if (stopped.Checked) agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusBitMap.EM_STOP;
+ else if (ready.Checked) agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusBitMap.EM_READY;
+ if(answ.FuncMode!= "1") agObj.STATUS_FLAG = agObj.STATUS_FLAG | StatusBitMap.HM;
// ritorno oggetto!
return answ;
@@ -851,6 +833,26 @@ namespace MTC_Sim
{
PathData answ = new PathData();
+ // modifiche dati portati da macchina a path...
+ answ.ProgramName = program.Text;
+ answ.ProgrRow = PROG_ROW_NUM.Text;
+ answ.PartId = partID.Text;
+ answ.PathType = "LAVORO";
+ // pezzi
+ answ.pzTot = pzOk + pzKo;
+
+ if (automatic.Checked) answ.RunMode = "AUTOMATIC";
+ else if (mdi.Checked) answ.RunMode = "MANUAL_DATA_INPUT";
+ else if (edit.Checked) answ.RunMode = "EDIT";
+ else answ.RunMode = "MANUAL";
+
+ if (running.Checked) answ.ExeMode = "ACTIVE";
+ else if (feedhold.Checked) answ.ExeMode = "FEED_HOLD";
+ else if (stopped.Checked) answ.ExeMode = "STOPPED";
+ else if (ready.Checked) answ.ExeMode = "READY";
+
+
+
answ.PathSel = cbPathSel.SelectedIndex;
// FEED/SPEED
answ.PathFeedrate = hsPathFeed.Value;
diff --git a/MTC_Sim/MTC_Sim/utils.cs b/MTC_Sim/MTC_Sim/utils.cs
index e5ccf00..537051b 100644
--- a/MTC_Sim/MTC_Sim/utils.cs
+++ b/MTC_Sim/MTC_Sim/utils.cs
@@ -69,7 +69,7 @@ namespace MTC_Sim
/// valore da testare
/// valore cercato, può essere un singolo valore o un insieme in modalità AND
///
- public static bool IsSetAll(StatusFlag value, StatusFlag flag)
+ public static bool IsSetAll(StatusBitMap value, StatusBitMap flag)
{
return ((value & flag) == flag);
}
@@ -79,7 +79,7 @@ namespace MTC_Sim
/// valore da testare
/// valore cercato, può essere un singolo valore o un insieme in modalità OR
///
- public static bool IsSetAny(StatusFlag value, StatusFlag flag)
+ public static bool IsSetAny(StatusBitMap value, StatusBitMap flag)
{
return ((value & flag) != 0);
}
@@ -186,8 +186,6 @@ namespace MTC_Sim
public string RunMode;
public string ExeMode;
public int pzTot;
- public int pzOk;
- public int pzKo;
public string ProgramName;
public string ProgrRow;
public string PartId;
@@ -351,10 +349,10 @@ namespace MTC_Sim
B31 = 1 << 31
}
///
- /// StatusFlag: contiene il set di semafori/flag x status + allarmi (x classi)
+ /// StatusBitMap: contiene il set di semafori/flag x status + allarmi (x classi)
///
[Flags]
- public enum StatusFlag : int
+ public enum StatusBitMap : int
{
NONE = 0,
ESTOP = 1 << 0,