Ejemplo n.º 1
0
        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);
                }
            }

            //}
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 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);
 }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
 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);
 }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        /// <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);
                }
            }
        }
Ejemplo n.º 10
0
        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;
                    }
                }
            }
        }
Ejemplo n.º 11
0
        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);
                }
            }
        }
Ejemplo n.º 12
0
        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);
                }
            }
        }
Ejemplo n.º 13
0
        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";
                }
            }
        }
Ejemplo n.º 14
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);
        }