La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

VAL3 Ethernet - Sockets A partir VAL 3 Version 4.x.

Présentations similaires


Présentation au sujet: "VAL3 Ethernet - Sockets A partir VAL 3 Version 4.x."— Transcription de la présentation:

1 VAL3 Ethernet - Sockets A partir VAL 3 Version 4.x

2 Communications avec Sockets
Même type de communication que lignes Série excepté : Basée sur câble Ethernet Communication de type Client – Serveur : multiples machines sur le réseau c c s Notes: Ligne Série RS232 / RS422 s Sockets Ethernet

3 Spécifications CS8 CS8 peut être client et/ou serveur
Possible de déclarer plusieurs clients ET plusieurs serveurs sur une même CS8 ==> 1 CS8 peut communiquer avec plusieurs systèmes Chaque communication utilise 1 numéro de port 1 CS8 Serveur peut seulement accepter 1 client ==> pour avoir 1 Serveur CS8 connecté à plusieurs clients nécessaire de définir plusieurs ports Déclaration de clients et de serveurs est fait dans le tableau de bord Notes:

4 Déclaration de serveurs
Port doit être le même que celui du client ! Des ports sont réservés pour des protocoles (modbus 502, ftp 21, …) utilise numéro > 1000 , vérifier que numéro libre Fin de chaîne : code ASCII du caractère ajouté à la chaîne (messages string) Temps maxi : délai pour déterminer si la communication est OK Serveur est prêt à recevoir des connexions uniquement lorsque une application qui utilise le socket est en exécution Notes:

5 Déclaration de clients
Port doit être le même que celui du serveur Adresse du serveur : adresse IP du serveur Temps maxi : délai pour déterminer si la communication est OK Notes: Possible de tester connexion avec le serveur si: Config. ethernet OK + serveur démarré

6 Lire et écrire sur Sockets
Comme les lignes série io:Srv1= "Ceci est un message" ou io:Clt1= " Ceci est message" écrit la chaîne sur le port (ajoute le délimiteur de chaîne à la fin du message) message = io:Srv1 ou message = io:Clt1 lit une chaîne depuis le port (lit tous les caractères jusqu’au délimiteur ou jusqu’à 128 car.) io:Clt1= ou io:Srv1= 65 écrit 1 car. sur le port (code ASCII) val=io:Clt1 ou val=io:Srv1 lit 1 car. sur le port Une erreur d’exécution (60) est générée en cas de « temps maxi » (connexion ou lecture) ou erreur de communication (coupure de ligne, arrêt du socket, tampon de données plein, …) Notes:

7 Instructions SIO Lire un tableau de num sur la SIO : (non bloquante)
nbcar = sioGet(io:Clt1, ligne) num nbcar retourne nombre de car. lus sur le port num ligne est le tableau des caractères lus Stoppe quand le tableau est plein (dimension du tableau) ou quand le tampon est vide retourne -1 si connexion a échouée Écrire un tableau de num sur SIO : (non bloquante) nbcar = sioSet(io:Clt1, ligne) num nbcar retourne le nombre de car. écrit sur le port num ligne est le tableau de caractères à écrire retourne -1 si la connexion a échouée Fermer la connexion : nbcar = clearBuffer(io:Clt1) Ferme la connexion et retourne le nb de car. supprimés dans nbcar (num) Notes:

8 Gestion du temps maxi Erreur exécution (60) est générée après le temps maxi pour les instructions : io:Srv1= "this is a message" ou io:Clt1= "this is a message" message = io:Srv ou message = io:Clt1 => nécessite une tâche pour gérer les erreurs de comm. Test de la valeur retournée par instruction après temps maxi : nbcar = sioGet(io:Clt1, line) pas de connexion nbcar = sioSet(io:Clt1, line) connexion établie => pas besoin d’une tâche de gestion exemple : un client veut savoir quand le serveur est prêt do nStatut = sioSet(io:Clt1, nLigne) until nStatut > -1 Notes:

9 Nombre de Clients/serveurs par CS8
CS8 accepte connexions multiples : sockets 1 client utilise 1 socket 1 serveur utilise 1 socket pour lui même + 1 socket le client 1 serveur peut communiquer avec plusieurs clients sur le même port size(io:srv1) retourne le nombre de clients connectés io:srv1[0]="ndjfjsdkjsdfjsfk" pour écrire sur le client 0 io:srv1[1]="ndjfjsdkjsdfjsfk" pour écrire sur le client 1 Notes:

10 Généralités Sockets utilise une mémoire tampon d’entrées de 8 Ko
Quand pleine, l’envoyeur est notifié, une erreur générée et la connexion est fermée. Le récepteur n’est pas notifié, peut lire toutes les données de la mémoire tampon, détecte ensuite que la connexion est fermée et une erreur est générée. En cas d’erreur de connexion, bouton « Test » du tableau de bord peut retourné une erreur dans les 5 secondes sur vraie CS8. MAIS sur émulateur erreur après 65 secondes => Sur émulateur faire en premier commande « ping » par la ligne de commande Windows pour tester la connexion. Notes:


Télécharger ppt "VAL3 Ethernet - Sockets A partir VAL 3 Version 4.x."

Présentations similaires


Annonces Google