Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Le_Pont_V10015 by
Pilote.h
00001 /*******************************************************************/ 00002 /* */ 00003 /* Pilote */ 00004 /* */ 00005 /* Objet de pilotage de variateur */ 00006 /* */ 00007 /* */ 00008 /*******************************************************************/ 00009 #ifndef _PILOTE_ 00010 #define _PILOTE_ 00011 00012 #include "mbed.h" 00013 #include <Serial.h> 00014 #include "Constantes.h" 00015 #include "Variable.h" 00016 #include "time.h" 00017 00018 // Etat des ordres variateur 00019 #define AUCUN 0 00020 #define ATTENTE 1 00021 #define VALIDE 2 00022 #define DEFAUT 3 00023 00024 // Ordres variateur 00025 #define ORDRE_AUCUN 0x0 00026 #define ORDRE_ARRET 0x41 00027 #define ORDRE_MONTE 0x4D 00028 #define ORDRE_DESCEND 0x44 00029 #define ORDRE_FREIN 0x46 00030 #define ORDRE_LECTURE 0x4C 00031 #define ORDRE_CONFIGURE 0x43 00032 00033 // Parametres variateur 00034 #define NB_PARAM_VARIATEUR 15 00035 #define VERSION 0x00 00036 #define STARTUP 0x01 00037 #define INCREMENT 0x02 00038 #define SEUIL_DEMARRAGE 0x03 00039 #define ACCELERATION 0x04 00040 #define DECELERATION 0x05 00041 #define KPV 0x06 00042 #define KIV 0x07 00043 #define KDV 0x08 00044 #define KA 0x09 00045 #define CONSIGNE 0x0A 00046 #define ETAT_EL 0x0B 00047 #define ETAT_SL 0x0C 00048 00049 // Etats du frein du moteur 00050 #define SERRE 0 00051 #define DESSERRE 1 00052 00053 #define LONGUEUR_CHAINE_EMISSION 100 00054 #define LONGUEUR_CHAINE_RECEPTION 100 00055 00056 #define TIMEOUT_RECEPTION_ms 200 00057 #define DELAI_COMMANDE_ARRET_ms 500 00058 00059 /** Class Pilote 00060 * Pilotage de variateur de pile de pont via liaison série et protocole 3R 00061 */ 00062 class Pilote 00063 { 00064 public: 00065 /** Constructeur 00066 * @param Id : Identifiant de l'instance 00067 */ 00068 Pilote ( S16 Id); 00069 00070 /** Initialise et ouvre le port série 00071 * @param Baudrates : Vitesse de la liaison série 00072 * @param bits : Bits de données 00073 * @param Stop : Bits de stop 00074 */ 00075 void Init ( int Baudrates, int bits, int Stop) ; 00076 /** Ordre de marche de la pile 00077 * @param Mode : Mode de fonctionnement 00078 * @param Sens : Sens de déplacement 00079 * @param Hauteur : Hauteur cible (mm) 00080 * @param Vitesse : Consigne de vitesse (tr/min) 00081 */ 00082 void Marche ( U8 Mode, U8 Sens, S16 Hauteur, S16 Vitesse ) ; 00083 /** Ordre d'arret de la pile 00084 */ 00085 void Arret (void) ; 00086 /** Commande manuelle du frein 00087 * @param Etat : Etat du frein {SERRE,DESSERRE} 00088 */ 00089 void Frein ( U8 Etat ) ; 00090 /** Lecture d'un parametre du variateur 00091 * @param Num_Parametre : numéro du parametre à lire 00092 */ 00093 void Lecture ( U16 Num_Parametre ) ; 00094 /** Configuration d'un parametre du variateur 00095 * @param Num_Parametre : numéro du parametre à configurer 00096 * @param Valeur : nouvelle valeur du parametre 00097 */ 00098 void Configure ( U16 Num_Parametre , S32 Valeur ) ; 00099 /** Etalonnage de hauteur de la pile 00100 * @param Points1 : Hauteur en points de la mesure basse 00101 * @param Hauteur1 : Hauteur en mm de la mesure basse 00102 * @param Points2 : Hauteur en points de la mesure haute 00103 * @param Hauteur2 : Hauteur en mm de la mesure haute 00104 */ 00105 void Etalonnage (S16 Points1, S16 Hauteur1 , S16 Points2 , S16 Hauteur2 ) ; 00106 /** Reception de la réponse du variateur 00107 */ 00108 void Reception ( void ) ; 00109 00110 /**Pointeur du port série*/ 00111 Serial* pPort ; 00112 /**Hauteur courante de la pile (mm)*/ 00113 S16 Hauteur_Courante ; 00114 /**Vitesse courante de la pile*/ 00115 S16 Vitesse_Courante ; 00116 ///Hauteur de la pile (pts) 00117 S16 Mesure_Courante ; 00118 ///Hauteur cible du mouvement en cours (mm) 00119 S16 Hauteur_Cible ; 00120 ///Identifiant de l'instance 00121 S16 Id ; 00122 ///Compteur de timeouts de la liaison série 00123 S16 Compteur_Timeout ; 00124 ///Deplacement en cours (ARRET, MONTE, DESCEND) 00125 U8 Etat_Deplacement ; 00126 ///Etat de la commande manuelle de frein (SERRE, DESSERRE) 00127 U8 Etat_Frein ; 00128 ///Etat de la liaison série 00129 U8 COM_OK ; 00130 ///Tableau de paramètres du variateur 00131 S32 Parametres_Vario_S32[NB_PARAM_VARIATEUR] ; 00132 00133 private: 00134 void Emission ( U8 *pChaine , U8 Longueur ) ; 00135 U8 Chaine_A_Emettre[LONGUEUR_CHAINE_EMISSION] ; 00136 U8 Chaine_Recue[LONGUEUR_CHAINE_RECEPTION] ; 00137 Timer Chrono_Pilote ; 00138 Timer Chrono_Arret ; 00139 U8 *pEmission ; 00140 U8 *pReception ; 00141 U8 Nb_Caracteres_Recus ; 00142 U8 Statut_Ordre_En_Cours ; 00143 U8 Ordre_En_Cours ; 00144 U8 Dernier_Ordre_Confirme ; 00145 F32 MM_par_Points ; 00146 F32 MM_Offset ; 00147 int Debut_Emission_ms ; 00148 int Fin_Reception_ms ; 00149 int Age_Ordre_Arret_ms ; 00150 00151 }; 00152 00153 #endif
Generated on Tue Jul 12 2022 13:32:39 by
