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); }
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); }
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; } }
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(); } }