Machine Expert > V2.1 > Software > Bibliotecas, Plantillas y Ejemplos > Bibliotecas > Bibliotecas de comunicación > Guía de la biblioteca PLCCommunication > Descripciones de bloques de funciones > addm: Convertir una cadena en una dirección

ADDM: Convertir una cadena en una dirección

Descripción de la funció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.

Representación gráfica

Descripción de parámetros específicos de ADDM

Entrada/salida

Tipo

Comentario

AddrTable

ADDRESS

Esta es la estructura de ADDRESS que debe completar el bloque de funciones.

Entrada

Tipo

Comentario

Execute

BOOL

Ejecuta la función en el flanco ascendente.

Addr

STRING

Dirección en el tipo STRING que convertir al tipo ADDRESS (consulte los detalles más adelante).

Salida

Tipo

Comentario

Done

BOOL

Done se establece en TRUE cuando la función se lleva a cabo correctamente.

NOTA: Cuando la operación se interrumpe con la entrada Abort, Done no se establece en 1 (solo Aborted).

Error

BOOL

Error se establece en TRUE cuando la función se detiene debido a la detección de un error. Cuando se ha detectado un error, CommError y OperError contienen información sobre el error detectado.

CommError

BYTE

CommError contiene códigos de errores de comunicación.

NOTA: Un flanco ascendente de la entrada 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
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Realice siempre la primera llamada a un bloque de funciones con la entrada Execute establecida en FALSE de manera que pueda detectar un flanco ascendente posterior.
Si no se siguen estas instrucciones, pueden producirse lesiones graves, muerte o daños en el equipo.

Addr STRING para el formato de dirección ASCII

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

_Type

BYTE

Reservado

No se utiliza

_CliID

BYTE

Reservado

No se utiliza

Rack

BYTE

Número de bastidor (siempre 0)

0

Module

BYTE

Número de módulo (siempre 0)

0

Link

LinkNumber

<communication port number>

2

_ProtId

BYTE

No se utiliza

No se utiliza

AddrLen

BYTE

0

0

UnitId

BYTE

No se utiliza

No se utiliza

AddrExt

ADDR_EXT

No se utiliza

No se utiliza

Addr STRING para el formato de dirección de TCP Modbus

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>}'

NOTA: Un esclavo estándar TCP Modbus utiliza la dirección de Modbus 255 (el valor predeterminado 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

_Type

BYTE

Reservado

No se utiliza

_CliID

BYTE

Reservado

No se utiliza

Rack

BYTE

Número de bastidor

0

Module

BYTE

Número de módulo

0

Link

LinkNumber

<communication port number>

3

_ProtId

BYTE

0 para Modbus

0

AddrLen

BYTE

UnitID + AdrExt Longitud de en bytes

7

UnitId

BYTE

Dirección Modbus (255 de forma predeterminada)

255

AddrExt

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

_Type

BYTE

Reservado

No se utiliza

_CliID

BYTE

Reservado

No se utiliza

Rack

BYTE

Número de bastidor

0

Module

BYTE

Número de módulo

0

Link

LinkNumber

<communication port number>

3

_ProtId

BYTE

0 para Modbus

0

AddrLen

BYTE

UnitID + AdrExt Longitud de en bytes

7

UnitId

BYTE

<Dirección de esclavo>

5

AddrExt

TCP_ADDR_EXT

A

192

B

168

C

1

D

2

Número de puerto TCP (valor predeterminado = 502)

502

Ejemplo

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.