Demo update s7net endianness in byte management
This commit is contained in:
@@ -651,10 +651,15 @@ namespace Siemens_S7_Test
|
||||
break;
|
||||
case "byte":
|
||||
default:
|
||||
for (int i = 0; i < memByteRead.Length; i++)
|
||||
// attenzione: byte sono GIRATI x cui DEVO invertire lettura pari/dispari...
|
||||
for (int i = 0; i < memByteRead.Length / 2; i++)
|
||||
{
|
||||
byteVal = Convert.ToString(memByteRead[i], 2).PadLeft(8, '0');
|
||||
contenuto += string.Format("B{0:000}: {1} | {2}{3}", i, byteVal, memByteRead[i], Environment.NewLine);
|
||||
// dispari
|
||||
byteVal = Convert.ToString(memByteRead[i * 2 + 1], 2).PadLeft(8, '0');
|
||||
contenuto += string.Format("B{0:000}: {1} | {2}{3}", i * 2, byteVal, memByteRead[i * 2 + 1], Environment.NewLine);
|
||||
// pari
|
||||
byteVal = Convert.ToString(memByteRead[i * 2], 2).PadLeft(8, '0');
|
||||
contenuto += string.Format("B{0:000}: {1} | {2}{3}", i * 2 + 1, byteVal, memByteRead[i * 2], Environment.NewLine);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -691,7 +696,9 @@ namespace Siemens_S7_Test
|
||||
byte.TryParse(txtWriteVal1.Text, out num2write);
|
||||
byte[] DB_Byte = new byte[1];
|
||||
DB_Byte[0] = num2write;
|
||||
currPLC.WriteBytes(DataType.DataBlock, memoria.DbNum, memoria.indiceMem, DB_Byte);
|
||||
// attenzione endianness! invertire byte...
|
||||
int fixIndex = memoria.indiceMem % 2 == 0 ? memoria.indiceMem + 1 : memoria.indiceMem - 1;
|
||||
currPLC.WriteBytes(DataType.DataBlock, memoria.DbNum, fixIndex, DB_Byte);
|
||||
titolo = string.Format("WRITE BLOCK MEM: {0}", txtWriteAddr1.Text);
|
||||
contenuto = "";
|
||||
contenuto += string.Format("DT: {0} | DbNum: {1} | indiceMem: {2} | num2write: {3}{4}{4}", DataType.DataBlock, memoria.DbNum, memoria.indiceMem, num2write, Environment.NewLine);
|
||||
|
||||
Reference in New Issue
Block a user