예제 #1
0
        private void btnWriteSingleRegister_Click(object sender, EventArgs e)
        {
            try
            {
                if (!modbusClient.Connected)
                {
                    modbusClient.IPAddress = txtIpAddressInput.Text;
                    modbusClient.Port      = int.Parse(txtPortInput.Text);
                    modbusClient.Connect();
                }

                int registerToSend = 0;

                registerToSend = int.Parse(lsbAnswerFromServer.Items[0].ToString());


                modbusClient.WriteSingleRegister(int.Parse(txtStartingAddressInput.Text) - 1, registerToSend);
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message, "Exception writing values to Server", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                modbusClient.Disconnect();
            }
        }
예제 #2
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();
        }
예제 #3
0
 public static void sendSingleRegister(int reg, int value)
 {
     try
     {
         PLC.WriteSingleRegister(reg, value);
     }
     catch (EasyModbus.Exceptions.ModbusException e)
     {
         GVL.readexc = true;
         MessageBox.Show("Error Write Command : " + e.Message, "Info", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     catch (System.NullReferenceException e)
     {
         GVL.readexc = true;
         MessageBox.Show("Error Write Command : " + e.Message, "Info", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
예제 #4
0
        private void btnWriteSingleRegister_Click(object sender, EventArgs e)
        {
            try
            {
                if (!modbusClient.Connected)
                {
                    button3_Click(null, null);
                }

                int registerToSend = 0;

                registerToSend = int.Parse(lsbWriteToServer.Items[0].ToString());


                modbusClient.WriteSingleRegister(int.Parse(txtStartingAddressOutput.Text) - 1, registerToSend);
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message, "Exception writing values to Server", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }