Beckhoff ADS

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

Ver como Markdown

El driver Beckhoff ADS habla con PLC Beckhoff TwinCAT sobre ADS, el protocolo de automatización de TwinCAT transportado sobre rutas AMS. Usted direcciona los valores por su ruta de símbolo dentro del programa del PLC, así que lo que escribe es lo que declara el proyecto de TwinCAT. Agregue un dispositivo bajo el driver Beckhoff ADS en el Connector; el panel muestra solo los campos que usa este protocolo.

La conexión

Campo Significado Valor inicial
Host o IP La dirección IP del PLC. 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 de PLC 1 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 PLC. Cuando se deja vacía se reutiliza el valor del Host, que solo funciona cuando los dos extremos comparten la dirección, así que en la práctica llénela. vacío
Intervalo de sondeo (ms) El periodo de lectura de todo el dispositivo, para los tags que no lo invaliden. 1,000

El encabezado del dispositivo muestra el punto de conexión armado, por ejemplo ads://192.168.0.1:192.168.0.50:851 (IP local, IP del PLC, puerto AMS). Cada tag puede poner su propio Intervalo de sondeo (ms); un valor de 0 en el tag cae en el intervalo del dispositivo.

ADS solo contesta a las estaciones que el PLC conoce: agregue en el PLC 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, que es lo que el driver deriva de la IP local (AMS). Sin la ruta, la conexión falla aunque el camino de red esté perfecto.

El direccionamiento

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

Campo Significado Valores aceptados Valor inicial
Símbolo La ruta de símbolo de la variable dentro del programa del PLC. Obligatorio. texto libre, por ejemplo MAIN.fValue vacío
Longitud de lectura (bytes, en blanco = automático) Cuántos bytes transferir por 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 driver resuelve el símbolo por su nombre en el PLC y lee sus bytes crudos. 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 modo 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 armada conforme usted edita.

Los tipos de dato

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

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

El orden de bytes es el little-endian propio del PLC y se maneja automáticamente; no hay opción de orden de bytes. Una lectura de String decodifica el búfer devuelto hasta el primer terminador NUL, así que el relleno que queda 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 una variable así en el programa del PLC como uno de los cuatro tipos de arriba para poder leerla aquí.

Las escrituras

Los tags cuyo Acceso es Lectura y escritura o Solo escritura se pueden escribir. Una escritura resuelve el mismo símbolo y escribe los bytes del valor: 1 byte para Boolean, 4 bytes para Int32 y Float. Una escritura de String deja toda la Longitud de lectura del tag: los bytes UTF-8 del texto al frente y ceros detrás, así que un texto más corto escrito sobre uno más largo reemplaza el valor entero y no sobrevive nada del anterior. Un texto que no cabe en la longitud declarada se rechaza, con la longitud nombrada en el diario técnico, nunca se recorta para que quepa. Un tag nuevo arranca como Solo lectura.

El descubrimiento

En este driver ADS no tiene descubrimiento por difusión, así que el Connector no muestra botón Descubrir. Agregue el dispositivo y sus símbolos a mano.

Bueno saber

  • La ruta AMS es el motivo habitual por el que falla una primera conexión: el AMS Net Id de la ruta en el PLC 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 al PLC que renombre o quite un símbolo pone su tag en mala calidad hasta que los nombres vuelvan a coincidir.
  • Un PLC inalcanzable no cuesta nada al arrancar: el dispositivo sigue reintentando en segundo plano y sus tags se leen con mala calidad hasta que la conexión llega.