EPAP Electronique: Bus de Terrain KNX Laurent BOURDEL EPAP Electronique: Bus de Terrain KNX 11 Mai 2015
PLAN Compte rendu Travaux Pratiques Séquence pédagogique Synthèse
Présentation du système IHM Borland C++
Problématique Identification des bits transférés sur un bus KNX Décodage des champs de la trame Modification de l’IHM pour afficher les valeurs des champs décodés DC-DC Manque presentation Classe dispo + celle créé
Présentation KNX Trop d’infos sur meme diapo L'architecture peut être de différentes topologies : bus étoile arborescente un mélange de ces différentes topologies Boucle => !!! JAMAIS !!! Couches Physiques: Bus Radio (ISM 868Mhz) Courant porteur Ethernet (depuis 2008)
Structure Trame KNX Ampli 125kHz
Détail Trame
Application
Analyse trame KNX
Développement Algo
Machine d’état Code complet void __fastcall TForm1::ButtonDecodeClick(TObject *Sender) { // unsigned short Hour, Min, Sec, MSec; BYTE Xsrc,Ysrc,Zsrc,CmptRoutage; TDateTime Delta = Time() - Start; if (serial.hasData()) { data[index] = serial.readData(); DecodeTime(Delta, Hour, Min, Sec, MSec); TVarRec args[] = {index, (int) Hour, (int) Min, (int) Sec, (int) MSec, (int) data[index]}; index++; //MemoResult->Lines->Add(Format("i=%d : %.3d:%.3d:%.3d:%.3d = %.2x", args, ARRAYSIZE(args) - 1)); switch(Etat) case 0: // CONTROLE if(data[Etat]==0xBC) MemoResult->Lines->Add(("Controle")); Etat++; } else Etat=0;index=0; break; case 1: // CHAMP X+Y SRC case 2: // CHAMP Z + DECODAGE SRC // decodage @src Xsrc=(data[Etat-1]&0xF8)>>3; Ysrc=(data[Etat-1]&0x07); Zsrc=(data[Etat]); TVarRec args1[] = {(int) Xsrc, (int) Ysrc, (int) Zsrc}; MemoResult->Lines->Add(Format("@SRC=%d.%d:%d", args1, ARRAYSIZE(args1) -1 )); case 3: // CHAMP X+Y CLIENT case 4: // CHAMP Z + DECODAGE CLIENT // decodage @cible MemoResult->Lines->Add(Format("@CLIENT=%d.%d:%d", args1, ARRAYSIZE(args1) -1 )); Machine d’état case 5: // CONTROLE { if( data[Etat]&0x80) CmptRoutage=(data[Etat]&0x70)>>4; LgData= (data[Etat]&0x0F)+1; TVarRec args1[] = {(int) CmptRoutage, (int) LgData }; MemoResult->Lines->Add(Format("CmptRoutage=%d. LgData=%d", args1, ARRAYSIZE(args1) -1 )); Etat++; } else MemoResult->Lines->Add("ERREUR"); Etat=0;index=0; break; case 6: // DATA if(LgData--) TVarRec args1[] = {(int) (LgData) ,(int) data[Etat+LgData] }; MemoResult->Lines->Add(Format("Data[%d]=%d", args1, ARRAYSIZE(args1) -1 )); if( LgData==0 ) MemoResult->Lines->Add("DATA"); MemoResult->Lines->Add("PB!!!"); case 7: // Checksum MemoResult->Lines->Add("CheckSum"); case 8: // ACK if(data[index]=0xCC) { MemoResult->Lines->Add("ACK OK"); } else Etat=0;index=0; break; default: Code complet
Machine d’état switch(Etat) { case 0: // CONTROLE if(data[Etat]!=0xBC) Etat=0;index=0; } break; case 1: // CHAMP X+Y SRC Etat++; case 2: // CHAMP Z + DECODAGE SRC // decodage @src Xsrc=(data[Etat-1]&0xF8)>>3; Ysrc=(data[Etat-1]&0x07); Zsrc=(data[Etat]); case 3: // CHAMP X+Y CLIENT case 4: // CHAMP Z + DECODAGE CLIENT // decodage @cible case 5: // CONTROLE { if( data[Etat]&0x80) CmptRoutage=(data[Etat]&0x70)>>4; LgData= (data[Etat]&0x0F)+1; Etat++; } else MemoResult->Lines->Add("ERREUR"); Etat=0;index=0; break; case 6: // DATA if(LgData--) if( LgData==0 ) MemoResult->Lines->Add("DATA"); case 7: // Checksum Etat++; break; case 8: // ACK if(data[index]=0xCC) { MemoResult->Lines->Add("ACK OK"); } Etat=0;index=0; default: Presenter code interessant (ex masque /shift pour recuperer info) Faire lien entre algo et machine d’etat
Optimisations possibles Vérifier la parité Optimisation sur IT de la réception de data
Exploitation pédagogique BTS « Systèmes Numériques » Informatique et Réseaux Électronique et Communication
Référentiel Référentiel des activités professionnelles Activités Taches Compétences Savoirs Savoir-Faire Référentiel de certification
Activités d’un technicien supérieur autour d’un système ou d’un service Pas necessaire d’afficher detail Activite pas forcement chronologique mais plus lie au cycle de dev d’un produit
Compétences du technicien supérieur autour d’un système ou d’un service
Des compétences spécifiques Spécialité IR Spécialité EC Compétences peuvent être différentes suivant l’option
Compétences communes Savoir et savoir-faire spécifiques Compétences identiques, savoir et savoir-faire différents
Savoirs : des niveaux taxonomiques adaptés S4. Développement logiciel IR EC S4.7. Langages de programmation C++ 3 1 Utilisation d’un langage objet (Java, C#, C++, etc.) 2 SQL Web statique : HTML / XML Web dynamique : PHP, JavaScript Circuits programmables (graphique, descriptif, etc.) Langages graphiques par flux de données (simulation et instrumentation virtuelle) S5. Solutions constructives des systèmes d'information S5.3. Structures matérielles des E/S Détecteurs / capteurs industriels : position, vitesse, accélération, … Capteurs et périphériques multimédia : écrans, caméras, micros, hauts parleurs… 4 Conditionnement et traitement du signal : Amplification, Filtrage analogique et numérique, compression Conversion de données : Échantillonnage, CAN/CNA, CODEC Adaptation de niveau et de puissance (BF et HF) Pré actionneurs industriels Le niveau taxonomique définit la différence au niveau des savoirs
Savoir associés aux compétences P1 Culture générale et expression P2 Langue vivante : anglais P3 Mathématiques P4 Sciences physiques et chimiques appliquées S1 Communication S2 Gestion de projet S3 Modélisation S4 Développement logiciel S5 Solutions constructives des systèmes d’information S6 Systèmes d’exploitation S7 Réseaux, télécommunications et modes de transmission S8 Tests et validation S9 Fabrication
BTS Option Électronique et communication + Stage 6 semaines fin de 1ere année
Situation et structure de la séquence Période: fin 1ere année Volume horaire : 2H cours + 4H TD + 8H TP + 2H Evaluation Classe Entière : 24 étudiants Groupe : 12 étudiants Prérequis : Cours Réseau (couches OSI) Codage numérique Développement IHM en C++ Algo machine d’état semaine 1 2 3 Cours (CE 2h) Concepts fondamentaux des réseaux Topologie Travaux Dirigés (CE 2h) Bus de terrain (présentation, utilisation, trame) Activité pratique (Gr 4h) Analyse et décodage des trames bus de terrain Travaux Dirigés (CE 2h) Ecriture de l’algorithme de décodage sous SysML Activité pratique (Gr 4h) Codage de l’algorithme Envoie de trame de commande ( allumage lampe, …) Evaluation formative (30 minutes) Evaluation sommative (1h30) Faire sequence plus longue Remédiation
Détail séance TP2 Matériels fournis: Oscilloscope PC avec logiciel C++ Maquette bus de terrain (KNX, CAN, Ethernet, ..) Fiche de travail pratique Accès internet Logiciel: Logiciel C++ avec librairies graphiques Appli basique avec squelette d’IHM Travail demandé: Développer un algorithme qui décode les champs d’une trame Afficher les champs dans l’IHM basique fourni Restitution: Démonstration du développement efféctué Activité pratique (Gr 4h) Codage de l’algorithme Envoie de trame de commande ( allumage lampe, …)
Salle Travaux Pratiques Mettre apres la sequence et detail seance BT Wifi Modem Nao MaxPID Bras industriel Système1 Système2 Capteur Température Rythme cardiaque Afficheur industriel RFID CAN KNX Réseau optique Système3 Système4 Système4
Synthèse Plusieurs études possibles sur bus KNX Extension aux autres bus de terrain (ex: CAN) Enseignement en Informatique et Réseaux + Électronique et Communication