public Int64 Read_PLC_dint(string 設(shè)備類型, string 通訊方式, string 地址類型, int 地址)
//讀取dint
{
Int64 return_int64 = 0;
#region 判斷是否為ModbusTCP通訊方式
if (通訊方式.IndexOf("TCP") > -1)
{
int port = 0;
int read_address = 0;
string ip_address = "";
switch (設(shè)備類型)
{
case "匯川H5U系列":
port = 502;
switch (地址類型)
{
case "D":
read_address = 0;
break;
case "R":
read_address = 12288;
break;
}
break;
}
ip_address = 通訊方式.Substring(通訊方式.IndexOf("IP:") + 3, 通訊方式.Length - 通訊方式.IndexOf("IP:", 0) - 3);
client = new ModbusClient(ip_address, port);
read_address += 地址;
try
{
client.Connect();
int[] ints = client.ReadHoldingRegisters(read_address, 2);
byte[] bytes1 = BitConverter.GetBytes(ints[0]);
byte[] bytes2 = BitConverter.GetBytes(ints[1]);
byte[] bytes = new byte[8];
bytes[0] = bytes1[0];
bytes[1] = bytes1[1];
bytes[2] = bytes2[0];
bytes[3] = bytes2[1];
return_int64 = BitConverter.ToInt64(bytes, 0);
client.Disconnect();
}
catch { }
}
#endregion
return return_int64;
}