Bloc Fonction Référence Révision Auteur Date + Support MTCP_ETN Client 2.3 JP Viskovic 03/02/2014 http://support-omron.fr/ OMRON ELECTRONICS S.A.S. 14 Rue de Lisbonne 93561 Rosny-sous-Bois cedex Bloc fonction Modbus TCP Client dédié ETN21 Unit n°0 Fonction Connexion Client Modbus TCP destiné aux cartes ETN21 unit n°0 Lecture/Ecriture Fichier API MTCP_ETN_Client.zip - CJ1xx-V3 + CJ1W-ETN21 et CJ2H/M + CJ1W-ETN21 - CS1xx + CS1W-ETN21 Restriction d’utilisation La carte ETN21 doit être configure en Unit No 0 Le FB utilise le socket n°1 et le port TCP 502 Bloc Fonction MTCP_ETN_Client Client Modbus TCP pour ETN21 Conditions d'utilisation Le bloc fonction Modbus TCP Client propose certaines fonctionnalités de lecture/écriture conformément aux spécifications définis par l'organisation Modbus. Les blocs fonction MTCP_ETN_Client sont proposés 'tel que' et peuvent servir de base de développement. Les utilisateurs doivent, au préalable, tester leur adéquation avec l'application finale. Omron France ne pourra en aucun cas être tenu pour responsable en cas de dysfonctionnement de l'application finale. Principe Le bloc fonction MTCP_ETN_Connect établit une connexion avec un serveur Modbus TCP dès lors que l'entrée Connect est active. La sortie ENO du FB connect autorise l’exécution des FB de lecture/écriture via l’entrée EN. Liste des commandes de lecture/écriture implémentées Code 0x01 0x02 0x03 0x04 0x05 0x06 0x0F 0x10 Fonction Modbus Read coils Read Input Status Read Holding Registers Read Input Registers Write Single Coil Write Single Register Write Multiple Coils Write Multiple Registers Bloc fonction MTCP_ETN_Fn01 MTCP_ETN_Fn02 MTCP_ETN_Fn03 MTCP_ETN_Fn04 MTCP_ETN_Fn05 MTCP_ETN_Fn06 MTCP_ETN_Fn0F MTCP_ETN_Fn10 Mémoires utilisées par les blocs fonction Type adresse émission D32500-D32506 réception D32510–D32642 Descriptions Zone de consignation de la requête Zone de réception de la réponse Drapeaux et commandes relatifs à la carte ETN21 (Unit n°0) Type adresse Descriptions Drapeau/commande CIO1500- CIO1524 Pour plus de détails : Socket Service de W421 Paramètres D 30000 - D30099 1- Variable d’E/S du bloc fonction MTCP_ETN_Connect Variables d’entrée Nom EN IP_Address1 IP_Address2 IP_Address3 IP_Address4 Connect JPV type Bool valeur OFF, ON Description Activation du FB UINT 00 - FF Adresse IP du serveur (octet 1,2,3,4) Bool OFF, ON Demande de connexion au serveur 03/02/2014 Page 2/7 Bloc Fonction MTCP_ETN_Client Variables de sortie Nom type ENO Bool Error Bool Error_Code UINT Waiting_Server Bool Client Modbus TCP pour ETN21 valeur OFF, ON OFF, ON 0 - FFFF OFF-ON Description ON : Connecté au serveur Drapeau d’erreur Code erreur renvoyé par la fonction socket ou bien par le serveur Modbus TCP (voir tableau plus bas). ON : en attente de synchronisation du serveur 2- Variable d’Entrée des FB MTCP_ETN_Fn01, Fn03, Fn05, Fn06, Fn0F et Fn10 MTCP_ETN_Fn01 MTCP_ETN_Fn02 EN Coil_Address Coil_Qty RespData_DM Cmd_Read SlaveID JPV type valeur Bool UINT UINT UINT Bool Word OFF, ON 0 - FFFF 0 - 00FF 0 - FFFF OFF, ON 1 - 255 Description Activation du FB (sortie ENO du FB Connect) Adresse de la 1ère bobine Nombre de bobines Destination des données (mémoire DM) Commande de lecture N° d’esclave (0 = FF par défaut) MTCP_ETN_Fn03 MTCP_ETN_Fn04 EN Register_Address Register_Qty RespData_DM Cmd_Read SlaveID type valeur Description Bool UINT UINT UINT Bool Word OFF, ON 0 - FFFF 0 - 00FF 0 - FFFF OFF, ON 1 - 255 Activation du FB (sortie ENO du FB Connect) Adresse du 1er registre Nombre de registres Destination des données (mémoire DM) Commande de lecture N° d’esclave (0 = FF par défaut) MTCP_ETN_Fn05 EN Coil_Address Value Cmd_Write SlaveID type Bool UINT Bool Bool Word valeur OFF, ON 0 - FFFF OFF, ON OFF, ON 1 - 255 Description Activation du FB (sortie ENO du FB Connect) Adresse de la bobine Valeur ON/OFF à écrire Commande d’écriture N° d’esclave (0 = FF par défaut) MTCP_ETN_Fn06 EN Register_Address Value Cmd_Write SlaveID type Bool UINT UINT Bool Word valeur OFF, ON 0 - FFFF 0 - FFFF OFF, ON 1 - 255 Description Activation du FB (sortie ENO du FB Connect) Adresse du registre Valeur à écrire dans le registre Commande d’écriture N° d’esclave (0 = FF par défaut) MTCP_ETN_Fn0F EN Coil_Address Coil_Qty DataAddress_DM Cmd_Write SlaveID type Bool UINT UINT UINT Bool Word valeur OFF, ON 0 - FFFF 0 - 00FF 0 - FFFF OFF, ON 1 - 255 Description Activation du FB (sortie ENO du FB Connect) Adresse de la 1ère bobine Nombre de bobine à écrire Source des données (mémoire DM) Commande de lecture N° d’esclave (0 = FF par défaut) MTCP_ETN_Fn10 EN Register_Address Register_Qty DataAdress_DM Cmd_Write SlaveID type Bool UINT UINT UINT Bool Word valeur OFF, ON 0 - FFFF 0 - 00FF 0 - FFFF OFF, ON 1 - 255 Description Activation du FB (sortie ENO du FB Connect) Adresse du 1ère registre Nombre de registre Source des données (mémoire DM) Commande d’écriture N° d’esclave (0 = FF par défaut) 03/02/2014 Page 3/7 Bloc Fonction MTCP_ETN_Client Client Modbus TCP pour ETN21 3- Variables de sorties des FB MTCP_ETN_Fn01, Fn03, Fn05, Fn06, Fn0F et Fn10 Name ENO Rcv_Counter Error Error_Code type Bool UINT Bool UINT valeur OFF, ON 0 - FFFF OFF, ON 0 - FFFF Description ON : Connecté au serveur Compteur de reception de réponses Drapeau d’erreur d’exécution Code erreur renvoyé par la fonction socket TCP Open Active ou bien par le serveur Modbus TCP (voir tableau ci-après). Code erreur renvoyé par le serveur Modbus TCP (Modbus exception response) Code 0001 0002 0003 Description ILLEGAL FUNCTION ILLEGAL DATA ADDRESS ILLEGAL DATA VALUE Code erreur renvoyé par le service Socket TCP Open Active, Send et Receive 2607 0302 1100 1101 1103 110C 220F 2210 2211 2606 2607 0020 003E 0045 004B 004E 0051 0053 0080 0081 JPV Socket already in use CPU Unit error: cannot execute Number bytes to send/receive not in allowed range The area designation of the Send/Receive Data address is not in allowable range The bit number in the Send/Receive data address is not in allowable range Request switch turned ON during other processing Specified socket is already processing a SEND request The specified socket is not connected Unit is busy: cannot execute Specified socket is already open as UDP socket Specified socket service parameter area is already being used by another socket Connection with remote socket broken during Send (EPIPE) Internal buffer cannot be obtained due to high reception trafic Error in communication with remote node Error communication with remote node (again) Remote IP address parameter error (ET unreach) Remote IP address parameter error (Host unreach) Error communication with remote HOST Receive request Timed out Specified socket was closed during receive processing 03/02/2014 Page 4/7 Bloc Fonction MTCP_ETN_Client Client Modbus TCP pour ETN21 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 0x01 0x00 0x14 0x00 0x13 Code Fonction Adresss (poids fort) Adresse (poids faible) Quantité (poids fort) Quantité (poids faible) 0CH 1CH 2CH 3CH 15 15 31 1 47 63 14 14 30 0 46 62 13 13 29 1 45 61 12 12 28 1 44 60 11 11 27 1 43 59 Donnée 0x01 0x03 0xCD 0x6B 0x05 Code Fonction Nbre d’octets Bobines 27-20 Bobines 35-28 Bobines 38-36 10 10 26 1 42 58 9 9 25 0 41 57 8 8 24 0 40 56 7 7 23 1 39 55 6 6 22 1 38 1 54 5 5 21 0 37 0 53 4 4 20 1 36 1 52 3 3 19 35 0 51 2 2 18 34 1 50 1 1 17 33 1 49 0 0 16 32 0 48 1 0 1 1 17 33 1 49 0 0 16 32 0 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 0x03 0x03 0xE8 0x00 0x03 Code Fonction Adresse (poids fort) Adresse (poids faible) Quantité (poids fort) Quantité (poids faible) DM 1000 1001 1002 15 14 13 12 11 Donnée 0x03 0x06 0xAB 0x12 0x56 0x78 0x97 0x13 Code Fonction Nbre d’octets Registre DM1000 (poids fort) Registre DM1000 (poids faible) Registre DM1001 (poids fort) Registre DM1001 (poids faible) Registre DM1002 (poids fort) Registre DM1002 (poids faible) 10 9 A 5 9 8 7 6 5 B 6 7 4 3 2 1 7 1 2 8 3 Ecriture d’une bobine (CIO) Exemple: écriture d’un bit (CIO 0002.02 ON) Requête Code Fonction Adresss (poids fort) Adresse (poids faible) Valeur (poids fort) Valeur (poids faible) 0CH 1CH 2CH 3CH 15 15 31 1 47 63 14 14 30 0 46 62 13 13 29 1 45 61 Donnée 0x05 0x00 0x22 0xFF 0x00 12 12 28 1 44 60 11 11 27 1 43 59 Réponse Identique à la requête Code Fonction Adresss (poids fort) Adresse (poids faible) Valeur (poids fort) Valeur (poids faible) 10 10 26 1 42 58 9 9 25 0 41 57 8 8 24 0 40 56 7 7 23 1 39 55 Donnée 0x05 0x00 0x22 0xFF 0x00 6 6 22 1 38 1 54 5 5 21 0 37 0 53 4 4 20 1 36 1 52 3 3 19 35 0 51 2 2 18 34 1 50 Les caractères en italique montre la valeur ON/OFF(1/0) du bit. JPV 03/02/2014 Page 5/7 Bloc Fonction MTCP_ETN_Client Client Modbus TCP pour ETN21 Ecriture d’un registre (DM) Exemple: écriture de &h3AC5 dans le DM 2000. Requête Donnée 0x06 0x07 0xD0 0x3A 0xC5 Code Fonction Adresse (poids fort) Adresse (poids faible) Valeur (poids fort) Valeur (poids faible) DM 2000 2001 2002 15 14 13 12 11 Réponse Identique à la requête Code Fonction Adresse (poids fort) Adresse (poids faible) Valeur (poids fort) Valeur (poids faible) 10 3 9 8 7 6 A 5 Donnée 0x06 0x07 0xD0 0x3A 0xC5 4 3 2 C 1 0 1 0 5 Ecriture de plusieurs registres Exemple: écriture de 2 mots DM1000-1001. Requête Réponse Code Fonction Adresse (poids fort) Adresse (poids faible) Nbre de registres (poids fort) Nbre de registres (poids faible) Nombre d’octet de données 1ère valeur (poids fort) 1ère valeur (poids faible) 2ème valeur (poids fort) 2ème valeur (poids faible) DM 1000 1001 15 14 13 12 Donnée 0x10 0x03 0xE8 0x00 0x02 0x04 0x3A 0xC5 0x97 0x13 11 10 3 9 Donnée 0x10 0x03 0xE8 0x00 0x02 Code Fonction Adresse (poids fort) Adresse (poids faible) Nbre de registres (poids fort) Nbre de registres (poids faible) 9 8 7 6 A 7 5 4 3 2 C 1 5 3 Ecriture de plusieurs bobines Exemple : écriture de 10 bits ( xxxx xx11 1100 1101) to CIO 0001.04.(X = ignoré.) Requête Réponse Code Fonction Adresse (poids fort) Adresse (poids faible) Nbre de bobines (poids fort) Nbre de bobines (poids faible) Nombre d’octet de données 1ère valeur (poids fort) 2ème valeur (poids fort) JPV Donnée 0x0F 0x00 0x13 0x00 0x0A 0x02 0x3A 0x01 Donnée 0x0F 0x00 0x13 0x00 0x0A Code Fonction Adresse (poids fort) Adresse (poids faible) Nbre de bobines (poids fort) Nbre de bobines (poids faible) 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 0 30 0 29 0 28 1 27 0 26 0 25 1 24 1 23 1 22 0 21 1 20 0 19 0 18 0 17 0 16 0 03/02/2014 Page 6/7 Bloc Fonction MTCP_ETN_Client Client Modbus TCP pour ETN21 Code erreur renvoyé par le serveur Modbus TCP (Modbus exception response) Code 0001 0002 0003 Description ILLEGAL FUNCTION ILLEGAL DATA ADDRESS ILLEGAL DATA VALUE Code erreur renvoyé par le service Socket TCP Open Active, Send et Receive 2607 0302 1100 1101 1103 110C 220F 2210 2211 2606 2607 0020 003E 0045 004B 004E 0051 0053 0080 0081 JPV Socket already in use CPU Unit error: cannot execute Number bytes to send/receive not in allowed range The area designation of the Send/Receive Data address is not in allowable range The bit number in the Send/Receive data address is not in allowable range Request switch turned ON during other processing Specified socket is already processing a SEND request The specified socket is not connected Unit is busy: cannot execute Specified socket is already open as UDP socket Specified socket service parameter area is already being used by another socket Connection with remote socket broken during Send (EPIPE) Internal buffer cannot be obtained due to high reception trafic Error in communication with remote node Error communication with remote node (again) Remote IP address parameter error (ET unreach) Remote IP address parameter error (Host unreach) Error communication with remote HOST Receive request Timed out Specified socket was closed during receive processing 03/02/2014 Page 7/7
© Copyright 2024 ExpyDoc