Beispiel #1
0
        //--------------------------------------------------------------
        // METHODE AFFICHAGE DES COURBES
        //--------------------------------------------------------------

        public void Graphique()
        {
            //------------------------Courbe Vitesse-----------------------------//


            mGrapheVitesse = ZDGrapheVitesse.GraphPane;                 // créer un volet


            mGrapheVitesse.Title.Text = "Courbe de la vitesse";         // titre


            mGrapheVitesse.YAxis.Title.Text = "Vitesse";                // titres des axes
            mGrapheVitesse.XAxis.Title.Text = "temps";



            GraphVitesse = mGrapheVitesse.AddCurve(null, ListEchantillonVitesse, Color.Blue, SymbolType.None);      //ajouter les points sur le volet



            ZDGrapheVitesse.AxisChange();                       //dessin
            ZDGrapheVitesse.Refresh();


            //------------------------Courbe Tension-----------------------------//



            mGrapheTension = ZDGrapheTension.GraphPane;              // créer un volet

            mGrapheTension.Title.Text = "Courbe de la tension";      // titre


            mGrapheTension.YAxis.Title.Text = "tension";                // titres des axes
            mGrapheTension.XAxis.Title.Text = "temps";



            GraphTension = mGrapheTension.AddCurve(null, ListEchantillonTension, Color.Red, SymbolType.None);           //ajouter les points sur le volet



            ZDGrapheTension.AxisChange();               //dessin
            ZDGrapheTension.Refresh();
        }
Beispiel #2
0
        //--------------------------------------------------------------
        // METHODE APPEL DU TIMER10
        //--------------------------------------------------------------


        private void Timer10_Tick(object sender, EventArgs e)
        {
            i++;                                //incrémentation à chaque coup de timer pour affichage des courbes

            //--------------------------------------------------------------
            // AFFICHER TEMPS QUE METS LE MOTEUR POUR ARRIVER A LA CONSIGNE
            //--------------------------------------------------------------
            if ((Convert.ToDouble(lblvitesse.Text) < Convert.ToDouble(lblconsigne.Text) * 0.95) || (Convert.ToDouble(lblvitesse.Text) > (Convert.ToDouble(lblconsigne.Text) * 1.05)))
            {
                lbltps.Text = Convert.ToString(100 * i);
            }

            //--------------------------------------------------------------

            if (bchoix == true)                                       //si la commande provient de App (BTN GO)
            {
                dCVitesse = System.Convert.ToDouble(txtVitesse.Text); //récupération de la vitesse textbox
                string dC = txtCharge.Text;                           //récupération de la charge textbox
                dC      = dC.Replace('.', ',');                       //remplacement du . en ,
                dCharge = double.Parse(dC);                           //passage en double
            }
            else                                                      //Si la commande provient du client
            {
                dCVitesse = mServer.dS;                               //on récupère les valeurs demandées par le client
                dCharge   = mServer.dT;
            }


            mcommande.Commande(dCVitesse, dCharge);                             //on appelle la fonction Commande qui s'occupe de la régulation
            this.lbltension.Text = mcommande.sTension;                          //on affiche en tps réel
            this.lblvitesse.Text = mcommande.svitesse;
            this.lblcourant.Text = mcommande.scourant;


            ListEchantillonVitesse.Add(i, mcommande.dVitesse[mcommande.i]);         //on rajoute les points sur les courbe vitesse et tension
            ListEchantillonTension.Add(i, mcommande.dtension[mcommande.i]);
            ival = true;                                                            //nécessaire pour Reset()

            ZDGrapheVitesse.Refresh();                                              //on rafraîchit  les courbes(+ évite le lag)
            ZDGrapheVitesse.AxisChange();
            ZDGrapheTension.Refresh();
            ZDGrapheTension.AxisChange();
        }
Beispiel #3
0
        //--------------------------------------------------------------
        // METHODE RESET
        //--------------------------------------------------------------

        public void Reset()
        {
            if (ival == true)                                                                   //si on est déjà passé dans Timer10, donc qu'il y a une courbe affichée( car effacer une courbe inexistante met une erreur)
            {
                ZDGrapheVitesse.GraphPane.CurveList[0].Clear();                                 //on efface les courbes
                ZDGrapheTension.GraphPane.CurveList[0].Clear();
            }

            ZDGrapheVitesse.Refresh();
            ZDGrapheTension.Refresh();
            timer10.Stop();                                                                     //Arrêt des deux timers
            timerMoteur.Stop();
            mcommande.dtension[0] = 24;                                                         //remise à 0 des tableaux dans CCommande
            mcommande.dtension[1] = 24;
            mcommande.dVitesse[0] = 0;
            mcommande.dVitesse[1] = 0;
            lbltps.Text           = lblvitesse.Text = lbltension.Text = lblcourant.Text = lblconsigne.Text = lblcharge.Text = "0"; //remise à 0 des labels


            i = 0;                                                                          // repartir de 0 sur l'abscisse du temps des courbes
        }