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

10 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
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 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
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 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
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 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
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 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
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
Rejoignez-nous