加減1生不息
自動化軟件工程師
級別: 略有小成
|
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; } |
|
---|---|---|
|