ADDM : convertir une chaîne en adresse
Le bloc fonction ADDM convertit une adresse cible représentée sous la forme d'une chaîne, en une structure ADDRESS. Vous pouvez utiliser cette structure ADDRESS comme une entrée dans un bloc fonction de communication.
Description des paramètres spécifiques du bloc fonction ADDM
Entrée/Sortie |
Type |
Commentaire |
---|---|---|
AddrTable |
ADDRESS |
Structure ADDRESS à créer par le bloc fonction. |
Entrée |
Type |
Commentaire |
---|---|---|
Execute |
BOOL |
Exécute la fonction lors du front montant. |
Addr |
STRING |
Adresse de type STRING à convertir en type ADDRESS (voir détails ci-dessous). |
Sortie |
Type |
Commentaire |
---|---|---|
Done |
BOOL |
Done prend la valeur TRUE lorsque la fonction est exécutée correctement. NOTE : En cas d'annulation de l'opération avec l'entrée Abort, le paramètre Done n'est pas défini sur 1 (Aborted uniquement). |
Error |
BOOL |
Error est défini sur TRUE lorsque la fonction s'arrête suite à la détection d'une erreur. Lorsqu'une erreur est détectée, CommError et OperError permettent d'obtenir des informations sur celle-ci. |
CommError |
BYTE |
CommErrorLe paramètre contient lescodes des erreurs de communication. |
NOTE : Un front montant sur l'entrée Execute lance la conversion et renvoie une mise à jour instantanée de AddrTable. Cependant, si une erreur est détectée (c'est-à-dire que la chaîne Addr est incorrecte), le paramètre AddrTable conserve la dernière valeur.
Les blocs fonction nécessitent un front montant pour être déclenchés. Le bloc fonction doit d'abord visualiser l'entrée ExecuteFALSE avec la valeur pour pouvoir détecter le front montant suivant.
|
FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT |
Effectuez toujours le premier appel d'un bloc fonction avec son entrée Execute définie sur FALSE afin que le front montant suivant soit détecté. |
Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. |
Chaîne Addr pour le format d'adresse ASCII
Pour l'adressage ASCII, seul le numéro du port de communication est nécessaire :
'<communication port number>'
Par exemple, utilisez la chaîne « 2 » pour envoyer un message libre sur la ligne série 2.
Le tableau suivant décrit les champs dans la sortie ADDM pour le format d'adresse ASCII :
Champ |
Type |
Valeur |
Exemple |
---|---|---|---|
_Type |
BYTE |
Réservée |
Non utilisé |
_CliID |
BYTE |
Réservée |
Non utilisé |
Rack |
BYTE |
Numéro de rack (toujours 0) |
0 |
Module |
BYTE |
Numéro de module (toujours 0) |
0 |
Link |
<communication port number> |
2 |
|
_ProtId |
BYTE |
Non utilisé |
Non utilisé |
AddrLen |
BYTE |
0 |
0 |
UnitId |
BYTE |
Non utilisé |
Non utilisé |
AddrExt |
ADDR_EXT |
Non utilisé |
Non utilisé |
Addr STRING pour le format d'adresse Modbus TCP
Adresse d'un esclave Modbus TCP standard
Pour le format d'adresse d'un esclave Modbus TCP standard, le numéro du port de communication (3 pour le port Ethernet intégré) et l'adresse IP cible sont nécessaires :
'<communication port number>{<IP address>}'
NOTE : Un esclave Modbus TCP standard utilise l'adresse Modbus 255 (la valeur UnitId par défaut). Cependant, la valeur d’un équipement Modbus TCP peut varier (par exemple, un TeSys utilise l'adresse Modbus 1). Dans ce cas, ajoutez la valeur UnitId :
'<communication port number>{<IP address>}<UnitId>'
Le port TCP 502 est utilisé par défaut. Vous pouvez utiliser un port non standard en ajoutant son numéro à l'adresse IP :
'<communication port number>{<IP address>:<port>}'
Par exemple, pour envoyer un message à l'adresse IP de l'esclave Modbus TCP 192.168.1.2 avec le port TCP 502 standard, utilisez la chaîne suivante : '3{192.168.1.2}'
La fonction ADDM remplit l'entrée/sortie AddrTable avec les valeurs suivantes :
Champ |
Type |
Valeur |
Exemple |
---|---|---|---|
_Type |
BYTE |
Réservée |
Non utilisé |
_CliID |
BYTE |
Réservée |
Non utilisé |
Rack |
BYTE |
Numéro de rack |
0 |
Module |
BYTE |
Numéro de module |
0 |
Link |
<communication port number> |
3 |
|
_ProtId |
BYTE |
0 pour Modbus |
0 |
AddrLen |
BYTE |
UnitID + AdrExtLongueur des paramètres en octets |
7 |
UnitId |
BYTE |
Adresse Modbus (255 par défaut) |
255 |
AddrExt |
TCP_ADDR_EXT |
A |
192 |
B |
168 |
||
C |
1 |
||
D |
2 |
||
<port> (par défaut = 502) |
502 |
Adresse d'un esclave Modbus série par le biais d'une passerelle Ethernet/Ligne série
Vous pouvez également adresser un esclave Modbus par le biais d'une passerelle Ethernet/Ligne série :
La requête inclut le numéro du port de communication, l'adresse IP de la passerelle avec ou sans port TCP et l'adresse de l'esclave Modbus série (paramètre UnitId) :
'<communication port number>{<IP address>}<slave address>'
Par exemple, pour envoyer un message à l'adresse 5 de l'esclave Modbus série par le biais d'une passerelle Ethernet/Ligne série à l'adresse IP 192.168.1.2 avec le port TCP 502 standard, utilisez la chaîne suivante : '3{192.168.1.2}5'
La fonction ADDM remplit l'entrée/sortie AddrTable avec les valeurs suivantes :
Champ |
Taille |
Valeur |
Exemple |
---|---|---|---|
_Type |
BYTE |
Réservée |
Non utilisé |
_CliID |
BYTE |
Réservée |
Non utilisé |
Rack |
BYTE |
Numéro de rack |
0 |
Module |
BYTE |
Numéro de module |
0 |
Link |
<communication port number> |
3 |
|
_ProtId |
BYTE |
0 pour Modbus |
0 |
AddrLen |
BYTE |
UnitID + AdrExtLongueur des paramètres en octets |
7 |
UnitId |
BYTE |
<Adresse de l'esclave> |
5 |
AddrExt |
TCP_ADDR_EXT |
A |
192 |
B |
168 |
||
C |
1 |
||
D |
2 |
||
Numéro de port TCP (par défaut = 502) |
502 |
Cet exemple montre l’implémentation du bloc fonction ADDM en association avec le bloc fonction SINGLE_WRITE. Le bloc fonction ADDM convertit l’objet STRING '1.8' en variable stSlave8OnSL1 de type ADDRESS. Si la conversion est correctement effectuée, l’entrée Execute du bloc fonction suivant SINGLE_WRITE est déclenchée.