J'essaie d'implémenter un protocole ModBus RTU sur un périphérique UART en utilisant STM32F4-Discovery Board.Comment mapper l'adresse du registre Modbus en utilisant C/C++
Je prévois d'implémenter la fonctionnalité maître et esclave en utilisant Modbus RTU.
Voici mes questions
Comment pourrais-je déplacer mes données reçues dans UART à MODBUS et transmettre des données de la couche de MODBUS à UART, en utilisant C/C++, S'il vous plaît fournir un certain bout de code qui peut me aider à comprendre votre explication. (A partir de maintenant, je pense à proposer des APIs s'il vous plaît suggérer quelques modèles)
Deuxièmement, comment pourrais-je implémenter les registres et les bobines Modbus. Je voulais dire comment pourrais-je définir l'adresse comme spécifié dans le Manuel d'application ModBus. S'il vous plaît expliquez-moi avec un extrait de code. Ci-dessous quelque chose que j'ai essayé de mettre en œuvre.
/*Global Array, Structure and Variable Declarations*/
/* So to access Discrete_Output_Coils[2345]
the valid address to include in the protocol would be
so we have to access address 0x929 to read the
data.*/
const unsigned short int Discrete_Output_Coils[4999];
const unsigned short int Discrete_Input_Contacts[4999];
const unsigned short int Analog_Input_Register[4999];
const unsigned short int Anlog_output_Holding_Register[4999];
Votre question est trop large. Commencez par commencer par master * ou * slave, mais pas les deux. Deuxièmement, lisez les spécifications Modbus. Troisièmement, commencez par une implémentation très simple et très simple où vous envoyez ou recevez une trame et rien d'autre. Il ne sert à rien d'essayer de penser à la mise en œuvre du registre, si vous n'avez pas le trieur de transmission de base. – user694733