diff --git a/MTC_Sim/MTC_Sim/AdapterESA.cs b/MTC_Sim/MTC_Sim/AdapterESA.cs
index 47fb0a5..42706fd 100644
--- a/MTC_Sim/MTC_Sim/AdapterESA.cs
+++ b/MTC_Sim/MTC_Sim/AdapterESA.cs
@@ -139,10 +139,22 @@ namespace MTC_Adapter
// 2 byte x speed da copiare...
byte[] tmpByte = new byte[2];
Buffer.BlockCopy(ncDevice.PLC_MemoryAreaV, 16, tmpByte, 0, 2);
- short v84 = BitConverter.ToInt16(tmpByte, 0);
+ short v84 = BitConverter.ToInt16(tmpByte, 0);
// lista allarmi PLC/CNC
- Byte v86 = ncDevice.PLC_MemoryAreaV[18]; // last alarm PLC
+#if false
+ Byte v86 = ncDevice.PLC_MemoryAreaV[18]; // last alarm PLC: monotono incrementale (รจ un contatore da avvio?) --> non mi serve!!!
+#endif
Byte v87 = ncDevice.PLC_MemoryAreaV[19]; // Allarme CN (almeno 1?!?)
+#if false
+ if (v86 != 0)
+ {
+ sb.AppendLine(string.Format("v86: {0}", v86));
+ }
+#endif
+ if (v87 != 0)
+ {
+ sb.AppendLine(string.Format("v87: {0}", v87));
+ }
// -------------------------------------------
// recupero dati Feed/Speed/override
@@ -157,7 +169,8 @@ namespace MTC_Adapter
sb.AppendLine(string.Format("SpeedRate: {0} rpm", SpeedRate));
// -------------------------------------------
- // check allarmi?!?
+ // copio allarmi in vettore generale AlarFlags (dove lo gestisce)...
+ Buffer.BlockCopy(ncDevice.PLC_MemAreaAlarm_tmp, 0, AlarmFlags, 0, ncDevice.PLC_MemAreaAlarm_tmp.Length);
parentForm.dataMonitor = sb.ToString();
}
diff --git a/MTC_Sim/SCMCncLib/thdNcEsaGvKvara.cs b/MTC_Sim/SCMCncLib/thdNcEsaGvKvara.cs
index 60ed6bc..ec9a412 100644
--- a/MTC_Sim/SCMCncLib/thdNcEsaGvKvara.cs
+++ b/MTC_Sim/SCMCncLib/thdNcEsaGvKvara.cs
@@ -33,8 +33,9 @@ namespace SCMCncLib
{
private UInt16 ReadNumber;
private UInt16 WriteNumber;
- private UInt16 VAreaNumber;
- private UInt16 ETKAreaNumber;
+ private UInt16 VAreaByteSize;
+ private UInt16 ETKAreaByteSize;
+ private UInt16 AlarmByteSize;
private string SysLink = "";
@@ -42,6 +43,7 @@ namespace SCMCncLib
private int iChannel;
private int iError;
+
private string StatusAddressName;
private TS_REG StatusAddress;
@@ -50,10 +52,10 @@ namespace SCMCncLib
private string VAreaAddressName;
private TS_REG VAreaAddress;
-
-
+
private string ETKAreaAddressName;
private TS_REG ETKAreaAddress;
+
///
/// Memorie a 4 byte (32 bit)
///
@@ -61,15 +63,29 @@ namespace SCMCncLib
public UInt32[] PLC_MemoryWrite;
///
- /// memorie a 4 byte (32 bit)
+ /// Area V: memoria temp di UINT di 4 byte (32 bit)
///
public UInt32[] PLC_MemAreaV_tmp;
+ ///
+ /// Area ETK: memoria temp di UINT di 4 byte (32 bit)
+ ///
public UInt32[] PLC_MemAreaETK_tmp;
///
- /// memorie a 1 byte (8 bit)
+ /// Area Allarmi: memoria temp di UINT di 4 byte (32 bit)
+ ///
+ public UInt32[] PLC_MemAreaAlarm_tmp;
+ ///
+ /// memorie a 1 byte (8 bit) x area V (status e valori vari)
///
public Byte[] PLC_MemoryAreaV;
+ ///
+ /// memorie a 1 byte (8 bit) x area ETK (status e valori vari)
+ ///
public Byte[] PLC_MemoryAreaETK;
+ ///
+ /// memorie a 1 byte (8 bit) x area Allarmi (V[300] - 256 bit)
+ ///
+ public Byte[] PLC_MemoryAreaAllarmi;
// esa constants
#region ESA_PLC_CONSTANTS
@@ -156,8 +172,9 @@ namespace SCMCncLib
//hack: metto fisso... OCCHIO son 4 byte x area SIM...
ReadNumber = 265;
WriteNumber = 265;
- VAreaNumber = 8;
- ETKAreaNumber = 8;
+ VAreaByteSize = 32;
+ ETKAreaByteSize = 32;
+ AlarmByteSize = 32;
#if false
// store read and write number of bytes
ReadNumber = Convert.ToUInt16(mwEngine.MemoryManager.NrByteToRead / 4);
@@ -171,19 +188,25 @@ namespace SCMCncLib
CommandsAddressName = fIni.ReadString("NC", "CommandsAddress", "SIMREAD[0]");
VAreaAddressName= fIni.ReadString("NC", "VAreaAddress", "SIMREAD[0]");
- // create read buffer
+ /**************************************************
+ * Creazione buffers letture memoria
+ **************************************************/
+
+ // create read buffer 32bit
PLC_MemoryRead = new UInt32[ReadNumber];
- // create write buffer
+ // create write buffer 32bit
PLC_MemoryWrite = new UInt32[WriteNumber];
- // create VArea buffer
- PLC_MemAreaV_tmp = new UInt32[VAreaNumber];
- // create ETKArea buffer
- PLC_MemAreaETK_tmp = new UInt32[ETKAreaNumber];
+ // creazione buffers a 32bit
+ PLC_MemAreaV_tmp = new UInt32[VAreaByteSize/4];
+ PLC_MemAreaETK_tmp = new UInt32[ETKAreaByteSize/4];
+ PLC_MemAreaAlarm_tmp = new UInt32[AlarmByteSize/4];
+
// creo array duali in bytes...
- PLC_MemoryAreaV = new Byte[4 * VAreaNumber];
- PLC_MemoryAreaETK = new Byte[4 * ETKAreaNumber];
-
+ PLC_MemoryAreaV = new Byte[VAreaByteSize];
+ PLC_MemoryAreaETK = new Byte[ETKAreaByteSize];
+ PLC_MemoryAreaAllarmi = new Byte[AlarmByteSize];
+
if (!Connect())
Disconnect();
@@ -322,28 +345,20 @@ namespace SCMCncLib
// lettura buffer dal CN
iError = read_regbuffer(ref StatusAddress, 0, ReadNumber, PLC_MemoryRead);
- // devo definire posizione memorie Vcome TS_REG
- iError = read_regbuffer(ref VAreaAddress, 68, 32, PLC_MemAreaV_tmp);
+ // leggo da posizione memorie Vcome TS_REG
+ iError = read_regbuffer(ref VAreaAddress, 68, VAreaByteSize, PLC_MemAreaV_tmp);
- //// !!!FARE!!! leggere ETK
- //iError = read_regbuffer(ref ETKAreaAddress, 68, 32, PLC_MemAreaETK_tmp);
+ // leggo da posizione memorie ETK TS_REG
+ iError = read_regbuffer(ref ETKAreaAddress, 68, ETKAreaByteSize, PLC_MemAreaETK_tmp);
+
+
+ // leggo da posizione memorie Vcome TS_REG
+ iError = read_regbuffer(ref VAreaAddress, 300, AlarmByteSize, PLC_MemAreaAlarm_tmp);
// copio in array a byte...
- Buffer.BlockCopy(PLC_MemAreaV_tmp, 0, PLC_MemoryAreaV, 0, 4 * VAreaNumber);
- Buffer.BlockCopy(PLC_MemAreaETK_tmp, 0, PLC_MemoryAreaETK, 0, 4 * ETKAreaNumber);
-
-
-#if false
- // se tutto ok leggo anche buffer V
- if (iError == 0)
- {
- iError = read_regbuffer(ref StatusAddress, 0, ReadNumber, PLC_MemoryAreaV);
- }
-#endif
-
- //System.Buffer.BlockCopy(PLC_MemoryRead, 0, mwEngine.MemoryManager.ReadMemory, 0, mwEngine.MemoryManager.NrByteToRead);
- // set flag to inform graphic engine that data have been read from device
- //mwEngine.BufferRead = true;
+ Buffer.BlockCopy(PLC_MemAreaV_tmp, 0, PLC_MemoryAreaV, 0, VAreaByteSize);
+ Buffer.BlockCopy(PLC_MemAreaETK_tmp, 0, PLC_MemoryAreaETK, 0, ETKAreaByteSize);
+ Buffer.BlockCopy(PLC_MemAreaAlarm_tmp, 0, PLC_MemoryAreaAllarmi, 0, AlarmByteSize);
}
///