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);
            }
        }
Example #2
0
 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();
     }
 }
Example #3
0
        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;
            }
        }
Example #4
0
        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();
        }
Example #5
0
        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;
            }
        }
Example #6
0
 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;
 }
Example #7
0
        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();
            }
        }
Example #8
0
        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();
        }
Example #9
0
 /// <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();
        }
Example #11
0
 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.");
            }
        }
Example #13
0
 public void WhenIPressDisconnect()
 {
     mdbus.Disconnect();
 }