ADDM : Conversion d'une chaîne en adresse

Description de la fonction

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.

Représentation graphique

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 est défini sur TRUE lorsque la fonction s'est exécutée correctement.

NOTE : En cas d'abandon de l'opération avec l'entrée Abort, 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

CommError contient les codes d'erreur 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.

 AVERTISSEMENT
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 défini par l'utilisateur 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é

Inutilisé

_CliID

BYTE

Réservé

Inutilisé

Rack

BYTE

Numéro de rack (toujours 0)

0

Module

BYTE

Numéro de module (toujours 0)

0

Link

LinkNumber

<communication port number>

2

_ProtId

BYTE

Inutilisé

Inutilisé

AddrLen

BYTE

0

0

UnitId

BYTE

Inutilisé

Inutilisé

AddrExt

ADDR_EXT

Inutilisé

Inutilisé

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 d'esclave Modbus TCP 192.168.1.2 à l'aide du port TCP standard 502, 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é

Inutilisé

_CliID

BYTE

Réservé

Inutilisé

Rack

BYTE

Numéro de rack

0

Module

BYTE

Numéro de module

0

Link

LinkNumber

<communication port number>

3

_ProtId

BYTE

0 pour Modbus

0

AddrLen

BYTE

UnitID + AdrExt Longueur 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 d'esclave Modbus série par le biais d'une passerelle Ethernet/ligne série à l'adresse IP 192.168.1.2 via 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é

Inutilisé

_CliID

BYTE

Réservé

Inutilisé

Rack

BYTE

Numéro de rack

0

Module

BYTE

Numéro de module

0

Link

LinkNumber

<communication port number>

3

_ProtId

BYTE

0 pour Modbus

0

AddrLen

BYTE

UnitID + AdrExt Longueur 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

Exemple

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.