Bloc Fonction MTCP_ETN_Client Client… - Support

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