private void btnReadInputRegisters_Click(object sender, EventArgs e) { try { if (!modbusClient.Connected) { modbusClient.IPAddress = txtIpAddressInput.Text; modbusClient.Port = int.Parse(txtPortInput.Text); modbusClient.Connect(); } int[] serverResponse = modbusClient.ReadInputRegisters(int.Parse(txtStartingAddressInput.Text) - 1, int.Parse(txtNumberOfValuesInput.Text)); lsbAnswerFromServer.Items.Clear(); for (int i = 0; i < serverResponse.Length; i++) { lsbAnswerFromServer.Items.Add(serverResponse[i]); } } catch (Exception exc) { MessageBox.Show(exc.Message, "Exception Reading values from Server", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { modbusClient.Disconnect(); } }
static void Main(string[] args) { // int[] registers = EasyModbus.ModbusClient.ConvertStringToRegisters("hello"); // SerialPort serialport = new SerialPort("COM3"); /* serialport.PortName = "COM3"; * serialport.BaudRate = 9600; * serialport.Parity = Parity.None; * serialport.StopBits = StopBits.One; * byte[] buffer = new byte[50]; * serialport.Open(); * byte[] bufferout = new byte[50]; * int numberOfBytesRead = 0; * do * { * int quantity = serialport.Read(buffer, 0, 15); * Buffer.BlockCopy(buffer, 0, bufferout, numberOfBytesRead, quantity); * numberOfBytesRead = numberOfBytesRead + quantity; * } * while (numberOfBytesRead < 5); * for (int i = 0; i < 15; i++) * Console.WriteLine(bufferout[i].ToString()); * serialport.Write("ddddddddd");*/ //EasyModbus.ModbusClient modbusClient = new EasyModbus.ModbusClient("COM4"); EasyModbus.ModbusClient modbusClient = new EasyModbus.ModbusClient("127.0.0.1", 502); modbusClient.ConnectionTimeout = 5000; modbusClient.LogFileFilename = "logData.txt"; while (true) { modbusClient.Connect(); // Console.WriteLine("Execute FC5"); // modbusClient.WriteSingleCoil(0, true); // Console.WriteLine("Execute FC6"); // modbusClient.WriteSingleRegister(0, 1234); // Console.WriteLine("Execute FC15"); // modbusClient.WriteMultipleCoils(0, new bool[] { true, false, true, false, true, false, true }); //Console.WriteLine("Execute FC16"); //modbusClient.WriteMultipleRegisters(0, EasyModbus.ModbusClient.ConvertStringToRegisters("hallo2")); //modbusClient.Disconnect(); //System.Threading.Thread.Sleep(100); //modbusClient.Connect(); //Console.WriteLine("Execute FC3"); //Console.WriteLine("Value of Holding Register 1000: " + modbusClient.ReadHoldingRegisters(1000, 1)[0]); Console.WriteLine("Read and Publish Input Registers"); modbusClient.ReadInputRegisters(0, 10, "www.mqtt-dashboard.com"); modbusClient.ReadHoldingRegisters(0, 10, "www.mqtt-dashboard.com"); modbusClient.Disconnect(); System.Threading.Thread.Sleep(1000); } Console.ReadKey(); }
public void GetValues(ConnectionProperties connectionProperties) { modbusClient = connectionProperties.modbusClient; if (!modbusClient.Connected) { modbusClient.IPAddress = connectionProperties.ModbusTCPAddress; modbusClient.Port = connectionProperties.Port; modbusClient.Connect(); } foreach (FunctionProperties functionProperty in connectionProperties.FunctionPropertiesList) { switch (functionProperty.FunctionCode) { case FunctionCode.ReadCoils: functionProperty.values = modbusClient.ReadCoils(functionProperty.StartingAdress, functionProperty.Quantity); break; case FunctionCode.ReadDiscreteInputs: functionProperty.values = modbusClient.ReadDiscreteInputs(functionProperty.StartingAdress, functionProperty.Quantity); break; case FunctionCode.ReadHoldingRegisters: functionProperty.values = modbusClient.ReadHoldingRegisters(functionProperty.StartingAdress, functionProperty.Quantity); break; case FunctionCode.ReadInputRegisters: functionProperty.values = modbusClient.ReadInputRegisters(functionProperty.StartingAdress, functionProperty.Quantity); break; default: break; } } if (valuesChanged != null) { valuesChanged(this); } }
static void Main(string[] args) { // int[] registers = EasyModbus.ModbusClient.ConvertStringToRegisters("hello"); // SerialPort serialport = new SerialPort("COM3"); /* serialport.PortName = "COM3"; * serialport.BaudRate = 9600; * serialport.Parity = Parity.None; * serialport.StopBits = StopBits.One; * byte[] buffer = new byte[50]; * serialport.Open(); * byte[] bufferout = new byte[50]; * int numberOfBytesRead = 0; * do * { * int quantity = serialport.Read(buffer, 0, 15); * Buffer.BlockCopy(buffer, 0, bufferout, numberOfBytesRead, quantity); * numberOfBytesRead = numberOfBytesRead + quantity; * } * while (numberOfBytesRead < 5); * for (int i = 0; i < 15; i++) * Console.WriteLine(bufferout[i].ToString()); * serialport.Write("ddddddddd");*/ EasyModbus.ModbusClient modbusClient = new EasyModbus.ModbusClient("COM3"); modbusClient.Baudrate = 19200; //modbusClient.SerialPort = "COM3"; //EasyModbus.ModbusClient modbusClient = new EasyModbus.ModbusClient("127.0.0.1", 502); //modbusClient.LogFileFilename = "logfile.txt"; modbusClient.UnitIdentifier = 247; modbusClient.Connect(); while (true) { // Console.WriteLine("Execute FC5"); // modbusClient.WriteSingleCoil(0, true); // Console.WriteLine("Execute FC6"); // modbusClient.WriteSingleRegister(0, 1234); // Console.WriteLine("Execute FC15"); // modbusClient.WriteMultipleCoils(0, new bool[] { true, false, true, false, true, false, true }); //Console.WriteLine("Execute FC16"); //modbusClient.WriteMultipleRegisters(0, EasyModbus.ModbusClient.ConvertStringToRegisters("hallo2")); //modbusClient.Disconnect(); //System.Threading.Thread.Sleep(100); //modbusClient.Connect(); //Console.WriteLine("Execute FC3"); //Console.WriteLine("Value of Holding Register 1000: " + modbusClient.ReadHoldingRegisters(1000, 1)[0]); DateTime datetimeStart = DateTime.Now; for (int i = 1; i < 125; i++) { modbusClient.WriteSingleRegister(i, i); Console.WriteLine(modbusClient.ReadInputRegisters(i, 125)[0]); } DateTime datetimeEnd = DateTime.Now; Console.WriteLine("Time elapsed: " + (datetimeEnd - datetimeStart)); // System.Threading.Thread.Sleep(1000); } modbusClient.Disconnect(); Console.ReadKey(); }