Beckhoff ADS

Conectar autómatas Beckhoff TwinCAT por ADS/AMS: la ruta AMS, el puerto del runtime, las rutas de símbolo y las longitudes de lectura.

Ver como Markdown

El controlador Beckhoff ADS habla con autómatas Beckhoff TwinCAT por ADS, el protocolo de automatización de TwinCAT transportado sobre rutas AMS. Los valores se direccionan por su ruta de símbolo en el programa del autómata, así que lo que se escribe es lo que declara el proyecto TwinCAT. Añada un dispositivo bajo el controlador Beckhoff ADS en el Connector; el panel muestra solo los campos que usa este protocolo.

Conexión

Campo Significado Por defecto
Host o IP Dirección IP del autómata. Su AMS Net Id se deriva de esta dirección como {ip}.1.1. vacío
Puerto El puerto AMS del runtime de destino. 0 usa el 851, el runtime 1 del PLC de TwinCAT 3; los demás runtimes de TwinCAT 3 cuentan hacia arriba desde ahí (852, 853, …). 0
IP local (AMS) La dirección IP propia de esta estación, de la que se deriva su AMS Net Id como {ip}.1.1. Tiene que coincidir con la ruta AMS configurada en el autómata. Cuando se deja vacía se reutiliza el valor de Host, lo que solo funciona si los dos extremos comparten la dirección, así que en la práctica conviene rellenarla. vacío
Intervalo de sondeo (ms) Periodo de lectura para todo el dispositivo, para los tags que no lo sustituyen. 1.000

La cabecera del dispositivo muestra el punto de conexión ya compuesto, por ejemplo ads://192.168.0.1:192.168.0.50:851 (IP local, IP del autómata, puerto AMS). Cada tag puede fijar su propio Intervalo de sondeo (ms); un valor de 0 en el tag recae en el intervalo del dispositivo.

ADS solo responde a las estaciones que el autómata conoce: añada en el autómata una ruta AMS estática (TwinCAT Engineering, SYSTEM → Routes, o el icono de TwinCAT del área de notificación) cuya dirección sea la IP de esta estación y cuyo AMS Net Id sea esa IP seguida de .1.1, igual a lo que el controlador deriva de IP local (AMS). Sin la ruta, la conexión falla aunque el camino de red esté perfecto.

Direccionamiento

Un tag Beckhoff se direcciona con dos campos de la tarjeta Origen del tag:

Campo Significado Valores aceptados Por defecto
Símbolo La ruta de símbolo de la variable en el programa del autómata. Obligatorio. texto libre, por ejemplo MAIN.fValue vacío
Longitud de lectura (bytes, en blanco = automático) Cuántos bytes se transfieren en cada lectura. En blanco, la lectura se dimensiona a partir del tipo de dato. 1 en adelante, o en blanco en blanco

La ruta de símbolo es exactamente lo que muestra TwinCAT: las variables de programa como MAIN.fValue, las listas de variables globales como GVL.MachineSpeed o GVL_Settings.rSetpoint. El controlador resuelve el símbolo por su nombre en el autómata y lee sus bytes en bruto. Las longitudes de lectura automáticas son:

Tipo de dato Longitud de lectura automática
Boolean 1 byte
Int32 4 bytes
Float 4 bytes
String 16 bytes

Para un String de más de 16 caracteres, ponga la Longitud de lectura de forma que cubra el tamaño declarado (un STRING(80) de TwinCAT necesita 80 bytes de texto). La línea de solo lectura Dirección de origen (bus) de la tarjeta Origen muestra la dirección ya compuesta mientras se edita.

Tipos de dato

El selector Tipo de dato ofrece los cuatro tipos que el controlador sabe transportar:

Tipo de dato Equivalente en el autómata Notas
Boolean BOOL 1 byte; distinto de cero es verdadero
Int32 DINT little-endian, igual que el autómata
Float REAL little-endian, igual que el autómata
String STRING texto hasta el primer NUL del búfer de lectura

El orden de bytes es el little-endian propio del autómata y se gestiona automáticamente; no hay opción de orden de bytes. Una lectura String descodifica el búfer devuelto hasta el primer terminador NUL, así que el relleno que va detrás de un texto corto nunca se cuela en el valor. Los demás anchos de TwinCAT (INT, LREAL, WORD, …) no se ofrecen: exponga esa variable en el programa del autómata como uno de los cuatro tipos de arriba para poder leerla aquí.

Escrituras

Se pueden escribir los tags cuyo Acceso es Lectura y escritura o Solo escritura. Una escritura resuelve el mismo símbolo y escribe los bytes del valor: 1 byte en Boolean, 4 bytes en Int32 y en Float. Una escritura String deposita toda la Longitud de lectura del tag: los bytes UTF-8 del texto delante y ceros detrás, así que un texto más corto escrito sobre uno más largo sustituye el valor entero y del antiguo no sobrevive nada. Un texto que no cabe en la longitud declarada se rechaza nombrando la longitud en el diario técnico, nunca se recorta a la medida. Un tag nuevo nace como Solo lectura.

Descubrimiento

En este controlador, ADS no tiene descubrimiento por difusión, así que el Connector no muestra ningún botón Descubrir. Añada el dispositivo y sus símbolos a mano.

Conviene saber

  • La ruta AMS es la razón habitual por la que falla una primera conexión: el AMS Net Id de la ruta en el autómata tiene que ser exactamente la IP de la estación más .1.1.
  • Los símbolos se resuelven por su nombre en cada lectura, así que una descarga en el autómata que cambie el nombre de un símbolo o lo quite deja su tag con mala calidad hasta que los nombres vuelven a coincidir.
  • Un autómata inalcanzable no cuesta nada en el arranque: el dispositivo sigue reintentando en segundo plano y sus tags se leen con mala calidad hasta que la conexión aterriza.