Пример #1
0
        /// <summary>
        /// Конструктор объектов испытуемой батареии
        /// </summary>
        /// <param name="A01">Устройство измерения напряжения и тока батареии</param>
        /// <param name="A02">Устройство переключения реле заряда/разряда</param>
        /// <param name="aiVoltageCahnnelNo">Номер аналогового входа для измерения напряжения</param>
        /// <param name="aiCurrentCahnnelNo">Номер аналогового входа для измерения тока</param>
        /// <param name="doChargeRelayCahnnelNo">Номер дискретного выхода для переключения реле заряда</param>
        /// <param name="doDischargeRelayChannelNo">Номер дискретного выхода для переключения реле разряда</param>
        public BatterySet(BatteryType batteryType, Adam6017 A01, Adam6050 A02, int aiVoltageCahnnelNo, int aiCurrentCahnnelNo, int doChargeRelayCahnnelNo, int doDischargeRelayChannelNo)
        {
            this.A01 = A01;
            this.A02 = A02;

            A01.DataReady += OnDataReady;
            A02.DataReady += OnDataReady;

            TypeOfBattery = batteryType;

            VoltageChannelNo = aiVoltageCahnnelNo;
            CurrentCahnnelNo = aiCurrentCahnnelNo;


            ChargeRelayChannelNo    = doChargeRelayCahnnelNo;
            DischargeRelayChannelNo = doDischargeRelayChannelNo;
        }
Пример #2
0
        public BanchModel()
        {
            A01 = new Adam6017("A01", "Battery parameters measure", 1000);
            A02 = new Adam6050("A02", "Switch relay for charge and discharge", 1000);

            SingleBatterySet = new BatterySet(BatteryType.SingleBattery, A01, A02,
                                              (int)ChannelsNumbers.SingleBatteryVoltageMeassure,
                                              (int)ChannelsNumbers.SingleBatteryCurrentMeassure,
                                              (int)ChannelsNumbers.SingleBatteryChargeRelay,
                                              (int)ChannelsNumbers.SingleBatteryDischargeRelay);

            SingleBatterySet.VoltageCoverter = new LinearConverter(2.99, 0.0, "VCONV", "Конвертирование входного напряжения в напряжение батареии");
            SingleBatterySet.CurrentCoverter = new LinearConverter(0.605, 0.0, "CCONV", "Конвертирование входного напряжения в ток батареии");


            BatteryWithCNMSet = new BatterySet(BatteryType.BatteryUsingCNM, A01, A02,
                                               (int)ChannelsNumbers.BatteryWithCMNVoltageMeassure,
                                               (int)ChannelsNumbers.BatteryWithCMNCurrentMeassure,
                                               (int)ChannelsNumbers.BatteryWithCMNChargeRelay,
                                               (int)ChannelsNumbers.BatteryWithCMNDischargeRelay);

            BatteryWithCNMSet.VoltageCoverter = new LinearConverter(3.0, 0.0, "VCONV", "Конвертирование входного напряжения в напряжение батареии");
            BatteryWithCNMSet.CurrentCoverter = new LinearConverter(0.59, -0.0124, "CCONV", "Конвертирование входного напряжения в ток батареии");


            SingleBatterySet.StageStart  += ResultsModel.OnStageStarted;
            BatteryWithCNMSet.StageStart += ResultsModel.OnStageStarted;

            SingleBatterySet.StageComplete  += ResultsModel.OnStageCompleted;
            BatteryWithCNMSet.StageComplete += ResultsModel.OnStageCompleted;

            SingleBatterySet.StageTick  += ResultsModel.OnStageCompleted;
            BatteryWithCNMSet.StageTick += ResultsModel.OnStageCompleted;


            StopAnyWork = new ManualResetEvent(false);
        }