Ok recupero e decodifica stati!!!

This commit is contained in:
Samuele E. Locatelli
2016-05-31 16:45:07 +02:00
parent 7bc5d39620
commit 1e95b70f3a
2 changed files with 53 additions and 38 deletions
+25 -33
View File
@@ -152,7 +152,7 @@ namespace MTC_Adapter
// switch su run mode...
/*
* MODO_X V[74].W
* MODO_X V[74].W --> byte (6)
* 0 = Modo NESSUNO 
* 1 = Modo MANUALE 
* 2 = Modo AUTOMATICO 
@@ -162,43 +162,35 @@ namespace MTC_Adapter
* 6 = Modo RAP 
* 7 = Modo TES
* */
uint Modo_X = ncDevice.PLC_MemoryAreaV[6];
uint Modo_X = ncDevice.PLC_MemoryAreaV_bytes[6];
switch (Modo_X)
{
case 1:
vettPath[idxPath].mPathRunMode.Value = "EDIT";
break;
case 2:
vettPath[idxPath].mPathRunMode.Value = "AUTO";
break;
case 3:
vettPath[idxPath].mPathRunMode.Value = "REF";
break;
case 4:
vettPath[idxPath].mPathRunMode.Value = "MDI";
break;
case 5:
vettPath[idxPath].mPathRunMode.Value = "SEMIAUTO"; // JOG/JOGINC/HANDLE ?
break;
case 6:
vettPath[idxPath].mPathRunMode.Value = "RAP"; // JOG/JOGINC/HANDLE ?
break;
case 7:
vettPath[idxPath].mPathRunMode.Value = "TES"; // JOG/JOGINC/HANDLE ?
break;
case 0:
default:
vettPath[idxPath].mPathRunMode.Value = "ND"; // JOG/JOGINC/HANDLE ?
break;
}
#if false
if (STRB_DW2.HasFlag(StFlag32.B01))
{
vettPath[idxPath].mPathRunMode.Value = "AUTO";
}
else if (STRB_DW2.HasFlag(StFlag32.B02))
{
vettPath[idxPath].mPathRunMode.Value = "EDIT";
}
else if (STRB_DW2.HasFlag(StFlag32.B03))
{
vettPath[idxPath].mPathRunMode.Value = "MDI";
}
else if (STRB_DW2.HasFlag(StFlag32.B04))
{
vettPath[idxPath].mPathRunMode.Value = "REF";
}
else if (STRB_DW2.HasFlag(StFlag32.B05))
{
vettPath[idxPath].mPathRunMode.Value = "JOG";
}
else if (STRB_DW2.HasFlag(StFlag32.B07))
{
vettPath[idxPath].mPathRunMode.Value = "JOGINC";
}
else if (STRB_DW2.HasFlag(StFlag32.B07))
{
vettPath[idxPath].mPathRunMode.Value = "HANDLE";
}
#endif
}
public override void getUnOp()
+28 -5
View File
@@ -50,12 +50,22 @@ namespace SCMCncLib
private string VAreaAddressName;
private TS_REG VAreaAddress;
/// <summary>
/// Memorie a 4 byte (32 bit)
/// </summary>
public UInt32[] PLC_MemoryRead;
public UInt32[] PLC_MemoryWrite;
/// <summary>
/// memorie a 4 byte (32 bit)
/// </summary>
public UInt32[] PLC_MemoryAreaV;
public UInt32[] PLC_MemoryAreaETK;
/// <summary>
/// memorie a 1 byte (8 bit)
/// </summary>
public Byte[] PLC_MemoryAreaV_bytes;
public Byte[] PLC_MemoryAreaETK_bytes;
// esa constants
#region ESA_PLC_CONSTANTS
@@ -145,10 +155,11 @@ namespace SCMCncLib
// !!! 2016.05.25 inutile forse? riguarda l'engine 3d...
//hack: metto fisso...
//hack: metto fisso... OCCHIO son 4 byte...
ReadNumber = 265;
WriteNumber = 265;
WriteNumber = 265;
VAreaNumber = 8;
ETKAreaNumber = 8;
#if false
// store read and write number of bytes
ReadNumber = Convert.ToUInt16(mwEngine.MemoryManager.NrByteToRead / 4);
@@ -168,9 +179,13 @@ namespace SCMCncLib
PLC_MemoryWrite = new UInt32[WriteNumber];
// create VArea buffer
PLC_MemoryAreaV = new UInt32[32];
PLC_MemoryAreaV = new UInt32[VAreaNumber];
// create ETKArea buffer
PLC_MemoryAreaETK = new UInt32[32];
PLC_MemoryAreaETK = new UInt32[ETKAreaNumber];
// creo array duali in bytes...
PLC_MemoryAreaV_bytes = new Byte[4 * VAreaNumber];
PLC_MemoryAreaETK_bytes = new Byte[4 * ETKAreaNumber];
if (!Connect())
Disconnect();
@@ -311,6 +326,14 @@ namespace SCMCncLib
// devo definire posizione memorie Vcome TS_REG
iError = read_regbuffer(ref VAreaAddress, 68, 32, PLC_MemoryAreaV);
// !!!FARE!!! leggere ETK
// copio in array a byte...
Buffer.BlockCopy(PLC_MemoryAreaV, 0, PLC_MemoryAreaV_bytes, 0, 4 * VAreaNumber);
Buffer.BlockCopy(PLC_MemoryAreaETK, 0, PLC_MemoryAreaETK_bytes, 0, 4 * ETKAreaNumber);
#if false
// se tutto ok leggo anche buffer V
if (iError == 0)