Communication PC Automate par liaison ethernet [Résolu]

Messages postés
6
Date d'inscription
mercredi 9 avril 2008
Dernière intervention
29 juillet 2008
- - Dernière réponse : cs_bradoc
Messages postés
1
Date d'inscription
lundi 5 septembre 2011
Dernière intervention
7 septembre 2011
- 7 sept. 2011 à 14:50
Dans le cadre de mon stage de fin d'étude (DUT GEII), je dois réaliser la communication entre un PC et un Automate Siemens S7-300 via la liaison ethernet et tout cela en visual basic.
Sachant programmer en C , et n'ayant aucune connaissance du language Visual Basic, pourriez vous me mettre sur la voie de la solution s'il vous plait .
Je vous en remercie d'avance.
Amis développeurs ...
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
14322
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
14 décembre 2018
3
Merci
Bonjour

En .NET, il faut utiliser les classes se trouvant dans l'espace de nom : System.Net.Sockets
Pour ton utilisation, TcpClient devrait suffire.

Pour le reste, inspires-tou de ce qui est présent sur le site.

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de NHenry
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
1
Merci
A vérifier si Siemens ne te fournie pas des librairy propriétaires pour dialoguer avec ta CPU même via Ethernet.

JE n'ai jamais utiliser Ethernet avec le S7-300, je n'ai fais que du MPI avec.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
Commenter la réponse de cs_casy
Messages postés
6
Date d'inscription
mercredi 9 avril 2008
Dernière intervention
29 juillet 2008
1
Merci
Merci pour les infos, je vais essayer de voir ce que je peux faire.
Commenter la réponse de Flewms
Messages postés
6
Date d'inscription
mercredi 9 avril 2008
Dernière intervention
29 juillet 2008
0
Merci
Après mettre un peu plus penché sur le sujet, j'ai remarqué qu'il fallait en VB que j'utilise le contrôle WinSock.

J'ai compris la pluspars des lignes de code sauf une donnée que je ne sais pas comment interpréter malgret la documentation qui me la décrit sous "Identificateur de la demande de connection entrante".

Il s'agit de la variable requestID qui se trouve dans la fonction suivante :

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
    On Error Resume Next
    'client tries to connect to the socket
   
    'check if a connection is allready established
    If Winsock1.State <> sckClosed Then Winsock1.Close
   
    'Accept the clientrequest
    Winsock1.Accept requestID
   
    'set label caption
    Label2.Caption = "connected"
    Label2.BackColor = ColorConstants.vbGreen
End Sub

Pouvez vous me dire à quoi correspond cette variable.

D'autre part, j'aurais aimé savoir si la valeur 2000 dans la ligne de code suivante peut être prise au hazard du moment qu'elle correspond à la valeur entrée dans le programme step7 de l'automate:

 'set port for communication to 2000 (configured in step7)
    Winsock1.LocalPort = 2000

S'agit il du port de communication ? Où est ce que je le change dans le code S7 ?

Merci d'avance
Commenter la réponse de Flewms
Messages postés
14322
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
14 décembre 2018
0
Merci
Bonjour

1) Déjà tu bosse en VB6, alors pourquoi mettre dans la section .NET ?
2) Ensuite, le code que tu nous montre c'est pour faire un Serveur, et non un client TCP.
3) RequestID est un Nombre (définit par le système) qui lui permet de savoir de quelle demande de connexion on cause (il peut y en avoir plusieurs en un temps très court).
4) 2000 c'est le numéro du port de communication utilisé (par le serveur) pour savoir ce qu'il doit écouter, il y a 65535 ports disponibles, mais certains sont déjà réservée (80 : HTTP par exemple).
5) Tu parles de Step7, c'est bien, mais on n'est pas devins, on ignore de quoi tu parles là.

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Commenter la réponse de NHenry
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
0
Merci
pour 2000, il s'agit effectivement du numéro de port utilisé pour la communication

Tu peux mettre celui que tu veux si tu as la possibilité de le modifier dans la config de ta cpu, sinon il faudra mettre celui-là.

Regarde dans Step7, dans les propriétés de ta CPU si tu as la possibilité de modifier la configuration des paramètres de communication de la cpu et notamment le port utilisé.
Il faut que tu ais le même entre ta cpu et ton logiciel.

NHenry te les autres > STEP7 est le logiciel de SIEMENS qui permet de programmer les automates SIEMENS de la gamme S7-300. Il permet non seulement de configurer l'automate et les bloc E/S mais aussi de faire le programme qui va tourner dans l'automate, assure le transfert de ce programme et permet tout ce qui est visualisation, deboggage, maintenance de l'automate.

C'est en gros la "console" de l'automate.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
Commenter la réponse de cs_casy
Messages postés
14322
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
14 décembre 2018
0
Merci
Bonjour

Merci de la précision Casy.

Donc j'en déduis que je suis un peu à la ramasse sur ce sujet que tu a l'air de mieux connaitre. Je te laisse donc voir le problème (je reste à l'écoute par les alertes mails).

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Commenter la réponse de NHenry
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
0
Merci
ouais, sauf que j'ai fait très peu de Step7 et jamais en Ethernet.
De plus ça fait 3 ans que je n'ai plus la possibilité d'en faire (j'ai changé de boite).

Donc j'ai quelques très petites connaissances, mais je suis loin de maitriser

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
Commenter la réponse de cs_casy
Messages postés
14
Date d'inscription
vendredi 6 juin 2008
Dernière intervention
24 novembre 2009
0
Merci
Bonjour j'arrive pas encore a regler mon probleme celui de recuperer les données provenant de l'automate et les stockées dans une base de donnée relationnelle svp aidé moi
Commenter la réponse de NilBlack
Messages postés
14322
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
14 décembre 2018
0
Merci
Bonjour,

[../auteur/NILBLACK/1412809.aspx NilBlack], Base de données SQL, c'est vague (Sql Server, MySql, Oracle, Access, ...).
Ensuite dis-nous où tu bloque.
Est-ce toi qui m'a contacté par mail ?

Commenter la réponse de NHenry
Messages postés
1
Date d'inscription
lundi 5 septembre 2011
Dernière intervention
7 septembre 2011
0
Merci
bonjours s'il vous plait est ce que je peut avoir un plan détaillé de ce proget? car moi aussi je travaille dessus et je suis un peut en retard.
Commenter la réponse de cs_bradoc

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.