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.
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.