Transfert de données entre onduleur et Pc sous programme C #

sinato
Messages postés
6
Date d'inscription
dimanche 29 mai 2016
Statut
Membre
Dernière intervention
31 mai 2016
- 29 mai 2016 à 16:07
VANDREAM
Messages postés
24
Date d'inscription
mercredi 14 août 2013
Statut
Membre
Dernière intervention
15 novembre 2016
- 7 nov. 2016 à 09:49
bonjour,
je suis débutante en c#, mes questions sont les suivantes:
1/" comment récupérer des données d'un onduleur kaco powador 3000 connecté à un Pc par port serie RS232 puis enregistrer ces données dans une base de donnée!!!!!!
2/afficher ces données en temps réel sous forme de graphe
merci
A voir également:

10 réponses

Whismeril
Messages postés
17680
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
16 août 2022
613
29 mai 2016 à 17:58
Bonjour,

si tu as cet onduleur, je suppose que tu as la doc, donc le protocole de dialogue.

Pour le port RS, il faut utiliser la classe SerialPort, y'a plein d'exemples sur le net, et pour le graphe, ça dépend si tu es en Winform ou en WPF.
0
sinato
Messages postés
6
Date d'inscription
dimanche 29 mai 2016
Statut
Membre
Dernière intervention
31 mai 2016

Modifié par BunoCS le 30/05/2016 à 09:46
merci pour votre réponse
concernant l'onduleur c'est un Powador 12.0 à 20.0 TL3 ,il est équipés d'un enregistreur de données intégré avec serveur web, d'un écran graphique pour l'affichage des données de fonctionnement, ainsi que d'un port USB pour la mise à jour des firmwares et l'extraction des données de journalisation.Par contre je veux extraire les données directement à travers le port RS232 et créer mon propre interface(interface de monitorin d'un systeme photovoltaique raccordé au réseau),j'ai réussi à me connecté à l'onduleur,ça me reste la partie de récupération de données ainsi leur affichage(j'utilise Winform)
voici mon programme :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;



namespace graphe
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void btnConn_Click(object sender, EventArgs e)
        {
            serialPort1.PortName = txtCOMPort.Text;
            serialPort1.BaudRate = Convert.ToInt32(txtBaudrate.Text);
            if (serialPort1.IsOpen) return;
            serialPort1.Open();     
        }

        private void btnDisConn_Click(object sender, EventArgs e)
        {
            if (serialPort1.IsOpen == false) return;
            serialPort1.Open();   
        }
    }
}


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ICI

Merci d'y penser dans tes prochains messages.
0
Whismeril
Messages postés
17680
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
16 août 2022
613
30 mai 2016 à 09:33
Ok, donc tu es en winform, pour le graphe il existe le contrôle Chart.
Il y a un tuto en VB.NET (facilement transposable) ici
http://plasserre.developpez.com/cours/chart/

Pour le port RS, les exemples pullulent sur le web, et on ne fera pas les recherches à ta place
0
sinato
Messages postés
6
Date d'inscription
dimanche 29 mai 2016
Statut
Membre
Dernière intervention
31 mai 2016

30 mai 2016 à 09:50
j'ai tellement d'exemples que je me trouve perdue entre eux.
Le Contôle chart n'est pas vraiment utile pour les graphe en temps réel,j'essaye maintenant la bibliothèque de ZedGraphe.
je vous remercie encore
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril
Messages postés
17680
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
16 août 2022
613
30 mai 2016 à 10:36
Le problème de ZedGraph est qu'il a été abandonné il y a quelques années.
Et qu'il n'était pas forcement plus approprié au temps réel.

Dans les deux cas, il va te falloir gérer tes données soit en glissement (comme un registre à décalage), soit en empilement et remettre à jour les courbes à chaque nouvelle donnée.

Pour le port série as tu au moins commencé par le plus évident, à savoir l'aide en ligne?
https://msdn.microsoft.com/fr-fr/library/system.io.ports.serialport(v=vs.110).aspx
0
sinato
Messages postés
6
Date d'inscription
dimanche 29 mai 2016
Statut
Membre
Dernière intervention
31 mai 2016

30 mai 2016 à 10:54
je commence par le port série car c'est mon soucis pour le moment,j'ai passé par ce lien et par d'autres aussi,j'espère que je pourrais récupérer mes données ainsi les sauvegarder dans une base de données .
pour le Zedgraphe,je vous remercie pour l'information,car lors de l’implémentation de mon programme j'ai rencontré quelques problèmes,dans ce cas je vais m'orienté vers d'autres solutions,
je suis limité par le temps c'est pour ça que je me suis orientée vers vous afin de trouver des solutions déjas prêtes.
cordialement
0
Whismeril
Messages postés
17680
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
16 août 2022
613
Modifié par Whismeril le 30/05/2016 à 13:04
Une solution toute prête pour ton cas particulier est peu probable.
Et nous sommes tous bénévoles, et pas là pour faire ton travail à ta place.
On te donne des pistes, tu essayes, si ça ne vas pas tu reviens, en présentant ce que tu as tenté (voir la correction de Buno du message ou tu as mis ton code) et explique ce qui se passe et ce que tu voudrais obtenir.

Donc quand tu dis : je voudrais me dialoguer avec un port rs, je te donne le nom de la classe, tu me réponds avec un code qui l'ouvre (même dans le bouton disconnect...), c'est un début, maintenant il faut poser une question et attendre la reponse, ou si l'appareil débite régulièrement attendre qu'il dise quelque chose, dans le lien msdn (le premier truc qu'il faut regarder face à une nouvelle classe) y a ce qu'il faut pour démarrer

Édit faute d'orthographe

Quand j'étais petit, la mer Morte n'était que malade.
George Burns
0
sinato
Messages postés
6
Date d'inscription
dimanche 29 mai 2016
Statut
Membre
Dernière intervention
31 mai 2016

30 mai 2016 à 12:32
excusez moi Mr "Whismeril" je ne suis pas du genre de personnes qui acceptent que d'autres font leurs travail,
je vous remercie pour votre aide et votre temps
excellente journée
0
Whismeril
Messages postés
17680
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
16 août 2022
613
30 mai 2016 à 20:59
tu as écrit
c'est pour ça que je me suis orientée vers vous afin de trouver des solutions déjas prêtes.

Cette phrase peut avoir plusieurs interprétations, en voici 3:
  • que l'un(e) d'entre nous écrive un code pour toi,
  • que l'un(e) d'entre nous cherche avec son moteur de recherche favori une solution toute prête qu'un(e) autre aura déjà écrite,
  • qu'un miracle te donnes un lien vers une solution toute prête qu'un(e) autre aura déjà écrite.


Y'a quand même une idée de ne pas faire tout le boulot toi même.
Alors oui ce site et bien d'autres proposent des tas de codes, mais il est assez rare de trouver exactement ce que l'on cherche, et le principe ici, conformément à la charte que tu as acceptée pour t'inscrire, et de promouvoir l'apprentissage et pas le tout cuit.
0
sinato
Messages postés
6
Date d'inscription
dimanche 29 mai 2016
Statut
Membre
Dernière intervention
31 mai 2016

31 mai 2016 à 00:05
je voulais une partie du code càd la méthode qui récupère les données du RS232 et je pense que j'ai bien précisé que je suis débutante en c# .j'ai réussi à trouver une solution " Dieu merci " et je vous remercie encore .
bon courage
0
VANDREAM
Messages postés
24
Date d'inscription
mercredi 14 août 2013
Statut
Membre
Dernière intervention
15 novembre 2016

7 nov. 2016 à 09:49
salut, je pense que tu peux diffuser ta solution pour faire bénéficier d'autre qui seront dans le besoin.
0