none
Zedgraph dynamique RRS feed

  • Question

  • Bonjour,

    j´utilise Zedgraph à partir de fichier TXT. Ca marche très bien.

     Mais j´aimerai utiliser Zedgraph "online" c´est-à-dire afficher la valeur  actuelle d´une sortie automate sur le graph. Mon problème, c´est comment gérer l´entrée de la variable.

    quelqu´un peut-il m´aider?

    jeudi 22 octobre 2020 13:52

Réponses

Toutes les réponses

  • Bonjour,

    Pouvez-vous préciser de quel type est votre projet , par exemple,  WinForms ou Asp.net?
    D'où vous allez récupérer les valeurs? Est-ce que vous allez utiliser à nouveau un fichier texte ou une base de données ou un site web, etc. ?


    Cordialement,
    Nina

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    vendredi 23 octobre 2020 09:15
    Modérateur
  • Bonjour,

    J´ai un automate programmable Beckhoff. J´ai écrit un petit programme C# WinForm pour lire des variables issues de l´automate pour les stocker dans un fichier TXT. Cette partie fonctionne bien.

    J´ai un autre programme C# WinForm qui lit le fichier TXT et affiche les courbes avec Zedgraph. Cette partie fonctionne aussi.

    Maintenant, je veux visualiser à l´écran en temps réel l´évolution du signal. Je pense que l´entrée de la variable devrait se faire en direct => Point (X,Y) !!!!!

    Je ne suis pas expert en C#. 

    Merci pour votre aide

    cordialement

    Charly

    partie du programme que j´utilise pour lire le fichier TXT

     

     PointPairList list0 = new PointPairList();  // Ua
            PointPairList list1 = new PointPairList();  // Ib
            PointPairList list2 = new PointPairList();  // IL
            PointPairList list3 = new PointPairList();  // If
            PointPairList list4 = new PointPairList();  // Ug
            PointPairList list5 = new PointPairList();  // Nr
            PointPairList list6 = new PointPairList();  // Error
            PointPairList list7 = new PointPairList();  // Time
                              
            public Form1()
            {
                InitializeComponent();
    
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
                this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
                label1.Text = "0";
                label4.Text = " no file open";
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="path"></param>
            /// <param name="colums"></param>
    
    
            private void GetReadColums(string path, int colums)
            {
                colums = 7;  // de 0......6
                string FN = Path.Combine(Application.StartupPath, path);
                //StreamReaderinstanz für die Datei erzeugen
                StreamReader sr = null;
                {
                    sr = new StreamReader(FN, Encoding.Default);
    
                    while (sr.Peek() > -1)
                    {
                        Zeile = sr.ReadLine();
                        CountZeile = CountZeile + 1;
                        felder = Zeile.Split(new char[] { ';' });  // hier den seperatortyp eingeben
    
                        {
                            list0.Add(CountZeile, Int32.Parse(felder[0]));
                            list1.Add(CountZeile, Int32.Parse(felder[1]));
                            list2.Add(CountZeile, Int32.Parse(felder[2]));
                            list3.Add(CountZeile, Int32.Parse(felder[3]));
                            list4.Add(CountZeile, Int32.Parse(felder[4]));
                            list5.Add(CountZeile, Int32.Parse(felder[5]));
                            list6.Add(CountZeile, Int32.Parse(felder[6]));
                            list7.Add(CountZeile, Int32.Parse(felder[7]));
    
                            // ici insertion d´autres courbes
    
                        }
                        label1.Text = Convert.ToString(CountZeile);
    
                    }
    
                    sr.Close();
    
                }
    
            }


    vendredi 23 octobre 2020 12:53
  • Bonjour Charly,

    La méthode AxisChange() doit être effectuée à chaque fois que vous ajoutez ou modifiez les données. Cela indique à ZedGraph d'aller de l'avant et de recalculer toutes les plages d'axes. J'ai trouvé l'article suivant qui peut-être sera utile - A flexible charting library for .NET . Consultez aussi la réponse de Larry et l'exemple qu'il a donné dans ce thread - Zedgraph plotting real time graph with fast input rate.

    Cordialement,

    Nina




    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    mardi 27 octobre 2020 13:06
    Modérateur
  • Bonjour Nina,

    ...... fonctionne, merci beaucoup

    bonne journée

    Charly

    mercredi 28 octobre 2020 09:23