Ejemplo n.º 1
0
 private void but_open_Click(object sender, EventArgs e)
 {
     try
     {
         var PortName = cb_portNameSend.Text.ToString();
         var BaudRate = int.Parse(cb_baudRate.Text.ToString());
         var DataBits = int.Parse(txt_dataBit.Text.ToString());
         var StopBits = (StopBits)int.Parse(txt_stopBit.Text.ToString());
         var parity   = cb_parity.SelectedIndex == 0 ? Parity.None : (cb_parity.SelectedIndex == 1 ? Parity.Odd : Parity.Even);
         client?.Close();
         client = new ModbusAsciiClient(PortName, BaudRate, DataBits, StopBits, parity);
         var result = client.Open();
         if (result.IsSucceed)
         {
             but_open.Enabled        = false;
             cb_portNameSend.Enabled = false;
             but_read.Enabled        = true;
             but_write.Enabled       = true;
             but_open.Enabled        = false;
             but_close.Enabled       = true;
             but_sendData.Enabled    = true;
             AppendText("连接成功");
         }
         else
         {
             AppendText($"连接失败:{result.Err}");
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Ejemplo n.º 2
0
        private void but_open_Click(object sender, EventArgs e)
        {
            try
            {
                var PortName = cb_portNameSend.Text.ToString();
                var BaudRate = int.Parse(cb_baudRate.Text.ToString());
                var DataBits = int.Parse(txt_dataBit.Text.ToString());
                var StopBits = (StopBits)int.Parse(txt_stopBit.Text.ToString());
                var parity   = cb_parity.SelectedIndex == 0 ? Parity.None : (cb_parity.SelectedIndex == 1 ? Parity.Odd : Parity.Even);
                client?.Close();

                EndianFormat format = EndianFormat.ABCD;
                switch (comboBox1.SelectedIndex)
                {
                case 0:
                    format = EndianFormat.ABCD;
                    break;

                case 1:
                    format = EndianFormat.BADC;
                    break;

                case 2:
                    format = EndianFormat.CDAB;
                    break;

                case 3:
                    format = EndianFormat.DCBA;
                    break;
                }
                client = new ModbusAsciiClient(PortName, BaudRate, DataBits, StopBits, parity, format: format);
                var result = client.Open();
                if (result.IsSucceed)
                {
                    but_open.Enabled        = false;
                    cb_portNameSend.Enabled = false;
                    but_read.Enabled        = true;
                    but_write.Enabled       = true;
                    but_open.Enabled        = false;
                    but_close.Enabled       = true;
                    but_sendData.Enabled    = true;
                    AppendText("连接成功");
                    ControlEnabledFalse();
                }
                else
                {
                    AppendText($"连接失败:{result.Err}");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 byte stationNumber = 1;//站号
 public ModbusAsciiClient_tests()
 {
     client = new ModbusAsciiClient("COM3", 9600, 8, StopBits.One, Parity.None);
 }
Ejemplo n.º 4
0
        private void but_open_Click(object sender, EventArgs e)
        {
            try
            {
                var PortName = cb_portNameSend.Text.ToString();
                var BaudRate = int.Parse(cb_baudRate.Text.ToString());
                var DataBits = int.Parse(txt_dataBit.Text.ToString());
                var StopBits = (StopBits)int.Parse(txt_stopBit.Text.ToString());
                var parity   = cb_parity.SelectedIndex == 0 ? Parity.None : (cb_parity.SelectedIndex == 1 ? Parity.Odd : Parity.Even);
                client?.Close();

                EndianFormat format = EndianFormat.ABCD;
                switch (cmb_EndianFormat.SelectedIndex)
                {
                case 0:
                    format = EndianFormat.ABCD;
                    break;

                case 1:
                    format = EndianFormat.BADC;
                    break;

                case 2:
                    format = EndianFormat.CDAB;
                    break;

                case 3:
                    format = EndianFormat.DCBA;
                    break;
                }
                client = new ModbusAsciiClient(PortName, BaudRate, DataBits, StopBits, parity, format: format);
                var result = client.Open();
                if (result.IsSucceed)
                {
                    but_open.Enabled        = false;
                    cb_portNameSend.Enabled = false;
                    but_read.Enabled        = true;
                    but_brokenline.Enabled  = true;
                    but_write.Enabled       = true;
                    but_open.Enabled        = false;
                    but_close.Enabled       = true;
                    but_sendData.Enabled    = true;
                    AppendText($"连接成功\t\t\t\t耗时:{result.TimeConsuming}ms");
                    ControlEnabledFalse();
                }
                else
                {
                    AppendText($"连接失败:{result.Err}");
                }

                var config = ConnectionConfig.GetConfig();
                config.ModBusAscii_PortName     = PortName;
                config.ModBusAscii_BaudRate     = BaudRate.ToString();
                config.ModBusAscii_DataBits     = DataBits.ToString();
                config.ModBusAscii_StopBits     = StopBits;
                config.ModBusAscii_Parity       = parity;
                config.ModBusAscii_Value        = txt_value.Text;
                config.ModBusAscii_Address      = txt_address.Text;
                config.ModBusAscii_ShowPackage  = chb_show_package.Checked;
                config.ModBusAscii_EndianFormat = format;
                config.SaveConfig();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }