Bloc Fonction Référence MRTU_CPU_Slave Révision 1.6 Auteur JP Viskovic Date 29/
Bloc Fonction Référence MRTU_CPU_Slave Révision 1.6 Auteur JP Viskovic Date 29/04/2014 + Support http://support-omron.fr/ OMRON ELECTRONICS S.A.S. 14 Rue de Lisbonne 93561 Rosny-sous-Bois cedex Bloc Fonction Modbus RTU esclave port série Hostlink (CPU) Fonction Esclave Modbus RTU Symbole Fichier MRTU_CPU_Slave.cxf API CPU : port série de CJ1xx-V3, CP1H, CP1L-L, CP1L-M, CJ2H, CJ2M Conditions d’utilisation Configuration du port série en mode RS-232C et 8 bits de données. Le switch en façade relatif au port série doit être positionné sur « Setup » configuration utilisateur (voir switch) Fonctions supportées : 0x01 Lecture bit d’E/S zone CIO Read Coils 0x02 Lecture bit d’E/S zone CIO Read Discrete Inputs 0x03 Lecture mémoire données DM Read Holding Registers 0x04 Lecture mémoire d’E/S CIO Read Input Registers 0x05 Ecriture d’une bobine CIO Write Single Coil 0x06 Ecriture 1 mot mémoire DM Write Single Register 0x08 Test Echo de Diagnostic Echo Back Test 0x0F ***** NON SUPPORTEE ****** Write Multiple Coils 0x10 Ecriture multiple mots DM Write Multiple Registers Diffusion (broadcast) supportée en spécifiant le n° d’esclave 00 Restrictions d’utilisation Zones mémoire admissibles: CP1L-L : CIO0 à CIO6143 et D0 à D9999 CP1L-M & CJxx-V3 : CIO0 à CIO6143 et D0 à D32767 Attention : Le FB ModbusSlave contrôle la validité de l’adresse de lecture/écriture jusqu’au DM32767. Le drapeau Err_Adresse ne signalera pas d’erreur en cas de lecture/écriture dans les CP1L-L au-delà du D10000. Taille mémoire : La taille allouée aux blocs fonction sur les CP1L-L étant réduite, il faudra impérativement réduire la taille des tableaux de variables Send[256] et Recv[256] aux stricts besoins sans quoi une erreur apparaitra à la compilation. Bloc Fonction Modbus RTU Slave MRTU_CPU_Slave JPV 29/04/2014 Page 2/4 Note : Les échanges Modbus peuvent être vérifiés à l’aide de l’utilitaire Multiway Variables d’entrée Nom type Plage de valeur Description Slave No Entier non signé (UINT) 1 à 247 Numéro d’esclave Modbus Port Entier non signé (UINT) 0,1 ou 2 Port série destinataire. CJ1xx-V3 : &0 CJ2H : &0 CJ2M-CPU1x : &0 CJ2M-CPU3x(*): &0 CP1L-L : &1 CP1L-M gauche : &1 CP1L-M droite : &2 CP1H gauche : &1 CP1H droite : &2 (*) : + CP1W-CIF01/11/12 Variables de sortie Nom type Plage de valeur Description ENO Booléen OFF, ON Non utilisé Error Booléen OFF, ON Drapeau d’erreur (adresse de lecture/écriture, quantité, etc …). Err_Counter Entier non signé (UINT) 0000 à FFFF Compteur de requête incorrecte. CRC16 correct mais adresse ou fonction incorrecte Rcv_Counter Entier non signé (UINT) 0000 à FFFF Compteur de réception. (CRC16 correct) Bloc Fonction Modbus RTU Slave MRTU_CPU_Slave JPV 29/04/2014 Page 3/4 Rappel sur le format du protocole Modbus Lecture de plusieurs bobines (CIO) Exemple: lecture de 19 bits (CIO 0001.04 à 0002.06) Requête Réponse Donnée Donnée Code Fonction 0x01 Code Fonction 0x01 Adresss (poids fort) 0x00 Nbre d’octets 0x03 Adresse (poids faible) 0x14 Bobines 27-20 0xCD Quantité (poids fort) 0x00 Bobines 35-28 0x6B Quantité (poids faible) 0x13 Bobines 38-36 0x05 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0CH 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1CH 31 1 30 0 29 1 28 1 27 1 26 1 25 0 24 0 23 1 22 1 21 0 20 1 19 18 17 16 2CH 47 46 45 44 43 42 41 40 39 38 1 37 0 36 1 35 0 34 1 33 1 32 0 3CH 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 Les caractères en italique montre la valeur ON/OFF(1/0) du bit. Lecture de plusieurs registres (DM) Exemple: lecture de 3 registres (DM 1000 à DM 1002) Requête Réponse Donnée Donnée Code Fonction 0x03 Code Fonction 0x03 Adresse (poids fort) 0x03 Nbre d’octets 0x06 Adresse (poids faible) 0xE8 Registre DM1000 (poids fort) 0xAB Quantité (poids fort) 0x00 Registre DM1000 (poids faible) 0x12 Quantité (poids faible) 0x03 Registre DM1001 (poids fort) 0x56 Registre DM1001 (poids faible) 0x78 Registre DM1002 (poids fort) 0x97 Registre DM1002 (poids faible) 0x13 DM 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1000 A B 1 2 1001 5 6 7 8 1002 9 7 1 3 Ecriture d’une bobine (CIO) Exemple: écriture d’un bit (CIO 0002.02 ON) Requête Réponse Donnée Identique à la requête Donnée Code Fonction 0x05 Code Fonction 0x05 Adresss (poids fort) 0x00 Adresss (poids fort) 0x00 Adresse (poids faible) 0x22 Adresse (poids faible) 0x22 Valeur (poids fort) 0xFF Valeur (poids fort) 0xFF Valeur (poids faible) 0x00 Valeur (poids faible) 0x00 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0CH 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1CH 31 1 30 0 29 1 28 1 27 1 26 1 25 0 24 0 23 1 22 1 21 0 20 1 19 18 17 16 2CH 47 46 45 44 43 42 41 40 39 38 1 37 0 36 1 35 0 34 1 33 1 32 0 3CH 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 Les caractères en italique montre la valeur ON/OFF(1/0) du bit. Bloc Fonction Modbus RTU Slave MRTU_CPU_Slave JPV 29/04/2014 Page 4/4 Ecriture d’un registre (DM) Exemple: écriture de &h3AC5 dans le DM 2000. Requête Réponse Donnée Identique à la requête Donnée Code Fonction 0x06 Code Fonction 0x06 Adresse (poids fort) 0x07 Adresse (poids fort) 0x07 Adresse (poids faible) 0xD0 Adresse (poids faible) 0xD0 Valeur (poids fort) 0x3A Valeur (poids fort) 0x3A Valeur (poids faible) 0xC5 Valeur (poids faible) 0xC5 DM 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 2000 3 A C 5 2001 2002 Ecriture de plusieurs registres Exemple: écriture de 2 mots DM1000-1001. Requête Réponse Donnée Donnée Code Fonction 0x10 Code Fonction 0x10 Adresse (poids fort) 0x03 Adresse (poids fort) 0x03 Adresse (poids faible) 0xE8 Adresse (poids faible) 0xE8 Nbre de registres (poids fort) 0x00 Nbre de registres (poids fort) 0x00 Nbre de registres (poids faible) 0x02 Nbre de registres (poids faible) 0x02 Nombre d’octet de données 0x04 1ère valeur (poids fort) 0x3A 1ère valeur (poids faible) 0xC5 2ème valeur (poids fort) 0x97 2ème valeur (poids faible) 0x13 DM 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1000 3 A C 5 1001 9 7 1 3 uploads/Litterature/ mrtu-cpu-slave.pdf
Documents similaires
-
11
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Nov 27, 2022
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.2503MB