ADDM
: Convertir una cadena en una dirección
El bloque de funciones ADDM
convierte una dirección de destino representada como una cadena en una estructura ADDRESS. Puede utilizar la estructura ADDRESS como entrada de un bloque de funciones de comunicación.
ADDM
Entrada/salida |
Tipo |
Comentario |
---|---|---|
|
ADDRESS |
Esta es la estructura de ADDRESS que debe completar el bloque de funciones. |
Entrada |
Tipo |
Comentario |
---|---|---|
|
BOOL |
Ejecuta la función en el flanco ascendente. |
|
STRING |
Dirección en el tipo STRING que convertir al tipo ADDRESS (consulte los detalles más adelante). |
Salida |
Tipo |
Comentario |
---|---|---|
|
BOOL |
NOTA: Cuando la operación se interrumpe con la entrada Abort, Done no se establece en 1 (solo
Aborted ).
|
|
BOOL |
|
|
BYTE |
|
Execute
ejecuta la conversión y devuelve una actualización inmediata de AddrTable
. Sin embargo, AddrTable
retiene el último valor cuando se detecta un error (es decir, cuando la cadena Addr
no es correcta).
Los bloques de funciones requieren un flanco ascendente para iniciarse. El bloque de funciones debe ver primero la entrada Execute
como FALSE
para detectar un flanco ascendente posterior.
ADVERTENCIA | |
---|---|
Para las direcciones ASCII, solo se solicita el número del puerto de comunicaciones:
'<communication port number>'
Por ejemplo, para enviar un mensaje definido por el usuario en la línea serie 2, utilice la cadena '2'
.
En esta tabla se definen los campos en la salida ADDM para el formato de dirección ASCII:
Campo |
Tipo |
Valor |
Ejemplo |
---|---|---|---|
|
BYTE |
Reservado |
No se utiliza |
|
BYTE |
Reservado |
No se utiliza |
|
BYTE |
Número de bastidor (siempre 0) |
0 |
|
BYTE |
Número de módulo (siempre 0) |
0 |
|
|
2 |
|
|
BYTE |
No se utiliza |
No se utiliza |
|
BYTE |
0 |
0 |
|
BYTE |
No se utiliza |
No se utiliza |
|
ADDR_EXT |
No se utiliza |
No se utiliza |
Dirección de un esclavo estándar TCP Modbus
Para el formato de la dirección del esclavo estándar TCP Modbus, se solicitan el número de puerto de comunicaciones (3 para el puerto Ethernet incorporado) y la dirección IP de destino:
'<communication port number>{<IP address>}'
UnitId
). Sin embargo, un dispositivo TCP Modbus puede tener un valor diferente (por ejemplo, un dispositivo TeSys tiene la dirección de Modbus 1). En este caso, añada el valor UnitId
:
'<communication port number>{<IP address>}<UnitId>'
Se utiliza de forma predeterminada el puerto TCP 502. Es posible utilizar un puerto no estándar añadiendo el número de puerto solicitado a la dirección IP:
'<communication port number>{<IP address>:<port>}'
Por ejemplo, para enviar un mensaje a la dirección IP del esclavo TCP Modbus 192.168.1.2 a través del puerto TCP estándar 502, utilice esta cadena: '3{192.168.1.2}'
La función ADDM
completa la entrada/salida AddrTable
con estos valores:
Campo |
Tipo |
Valor |
Ejemplo |
---|---|---|---|
|
BYTE |
Reservado |
No se utiliza |
|
BYTE |
Reservado |
No se utiliza |
|
BYTE |
Número de bastidor |
0 |
|
BYTE |
Número de módulo |
0 |
|
|
3 |
|
|
BYTE |
0 para Modbus |
0 |
|
BYTE |
|
7 |
|
BYTE |
Dirección Modbus (255 de forma predeterminada) |
255 |
|
TCP_ADDR_EXT |
A |
192 |
B |
168 |
||
C |
1 |
||
D |
2 |
||
<puerto> (valor predeterminado = 502) |
502 |
Dirección de un esclavo serie Modbus a través de la pasarela Ethernet/línea serie
También es posible dirigir un esclavo Modbus a través de una pasarela Ethernet/línea serie:
La petición incluye el número de puerto de comunicaciones, la dirección IP de la pasarela (con o sin puerto TCP) y la dirección del esclavo serie Modbus (parámetro UnitId):
'<communication port number>{<IP address>}<slave address>'
Por ejemplo, para enviar un mensaje a la dirección del esclavo serie Modbus 5 a través de una pasarela Ethernet/línea serie en la dirección IP 192.168.1.2 mediante el puerto TCP estándar 502, utilice esta cadena: '3{192.168.1.2}5'
La función ADDM
completa la entrada/salida AddrTable
con estos valores:
Campo |
Tamaño |
Valor |
Ejemplo |
---|---|---|---|
|
BYTE |
Reservado |
No se utiliza |
|
BYTE |
Reservado |
No se utiliza |
|
BYTE |
Número de bastidor |
0 |
|
BYTE |
Número de módulo |
0 |
|
|
3 |
|
|
BYTE |
0 para Modbus |
0 |
|
BYTE |
|
7 |
|
BYTE |
<Dirección de esclavo> |
5 |
|
TCP_ADDR_EXT |
A |
192 |
B |
168 |
||
C |
1 |
||
D |
2 |
||
Número de puerto TCP (valor predeterminado = 502) |
502 |
En el siguiente ejemplo se muestra la implementación conjunta de los bloques de funciones ADDM
y SINGLE_WRITE
. El bloque de funciones ADDM
convierte la STRING indicada '1.8' a la variable stSlave8OnSL1
de tipo ADDRESS
. Si la conversión se ha realizado correctamente, se activará la entrada Execute
del siguiente bloque de funciones SINGLE_WRITE
.