使用NModbus4 读取串口
1 public static void aget() 2 { 3 byte[] array = new byte[8]; 4 using (SerialPort port = new SerialPort("COM3")) 5 { 6 port.BaudRate = 9600; 7 port.DataBits = 8; 8 port.Parity = Parity.None; 9 port.StopBits = StopBits.One; 10 port.Open(); 11 array[0] = 253; 12 array[1] = 3; 13 array[2] = 1; 14 array[3] = 0; 15 array[4] = 0; 16 array[5] = 2; 17 array[6] = 209; 18 array[7] = 203; 19 port.Write(array, 0, 8); 20 port.ReadTimeout = 1000; 21 Thread.Sleep(800); 22 if (port.BytesToRead > 0) 23 { 24 25 IModbusSerialMaster master = ModbusSerialMaster.CreateRtu(port); 26 27 byte slaveId = 1; 28 ushort startAddress = 100; 29 ushort[] registers = new ushort[] { 1, 2, 3 }; 30 31 // write three registers 32 //ushort[] shorts = master.r(slaveId, 0, 80); 33 34 while (true) 35 { 36 ushort[] shorts2 = master.ReadHoldingRegisters(slaveId, 0, 5); 37 38 double sd = double.Parse(shorts2[0].ToString()); 39 double wd = double.Parse(shorts2[1].ToString()); 40 Console.Clear(); 41 Console.ForegroundColor = ConsoleColor.Green; 42 Console.WriteLine("湿度:" + sd / 10 + "%"); 43 44 Console.WriteLine("温度:" + wd / 10 + " ℃"); 45 Thread.Sleep(1000); 46 } 47 48 } 49 //port.BytesToRead 50 } 51 }
设备信息
精讯畅通的 高精度温湿度传感器RS485温湿度计 大棚防雨水工业级4-20ma
设备的数值


每一秒读去一次