check presenza dati in lettura/log
This commit is contained in:
@@ -378,38 +378,45 @@ namespace IOB.WIN.FileExp
|
||||
outVal = "";
|
||||
// leggo!
|
||||
var currMem = currPLC.ReadBytes(DataType.DataBlock, memoria.DbNum, memoria.indiceMem, numByte);
|
||||
|
||||
// converto lettura secondo il tipo!
|
||||
switch (item.Value.DataType)
|
||||
// check dati restituiti...
|
||||
if (currMem.Length > 0)
|
||||
{
|
||||
case S7DataType.Bit:
|
||||
// uso memSize
|
||||
outVal = S7.Net.Types.Bit.FromByte(currMem[0], item.Value.bitAdr).ToString();
|
||||
break;
|
||||
case S7DataType.Byte:
|
||||
outVal = S7.Net.Types.Byte.FromByteArray(currMem.ToArray()).ToString();
|
||||
break;
|
||||
case S7DataType.Word:
|
||||
outVal = S7.Net.Types.Word.FromByteArray(currMem.ToArray()).ToString();
|
||||
break;
|
||||
case S7DataType.DWord:
|
||||
outVal = S7.Net.Types.DWord.FromByteArray(currMem.ToArray()).ToString();
|
||||
break;
|
||||
case S7DataType.Real:
|
||||
outVal = S7.Net.Types.Double.FromByteArray(currMem.ToArray()).ToString();
|
||||
break;
|
||||
case S7DataType.String:
|
||||
// prendo 2° valore (num max valori)
|
||||
int numChar = currMem[1];
|
||||
// poi prendo la stringa...
|
||||
for (int i = 2; i < numChar + 2; i++)
|
||||
{
|
||||
outVal += Char.ConvertFromUtf32(currMem[i]);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
outVal = BitConverter.ToString(currMem);
|
||||
break;
|
||||
// converto lettura secondo il tipo!
|
||||
switch (item.Value.DataType)
|
||||
{
|
||||
case S7DataType.Bit:
|
||||
// uso memSize
|
||||
outVal = S7.Net.Types.Bit.FromByte(currMem[0], item.Value.bitAdr).ToString();
|
||||
break;
|
||||
case S7DataType.Byte:
|
||||
outVal = S7.Net.Types.Byte.FromByteArray(currMem.ToArray()).ToString();
|
||||
break;
|
||||
case S7DataType.Word:
|
||||
outVal = S7.Net.Types.Word.FromByteArray(currMem.ToArray()).ToString();
|
||||
break;
|
||||
case S7DataType.DWord:
|
||||
outVal = S7.Net.Types.DWord.FromByteArray(currMem.ToArray()).ToString();
|
||||
break;
|
||||
case S7DataType.Real:
|
||||
outVal = S7.Net.Types.Double.FromByteArray(currMem.ToArray()).ToString();
|
||||
break;
|
||||
case S7DataType.String:
|
||||
// prendo 2° valore (num max valori)
|
||||
int numChar = currMem[1];
|
||||
// poi prendo la stringa...
|
||||
for (int i = 2; i < numChar + 2; i++)
|
||||
{
|
||||
outVal += Char.ConvertFromUtf32(currMem[i]);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
outVal = BitConverter.ToString(currMem);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lgError($"Errore: ricevuto 0 byte per DB{memoria.DbNum}.{memoria.indiceMem:000}");
|
||||
}
|
||||
newData.Add(outVal);
|
||||
}
|
||||
|
||||
@@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
|
||||
// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
|
||||
// usando l'asterisco '*' come illustrato di seguito:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.2.2007.34")]
|
||||
[assembly: AssemblyFileVersion("1.2.2007.34")]
|
||||
[assembly: AssemblyVersion("1.2.2007.35")]
|
||||
[assembly: AssemblyFileVersion("1.2.2007.35")]
|
||||
|
||||
Reference in New Issue
Block a user