private void button3_Click(object sender, EventArgs e) { try { if (modbusClient.Connected) { modbusClient.Disconnect(); } if (cbbSelctionModbus.SelectedIndex == 0) { modbusClient.IPAddress = txtIpAddressInput.Text; modbusClient.Port = int.Parse(txtPortInput.Text); modbusClient.SerialPort = null; //modbusClient.receiveDataChanged += new EasyModbus.ModbusClient.ReceiveDataChanged(UpdateReceiveData); //modbusClient.sendDataChanged += new EasyModbus.ModbusClient.SendDataChanged(UpdateSendData); //modbusClient.connectedChanged += new EasyModbus.ModbusClient.ConnectedChanged(UpdateConnectedChanged); modbusClient.Connect(); } if (cbbSelctionModbus.SelectedIndex == 1) { modbusClient.SerialPort = cbbSelectComPort.SelectedItem.ToString(); modbusClient.UnitIdentifier = byte.Parse(txtSlaveAddressInput.Text); modbusClient.Baudrate = int.Parse(txtBaudrate.Text); if (cbbParity.SelectedIndex == 0) { modbusClient.Parity = System.IO.Ports.Parity.Even; } if (cbbParity.SelectedIndex == 1) { modbusClient.Parity = System.IO.Ports.Parity.Odd; } if (cbbParity.SelectedIndex == 2) { modbusClient.Parity = System.IO.Ports.Parity.None; } if (cbbStopbits.SelectedIndex == 0) { modbusClient.StopBits = System.IO.Ports.StopBits.One; } if (cbbStopbits.SelectedIndex == 1) { modbusClient.StopBits = System.IO.Ports.StopBits.OnePointFive; } if (cbbStopbits.SelectedIndex == 2) { modbusClient.StopBits = System.IO.Ports.StopBits.Two; } modbusClient.Connect(); } } catch (Exception exc) { MessageBox.Show(exc.Message, "Unable to connect to Server", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
void BtnReadCoilsClick(object sender, EventArgs e) { try { if (!modbusClient.Connected) { modbusClient.IPAddress = txtIpAddressInput.Text; modbusClient.Port = int.Parse(txtPortInput.Text); modbusClient.Connect(); } bool[] serverResponse = modbusClient.ReadCoils(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(); } }
private void cbbSelctionModbus_SelectedIndexChanged(object sender, EventArgs e) { if (modbusClient.Connected) { modbusClient.Disconnect(); } if (cbbSelctionModbus.SelectedIndex == 0) { txtIpAddress.Visible = true; txtIpAddressInput.Visible = true; txtPort.Visible = true; txtPortInput.Visible = true; txtCOMPort.Visible = false; cbbSelectComPort.Visible = false; txtSlaveAddress.Visible = false; txtSlaveAddressInput.Visible = false; lblBaudrate.Visible = false; lblParity.Visible = false; lblStopbits.Visible = false; txtBaudrate.Visible = false; cbbParity.Visible = false; cbbStopbits.Visible = false; } if (cbbSelctionModbus.SelectedIndex == 1) { cbbSelectComPort.SelectedIndex = 0; cbbParity.SelectedIndex = 0; cbbStopbits.SelectedIndex = 0; if (cbbSelectComPort.SelectedText == "") { cbbSelectComPort.SelectedItem.ToString(); } txtIpAddress.Visible = false; txtIpAddressInput.Visible = false; txtPort.Visible = false; txtPortInput.Visible = false; txtCOMPort.Visible = true; cbbSelectComPort.Visible = true; txtSlaveAddress.Visible = true; txtSlaveAddressInput.Visible = true; lblBaudrate.Visible = true; lblParity.Visible = true; lblStopbits.Visible = true; txtBaudrate.Visible = true; cbbParity.Visible = true; cbbStopbits.Visible = true; } }
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.SerialPort = "COM3"; //EasyModbus.ModbusClient modbusClient = new EasyModbus.ModbusClient("127.0.0.1", 502); modbusClient.ConnectionTimeout = 5000; modbusClient.LogFileFilename = "test.txt"; modbusClient.UnitIdentifier = 0xF7; 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]); Console.WriteLine("Read and Publish Input Registers"); modbusClient.WriteSingleRegister(60, 1234); int[] holdingRegister = modbusClient.ReadHoldingRegisters(60, 2); //Console.WriteLine(holdingRegister[0]); // System.Threading.Thread.Sleep(1000); } modbusClient.Disconnect(); Console.ReadKey(); }
public static void openConn() { string IP = GVL.settings[0]; int Port = int.Parse(GVL.settings[1]); try { if (!PLC.Connected) { PLC.Connect(IP, Port); } } catch (EasyModbus.Exceptions.ConnectionException e) { PLC.Disconnect(); GVL.readexc = true; } catch (System.Net.Sockets.SocketException e) { PLC.Disconnect(); GVL.readexc = true; } }
private void DisconnectFromModbus() { try { modbusClient.Disconnect(); } catch (Exception E) { log.Warn($"A exception has occured while diconnection from the modbus TCP. {E.Message}", E); } ConnectionEstablished = false; }
private void btnReadHoldingRegisters_Click(object sender, EventArgs e) { try { if (!modbusClient.Connected) { button3_Click(null, null); } int startAdd = int.Parse(txtStartingAddressInput.Text); int noOfValues = int.Parse(txtNumberOfValuesInput.Text); int[] serverResponse = modbusClient.ReadHoldingRegisters(startAdd - 1, noOfValues); 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) { Console.WriteLine("Hello World!"); EasyModbus.ModbusClient modbusClient = new EasyModbus.ModbusClient(); modbusClient.Connect("127.0.0.1", 502); bool[] response = modbusClient.ReadDiscreteInputs(0, 2); modbusClient.Disconnect(); Console.WriteLine("Value of Discrete Input #1: " + response[0].ToString()); Console.WriteLine("Value of Discrete Input #2: " + response[1].ToString()); Console.ReadKey(); }
/// <summary> /// Close connection. /// </summary> public void Disconnect() { try { if (modbusClient.Connected) { modbusClient.Disconnect(); } } catch (Exception ex) { IoC.Communication.Log += $"{DateTime.Now.ToLocalTime():MM/dd/yy HH:mm:ss.fff}: Exception occurred. {ex.Message}.\n"; } }
private void BTN_Connect_Click(object sender, EventArgs e) { try { if (modbusClient.Connected) { modbusClient.Disconnect(); } modbusClient.IPAddress = TB_IP.Text; modbusClient.Port = 502; modbusClient.SerialPort = null; modbusClient.ConnectionTimeout = 10000; modbusClient.Connect(); } catch (Exception exc) { MessageBox.Show(exc.Message, "Unable to connect to Server", MessageBoxButtons.OK, MessageBoxIcon.Error); } RefreshGUI(); }
private void button4_Click(object sender, EventArgs e) { modbusClient.Disconnect(); }
private void ConnectPLC(object item) { try { List <string[]> informations = excelInfors.FindAll(x => x[1] != "" && x[2] != "" && x[3] != ""); float Temperature = 0; float Humidity = 0; foreach (string[] infor in informations) { float value = 0; var tagName = infor[0]; var ip = (string)infor[1]; var port = Int32.Parse(infor[2]); EasyModbus.ModbusClient modbusClient = new EasyModbus.ModbusClient(ip, port); try { ////Increase the Connection Timeout to 5 seconds modbusClient.ConnectionTimeout = 5000; modbusClient.Connect(); var address = Int32.Parse(infor[3]); var length = Int32.Parse(infor[4]); int[] holdingRegister = modbusClient.ReadHoldingRegisters(address - 1, length); var rawValue = holdingRegister[0]; value = Convert.ToSingle(Decimal.Divide(rawValue, 10)); } catch (Exception ex) { } try { using (SqlConnection connection = new SqlConnection(conString)) using (SqlCommand command = new SqlCommand("Insert into [ADVANTECH WISE-4220] (Time, TagName, Value, MachineIRAI, SensorIRAI) values(@date,@tagName,@value,@irai,@sensorIrai)", connection)) { command.Parameters.AddWithValue("date", System.DateTime.Now); command.Parameters.AddWithValue("tagName", tagName); command.Parameters.AddWithValue("value", value); command.Parameters.AddWithValue("irai", infor[5]); command.Parameters.AddWithValue("sensorIrai", infor[6]); connection.Open(); command.ExecuteNonQuery(); connection.Close(); } } catch (Exception ex) { } if (tagName == "Temperature") { Temperature = value; } if (tagName == "Humidity") { Humidity = value; } PropertyState matrix = (PropertyState)FindPredefinedNode(new NodeId(infor[0], NamespaceIndex), typeof(PropertyState)); matrix.Value = value; matrix.ClearChangeMasks(SystemContext, true); modbusClient.Disconnect(); } var data = new Record(); data.Temperature = Temperature; data.Humidity = Humidity; MongoHelper.Asset.UpdatePrimaryValue("0990-MY.0027101.0000000001-#TS-00058200.0000000005.0002", data); } catch (Exception e) { Utils.Trace(e, "Unexpected error during simulation."); } }
public void WhenIPressDisconnect() { mdbus.Disconnect(); }