Lecture ecriture du port ethernet

Résolu
inconnu2nulpar Messages postés 75 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 16 janvier 2007 - 30 mars 2006 à 19:32
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 - 11 mai 2006 à 17:20
Slt ts le monde est il possible de lire/ecrire le port ethernet? si oui vous pouvez m'expliquer?

37 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
1 avril 2006 à 02:06
As-tu au moins rechercher le mot OPC sur le site ?
Commence par là, ça me semble une évidence.
S'il y a des choses que tu ne comprends pas, isole le problème et reviens le poser si besoin.
3
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
1 avril 2006 à 02:28
Salut inconnu2nulpar, salut Jack,

je suis d'accord avec Jack pour le mot clé OPC qui saura guider ta recherche.

Par contre, juste pour préciser qu'éventuellement jeter un oeil ici :

http://www.opcfoundation.org/Downloads.aspx (il faudra t'inscrire pour télécharger les docs gratuites, et payer pour avoir les spécifications)

et, si la boule de Jack (de cristal, la boule) a raison et que le serveur existe déjà (ce que je te souhaites de tout coeur inconnu2nulpar) ici :

http://integ-objects.com/opcshopping.php (le DA Explorer, c'est un client OPC gratuit pour tester le serveur)

cela peut t'aider à manger de l'OPC.

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
3
inconnu2nulpar Messages postés 75 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 16 janvier 2007
1 avril 2006 à 12:47
Non c bien un serveur qu'il me faut, mon sujet de stage est que je doit récuperer des info sur un automate, cependant j'ai en ma posséssion 1 PC et l'automate en question ( toyopuc marque japonaise ) donc il faut bien que je fasse un logiciel qui gére le protocole de communication non? pour ensuite créer un logiciel client qui gére ces donnée. dites moi si je me trompe svp mais c comme ça que je vois les chose.

PS: ici j'ai trouver que des code source de opc client, sur les opc serveur je n'est rien trouver qui m'explique le fonctionnement.
3
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
1 avril 2006 à 15:12
Salut inconnu2nulpar,

bon, j'en prends bonne note. tu es dans le pire des cas (non, je plaisante :) ).

J'ai eu, dans des conditions bien particulières, à écrire un serveur OPC. Pour être honnête, je n'y ai implémenté qu'une partie de la spécification OPC DA, et mon serveur n'avait qu'un client, parce que la totalité, en VB6, c'est quand même difficilement jouable (rationnellement parlant, on n'a pas toujours des mois devant nous!).
Quoiqu'il en soit, la facilité, c'est qu'au bout, je n'avais pas un automate (mais une installation de CDC Wago, et un framework logiciel de mesure).

Inscris toi à l'OPC Foundation, et télécharge ce document : OPC DA Auto 2.02 Specification.pdf.
Il est assez synthétique. Tu y verras que son modèle objet n'est pas trop complexe, et est implémentable en VB, que le système d'abonnement des clients est aussi facilement réalisable en VB. Là où cela se gâte, c'est au niveau de la des échanges, la qualification des échangesgestion multi-clients.

Mais pour des échanges simples, tu peux y arriver.

Enfin, pour un client OPC, il n'y a vraiment rien de compliqué. C'est comme poser des ListView sur un Form, y accéder en code, et en recevoir des évènements (la structure a juste quelques niveaux de collections de plus, et encore).

Mais, quand même, avant de partir sur ce développement, tu devrais être sûr qu'ils ne fournissent pas un serveur OPC gratuit (parfois, ils en ont, mais pas forcément pour VB, ce qui reste contournable), je sais bien que les sites en japonais, c'est dur, mais fais-toi aider par l'importateur.
Essayes aussi (si tu en as les moyens), de faire effectuer un devis par un spécialiste (il existe des sociétés spécialisées et certifiées dans la réalisation de serveur OPC, si tu leur fournis des spécifications). Evidemment, cette solution n'est le fait qu'on te demande de réaliser un serveur est incontournabled'utiliser le serveur avec de nombreux autres clients (et éventuellement des superviseurs du commerce).

Courage, et n'hésites pas à t'appuyer sur la Communauté, quand c'est nécessaire, et à lui faire profiter de tes nouvelles connaissances, quand ce sera le cas!

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
3

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

Posez votre question
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
1 avril 2006 à 15:21
Ah oui, j'oubliais,

il existe des protocoles de communication avec les automates, et notamment avec le protocole Ethernet.

Personnellement, j'étais contrain :) d'utiliser le TCP/IP Modbus.

Il existe de nombreux outils pour manipuler, échanger des données, et aussi observer le protocole, pour ceux qui cherchent à l'implémenter.

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
3
inconnu2nulpar Messages postés 75 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 16 janvier 2007
1 avril 2006 à 16:42
Merci beaucoup pour votre aide!!! je besoin d'un autre conseille, je peut utiliser le port RS232 pour réaliser la communication avec l'automate, a votre avis c jouable de le faire en c/c++? au lieu du VB comme vous m'avez dit que c'était complexe en VB ?
3
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
1 avril 2006 à 16:59
Mon humble avis est que ce peux être complexe en VB ne peut qu'être pire en c/c++ (dans ce cas précis [OPC en C++], et pour moi)!

Mais quand je dis complexe en VB (d'ailleurs je ne l'ai pas dit, j'ai dit difficilement jouable), c'est relatif à ce que tu connais!

PS: maintenant qu'on se connait, si tu veux, on peut se tutoyer. :)

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
1 avril 2006 à 17:00
Salut
Merci pour ces précisions rvblog, très instructif.
Inconnu... : La complexité sera la même sur le sujet. VB est peut-être plus simple à programmé que C, mais VB est interprété et serait d'une lenteur innacceptable pour un serveur sensé traiter de grandes quantités de données en temps réel.

Pour ce qui est le la connexion RS232, pourquoi pas, ce n'est qu'une question de méthode d'adressage qui diffère, mais tu réduis les capacités du système : en vitesse bien sûr, mais aussi en facilité de connexion en réseau. C'est quand même plus pratique d'installer un hub ethernet que d'insérer des convertisseurs boucle-de-courant pour travailler en adressage maitre/multi-esclaves.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
3
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
1 avril 2006 à 17:39
Salut Jack,

royale précision!
entièrement d'accord avec toi! j'oubliais l'aspect rapidité d'exécution!

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
3
inconnu2nulpar Messages postés 75 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 16 janvier 2007
1 avril 2006 à 18:41
Ok merci encors, bien sur que l'on peut se tutoyer.
je vais essayer de trouver un mode d'emplois sur le Winsock Ils ds le forum que c un dll qui est ds windows/system, masi moi je ne l'ai pas. et meme ensuite je fait comment pour programmer? lorsque je suis ds la page de code de form il ne connait pas cette fonction, et je n'ai pas l'aide ds ma version de vb...
3
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
1 avril 2006 à 19:00
Deuxième série d'indices :


Composant Microsoft Winsock Control 6.0 ( %Windir%\system32\MSWINSCL.OCX )


Dans VB6, boite à outils, click droit, composants, et coches le composant.

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
3
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
1 avril 2006 à 19:01
Au fait "se tutoyer", "vous", c'était une blague :)


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
3
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
1 avril 2006 à 19:02
décidément :

Composant Microsoft Winsock Control 6.0 ( %Windir%\system32\MSWINSCK.OCX )


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
3
inconnu2nulpar Messages postés 75 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 16 janvier 2007
1 avril 2006 à 20:50
une derniére question peut être, on je peut trouver une doc complête sur le VB, ou il explique les fonction. Parce que la j'ai un boukin ( pluto un gros pavé) mais il ne me parle pas des ces fonctions ( c'est vb6 étape par étape)
3
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
1 avril 2006 à 21:42
Bah, alors là!

il y a bien :
Programming Microsoft Visual Basic 6.0 de Francesco Balena chez Microsoft Press, mais c'est plus de la technique VB (http://mspress.microsoft.com/), et c'est un vieux bouquin!
La bible du programmeur de Kris Jamsa, Pb.D., M.B.A, chez Reynald Goulet, là c'est C/C++, Système, Windows et API.

Sinon, pour les Winsock, à part MSDN, il ne reste que les sites spécialisés (Microsoft.com, CodeS-SourceS) ;P

Mais à mon avis, Jack sera encore le plus fort la dessus.


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
3
inconnu2nulpar Messages postés 75 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 16 janvier 2007
4 avril 2006 à 18:48
re tous le monde, alors j'ai configuré la connection avec l'automate ( je l'ai fait en c) mais qu'est ce que je doit faire pour que se programme me sert de serveur OPC, pour les clients viennent se connecter dessus ? est -ce que quelqu'un peut me guider?
3
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
4 avril 2006 à 22:27
Salut inconnu2nulpar,

bien!
tu t'es connecté par quel moyen alors? RS ou Ethernet(y a-t-il un driver ou non?)?
as-tu lu les spécifications? (ou au moins feuilleté les grandes lignes?)
Le grand principe est de constituer des couches logicielles se superposant.

En C, le bas niveau, les commandes primaires (exhaustives, en rapport avec le besoin final, au plus niveau) de communication, échanges bi-directionnels de données, commandes, alarmes (lis des documentations de superviseur, en français, pour te guider rapidement sur les besoins réels et recurrents en automatisme/supervision si besoin est), consignes....

Toujours en C éventuellement, un niveau au-dessus permettra d'implémenter des services un peu plus évolués (peut-être même le plus haut niveau, mais j'en doute), transformations des fonctionnalités évoluées en séquences de commandes de bas niveau (graphcet), noyau d'exécution cyclique, traitements liés à la concurrence de commandes (optimisation des échanges),....

Et enfin, la couche qui présente les fonctionnalités les plus ergonomiques, c'est à dire, celles qui seront sollicitées par les clients OPC (et là, il y a de forte chance que tu requiert d'étudier un peu le modèle COM, ou au moins OLE, car c'est ici que démarre l'interfaçage avec des clients [je ne sais pas si OPC répond au modèle CORBA], c'est donc en fonction des clients que tu choisiras), là où tu dois respecter les interfaces (contrats de fonctionnement) spécifiées dans OPC DA. Comme language, tu auras le choix, C++ ou Java (je pense qu'en Java c'est faisable, mais il y a peut-être trop de différence avec le C), ou peut-être VB, l'important, c'est ici de choisir le langage qui te donnera le moins de difficulté, il en a déjà assez avec le fonctionnel (en ce qui concerne .Net, je ne suis pas le mieux placé pour m'exprimer sur la faisabilité et la difficulté, essaies de questionner des experts sur ce site, je donnerais bien des pseudos, mais je vais facher ceux que je ne cite pas).

bon, il a encore un peu de chemin à parcourir, mais si tu t'organises (et c'est pour t'y aider que je t'en dis autant), tu arriveras au bout, d'autres l'ont fait.
à+

rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
3
inconnu2nulpar Messages postés 75 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 16 janvier 2007
5 avril 2006 à 19:28
merci RV mais j'ai pas compris grand chose a se que tu m'as dit de faire... :-(. j'ai choisi de faire la com avec RS232 parce que c'est ce que je sait faire, envoyer et recevoir des info c pas trés compliqué. Ce que j'aivait pensé faire,mais je ne suis pas convaincu de la fiabilité du procéder. En fait, se qu'il faut que je récupére c'est les temps d'arret des machine, de ce fait j'avait pensée a écrire ds un mot l'état des machine ( moin de 15) lorsque le bit conserné est a 0 ts vas bien, des qu'un bit passe à 1 il y a une panne.alors la je demande a l'automate l'heure, et des que le bit repasse a 0 je lui redemande l'heure, de ce fait j'ai l'heure de début et de fin de panne.j'enregistre c'est donner ds un fichier .txt ( avec des tab pour pouvoir l'ouvrir avec excel ) et ensuite grace a une macro je copie les donner ds un fichier excelle qui calcul la durée des panne et ensuite le technicien entre les cause de la panne. qu'est ce que tu pense de cette solution ?
3
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
5 avril 2006 à 23:07
Salut 673026 inconnu2nulpar,

c'est, ma foi, une très bonne solution, pragmatique, simple à mettre en oeuvre!
Ce qui compte avant tout, c'est qu'elle fasse ce dont tu as besoin.

Maintenant, =2204 jack avait quand même raison, quand il disait que l'Ethernet est plus souple. Quand il va s'agir de faire évoluer ton système (et il s'agit toujours de ça un jour ou l'autre), le RS232 sera moins ergonomique (+ limitations longueur de cable, parasites du signal en environnement industriel...), et puis si dois constituer un réseau d'au moins 2 automates (avec qui ton application sera connectée simultanément), il faudra passer au RS432, faire tes cables toi-même (on les trouve jamais sur mesure)... Ethernet, tu emmènes ton portable avec ton environnement de développement, un cousin "hub", et le tour est joué! (Plug and Pray)

Sinon, pour comparer ce que tu as fait avec ce que je t'ai expliqué:

Ici, le serveur, c'est l'application en C qui récupère le mot et historise ses changement d'état dans un fichier texte (le poll, la scrutation). Elle est à la fois la couche de bas niveau (communication, échanges de données), et la couche de niveau évolué (mise à la disposition des éventuels clients des données, dans un format conventionné avec les éventuels client, c'est en cela qu'elle est serveur).

Ta macro Excel, qui va lire les données du fichier texte (dans le format dont elle connait la convention), et qui les interprète, c'est le client!

Tu as donc bien une architecture Client/Serveur (des grands mots pour des choses simples), conventionnée.

Que ferais OPC la dedans? OPC DA est une forme plus évoluée de convention entre les clients et les serveurs. Elle ne se contente pas de décrire un format (d'ailleurs, elle n'en décrit pas), mais elle décrit des choses comme :

- définir des groupes de mots (nommés) pour lesquels le client "prend un abonnement" (il a dit au serveur qu'il veut les avoir, il a donné la périodicité de raffraichissement, ou de raffraichir seulement si ça change de valeur, tout ça tout ça), et le serveur se chargera de fournir en temps voulu, les données voulues.

- le client n'a pas besoin de savoir quel est le type de l'automate (ou même est-ce un automate?), comment lui parle-t-on, sur quel port... (par contre, il a quand même besoin de savoir comment interprêter les données, de connaitre la nature de la table d'échange)

- plusieurs clients peuvent se connecter au même serveur.

- le serveur peut piloter plusieurs automates (ou autre installation, autre framework...)

- les client peuvent être des macros Excel, des application VB, C, Java, WEB, des superviseurs, des terminaux de commandes...

OPC c'est l'ODBC des systèmes de contrôles de commandes (avec la stabilité et la rapidité en plus [systèmes critiques] et quelques petits raffinements supplémentaires), dont le point fort est le système d'abonnement du client (qui équivaut un peu aux triggers de base de données, sauf qu'eux ne remontent pas forcément l'évènement jusqu'au client).

à+

rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
3
inconnu2nulpar Messages postés 75 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 16 janvier 2007
20 avril 2006 à 19:40
slt , g un PC qui communique avec un module via le port rs232 et je voudrai savoir quel trame se PC envoie, y aurait il un moyen de lire le port rs232 ( tx ) sans perturber la com?
3
Rejoignez-nous