Пример #1
0
 private void button11_Click(object sender, EventArgs e)
 { // Write button
     string[] regs  = textBox25.Text.Split(' ');
     ushort[] uregs = new ushort[regs.Length];
     for (int i = 0; i < regs.Length; i++)
     { // Парсинг значений регистров из строки
         uregs[i] = Convert.ToUInt16(regs[i]);
     }
     // Отправка запроса
     ModbusTcpMaster.WriteRegisters(byte.Parse(textBox27.Text), ushort.Parse(textBox26.Text), uregs);
     // Запрос и ответ
     byte[] response = new byte[Modbus.Data.DataStore.LastResponse.Length - 4];
     byte[] request  = new byte[Modbus.Data.DataStore.LastRequest.Length - 4];
     // Копирование тела запроса и ответа
     Array.Copy(Modbus.Data.DataStore.LastResponse, 6, response, 0, Modbus.Data.DataStore.LastResponse.Length - 6);
     Array.Copy(Modbus.Data.DataStore.LastRequest, 6, request, 0, Modbus.Data.DataStore.LastRequest.Length - 6);
     // Подсчет crc для запроса и ответа
     byte[] responseCrc = Modbus.Utility.ModbusUtility.CalculateCrc(response);
     byte[] requestCrc  = Modbus.Utility.ModbusUtility.CalculateCrc(request);
     // Запрос с crc
     byte[] responseWithCrc = new byte[Modbus.Data.DataStore.LastResponse.Length - 4];
     byte[] requestWithCrc  = new byte[Modbus.Data.DataStore.LastRequest.Length - 4];
     // Копирование запроса без crc
     Array.Copy(Modbus.Data.DataStore.LastResponse, 6, responseWithCrc, 0, Modbus.Data.DataStore.LastResponse.Length - 6);
     Array.Copy(Modbus.Data.DataStore.LastRequest, 6, requestWithCrc, 0, Modbus.Data.DataStore.LastRequest.Length - 6);
     // Добавление crc в строки запроса и ответа
     responseWithCrc[responseWithCrc.Length - 2] = responseCrc[0];
     responseWithCrc[responseWithCrc.Length - 1] = responseCrc[1];
     requestWithCrc[requestWithCrc.Length - 2]   = requestCrc[0];
     requestWithCrc[requestWithCrc.Length - 1]   = requestCrc[1];
     // Вывод в лог-бокс
     this.WriteOutput("[Network Mode]", responseWithCrc, requestWithCrc);
 }
Пример #2
0
 private void button14_Click(object sender, EventArgs e)
 { // Read button
     // Значение указанных регистров
     ushort[] registers = ModbusTcpMaster.ReadRegisters(byte.Parse(textBox24.Text), ushort.Parse(textBox23.Text), ushort.Parse(textBox22.Text));
     // Запрос и ответ
     byte[] response = new byte[Modbus.Data.DataStore.LastResponse.Length - 6];
     byte[] request  = new byte[Modbus.Data.DataStore.LastRequest.Length - 6];
     // Копирование тела запроса и ответа
     Array.Copy(Modbus.Data.DataStore.LastResponse, 6, response, 0, Modbus.Data.DataStore.LastResponse.Length - 6);
     Array.Copy(Modbus.Data.DataStore.LastRequest, 6, request, 0, Modbus.Data.DataStore.LastRequest.Length - 6);
     // Подсчет crc для запроса и ответа
     byte[] responseCrc = Modbus.Utility.ModbusUtility.CalculateCrc(response);
     byte[] requestCrc  = Modbus.Utility.ModbusUtility.CalculateCrc(request);
     // Запрос с crc
     byte[] responseWithCrc = new byte[Modbus.Data.DataStore.LastResponse.Length - 4];
     byte[] requestWithCrc  = new byte[Modbus.Data.DataStore.LastRequest.Length - 4];
     // Копирование запроса без crc
     Array.Copy(Modbus.Data.DataStore.LastResponse, 6, responseWithCrc, 0, Modbus.Data.DataStore.LastResponse.Length - 6);
     Array.Copy(Modbus.Data.DataStore.LastRequest, 6, requestWithCrc, 0, Modbus.Data.DataStore.LastRequest.Length - 6);
     // Добавление crc в строки запроса и ответа
     responseWithCrc[responseWithCrc.Length - 2] = responseCrc[0];
     responseWithCrc[responseWithCrc.Length - 1] = responseCrc[1];
     requestWithCrc[requestWithCrc.Length - 2]   = requestCrc[0];
     requestWithCrc[requestWithCrc.Length - 1]   = requestCrc[1];
     // Вывод в лог-бокс
     this.ReadOutput("[Network Mode]", responseWithCrc, requestWithCrc, registers);
 }
Пример #3
0
 private void button13_Click(object sender, EventArgs e)
 { // Открытие порта
     try
     {
         tcp = new TcpClient(comboBox7.Text, int.Parse(textBox21.Text));
     }
     catch (System.Net.Sockets.SocketException)
     {
         MessageBox.Show(this, "Не удалось подключиться", "ModbusTerm error");
         return;
     }
     if (tcp != null)
     {
         ModbusTcpMaster.connect(tcp);
         button13.Enabled = false;
         button12.Enabled = true;
         //groupBox8.Enabled = true;
         textBox22.Enabled = true;
         textBox23.Enabled = true;
         textBox24.Enabled = true;
         textBox25.Enabled = true;
         textBox26.Enabled = true;
         textBox27.Enabled = true;
         button11.Enabled  = true;
         button14.Enabled  = true;
         comboBox7.Enabled = false;
         textBox21.Enabled = false;
     }
 }
Пример #4
0
        private void button12_Click(object sender, EventArgs e)
        { // Закрытие порта
            button13.Enabled = true;
            button12.Enabled = false;
            //groupBox8.Enabled = false;
            textBox22.Enabled = false;
            textBox23.Enabled = false;
            textBox24.Enabled = false;
            textBox25.Enabled = false;
            textBox26.Enabled = false;
            textBox27.Enabled = false;
            button11.Enabled  = false;
            button14.Enabled  = false;

            comboBox7.Enabled = true;
            textBox21.Enabled = true;
            if (tcp != null)
            {
                ModbusTcpMaster.disconnect();
            }
        }