private void save_btn_Click(object sender, EventArgs e) { if (!SerialPort.IsOpen) { SerialPort.Open(); } //int addr = int.Parse(module_addr1.Text); //bool addr_check = false; //if (addr > 255 || addr < 0) //{ // status_line.Text = "Задан неверный адрес устройства"; // addr_check = false; //} //else // addr_check = true; //if( addr_check) //{ // tBuf[0] = (ushort)br_enum[Baudrate.SelectedIndex]; // tBuf[1] = (ushort)dbits_enum[Databits.SelectedIndex]; // tBuf[2] = (ushort)sbit_enum[Stopbit.SelectedIndex]; // tBuf[3] = (ushort)par_enum[Parity.SelectedIndex]; // tBuf[4] = (ushort)addr; // try // { // m_mbMaster.WriteMultipleRegisters(0, 0x64, tBuf); // } // catch (Exception ex) // { // this.Text = (string.IsNullOrEmpty(ex.Message)) ? "Form1" : ("Form1... Error: " + ex.Message); // } // Connect_check(); if (IsConnected) { try { ushort[] flag_save = new ushort[1]; flag_save[0] = 0x01; MbMaster.WriteMultipleRegisters((byte)1, 241, flag_save); } catch (Exception ex) { this.Text = (string.IsNullOrEmpty(ex.Message)) ? "Form1" : ("Form1... Error: " + ex.Message); } } //} }
public void cannot_read_more_than_123_input_registers() { var transport = A.Fake<IMbTransport>(); var mbmaster = new MbMaster(transport); var r = mbmaster.ReadInputRegisters(0, 1, 124); Assert.True(r.IsFailure); Assert.IsType<ArgumentOutOfRangeException>(r.Failure); }
public void cannot_read_more_than_2000_discrete_inputs() { var transport = A.Fake<IMbTransport>(); var mbmaster = new MbMaster(transport); var r = mbmaster.ReadDiscreteInputs(0, 1, 2001); Assert.True(r.IsFailure); Assert.IsType<ArgumentOutOfRangeException>(r.Failure); }
public void cannot_write_more_than_123_holding_registers() { var transport = A.Fake<IMbTransport>(); var mbmaster = new MbMaster(transport); var values = new ushort[124]; var r = mbmaster.WriteHoldingRegisters(0, 1, values); Assert.True(r.IsFailure); Assert.IsType<ArgumentOutOfRangeException>(r.Failure); }
public void cannot_read_0_holding_registers() { var transport = A.Fake<IMbTransport>(); var mbmaster = new MbMaster(transport); var r = mbmaster.ReadHoldingRegisters(0, 1, 0); Assert.True(r.IsFailure); Assert.IsType<ArgumentOutOfRangeException>(r.Failure); }
public void cannot_write_more_than_0x7b0_coils() { var transport = A.Fake<IMbTransport>(); var mbmaster = new MbMaster(transport); var values = new bool[0x7b1]; var r = mbmaster.WriteCoils(0, 1, values); Assert.True(r.IsFailure); Assert.IsType<ArgumentOutOfRangeException>(r.Failure); }
public void cannot_write_null_holding_registers() { var transport = A.Fake<IMbTransport>(); var mbmaster = new MbMaster(transport); List<ushort> values = null; var r = mbmaster.WriteHoldingRegisters(0, 1, values); Assert.True(r.IsFailure); Assert.IsType<ArgumentNullException>(r.Failure); }
public void cannot_write_null_file() { var transport = A.Fake<IMbTransport>(); var mbmaster = new MbMaster(transport); byte[] file = null; var r = mbmaster.WriteFile(0, 1, 244, 0, file); Assert.True(r.IsFailure); Assert.IsType<ArgumentNullException>(r.Failure); }
/// <summary> /// Set the boolean outputs /// </summary> /// <param name="boolOutput"></param> /// <param name="value"></param> public override void Set(BoolOutput boolOutput, bool value) { int id = 5; int bitAddress = boolOutput.Channel; lock (_lockObject) { if (MbMaster != null) { MbMaster.WriteSingleCoils(id, bitAddress, value); } } }
private void Baudrate_Search() { byte br_lng = (byte)(br_enum.Length - 1); byte br_tmp = 5; SerialPort.BaudRate = br_enum[0]; ushort[] rBuf = null; while (rBuf == null && br_lng >= br_tmp) // перебор по br { SerialPort.BaudRate = br_enum[br_tmp]; status_line.Text = " Поиск "; try { rBuf = MbMaster.ReadHoldingRegisters((byte)address, 90, 10); } catch { ++br_tmp; } if (rBuf != null) { if ((rBuf[0] == 0x0102) && (rBuf[9] == 0x01)) { status_line.Text = " Подключен "; baudrate_label.BackColor = Color.Green; baudrate_label.Text = "Set"; databits_label.BackColor = Color.Green; databits_label.Text = "Set"; parity_label.BackColor = Color.Green; parity_label.Text = "Set"; stopbit_label.BackColor = Color.Green; stopbit_label.Text = "Set"; addr_label.BackColor = Color.Green; addr_label.Text = "Set"; Baudrate.SelectedIndex = br_tmp; checkBox1.CheckState = CheckState.Checked; br_faund = true; mod_faund = true; } } } }
private void UpdateInput() { int id = 1; byte lenght = 0x00; if (_inputs != null) { try { lenght = Convert.ToByte(_inputs.Count); } catch (Exception ex) { ex.ToString(); return; } lock (_lockObject) { MbMaster.ReadCoils(id, 0, lenght); } } }
private void connect_btn_Click(object sender, EventArgs e) { Connect_check(); if (IsConnected) { try { ushort[] addr = MbMaster.ReadHoldingRegisters(0x00, 0x68, 1); if (addr != null) { module_addr1.Text = addr[0].ToString(); addr_label.BackColor = Color.Green; addr_label.Text = "Set"; } } catch (Exception ex) { this.Text = (string.IsNullOrEmpty(ex.Message)) ? "Form1" : ("Form1... Error: " + ex.Message); } } }
private void Search_Click(object sender, EventArgs e) { if (!SerialPort.IsOpen) { SerialPort.Open(); } Baudrate_Search(); if (!mod_faund) { Parity_Search(); } if (!mod_faund) { Stop_Bit_Search(); } if (!mod_faund) // ваще не нашли { status_line.Text = " Не найден"; } else { baudrate_label.BackColor = Color.Green; baudrate_label.Text = "Set"; databits_label.BackColor = Color.Green; databits_label.Text = "Set"; parity_label.BackColor = Color.Green; parity_label.Text = "Set"; stopbit_label.BackColor = Color.Green; stopbit_label.Text = "Set"; addr_label.BackColor = Color.Green; addr_label.Text = "Set"; ushort[] Addr = null; try { Addr = MbMaster.ReadHoldingRegisters(1, 0x68, 1); // читаем адрес и обновляем } catch (Exception ex) { status_line.Text = " Ошибка адреса"; } if (Addr != null) { mb_packet.dev_address = (ushort)Addr[0]; module_addr1.Text = Addr[0].ToString(); addr_label.BackColor = Color.Green; addr_label.Text = "Set"; } else { module_addr1.Text = "0"; } } }
private void Connect_check() { SerialPort.BaudRate = br_enum[Baudrate.SelectedIndex]; switch (Databits.SelectedIndex) { case 0: SerialPort.DataBits = 8; break; case 1: SerialPort.DataBits = 9; break; } switch (Parity.SelectedIndex) { case 0: SerialPort.Parity = System.IO.Ports.Parity.None; break; case 1: SerialPort.Parity = System.IO.Ports.Parity.Odd; break; case 2: SerialPort.Parity = System.IO.Ports.Parity.Even; break; default: SerialPort.Parity = System.IO.Ports.Parity.None; break; } switch (Stopbit.SelectedIndex) { case 0: SerialPort.StopBits = System.IO.Ports.StopBits.One; break; case 1: SerialPort.StopBits = System.IO.Ports.StopBits.Two; break; case 2: SerialPort.StopBits = System.IO.Ports.StopBits.OnePointFive; break; default: SerialPort.StopBits = System.IO.Ports.StopBits.None; break; } status_line.Text = null; checkBox1.CheckState = CheckState.Unchecked; try { if (!SerialPort.IsOpen) { SerialPort.Open(); } //Thread read = //m_mbMaster = ModbusSerialMaster.CreateRtu(COM1); //m_mbMaster.Transport.ReadTimeout = 1000; //m_state = WorkState.Update; ushort[] tBuf = MbMaster.ReadHoldingRegisters(1, 60000, 1); ushort[] t1Buf = MbMaster.ReadHoldingRegisters(1, 60001, tBuf[0]); char[] sdff = new char[tBuf[0]]; for (int i = 0; i < tBuf[0]; i++) { sdff[i] = (char)t1Buf[i]; } string t3 = new string(sdff); if (t3 == Module) { status_line.Text = " Подключен " + Module; IsConnected = true; checkBox1.CheckState = CheckState.Checked; baudrate_label.BackColor = Color.Green; baudrate_label.Text = "Set"; databits_label.BackColor = Color.Green; databits_label.Text = "Set"; parity_label.BackColor = Color.Green; parity_label.Text = "Set"; stopbit_label.BackColor = Color.Green; stopbit_label.Text = "Set"; addr_label.BackColor = Color.Green; addr_label.Text = "Set"; } } catch (Exception ex) { status_line.Text = " Ошибка подключения"; checkBox1.CheckState = CheckState.Unchecked; MessageBox.Show(ex.Message, "Ошибка !!!", MessageBoxButtons.OK, MessageBoxIcon.Error); } //if(!COM1.IsOpen) //{ // COM1.Open(); // m_mbMaster = ModbusSerialMaster.CreateRtu(COM1); //} // rxBuf = m_mbMaster.ReadHoldingRegisters(0, 20, 1); }