Example #1
0
        public void ShowPLCPack(PLCDataPack plcdp)
        {
            switch (plcdp.ConnectionState)
            {
            case 0:
                COM_connect_stat_lbl.Text = StrNMess.COMDevConnectOK;
                break;

            default:
                COM_connect_stat_lbl.Text = StrNMess.COMDevConnectErr;
                break;
            }
            COM_pack_counter_lbl.Text = plcdp.CounterPack.ToString();
            Current_val_lbl.Text      = plcdp.CurrValue.ToString();
            if (plcdp.CurrValue != 0)
            {
                PrintHistogram(plcdp);
            }
            TimeSpan RepInterval = DateTime.Now - ReportDateTime;

            if (RepInterval.TotalMinutes >= ProgSett.ProgSettFlds.RepInterval)
            {
                DataBuff.GetReport(ReportDateTime);
                ReportDateTime = DateTime.Now;
                for (int j = 0; j < Summ_arr.Max(); j++)
                {
                    Summ_arr[j] = 0;
                }
            }
        }
Example #2
0
        private void ParsData(byte[] buff)
        {
            uint PackCount = (uint)(buff[9] * 256) + buff[10];
            byte Devstate  = buff[12];

            if ((PackCount != CurrentDP.CounterPack) || (Devstate != CurrentDP.ConnectionState))  // Если данные регистров изменились, то новый пакет
            {
                CurrentDP.CounterPack     = PackCount;
                CurrentDP.ConnectionState = Devstate;
                CurrentDP.CurrValue       = buff[11];
                PLCDataPack NewPLCdp = new PLCDataPack();
                NewPLCdp.CopyFrom(CurrentDP);
                GMF.Invoke(ExportData, new Object[] { NewPLCdp });
            }
        }
Example #3
0
        private void PrintHistogram(PLCDataPack plcdp)
        {
            for (int i = 0; i < ProgSett.ProgSettFlds.NHist; i++)
            {
                if ((plcdp.CurrValue >= X_arr[i]) && (plcdp.CurrValue < X_arr[i + 1]))
                {
                    Summ_arr[i]++;
                }
            }
            PLC_chart.Series[SeriesName].Points.Clear();
            int ValueCount = DataBuff.PLCPackBuff.Count;

            for (int i = 0; i < ProgSett.ProgSettFlds.NHist; i++)
            {
                PLC_chart.Series[SeriesName].Points.AddXY(X_arr[i], (Summ_arr[i] + 0.0) / ValueCount);
            }
        }
Example #4
0
 private void NewData(PLCDataPack dataPack)
 {
     DataBuff.PLCPackBuff.Add(dataPack);
     ShowPLCPack(dataPack);
 }
Example #5
0
 public void CopyFrom(PLCDataPack plcdp)
 {
     ConnectionState = plcdp.ConnectionState;
     CounterPack     = plcdp.CounterPack;
     CurrValue       = plcdp.CurrValue;
 }