diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs
index 1a2df8f..c34dda4 100644
--- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs
+++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs
@@ -748,6 +748,16 @@ namespace MTC_Adapter
}
}
///
+ /// Quarta word di strobe da array flag completo
+ ///
+ public StFlag32 STRB_DW4
+ {
+ get
+ {
+ return (StFlag32)BitConverter.ToUInt32(Strobes, 16);
+ }
+ }
+ ///
/// Prima word di ACKnowledgment da array flag completo
///
public StFlag32 ACK_DW0
diff --git a/MTC_Adapter/MTC_Adapter/AdapterOsai.cs b/MTC_Adapter/MTC_Adapter/AdapterOsai.cs
index 50013a9..1534294 100644
--- a/MTC_Adapter/MTC_Adapter/AdapterOsai.cs
+++ b/MTC_Adapter/MTC_Adapter/AdapterOsai.cs
@@ -870,11 +870,11 @@ namespace MTC_Adapter
// verifico tipo processo path...
if (STRB_DW2.HasFlag(StFlag32.B03))
{
- vettPath[idxPath].mPathType.Value = "LAVORO";
+ pathType = "LAVORO";
}
else
{
- vettPath[idxPath].mPathType.Value = "ASSERV";
+ pathType = "ASSERV";
}
// switch su RUN mode...
@@ -942,7 +942,7 @@ namespace MTC_Adapter
// converto! e aggiungo allarmi sollevati al corretto controller allarmi...
if (STRB_DW3.HasFlag((StFlag32)Math.Pow(2, i)))
{
- SubMode += string.Format(" [P01_{0}]", elencoSubMode[i.ToString()]);
+ SubMode += string.Format(" [P{0:00}_{1}]", idxPath, elencoSubMode[i.ToString()]);
}
}
}
@@ -959,7 +959,7 @@ namespace MTC_Adapter
int idxPath = 1;
string pathType = "";
// verifico tipo processo path...
- if (STRB_DW2.HasFlag(StFlag32.B03))
+ if (STRB_DW2.HasFlag(StFlag32.B16))
{
vettPath[idxPath].mPathType.Value = "LAVORO";
}
@@ -970,54 +970,54 @@ namespace MTC_Adapter
// switch su RUN mode...
string runMode = "";
- if (STRB_DW2.HasFlag(StFlag32.B04))
+ if (STRB_DW2.HasFlag(StFlag32.B17))
{
runMode = "AUTOMATIC";
}
- else if (STRB_DW2.HasFlag(StFlag32.B05))
+ else if (STRB_DW2.HasFlag(StFlag32.B18))
{
runMode = "EDIT";
}
- else if (STRB_DW2.HasFlag(StFlag32.B06))
+ else if (STRB_DW2.HasFlag(StFlag32.B19))
{
runMode = "MANUAL_DATA_INPUT";
}
- else if (STRB_DW2.HasFlag(StFlag32.B07))
+ else if (STRB_DW2.HasFlag(StFlag32.B20))
{
runMode = "MANUAL";
}
- else if (STRB_DW2.HasFlag(StFlag32.B08))
+ else if (STRB_DW2.HasFlag(StFlag32.B21))
{
runMode = "SEMI_AUTO";
}
// switch su EXE mode...
string exeMode = "";
- if (STRB_DW2.HasFlag(StFlag32.B09))
+ if (STRB_DW2.HasFlag(StFlag32.B22))
{
exeMode = "ACTIVE";
}
- else if (STRB_DW2.HasFlag(StFlag32.B10))
+ else if (STRB_DW2.HasFlag(StFlag32.B23))
{
exeMode = "READY";
}
- else if (STRB_DW2.HasFlag(StFlag32.B11))
+ else if (STRB_DW2.HasFlag(StFlag32.B24))
{
exeMode = "STOPPED";
}
- else if (STRB_DW2.HasFlag(StFlag32.B12))
+ else if (STRB_DW2.HasFlag(StFlag32.B25))
{
exeMode = "FEED_HOLD";
}
- else if (STRB_DW2.HasFlag(StFlag32.B13))
+ else if (STRB_DW2.HasFlag(StFlag32.B26))
{
exeMode = "OPTIONAL_STOP";
}
- else if (STRB_DW2.HasFlag(StFlag32.B14))
+ else if (STRB_DW2.HasFlag(StFlag32.B27))
{
exeMode = "PROGRAM_STOPPED";
}
- else if (STRB_DW2.HasFlag(StFlag32.B15))
+ else if (STRB_DW2.HasFlag(StFlag32.B28))
{
exeMode = "PROGRAM_COMPLETED";
}
@@ -1025,15 +1025,15 @@ namespace MTC_Adapter
// inizializzo SEMPRE a vuoto...
string SubMode = "";
// verifico sulla STRB_DW3 i submode che POTREBBERO tutti sovrapposti...
- if (STRB_DW3 != StFlag32.NONE)
+ if (STRB_DW4 != StFlag32.NONE)
{
// 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)))
+ if (STRB_DW4.HasFlag((StFlag32)Math.Pow(2, i)))
{
- SubMode += string.Format(" [P01_{0}]", elencoSubMode[i.ToString()]);
+ SubMode += string.Format(" [P{0:00}_{1}]", idxPath, elencoSubMode[i.ToString()]);
}
}
}