IMA4 2017/2018 P64 : Différence entre versions
(→Semaine 2) |
(→Semaine 2) |
||
Ligne 84 : | Ligne 84 : | ||
Tout d'abord la partie ethernet Modbus. | Tout d'abord la partie ethernet Modbus. | ||
+ | |||
+ | Je commence donc avec la modification d'une sortie digital. On doit suivre la trame suivante pour envoyer un ordre. | ||
{| class="wikitable" | {| class="wikitable" | ||
Ligne 94 : | Ligne 96 : | ||
| Protocol Identifier 2/2 | | Protocol Identifier 2/2 | ||
| Longueur de trame 1/2 | | Longueur de trame 1/2 | ||
− | | Longueur de trame 2/2 | + | | Longueur de trame 2/2 ( ici 6 ) |
| Identifiant | | Identifiant | ||
− | | Fonction Modbus | + | | Fonction Modbus ( ici 5 ) |
| Adresse de sortie 1/2 | | Adresse de sortie 1/2 | ||
| Adresse de sortie 2/2 | | Adresse de sortie 2/2 | ||
Ligne 102 : | Ligne 104 : | ||
| | | | ||
|} | |} | ||
+ | |||
+ | On va maintenant voir la lecture depuis le port Ethernet. Cette partie la est plus importante puisque la simulation se fera depuis la partie ethernet. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !Byte !!Byte 0 !! Byte 1 !! Byte 2 !! Byte 3 !! Byte 4 !! Byte 5 !! Byte 6 !! Byte 7 !! Byte 8 !! Byte 9 !! Byte 10 !! Byte 11 | ||
+ | |- | ||
+ | | Signification | ||
+ | | Transaction identifier 1/2 | ||
+ | | Transaction identifier 2/2 | ||
+ | | Protocol Identifier 1/2 | ||
+ | | Protocol Identifier 2/2 | ||
+ | | Longueur de trame 1/2 | ||
+ | | Longueur de trame 2/2 ( ici 6 ) | ||
+ | | Identifiant | ||
+ | | Fonction Modbus ( ici 1 ) | ||
+ | | Adresse de début 1/2 | ||
+ | | Adresse de début2/2 | ||
+ | | Nombre d'octet à lire 1/2 | ||
+ | | Nombre d'octet à lire 2/2 | ||
+ | |} | ||
+ | |||
+ | |||
Ensuite la partie Série - Modbus. | Ensuite la partie Série - Modbus. |
Version du 15 décembre 2017 à 13:49
Présentation générale
Description
La conception de systèmes de contrôle/commande (robot, automate, machine outil...) s'appuie généralement sur une mise au point des développements à l'aide de simulations.
Dans ce cadre, le projet proposé consiste à développer la simulation d'un ascenseur en vue de sa commande par un automate réel. Le choix du langage est à déterminer au cours du projet. Cette simulation doit intégrer la prise en compte des appels paliers et cabine et la simulation des mouvements de l'ascenseur.
Objectifs
La finalité de ce projet sera de réaliser la commande d'un ascenseur, simuler sur un pc, à l'aide d'un API connecté grâce à un réseau Modbus. On pourra observé les différents états de l'ascenseur.
Préparation du projet
Cahier des charges
Choix techniques : matériel et logiciel
Pour réaliser ce projet, j'ai besoin de 2 ordinateurs , d'un module réseau Modbus avec connexion ethernet et série.
Sur les pc , le logiciel Labview de version récente est nécessaire.
Liste des tâches à effectuer
Calendrier prévisionnel
Réalisation du Projet
Feuille d'heures
Tâche | Prélude | Heures S1 | Heures S2 | Heures S3 | Heures S4 | Heures S5 | Heures S6 | Heures S7 | Heures S8 | Heures S9 | Heures S10 | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Analyse du projet | 1 | |||||||||||
Réalisation du cahier des charges | 4 | 2 | ||||||||||
Gestion modbus | 3 | 5 |
Prologue
Semaine 1
La première parti de ce projet sera de comprendre le fonctionnement du protocole Modbus. J'ai donc commencé par la réalisation du tp de RLI effecuté en Ima 4. Ce tp étant nouveau, je n'ai pas eu l'occasion de le réaliser l'année dernière. J'ai pour l'instant pu lire la documentation technique fournie et faire la première partie du tp concernant la communication entre 2 pc avec la configuration série - modbus et ethernet - modbus.
Semaine 2
Une fois la communication entre les 2 ordinateurs effectuée grâce au réseau Modbus, la tâche suivante est donc de comprendre comment fonctionne réellement cette communication.
Tout d'abord la partie ethernet Modbus.
Je commence donc avec la modification d'une sortie digital. On doit suivre la trame suivante pour envoyer un ordre.
Byte | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 | Byte 8 | Byte 9 | Byte 10 | Byte 11 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Signification | Transaction identifier 1/2 | Transaction identifier 2/2 | Protocol Identifier 1/2 | Protocol Identifier 2/2 | Longueur de trame 1/2 | Longueur de trame 2/2 ( ici 6 ) | Identifiant | Fonction Modbus ( ici 5 ) | Adresse de sortie 1/2 | Adresse de sortie 2/2 | ON / OFF |
On va maintenant voir la lecture depuis le port Ethernet. Cette partie la est plus importante puisque la simulation se fera depuis la partie ethernet.
Byte | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 | Byte 8 | Byte 9 | Byte 10 | Byte 11 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Signification | Transaction identifier 1/2 | Transaction identifier 2/2 | Protocol Identifier 1/2 | Protocol Identifier 2/2 | Longueur de trame 1/2 | Longueur de trame 2/2 ( ici 6 ) | Identifiant | Fonction Modbus ( ici 1 ) | Adresse de début 1/2 | Adresse de début2/2 | Nombre d'octet à lire 1/2 | Nombre d'octet à lire 2/2 |
Ensuite la partie Série - Modbus. Cette partie ci fonctionne à peu de chose prêt à la précédente, mais il y a ici présence d'un CRC ( contrôle de redondance cyclique ) à chaque trame transmise. Un programme pré-existant permet de calculer le CRC lorsqu'on lui fournit tout le début de la trame. J'ai donc pu tester les messages envoyés avec le CRC calculé précédemment et vérifier la fonctionnalité de mes commandes.
Si l'on veut envoyer un ordre , on doit suivre ce modèle de trame :
Byte | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 |
---|---|---|---|---|---|---|---|---|
Signinication | Adresse esclave | Code de fonction | Adresse de sortie 1/2 | Adresse de sortie 2/2 | Donnée d'envoie 1/2 | Donnée d'envoie 2/2 | CRC Low | CRC High |