Modbus 通訊中針對暫存區作讀寫時必須將數值拆解成 4 個 Byte 後帶入訊息
這時使用 Union 可以簡單的轉換
using System.Runtime.InteropServices;
namespace ConsoleApplication1
{
class Program
{
[StructLayout(LayoutKind.Explicit)]
public struct Union
{
[FieldOffset(0)]
public byte byte1;
[FieldOffset(1)]
public byte byte2;
[FieldOffset(2)]
public byte byte3;
[FieldOffset(3)]
public byte byte4;
[FieldOffset(0)]
public Int32 Value;
}
static void Main(string[] args)
{
Union a = new Union();
a.byte1 = 0x00;
a.byte2 = 0x01;
a.byte3 = 0x00;
a.byte4 = 0x00;
Console.WriteLine("Union Value = " + a.Value.ToString());
}
}
}
沒有留言:
張貼留言