Protocole de communication Smart-Devices – Client
Protocole de communication Smart-Devices – Client
Le contrรดle des diffรฉrentes expรฉriences se faisant via une interface web, la communication entre le client et le Smart Devices est basรฉe sur un protocole IP (Internet Protocol). ยซ Internet est un rรฉseau de rรฉseaux dรฉveloppรฉ par le ministรจre de la Dรฉfense aux รtats-Unis dans la fin des annรฉes 70 et le dรฉbut des annรฉes 80 pour interconnecter les diffรฉrentes machines informatiques de ce ministรจre. La solution a รฉtรฉ de dรฉvelopper un protocole commun que lโensemble des rรฉseaux et des machines connectรฉes doit possรฉder. Ce protocole commun, cโest prรฉcisรฉment le protocole IP (Internet Protocol). Les rรฉseaux interconnectรฉs, que nous avons appelรฉs les sousrรฉseaux, peuvent รชtre quelconques. Il leur est juste demandรฉ de transporter dโune extrรฉmitรฉ ร lโautre des paquets IP, cโest-ร -dire des paquets conformes aux spรฉcifications du protocole IP.ยป [4] Pour que cette communication virtuelle puisse avoir lieu, les deux appareils doivent parler le mรชme langage et suivre les mรชmes rรจgles. Pour ce faire, chaque appareil possรจde des composants qui implรฉmentent ces diffรฉrentes rรจgles plus communรฉment appelรฉes protocoles. Un appareil qui possรจde plusieurs composants peut donc communiquer avec un autre appareil sous diffรฉrents protocoles. Les protocoles HTTP, TCP, UDP et IP font partie des plus utilisรฉs. LabVIEW, qui peut รชtre considรฉrรฉ comme un composant, est capable de communiquer avec, entre autres, les protocoles prรฉcรฉdemment citรฉs. Il sโagit donc ici de dรฉterminer quel est le meilleur protocole ร adopter dans le cas des laboratoires ร distance. 5.1 Architecture de la communication La communication peut รชtre sรฉparรฉe en deux parties. Il y a tout dโabord une communication entre les diffรฉrents ยซย Smart-Devicesย ยป et le serveur, puis une autre communication entre le serveur et les diffรฉrents clients. Le Web-Server ainsi que les Smart-Devices sont programmรฉs en LabVIEW. Cรดtรฉ client, la programmation est exclusivement faite en HTML5. Le schรฉma suivant reprรฉsente les canaux de transmission des donnรฉes entre les diffรฉrents acteurs du MOOLs. La machine virtuelle permet aux clients dโaccรฉder depuis lโextรฉrieur aux Smart-Devices qui sont dans lโinfrastructure rรฉseau de la HES-SO Valais ร Sion. Pour des questions de sรฉcuritรฉ, les automates cRIO ne peuvent pas รชtre visibles depuis un rรฉseau externe ร lโรฉcole. La solution proposรฉe par le service informatique de lโรฉcole est de passer par une machine virtuelle. Celle-ci est accessible depuis lโextรฉrieure par le port TCP 8793 ร lโadresse ยซย remotemools.hevs.chย ยป. Cette adresse est le nom DNS publique visible depuis lโextรฉrieur donnรฉ ร la machine pour les MOOLs. En interne, la machine virtuelle accรจde aux automates via le port TCP 8792. Lโadresse IP de ces automates est fixe et dรฉpend de leur emplacement physique dans lโinfrastructure de lโรฉcole. Dans le but de simplifier la programmation, un nom DNS leur est attribuรฉ et a la forme suivante : ยซย moolscrioxx.hevs.chย ยป. Comme il est prรฉvu de connecter plusieurs automates au laboratoire, deux caractรจres sont rรฉservรฉs (ยซย xxย ยป) pour le numรฉro de lโautomate. Pour que cette communication soit possible, le service informatique a ajoutรฉ des rรจgles aux Firewalls situรฉs entre les automates et le serveur, ainsi quโentre le serveur et lโextรฉrieur. 5.2 Communication Smart-Devices – Serveur Plusieurs types de communications peuvent รชtre implรฉmentรฉs entre les deux applications LabVIEW du SmartDevice et du serveur. Il sโagit ici de dรฉterminer lequel des protocoles de communication est le plus adaptรฉ pour cette application. Pour ce faire, diffรฉrents protocoles sont implรฉmentรฉs est comparรฉs. 5.2.1 TCP Le premier protocole ร faire lโobjet dโune รฉtude est le TCP/IP. Son implรฉmentation est native ร LabVIEW et est relativement simple ร mettre en place. ยซ Le protocole TCP (Transmission Control Protocol) a รฉtรฉ initialement dรฉfini dans la RFC 793 de lโIETF (Internet Engineering Task Force). Le protocole TCP fournit un service de transport fiable, basรฉ sur la connexion et le ยซย bytestreamย ยป, en plus des connexions non fiables service rรฉseau fourni par IP. TCP est employรฉ par un grand nombre dโapplications comme par exemple : โ Email (SMTP, POP, IMAP) โ World Wide Web ( HTTP, …) Sur internet, la plupart des applications utilises le protocole TCP. De nombreuses รฉtudes ont rapportรฉes que TCP รฉtait responsable de plus de 90% des donnรฉes รฉchangรฉes sur Internet.ยป
Communication Serveur – Client
La communication serveur-client se situe entre la machine virtuelle et la page Web de contrรดle (voir fig. 5.1). Le protocole de communication entre ces deux parties ne peut รชtre le mรชme que celui utilisรฉ entre le serveur et les Smart-Devices, etant donnรฉ que de lโinterface client programmรฉe en HTML5 nโintรจgre pas directement le protocole TCP ยซย brutย ยป. Cโest pour cette raison quโune couche additionnelle (WebSocket) est implรฉmentรฉe par-dessus le TCP. 5.3.1 WebSocket Le protocole WebSocket est celui employรฉ pour les laboratoires distants de lโEPFL. Il est donc judicieux de lโemployer plutรดt quโun autre afin de se standardiser avec le travail dรฉjร effectuรฉ par lโEPFL et ainsi de faciliter la mise en commun des ressources entre cette รฉcole et la HES-SO Valais. Le WebSocket, qui est un standard du Web, a รฉtรฉ normalisรฉ en 2011. Il est dรฉveloppรฉ par-dessus une connexion TCP. ยซ Le protocole WebSocket permet une communication bidirectionnelle entre un client exรฉcutant du code non fiable dans un environnement contrรดlรฉ vers un hรดte distant qui a optรฉ pour les communications de ce code. Le model de sรฉcuritรฉ utilisรฉ pour cela est le modรจle ยซย origin-based security modelย ยป couramment utilisรฉ par les navigateurs Web. Le protocole envoi tout dโabord un ยซย handshakeย ยป (รฉtablissement dโune liaison) suivi dโun message de base, superposรฉ sur TCP. Lโobjectif de cette technologie est de fournir un mรฉcanisme pour navigateur basรฉ sur les applications qui nรฉcessitent une communication bidirectionnelle avec des serveurs qui ne compte pas sur lโouverture de plusieurs connexions HTTP. ยป [3] Dans le cadre des MOOLs, lโintรฉrรชt principal de ce protocole est le fait que le client nโa pas besoin dโenvoyer une requรชte au serveur pour recevoir un paquet de donnรฉes. En dโautres termes, aprรจs avoir รฉtabli la communication avec le serveur, le client peut recevoir les donnรฉes du ยซย SmartDeviceย ยป sans envoyer une requรชte pour chaque mesure ou chaque image. Ce type de communication est appelรฉe ยซย Real-timeย ยป. La figure 5.8 reprรฉsente ce type dโรฉchange de donnรฉes en comparaison avec des รฉchanges traditionnels. Un autre avantage de ce protocole est le fait quโil soit directement intรฉgrรฉ ร HTML5. Lโapplication du client peut ainsi รชtre dรฉveloppรฉe en HTML5 et รชtre plus facilement intรฉgrรฉe ร une page web existante qui serait hรฉbergรฉe dans le cours en ligne du laboratoire. Le client doit simplement ouvrir une page web pour accรฉder aux infrastructures du MOOLs et nโa pas besoin de tรฉlรฉcharger dโapplication. Cela permet รฉgalement une compatibilitรฉ maximale entre avec le diffรฉrents systรจmes dโexploitation. La seule condition requise est dโavoir un navigateur web ร jour. Pour les raisons รฉvoquรฉes en dรฉbut de chapitre, ce protocole est choisi pour la communication entre le serveur et le client et aucun autre protocole nโest รฉtudiรฉ. 5.3.2 WebSocket et LabVIEW Le protocole WebSocket nโest pas nativement intรฉgrรฉ ร LabVIEW. Les paquets doivent par consรฉquent รชtre mis en forme avant dโรชtre envoyรฉs via une connexion TCP. Pour la rรฉception, ils doivent รฉgalement รชtre dรฉcryptรฉs pour pouvoir exploiter leurs donnรฉes. De plus, ร lโinitialisation de la communication, une clรฉ doit รชtre รฉchangรฉe entre le serveur et le client pour que la communication puisse avoir lieu. Ces diffรฉrentes fonctionnalitรฉs ont รฉtรฉ dรฉveloppรฉes ร lโEPFL dans le cadre de leurs MOOLs. Ce projet se faisant en collaboration avec eux, leur dรฉveloppement LabVIEW sur le WebSocket nous a รฉtรฉ fourni. La figure suivante reprรฉsente le principe de programmation de la communication cรดtรฉ serveur.
|
Table des matiรจres
1 Introduction
2 Cahier des charges
3 Description gรฉnรฉrale de lโinfrastructure des MOOLs
3.1 Web Server
3.2 Smart Devices
3.3 Moodle
3.4 Clients
4 Environnement de dรฉveloppement LabVIEW
5 Protocole de communication Smart-Devices – Client
5.1 Architecture de la communication
5.2 Communication Smart-Devices – Serveur
5.2.1 TCP
5.2.2 DataSocket
5.2.3 UDP
5.2.4 Comparaison des ressources et choix du protocole
5.3 Communication Serveur – Client.
5.3.1 WebSocket
5.3.2 WebSocket et LabVIEW
5.3.3 WebSocket et HTML5
6 Web Serveurย
6.1 Gestion des connexions client
6.2 Gestion des connexions des Smart-Devices
6.3 Installation du programme LabVIEW sur la machine virtuelle
7 Smart-Devices
7.1 Maquette de rรฉgulation du moteur DC
7.2 Rรฉgulation en vitesse (tachymรจtre) du moteur D .
7.2.1 Dimensionnement du rรฉgulateur
7.2.2 Simulations
7.2.3 Mesures
7.2.4 Calcul de la rรฉsolution de la vitesse
7.3 Rรฉgulation de vitesse (codeur) du moteur DC
7.3.1 Dimensionnement du rรฉgulateur
7.3.2 Simulations
7.3.3 Mesures
7.3.4 Calcul de la rรฉsolution de la vitesse .
7.4 Rรฉgulation en position (potentiomรจtre) du moteur D
7.4.1 Dimensionnement du rรฉgulateu .
7.4.2 Simulations
7.4.3 Mesures
7.4.4 Calcul de la rรฉsolution
7.5 Rรฉgulation de position (codeur) du moteur DC
7.5.1 Dimensionnement du rรฉgulateur
7.5.2 Simulations .
7.5.3 Mesures
7.5.4 Calcul de la rรฉsolution
Thomas Moniquet 1 16 aoรปt 2018
Travail de bachelor Power & Control
7.6 Maquette de rรฉgulation de systรจme instable ร bille
7.6.1 Dimensionnement du rรฉgulateur
7.6.2 Simulations
7.6.3 Mesures
8 Programmation du cRIOย
8.1 Programmation de la FPGA .
8.1.1 Algorithme des codeurs incrรฉmentaux
8.1.2 Boucle de rรฉgulation de lโentraรฎnement รฉlectrique
8.1.3 Boucle de rรฉgulation du systรจme instable ร bille
8.2 Programmation de la CPU
8.2.1 Communication avec la FPG.
8.2.2 Acquisition des images de la Webcam
8.2.3 Communication avec le Web-Serveur
9 Interface Clientย
9.1 HTML
9.2 CSS
9.2.1 Position du ยซย parentย ยป
9.2.2 Position des ยซย enfantsย ยป
9.3 JavaScript
9.3.1 JSON
9.3.2 Initialisation
9.3.3 Programme en fonctionnement
9.3.4 Fermeture
10 Tests de lโinfrastructure
10.1 Mesures du temps entre les paquets
10.2 Mesures de lโutilisation de la CPU du cRIO
10.3 Mesures de lโutilisation rรฉseau et processeur de la machine virtuelle
11 Conclusion et perspectives
12 Annexes
A Planning
B Datasheet capteur optique
C Datasheet Webcam Logitech C270
D Datasheet cRIO-9067, NI-9201, NI-9263, NI-94
E Crรฉation dโun exรฉcutable LabVIEW
F Crรฉation dโun installeur LabVIEW
G Entraรฎnement Electrique Open-Loop
H Systรจme instable ร bille Open-Loop
I Systรจme instable ร bille Closed-Loop
Tรฉlรฉcharger le rapport complet