Beckhoff TwinCAT
Ce driver supporte la communication sur Ip avec les API Beckhoff TwinCAT.
Le système TwinCAT (The Windows Control and Automation Technology) de Beckhoff permet de transformer un PC compatible en un contrôleur temps-réel avec un système multi-PLC, contrôle d'axe (NC), environnement de programmation et système d'exploitation. TwinCAT remplace un automate programmable conventionnel.
Les logiciels TwinCAT peuvent être distribués puisque les programmes API TwinCAT peuvent s'exécuter sur des PC ou sur des contrôleurs de bus terminaux Beckhoff. Le driver TwinCAT permet la connexion à n'importe quel système TwinCAT local ou connecté sur un réseau TCP/IP. Il utilise le Routeur AMS (routeur de message) fourni par Beckhoff pour gérer et distribuer les messages au sein du système ou via des connexions TCP/IP. Dans une architecture distribuée, la communication s’effectue via l'interface Ethernet standard du PC.
Dans la communication, ADS est la couche transport mais l'équipement TwinCAT doit supporter les commandes ADS. Celles-ci sont supportées par les équipements TwinCAT dont les numéros de version démarrent à 2.7 B511, ou 2.8 B718 ou 2.9.
Vous pouvez configurer le driver TwinCAT en utilisant le Smart Generator TwinCAT.
Prérequis
Le routeur de message doit être installé sur le système qui exécute PcVue. Il est fourni avec n'importe quel pack logiciel TwinCAT. La dernière version est la 2.9.
Si vous n'avez pas besoin d'un système TwinCAT, installez TwinCAT-CP à la place.
Dans une architecture distribuée, chaque PC sur le réseau doit avoir un identifiant AMS Net unique. Pour permettre à deux PC de communiquer, vous devez ajouter la définition du routeur AMS sur le PC distant de la façon suivante :
- Faites un clique-droit sur l'icône TwinCAT et sélectionnez Properties pour ouvrir la boîte de dialogue des propriétés TwinCAT.
Voir l'image
- Sélectionnez l'onglet routeur AMS.
- Saisissez l'identifiant AMS Net Id de votre PC dans le champ Local computer.
- Sélectionnez Add pour ouvrir la boîte de dialogue Add Remote Connection et saisissez les paramètres pour le PC distant.
- Répétez l'étape précédente pour chaque PC qui communiquera et appliquez les mêmes étapes sur l'ordinateur distant.
- Le routeur de message doit être démarré pour que la communication fonctionne. Vous pouvez le faire manuellement dans le menu contextuel de l'icône TwinCAT en sélectionnant Système.Start, ou automatiquement en sélectionnant Enable dans l'onglet System de la boîte de dialogue System properties.
Propriétés d'un réseau
Cette rubrique ne contient qu'une référence des propriétés des objets.
Voir la rubrique Comment configurer les réseaux, les équipements et les trames pour plus d'informations sur la configuration des objets de communication.
Propriétés - Général | |
Nom | Le nom du réseau |
Description | La description du réseau (facultatif) |
Attributs spécifiques au protocole | Réservé - Ne pas modifier |
Actif au démarrage | Si activé, le réseau démarrera au démarrage de la communication Equipement |
Propriétés avancées |
|
Time-out |
Utiliser la valeur par défaut |
Multi-postes |
|
Serveurs |
La liste des postes PcVue où le réseau sera actif |
Id du protocole | Réservé - Ne pas modifier |
Propriétés d'un équipement
Propriétés - Général | |
Nom | Nom de l'équipement |
Description | La description de l'équipement (facultatif) |
Type d'équipement | Sélectionnez le type d'équipement qui convient le mieux à l'équipement de terrain avec lequel vous voulez communiquer. La liste des types de trames et les plages d'adresses dépendent du type d'équipement. |
Adresse | L'identifiant AMS Net à 6 chiffres du PC distant. Par exemple 192 168 0 12 1 1 |
Actif au démarrage | Si activé, l'équipement démarrera au démarrage du réseau |
Propriétés avancées |
|
Connexion |
|
Time-out |
Temps d’attente maximum entre une requête et une réponse de l’équipement |
Numéro de port |
Le numéro de port de l'équipement de terrain |
Divers |
|
Equipement virtuel |
Réservé. Ne pas sélectionner. |
Délai du message | Réservé. Laisser la valeur par défaut 0. |
Port
Par défaut, le protocole accédera au port API du PC déporté. Si vous désirez spécifier un autre port, vous devez modifier la propriété port de la façon suivante :
Port | Valeur |
Port for PLC | 801 |
Port for PLC (Runtime system 2) | 811 |
Port for PLC (Runtime system 3) | 821 |
Port for PLC (Runtime system 4) | 831 |
Port for logger | 100 |
Port for IO | 300 |
Port for SPS | 400 |
Port for NC | 500 |
Port for ISG | 550 |
Port for PCS | 600 |
Adressage des trames
Selon le type d'équipement que vous avez sélectionné lors de la configuration de l'équipement, vous avez accès aux types de trames suivants.
Les propriétés Adresse de début et Quantité définissent la plage d'adresses mémoire pour chaque trame, comment elle est lue et écrite, et comment elle est interprétée dans PcVue.
L'adresse de départ des trames et le type de données ne sont pas utilisés par le driver, seule la taille est importante.
La définition d'une variable TwinCAT pour une trame est spécifiée dans un fichier au format ASCII. Le fichier doit être localisé dans le dossier C du projet. Son nom est composé des noms de réseau, d'équipement et de trame (par exemple MyNet_MyDev_MyFrame.dat).
Le format du contenu du fichier est composé de Nom de la variable qui est le nom de la variable dans le programme TwinCAT et Taille qui est la taille de la variable en octets.
Variable Name,Size
L'ordre dans lequel les variables TwinCAT sont listées a une signification car c’est l’ordre utilisé pour le mapping des variables sur cette trame.
Le Smart Generator TwinCAT automatise cette étape de configuration.
L'offset en octet d’une variable Mot doit être un multiple de 2.
L’ offset en octet des variables Double et Float doivent être un multiple de 4.
L'API traite chaque requête avant de démarrer le cycle automate. Par exemple une requête de 200,000 variables TwinCAT implique que l'équipement collecte et copie 200,000 variables dans une réponse ADS avant de démarrer le prochain cycle automate. Un tel nombre de sous-commandes ADS risque de perturber le fonctionnement de l'API. Nous recommandons de ne pas dépasser plus de 500 variables TwinCAT par trame.
La taille de la trame Mot définie dans PcVue doit être supérieure ou égale à deux fois la taille totale de toutes les variables définies dans le fichier de définition des variables.
Statut du driver
Le statut du driver fournit des informations spécifiques en complément du statut général de la trame. Pour plus d'informations sur les statuts en général, voir la rubrique Statuts généraux de communication.
Codes d'erreur les plus fréquents
Statut du driver | Description |
0x0007 | Equipement (ordinateur distant) non configuré dans le routeur AMS |
0x0012 | Routeur AMS non démarré |
0x1000 | Impossible d'ouvrir le fichier de définition des variables. Veuillez vérifier que son nom est celui d'un nom de trame valide. |
0x1001 | Erreur dans l'allocation de la mémoire tampon du driver |
0x1002 | Aucune variable trouvée dans la requête d'écriture |
0x1003 |
La taille totale de la définition de la variable TwinCAT dépasse 2,097,152 octets Chaque variable a 4 octets supplémentaires pour gérer les erreurs. |
0x2751 | Câble réseau déconnecté |
0x3yyy | Variable introuvable dans l'équipement |
xxx est l'index (en hexadécimal) de la variable dans le fichier de définition de la variable TwinCAT | |
0x6yyy | La taille de la variable ne correspond pas |
yyy est l'index (en hexadécimal) de la variable dans le fichier de définition des variables TwinCAT | |
0x6000 | Erreur lors de la demande d'écriture |
La taille d'une des variables écrites via le lien variable diffère de la taille spécifiée dans le fichier de définition de variables TwinCAT. Écrivez chaque variable à son tour pour savoir laquelle est défectueuse. |
Codes d'erreur moins habituels
Statut du driver |
Description |
0x0001 | Internal error |
0x0002 | No runtime |
0x0003 | Allocation locked memory error |
0x0004 | Insert mailbox error |
0x0005 | Wrong receive HMSG |
0x0006 | Target port not found |
0x0008 | Unknown command ID |
0x0009 | Incorrect task ID |
0x000A | No I/O |
0x000B | Unknown AMS command |
0x000C | Win32 error |
0x000D | Port not connected |
0x000E | Invalid AMS length |
0x000F | Invalid AMS Net ID |
0x0010 | Low installation level |
0x0011 | No debug available |
0x0013 | Port already connected |
0x0014 | AMS Sync - Win32 error |
0x0015 | AMS Sync - Timeout |
0x0016 | AMS Sync - AMS error |
0x0017 | AMS Sync - no index map |
0x0018 | Invalid AMS port |
0x0019 | No memory |
0x001A | TCP send error |
0x001B | Host unreachable |
0x0500 | Router: no locked memory |
0x0502 | Router: mailbox full |
0x0700 | Error class <device error> |
0x0701 | Server does not support the service |
0x0702 | Invalid index - group |
0x0703 | Invalid index - offset |
0x0704 | Reading/writing not permitted |
0x0705 | Parameter size is incorrect |
0x0706 | Invalid parameter value |
0x0707 | Device is not in a ready state |
0x0708 | Device is busy |
0x0709 | Invalid context (must be in Windows) |
0x070A | Out of memory |
0x070B | Invalid parameter value |
0x070C | Not found (files etc.) |
0x070D | Syntax error in command or file |
0x070E | Objects do not match |
0x070F | Object already exists |
0x0710 | Symbol not found |
0x0711 | Symbol version invalid |
0x0712 | Server is in an invalid state |
0x0713 | AdsTransMode not supported |
0x0714 | Notification handle is invalid |
0x0715 | Notification client not registered |
0x0716 | No more notification handles |
0x0717 | Size for watch too big |
0x0718 | Device not initialized |
0x0719 | Device has a timeout |
0x071A | Query interface failed |
0x071B | Wrong interface required |
0x071C | Class ID is invalid |
0x071D | Object ID is invalid |
0x071E | Request is pending |
0x071F | Request aborted |
0x0720 | Signal warning |
0x0721 | Invalid array index |
0x0740 | Error class <client error> |
0x0741 | Invalid parameter at service |
0x0742 | Polling list is empty |
0x0743 | Var connection already in use |
0x0744 | Invoke ID in use |
0x0745 | Timeout elapsed |
0x0746 | Error in Win32 subsystem |
0x0748 | ADS-port not opened |
0x0750 | Internal error in ADS sync |
0x0751 | Hash table overflow |
0x0752 | Key not found in hash |
0x0753 | No more symbols in cache |
Scripting SCADA Basic
Vous pouvez contrôler la communication avec ce driver dans les scripts SCADA Basic avec l'instruction CIMWAY.