ADDM: conversione di una stringa in un indirizzo

Descrizione della funzione

Il blocco funzione ADDM converte un indirizzo di destinazione rappresentato come stringa in una struttura ADDRESS. Si può utilizzare la struttura ADDRESS come voce in un blocco funzione di comunicazione.

Rappresentazione grafica

ADDM - Descrizione specifica del parametro

Ingresso/Uscita

Tipo

Commento

AddrTable

ADDRESS

questa è la struttura ADDRESS che deve essere completata dal blocco funzione.

Ingresso

Tipo

Commento

Execute

BOOL

Esegue la funzione sul fronte di salita.

Addr

STRING

Indirizzo nel tipo STRING da convertire in tipo ADDRESS (vedere i dettagli sotto).

Uscita

Tipo

Commento

Done

BOOL

Done è impostato a TRUE quando la funzione è completata correttamente.

NOTA: Quando l'operazione viene interrotta con l'ingresso Abort, Done non è impostato a 1 (solo Aborted).

Error

BOOL

Error è impostato a TRUE quando la funzione si arresta se viene rilevato un errore. Quando viene rilevato un errore, le relative informazioni sono contenute in CommError e OperError.

CommError

BYTE

CommError contiene i codici di errore della comunicazione.

NOTA: Un fronte di salita sull'ingresso Execute esegue la conversione e restituisce un aggiornamento immediato di AddrTable. Tuttavia, AddrTable conserva l'ultimo valore quando viene rilevato un errore (ovvero quando la stringa Addr non è corretta).

I blocchi funzione richiedono un fronte di salita per poter essere inizializzati. Il blocco funzione deve prima riconoscere l'ingresso Execute come FALSE per poter rilevare un successivo fronte di salita.

 AVVERTIMENTO
FUNZIONAMENTO IMPREVISTO DELL'APPARECCHIATURA
Effettuare sempre la prima chiamata a un blocco funzione con l'ingresso Execute impostato a FALSE in modo che possa rilevare un successivo fronte di salita.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.

STRINGA Addr per il formato di indirizzo ASCII

Per l'indirizzamento ASCII è richiesto solo il numero della porta di comunicazione:

'<communication port number>'

Ad esempio, per inviare un messaggio definito dall'utente sulla linea seriale 2 utilizzare la stringa '2'.

Questa tabella definisce i campi nell'uscita ADDM per il formato dell'indirizzo ASCII:

Campo

Tipo

Valore

Esempio

_Type

BYTE

Riservato

Non utilizzato

_CliID

BYTE

Riservato

Non utilizzato

Rack

BYTE

Numero rack (sempre 0)

0

Module

BYTE

Numero modulo (sempre 0)

0

Link

LinkNumber

<communication port number>

2

_ProtId

BYTE

non utilizzato

non utilizzato

AddrLen

BYTE

0

0

UnitId

BYTE

Non utilizzato

non utilizzato

AddrExt

ADDR_EXT

non utilizzato

non utilizzato

Addr STRING per il formato dell'indirizzo di Modbus TCP

Indirizzo di uno slave standard di Modbus TCP

Per il formato dell'indirizzo standard di Modbus TCP sono richiesti il numero della porta di comunicazione (3 per la porta Ethernet incorporata) e l'indirizzo IP di destinazione:

'<communication port number>{<IP address>}'

NOTA: Uno slave standard Modbus TCP utilizza l'indirizzo Modbus 255 (il valore predefinito UnitId). Tuttavia, un dispositivo Modbus TCP può avere un valore diverso (un dispositivo TeSys, ad esempio, ha l'indirizzo Modbus 1). In questo caso, aggiungere il valore UnitId:

'<communication port number>{<IP address>}<UnitId>'

La porta TCP 502 è utilizzata in modo predefinito. È possibile utilizzare una porta non standard aggiungendo all'indirizzo IP il numero di porta richiesto:

'<communication port number>{<IP address>:<port>}'

Ad esempio, per inviare un messaggio all'indirizzo IP slave di Modbus TCP 192.168.1.2 che utilizza la porta TCP 502 standard, immettere la stringa: '3{192.168.1.2}'

La funzione ADDM completa l'ingresso/uscita AddrTable con questi valori:

Campo

Tipo

Valore

Esempio

_Type

BYTE

Riservato

Non utilizzato

_CliID

BYTE

Riservato

Non utilizzato

Rack

BYTE

Numero rack

0

Module

BYTE

Numero modulo

0

Link

LinkNumber

<communication port number>

3

_ProtId

BYTE

0 per Modbus

0

AddrLen

BYTE

UnitID + AdrExt lunghezza in byte

7

UnitId

BYTE

indirizzo Modbus (valore predefinito = 255)

255

AddrExt

TCP_ADDR_EXT

A

192

B

168

C

1

D

2

<porta> (valore predefinito = 502)

502

Indirizzo di uno slave Modbus seriale tramite gateway Ethernet/seriale

È anche possibile indirizzare uno slave Modbus tramite un gateway Ethernet o una linea seriale:

La richiesta include il numero della porta di comunicazione, l'indirizzo IP del gateway (con o senza porta TCP) e l'indirizzo slave Modbus seriale (parametro UnitId):

'<communication port number>{<IP address>}<slave address>'

Ad esempio, per inviare un messaggio all'indirizzo slave Modbus seriale 5 tramite il gateway Ethernet/linea seriale sull'indirizzo IP 192.168.1.2 che utilizza la porta TCP 502 standard, immettere la stringa: '3{192.168.1.2}5'

La funzione ADDM completa l'ingresso/uscita AddrTable con questi valori:

Campo

Dimensione

Valore

Esempio

_Type

BYTE

Riservato

Non utilizzato

_CliID

BYTE

Riservato

Non utilizzato

Rack

BYTE

Numero rack

0

Module

BYTE

Numero modulo

0

Link

LinkNumber

<communication port number>

3

_ProtId

BYTE

0 per Modbus

0

AddrLen

BYTE

UnitID + AdrExt lunghezza in byte

7

UnitId

BYTE

<Indirizzo slave>

5

AddrExt

TCP_ADDR_EXT

A

192

B

168

C

1

D

2

numero porta TCP (valore predefinito = 502)

502

Esempio

Questo esempio mostra l'implementazione del blocco funzione ADDM in combinazione con il blocco funzione SINGLE_WRITE. Il blocco funzione ADDM converte la data STRING '1.8' alla variabile stSlave8OnSL1 del tipo ADDRESS. Se la conversione riesce, viene attivato l'ingresso Execute del successivo blocco funzione SINGLE_WRITE.