public async Task 长连接主动开关() { client.Open(); short Number = 33; client.Write("4", Number, stationNumber); await Task.Delay(500); Assert.True(client.ReadInt16("4", stationNumber).Value == Number); Number = 34; client.Write("4", Number, stationNumber); await Task.Delay(500); Assert.True(client.ReadInt16("4", stationNumber).Value == Number); Number = 1; client.Write("12", Number, stationNumber); await Task.Delay(500); Assert.True(client.ReadInt16("12", stationNumber).Value == 1); Number = 0; client.Write("12", Number, stationNumber); await Task.Delay(500); Assert.True(client.ReadInt16("12", stationNumber).Value == 0); client.Close(); }
private void button2_Click(object sender, EventArgs e) { if (but_open.Text == "连接") { client?.Close(); client = new ModBusTcpClient(txt_ip.Text?.Trim(), int.Parse(txt_port.Text?.Trim())); if (client.Open()) { but_open.Text = "已连接"; button3.Enabled = true; button4.Enabled = true; toolTip1.SetToolTip(but_open, "点击关闭连接"); } else { MessageBox.Show("连接失败"); } } else { client?.Close(); but_open.Text = "连接"; toolTip1.SetToolTip(but_open, "点击打开连接"); } }
private void but_open_Click(object sender, EventArgs e) { try { client?.Close(); client = new ModBusTcpClient(txt_ip.Text?.Trim(), int.Parse(txt_port.Text?.Trim())); var result = client.Open(); if (result.IsSucceed) { but_read.Enabled = true; but_write.Enabled = true; but_open.Enabled = false; but_close.Enabled = true; but_sendData.Enabled = true; AppendText($"连接成功"); } else { MessageBox.Show($"连接失败:{result.Err}"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void but_sendData_Click(object sender, EventArgs e) { try { if (string.IsNullOrWhiteSpace(txt_dataPackage.Text)) { MessageBox.Show("请输入要发送的报文"); return; } var dataPackageString = txt_dataPackage.Text.Replace(" ", ""); if (dataPackageString.Length % 2 != 0) { MessageBox.Show("请输入正确的的报文"); return; } var dataPackage = DataConvert.StringToByteArray(txt_dataPackage.Text?.Trim(), false); var msg = client.SendPackage(dataPackage); AppendText($"[请求报文]{string.Join(" ", dataPackage.Select(t => t.ToString("X2")))}"); AppendText($"[响应报文]{string.Join(" ", msg.Select(t => t.ToString("X2")))}\r\n"); } catch (Exception ex) { MessageBox.Show(ex.Message); client.Close(); client.Open(); } }
public async Task 长连接主动开关() { client.Open(); short Number = 33; client.Write("4", Number, stationNumber); await Task.Delay(500); Assert.True(client.ReadInt16("4", stationNumber).Value == Number); Number = 34; client.Write("4", Number, stationNumber); await Task.Delay(500); Assert.True(client.ReadInt16("4", stationNumber).Value == Number); Number = 1; client.Write("12", Number, stationNumber); await Task.Delay(500); Assert.True(client.ReadInt16("12", stationNumber).Value == 1); Number = 0; client.Write("12", Number, stationNumber); await Task.Delay(500); Assert.True(client.ReadInt16("12", stationNumber).Value == 0); int numberInt32 = -12; client.Write("4", numberInt32, stationNumber); await Task.Delay(500); Assert.True(client.ReadInt32("4", stationNumber).Value == numberInt32); float numberFloat = 112; client.Write("4", numberFloat, stationNumber); await Task.Delay(500); Assert.True(client.ReadFloat("4", stationNumber).Value == numberFloat); double numberDouble = 32; client.Write("4", numberDouble, stationNumber); await Task.Delay(500); Assert.True(client.ReadDouble("4", stationNumber).Value == numberDouble); client.Close(); }
private void but_open_Click(object sender, EventArgs e) { client?.Close(); client = new ModBusTcpClient(txt_ip.Text?.Trim(), int.Parse(txt_port.Text?.Trim())); if (client.Open()) { button3.Enabled = true; button4.Enabled = true; but_open.Enabled = false; button5.Enabled = true; txt_content.AppendText($"[{DateTime.Now.ToLongTimeString()}]连接成功\r\n"); } else { MessageBox.Show("连接失败"); } }