Version initiale
Dependencies: mbed
Fork of Le_Pont_V10116 by
Modbus.h@2:a10c8133d71c, 2018-03-29 (annotated)
- Committer:
- CS
- Date:
- Thu Mar 29 15:41:22 2018 +0000
- Revision:
- 2:a10c8133d71c
- Parent:
- 0:8b3c6f593515
Publish of "Le_Pont_V11003" in the team folder
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
CS | 0:8b3c6f593515 | 1 | /*******************************************************************/ |
CS | 0:8b3c6f593515 | 2 | /* */ |
CS | 0:8b3c6f593515 | 3 | /* Modbus */ |
CS | 0:8b3c6f593515 | 4 | /* */ |
CS | 0:8b3c6f593515 | 5 | /* Gestion de la liaison Modbus esclave */ |
CS | 0:8b3c6f593515 | 6 | /* */ |
CS | 0:8b3c6f593515 | 7 | /* */ |
CS | 0:8b3c6f593515 | 8 | /*******************************************************************/ |
CS | 0:8b3c6f593515 | 9 | #ifndef _MODBUS_ |
CS | 0:8b3c6f593515 | 10 | #define _MODBUS_ |
CS | 0:8b3c6f593515 | 11 | |
CS | 0:8b3c6f593515 | 12 | #include "mbed.h" |
CS | 0:8b3c6f593515 | 13 | #include <Serial.h> |
CS | 0:8b3c6f593515 | 14 | |
CS | 0:8b3c6f593515 | 15 | #include "Constantes.h" |
CS | 0:8b3c6f593515 | 16 | #include "Variable.h" |
CS | 0:8b3c6f593515 | 17 | |
CS | 0:8b3c6f593515 | 18 | #include "time.h" |
CS | 0:8b3c6f593515 | 19 | |
CS | 0:8b3c6f593515 | 20 | |
CS | 0:8b3c6f593515 | 21 | |
CS | 0:8b3c6f593515 | 22 | /***** Etats **********/ |
CS | 0:8b3c6f593515 | 23 | #define ARRET 0 |
CS | 0:8b3c6f593515 | 24 | #define ATTENTE 1 |
CS | 0:8b3c6f593515 | 25 | #define RECEPTION 2 |
CS | 0:8b3c6f593515 | 26 | #define RECU 3 |
CS | 0:8b3c6f593515 | 27 | #define TRAITE 4 |
CS | 0:8b3c6f593515 | 28 | #define EMISSION 5 |
CS | 0:8b3c6f593515 | 29 | #define FIN 6 |
CS | 0:8b3c6f593515 | 30 | #define ERREUR 7 |
CS | 0:8b3c6f593515 | 31 | #define TIMEOUT 8 |
CS | 0:8b3c6f593515 | 32 | |
CS | 0:8b3c6f593515 | 33 | /* ----------------------- Defines ------------------------------------------*/ |
CS | 0:8b3c6f593515 | 34 | #define MB_ADDRESSE_BROADCAST ( 0 ) /*! Modbus adresse de broadcast */ |
CS | 0:8b3c6f593515 | 35 | #define MB_ADDRESSE_MIN ( 1 ) /*! Smallest possible slave address. */ |
CS | 0:8b3c6f593515 | 36 | #define MB_ADDRESSE_MAX ( 247 ) /*! Biggest possible slave address. */ |
CS | 0:8b3c6f593515 | 37 | #define MB_FUNC_NONE ( 0 ) |
CS | 0:8b3c6f593515 | 38 | #define MB_FUNC_READ_COILS ( 1 ) |
CS | 0:8b3c6f593515 | 39 | #define MB_FUNC_READ_DISCRETE_INPUTS ( 2 ) |
CS | 0:8b3c6f593515 | 40 | #define MB_FUNC_WRITE_SINGLE_COIL ( 5 ) |
CS | 0:8b3c6f593515 | 41 | #define MB_FUNC_WRITE_MULTIPLE_COILS ( 15 ) |
CS | 0:8b3c6f593515 | 42 | #define MB_FUNC_READ_HOLDING_REGISTER ( 3 ) |
CS | 0:8b3c6f593515 | 43 | #define MB_FUNC_READ_INPUT_REGISTER ( 4 ) |
CS | 0:8b3c6f593515 | 44 | #define MB_FUNC_WRITE_REGISTER ( 6 ) |
CS | 0:8b3c6f593515 | 45 | #define MB_FUNC_WRITE_MULTIPLE_REGISTERS ( 16 ) |
CS | 0:8b3c6f593515 | 46 | #define MB_FUNC_READWRITE_MULTIPLE_REGISTERS ( 23 ) |
CS | 0:8b3c6f593515 | 47 | #define MB_FUNC_DIAG_READ_EXCEPTION ( 7 ) |
CS | 0:8b3c6f593515 | 48 | #define MB_FUNC_DIAG_DIAGNOSTIC ( 8 ) |
CS | 0:8b3c6f593515 | 49 | #define MB_FUNC_DIAG_GET_COM_EVENT_CNT ( 11 ) |
CS | 0:8b3c6f593515 | 50 | #define MB_FUNC_DIAG_GET_COM_EVENT_LOG ( 12 ) |
CS | 0:8b3c6f593515 | 51 | #define MB_FUNC_OTHER_REPORT_SLAVEID ( 17 ) |
CS | 0:8b3c6f593515 | 52 | #define MB_FUNC_ERROR ( 128 ) |
CS | 0:8b3c6f593515 | 53 | /* ----------------------- Type definitions ---------------------------------*/ |
CS | 0:8b3c6f593515 | 54 | typedef enum |
CS | 0:8b3c6f593515 | 55 | { |
CS | 0:8b3c6f593515 | 56 | MB_EX_NONE = 0x00, |
CS | 0:8b3c6f593515 | 57 | MB_EX_ILLEGAL_FUNCTION = 0x01, |
CS | 0:8b3c6f593515 | 58 | MB_EX_ILLEGAL_DATA_ADDRESS = 0x02, |
CS | 0:8b3c6f593515 | 59 | MB_EX_ILLEGAL_DATA_VALUE = 0x03, |
CS | 0:8b3c6f593515 | 60 | MB_EX_SLAVE_DEVICE_FAILURE = 0x04, |
CS | 0:8b3c6f593515 | 61 | MB_EX_ACKNOWLEDGE = 0x05, |
CS | 0:8b3c6f593515 | 62 | MB_EX_SLAVE_BUSY = 0x06, |
CS | 0:8b3c6f593515 | 63 | MB_EX_MEMORY_PARITY_ERROR = 0x08, |
CS | 0:8b3c6f593515 | 64 | MB_EX_GATEWAY_PATH_FAILED = 0x0A, |
CS | 0:8b3c6f593515 | 65 | MB_EX_GATEWAY_TGT_FAILED = 0x0B |
CS | 0:8b3c6f593515 | 66 | } Code_Erreur_t ; |
CS | 0:8b3c6f593515 | 67 | |
CS | 0:8b3c6f593515 | 68 | #define TAILLE_MESSAGE_MAXI 20 |
CS | 0:8b3c6f593515 | 69 | |
CS | 0:8b3c6f593515 | 70 | typedef struct |
CS | 0:8b3c6f593515 | 71 | { |
CS | 0:8b3c6f593515 | 72 | U8 Etat_U8 ; |
CS | 0:8b3c6f593515 | 73 | U8 Code_Erreur ; |
CS | 0:8b3c6f593515 | 74 | U8 Trame_Recue_aU8 [TAILLE_MESSAGE_MAXI] ; |
CS | 0:8b3c6f593515 | 75 | U8 Nb_Caracteres_Recus_U8 ; |
CS | 0:8b3c6f593515 | 76 | U8 Trame_Reponse_aU8 [TAILLE_MESSAGE_MAXI] ; |
CS | 0:8b3c6f593515 | 77 | U8 Nb_Caracteres_A_Emettre_U8 ; |
CS | 0:8b3c6f593515 | 78 | } Ordre_Modbus_t ; |
CS | 0:8b3c6f593515 | 79 | |
CS | 0:8b3c6f593515 | 80 | #define TAILLE_PILE_ORDRES 5 |
CS | 0:8b3c6f593515 | 81 | |
CS | 0:8b3c6f593515 | 82 | |
CS | 0:8b3c6f593515 | 83 | extern volatile Ordre_Modbus_t Ordres[TAILLE_PILE_ORDRES] ; |
CS | 0:8b3c6f593515 | 84 | |
CS | 0:8b3c6f593515 | 85 | |
CS | 0:8b3c6f593515 | 86 | |
CS | 0:8b3c6f593515 | 87 | extern void vModbus_Init(int Baudrate) ; |
CS | 0:8b3c6f593515 | 88 | extern void vModbus_Start() ; |
CS | 0:8b3c6f593515 | 89 | extern void vModbus_Stop() ; |
CS | 0:8b3c6f593515 | 90 | extern void vModbus_Reset() ; |
CS | 0:8b3c6f593515 | 91 | extern void vModbus() ; |
CS | 0:8b3c6f593515 | 92 | |
CS | 0:8b3c6f593515 | 93 | |
CS | 0:8b3c6f593515 | 94 | |
CS | 0:8b3c6f593515 | 95 | |
CS | 0:8b3c6f593515 | 96 | #endif |