IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Question débutant C#


Sujet :

C#

  1. #1
    Invité
    Invité(e)
    Par défaut Question débutant C#
    Bonjour, svp voici mon code pour récupere deux tableau de registres modbus ReadHoldingRegisters & ReadInputRegisters , sachant que j'ai 6 ip ou je dois se connecter pour avoir les 2 tableaux pour chaques ip

    mon probléme c'est au niveau affichage il me donne
    une seul valeur répéter deux fois pour chaque tableau de l'ip 1
    2 valeurs répter 2 fois pour chaqe tableau pour ip 2
    3 valeurs répter 3 fois pour chaqe tableau pour ip 3

    et ainsi de suite , alors que je veux afficher toutes les lignes des mes 2 tableaux un en dessus de un

    Que dois-je changer svp


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using EasyModbus;
     
    namespace ConsoleApp6
    {
        class Program
        {
            static void Main(string[] args)
            {
     
     
                var ipadresses = new List<string>();
     
                ipadresses.Add("194.176.3.14");
                ipadresses.Add("194.176.3.10");
                ipadresses.Add("194.176.3.15");
                ipadresses.Add("194.176.3.19");
                ipadresses.Add("194.176.3.20");
                ipadresses.Add("194.176.3.24");
     
                List<List<int>> valeurs = new List<List<int>>();
                foreach (string ip in ipadresses)
                {
                    ModbusClient modbusClient = new ModbusClient(ip, 502);
                    modbusClient.Connect();
                    int[] readHoldingRegisters = modbusClient.ReadHoldingRegisters(0, 8);
                    int[] readimputregistre = modbusClient.ReadInputRegisters(0, 4);
     
                    List<int> i = new List<int>();
     
                    foreach(int x in readHoldingRegisters)
                    {
                        i.Add(x);
                    }
                    valeurs.Add(i);
     
                    foreach (int y in readimputregistre)
                    {
                        i.Add(y);
                    }
                    valeurs.Add(i);
     
     
                    int j =  0;
                    foreach (List<int> registrevaleurs in valeurs)
                    {
                        Console.WriteLine("Value of imputregistre " + j + " est " + readimputregistre[j].ToString());
                        Console.WriteLine("Value of HoldingRegisters" + j + " est " + readHoldingRegisters[j].ToString());
                    }
                    j++;
     
                    modbusClient.Disconnect();
                }
     
                int valeur = valeurs[0][0];
                Console.WriteLine("La valeurs selectionnée est " + valeur);
     
     
                Console.Write("Press any key to continue . . . ");
                Console.ReadKey(true);
            }
        }
    }
    Dernière modification par Invité ; 11/03/2019 à 16h30.

  2. #2
    Membre émérite Avatar de Momoth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 318
    Par défaut
    Salut,

    Tu pourrai te créer une classe pour avoir tes tableaux au même niveau que ton adresse, voir même un dictionnaire avec tes adresses en clé, vu qu'à priori, elles sont uniques.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Momoth Voir le message
    Salut,

    Tu pourrai te créer une classe pour avoir tes tableaux au même niveau que ton adresse, voir même un dictionnaire avec tes adresses en clé, vu qu'à priori, elles sont uniques.
    y a moyen de me détailler un peu votre réponse puisque je suis loin du domaine infos et j'ai besoin de cette partie juste pour récupérer des registres modbus
    merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    j'ai mis à jour mon programme

  5. #5
    Membre émérite Avatar de Momoth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 318
    Par défaut
    Je suis assez réticent à donner des réponses toutes faites à des étudiants. Le but du forum est d'aider à progresser et du coup, on est d'accord pour te donner toutes les pistes pour que tu puisses t'en sortir. Après, si tu me dis que tu n'es pas dans le domaine du développement et que tu ne souhaites pas spécialement progresser dans le domaine, on pourrai t'aider oui. C'est pas la première fois que des gens se retrouve à faire du dev sans le vouloir.

    Pour la classe, ça pourrai donner quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class ModbusRegister
        {
            public string Adresse { get; set; }
            public List<int> HoldingRegister { get; set; }
            public List<int> InputRegister { get; set; }
        }
    Et a l'utilisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    var valeurs = new List<ModbusRegister>();
     
                foreach (string ip in ipadresses)
                {
                    ModbusClient modbusClient = new ModbusClient(ip, 502);
                    modbusClient.Connect();
     
                    var modbusRegister = new ModbusRegister();
     
                    modbusRegister.Adresse = ip;
                    modbusRegister.HoldingRegister = modbusClient.ReadHoldingRegisters(0, 8);
                    modbusRegister.InputRegister = modbusClient.ReadInputRegisters(0, 8);
     
                    valeurs.Add(modbusRegister);
     
                    modbusClient.Disconnect();
                }

  6. #6
    Invité
    Invité(e)
    Par défaut
    je vous remercie , c'est gentil

Discussions similaires

  1. Question débutant: Affiche vertical et horizontal
    Par Hijack54 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 09/02/2007, 13h24
  2. Réponses: 18
    Dernier message: 04/04/2006, 14h31
  3. question débutant xsl
    Par irnbru dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 30/03/2006, 18h20
  4. Question débutant ...
    Par Lypertrophie dans le forum Débuter
    Réponses: 4
    Dernier message: 25/10/2005, 19h00
  5. Réponses: 3
    Dernier message: 26/05/2004, 23h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo