Beckhoff ADS

Relier des automates Beckhoff TwinCAT en ADS/AMS : la route AMS, le port du runtime, les chemins de symboles et les longueurs de lecture.

Afficher en Markdown

Le pilote Beckhoff ADS parle aux automates Beckhoff TwinCAT en ADS, le protocole d'automatisation TwinCAT porté par des routes AMS. Vous adressez les valeurs par leur chemin de symbole dans le programme de l'automate, si bien que ce que vous tapez est ce que le projet TwinCAT déclare. Ajoutez un équipement sous le pilote Beckhoff ADS dans le Connector ; le volet ne montre que les champs que ce protocole emploie.

Connexion

Champ Sens Défaut
Hôte L'adresse IP de l'automate. Son AMS Net Id est déduit de cette adresse sous la forme {ip}.1.1. vide
Port réseau Le port AMS du runtime visé. 0 emploie 851, le runtime automate 1 de TwinCAT 3 ; les runtimes TwinCAT 3 suivants se comptent à partir de là (852, 853, …). 0
IP locale (AMS) L'adresse IP propre de cette station, dont son AMS Net Id est déduit sous la forme {ip}.1.1. Elle doit correspondre à la route AMS configurée sur l'automate. Laissée vide, la valeur de l'hôte est reprise, ce qui ne marche que lorsque les deux bouts partagent l'adresse : renseignez-la en pratique. vide
Période de scrutation (ms) La période de lecture de tout l'équipement, pour les tags qui ne la remplacent pas. 1 000

L'en-tête de l'équipement montre le point de terminaison assemblé, par exemple ads://192.168.0.1:192.168.0.50:851 (IP locale, IP de l'automate, port AMS). Chaque tag peut régler sa propre période de scrutation (ms) ; une valeur de tag à 0 retombe sur la période de l'équipement.

ADS ne répond qu'aux stations que l'automate connaît : ajoutez une route AMS statique sur l'automate (TwinCAT Engineering, SYSTEM → Routes, ou l'icône TwinCAT de la zone de notification) dont l'adresse est l'IP de cette station et dont l'AMS Net Id est cette IP suivie de .1.1, correspondant à ce que le pilote déduit d'IP locale (AMS). Sans la route, la connexion échoue même quand le chemin réseau est bon.

Adressage

Un tag Beckhoff est adressé par deux champs de la carte Source du tag :

Champ Sens Valeurs acceptées Défaut
Symbole Le chemin de symbole de la variable dans le programme de l'automate. Obligatoire. texte libre, par exemple MAIN.fValue vide
Longueur de lecture (octets, vide = automatique) Combien d'octets transférer par lecture. Vide dimensionne la lecture depuis le type de donnée. 1 et plus, ou vide vide

Le chemin de symbole est exactement ce que TwinCAT montre : les variables de programme sous MAIN.fValue, les listes de variables globales sous GVL.MachineSpeed ou GVL_Settings.rSetpoint. Le pilote résout le symbole par son nom sur l'automate et lit ses octets bruts. Les longueurs de lecture automatiques sont :

Type de donnée Longueur de lecture automatique
Boolean 1 octet
Int32 4 octets
Float 4 octets
String 16 octets

Pour une String plus longue que 16 caractères, réglez la longueur de lecture pour couvrir la taille déclarée (une STRING(80) TwinCAT a besoin de 80 octets de texte). La ligne Adresse source (bus) en lecture seule de la carte Source montre l'adresse assemblée au fil de la saisie.

Types de donnée

Le sélecteur Type de donnée propose les quatre types que le pilote sait transporter :

Type de donnée Équivalent automate Notes
Boolean BOOL 1 octet, non nul signifie vrai
Int32 DINT petit-boutiste, comme l'automate
Float REAL petit-boutiste, comme l'automate
String STRING du texte jusqu'au premier NUL du tampon de lecture

L'ordre des octets est le petit-boutiste propre à l'automate et il est traité automatiquement ; il n'y a pas d'option d'ordre des octets. Une lecture String décode le tampon retourné jusqu'au premier terminateur NUL, si bien que le remplissage derrière une chaîne courte ne fuit jamais dans la valeur. Les autres largeurs TwinCAT (INT, LREAL, WORD, …) ne sont pas proposées : exposez une telle variable dans le programme de l'automate sous l'un des quatre types ci-dessus pour la lire ici.

Écritures

Les tags dont l'accès est Lecture et écriture ou Écriture seule peuvent être écrits. Une écriture résout le même symbole et écrit les octets de la valeur : 1 octet pour Boolean, 4 octets pour Int32 et Float. Une écriture String pose toute la longueur de lecture du tag : les octets UTF-8 du texte devant et des zéros derrière, si bien qu'un texte plus court écrit par-dessus un plus long remplace la valeur entière et que rien de l'ancienne ne survit. Un texte qui ne tient pas dans la longueur déclarée est refusé avec la longueur nommée dans le journal, jamais tronqué à la taille. Un nouveau tag démarre en Lecture seule.

Découverte

ADS n'a pas de découverte par diffusion dans ce pilote, si bien que le Connector n'affiche aucun bouton Découvrir. Ajoutez l'équipement et ses symboles à la main.

Bon à savoir

  • La route AMS est la raison habituelle d'un premier échec de connexion : l'AMS Net Id de la route sur l'automate doit être exactement l'IP de la station suivie de .1.1.
  • Les symboles sont résolus par nom à chaque lecture, si bien qu'un téléchargement dans l'automate qui renomme ou retire un symbole fait passer son tag en mauvaise qualité jusqu'à ce que les noms correspondent de nouveau.
  • Un automate injoignable ne coûte rien au démarrage : l'équipement continue de réessayer en arrière-plan et ses tags se lisent en mauvaise qualité jusqu'à ce que la connexion s'établisse.