|
FINS, OMRON, Socket UDP, Driver |
Iniciado por nrobin, 27,feb. 2006 15:23 - 13 respuestas |
| |
| | | |
|
| |
Publicado el 27,febrero 2006 - 15:23 |
Bonjour, J'ai un stage de 4 mois à effectuer.
Mon projet consiste à créer un driver sous Windev permettant de faire communiquer un ordinateur type PC avec un (ou plusieurs) automate(s) OMRON (CJ1 ou CS1) via une carte réseau standard.
En attendant d'avoir un automate CJ1 OMRON, je fais des essais de communication entre 2 postes de type PC. Pour cela, j'utilise les fonctions sockets de Windev.
Le protocole utilisé est le protocole FINS. Je pensais donc m'orienter vers une communication avec les sockets de type UDP. Si vous pouviez me communiquer quelques informations concernant ce type de communication, je vous serais très reconnaissant. ___________
PS: Je ne demande pas forcément des sources complètes mais tout au moins des informations. C'est plus utile pour apprendre. __________
Merci d'avance pour votre aide.
Nicolas ROBIN |
| |
| |
| | | |
|
| | |
| |
Publicado el 27,febrero 2006 - 17:13 |
Salut Nicolas,
Dans les exemples, tu trouveras un exemple concernant l'utilisation des sockets. Je me suis inspiré de cet exemple pour réaliser une communication entre PC.
@+, JF |
| |
| |
| | | |
|
| | |
| |
Publicado el 28,febrero 2006 - 07:00 |
1) il faut utiliser la bonne doc Omron référence W342-E1-09 (sinon galère, j'ai donné merci).
2) utilser l'utilitaire Multiway pour tester les communications et exemples.
3) Utiliser les sockets de type UDP. // optimisation de la trame de dialogue Socket.Option=2 <------------------------------- // ouvre la socket SI PAS SocketCréeUDP("SocketAutomate", PortAutomate, AutomateAdresseIP) ALORS .....
Je tiens à disposition la doc, le programme Multiway, ...
Salutations.
Gérard Bonno |
| |
| |
| | | |
|
| | |
| |
Publicado el 28,febrero 2006 - 17:00 |
Tout d'abord, merci pour l'information. J'avais pris les devants. Et oui, j'ai déjà commencé à éplucher les 2 exemples sur les sockets. Et cela m'a bien aidé à appréhender la méthode pour communiquer sur un réseau. Je suis en train de faire une petite application permettant d'envoyer et recevoir des messages entre 2 ordinateurs via les fonctions socket. |
| |
| |
| | | |
|
| | |
| |
Publicado el 28,febrero 2006 - 17:00 |
Merci pour l'info. Pour le moment, je suis en train d'établir un cahier des charges de mon projet. Dès que j'orais terminé, je suivrais vos conseils.
Encore merci |
| |
| |
| | | |
|
| | |
| |
Publicado el 28,febrero 2006 - 17:24 |
Tiens tiens Gérard, tu vas rire. J'avais déjà cette doc OMRON (en couleur en plus).Cela ne fait qu'une semaine que j'ai commencé et je n'ai aucune connaissance en la matière pour le moment alors je suis dans une phase de recherche et de test pour un bon petit moment. En tout cas, c'est sûr, vos informations me seront d'une grande aide.
merci |
| |
| |
| | | |
|
| | |
| |
Publicado el 01,marzo 2006 - 11:57 |
Bonjour,
j'ai discuté un peu de la solution que tu propose avec un informaticien avec lequel je travaille et on se pause plusieurs questions.Entre autre, tu parles de "Socket.Option=2" pour optimiser la trame de dialogue. C'est-à-dire? En quoi l'optimise-t-on? A quoi correspond l'option 2? Est-ce en rapport avec la fonction "SocketChangeTransmissionMode()"?
Pour qu'elles raisons utiliser le protocole UDP et pas TCP. Aparemment, le protocole UDP est plus simple à gérer du fait qu'il ne gère pas les connexions et qu'il se contente de créer un socket sur les machines du réseau (PC et automates), d'écrire des trames et de les lire. Mais là, un problème semble apparaître. Supposons qu'il y ait une déconnexion sur le réseau (cable débranché par exemple). Comment le driver le gèrera? Il serait utille d'avoir un retour d'info nous le signalant pour effectuer une reconnexion. Y a-t-il un moyen efficace pour palier à ce problème? Si oui, lequel?
Merci pour toutes ses informations. |
| |
| |
| | | |
|
| | |
| |
Publicado el 02,marzo 2006 - 09:14 |
Bonjour,
j'ai eu une proposition de solution sur un autre forum pour gérer les éventuelles déconnexion du réseau.
Avec le protocole UDP, il faudrait effectuer un échange en continu entre les 2 modules (PC et automate) afin dedétecter une éventuelle coupure réseau.
Je vais me pencher sur la question, je pense qu'il faudra utiliser un timer ou un thread. |
| |
| |
| | | |
|
| | |
| |
Publicado el 03,marzo 2006 - 10:22 |
Je suis de retour de déplacement. Réponse plus tard dans la journée. Merci |
| |
| |
| | | |
|
| | |
| |
Publicado el 06,marzo 2006 - 10:37 |
Bonjour,
il y a du nouveau. La communication entre 2 PCs fonctionne. J'ai créé une petite appli qui permet d'envoyer une trame a 1 poste qui l'affichera instantanément. et ce second poste peut en faire autant. Je gère cela avec des sockets UDP.
Seulement un petit problème persiste: j'utilise une trace pour |
| |
| |
| | | |
|
| | |
| |
Publicado el 07,marzo 2006 - 14:07 |
Lors de mes tests entre 2 PCs, les processeurs sont trop solicité. Pour palier à ce problème, j'ai ajouter un ThreadPause à la fin de ma procédure d'écriture. Le résultat est concluant. Cela dit, il arrive d'avoir quelques pertes de paquets.
De manière à trouver le bon compromis, je compte essayer diverses solutions: <1> faire un cycle lecture écriture serveur/client, <2> utiliser 2 ports de comm., ou <3> utiliser un CRC pour comparer les trames. Je vais déjà effectuer ces tests séparément et peut-être les coupler en fonction des résultats trouvés.
est-il possible de transmettre et recevoir sur 2 ports sur l'automate? (CJ1 (ou CS1))
1 port: Lecture / Ecriture SERVEUR (PC) 1 port: Lecture / Ecriture CLIENT (automate)
Si oui, comment? J'ai vu que les CJ1 disposent de 8 ports de comm. (de 0 à 7 en Hexa.). Cela dit, sur le site OMRON, il parlent d'avoir jusqu'à 34 ports de comm. max.
Est-que vous pourriez me dire si les 8 ports dont je parle sont bien les ports utilisant le protocole FINS sur UDP/IP? (cf. doc OMRON W342-E1-09, page 70 sur 270)
Merci
Nicolas ROBIN |
| |
| |
| | | |
|
| | |
| |
Publicado el 07,marzo 2006 - 14:17 |
si j'utilise 2 ports de l'automate, qels ports peuvent être utiliser à cet effet et de quel manière?
SocketCréeUDP("SOCKET",..........,NetAdresseIP()) SocketEcrit("SOCKET",trame,adresseIP,..........) |
| |
| |
| | | |
|
| | |
| |
Publicado el 07,marzo 2006 - 15:50 |
//Pourquoi "Socket.Option=2" pour optimiser la trame de dialogue. Selon conseil du support technique (option pas documentée) (n'est peut être plus nécessaire en version 40K ??).
//Pourquoi protocole UDP et pas TCP? Le protocole UDP est plus simple dans ses échanges et plus rapide. L'intégrité des échanges est assurée par le protocole Fins (message d'état et d'erreur dans la réponse de l'automate).
//Supposons qu'il y ait une déconnexion sur le réseau (cable débranché par exemple)... Dans mon programe, le diailogue est assuré par un Thread secondaire avec une gestion des TimeOut et des messages (état/erreur) en retour de l'automate.
//Lors de mes tests entre 2 PCs, les processeurs sont trop solicité. Dans le Thread secondaire qui gère le dialogue (permanent) avec l'automate en Fins j'ai inclus régulierement des multitâches
// Cela dit, il arrive d'avoir quelques pertes de paquets. Je n'ai aucune perte de données. Attention de prévoir une gestion des erreurs avec reprise, ... dans le programme de dialogue avec l'automate.
Salutations.
Gérard Bonno |
| |
| |
| | | |
|
| | |
| |
Publicado el 03,abril 2006 - 12:31 |
Bonjour,
je tenais à vous remercier pour votre aide. La communnication entre les 2 PCs fonctionne correctemment. Je devrais avoir un automate OMRON CJ1 en début du mois d'avril pour commencer à développer concrètement.
Je vous tiens au courant de mon avancement. Si par hasard, vous auriez ne serait-ce qu'une ébauche d'application à me faire parvenir en ce qui concerne la communication entre le PC et l'automate via le protocole FINS, voici mon e-mail: nrobin@esteve.fr
Je dispose de la documentation OMRON "W342-E1-09" alors j'essais de trouver des informations utiles dedans. Je vous avoue que j'ai un peu de mal à tout comprendre mais je suis assez confiant.
A bientôt Nicolas ROBIN |
| |
| |
| | | |
|
| | | | |
| | |
|