код чего именно вам нужен? Функции опроса? Или всего проекта?

функция опроса:
Код:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
                EFDbContext f = new EFDbContext();
                try
                {
                    serialPort1.Open();
                }
                catch { }
                var mbus = ModbusSerialMaster.CreateRtu(serialPort1);
                PLC p = new PLC();
                for (int i = 1; i < 8; i++)                    
                    try
                    {

                        p.Addres = i;
                        p.Date = DateTime.UtcNow;
                        try
                        {
                            mbus.ReadHoldingRegisters((byte)p.Addres, 1, 1).ToString();
                        }
                        catch { break; }
                        p.Tnv = mbus.ReadHoldingRegisters((byte)p.Addres, 24, 1)[0].ToString();
                        p.T1 = mbus.ReadHoldingRegisters((byte)p.Addres, 28, 1)[0].ToString();
                        p.Tgv = mbus.ReadHoldingRegisters((byte)p.Addres, 30, 1)[0].ToString();
                        p.OT_r = mbus.ReadHoldingRegisters((byte)p.Addres, 32, 1)[0].ToString();
                        p.GV_r = mbus.ReadHoldingRegisters((byte)p.Addres, 34, 1)[0].ToString();
                        p.Ts = mbus.ReadHoldingRegisters((byte)p.Addres, 86, 1)[0].ToString();
                        p.MaxTime = mbus.ReadHoldingRegisters((byte)p.Addres, 334, 1)[0].ToString();
                        p.Err_Code = mbus.ReadHoldingRegisters((byte)p.Addres, 333, 1)[0].ToString();
                        p.OT_percent = mbus.ReadHoldingRegisters((byte)p.Addres, 88, 1)[0].ToString();
                        p.VtempUst = mbus.ReadHoldingRegisters((byte)p.Addres, 82, 1)[0].ToString();
                        p.LimCloseOT = mbus.ReadHoldingRegisters((byte)p.Addres, 90, 1)[0].ToString();
                        p.LimOpenOT = mbus.ReadHoldingRegisters((byte)p.Addres, 92, 1)[0].ToString();
                        p.OTmission = mbus.ReadHoldingRegisters((byte)p.Addres, 94, 1)[0].ToString();
                        p.LimObrTemp = mbus.ReadHoldingRegisters((byte)p.Addres, 96, 1)[0].ToString();
                        p.TimeEn = mbus.ReadHoldingRegisters((byte)p.Addres, 335, 1)[0].ToString();
                        p.Gvenable = mbus.ReadHoldingRegisters((byte)p.Addres, 336, 1)[0].ToString();
                        p.GV_percent = mbus.ReadHoldingRegisters((byte)p.Addres, 98, 1)[0].ToString();
                        p.LimCloseGV = mbus.ReadHoldingRegisters((byte)p.Addres, 100, 1)[0].ToString();
                        p.LimOpenGV = mbus.ReadHoldingRegisters((byte)p.Addres, 102, 1)[0].ToString();
                        p.GVtempUst = mbus.ReadHoldingRegisters((byte)p.Addres, 104, 1)[0].ToString();
                        p.WinterTempUst = mbus.ReadHoldingRegisters((byte)p.Addres, 106, 1)[0].ToString();
                        p.SummerTempUst = mbus.ReadHoldingRegisters((byte)p.Addres, 108, 1)[0].ToString();
                        p.Seazon = mbus.ReadHoldingRegisters((byte)p.Addres, 337, 1)[0].ToString();
                        f.Plcs.Add(p);
                        f.SaveChanges();

                        MessageBox.Show("ПЛК №"+i+" успешно опрошен");
                    }
                    catch (Exception ee)
                    {
                         MessageBox.Show(ee.ToString());
                    }
                serialPort1.Close();            
           }