ADDM
: conversione di una stringa in un indirizzo
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.
ADDM
- Descrizione specifica del parametro
Ingresso/Uscita |
Tipo |
Commento |
---|---|---|
|
ADDRESS |
questa è la struttura ADDRESS che deve essere completata dal blocco funzione. |
Ingresso |
Tipo |
Commento |
---|---|---|
|
BOOL |
Esegue la funzione sul fronte di salita. |
|
STRING |
Indirizzo nel tipo STRING da convertire in tipo ADDRESS (vedere i dettagli sotto). |
Uscita |
Tipo |
Commento |
---|---|---|
|
BOOL |
NOTA: Quando l'operazione viene interrotta con l'ingresso Abort, Done non è impostato a 1 (solo
Aborted ).
|
|
BOOL |
|
|
BYTE |
|
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 | |
---|---|
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 |
---|---|---|---|
|
BYTE |
Riservato |
Non utilizzato |
|
BYTE |
Riservato |
Non utilizzato |
|
BYTE |
Numero rack (sempre 0) |
0 |
|
BYTE |
Numero modulo (sempre 0) |
0 |
|
|
2 |
|
|
BYTE |
non utilizzato |
non utilizzato |
|
BYTE |
0 |
0 |
|
BYTE |
Non utilizzato |
non utilizzato |
|
ADDR_EXT |
non utilizzato |
non utilizzato |
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>}'
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 |
---|---|---|---|
|
BYTE |
Riservato |
Non utilizzato |
|
BYTE |
Riservato |
Non utilizzato |
|
BYTE |
Numero rack |
0 |
|
BYTE |
Numero modulo |
0 |
|
|
3 |
|
|
BYTE |
0 per Modbus |
0 |
|
BYTE |
|
7 |
|
BYTE |
indirizzo Modbus (valore predefinito = 255) |
255 |
|
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 |
---|---|---|---|
|
BYTE |
Riservato |
Non utilizzato |
|
BYTE |
Riservato |
Non utilizzato |
|
BYTE |
Numero rack |
0 |
|
BYTE |
Numero modulo |
0 |
|
|
3 |
|
|
BYTE |
0 per Modbus |
0 |
|
BYTE |
|
7 |
|
BYTE |
<Indirizzo slave> |
5 |
|
TCP_ADDR_EXT |
A |
192 |
B |
168 |
||
C |
1 |
||
D |
2 |
||
numero porta TCP (valore predefinito = 502) |
502 |
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
.