Example #1
0
        //Lưu dữ liệu từ datagridview vào list
        private bool saveToJson()
        {
            if (validation())
            {
                Dictionary <string, DuLieuModel> ListDuLieuChoTungPLC = new Dictionary <string, DuLieuModel>();
                string a = dgvDataProtocol.Rows[0].Cells[0].Value.ToString();

                foreach (DataGridViewRow dr in dgvDataProtocol.Rows)
                {
                    if (dr.Index == dgvDataProtocol.Rows.Count - 1)
                    {
                        break;
                    }

                    DuLieuModel duLieuTemp = new DuLieuModel();
                    duLieuTemp.Ten     = dr.Cells[0].Value.ToString();
                    duLieuTemp.DiaChi  = dr.Cells[1].Value.ToString();
                    duLieuTemp.DonViDo = dr.Cells[2].Value.ToString();

                    ListDuLieuChoTungPLC.Add(duLieuTemp.Ten, duLieuTemp);
                }
                deviceDic[txtTenGiaoThuc.Text].ListDuLieuChoTungPLC = ListDuLieuChoTungPLC;
                WriteListToJson();
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #2
0
        //thêm dữ liệu protocol
        private void btnAddData_Click(object sender, EventArgs e)
        {
            if (validation())
            {
                Dictionary <string, DuLieuModel> ListDuLieuChoTungPLC = new Dictionary <string, DuLieuModel>();
                string a = dgvDataProtocol.Rows[0].Cells[0].Value.ToString();

                foreach (DataGridViewRow dr in dgvDataProtocol.Rows)
                {
                    if (dr.Index == dgvDataProtocol.Rows.Count - 1)
                    {
                        break;
                    }

                    DuLieuModel duLieuTemp = new DuLieuModel();
                    duLieuTemp.Ten     = dr.Cells[0].Value.ToString();
                    duLieuTemp.DiaChi  = dr.Cells[1].Value.ToString();
                    duLieuTemp.DonViDo = dr.Cells[2].Value.ToString();

                    ListDuLieuChoTungPLC.Add(duLieuTemp.Ten, duLieuTemp);
                }

                deviceDic[txtTenGiaoThuc.Text].ListDuLieuChoTungPLC = ListDuLieuChoTungPLC;
                WriteListToJson();
                MessageBox.Show("Lưu thành công !", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Example #3
0
 private void LuuTruDuLieuCOM(DuLieuModel duLieu, ThietBiModel thietBi, ArrayList DsDuLieuNhanDuoc)
 {
     try
     {
         if (duLieu.DiaChi.StartsWith("0"))
         {
             bool[] DsDuLieuCoils = DsDuLieuNhanDuoc[0] as bool[];
             if (DsDuLieuCoils != null)
             {
                 int diaChiCoils = Convert.ToInt32(duLieu.DiaChi) - thietBi.MinAddressCoils;
                 duLieu.GiaTri = DsDuLieuCoils[diaChiCoils].ToString();
             }
         }
         else if (duLieu.DiaChi.StartsWith("1"))
         {
             bool[] DsDuLieuInputs = DsDuLieuNhanDuoc[0] as bool[];
             if (DsDuLieuInputs != null)
             {
                 int diaChiInputs = Convert.ToInt32(duLieu.DiaChi) - 10000 - thietBi.MaxAddressInputs;
                 duLieu.GiaTri = DsDuLieuInputs[diaChiInputs].ToString();
             }
         }
         else if (duLieu.DiaChi.StartsWith("3"))
         {
             int[] DsDuLieuInputRegisters = DsDuLieuNhanDuoc[0] as int[];
             if (DsDuLieuInputRegisters != null)
             {
                 int diaChiInputRegisters = Convert.ToInt32(duLieu.DiaChi) - 30000 - thietBi.MinAddressInputRegisters;
                 duLieu.GiaTri = DsDuLieuInputRegisters[diaChiInputRegisters].ToString();
             }
         }
         else if (duLieu.DiaChi.StartsWith("4"))
         {
             int[] DsDuLieuHoldingRegisters = DsDuLieuNhanDuoc[0] as int[];
             if (DsDuLieuHoldingRegisters != null)
             {
                 int diaChiHoldingRegisters = Convert.ToInt32(duLieu.DiaChi) - 40000 - thietBi.MinAddressHoldingRegisters;
                 duLieu.GiaTri = DsDuLieuHoldingRegisters[diaChiHoldingRegisters].ToString();
             }
         }
         thietBi.TrangThaiTinHieu = TrangThaiKetNoi.Good;
     }
     catch (Exception ex)
     {
     }
     finally
     {
         duLieu.ThoiGianDocGiuLieu = DateTime.Now;
     }
 }
Example #4
0
 //lấy dữ liệu của các thiết bị
 private void getDataDevice(KeyValuePair <string, DeviceModel> deviceUnit, string filePath)
 {
     string[] output = new string[deviceUnit.Value.ListDuLieuChoTungPLC.Count];
     //doc tung dong trong list data cua 1 device
     for (int i = 0; i < deviceUnit.Value.ListDuLieuChoTungPLC.Count; i++)
     {
         DuLieuModel duLieuTemp   = deviceUnit.Value.ListDuLieuChoTungPLC.ElementAt(i).Value;
         string      giaTriDuLieu = "";
         try
         {
             if (Convert.ToInt32(duLieuTemp.DiaChi) <= 65536)
             {
                 bool[] readCoil = mobus.ReadCoils(Convert.ToInt32(duLieuTemp.DiaChi), 1);
                 giaTriDuLieu = readCoil[0].ToString();
             }
             else if (Convert.ToInt32(duLieuTemp.DiaChi) <= 165536 && Convert.ToInt32(duLieuTemp.DiaChi) >= 100001)
             {
                 bool[] discreteInput = mobus.ReadDiscreteInputs(Convert.ToInt32(duLieuTemp.DiaChi) - 100001, 1);
                 giaTriDuLieu = discreteInput[0].ToString();
             }
             else if (Convert.ToInt32(duLieuTemp.DiaChi) <= 365536 && Convert.ToInt32(duLieuTemp.DiaChi) >= 300001)
             {
                 int[] readRegister = mobus.ReadInputRegisters(Convert.ToInt32(duLieuTemp.DiaChi) - 300001, 1);
                 giaTriDuLieu = readRegister[0].ToString();
             }
             else if (Convert.ToInt32(duLieuTemp.DiaChi) <= 465536 && Convert.ToInt32(duLieuTemp.DiaChi) >= 400001)
             {
                 int[] readHoldingRegister = mobus.ReadHoldingRegisters(Convert.ToInt32(duLieuTemp.DiaChi) - 400001, 1);
                 giaTriDuLieu = readHoldingRegister[0].ToString();
             }
             duLieuTemp.GiaTri                = Convert.ToInt32(giaTriDuLieu);
             duLieuTemp.ThoiGianDocGiuLieu    = DateTime.Now;
             deviceUnit.Value.TrangThaiKetNoi = 1;
         }
         catch (Exception ex)
         {
         }
     }
 }
        public static Dictionary <string, DiemDoModel> LayDsDiemDoTuDgv(DataGridView dgvDataProtocol)
        {
            Dictionary <string, DiemDoModel> dsDiemDoGiamSat = new Dictionary <string, DiemDoModel>();

            foreach (DataGridViewRow dr in dgvDataProtocol.Rows)
            {
                if (dr.Index == dgvDataProtocol.Rows.Count - 1)
                {
                    break;
                }

                DuLieuModel duLieu = new DuLieuModel();
                duLieu.Ten     = dr.Cells[0].Value.ToString();
                duLieu.DiemDo  = dr.Cells[1].Value.ToString();
                duLieu.DiaChi  = dr.Cells[2].Value.ToString();
                duLieu.Scale   = dr.Cells[3].Value.ToString();
                duLieu.DonViDo = dr.Cells[4].Value.ToString();

                if (dsDiemDoGiamSat.ContainsKey(duLieu.DiemDo))
                {
                    dsDiemDoGiamSat[duLieu.DiemDo].DsDulieu.Add(duLieu.Ten, duLieu);
                }
                else
                {
                    dsDiemDoGiamSat.Add(
                        duLieu.DiemDo,
                        new DiemDoModel(
                            duLieu.DiemDo,
                            new Dictionary <string, DuLieuModel>()
                            )
                        );
                    dsDiemDoGiamSat[duLieu.DiemDo].DsDulieu.Add(duLieu.Ten, duLieu);
                }
            }
            return(dsDiemDoGiamSat);
        }