IEC 61131-3 Programming Environment

IEC 61131-3 Programming Environment

Previous chapter Next chapter Show all Show all Hide all Hide all

Dans cette section

L'espace de travail

La fenêtre principale

Fenêtres

Déclaration des programmes

L'éditeur de variables

Edition des programmes

Recherche

Signets

Paramètres du projet

Compilation

Configurations

Modification en ligne

Définitions

Exécution de l'application

Configuration des bus de terrain

Outils

Ressources

Applications distribuées - Liens

"Upload" de projet

Librairies
© COPA-DATA France. Please contact us for any questions or comments: support.fr@copadata.com


L'espace de travail

IEC 61131-3 Programming Environment -> L'espace de travail

L'atelier vous permet d'éditer plusieurs projets dans le même espace de travail. Les projets de l'espace de travail sont montrés dans la fenêtre de gauche de l'atelier avec leur contenu (programmes, listes...). L'ensemble des projets édités est appelé "Liste de projets" dans le commandes du menu.

Travailler avec des listes de projets

Pratiquement, chaque projet est stocké dans un répertoire sur le disque. Toutes les informations relatives au projet sont enregistrées dans ce répertoire. La liste est enregistrée dans un fichier suffixé par ".W5L" qui ne contient que la liste des répertoires de projets et quelques informations accessoires. Les projets peuvent donc facilement être déplacés ou ré-arrangés sur le disque. Les répertoires des projets sont en général placés au même endroit que le fichier .W5L, mais peuvent également se trouver ailleurs sur le disque ou le réseau.

Utilisez les commandes du menu "Fichier" pour gérer les iistes de projets. Vous pouvez ajouter de nouveaux projets ou des projets existant à la liste. Quand vous retirz un projet de la liste, il n'est pas physiquement effacé sur le disque.

Le projet de démarrage

Un des projets est marqué en gras dans la fenêtre de l'espace de travail. C'est le "Projet de démarrage". Ce projet est pris en compte pour les commandes de simulation et de mise au point en ligne. Vous ne pouvez tester ou simuler qu'un seul projet à la fois. Pour changer le projet de démarrage, sélectionnez le projet dans l'arbre et lancer la commande "Choisir le projet de démarrage" du menu contextuel (bouton droit).

Ouvrir des projets des versions antérieures

Pour ouvrir un projet créé avec une ancienne version de l'atelier, vous devez:

1- Créer une nouvelle liste de projets

2- Utilisez la commande "Ajouter / Projet Existant" et sélectionner le répertoire où le projet est enregistré.

En créant la liste de projet, vous devrez spécifier le nom d'un fichier .W5L. Il est recommandé de placer ce fichier là où est le répertoire du projet.


La fenêtre principale

IEC 61131-3 Programming Environment -> La fenêtre principale

La barre d'outil de la fenêtre de l'atelier regroupe les principales commandes:

Icone | Description
 | Crée un nouveau document.
 | Ouvre le document sélectionné.
 | Enregistre le document actif.
 | Imprime le contenu de la fenêtre active.
 | Coupe la sélection courante.
 | Copie la sélection courante.
 | Colle le contenu du presse-papier.
 | Supprime la sélection courante.
 | Efface le contenu de la fenêtre active.
 | Édite la liste des cartes d'E/S.
 | Lance le configurateur de bus de terrain.
 | Vérifie la syntaxe du document actif.
 | Compile les projets modifiés.
 | Télécharge les projets.
 | Lance la simulation.
 | Lance le test en mode connecté.

La fenêtre a dans sa barre d'état une boîte de saisie permettant la recherche d'un texte dans la fenêtre active.

Egalement dans la barre d'état, sont affichés les paramètres de communication utilisés pour le test en ligne. Cliquez deux fois dans cette zône pour changer les paramètres de communication.


Fenêtres

IEC 61131-3 Programming Environment -> Fenêtres

Voici l'espace de travail de l'atelier et ses principales zônes:

  1. Ici sont ouverts les documents édités (programmes, listes, graphiques...).
  2. L'espace de travail permet la création des documents.
  3. La fenêtre de sortie montre les messages et regroupe les outils de diagnostic.
  4. L'éditeur de variables permet de déclarer les variables et les instances.
  5. La grille de propriétés et le volet ordre de pile sont utilisés pour la création des documents graphiques.
  6. Le volet blocs montre la liste des fonctions et blocs disponibles.
  7. Le volet espion permet la visualisation dynamique des variables pendant le test.
  8. Ce volet montre les différents types de définitions.
  9. Ce volet montre les types d'objets graphiques disponibles.
  10. Liste des types énumérés

Chaque zone fixe (excepté la zone 1) peut être cachée ou montrée à l'aide des commandes du menu Affichage.

Dans la zone centrale sont ouverts les documents de l'espace de travail. Lorsque plusieurs documents sont ouverts ensemble, utilisez lesonglets au bas de la zone pour sélectionner le document actif. Utilisez le bouton [image] dans la barre de titre pour fermer le document.

L'éditeur de variable et la fenêtre centrale peuvent être agrandies en cliquant sur le bouton [image] ou en cliquant deux fois dans leur barre de titre.

Lorsque plusieurs documents sont ouverts dans la zone centrale, vous pouvez verrouiller un d'eux en haut ou à gauche de la zone. Pour ceci, cliquez avec le bouton droit de la souris sur l'onglet correspondant et sélectionnez la commande Verrouiller. Le même menu vous permet à tout instant de déverrouiller le document ou d'en verrouiller un autre:

Le document actif est marqué en gras dans la liste des onglets. Le document verrouillé est inscrit en italique.


Déclaration des programmes

IEC 61131-3 Programming Environment -> Déclaration des programmes

Previous chapter Next chapter Show all Show all Hide all Hide all

Les programmes sont gérés dans le volet "Espace de travail" à gauche de la fenêtre principale de l'atelier. Pour manipuler les programmes, sélectionnez la zone de l'espace de travail et activez l'onglet Programmes.

Vous pouvez déclarer ici les programmes et blocs fonctionnels (UDFBs) de votre application. L'espace de travail montre les programmes et UDFBs, triés par ordre alphabétique.

Créer un programme

Icone | Description
 | Utilisez ce bonton dans la barre d'outils pour créer un nouveau programme ou UDFB. Le langage de programmation doit être choisi à la création du programme. Il porra être changé par la suite en convertissant le programme. Vous pouvez également déclarer un programme fils quand un programme SFC est sélectionné.

A la création d'un programme ou UDFB, vous devez entrer ses propriétés:

  • L'identification et les principaux attributs du programme
  • Ses propriétés avancées (mode d'excéution)
  • Sa description

La même boîte peut être appelée plus tard pour changer les propriétés ou la description d'un programme.

Dans le cas d'un UDFB ou sous programme, la boîte inclut un assistant pour la définition de ses paramètres d'entrée/sortie.

La boîte de propriétés permet également de protéger le programme.

Chaque programme doit avoir un nom unique. Le nom d'un programme ne doit pas être un mot réservé des langages, et ne doit pas être utilisé par un autre objet déclaré. Le nom d'un programme doit commencer avec une lettre ou un caractère souligné ("_"), suivi par des lettres, chiffres ou caractères soulignés. Il ne peut pas y avoir deux caractères de soulignement consécutifs dans un nom. La casse est ignorée.

Ouvrir un programme

Tapez ENTREE ou cliquez deux fois sur un programme pour l'ouvrir avec l'éditeur approprié. Un programme ouvert ne peut pas être renommé ou supprimé.

Copier un programme

Utilisez les commandes du menu "Fichier" pour dupliquer le programme sélectionné. La copie ne peut pas être utilisée pour écraser un programme existant. Vous devez choisir un nom pour la copie du programme.

Organiser les programmes en dossiers

Par défaut les programmes sont listés par ordre alphabétique dans l'espace de travail. Vous pouvez librement crée des dossier pour les arranger dans un arbre. Utilisez la commande "Nouveau dossier" du menu contextuel. Puis cliquez simplement sur le nom d'un dossier pour le renommer.

Par la suite, il vous suffit de glisser les programmes dans les dossiers pour arranger l'eespace de travail. Les programmes, sous-programmes et UDFBs peuvent être mélés dans un même dossier. Dans un dossier, les éléments sont listés par ordre alphabétique.

Définir l'ordre d'exécution des programmes

La commande Cycle du menu contextuel vous permet de définir l'ordre d'exécution des programmes dans le cycle. Une boîte séparée montre les programmes principaux dans leur ordre d'appel au sein du cycle. Vous pouvez:

  • utiliser les boutons Monter/Descendre pour changer l'ordre d'exécution des programmes.
  • utiliser les boutons Sélectionner pour indiquer si un programme doit être ou non executé. Les programmes non sélectionnés ne sont pas retenus lors de la compilation.
  • utiliser les boutons Augmenter/Diminuer quand les colonnes Période ou Phase sont sélectionnées pour changer le cadencement des programmes. Ceci vous permet de définir facilement des programmes "lents" qui ne sont pas exécutés à chaque cycle. Référez-vous aux Propriétés avancées des programmes pour plus de détails.

Dans cette section

Propriétés de programme

Propriétés de programme - Paramètres d'entrée/sortie

Propriétés de programme - avancé

Propriétés de programme - description

Protection des programmes

Convertir un programme dans un autre langage


Propriétés de programme

IEC 61131-3 Programming Environment -> Déclaration des programmes -> Propriétés de programme

Previous chapter Next chapter Show all Show all Hide all Hide all

Cette boîte vous permet de définir les propriétés d'un programme ou bloc fonctionnel. Référez-vous à la description des unités de programmation (POU) pour plus de détails sur les différents types de programmes.

Chaque programme doit avoir un nom unique. Le nom d'un programme ne doit pas être un mot réservé des langages, et ne doit pas être utilisé par un autre objet déclaré. Le nom d'un programme doit commencer avec une lettre ou un caractère souligné ("_"), suivi par des lettres, chiffres ou caractères soulignés. Il ne peut pas y avoir deux caractères de soulignement consécutifs dans un nom. La casse est ignorée.

Quand vous créez un POU, vous devez sélectionner son langage de programmation. Le langage ne pourra pas être changé par la suite.

Vous devez également choisir le type de POU:

  • Programme principal (activé par le cycle).
  • Sous-programme (appelé explicitement par d'autres programmes).
  • UDFB (bloc fonctionnel).
  • Programme SFC fils (activé par son programme SFC père).

Pour un programme fils SFC, vous devez sélectionner son programme père. Celui-ci pourra être changé par la suite.


Propriétés de programme - Paramètres d'entrée/sortie

IEC 61131-3 Programming Environment -> Déclaration des programmes -> Propriétés de programme - Paramètres d'entrée/sortie

Previous chapter Next chapter Show all Show all Hide all Hide all

Depuis la boîte des "Propriétés d'un programme", vous pouvez facilement définir les paramètres d'entrées et de sortie d'un UDFB ou sous-programme.

L'assistant montre deux listes, pour les entrées et les sorties. Chaque paramètre est défini par un nom, un type et une dimension, ainsi qu'un texte de description. Utilisez les commandes suivantes:

Editer: Pressez ce bouton pour changer la définition du paramètre sélectionné. Quand la dernière ligne de la liste (...) est sélectionnée, cette commande vous permet d'ajouter un paramètre.

Supprimer: Pressez ce bouton pour supprimer le paramètre sélectionné.

Monter / Descendre: Utilisez ces commandes pour déplacer le paramètre sélectionné dans la liste. L'ordre des paramètres a une grande importance puisqu'il définit le prototype d'appel du bloc ou sous-programme.

info Info

Les paramètres d'entrée et de sortie peuvent également être saisis directement depuis l'éditeur de variables.


Propriétés de programme - avancé

IEC 61131-3 Programming Environment -> Déclaration des programmes -> Propriétés de programme - avancé

Previous chapter Next chapter Show all Show all Hide all Hide all

Cette boîte vous permet de définir les propriétés avancées d'un programme.

Pour un programme principal, vous pouvez choisir de l'activer ou le désactiver. Un programme désactivé est ignoré lors de la compilation et n'est pas inclut au code de l'application.

Mode d'exécution

Vous pouvez définir plusieurs périodes d'exécution pour les programmes de l'application. La période par défaut est "1": le programme est exécuté à chaque cycle. Définir une période plus lente pour certains programmes est un moyen simple d'optimiser les performances de l'application. Vous pouvez définir pour chaque programme:

Une période (nombre de cycles entre deux exécutions du programme)
Une phase (offset qui permet de dispatcher plusieurs programmes lents sur plusieurs cycles)

Avancé

Ces paramètres sont réservés à certaines implémentations spécifiques de la cible T5.


Propriétés de programme - description

IEC 61131-3 Programming Environment -> Déclaration des programmes -> Propriétés de programme - description

Previous chapter Next chapter Show all Show all Hide all Hide all

En plus de la description entrée dans le volet principal, vous pouvez entrer ici une description multiligne pour décrire le In programme. Vous pouvez par exemple:

  • Décrire son fonctionnement et sa programmation.
  • Ajouter des notes de modification.
  • Ajouter un guide d'implémentation si le programme peut être réutilisédans d'autres applications.


Protection des programmes

IEC 61131-3 Programming Environment -> Déclaration des programmes -> Protection des programmes

Previous chapter Next chapter Show all Show all Hide all Hide all

Le volet Sécurité dans la boîte des propiétés de programme vous permet de protéger un programme, sous-programme ou UDFB contre l'édition.

Pour protéger un programme, appuyez sur le bouton Protéger et entrez un mot de passe. Le contenu du programme est alors encrypté. Un programme protégé ne peut plus être ouvert en édition. Ses variables restent visibles dans l'éditeur de variables mais ne peuvent pas être modifiées.

Pour enlever la protection, appuyez sur le bouton Retirer la protection et entrez le mot de passe spécifié lorsque le programme a été protégé. Le contenu du programme est alors décrypté et redevient accessible en édition pour d'éventuelles modifications.

info Info

Un programme protégé n'est pas pris en compte par les outils suivants:

  • Rechercher / Remplacer dans les fichiers.
  • Comparer des projets.
  • Construire des applications de visualisation.
  • Générer un dossier HTML.
  • Debug en pas à pas.


Convertir un programme dans un autre langage

IEC 61131-3 Programming Environment -> Déclaration des programmes -> Convertir un programme dans un autre langage

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier offre la possibilité de convertir un programme écrit en langage IEC en un autre langage. Quand un programme est sélectionné dans l'espace de travail ou ouvert en édition, utilisez les commandes du menu Outils / Convertir le programme.

Toutes les conversions entre les langages ST, IL, LD et FBD sont possibles. La conversion de programmes SFC n'est pas autorisée. Vous pouvez convertir des programmes, des UDFBs ou des sous-programmes.

Le programme doit être enregistré et le projet compilé sans erreur avant la conversion.

Quand un programme est converti, son implémentation dans son langage original est gardée jusqu'à la prochaine modification. Ansi, vous pouvez récupérer le codage initial dans son intégrité.

info Info

Quand un programme est converti, des éléments de présentation (lignes vides en ST, alignements en FBD...) sont perdus.

Il est possible que la conversion d'un programme nécessite la déclaration de nouvelles variables pour les calculs intermédiaries. Ces variables sont déclarées en local au programme est sont préfixées par "_T".


L'éditeur de variables

IEC 61131-3 Programming Environment -> L'éditeur de variables

Previous chapter Next chapter Show all Show all Hide all Hide all

Les variables sont déclarées dans la zone en haut et à droite de la fenêtre de l'atelier.

L'éditeur de variables vous permet de déclarer les variables et instances de bloc de votre application. Les variables sont organisées par groupes:

  • Les variables globales.
  • Les variables "retain" sont des variables globales mémorisées sur support non volatiles.
  • Les variables d'E/S (chaque équipement d'E/S est un groupe).
  • Les variables locales à un programme (ainsi que les paramètres dans le cas d'un UDFB).

Référez-vous à la description des variables dans la référence des langages pour plus de détails.

Chaque groupe est marquée par une ligne de titre grisée dans la liste. Les icones "-" et "+" à gauche du titre d'un groupe permettent de montrer ou de cacher les variables du groupe:

Cliquer deux fois sur la ligne d'entête (noms de colonnes) vous permet de trier, montrer ou cacher les colonne. Vous pouvez également définir un filtre pour chaque colonne. Le filtre est une chaine de caractères pouvant inclure les caractères jokers '?' et '*'.

La grille d'édition:

Chaque variable est décrite par:

créer des variables
utiliser la grille
trier les variables d'un groupe

définir les équipements d'E/S
edition textuelle
Signets

un nom
un type et une dimension
un attribut
une valeur initiale
un repère et une description
des propriétés
un nom de groupe (*)

info Info

utilisez la colonne Syb pour indiquer si le symbole de la variable doit être embarqué, comme spécifié dans les propriétés de la variable.

(*) Le nom de grupe permet de trier les colonnes dans un ordre logique.

Dans cette section

Création de variables

Editeur de variable - Utiliser la grille

Trier les variables

Nom d'une variable

Type et dimension d'une variable

Attributs d'une variable

Valeur intiale d'une variable

Description et repère d'une variable

Equipements d'E/S

Propriétés d'une variable

Edition textuelle des variables


Création de variables

IEC 61131-3 Programming Environment -> L'éditeur de variables -> Création de variables

Previous chapter Next chapter Show all Show all Hide all Hide all

Frappez la touche INSERER dans l'éditeur de variables pour créer une nouvelle variable dans le groupe sélectionné. La variable est ajoutée en fin du groupe. Les variables sont créées avec un nom par défaut. Renommez la variable et ses attributs en utilisant la grille de l'éditeur.

Vous ne pouvez pas créer de variables dans un groupe d'E/S.

Dans le cas d'un groupe décrivant les variables privées d'un UDFB, frappez la touche INSERER et choisissez entre les choix suivants:

  • ajouter un paramètre d'entrée "IN".
  • ajouter un paramètre de sortie "OUT".
  • ajouter une variable privée.

Les paramètres IN et OUT sont toujours dans un groupe correspondant à un UDFB.


Editeur de variable - Utiliser la grille

IEC 61131-3 Programming Environment -> L'éditeur de variables -> Editeur de variable - Utiliser la grille

Previous chapter Next chapter Show all Show all Hide all Hide all

Utilisez ce bouton ou frappez ESPACE pour activer ou désactiver la grille.

L'éditeur de variables vous permet d'entrer chauqe élément de description d'une variable dans une grille. La grille peut être activée ou désactivée à tout moment.

Quand la grille est inactive, la saisie de la description d'une variable est faite dans une boîte de dialogue. Frappez ENTREE quand la grille est inactive pour modifier la variable sélectionnée.

Quand la grille est active, le nom de la colonne active est marqué en gras. Le texte de la cellule ( ou "..." si le champ est vide) est marqué en caractères gras et jaunes:

A tout moment vous pouvez glisser les séparations dans la ligne d'entête pour redimensionner les colonnes.

Frappez les touches suivantes pour naviguer dans la liste des groupes de variables:

Combinaison de touches | Description
Ctrl + Page Haut | Séléctionne le groupe précédent.
Ctrl + Page Bas | Séléctionne le groupe suivant.


Trier les variables

IEC 61131-3 Programming Environment -> L'éditeur de variables -> Trier les variables

Previous chapter Next chapter Show all Show all Hide all Hide all

A tout moment, vous pouvez trier les variables d'un groupe selon leur nom, leur type ou leur dimension. Pour ceci:

  1. Déplacez la sélection dans le groupe à trier.
  2. Cliquez sur l'entçete de la colonne qui indique le tri souhaité.

L'atelier garde toujours en mémoire l'ordre naturel de définition des variables, en vue de préserver les possibilités de Modification En Ligne. A chaque fois que vous créer une nouvelle variable, ou que vous cachez/montrez le contenu d'un groupe, l'ordre naturel est restauré.


Nom d'une variable

IEC 61131-3 Programming Environment -> L'éditeur de variables -> Nom d'une variable

Previous chapter Next chapter Show all Show all Hide all Hide all

Pour changer le nom d'une variable, validez le mode saisie dans la grille, déplacez le curseur sur la colonne nom et frappez la touche ENTREE. Le nom est entré dans une boîte d'édition. Frappez ENTREE pour valider le nom ou ECHAP pour abandonner.

Une variable doit être identifiée par un nom unique dans son groupe. Le nom d'une variable ne peut pas être un mot réservé des langages, ou être utilisé pour une bloc standard ou "C" de la librairie. Une variable ne peut pas avoir le même nom qu'un programme ou UDFB.

Le nom d'une variable doit commencer par une lettre ou un carcatère souligné("_"), suivi de lettres, chiffres ou soulignés. Il ne doit pas y avoir plusieurs caractères soulignés consécutifs dans un nom. La casse est ignorée.

Nom des variables d'E/S physiques

Chaque voie d'E/S est identifiée par un nom qui indique son emplacement physique. Ce symbole commence par "%I" pour une entrée ou "%Q" pour une sortie, suivi par une lettre identifiant le type de donnée. Référez-vous à la description des variables dans la référence des langages pour plus de détails.

Vous ne pouvez pas changer le nom naturel "%..." d'une variable d'E/S. Ce nom est alloué en fonction de la défintion de l'équipement d'E/S. Mais vous pouvez donner une alias (un nom lisible) à chaque voie d'E/S. Dans ce cas, les nom naturel "%" ou l'alias peuvent être utilisés indifféremment dans les programmes. L'alias doit respecter les règles de nomenclature des variables.

Quand un alias est défini pour une voie d'E/S, le nom naturel "%..." et l'alias sont affichés ensemble dans l'éditeur de variables.


Type et dimension d'une variable

IEC 61131-3 Programming Environment -> L'éditeur de variables -> Type et dimension d'une variable

Previous chapter Next chapter Show all Show all Hide all Hide all

Pour changer le type et la dimension d'une variable, , validez le mode "saisie" dans la grille, déplacez le curseur sur la cellule correspondante et frappez la touche ENTREE.

Chaque variable doit avoir un type. Ce peut être un type de base ou un type de bloc fonctionnel pour une instance. Les E/S physiques ont toujours un type de base. Les instances de blocs fonctionnels peuvent représenter soit un bloc écrit en "C", soit un bloc standard, soit un bloc utilisateur (UDFB).

Changer le type d'une voie d'E/S est limité à l'implémentation physique des voies de l'équipement.

Si le type sélectionné est STRING, vous devez spécifier la longueur maximum de la chaine, qui ne peut pas excéder 255 caractères.

Vous pouvez spécifier une ou des dimension(s) dans le cas d'nue variable interne, pour déclarer un tableau. Les tableaux ont au plus 3 dimensions. Le premier index pour chaque dimension est 0, identifié par Tableau[0] par exemple dans le cas d'un tableau à une seule dimension. Le nombre total d'éléments dans un tableau (toutes dimensions ensemble) ne peut pas excéder 65535.

Dans l'éditeur de variables, vous devez entrer les dimensions séparées par des virgules. Par exemple: 3,10,5.


Attributs d'une variable

IEC 61131-3 Programming Environment -> L'éditeur de variables -> Attributs d'une variable

Previous chapter Next chapter Show all Show all Hide all Hide all

Chaque variable est caractérisée un attribut visible dans la grille. Les E/S physiques ont marquées comme Entrée ou Sortie. Les entrées sont en lecture-seule. Pour chaque variable interne, vous pouvez spécifier l'attribut Lecture seule. Sinon, la solonne attributs est vide pour une variable interne. Les paramètres d'un bloc fontionnel utilisateu (User Defined Function Block ou UDFB) sont marqués par IN ou OUT.

Pour changer l'attribut d'une variable, validez le mode saisie dans la grille, déplacez le curseur dans la colonne attributs pour une variable, et frappez ENTREE pour positionner ou enlever l'attribut lecture seule.


Valeur intiale d'une variable

IEC 61131-3 Programming Environment -> L'éditeur de variables -> Valeur intiale d'une variable

Previous chapter Next chapter Show all Show all Hide all Hide all

Une variable peut avoir une valeur initiale. La valeur doit être une expression constante valide pour le type of de la variable. La valeur initiale est affichée en rouge si elle n'est pas valide pour le type de la variable.

Vous ne pouvez pas déclarer de valeur initiale pour un tablea ou une instance de bloc fonctionnel.

Pour changer la valeur initiale d'une variable, validez le mode saisie dans la grille, déplacez le curseur sur la colonne valeur intiale et frappez la touche ENTREE.


Description et repère d'une variable

IEC 61131-3 Programming Environment -> L'éditeur de variables -> Description et repère d'une variable

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier vous permet d'attacher à chaque variable deux chaines de caractères qui la décrivent:

  • Le Repère est un commentaire court, qui peut être affiché avec le nom de la variable dans les programmes en FBD ou LD.
  • La Description est un commentaire long qui décrit la variable.

Pour changer le repère ou la description d'une variable, validez le mode saisie dans la grille, déplacez le curseur sur la cellule correpondante et frappez la touche ENTREE.


Equipements d'E/S

IEC 61131-3 Programming Environment -> L'éditeur de variables -> Equipements d'E/S

Previous chapter Next chapter Show all Show all Hide all Hide all
Icone | Description
 | Utilisez ce bouton dans le fenêtre principale pour ouvrir l'éditeur d'équipements d'E/S.

L'éditeur d'équipements d'E/S est ouvert dans une boîte séparée. Il permet de définir et de paramétrer les équipements d'E/S mis en oeuvre dans l'application.

La liste montre les emplacements possibles pour les équipements, numérotés de 0 à 255. Sélectionnez un emplacement et:

  • Frappez la touche ENTREE pour sélectionner ou changer le type d'équipement à poser sur cet emplacement. Dans la boîte de sélection, les équipements sont triés par catégories. Sélectionnez la catégorie Tous pour afficher la liste complète des équipements définis en librairie. La description de l'auipement sélectionné est affichée dans la partie inférieure de la boîte de sélection. Cliquez deux fois sur le nom d'un équipement ou frappez la touche ENTREE pour le sélectionner.
  • Frappez la touche F2 ou utilisez la commande de menu Edition / Renommer pour changer le nom de l'équipement sélectionné. Vous pouvez librement renommer chaque équipement.
  • Frappez Alt+ENTREE or utilisez la commande de menu Edition / Propriétés pour renseigner les paramètres de l'équipement sélectionné. Référez-vous aux instructions du constructeur pour plus d'information sur la nature de chaque paramètre.
  • Frappez ESPACE pour indiquer que l'équipement sélectionné est Virtuel ou Réel (normal). Un équipement virtuel est déconnecté du matériel et géré par la cible comme un groupe de variables internes. L'utilisation d'équipements "virtuels" permet le test de l'application même si certains équipements ne sont pas physiquement disponibles. Les équipements virtuels sont marqués en bleu et entre parenthèses dans la liste des équipements:

L'atelier gère des équipements simples ou complexes. Un équipement simple est un groupe de voies ayant toutes le même type et la même direction, et numérotées à partir de 0. Un équipement complexe est une liste d'équipements simples.


Propriétés d'une variable

IEC 61131-3 Programming Environment -> L'éditeur de variables -> Propriétés d'une variable

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier vous permet d'embarquer dans le code de l'application des informations supplémentaires pour chaque variable. Utilisez la commande Edition / Propriétés quand une variable est sélectionnée dans la grille pour éditer ses propriétés. Voux pouvez également sélectionner l'option de menu Afficher / Propriétés pour afficher les proriétés de variables dans une colonne supplémentaire dans la grille.

Propriétés publiques

Sélectionnez la page Public pour définir les informations que vous désirez embarquer sur la cible et rendre publiques pour les autres logiciels embarqués. Pour chaque variable, cous pouvez publier:

  • Son symbole.
  • Un nom de "profil".
  • Une liste de propriétés définies par l'OEM.

La liste de propriétés est entrée dans la grille au bas de la boîte, et correspond au profil sélectionné. Référez-vous aux instructions de l'OEM pour plus de détails sur les profils disponibles.

Pour changer la valeur d'une propriété dans la grille, cliquez deux fois sur la ligne correspondante ou frappez le premier caractère de la nouvelle valeur. Frappez ENTREE pour valider la valeur ou ECHAP pour abandonner la saisie.


Edition textuelle des variables

IEC 61131-3 Programming Environment -> L'éditeur de variables -> Edition textuelle des variables

Previous chapter Next chapter Show all Show all Hide all Hide all

En alternative à l'édition des variables dans une grille, il est possible de déclarer les variables sous forme textuelle. L'édition textuelle s'applique à toutes les variables d'un groupe. Il ne peut pas s'agir d'un groupe d'E/S. Pendant l'édition du texte, le groupe et toutes ses variables sont verrouillées dans la grille, afin qu'aucune modification ne soit possible depuis une autre fenêtre.

Pour éditer un groupe de variables en mode texte, sélectionnez le groupe dans la grille et utilisez la commande Outils / Editer les variables en texte.

Syntaxe | Description
IEC61131-3 | Le langage de déclaration de la norme IEC61131-3.
XML tags | Une structure simple de balises XML avec leurs attributs.
CSV | Format CSV (séparateur: point-virgule).

Dans cette section

Editier les variables avec la syntaxe de la norme IEC61131-3

Editer les variables comme balises XML

Editer les variables en texte au format CSV


Editier les variables avec la syntaxe de la norme IEC61131-3

IEC 61131-3 Programming Environment -> L'éditeur de variables -> Edition textuelle des variables -> Editier les variables avec la syntaxe de la norme IEC61131-3

Previous chapter Next chapter Show all Show all Hide all Hide all

Selon le langage de la norme IEC61131-3, les variables sont déclarées dans des blocs structurés. Chaque bloc commence par le mot clé VAR, VAR_INPUT, VAR_OUTPUT ou VAR_EXTERNAL et se termine par le mot clé END_VAR (sans point-virgue après). Voici la signification de chaque mot clé:

Mot-clé | Description
VAR | Variables internes. Globales, locales ou RETAIN selon le groupe édité
VAR_INPUT | Paramètres d'entrée d'un bloc. Seulement si le groupe édité est un UDFB.
VAR_OUTPUT | Paramètres de sortie d'un bloc. Seulement si le groupe édité est un UDFB.
VAR_EXTERNAL | Variables externes. Globales, locales ou locales selon le groupe édité

Syntaxe de base pour la déclaration d'une variable

Pour déclarer une variable, entrez son nom, suivi de ":" et de son type de donnée. Si le type est STRING, il doit être suivi de la longueur maximale entre parenthèses.

Example Example

MyVar : BOOL;
MyString : STRING(255);

Pour indiquer une variable en lecture seule, insérez le mot clé CONSTANT avant la déclaration de la variable:

CONSTANT VarName : DataType;

Our déclarer un tableau, le type doit être précédé par "ARRAY [ dimensions ] OF". Il y a au plus 3 dimensions, séparées par des virgules. Chaque dimension est spécifée comme "0 .. BorneMax".

Example Example

Array1 : ARRAY [0 .. 99] OF DINT;
Matrix : ARRAY [0 .. 9, 0 .. 9, 0 .. 9] OF REAL;

De plus, vous pouvez spécifier une valeur initiale pour les variables de type simple. La valeur initiale est écrite après le type, précédée par ":=". La valeur initiale doit être une expression constante valide en accord avec le type de données spécifié.

Example Example

MyBool : BOOL := TRUE;
MyString : STRING(80) := 'Hello';
MyLongReal : LREAL := lreal#1.0E300;

Informations additionnelles et description

Une variable peut avoir des propriétés et et textes de descriptions associés dans l'atelier. Pour ceci des directives écrites comme des commentaires IEC doivent être insérées APRES la déclaration de la variable. Voici les directives possibles:

Instruction | Description
(*$tag=Texte*) | Repère (commentaire court).
(*$desc=Texte*) | Description.
(*$profile=NomProfil*) | Nom du profil embarqué.
(*$embed=Texte*) | Propriétés embarquées (la syntaxe est celle montrée dans la grille pour la colonne propriétés).

Voud pouvez également entrer des commentaires de ligne préfixés par "//":

//$tag=Texte
//$desc=Texte
//$profile=NomProfil
//$embed=Texte


Editer les variables comme balises XML

IEC 61131-3 Programming Environment -> L'éditeur de variables -> Edition textuelle des variables -> Editer les variables comme balises XML

Previous chapter Next chapter Show all Show all Hide all Hide all

Voud pouvez déclarer les variables avec un simple langage de balises XML, où chaque variable est décrite par une balise et se attributs. La syntaxe de base XML doit être respectée. Les valeurs d'attributs doivent être rentrées entre guillemets. Les caractères < > " ' & sont réservés par XML et ne doivent pas être utilisés dans une valeur. Ils doivent être remplacés par les séquences suivantes:

Signal de caractère | Séquence
< | &lt;
> | &gt;
" | &quot;
' | &apos;
& | &amp;

Voici la structure des balises pour la déclaration des variables:

<k5project>
|
+-<vargroup>
|
+-<var>*
|
+-<varinfo>*

(la marque "*" indique que la balise peut apparaître 0 ou plusieurs fois)

Le reste de cette page décrit la signification et le format de chaque balise:

<k5project>

Cette balise est requise au plus haut niveau, et est unique. Elle est réservée pour les extensions futures de la structure des balises, et indique le numéro de version de la syntaxe. Ses attributs sont:

Attribut | Description
version | Réservé pour les extensions futures. Cet attribut est obligatoire et doit être "1.0".

La balise <K5Project> contient une balise <vargroup>.

<vargroup>

Cette balise apparaît dans <K5Project>, et contient toutes les balises <var> pour les variables du groupe. Dans cette version, la balise n'a aucun attribut (le nom du groupe est implicite)

<var>

Cette balise décrit la définition de base d'une variable. Ses attributs sont:

Attribut | Description
name | Symbole de la variable. Cet attribut est obligatoire.
type | Nom du type de donnée de la variable. Cet attribut est obligatoire.
len | Longueur maximale si le type est STRING. Cet attribut est obligatoire pour le type STRING, et ne doit pas être spécifié pour les autres types de donnée.
dim | Dimension(s) i la variable est un tableau. Il y a au plus 3 dimensions, séparées par des virgules. Cet attribut est optionnel.
attr | Attributs de la variable, séparés par des virgules. Les valeurs possibles sont: IN : paramètre d'entrée (pour les UDFBs seulement) OUT : paramètre de sortie (pour les UDFBs seulement) external : indique une variable externe constant : variable en lecture seule Cet attribut est optionnel.
init | Valeur initiale de la variable. Doit être une expression constante valide en accord avec le type de donée. Cet attribut est optionnel

La balise <var> peut contenir 0 our plusieurs balises <varinfo>.

<varinfo>

Cette balise indique une information additionnelle pour la variable où elle est insérée. Ses attributs sont:

Attribut | Description
type | Type d'information contenu dans l'attribut data attribute. Les valeurs possibles sont: tag : repère (commentaire court) desc : description profile : nom du profil embarqué embed : propriétés embarquées Cet attribut est obligatoire.
data | Donnée spécifiée par l'attribut type, sous forme textuelle. Cet attribut est obligatoire.


Editer les variables en texte au format CSV

IEC 61131-3 Programming Environment -> L'éditeur de variables -> Edition textuelle des variables -> Editer les variables en texte au format CSV

Previous chapter Next chapter Show all Show all Hide all Hide all

En format CSV, chaque variable est définie sur une ligne de texte. Chaque élément de description de la variable est entré comme une cellule CSV. Les cellules CSV sont séparées par des points-virgule. Le texte de chaque cellule est écrit entre guillemets. Un guillement dans le texte d'une cellule est représenté par deux guillemets. Le format CSV est un moyen d'échange facile avec les applications de type tableurs.

Il n'est pas obligatoire que tous les éléments de description (toutes les colonnes) soient spécifiées dans le texte. La première ligne doit contenir la liste des colonnes définies, à l'aide des mots-clé suivants:

Mot-clé | Description
name | Symbole de la variable. Cette cellule est obligatoire.
type | Nom du type de donnée. Cette cellule est obligatoire, et doit être placée avant les cellues len, dim et init.
len | Longueur maximale si le type de donnée est STRING. Cette cellule est vide pour les autres types de données.
dim | Dimensions dans le cas d'un tableau. Il y a au plus 3 dimensions, séparées par des virgules.
attr | Attribut de la variable: IN : paramètre d'entrée d'un UDFB. OUT : paramètre de sortie d'un UDFB. External : variable externe.
RO | La valeur YES indique que la variable est en lecture seule. (Note: les valeurs TRUE ou 1 peuvent également être utilisées).
init | Valeur initiale de la variable. Doit être une expression constante valide en accord avec le type de donnée.
tag | Repère (texte de description court).
desc | Description.
profile | Nom du profil embarqué.
embed | Propriétés embarquées (même syntaxe que dans la grille de l'éditeur de variables).

Voici un exemple de définition de 3 variables en format CSV, avec certaines cellules non spécifiées:

Example Example

"name","type","len","attr","RO"
"MyVar","BOOL","","","NO"
"ExtVar","DINT","","external","YES"
"MyStr","STRING","10","","NO"


Edition des programmes

IEC 61131-3 Programming Environment -> Edition des programmes

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier fournit des éditeurs dédiés pour l'édition des programmes dans les différents langages disponibles:

Sequential Function Chart (SFC)
Function Block Diagram (FBD)
Ladder Diagram (LD)
Structure Text (ST) and Instruction List (IL)

Référez-vous aux sections suivantes pour les fonctions communes à tous les édtiteurs:

Sélection des blocs fonctionnels
Sélection de variables et d'instances
Recherche
Signets

L'éditeur offre l'enviromment de programmation idéal avec les fonctions de glisser/déplacer suivantes:

  • Glisser une variable depuis l'éditeur de variables dans le programme.
  • Glisser une définition dans le programme.
  • Glisser un bloc de la librairie dans le programme.
  • Glisser un bloc fonctionnel dans l'éditeur de variables pour déclarer une instance.
  • Glisser une variable depuis l'éditeur de variables ou le programme dans la liste à espionner.
  • Cliquer deux fois sur une ligne de la fenêtre de sortie pour éditer le programme correspondant.

Dans cette section

L'éditeur SFC (Sequential Function Chart)

Editeur FBD (Function Block Diagram)

L'éditeur LD (Ladder Diagram ou Schéma à relais)

Editeur ST (Structured Text) / IL (Instruction List)

Sélectionner un bloc

Sélection de variables et d'instances


L'éditeur SFC (Sequential Function Chart)

IEC 61131-3 Programming Environment -> Edition des programmes -> L'éditeur SFC (Sequential Function Chart)

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier vous propose le choix entre deux outils d'édition pour le langage SFC:

Grid Editor

L'éditeur "Grid" propose une interface graphique avancée complétée par de nombreux raccourcis clavier et des fonctions de réorganisation automatique des graphes, pour une saisie rapide dans une grille logique.

Free Form Editor

L'éditeur "Free Form" vous propose une interface 100% graphique où vous pouvez dessiner librement les graphes SFC et arranger les étapes et transitions dans le dessin comme vous le souhaitez.

info Info
  • Le choix de l'éditeur est fait lors de la création du programme.

Dans cette section

SFC Grid Editor

SFC Free Form Editor

La barre d'outils SFC

Tracé des divergences SFC

Visualisation des graphes SFC

Déplacer ou copier des éléments SFC

Numérotation des étapes et des transitions

Entrer les actions d'une étape

Editer la condition d'une transition

Insérer des notes en SFC


SFC Grid Editor

IEC 61131-3 Programming Environment -> Edition des programmes -> L'éditeur SFC (Sequential Function Chart) -> SFC Grid Editor

Previous chapter Next chapter Show all Show all Hide all Hide all

L'éditeur SFC "Grid" est un outil graphique puissant qui vous permet de saisir et de gérer des programmes écrits en SFC (Sequential Function Chart - ou GRAFCET) selon la norme IEC 61131-3. L'éditeur supporte des fonctions graphiques avancées telles que le "glisser/déplacer" et vous permet d'arranger rapidement les éléments des graphes. Il assure également la mise en forme automatique des graphes lors de l'insertion de symboles et permet une saisie rapide au clavier.

Composants du langage SFB: | Consultez les sections:
Etapes Transitions Divergences Branches parallèles Saut à une étape Actions Conditions Timeout sur étape | Utiliser la barre d'outils SFC Tracer des divergences Visualiser le graphe Déplacer ou copier des parties du graphe Numéroter les étapes et transitions Entrer les actions d'une étape Entrer la condition d'une transition Entrer des notes pour les étapes et transitions Signets


SFC Free Form Editor

IEC 61131-3 Programming Environment -> Edition des programmes -> L'éditeur SFC (Sequential Function Chart) -> SFC Free Form Editor

Previous chapter Next chapter Show all Show all Hide all Hide all

L'éditeur "Free Form" vous propose une interface 100% graphique où vous pouvez dessiner librement les graphes SFC et arranger les étapes et transitions dans le dessin comme vous le souhaitez.

Composants du langage SFB: | Consultez les sections:
Etapes Transitions Divergences Branches parallèles Saut à une étape Actions Conditions Timeout sur étape | Utiliser la barre d'outils SFC Visualiser le graphe Déplacer ou copier des parties du graphe Numéroter les étapes et transitions Entrer les actions d'une étape Entrer la condition d'une transition Entrer des notes pour les étapes et transitions Signets

Vous pouvez directement glisser des items (étape, transition, saut) depuis la barre d'outils de l'éditeur vers la zone d'édition graphique. Les objets insérés peuvent par la suite être déplacés en les glissant avec la souris.

Vous devez tracer les liens entre objets avec la souris, dans le sens du flux.. Quand la souris est placée sur un objet, une marque verte vous indique à partir d'où tracer un lien.

Pour tracer une divergence ou convergence, reliez simplement les items entre eux par des liens. L'éditeur se charge de tracer les liens horizontaux. Quand un lien est sélectionné, vous pouvez déplacer ses segments afin de modifier son routage.


La barre d'outils SFC

IEC 61131-3 Programming Environment -> Edition des programmes -> L'éditeur SFC (Sequential Function Chart) -> La barre d'outils SFC

Previous chapter Next chapter Show all Show all Hide all Hide all

La barre verticale à gauche de l'éditeur contient les commandes d'insertion de symboles dans le graphe. Les éléments sont toujours insérés avant l'élément sélectionné. Le graphe est automatiquement ré-arrangé à chaque insertion.

Icone | Description
 | Insère une étape initiale.
 | Insère une étape.
 | Insère une transition.
 | Insère un saut vers une étape.
 | Insère le coin principal (à gauche) d'une divergence ou convergence.
 | Insère un coin de divergence (début de branche).
 | Insère un coin de convergence (fin de branche).

Utilisez les commandes suivantes quand un symbole est sélectionné:

  • ENTREE: édite le niveau 2 de l'étape ou de la transition.
  • Ctrl+ENTREE: change le numéro de l'étape, transition ou saut.

Le dernier bouton de la barre d'outil permet de sélectionner le type d'information à visualiser dans le graphe:

Icone

Description

Change l'aperçu du niveau 2 dans le graphe SFC:

  • Affiche la programmation des actions et des conditions.
  • Affiche les notes affectées aux étapes et transitions.


Tracé des divergences SFC

IEC 61131-3 Programming Environment -> Edition des programmes -> L'éditeur SFC (Sequential Function Chart) -> Tracé des divergences SFC

Previous chapter Next chapter Show all Show all Hide all Hide all

Quand vous utilisez l'éditeur SFC, vous placez les éléments du graphes dans une grille. L'éditeur calcule et trace les lignes entre les étapes et les transitions qua vous placez dans le graphe.

La même méthode est appliquée au tracé des divergences: il vous suffit de placer les coins qui délimitent les branches. L'éditeur trace pour vous les lignes horizontales et verticales des divergences. Utilisez les boutons suivants dans la barre d'outils SFC:

Icone | Description
 | Insère le coin principal (à gauche) d'une divergence ou convergence.
 | Insère un coin de divergence (début de branche).
 | Insère un coin de convergence (fin de branche).

attention Attention

Les divergences sont toujours tracées de la gauche vers la droite. La première branche à gauche contient les coins principaux qui identifient la divergence. Ils doivent être alignés avec l'étape ou transition précédente:

Comment procéder

  1. Insérer à gauche le coin principal de la divergence et de la convergence.
  2. Insérer les coins en haut de chaque branche (divergence).
  3. Insérer les coins en fin de branche pour chaque branche qui doit converger.

Divergences simples et doubles

Vous pouvez changer le tracé (simple ou double d'une ligne horizontale pour tracer des divergences simples ou double selon les conventions SFC. Pour ceci, placez-vous sur le coin principal (à gauche) et frappez la touche ESPACE.


Visualisation des graphes SFC

IEC 61131-3 Programming Environment -> Edition des programmes -> L'éditeur SFC (Sequential Function Chart) -> Visualisation des graphes SFC

Previous chapter Next chapter Show all Show all Hide all Hide all

Le schéma est entré dans une grille logique. Chaque objet est dessiné sur une cellule. Vous pouvez utiliser les commandes du menu Affichage pour montrer ou cacher la grille. Les coordonnées (x,y) du curseur de la souris sont affichées dans la barre d'état..

A tout moment vous pouvez utiliser les commandes du menu Afficher pour changer le niveau de zoom pour l'affichage du schéma. Vous pouvez également utiliser les touches [+] et [-] du clavier numérique pour changer le ratio de zoom.

Vous pouvez également déplacer avec la souris les séparations des pas de grille dans les marges gauche et supérieure pour retailler les cellules de la grille:

L'éditeur SFC ajuste automatiquement la police de caractères en fonction du niveau de zoom. Quand les cellules sont suffisament larges, un aperçu du texte de niveau 2 est affiché. Le dernier bouton de la barre d'outils SFC permet de basucler entre les modes d'affichage disponibles:

Icone

Description

Change l'aperçu du niveau 2 dans le graphe SFC:

  • Affiche la programmation des actions et des conditions.
  • Affiche les notes affectées aux étapes et transitions.


Déplacer ou copier des éléments SFC

IEC 61131-3 Programming Environment -> Edition des programmes -> L'éditeur SFC (Sequential Function Chart) -> Déplacer ou copier des éléments SFC

Previous chapter Next chapter Show all Show all Hide all Hide all

L'éditeur SFC de L'atelier supporte le "glisser/déplacer" pour déplacer ou copier des parties d'un graphe. Pour déplacer des éléments, sélectionnez-les et glissez-les vers la position voulue.

Pour copier des éléments, procédez de la même façon, en maintenant la touche CONTROL enfoncée. Il est également possible de glisser des éléments d'un programme vers l'autre pour les copier, si les deux programmes sont ouverts simultanément à l'écran.

A tout moment, vous pouvez abandonner l'opération de copie ou de déplacement en frappant la touche ECHAP.

Vous pouvez également utiliser les commandes classiques Copier / Couper / Coller du menu Edtion. Les éléments collés sont insérés à la position courante.


Numérotation des étapes et des transitions

IEC 61131-3 Programming Environment -> Edition des programmes -> L'éditeur SFC (Sequential Function Chart) -> Numérotation des étapes et des transitions

Previous chapter Next chapter Show all Show all Hide all Hide all

Chaque étape ou transition est idéntifié par un numéro. Un saut vers une étape est identifié par le numéro de l'étape de destination. L'éditeur SFC alloue un nouveau numéro à chaque nouvelle étape ou transition insérée dans le graphe.

Pour changer le numéro d'une étape, d'une transition ou d'un saut, sélectionnez son symbole et frappez Ctrl+ENTER.

Il n'est pas possible de changer le numéro d'une étape ou d'une transition si la fenêtre d'édition de son niveau 2 est ouverte. Le numéro est utilisé pour identifier la fenêtre d'édition du niveau 2.

Dans les messages d'erreur du compilateur, une étape est représentée par son numéro préfixé par GS. Une transition est identifiée par sont numéro préfixé par GT.


Entrer les actions d'une étape

IEC 61131-3 Programming Environment -> Edition des programmes -> L'éditeur SFC (Sequential Function Chart) -> Entrer les actions d'une étape

Previous chapter Next chapter Show all Show all Hide all Hide all

Les actions et notes d'une étape (niveau 2) sont entrées dans une fenêtre séparée. Pour ouvrir la fenêtre d'édition du niveau 2, sélectionnez le symbole de l'étape et frappez la touche ENTREE, ou cliquez deux fois sur le symbole de l'étape.

La fenêtre d'édition du niveau 2 présente cinq volets pour les différents types d'information du nivea 2:

  • Actions simples (entrées dans une page de texte).
  • Actions P1 programmées en texte ST/IL text, en LD ou en FBD.
  • Actions N programmées en texte ST/IL text, en LD ou en FBD.
  • Actions P0 programmées en texte ST/IL text, en LD ou en FBD.
  • Notes.

Utilisez la liste de feuillets en hat de la fenêtre d'édition pour sélectionner une vue:

Pendant l'édition des actionsP1, N ou P0, utilisez la commande Edition / Langage pour sélectionner le langage désiré. Cette commande n'est valide que si le bloc d'action est vide.

Le premier volet ("Action") contient la liste de toutes les actions simples (contrôle de variables booléennes et de programmes fils. Il est possible d'insérer dans la liste des actions programmées en ST, en utilisant la syntaxe suivante:

ACTION ( qualificatif ) :
énoncés...
END_ACTION;

Où qualificatif est "P1", "N" ou "P0".


Editer la condition d'une transition

IEC 61131-3 Programming Environment -> Edition des programmes -> L'éditeur SFC (Sequential Function Chart) -> Editer la condition d'une transition

Previous chapter Next chapter Show all Show all Hide all Hide all

La condition et les notes attachées à une (niveau 2) sont entrées dans une fenêtre indépendante. Pour ouvrir la fenêtre d'édition du niveau 2, sélectionnez le symbole de la transition et frappez la touche ENTREE, ou cliquez deux fois sur le symbole de la transition.

La fenêtre d'édition du niveau 2 offre deux volets pour l'édition de:

  • La condition programmée en texte ST/IL ou en LD.
  • Les notes de description.

Utilisez la liste de feuillets en hat de la fenêtre d'édition pour sélectionner une vue:

Pendant l'édition de la condition, utilisez la commande Edition / Langage pour sélectionner le langage désiré. Cette commande n'est valide que si la condition est vide. Le langage FBD ne peut pas être utilisé pour une condition.


Insérer des notes en SFC

IEC 61131-3 Programming Environment -> Edition des programmes -> L'éditeur SFC (Sequential Function Chart) -> Insérer des notes en SFC

Previous chapter Next chapter Show all Show all Hide all Hide all

L'éditeur SFC vous permet d'entrer des notes de description pour chaque étape ou transition. Les notes sont entrées dans la fenêtre d'édition du niveau 2 d'une étape ou d'une transition. Référez-vous aux sections suivantes pour plus de détail sur l'utilisation de la fenêtre d'édition du niveau 2:

  • Pour une étape
  • Pour une transition

Les notes peuvent être affichées dans le graphe. Le dernier bouton de la barre d'outils SFC vous permet de basculer entre les affichages disponibles:

Icone

Description

Change l'aperçu du niveau 2 dans le graphe SFC:

  • Affiche la programmation des actions et des conditions.
  • Affiche les notes affectées aux étapes et transitions.

Les notes n'ont pas d'influence pour l'exécution du programme. Entrer des notes pour les étapes et les transitions vous permet d'auto-documenter les graphes. C'est aussi un moyen de définir les graphes et d'échanger leur spécification avant d'effectivement coder les actions et conditions du programme.


Editeur FBD (Function Block Diagram)

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur FBD (Function Block Diagram)

Previous chapter Next chapter Show all Show all Hide all Hide all

L'éditeur FBD est un outil graphique puissant qui vous permet de saisir et de manipuler des diagrammes FBD (Function Block Diagram) selon la norme IEC 61131-3. L'éditeur supporte des fonctions graphiques avancées telles que le "glisser/déplacer", le redimensionnement des objets graphiques ou le routage automatique des arcs de liaison, pour vous permettre de saisir et arranger rapidement les éléments de vos diagrammes. Il supporte également l'insertion dans les diagrammes FBD d'éléments graphiques du langage LD (Schéma à relais) tels que des contacts ou des bobinages.

Composants du diagramme FBD

Consultez les sections suivantes

Blocs fonctionnels
Variables
Commentaires
Coins
Lignes de séparation
Etiquettes
Sauts
Expressions ST dans les diagrammes

La barre d'outils FBD
Sélection de bloc fonctionnel
Tracé des connexions
Sélection des variables et instances de blocs
Visualisation du diagramme
Copie et déplacement
Insertion sur une ligne
Redimensionnement d'objets
Signets

Composants du langage LD

Contacts
Bobinages
Liaisons verticales "OU"
Barres d'alimentation

info Info

Quand un contact ou un bobinage est sélectionné, tapez sur la BARRE D'ESPACE pour changer son type (normal, inversé, front...).

Dans cette section

La barre d'outils FBD

Tracer des connexions FBD

Selection de variables et d'instances en FBD

Visualisation des diagrammes FBD

Déplacer ou copier des objets FBD

Insérer des éléments FBD sur une ligne

Redimensionner les objets FBD


La barre d'outils FBD

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur FBD (Function Block Diagram) -> La barre d'outils FBD

Previous chapter Next chapter Show all Show all Hide all Hide all

La barre d'outils verticale à gauche de l'éditeur FBD contient des boutons pour toutes les commandes d'édition graphique. Enfoncez le bouton correspondant à l'opération que vous désirez effectuer.

Icone

Description

Sélection: Aucune insertion n'est possible dans ce mode. La souris est utilisée pour séletrionner des objets ou lignes du diagramme, pour des opérations de sélection de symbole, de déplacement ou de copie. A tout moment, vous pouvez revenir dans ce mode en tapant la touche ECHAP.

Insérer un bloc: Dans ce mode, la souris est utiliser pour insérer un bloc dans le diagramme. Cliquez dans le diagramme et glissez la souris vers l'emplacement désiré pour le nouveau bloc. Le type de bloc inséré est celui sélectionné dans la liste de la barre d'outils principale.

Insérer une variable: Dans ce mode, la souris est utiliser pour insérer une variable dans le diagramme. Cliquez dans le diagramme et glissez la souris vers l'emplacement désiré pour la nouvelle variable. Les variables sont ensuite connectées aux entrées et sorties des blocs.

Insérer un commentaire: Dans ce mode, la souris est utilisée pour insérer une zone de commentaire dans le diagramme. Les commentaires insérés peuvent ensuite être sélectionnés et redimensionnés.

Tracer une ligne de connexion: Dans ce mode, la souris est utilisée pour connecter les entrées et les sorties des objets du diagramme. Les lignes de connexion doivent toujours être tracées dans le sens du flux de donnée: depuis une broche de sortie jusqu'à une broche d'entrée. L'éditeur FBD sélectionne automatiquement le meilleur routage pour le tracé de la ligne. Le routage par défaut peut ensuite être changé en insérant des coins (voir ci-après)

Lorsque vous tracez une ligne d'un point de sortie vers un emplacement vide, un coin est automatiquement inséré à l'extrémité de l'arc. Vous pouvez ainsi continuer le rourafe de l'arc jusqu'au point de connexion désiré en forçant le routage des lignes.

Insérer un coin: Dans ce mode, la souris est utilisée pour insérer un coin sur un arc de connexion. Les coins sont utilisés en FBD pour forcer le routage des arcs de connexion, puisque l'éditeur FBD n'impose un routage qu'entre deux points de connexion ou des coins définis par l'utilisateur. Il est ensuite possible de déplacer les coins insérés pour ajuster le routage des arcs.

Insérer une séparation: Dans ce mode, la souris est utilisée pour insérer une ligne de séparation horizontale dans le diagramme. Les séparations n'ont aucune influence sur l'exécution du programme. Elles facilitent la lisibilité des diagrammes. A chaque ligne de séparation est associé un texte de commentaire.

Insérer une étiquette: Dans ce mode, la souris est utiliser pour insérer une étiquette dans le diagramme. Les étiquettes marquent la destination des symboles de saut.

Insérer un saut: Dans ce mode, la souris est utiliser pour insérer un symbole de saut dans le diagramme. Un saut indique que l'exécution du programme doit être déroutée à l'étiquette correspondante. Les sauts sont des instructions conditionnelles et doivent être connectés à un flux booléen en entrée.

Insérer une barre d'alimentation à gauche: Dans ce mode, la souris est utiliser pour insérer une barre d'alimentation à gauche dans le diagramme. La berre représente l'état TRUE et peut être utilisée pour initier des échelles tel que dans le langage LD. Les barres d'alimentation peuvent ensuite être sélectionnées et redimensionnées verticalement.

Insérer un contact: Dans ce mode, la souris est utiliser pour insérer un contact dans le diagramme.

Insérer une barre OU: Dans ce mode, la souris est utilisée pour insérer une barre verticale OU qui permert le regroupement de flux booléens en une opération de OU logique, tel que dans le langage LD pour les contacts en parallèle.

Insérer un bobinage: Dans ce mode, la souris est utiliser pour insérer un contact dans le diagramme. Il n'est pas obligatoire de connecter les bobinages à droite

Insérer une barre d'alimentation à droite: Dans ce mode, la souris est utiliser pour insérer une barre d'alimentation à droite dans le diagramme. La berre est utilisée pour terminer des échelles tel que dans le langage LD. Les barres d'alimentation peuvent ensuite être sélectionnées et redimensionnées verticalement.

Dans cette section

Les variables en FBD

Commentaires FBD

Coins FBD

Lignes de séparation en FBD

Barres verticales OU


Les variables en FBD

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur FBD (Function Block Diagram) -> La barre d'outils FBD -> Les variables en FBD

Previous chapter Next chapter Show all Show all Hide all Hide all

Toutes les variables et expressions constantes sont représentées dans le diagramme FBD par des boîtes rectangulaires. Enfoncez le bouton suivant dans la barre d'outils FD pour insérer une variable:

Icone | Description
 | Insérer une variable: Dans ce mode, la souris est utiliser pour insérer une variable dans le diagramme. Cliquez dans le diagramme et glissez la souris vers l'emplacement désiré pour la nouvelle variable.

Cliquez deux fois dans le rectangle d'une variable pour ouvrir la boîte de sélection et sélectionner un symbole déclaré ou entrer une expression constante.

Les variables doivent être connectée aux autres objets tels que les entrées ou sorties de blocs.

Redimensionner une variable verticalement vous permet de visualiser en plus de son symbole: son repère (commentaire court), sa description, et son emplacement dans le cas d'une E/S. Le nom de la variable est toujous indiqué en bas de la boîte:

% emplacement

description

repère

name


Commentaires FBD

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur FBD (Function Block Diagram) -> La barre d'outils FBD -> Commentaires FBD

Previous chapter Next chapter Show all Show all Hide all Hide all

Des zones de commentaires peuvent être insérées dans les diagrammes FBD. Utilisez le bouton suivant dans la barre d'outils FBD pour insérer un commentaire:

Icone | Description
 | Insérer un commentaire: Dans ce mode, la souris est utilisée pour insérer une zone de commentaire dans le diagramme.

Cliquez deux fois sur un commentaire pour entrer son texte. Quand il est sélectionné, un commentaire peut être redimensionné.


Coins FBD

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur FBD (Function Block Diagram) -> La barre d'outils FBD -> Coins FBD

Previous chapter Next chapter Show all Show all Hide all Hide all

Les coins sont utilisés en FBD pour forcer le routage des arcs de connexion, puisque l'éditeur FBD n'impose un routage qu'entre deux points de connexion ou des coins définis par l'utilisateur. Utilisez le buton suivant dans la barre d'outils FBD pour insérer un coin sur un arc:

Icone | Description
 | Insérer un coin: Dans ce mode, la souris est utilisée pour insérer un coin sur un arc de connexion.

Il est ensuite possible de déplacer les coins insérés pour ajuster le routage des arcs. Lorsque vous tracez une ligne d'un point de sortie vers un emplacement vide, un coin est automatiquement inséré à l'extrémité de l'arc. Vous pouvez ainsi continuer le rourafe de l'arc jusqu'au point de connexion désiré en forçant le routage des lignes.


Lignes de séparation en FBD

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur FBD (Function Block Diagram) -> La barre d'outils FBD -> Lignes de séparation en FBD

Previous chapter Next chapter Show all Show all Hide all Hide all

Des lignes horizontales de séparation peuvent être insérées dans les diagrammes FBD. Les séparations n'ont aucune influence sur l'exécution du programme. Elles facilitent la lisibilité des diagrammes. Utilisez le bouton suivant dans la barre d'outils FBD pour insérer une ligne de séparation:

Icone | Description
 | Insérer une séparation: Dans ce mode, la souris est utilisée pour insérer une ligne de séparation horizontale dans le diagramme.

La ligne de séparation est tracée sur la largeur totale du diagramme. Aucun objet du diagramme ne peut se superposer à une séparation. A chaque ligne de séparation est associé un texte de commentaire. Les lignes de séparation peuvent être sélectionnées et déplacées verticalement dans le diagramme.

Les lignes de séparation peuvent également être utilisées pour naviguer dans le diagramme. Frappez les touches Ctrl+Page Haut ou Ctrl+Page Bas pour déplacer la sélection vers la séparation précédente ou suivante.


Barres verticales OU

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur FBD (Function Block Diagram) -> La barre d'outils FBD -> Barres verticales OU

Previous chapter Next chapter Show all Show all Hide all Hide all

L'éditeur FBD permet le tracé d'échelles du langage LD (Schéma à relais). Un élément particulier, la barre verticale OU, peut être insérée sur la ligne prinicaple d'une échelle afin de permettre la connexion de contacts en parallèle. Enfoncez le bouton suivant dans la barre d'outils FBD pour insérer une barre OU:

Insérer une barre OU: Dans ce mode, la souris est utilisée pour insérer une barre verticale OU qui permert le regroupement de flux booléens en une opération de OU logique, tel que dans le langage LD pour les contacts en parallèle.

La barre OU a exactement la même signification qu'un bloc OR pour l'exécution du diagramme.


Tracer des connexions FBD

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur FBD (Function Block Diagram) -> Tracer des connexions FBD

Previous chapter Next chapter Show all Show all Hide all Hide all
Icone | Description
 | Enfoncez ce bouton avant d'insérer une ligne de connexion.

Les lignes de connexion doivent toujours être tracées dans le sens du flux de donnée: depuis une broche de sortie jusqu'à une broche d'entrée. L'éditeur FBD sélectionne automatiquement le meilleur routage pour le tracé de la ligne. Les lignes de connexion indiquent des flux de données entre les objets suivants:

Icone | Description
 | Bloc: Référez-vous à l'aide en l'igne pour connaître la signification et le typage de chaque point d'entrée ou de sortie d'un bloc.
 | Variable: Une variable peut être connectée à sa droite (pour initier un flux de données) ou à sa gauche pour forcer la variable, si elle n'a pas l'attribut “lecture seulement”. Le flux de données doit être cohérent avec le type de la variable.
 | Saut: Un saut doit être connecté à gauche à un flux booléen.
 | Barre d'alimentation à gauche: Les barres d'alimentation à gauche représentent la valeur booléenne TRUE et peuvent être connectées à un nombre non limité d'objets à leur droite.
 | Contact: Un contact doit être connecté à gauche et à droite à un flux de données booléen.
 | Barre “OU”: Ces barres collectent plusieurs flux booléens à gauche et produisent à droite un flux correspondant au OU logique des flux d'entrée. Elles permettent la représentation de contacts en parallèle tel que dans le langage LD. Elles peuvent avoir une ou plusieurs connexions à gauche et à droite. Tous les flux connectés doivent être booléens.
 | Bobinage: Un bobinage doit être connectè à gauche à un flux de données booléen. Il n'est pas obligatoire de connecter un bobinage sur sa droite.
 | Barre d'alimentation à droite: Ces barres sont des éléments du langage LD, communément utilisées pour terminer les échelles du diagramme à droite. Elles ont un nombre non limité de connexions booléennes à gauche. Il n'est pas obligatoire de connecter les bobinages à des barres d'alimentation à droite.

L'ésiteur permet de terminer une connexion booléenne par une inversion logique, représentée par un petit cercle à l'extrémité droite du lien. Pour insérer ou supprimer l'inversion, sélectionnez la ligne et tapez la BARRE D'ESPACE.


Selection de variables et d'instances en FBD

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur FBD (Function Block Diagram) -> Selection de variables et d'instances en FBD

Previous chapter Next chapter Show all Show all Hide all Hide all
Icone | Description
 | Enfoncez ce bouton ou frappez ECHAP avant de sélectionner des objets.

Pour sélectionner la variable qui doit être attachée à un symbole graphique, vous devez être en mode Sélection. Cliquez duex fois sue l'emplacement du symbole (zo^ne grisée). Les objets graphiques suivants doivent être liés à des symboles déclarés:

Icone | Description
 | Bloc: Dans le cas d'un bloc fonctionnel, vous devez spécifier le nom d'une instance déclarée ayant le type du bloc.
 | Variable: Une étiquette de variable doit être renseignée avec le symbole d'une variable déclarée. Il est également possible de renseigner la boîte avec une expression constante valide.
 | Etiquette: Une étiquette doit avoir un nom unique dans le diagramme.
 | Saut: Un saut doit porter le même nom qu'une étiquette déclarée dans le diagramme.
 | Contact: Un contact doit être lié à une variable booléenne déclarée.
 | Coil: Un bobinage doit être lié à une variable booléenne déclarée.

Les symboles des of variables et instances sont sélectionnée à l'aide de la liste de variables, qui peut être utilisée comme l'édiiteur de variable. Sélectionnez un symbole dans la liste et pressez le bouton OK. Vous pouvez également créer une nouvelle variable pendant la sélection en pressant le bouton Créer.

plus de détails...


Visualisation des diagrammes FBD

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur FBD (Function Block Diagram) -> Visualisation des diagrammes FBD

Previous chapter Next chapter Show all Show all Hide all Hide all

Le diagramme est entrée dans une grille logique. Tous les objets sont alignés sur les points de la grille. Vous pouvez utiliser les commandes du menu Afficher pour montrer ou cacher les points de la grille. Les coordonnées (x,y) du curseur de la souris sont affichées dans la barre d'état. Ceci vous permet de localiser les erreurs rapportées par le compilateur, ou d'aligner des objets dans le diagramme.

A tout moment vous pouvez utiliser les commandes du menu Afficher pour changer le niveau de zoom pour l'affichage du diagramme. Vous pouvez également utiliser les touches [+] et [-] du clavier numérique pour changer le ratio de zoom.


Déplacer ou copier des objets FBD

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur FBD (Function Block Diagram) -> Déplacer ou copier des objets FBD

Previous chapter Next chapter Show all Show all Hide all Hide all
Icone | Description
 | Enfoncez ce bouton ou frappez ECHAP avant de sélectionner des objets.

L'éditeur FBD de FBD supporte le "glisser/déplacer" pour déplacer ou copier des éléments du diagramme. Pour déplacer des objets, il suffit de les sélectionner et de les glisser vers un autre emplacement libre du diagramme.

Pour copier des éléments, vous pouvez procéder de la même façon, en maintenant la touche CONTROL enfoncée pendant que vous glissez la souris. Il est également possible de glisser des parties du diagramme d'un programme vers un autre si les deux programmes sont ouverts.

A tout moment vous pouvez abandonner le "glisser/déplacer" en tapant la touche ECHAP.

Vous pouvez également utiliser les commandes classiques Copier / Couper / Coller du menu Edition. Lorsque vous lancez la commande Coller, l'éditeur passe en mode "collage" avec un curseur de souris particulier. Vous devez alors cliquer dans un espace vide du diagramme pour coller les éléments.

Utilisation du clavier

Quand des objets sont sélectionnés, vous pouvez les déplacer en frappant les touches suivantes:

Combinaison de touches | Description
Maj + Haut | Déplacement vers le haut.
Maj + Bas | Déplacement vers le bas.
Maj + Gauche | Déplacement vers la gauche.
Maj + Droite | Déplacement vers la droite.

Wuand un objet est sélectionné, vous pouvez étendre la sélection en frappant les touches suivantes:

Combinaison de touches | Description
Maj + Control + Home | Sélectionne tous les objets situés avant l'objet sélectionné.
Maj + Control + Fin | Sélectionne tous les objets situés après l'objet sélectionné.

Pour insérer ou supprimer de l'espace dans le diagramme, il suffit de sélectionner un objet, de frapper Maj+Control+Fin pour étendre la sélection et de déplacer la sélection vers le haut ou le bas.

Alignement automatique

Quand des objets sont sélectionnés, frappez les touches suivantes pour les aligner automatiquement:

Combinaison de touches | Description
Control + Haut | Vers le haut.
Control + Bas | Vers le bas.
Control + Gauche | Vers la gauche.
Control + Droite | Vers la droite.


Insérer des éléments FBD sur une ligne

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur FBD (Function Block Diagram) -> Insérer des éléments FBD sur une ligne

Previous chapter Next chapter Show all Show all Hide all Hide all

L'éditeur FBD vous permet d'insérer un objet sur une ligne et de connecter automatiquement le nouvel objet à la ligne. Cette fonctionalité est disponible pour tout objet ayant une entrée et une sortie, tel qu'une variable, un contact ou un bobinage. L'insertion est particulièrement utile lors de l'édition d'échelles LD. Tracez simplement une ligne (l'échelle) entre des barres d'alimentation à gauche et à droite, puis insérez les contacts et bobinages sur la ligne sans plus avoir à tracer de connexion.


Redimensionner les objets FBD

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur FBD (Function Block Diagram) -> Redimensionner les objets FBD

Previous chapter Next chapter Show all Show all Hide all Hide all
Icone | Description
 | Enfoncez ce bouton ou frappez ECHAP avant de sélectionner des objets.

Quand un objet est sélectionné, des repères carrés indiquent si il peut être redimensionné. Cliquez sur un repère pour redimensionner l'objet dans la direction correspondante.

Le redimensionnement n'est pas possible pour tous les objets. Voici les opérations possibles:

Élément | Description
Variable | Horizontalement et verticalement (*).
Bloc | Horizontalement.
Sauts et étiquettes | Horizontalement.
Barres d'alimentation | Horizontalement.
Barres "OU" | Horizontalement.
Commentaires | Dans toutes les directions.

(*) Redimensionner une variable verticalement vous permet de visualiser en plus de son symbole: son repère (commentaire court), sa description, et son emplacement dans le cas d'une E/S. Le nom de la variable est toujous indiqué en bas de la boîte:

% emplacement

description

repère

nom


L'éditeur LD (Ladder Diagram ou Schéma à relais)

IEC 61131-3 Programming Environment -> Edition des programmes -> L'éditeur LD (Ladder Diagram ou Schéma à relais)

Previous chapter Next chapter Show all Show all Hide all Hide all

L'éditeur LD est un outil graphique puissant qui vous permet d'entrer et de manipuler des diagrammes en langage LD selon la norme IEC 61131-3. L'éditeur permet la saisie rapide des diagrammes avec le clavier, et supporte des fonctionalités graphiques avancées telles que le glisser/déplacer.

Composants du langage LD | Consultez les sections suivantes
Echelles Contacts Bobinages Barres d'alimentation Blocs fonctionnels Etiquettes Sauts Commentaires Expressions ST dans les diagrammes | La barre d'outils LD Sélection de blocs fonctionnels Sélection de variables et d'instances Visualisation des diagrammes Copier ou déplacer des éléments Signets

info Info

Quand un contact ou un bobinage est sélectionné, frappez la touche ESPACE pour changer son type (normal, inversé, front...).

Dans cette section

La barre d'outils LD

Maniuplation des échelles LD

Commentaires dans les diagrammes LD

Visualisation des diagrammes LD

Déplacer ou copier des éléments LD


La barre d'outils LD

IEC 61131-3 Programming Environment -> Edition des programmes -> L'éditeur LD (Ladder Diagram ou Schéma à relais) -> La barre d'outils LD

Previous chapter Next chapter Show all Show all Hide all Hide all

La barre verticale à gauche de l'éditeur LD contient les boutons pour insérer des objets graphiques dans le diagramme. Les objets sont toujours inséré à la position courante de la sélection.

Icone | Description
Shift+F4 | Insère un contact avant la cellule sélectionnée.
F4 | Insère un contact après la cellule sélectionnée.
Ctrl+F4 | Insère un contact en parallèle avec les objets sélectionnés.
Ctrl+Space | Insère un segment de ligne horizontal avant l'élément sélectionné. Vous pouvez ainsi décaler des éléments vers la droite pour aligner verticalement des parties du diagramme.
Shift+F8 | Insère un bloc avant la cellule sélectionnée.
F8 | Insère un bloc après la cellule sélectionnée.
Ctrl+F8 | Insère un bloc en parallèle avec les objets sélectionnés.
Shift+F9 | Ajoute une instruction de saut en fin d'échelle.
F9 | Ajoute un bobinage en fin d'échelle.
Ctrl+R | Insère une nouvelle échelle dans le diagramme.
Ctrl+D | Insère une ligne de commentaire entre deux échelles.


Maniuplation des échelles LD

IEC 61131-3 Programming Environment -> Edition des programmes -> L'éditeur LD (Ladder Diagram ou Schéma à relais) -> Maniuplation des échelles LD

Previous chapter Next chapter Show all Show all Hide all Hide all
Icone | Description
 | Utilisez ce bouton dans la barre d'outils LD toolbar pour insérer une nouvelle échelle.

Un diagramme LD est une liste d'échelles. Chaque échelle commence par une barre d'alimentation tracée dans la colonne de gauche, et finit par un bobinage ou un symbole de saut.

Chaque échelle est idéentifiée par un nombre (Rnnn) affichée près de la barre d'alimentation à gauche. Le numéro d'échelle peut être utilisé comme destination pour une instruction de saut. Vous pouvez également donner un nom spécifique à une échelle (une étiquette) en cliquant deux fois sur la tête de l'échelle.

L'éditeur LD vous permet de manipuler des échelles entières en sélectionnant uniquement la première cellule à gauche de l'échelle. Voici un exemple de sélection d'une échelle entière:

Example Example

Quand une échelle est sélectionnée, utilisez les commandes du menu Edition pour la supprimer, la couper ou la copier.


Commentaires dans les diagrammes LD

IEC 61131-3 Programming Environment -> Edition des programmes -> L'éditeur LD (Ladder Diagram ou Schéma à relais) -> Commentaires dans les diagrammes LD

Previous chapter Next chapter Show all Show all Hide all Hide all
Icone | Description
 | Utilisez ce bouton pour unsérer une ligne de commentaire.

L'éditeur LD vous permet d'insérer des lignes de texte dans le diagramme pour le commenter. Un commentaire est une ligne de texte insérée entre deux échelles. Le texte est affiché sur une ligne double de séparation dans le diagramme:

Les commentaires n'ont aucune influence sur l'exécution du programme. Ils sont utilisés pour augmenter la lisibilité des diagrammes, et permettent sa description échelle par échelle.

Le commentaire reste visible même quand le diagramme est décalé par un défilement horizontal de la fenêtre d'édition. Pour changer le text d'un commentaire, placez la sélection sur la ligne correspondante en frappez la touche ENTREE, ou bien cliquez deux fois sur la ligne de commentaire.


Visualisation des diagrammes LD

IEC 61131-3 Programming Environment -> Edition des programmes -> L'éditeur LD (Ladder Diagram ou Schéma à relais) -> Visualisation des diagrammes LD

Previous chapter Next chapter Show all Show all Hide all Hide all

Le diagramme est entré dans une grille logique. Chaque objet est dessiné sur une ou plusieurs cellules. Vous pouvez utiliser les commandes du menu Affichage pour montrer ou cacher la grille. Les coordonnées (x,y) du curseur de la souris sont affichées dans la barre d'état. Ceci vous permet de localiser les erreurs rapportées par le compilateur, ou d'aligner des objets dans le diagramme.

A tout moment vous pouvez utiliser les commandes du menu Afficher pour changer le niveau de zoom pour l'affichage du diagramme. Vous pouvez également utiliser les touches [+] et [-] du clavier numérique pour changer le ratio de zoom.

Vous pouvez également déplacer avec la souris les séparations des pas de grille dans les marges gauche et supérieure pour retailler les cellules de la grille:

L'éditeur LD ajuste la taille de la police de caractères en fonction du niveau de zoom afin que les noms des variables associées aux contacts et bobinages soient toujours visibles. Si les cellules sont suffisament grandes, des informations supplémentaires sont affichées pour chaque variable en plus de son nom:

  • Son repère (sommentaire court).
  • Sa description.
  • Son emplacement physique (%...) s'il s'agit d'une variable d'E/S nommée.


Déplacer ou copier des éléments LD

IEC 61131-3 Programming Environment -> Edition des programmes -> L'éditeur LD (Ladder Diagram ou Schéma à relais) -> Déplacer ou copier des éléments LD

Previous chapter Next chapter Show all Show all Hide all Hide all

L'éditeur LD supporte le glisser/déplacer pour déplacer ou copier des objets graphiques dans le diagramme. Pour déplacer des objets, glissez-les simplement vers un nouvel emplacement, dans la même échelle ou dans une autre.

Pour copier des objets, procédez de la même façon en gardant la touche CONTROL enfoncée. Il est également possible de glisser des objets d'un programme DL vers un autre si les deux programmes sont ouverts en même temps à l'écran.

A tout moment, vous pouvez interrompre le déplacement ou la copie en frappant la touche ECHAP.

Vous pouvez également utiliser les fonctions classiques Copier / Couper / Coller du menu Edition. Le collage est toujour effectué à la position sélectionné.

Vous pouvez aussi manipuler des échelles entières en sélectionnant seulement la première cellule à gauche de l'échelle dans la marge gauche (la cellule où le numéro de l'échelle est affiché).


Editeur ST (Structured Text) / IL (Instruction List)

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur ST (Structured Text) / IL (Instruction List)

Previous chapter Next chapter Show all Show all Hide all Hide all

L'éditeur ST/ IL est un éditeur dédié, sensible à la syntaxe des langages de la norme IEC 61131-3. L'éditeur supporte des fonctions avancées telles que le glisser/déplacer, la coloration de la syntaxe, et les info-bulles animées pendant le test des programmes en ST et IL.

L'éditeur ST / IL vous offre également un système d'aide contextuelle dédié aux langages de programmation. Placez le curseur d'édition sur le nom d'une fonction ou d'un bloc, et frappez la touche F1 pour afficher l'aide sur le bloc.

Dans cette section

Sélection du langage ST / IL

ST / IL - Edition syntactique

Complétion automatique

Glisser/déplacer en ST / IL

Info-bulles ST / IL


Sélection du langage ST / IL

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur ST (Structured Text) / IL (Instruction List) -> Sélection du langage ST / IL

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier vous permet de mélanger les langages ST et IL dans un programme textuel. ST est le langage par défaut. Pour entrer des instructions en IL, le programme doit commencer par "BEGIN_IL" et se terminer par "END_IL", comme montré dans l'exemple suivant:

Example Example

BEGIN_IL
LD var1
ST var2
END_IL


ST / IL - Edition syntactique

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur ST (Structured Text) / IL (Instruction List) -> ST / IL - Edition syntactique

Previous chapter Next chapter Show all Show all Hide all Hide all

L'éditeur de programmes ST / IL colore les mots du programme en fonction de la syntaxe du langage de programmation (ST or IL). L'éditeur utilise des couleurs différentes en fonction du type de mot:

  1. Par défaut (symboles, séparateurs...)
  2. Mots réservés du langage
  3. Expressions constantes
  4. Commentaires

Les couleurs utilisées peuvent être personnalisées depuis le menu Outils/Options.

D'autres fonctionalités sont disponibles, appelées "Intellisense". L'Intellisense peut consommer beaucoup de mémoire et doit être activée depuis le menu Outils/Options. Après l'avoir activée ou désactivée, il vous faut fermer et ré-ouvrir votre liste de projets Les fonctionnalités suivantes sont disponible quand l'intellisense est activée:

Coloration de la compilation conditionnelle

Les parties conditionnée par des directives #ifdef et non validées sont grisées.

Auto-indentation

Les lignes sont automatiquement alignées (indentées) au fur et à mesure que vous saisissez des énoncés structurés du ST.

Auto-complétion des énoncés ST

Sur une ligne vide, entrez simplement le mot clé principal d'un énoncé tel que "for", "if"... et pressez la touche ENTREE. L'énoncé complet est généré, incluant des commentaires pour vous guider sur les termes et expressions à renseigner.

Auto-complétion des appels de fonctions

Entrez le nom d'une fonction suivi d'une parenthèse ouvrante et pressez la touche ENTREE. L'appel sera complété avec la liste des arguments commentés, et si possible des valeurs par défaut.

Auto-déclaration des variables

Si vous pressez la touche ENTREE à la fin d'un ligne contenant des symboles inconnus, il vous sera proposé de déclarer sur le champs les variables manquantes.


Complétion automatique

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur ST (Structured Text) / IL (Instruction List) -> Complétion automatique

Previous chapter Next chapter Show all Show all Hide all Hide all

L'éditeur ST / IL inclut des fonctions puissantes pour la complétion automatique des mots saisis, en accord avec les variables et types de données déclarés. Les fonctions suivantes sont disponibles:

Complétion d'un nom de variable

Après avoir entré les premières lettres d'un nom de variable, frappez la touche CTRL+ESPACE pour compléter automatiquement le nom. Une liste est affichée si plusieurs variables déclarées ont un nom qui correspond aux caractères frappés.

Sélection d'un membre de bloc fonctionnel

Quand vous entrez le nom d'une instance de bloc fonctionnel (utilisée soit comme une instance soit comme une structure de données), quand vous frappez le point "." après le nom de l'instance, une liste apparait avec les membres disponibles de l'instance.

Autres commandes d'édition syntaxique

Quand des lignes sont sélectionnées, vous pouvez automatiquement les indenter. Frappez les touches TAB ou Maj+TAB pour décaler les lignes vers la gauche ou la droite, en ajoutant ou supprimant des espaces en début de ligne.


Glisser/déplacer en ST / IL

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur ST (Structured Text) / IL (Instruction List) -> Glisser/déplacer en ST / IL

Previous chapter Next chapter Show all Show all Hide all Hide all

L'éditeur ST / IL supporte le glisser/déplacer pendant l'édition ou le test des programmes. Vous pouvez:

  • Glisser du texte (mots ou lignes) depuis le programme ST / IL vers une autre application (telle qu'un éditeur de texte).
  • Faire l'opération inverse.
  • Glisser un symbole de variable depuis l'éditeur de variable vers le programme ST / IL.
  • Glisser un symbole de variable depuis le programme ST / IL vers la liste de variables à espionner (*).

(*) Lorsque vous glisser le symbole d'un tableau vers la liste de variables, tous les éléments du tableau sont ajoutés à la liste.


Info-bulles ST / IL

IEC 61131-3 Programming Environment -> Edition des programmes -> Editeur ST (Structured Text) / IL (Instruction List) -> Info-bulles ST / IL

Previous chapter Next chapter Show all Show all Hide all Hide all

Pendant le test (en mode connecté ou en simulation)des programmes ST / IL, l'éditeur montre dans une info bulle la valeur de la variable dont le symbole est pointé par la souris dans le texte du programme. Aucune commande particulière ne doit être lancée pour ouvrir l'info-bulle. Placez le curseur de la souris sur un symbole de variable et attendez une seconde.

La valeur montrée dans l'info-bulle est rafraichie automatiquement quand la variable change d'état.


Sélectionner un bloc

IEC 61131-3 Programming Environment -> Edition des programmes -> Sélectionner un bloc

Previous chapter Next chapter Show all Show all Hide all Hide all

Tous les opérateurs, fonctions et blocs fonctionnels disponibles sont listés en bas et à droite de l'éditeur, triés par catégories.

La catégorie Tous montre l'ensemble des blocs disponibles. La catégorie Récent montre les blocs récemment utilisés. La catégorie Projet contient les UDFBs et sous-programmes du projet.

Pour insérer un bloc dans un programme, sélectionnez-le dans la liste et glissez-le avec la souris vers la position souhaitée dans le texte ou le diagramme édité.

Frappez la touche F1 quand un bloc est sélectionné pour afficher son guide d'utilisation et connaître la description de ses entrées/sorties. Quand l'éditeur est en mode sélection, vous pouvez également double cliquer sur son rectangle pour changer son type et régler le nombre d'entrées dans le cas d'un bloc extensible.


Sélection de variables et d'instances

IEC 61131-3 Programming Environment -> Edition des programmes -> Sélection de variables et d'instances

Previous chapter Next chapter Show all Show all Hide all Hide all

Les symboles de variables et d'instances à insérer dans les programmes peuvent être sélectionnés dans une liste de variables similaire à l'éditeur de variables. La sélection de variables est disponible depuis tous les éditeurs:

  • En FBD, cliquez deux fois sur la boîte d'une variable, un nom d'instance de bloc, un contact ou un bobinage pour sélectionner la variable associée.
  • En FBD, cliquez deux fois sur la boîte d'une variable, un nom d'instance de bloc, un contact ou un bobinage pour sélectionner la variable associée. Cliquez deux fois sur une entrée ou une sortie de bloc pour attacher une variable.
  • En texte ST ou IL, utilisez la commande Insérer Variable du menu Edition pour sélectionner le nom d'une variable à insérer dans le texte.

Quand l'éditeur de variables est visible dans la fenêtre d'édition de programmes, vous pouvez simplement glisser une variable de la liste vers le programme pour l'insérer.

Quand un nom de variable est entré, l'atelier vérifie automatiquement si elle est existe déjà, et sinon vous propose de la déclarer immédiatement.


Recherche

IEC 61131-3 Programming Environment -> Recherche

Vous pouvez utiliser les commandes classiques des menus Edition pour chercher et remplacer du texte dans les fenêtres d'édition. Vous pouvez également utiliser la boîte de recherche rapide située dans la barre d'état:

Cette fonctionalité est disponible dans toutes les fenêtres de l'atelier.

Cliquez sur la boîte d'édition, entrez le texte cherché et frappez la touche ENTREE. Le bouton à gauche de la boîte permet de chercher l'occurence suivante du texte dans la fenêtre.


Signets

IEC 61131-3 Programming Environment -> Signets

Les signets sont utilisés pour naviguer dans un document. Vous pouvez librement insérer des signets n'importe où dans un document. Par la suite, vous pouvez passer d'un signet à l'autre par une simple commande pour naviguer dans le document. Les signets sont disponibles dans tous les éditeurs de programmes ainsi que dans l'éditeur de variables.

Voici les commandes pour l'utilisation des signets:

Combinaison de touches | Description
Ctrl + F2 | Insère ou supprime le signet à la position courante.
Maj + F2 | Va au signet suivant.

Selon le type de document, voici les emplacements possibles pour un signet:

  • Dans l'éditeur de texte, un signet est placé sur une ligne.
  • Dans l'éditeur SFC, un signet est placé sur un symbole SFC (étape, transition, saut...).
  • Dans l'éditeur FBD, un signet est placé sur n'importe quel objet (mais pas sur une ligne).
  • Dans l'éditeur LD, un signet est placé en tête d'une échelle.
  • Dans l'éditeur de variables, un signet est placé sur n'importe quelle ligne de la grille (variable ou groupe).

info Info

Les signets sont valides seulement pendant que la fenêtre d'édition est ouverte, et ne sont pas mémorisés quand la fenêtre est fermée.


Paramètres du projet

IEC 61131-3 Programming Environment -> Paramètres du projet

La commpande Projet / Paramètres permet de renseigner tous les paramètres et options du projet:

  • Paramètres principaux
  • Identification du système cible
  • Options d'exécution
  • Options de compilation
  • Options de debug
  • Modification en ligne
  • Utilsation d'un compilateur "C"

Dans cette section

Paramètres du projet

Paramètres du projet - Exécution

Paramètres du projet - Cible

Paramètres du projet - Compilation

Paramètres du projet - Test

Paramètres du projet - Modification en ligne

Paramètres du projet - Compilation "C"


Paramètres du projet

IEC 61131-3 Programming Environment -> Paramètres du projet -> Paramètres du projet

Previous chapter Next chapter Show all Show all Hide all Hide all

Cette boîte vous permet de régler les paramètres pour la compilation et l'exécution du projet.

Cible

Vous devez spécifier le type de système cible T5 installé dans votre contrôleur. Ce peut être:

  • T5RTI: système T5 standard pour les processeurs de type Intel
  • T5RTM: système T5 standard pour les processeurs de type Motorola
  • Spécifique

Pour définir une cible spécifique, appuyez sur le bouton Avancé.

Génération de code

si vous désirer bénéficier des fonctions de debug en pas à pas pendant la simulation ou le test en ligne, vous devez sélectionner le mode Mise au point. Si le pas à pas n'est plus nécessaire, sélectionnez le mode Exécution pour optimiser les performances à l'exécution.

Mode d'exécution

Vous devez spécifier ici comment les cycles doivent être cadencés à l'exécution:

  • Aussi vite que possible: la cible n'attend pas entre deux cycles.
  • Cadencé: vous devez spécifier la durée d'un cycle, exprimée en millisecondes ou microsecondes. Référez-vous aux instructions du constructeur pour connaître la précision supportée par la cible.

Objets externes

L'atelier vous permet d'utiliser dans un projet des objets définis dans d'autres projets, tels que des UDFBs. C'est un moyen simple de mettre en oeuvre des librairies de blocs écrits en langage IEC qui pourront être réutilisés dans de nombreux projets. De plus, l'atelier procure des moyens efficaces et robustes pour la gestion des modifications des objets externes.

Appuyez sur le boutnon Editer pour gérer les objets externes utilisés dans votre projet.

Autres options

Appuyez sur le bouton Advancé pour accéder eux autres paramètres et options disponibles.


Paramètres du projet - Exécution

IEC 61131-3 Programming Environment -> Paramètres du projet -> Paramètres du projet - Exécution

Previous chapter Next chapter Show all Show all Hide all Hide all

Cette boîte vous permet de définir les paramètres d'exécution du code dans la cible.

Cible

Vous devez spécifier le type de système cible T5 installé dans votre contrôleur. Ce peut être:

  • T5RTI: système T5 standard pour les processeurs de type Intel
  • T5RTM: système T5 standard pour les processeurs de type Motorola
  • Spécifique

Pour définir une cible spécifique, appuyez sur le bouton Avancé.

Si vous choisissez une cible standard, tous les autres paramètres sont imposés. Pour une cible spécifique, référez-vous aux instructions du constructeur.

Identification

Une cible est identifiée par un nom. Ce nom est intégré au code généré et testé au démarrage de l'application. De plus, vous devez indiquer le suffixe du fichier de code généré par le compilateur. Le téléchargement n'est pas possible si le suffixe du code généré n'est pas le même que celui attendu par la cible.

Processeur

Vous devez spécifier le type de processeur implanté sur votre cible, pour indiquer la convention de stockage des octets d'un mot:

  • Poids faible d'abord (type Intel)
  • Poids fort d'abord (type Motorola)

P-Code

Sélectionnez le choix Spécifique si votre cible utilise un autre jeu d'instruction que le code standard T5.


Paramètres du projet - Cible

IEC 61131-3 Programming Environment -> Paramètres du projet -> Paramètres du projet - Cible

Previous chapter Next chapter Show all Show all Hide all Hide all

Cette boîte regroupe les options pour l'exécution de l'application dans la cible.

Génération de code

si vous désirer bénéficier des fonctions de debug en pas à pas pendant la simulation ou le test en ligne, vous devez sélectionner le mode Mise au point. Si le pas à pas n'est plus nécessaire, sélectionnez le mode Exécution pour optimiser les performances à l'exécution.

Mode d'exécution

Vous devez spécifier ici comment les cycles doivent être cadencés à l'exécution:

  • Aussi vite que possible: la cible n'attend pas entre deux cycles.
  • Cadencé: vous devez spécifier la durée d'un cycle, exprimée en millisecondes ou microsecondes. Référez-vous aux instructions du constructeur pour connaître la précision supportée par la cible.

Verrouillage des variables

Selon l'option choisie ici, plus ou moins de fonctionalités de verrouillage seront disponibles:

  • E/S Les variables d'E/S pourront être verrouillées.
  • Toutes Toutes les variables pourront être verrouillées .
  • Aucune Le verrouillage de variable ne sera pas disponible.

Le choix "E/S" s'applique aux cartes d'E/S seulement.

Tableaux, structures et instances

Validez l'option Stocker les variables complexes dans un segment séparé pour indiquer que les variables ocmplexes (tableaux, structures et instances de blocs) doivent être traitées séparément par la cible. Valider cette option vous permet de gérer plus de types complexes dans votre applications. Détails


Paramètres du projet - Compilation

IEC 61131-3 Programming Environment -> Paramètres du projet -> Paramètres du projet - Compilation

Previous chapter Next chapter Show all Show all Hide all Hide all

Cette boîte vous permet de sélectionner les options avancées pour la compilation du projet.

Options

Les options suivantes sont disponibles:

  • Colorer les lignes des diagrammes FBD pendant le debug.
  • Afficher les messages de "warning" (déselectionnez cette option pour ne plus afficher ces messages).
  • Autoriser les instructions de saut long (*).
  • Embarquer le sumboles de toutes les variables.
  • Garder la casse des symboles embarqués (sinon, tous les symboles sont embarqués en majuscules).
  • Vérifier la sécurité des graphes SFC.
  • Vérifier les bornes des tableaux à l'exécution.
  • Retirer le code des sous-programmes et UDFBs non appelés (**).
  • Vérifier la conformité au standard IEC.
  • Allouer des bits d'état pour les variables ayant des propriétés embarquées.

(*) Pour de très gros programmes, les instructions de saut (par exemple pour les instructions IF ou les boucles en ST) peuvent générer des erreurs de compilation car la destination du saut est trop éloignée. Dans ce cas vous devez sélectionner cette option. Attention: cette option n'est pas supportée par les systèmes cible antérieurs à la version V2.20.

(**) Si cette option est validée, le code des sous-programmes et UDFBs non appelés est retiré du code compilé. Ceci permet de réduire la taille du code téléchargé. Notez que la définition des sous-programmes / UDFBs et de leurs variables est conservée, pour permettre d'éventuelles modifications en ligne.

(***) Si cette option est validée, des messages de "warning" seront générés à chaque appel à une fonction ou bloc fonctionnel non défini par le standard IEC. Ceci s'applique uniquement aux blocs embarqués et non aux UDFBs écrits en langage IEC.

Mot de passe cible

Vous pouvez optionellement définir un mot de passe pour la cible. Si ce mot de passe est défini, il sera demandé à l'utilisateur lors de chaque connection à la cible. Ce mot de passe est un nombre. La valeur "0" indique que le mot de passe n'est pas défini.

Autres options

D'autres options non documentées peuvent être entrées ici. Vous ne devez pas changer ces options sauf si le support technique vous demande de le faire.

Dans cette section

Animation des lignes FBD

Options de sécurité

Gestion des variables complexes à l'exécution


Animation des lignes FBD

IEC 61131-3 Programming Environment -> Paramètres du projet -> Paramètres du projet - Compilation -> Animation des lignes FBD

Previous chapter Next chapter Show all Show all Hide all Hide all

En option, le debugger peut afficher en temps réel l'état des lignes (flux de données) dans les diagrammes FBD pendant la mise au point en ligne ou la simulation.

Cette option doit être sélectionnée avant la compilation du projet. Elle est disponible dans le volet Avancé de la boîte des Options de compilation.

Quand cette option est sélectionnée, le compilateur ajoute automatiquement des variables et des instructions dans le code généré pour que l'état des lignes de flux des diagrammes FBD puissent être espionnées pendant le debug ou la simulation.

Sélectionner cette option augmente la taille du code généré et diminue les performances à l'exécution. Il est recommandé de retirer cette option quand l'application est validée et générée en mode Exécution pour son implémentation finale.


Options de sécurité

IEC 61131-3 Programming Environment -> Paramètres du projet -> Paramètres du projet - Compilation -> Options de sécurité

Previous chapter Next chapter Show all Show all Hide all Hide all

Le compilateur supporte plusieurs options qui vous permettent d'augmenter la sécurité de vos applications pendant l'exécution. Ces options sont disponibles dans le volet Avanc de la boîte des options de compilation:

Test des bornes de tableaux

Quand cette option est validée, le compilateur ajoute des instructions au code généré pour tester la validité des index à chaque accès en lecture ou en écriture à un élément de tableau. Il est fortement conseillé de valider cette option pendant le développement et le test de vos applications.

Dévalider cette option diminue la taille du code généré et permet d'augmenter les performances à l'exécution.

Test de sécurité des graphes SFC

En option, le compilateur peut inclure des tests de sécurité des graphes SFC pendant la compilation des applications. Ceci permet de détecter des situations potentiellement insécures ou blocantes dues à la forme des graphes SFC. Voici quelques exemples.

Example Example
Situation potentiellement insécure: Puisqu'il n'y a pas de convergence "ET", plusiers étapes (telles que 1 et 2) peuvent être actives en même temps! | Situation blocante: Puisqu'une seule des transitions 1 ou 101 sera valide, la transition 2 ne pourra jamais être franchie.

info Info

Le compilateur génère des messages "attention" et non des erreurs lors de ces tests. Vous gardez toujours la possibilité d'exécuter l'application mêle si des situations insécures sont détectées.


Gestion des variables complexes à l'exécution

IEC 61131-3 Programming Environment -> Paramètres du projet -> Paramètres du projet - Compilation -> Gestion des variables complexes à l'exécution

Previous chapter Next chapter Show all Show all Hide all Hide all

L'option suivante dans le volet Avancé de la boîte de dialogue des options de compilation définit comment les variables complexes sont gérées par le système cible:

Icone | Description
 | Stocker les variables complexes dans un segment séparé.

Si cette option est validée, toutes les variables complexes sont stockées dans une zône séparée de la mémoire par le système cible T5. Dans le cas contraire, les variables complexes sont stockées avec les variables simples.

attention Attention

Cette option n'est pas supportée par les systèmes cibles T5 version 2.20 ou antérieure.

Cette option doit être utilisée avec précaution. Valider cette option premet d'augmenter les possibilités de programmation pour la gestion des variables complexes, et d'augmenter les capacités en mémoire de la cible. D'un autre côté, l'application peut avoir des performances moindres à l'exécution quand cette option est validée. Il est recommandé de ne pas valider cette option si vous n'avez pas besoin des figures de programmations supplémentaires afin d'optimiser le temps d'exécution.

Les variables complexes, sont les tableaux, les structures et les instances de bloc fonctionnel. Quand cette option est validée, les figures de programmation suivantes sont possibles:

  • Vous pouvez utiliser des tableaux de structures.
  • Vous pouvez utiliser des tableaux d'instances de bloc fonctionnel.
  • Voud pouvez passer toute donnée complexe (tableau, structure, instance) en argument d'un UDFB ou d'un sous-programme.
  • Il n'y a pratiquement pas de limite dans la quantité de données complexes déclarée.
    (théoriquement jusqu'à 4GB - en fait limité par la mémoire disponible sur la cible)


Paramètres du projet - Test

IEC 61131-3 Programming Environment -> Paramètres du projet -> Paramètres du projet - Test

Previous chapter Next chapter Show all Show all Hide all Hide all

Cette boîte vous permet de sélectionner les options pour la simulation et le test en ligne du projet.

Simulation

Si vous sélectionnez Toujours démarrer la simulation A Froid, la boîte permettant de sélectionner le mode de démarrage n'est pas affichée quand le simulateur démarre.

Cette option s'applique à tous les projets.

Test en ligne

Ces options valident des boîtes de confirmation lors des opérations de test en ligne:

  • Arrêter l'application.
  • Télécharger le code de l'application.
  • Modification en ligne.

Cette option s'applique à tous les projets.

Au démarrage de l'application

Ces options vous permettent de choisir le mode de démarrage à proposer par défaut dans la boite de démarrage de l'application. Notez que l'utilisateur pourra toujours sélectionner un autre mode.

Cette option s'applique à tous les projets.

Paramètres de communication

Ici vous pouvez choisir la façon de traiter les paramètres de communication pour le test en ligne:

  • Utiliser les paramètres courants: si cette option est validée, l'atelier utilise les derniers paramètres entrés quand le test en ligne démarre.
  • Utiliser: vous pouvez spécifier ici les paramètres à utiliser dans le cadre de ce projet.


Paramètres du projet - Modification en ligne

IEC 61131-3 Programming Environment -> Paramètres du projet -> Paramètres du projet - Modification en ligne

Previous chapter Next chapter Show all Show all Hide all Hide all

Cette boîte vous permet de régler les paramètres pour la modification en ligne. Reportez-vous à la description de la modification en ligne pour plus d'information sur cette fonctionalité.

Cette boîte vous permet d'activer ou de désactiver la modification en ligne. Quand la modification en ligne est active, afin de pouvoir déclarer de nouvelles variables et instances, vous devez définir la taille de la mémoire à allouer pour chaque type de données. Ceci inclut:

  • Le nombre de variables pour chaque type (8, 16, 32 ou 64 bits, chaînes de caractères).
  • Le nombre d'instances de blocs fonctionnels.
  • La taille mémoire à allouer pour les chaînes de caractères.
  • La taille mémoire à allouer pour les données internes des instances de blocs.
  • Le nombre de variables publiées (avec un profil ou le symbole embarqué).
  • La taille du segment pour les variables complexes.

Pour définir une valeur à allouer, sélectionnez l'item correspondant dans la liste, choisissez l'option Valeur, entrez la nouvelle valeur et appuyez sur le bouton Appliquer. Vous pouvez également sélectionner plusieurs items dans la liste pour affecter leur affecter la même valeur en un seul click.

Si votre projet a été compilé, la liste vous montre les valeurs effectivement utilisées par le projet selon la dernière compilation. Un histogramme montre le pourcentage utilisé dans la taille allouée. De plus, plutôt que d'entrer une valeur absolue, vous pouvez entrer une marge à ajouter à la taille utilisée.

attention Attention
  • Les nombres "Utilisé" montrés dans la liste peuvent être obsolete si vous avez modifié le projet depuis la dernière compilation.
  • L'espace utilisé montré pour les données des instances de blocs est une approximation évaluée à l'aide du simulateur. Ce nombre peut omettre la taille nécessaire pour certains blocs inconnus du simulateur. La taille effectivement utilisée dans la cible peut être plus grande dans ce cas.


Paramètres du projet - Compilation "C"

IEC 61131-3 Programming Environment -> Paramètres du projet -> Paramètres du projet - Compilation "C"

Previous chapter Next chapter Show all Show all Hide all Hide all

Pour des performances maximum, le compilateur peut produire du code machine en utilisant un compilateur "C". Dans ce cas, le p-code est "post-compilé" poour être traduit en langage "C", puis compilé à l'aide d'un compilateur "C" externe. Cette boîte vous permet de sélectionner le compilateur "C" adéquat et de sélectionner les options correspondantes.

attention Attention

La possibilité d'utiliser un compilateur "C" et le choix du compilateur dépendent du système cible T5. Référez-vous aux instructions du constructeur pour plus de détails sur le choix du compilateur "C" à utiliser.

Sélectionner le compilateur "C"

La liste principale montre les compilateurs "C" supportés et indique pour quels systèmes cibles. Sélectionner le choix Aucun pour désactiver la post-commpilation en langage "C".

Options

Vous pouvez demander à l'atelier de générer à la fois le code machine et le p-code de la machine virtuelle. Si cette option est sélectionnée, l'application consommera plus de mémoire dans la cible. Certaines fonctionalités de debug tels que le mode pas à pas et le verrouillage de variables ne sont pas disponible quand la cible exécute du code machine. Si cette option est sélectionnée, vous pouvez à tout moment pendant l'exécution basculer en ligne de l'exécution de code machine à l'utilisation de la machine virtuelle, et ainsi utiliser ces fonctions de debug.

Si vous sélectionnez l'option Charger le code compilé, le code machine (typiquement une DLL) sera automatiquement chargée avec le code de l'application.

Le compilateur "C" externe est lancé dans une fenêtre de type console. Vous pouvez sélectionner l'option "Montrer la fenêtre de compilation" pour que cette fenêtre soit visible pendant la compilation "C".

Répertoire du compilateur "C"

Vous devez spécifier dans quel répertoire le compilateur "C" externe a été installé. Vous pouvez utiliser le bouton Vérifier pour tester si l'atelier reconnait bien le compilateur dans ce répertoire.

Nom du fichier de code

Vous pouvez entrer ici le nom du fichier de code généré par le compilateur "C". Référez-vous aux instructions du constructeur si le système n'utilise pas le nom de fichier par défaut.


Compilation

IEC 61131-3 Programming Environment -> Compilation

Icone | Description
 | Pressez ce bouton dans la fenêtre principale ou tapez la touche F7 pour compiler le projet et générer le code exécutable. La commande F7 est également valide depuis les éditeurs de programmes.

Le projet doit être compilé avant de pouvoir être simulé ou téléchargé dans la cible.

Le compilateur affiche ses messages dans la fenêtre de sortie. Dans le cas d'une erreur de syntaxe, cliquez deux fois sur le texte de l'erreur pour ouvrir le programme concerné à l'emplacement de l'erreur. D'autres commandes sont disponibles dans le menu Projet pour:

  • "Nettoyer" le projet: Cette commande détruite tous les fichiers créés lors de la compilation
  • Définir les options de compilation


Configurations

IEC 61131-3 Programming Environment -> Configurations

L'atelier inclut en standard de nombreuses fonctionalités et une collection très riche de fonctions et blocs fonctionnels.. Selon la configuration du système cible, certaines fonctionnalités ou certains blocs peuvent ne pas être disponibles. Vous pouvez sélectionner un configuration afin de mettre en évidence dans l'atelier les points non supportés.

Icone | Description
 | Utilisez la commande Projet / Configuration pour choisir une configuration.

La liste des configurations possible est affichée. Le choix <Défaut> indique qu'aucun point particulier ne doit être mis en évidence par l'atelier.

La bouton OK sélectionne une configuration. Si votre constructeur vous a fourni un fichier de configuration (.CFG) décrivant sa cible, utilisez le bouton Importer pour l'ajouter à la liste.

Si votre système cible est connecté, vous pouvez utiliser le bouton Télécharger pour récupérer la configuration en ligne.

Quand une is configuration est sélectionnée dans la liste, les autres volets montrent:

  • L'identification du système cible.
  • Les types de données supportés.
  • Les fonctions et blocs standards supportés.
  • Les fonctions et blocs spécifiques additionnels.

Quand une configuration est activée, l'atelier:

  • Montre en rouge les appels aux blocs non supportés.
  • Marque en rougle les éléments non supportés dans la liste des blocs.
  • Affiche des messages de warning lors de la compilation en cas d'appel à un bloc non supporté.


Modification en ligne

IEC 61131-3 Programming Environment -> Modification en ligne

L'atelier vous permet de changer le code de votre application "à chaud" pendant son exécution dans la cible. Afin de permettre le plus de types de modifications, vous devez configurer l'atelier et autoriser les modifications en ligne.

Lancez la commande de menu Compilation / Options de compilation et activez la page Modification en ligne pour configurer votre application afin que les modifications soient acceptées.

Quand la modification en ligne est désactivée, aucune modification en ligne n'est possible. Le système n'impose aucune limitation pour l'édition et la programmation dans ce mode.

Quand la modification en ligne est activée, les types de modifications suivants sont autorisés en ligne:

  • Changer le code d'une programme.
  • Changer la condition d'une transition SFC ou les actions d'une étape SFC.
  • Créer, renommer ou supprimer des variables globales ou locales.
  • Créer, renommer ou supprimer des instances de blocs globales ou locales.

Les modifications suivantes sont interdites:

  • Créer, renommer ou supprimer un programme.
  • Changer les graphes SFC.
  • Changer les paramètres et variables privées d'un UDFB.
  • Changer le type et la dimension (ou longueur de string) d'une variable ou d'une instance.
  • Changer la définition des cartes d'E/S.
  • Changer la définition des variables RETAIN.

De plus, les opérations non sécurisées suivantes sont interdites pendant la programmation:

  • Contacts et bobines de relais à détection de front (P ou N).
    A la place, vous devez utiliser des instances déclarées des blocs R_TRIG et F_TRIG.
  • Les boucles non explicites en FBD.
    Vous devez explicitement insérer une variable déclarée dans la boucle.

La modification en ligne sera refusée si des ressources système sont en cours d'utilisation pendant la modification. Une ressource système peut être soit un fichier ouvert par les fonctions de gestion de fichiers, soit une "socket" créée par les fonctions TCP/UDP, soit un tableau dynamique créé par la fonction ARCREATE.

Les données de l'IHM Embarquée (écrans, bitmaps, polices, chaines de caractères) ne sont pas mises à jour lords d'une modification en ligne.

Afin de permettre la création de nouvelles variables ou instances, vous devez indiquer la quantité de mémoire devant être allouée sur la cible pour chaque type de donnée et ainsi vous créer une "réserve". Ceci concerne:

  • Le nombre de variables pour chaque type (8, 16, 32 ou 64 bits, chaines de caractères).
  • Le nombre d'instances de blocs fonctionnels.
  • La taille mémoire utilisée pour le stockage des chaines de caractères.
  • La taille mémoire utilisée pour le stockage des données privées des instances de blocs.

Le nombre de variables de chaque type effectivement utilisées dans l'application est indiquée à la fin de chaque compilation. Les changements sont autorisés tant que la mémoire réservée pour un type n'est pas excédée. A ce point, si vous devez créer de nouvelles variables, il vous faut changer la configuration de la mémoire, recompiler l'application et effectuer un téléchargement complet en arrêtant la cible.

Quand la modification en ligne est activée, toutes les variables nouvellement créées sont marquées en bleu dans l'éditeur de variables. Les variables supprimées sont gardées comme fantômes, marquées en gris et renommées avec le préfixe _del_. Vous pouvez manuellement renommer une variable fantôme afin de la réutiliser dans l'application.

info Info

Les modifications en lignes peuvent être expérimentés avec le simulateur lancé en mode "Démarrage à chaud". Un démarrage à chaud quand la modification en ligne est activé est possible si l'application inclut des modifications valides.


Définitions

IEC 61131-3 Programming Environment -> Définitions

Le compilateur supporte la définition d'alias. Un alias est un identificateur unique qui peut être utilisé dans les programmes pour remplacer un texte. Les définitions sont typiquement utilisées pour remplacer les expressions constantes et ainsi augmenter la lisibilité des programmes.

L'atelier supporte trois niveaux de définitions:

  • Communes à tous les projets installés sur votre ordinateur.
  • Globales à tous les programmes d'un projet.
  • Locales à un programme.

Les définitions communes et globales peuvent être ouvertes depuis le menu Fichier / Ouvrir de la fenêtre principale. Les définitions locales sont éditées avec le programme correspondant. Utilisez la commande de menu Affichage / Définitions Locales quand un programme est édité pour ouvrir ses definitions locales.

Les définitions sont entrées à l'aide de l'éditeur de texte. Chaque définition doit être entrée sur une ligne de texte selon la syntaxe suivante:

#define Identificateur Equivalence (* commentaires *)

Voici quelques exemples:

Example Example

#define OFF FALSE (* redéfinition de la valeur booléenne FALSE *)
#define PI 3.14 (* expression constante numérique *)
#define ALARM (bLevel > 100) (* expression complexe *)

Il est possible d'insérer un alias dans la définition d'un autre alias. L'alias inséré doit impérativement être déclaré avant son utilisation dans une équivalence.

Example Example

#define PI 3.14
#define TWOPI (PI * 2.0)

info Info

Une définition peut être vide, par exemple:

#define CONDITION

Les mots définis peuvent être utilisés dans les directives de compilation conditionnelle.

Vous pouvez entrer des lignes de #define directement dans le source des programmes en ST et IL.

L'emploi de définitions peut perturber la visualisation des programmes et rendre plus complexes les rapports d'erreurs du compilateur. Il est recommendé de limiter l'emploi des définitions aux expressions simples ne comportant aucun risque de mauvaise compréhension lors de la lecture ou de la mise au point des programmes.

Définitions du système

Les alias suivants sont définis par le système et peuvent être utilisés dans les programmes:

Mot-clé | Description
__DATE__ | Date de compilation sous la forme d'une expression constante STRING. Format: Année/Mois/Jour-Heures:Minutes.
__MACHINE__ | Nom de la machine où a lieu la compilation, sous la forme d'une expression constante STRING.
__USER__ | Nom de l'utilisateur du compilateur, sous la forme d'une expression constante STRING.

Example Example

Le programme ST suivant force des variables déclarées comme STRING(255):

strDate := __DATE__;
strMachine := __MACHINE__;
strUser := __USER__;

Résultat:

strDate vaut '2007/11/25-10:45'
strMachine vaut 'LabtopJX'
strUser vaut 'John'


Exécution de l'application

IEC 61131-3 Programming Environment -> Exécution de l'application

Previous chapter Next chapter Show all Show all Hide all Hide all

Utilisez les commandes suivantes dans la fenêtre principale pour tester votre application:

Icone | Description
 | Utilisez ce bouton ou frappez Ctrl+F5 pour passer en mode connecté (En Ligne) et dialoguer avec le système cible. Le téléchargement et le contrôle à distance sont disponibles quand l'atelier est En Ligne.
 | Utilisez ce bouton ou frappez F5 our lancer la simulation.

Ces commandes s'appliquent au "Projet de Démarrage". Vous ne pouvez tester ou simuler qu'un seul projet à la fois. Pour changer le projet de démarrage, sélectionnez le projet dans l'arbre et lancer la commande "Choisir le projet de démarrage" du menu contextuel (bouton droit).

Sections:

  • Paramètres de communication
  • Le panneau de contrôle
  • La fenêtre de trace
  • Pas à pas, points d'arrêt et pile d'appel

Comment contrôler l'application:

  • Utiliser l'atelier en mode test
  • La liste de variables
  • Debug par ligne de commande
  • Synoptiques
  • L'analyseur logique
  • Oscilloscope

Depuis la liste des programmes, il est possible de contrôler l'exécution de chaque programme indépendamment. Utilisez les commandes du menu "Projet" pour:

  • Lancer ou arrêter le programme sélectionné.
  • Suspendre ou reprendre l'exécution du bloc sélectionné.

Les programmes arrêtés sont indiqués en rouge, les programmes suspendus en bleu.

Dans cette section

Paramètres de communication

Le tableau de commandes

Les éditeurs en mode test

Listes de variables, recettes et synoptiques

Debug par ligne de commande

Synoptiques

L'analyseur logique

Debug en pas à pas

La fenêtre de sortie

Oscilloscope

Séquences de test


Paramètres de communication

IEC 61131-3 Programming Environment -> Exécution de l'application -> Paramètres de communication

Previous chapter Next chapter Show all Show all Hide all Hide all

Avant de passer l'atelier en mode connecté, vous devez définir les paramètres de communication avec la cible.

En mode édition, les paramètres de communication sont affichés dans la barre d'état. Pour les changer, utilisez la commande Outils / Paramètres de communication ou cliquez deux fois sur les paramètres dans la barre d'état.

L'atelier supporte plusieurs protocoles pour communiquer avec le système cible:

  • Protocole "T5" Standard - supporté par la plupart des systèmes cible.
  • Protocole pour cible multi-tâche - pour les systèmes opérant plusieurs VMs
  • Protocole d'accès à distance - pour une liaison série à distance à travers modems et radios.

Sélectionnez le protocole dans le liste et entrez ses paramètres dans la boîte en dessous. Le bouton "..." ouvre un assistant pour la configuration des paramètres de communication en fonction du protocole choisi.

Dans cette section

Configuration du protocole "T5"

Paramétrage du protocole multi-tâche

Configuration du protocole d'accès à distance


Configuration du protocole "T5"

IEC 61131-3 Programming Environment -> Exécution de l'application -> Paramètres de communication -> Configuration du protocole "T5"

Previous chapter Next chapter Show all Show all Hide all Hide all

Le protocole "T5" est supporté par la plupart des systèmes cible et peut être mis en oeuvre soit sur ETHERNET soit sur une liaison série.

Communication Ethernet

Pour une communication ETHERNET, vous devez entrer l'adresse IP du système cible. L'atelier utilise par défaut le port 1100. Si votre cible utilise un autre port, entrez-le après l'adresse IP, séparé de l'adresse par deux points (":") Par exemple:

127.0.0.1:1102

Liaison série

Dans le cas d'une liaison série, vous devez spécifier le nom du port utilisé sur le PC, suivi par les paramètres de communication selon la syntaxe suivante:

COM<np>:<débit>,<parité>,<data>,<stops>

Paramétre | Description
<np> | Numéro du port série utilisé sur le PC
<débit> | Débit en bauds
<parité> | Parité: N (aucune) ou E (pair) ou O (impair)
<data> | Nombre de bits de données (7 or 8)
<stops> | Nombre de bits de stop (1 or 2)

L'exemple suivant définit une communication sur le port COM1, à 19200 bauds, avec une parité paire, 8 bits de données et 1 bit de stop:

Example Example

COM1:19200,E,8,1


Paramétrage du protocole multi-tâche

IEC 61131-3 Programming Environment -> Exécution de l'application -> Paramètres de communication -> Paramétrage du protocole multi-tâche

Previous chapter Next chapter Show all Show all Hide all Hide all

Ce protocole est utilisé avec les cibles opérant plusieurs tâches ((VMs) et peut être utilisé soit sur ETHERNET ou une liaison série RS232.

En plus des paramètres de communication, vous devez spécifier le numéro de tâche entre crochet et début de la chaine de configuration. Le numéro de la première tâche est "1". Par exemple:

[1]127.0.0.1:1102

Communication Ethernet

Pour une communication ETHERNET, vous devez entrer l'adresse IP du système cible. L'atelier utilise par défaut le port 1100. Si votre cible utilise un autre port, entrez-le après l'adresse IP, séparé de l'adresse par deux points (":") Par exemple:

[1]127.0.0.1:1102

Liaison série

Dans le cas d'une liaison série, vous devez spécifier le nom du port utilisé sur le PC, suivi par les paramètres de communication selon la syntaxe suivante:

[tâche]COM<np>:<débit>,<parité>,<data>,<stops>

Paramétre | Description
<np> | Numéro du port série utilisé sur le PC
<débit> | Débit en bauds
<parité> | Parité: N (aucune) ou E (pair) ou O (impair)
<data> | Nombre de bits de données (7 or 8)
<stops> | Nombre de bits de stop (1 or 2)

L'exemple suivant définit une communication sur le port COM1, à 19200 bauds, avec une parité paire, 8 bits de données et 1 bit de stop:

Example Example

[1]COM1:19200,E,8,1


Configuration du protocole d'accès à distance

IEC 61131-3 Programming Environment -> Exécution de l'application -> Paramètres de communication -> Configuration du protocole d'accès à distance

Previous chapter Next chapter Show all Show all Hide all Hide all

Ce protocole est utilisé pour une communication série à distance et est particulièrement adapté aux réseaux à fortes contraintes tels que radios et modems. En option, le driver de communication de l'atelier peut prendre en compte la numérotation s'il est connecté à un modem. Appuyez sur le bouton "..." pour entrer les paramètres dans un assistant. Les paramètres suivants sont requis:

Paramétre | Description
Port | Nom du port série (COM) du PC. Si vous utilisez un modem interne, vous devez le rediriger vers un port COM virtuel.
Débit | Débit en bauds
Parité | Parité: N (aucune) ou E (paire) ou O (impaire)
Bits de stop | Nomde de bits de stop (1 or 2)
Numéro d'unité | Ce numéro identifie le système distant sur un réseau multi-points. Le numéro d'unité par défaut dans le cas d'un réseau point à point est 1. Le numéro d'unité est une valeur entre 1 et 32767
Timeout | Timeout de communication en secondes (temps pour un échange simple "question+réponse")
Essais | Nombre d'essais consécutifs en cas d'erreur
Paquets | Les messages transportés sur le protocole peuvent contenir jusqu'à 1024 octets. Si vous sélectionnez "small" pour la taille des paquets, le driver divise les messages en trames n'excédant pas 255 caractères.

Optionellement, vous pouvez spécifier des options de numérotation:

Option | Description
Numérotation | Si cette option est sélectionnée, le driver compose le numéro spécifié lors de la connexion.
Numéro | Numéro à composer.
Timeout | Timeout de numérotation en secondes.
Init. | Chaîne d'initialisation du modem.

info Info

Le numéro spécifié ici peut être changé lorsque l'atelier établit la connexion.


Le tableau de commandes

IEC 61131-3 Programming Environment -> Exécution de l'application -> Le tableau de commandes

Previous chapter Next chapter Show all Show all Hide all Hide all

Lorsque l'atelier est utilisé en tests (mode connecté ou Simulation), la barre d'outils fournit les informations et les commandes pour le contrôle de l'exécution de l'application:

  1. Etat de l'application.
  2. Commandes de contrôle.
  3. Changement du temps de cycle.

Etat de l'application

La boîte d'état affiche une information synthétique sur l'état de la communication, de la cible, ou de l'application exécutée. Les valeurs possibles sont:

État | Description
Déconnecté | La connexion avec la cible est impossible
Connexion... | L'atelier est en train d'établir la connexion
Déconnexion... | L'atelier est en train de fermer la connexion
Pas d'application | La cible est arrêtée
Autre application | Une autre application est active dans la cible
Erreur de comm. | Erreurs de communication
Mauvaise version | La cible exécute une version différente de l'application
MARCHE | L'application est en marche
ARRET | L'application est en mode cycle à cycle
Point d'arrêt SFC | L'application est arrêtée sur un point d'arrêt SFC
Erreur | L'application est arrêtée en erreur fatale

Quand l'application est active dans la cible, placez la souris sur la boîte d'état pour afficher dans une info-bulle les informations de version de l'application.

Contrôle de l'application - commandes disponibles

Icone | Description
 | Démarrer l'application
 | Arrêter l'application
 | Passer l'application en mode cycle à cycle
 | Repasser l'application en mode d'exécution normal (cycle cadencés)
 | Exécuter un cycle (en mode cycle à cycle)
 | Téléchargement: Charge l'application si la cible est arrêtée Charge les modifications si la cible est en marche
 | Modification en ligne (prend en compte les changements téléchargés)
 | Exécuter un par - entrer (pendant le debug pas à pas)
 | Exécuter un pas (pendant le debug pas à pas)
 | Exécuter un pas - sortir (pendant le debug pas à pas)

Temps de cycle

Le temps de cycle est affiché dans une info-bulle quand le curseur est placé sur la boîte d'état de l'application. Il montre:

  • Le dernier temps de cycle mesuré.
  • Le temps de cycle programmé (période de cadencement).
  • La durée du plus long temps de cycle détecté.
  • Le nombre de dépassements enregistré.


Les éditeurs en mode test

IEC 61131-3 Programming Environment -> Exécution de l'application -> Les éditeurs en mode test

Previous chapter Next chapter Show all Show all Hide all Hide all

Pendant le test (en mode connecté ou en simulation), tous les éditeurs sont animés avec la valeur courante des objets édités:

  • L'état des programmes est affiché dans la liste de programmes. Le programme arrâréts sont marqués en rouge, les programmes suspendus en bleu.
  • La valeur de chaque variable est affichée dans une colonne supplémentaire de l'éditeur de variables. Cliquez deux fois sur la variable pour la forcer ou la verrouiller.
  • La valeur des variables, contacts et bobinages est affichée dans les diagrammes FBD. Cliquez deux fois sur un symbole pour forcer une variable.
  • La valeur des variables, contacts et bobinages est affichée dans les diagrammes LD. Cliquez deux fois sur un symbole pour forcer une variable.
  • L'activité des étapes (jetons) est affichée dans l'éditeur SFC.
  • Dans les textes ST ou IL, placez le curseur de la souris sur un nom de variable pour afficher sa valeur dans une info-bulle. Cliquez deux fois sur le nom de la variable avec la touche MAJ enfoncée pour forcer une variable.

Verrouillage des variables

Quand sous cliquez deux fois sur un symbole de variable pendant la mise au point, une boîte de dialogue est ouverte et vous propose de changer la valeur de la variable. Elle vous permet également de Verrouiller ou de Déverrouiller la variable. La valeur d'une variable verrouillée n'est plus changée par la cible. Vous pouvez ainsi forcer la variable à une valeur depuis le debugger indépendament des opérations effectuées sur la cible. Notez que l'ensemble des variables pouvant être verrouillées dépend des options de compilation.

Utilisez la commande de menu Projet / Variables verrouillées pour afficher la liste de toutes les variables actuellement verrouillées. Cette boîte vous permet également de déverrouiller toutes les variables.


Listes de variables, recettes et synoptiques

IEC 61131-3 Programming Environment -> Exécution de l'application -> Listes de variables, recettes et synoptiques

Previous chapter Next chapter Show all Show all Hide all Hide all

En complément des programmes, l'atelier vous permet de créer des documents animés pour tester vos applications. Il y a trois sortes de documents:

  • Des listes de variables.
  • Des recettes: une recette est une liste complétée avec un ou plusieurs jeux de valeurs.
  • Des synoptiques animés.

Les listes, recettes et synoptiques sont créés depuis le volet "espace de travail" à gauche de la fenêtre de l'atelier. Utilisez les commandes Insérer du menu contextuel pour créer un document. Puis cliquez deux fois sur son nom pour l'ouvrir.

Gestion des listes

Pour insérer une variable, utilisez la commande Insérer Variable du menu contextuel. Vous pouvez également glisser un symbole de variable depuis un programme ou depuis l'éditeur de variables pour l'insérer dans la liste.

Les commandes de la barre d'outils locale vous permettent de modifier ou d'arranger les variables de la liste ésitée. Utilisez les commandes Déplacer pour arranger les variables dans la liste. Les listes peuvent être créées et sauvegardées aussi bien lors de l'édition que du test de l'application.

Forcer une variable

Pendant le test, cliquez deux fois sur la valeur d'une variable pour la forcer, ou frappez la touche ENTREE quand elle est sélectionnée. Un menu vous permet de forcer ou de verrouiller la variable sélectionnée.

Affichage en hexadécimal

Pendant le test, les valeurs des variables sont affichées en texte lisible dans la colonne Valeur. Placez le curseur sur la valeur de la variable pour ouvrir une info-bulle où la valeur est affichée en hexadécimal. Ceci est particulièrement utile lorsqu'une chaine de caractères espionnée est trop longue ou contient des caractères non imprimables.

Recettes

Utilisez la commande Fichier / Nouveau / Recette pour créer une recette. En plus de la liste de variables et de leur valeur, des colonnes supplémentaires vous permettent de préparer des jeux de valeurs à appliquer. Pour définir une valeur, sélectionnez la cellule correspondante et entrez la valeur. Certaines valeurs peuvent ne pas être renseignées. Les commandes de la barre d'outils locale permettent de créer, renommer ou supprimer des colonnes. Pendant l'exécution, utilisez la commande Envoyer la recette pour appliquer toutes les valeurs de la colonne sélectionnée aux variables de la liste.

attention Attention
  • L'envoi de recette depuis l'atelier assure que toutes les variables sont envoyées au même moment à la cible, c'est-à-dire entre deux cycles. Ceci engendre une limitation d'environ 50 variables (ou moins pour les STRING) envoyées. Cette limite n'apparaît pas lorsque la recette est manipulée par la cible avec la fonction ApplyRecipeColumn.
  • L'envoi d'une recette à la cible requiert un protocole spécial. Si la cible est basé sur le système T5 runtime version 1.21 ou antérieure, la requête sera refusée par la cible.


Debug par ligne de commande

IEC 61131-3 Programming Environment -> Exécution de l'application -> Debug par ligne de commande

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier inclut un outil de mise au point par ligne de commande. Les commandes sont entrées comme dans une console en mode prompt. Des commandes sont disponibles pour lire ou forcer toute variable ou expression complexe.

Le debug par ligne de commande est accessible depuis l'onglet Console de la fenêtre de sortie en bas de l'atelier.

Lire une expression

Pour lire la valeur courante d'une expression complexe ST, entrez l'expression au promptr et frappez ENTREE. L'expression peut contenir des opérateurs ST and permet d'accéder à des index variables dans le cas de tableaux. Voici quelques exemples:

Example Example

>MyVar
= 100
>iLevel > 123.4
= FALSE
>MyArray[i+1]
= 123
>

Les opérateurs ST suivants peuvent être utilisés:

Opérateur | Description
& AND OR XOR | opérations logiques
+ - / * | opérations arithmétiques
= <> < > <= >= | comparaisons
[ , ] | spécification d'index de tableau
. | spécification de membre de structure

L'expression ST peut également inclure des valaurs constantes.

Forcer une variable

Pour forcer une variable, entrez son nom suivi du signe ":=" et d'une expression ST. La spécification de la variable à forcer poeut inclure des index variables dans le cas d'un tableau. Voici quelques exemples:

Example Example

>MyVar := 200
OK
>MyArray[i+1] := iValue + 2
OK
>

Spécifier un programme père

Pour accéder à des variables locales, vous devez spécifier le nom du programme père. Pour ceci, entrez "!local=" suivi du nom du programme. Quand un programme père est spécifé, les variables utilisées dans les commandes peuvent être globales ou locales à ce programme. Voici un exemple:

Example Example

>!local=PROG1
>LocalVar
= 123
>


Synoptiques

IEC 61131-3 Programming Environment -> Exécution de l'application -> Synoptiques

Previous chapter Next chapter Show all Show all Hide all Hide all

La fenêtre de visualisation de listes de variables vous permet de créer des synoptiques animés pendant la simulation ou le test en ligne en fonction de l'état des variables du projet. Pour créer un synoptique, utiliser la commande Insérer Nouveau Graphique du menu contextuel.

Consultez la liste des objets graphiques disponibles et leur propriétés pour plus d'information sur les dessins et animations possibles.

  1. Espace du dessin.
  2. Propriétés de l'objet sélectionné / arrangement des empilements (couches).
  3. Types d'objets disponibles.

Les graphiques peuvent également être exportés au format HTML pour être affichés dans un navigateur.

Pour insérer un nouvel objet, faites le glisser de la liste des objets disponibles (3) vers l'espace du synoptique (4). Vous pouvez alors le sélectionner pour le déplacer, le redimensionner, ou saisir ses propriétés dans la grille (2). Les documents graphiques sont sufficés par ".gra" et peuvent être stockés n'import où sur le disque.

Voici les commandes de la barre d'outils des synoptiques:

Icone | Description
 | Sélectionne e mode Opération ou Edition (voir note ci-dessous).
 | Sélectionne l'objet précédent dans le synoptique.
 | Sélectionne l'objet suivant dans le synoptique.
 | Aligne les objets sélectionnés vers la gauche.
 | Aligne les objets sélectionnés vers le haut.
 | Aligne les objets sélectionnés vers la droite.
 | Aligne les objets sélectionnés vers le bas.
 | Redimensionne les éléments sélectionnés à la même largeur (*).
 | Redimensionne les éléments sélectionnés à la même hauteur (*).
 | Redimensionne les éléments sélectionnés à la même taille (*).
 | Envoie l'élément sélectionné au premier plan.
 | Envoie l'élément sélectionné à l'arrière plan.
 | Définit la couleur de fond du synoptique.

(*) Pour ces commandes, l'objet considéré comme référence pour le redimensionnement est celui ayant des marques grises dans son rectangle de sélection. Cliquer sur un objet déjà sélectionné avec la touche CTRL enfoncée pour sélectionner l'item de référence.

Le bouton Operation/Edition est utilisé pour autoriser ou interdire les modifications dans le graphique lors du test ou de la simulation. Quand le mode Opération est activé, aucune modification n'est possible. Dans ce mode, la souris peur être utilisée pour agir sur les éléments actifs tels que les boutons.

Le second panneau dans le panneau de propriétés vous permet d'arranger l'ordre en "Z" des objets et ainsi maitriser leur empilement. Faites glisser un objet dans la liste pour le déplacer vers le premier plan ou l'arrière plan et ainsi arranger les objets empilés.

Dans cette section

Objets graphiques

Propriétés des objets graphiques

Export des synoptiques en pages HTML


Objets graphiques

IEC 61131-3 Programming Environment -> Exécution de l'application -> Synoptiques -> Objets graphiques

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici la liste des objets graphiques disponibles pour la construction de synoptiques:

Basic shapes

Une collection de formes géométriques de base est disponible. Chaque objet peut être soit statique, soit lié à une variabe booléenne qui conditionne sa couleur.

Propriétés

  • Identifiant
  • Aspect
  • Symbole espionné
  • Délai de rafraichissement
  • Taille de la bordure
  • Couleur du cadre
  • Format de donnée
  • Couleur quand non connecté
  • Couleur de fond
  • Mode de fond
  • Texte
  • Couleur du texte
  • Mode du texte
  • Nom de la police
  • Taille de la police
  • Couleur "VRAI"
  • Couleur "FAUX"
  • Direction

regardez description...

Bitmaps

Des images bitmap (BMP, GIF, JPG) peuvent être intégrées dans les synoptiques.

Propriétés

  • Identifiant
  • Taille de la bordure
  • Couleur du cadre
  • Style du cadre
  • Couleur de fond
  • Mode de fond
  • Texte
  • Couleur du texte
  • Mode du texte
  • Nom de la police
  • Taille de la police
  • Chemin
  • Mode d'affichage du bitmap

regardez description...

attention Attention

l'affichage des grands bitmaps consomme beaucoup de temps machine pendant l'animation, surtout si leur mode d'affichage est STRETCH (étiré) ou si le mode d'affichage du fond est TRANS (transparent).

Scales

Les échelles sont des dessins statiques représentant un axe X ou Y, généralement associées à d'autres objets tels que les courbes et histogrammes.

Propriétés

  • Identifiant
  • Taille de la bordure
  • Couleur du cadre
  • Style du cadre
  • Couleur de fond
  • Mode de fond
  • Texte
  • Couleur du texte
  • Mode du texte
  • Nom de la police
  • Taille de la police
  • Valeur minimum
  • Valeur maximum
  • Direction
  • Emplacement
  • Nb divisions (principales)
  • Nb divisions (secondaires)
  • Couleur de l'échelle

regardez description...

Text boxes

Des textes statiques ou animés ainsi que des boîtes d'édition permettent d'afficher ou de forcer l'état d'une variable. Pour les boîtes d'édition, pendant l'animation, cliquez deux fois pour ouvrir la boîte de saisie de la valeur, puis frappez ENTREE pour valider la saisie.

Propriétés

  • Identifiant
  • Symbole espionné
  • Délai de rafraichissement
  • Taille de la bordure
  • Couleur du cadre
  • Style du cadre
  • Format de donnée
  • Couleur de fond
  • Mode de fond
  • Texte
  • Couleur du texte
  • Mode du texte
  • Nom de la police
  • Taille de la police
  • Action

regardez description...

Switches and 2-state displays: boutons et afficheurs à 2 états

Les boutons et afficheurs à deux états sont utilisés pour afficher ou contrôler des variables booléennes.

Propriétés

  • Identifiant
  • Aspect
  • Symbole espionné
  • Délai de rafraichissement
  • Taille de la bordure
  • Couleur du cadre
  • Format de donnée
  • Couleur de la donnée
  • Couleur de fond
  • Mode de fond
  • Texte
  • Couleur du texte
  • Mode du texte
  • Nom de la police
  • Taille de la police
  • Action
  • Chemin du bitmap "VRAI"
  • Chemin du bitmap "FAUX"
  • Mode d'affichage du bitmap

regardez description...

Analog buttons: boutons analogiques

Les boutons analogiques permettent le forçage avec la souris d'une variable analogique entière ou réelle.

Propriétés

  • Identifiant
  • Symbole espionné
  • Délai de rafraichissement
  • Taille de la bordure
  • Couleur du cadre
  • Style du cadre
  • Format de donnée
  • Couleur de la donnée
  • Couleur de fond
  • Mode de fond
  • Texte
  • Couleur du texte
  • Mode du texte
  • Nom de la police
  • Taille de la police
  • Valeur minimum
  • Valeur maximum
  • Couleur de l'échelle

regardez description...

Bargraphs: histogrammes

Les histogrammes sont des rectangles remplis en fonction de la valeur d'une variable analogique. Les histogrammes peuvent être horizontaux ou verticaux

Propriétés

  • Identifiant
  • Symbole espionné
  • Délai de rafraichissement
  • Taille de la bordure
  • Couleur du cadre
  • Style du cadre
  • Format de donnée
  • Couleur de la donnée
  • Couleur de fond
  • Mode de fond
  • Texte
  • Couleur du texte
  • Mode du texte
  • Nom de la police
  • Taille de la police
  • Valeur minimum
  • Valeur maximum
  • Direction

regardez description...

Trend charts: courbes

Les courbes tracent l'état d'une variable avec l'aspect d'un oscilloscope.

Propriétés

  • Identifiant
  • Aspect
  • Symbole espionné
  • Délai de rafraichissement
  • Taille de la bordure
  • Couleur du cadre
  • Style du cadre
  • Format de donnée
  • Couleur de la donnée
  • Couleur de fond
  • Mode de fond
  • Texte
  • Couleur du texte
  • Mode du texte
  • Nom de la police
  • Taille de la police
  • Valeur minimum
  • Valeur maximum
  • Nombre de points

regardez description...

Analog meters: afficheurs analogiques

Les afficheurs analogiques représentent l'état d'une variable avec l'aspect d'un cadran analogique.

Propriétés

  • Identifiant
  • Symbole espionné
  • Délai de rafraichissement
  • Taille de la bordure
  • Couleur du cadre
  • Style du cadre
  • Format de donnée
  • Couleur de la donnée
  • Couleur de fond
  • Mode de fond
  • Texte
  • Couleur du texte
  • Mode du texte
  • Nom de la police
  • Taille de la police
  • Valeur minimum
  • Valeur maximum
  • Couleur de l'échelle
  • Nb divisions (principales)
  • Nb divisions (secondaires)

regardez description...

Sliders: boutons linéaires

Les boutons linéaires sont des curseurs permettant de forcer avec la souris l'état d'une variable analogique.

Propriétés

  • Identifiant
  • Symbole espionné
  • Délai de rafraichissement
  • Taille de la bordure
  • Couleur du cadre
  • Style du cadre
  • Format de donnée
  • Couleur de la donnée
  • Couleur de fond
  • Mode de fond
  • Texte
  • Couleur du texte
  • Mode du texte
  • Nom de la police
  • Taille de la police
  • Valeur minimum
  • Valeur maximum
  • Couleur de l'échelle
  • Direction

regardez description...

Digital meters: afficheurs numériques

Les afficheurs numériques montrent l'état d'une variable avec l'aspect d'un afficheur "7 segments".

Propriétés

  • Identifiant
  • Aspect
  • Symbole espionné
  • Délai de rafraichissement
  • Taille de la bordure
  • Couleur du cadre
  • Style du cadre
  • Format de donnée
  • Couleur de la donnée
  • Couleur de fond
  • Mode de fond
  • Texte
  • Couleur du texte
  • Mode du texte
  • Nom de la police
  • Taille de la police
  • Valeur minimum
  • Valeur maximum

regardez description...

Links: liens

Les liens sont utilisés comme des raccourcis pour ouvrir un autre synoptique. L'utilisation des liens permet une navigation simple dans une application à plusieurs synoptiques.

Propriétés

  • Identifiant
  • Taille de la bordure
  • Couleur du cadre
  • Couleur de fond
  • Mode de fond
  • Texte
  • Couleur du texte
  • Mode du texte
  • Nom de la police
  • Taille de la police
  • Lien

regardez description...

Connection status: état de la connection

Cet objet montre l'état courant de la connection avec le système cible. Il est surtout destiné au diagnostic.

Propriétés

  • Identifiant
  • Délai de rafraichissement
  • Taille de la bordure
  • Couleur du cadre
  • Style du cadre
  • Format de donnée
  • Couleur de la donnée
  • Couleur de fond
  • Mode de fond
  • Texte
  • Couleur du texte
  • Mode du texte
  • Nom de la police
  • Taille de la police

regardez description...


Propriétés des objets graphiques

IEC 61131-3 Programming Environment -> Exécution de l'application -> Synoptiques -> Propriétés des objets graphiques

Previous chapter Next chapter Show all Show all Hide all Hide all

Cette page décrit chaque propriété des objets graphiques utilisés dans les synoptiques. Référez-vous à la liste des objets disponibles pour connaître en détail quelle propriété est appliquée à quel objet graphique.

Identifiant

Vous pouvez définir librement un texte identifiant chaque objet inséré dans le synoptique. Les identifiants sont particulièrement utiles lors de l'arrangement de l'ordre d'empilement des objets.

Symbole espionné

C'est le nom de la variable associée à l'objet. Dans le cas d'une variable locale, son symbole doit être précédée par le nom de son programme père, séparé par "/". Exemple: "MyProg/MyVar".

Délai de rafraichissement

C'est la période minimale pour mettre à jour le dessin quand la valeur de la variable associée change. Le délai est exprimé en millisecondes. Si ce délai n'est pas spécifié ou égal à 0, le dessin est rafraichi aussi vite que possible.

Taille de la bordure

Cette propriété indique l'épaisseur du cadre dessiné autour de l'objet. Si cette valeur est 0, aucun cadre n'est tracé.

Couleur du cadre

Cette propriété indique la couleur du cadre dessiné autour de l'objet.

Style du cadre

Cette propriété vous permet d'affecter un effet "3D" au cadre de l'objet. Les valeurs possibles sont:

FLAT = aucun effet 3D
3DUP = effet 3D surélevé
3DDOWN = effet 3D enfoncé
3D = effet 3D par défaut

Couleur du texte

Cette propriété indique la couleur du texte dans l'objet graphique.

Mode du texte

Cette propriété indique l'effet à appliquer au texte tracé dans l'objet. Les valeurs possibles sont:

HIDE = aucun texte affiché
NORMAL = normal
BOLD = gras
ITALIC = italique
UNDERLINE = souligné

Nom de la police

C'est le nom de la police de caractères utilisée pour tracer le texte dans l'objet.

Taille de la police

Cette propriété indique la taille du texte tracé dans l'objet. La taille est exprimée comme un pourcentage de la hauteur de l'objet, afin d'assurer un bon affichage quand l'objet est redimensionné. La valeur maximum possible est 100.

Couleur de fond

Cette propriété indique la couleur du fond pour un objet graphique. Si le mode d'affichage du fond est TRANS (transparent), les zônes de cette couleur ne sont pas dessinées.

Mode de fond

Cette propriété indique si le fond de l'objet doit être rempli avec la couleur de fond (OPAQUE), ou si elle doit être laissée transparente (TRANS). Le mode TRANS est utilie pour la superposition des objets.

attention Attention

L'affichage des grands bitmaps consomme beaucoup de temps machine pendant l'animation, surtout si leur mode d'affichage est STRETCH (étiré) ou si le mode d'affichage du fond est TRANS (transparent).

Format de donnée

Si cette propriété est renseignée, elle indique comment formatter la valeur de la variable associée pour fabriquer le texte affiché dans l'objet. Si elle n'est pas renseignée, alors la propriété "Texte" indique le texte statique à afficher

attention Attention

La propriété texte est ignorée quand un format est spécifié.

La chaîne de format a la même syntaxe que celle utilisée par la fonction "printf" du langage "C". Elle peut contenir des caractères figés avec l'un des pragmas suivants pour représenter la valeur de la variable:

%s = formattage par défaut (IEC)
%d = entier (décimal)
%X = hexadécimal
%g = valeur réelle (notation scientifique si le nombre est trop grand)
%.nf = valeur décimale (n est le nombre de chiffres après la virgule)

Voici quelques exemples:

Example Example
Format | Valeur | Texte affiché
%d | 12.3 | 12
Var = %g mètres | 1.2 | Var = 1.2 mètres
%.2f | 1.12345 | 1.12

info Info

Un seul pragma % est interprété dans la chaîne de formattage.

Texte

Si cette propriété est définie, elle indique le texte à afficher dans l'objet graphique.

attention Attention

Cette propriété est ignorée si un format de donnée est spécifié.

Mode d'affichage du bitmap

Pour les objets utilisant des images bitmap, cette propriété indique si l'image doit être étirer pour s'accorder à la taille de l'objet. Les valeurs possibles sont:

ORIGINAL = garder l'aspect original (image tronquée si trop grande)
STRETCH = étirer ou compresser l'image en fonction de la taille de l'objet.

attention Attention

L'affichage des grands bitmaps consomme beaucoup de temps machine pendant l'animation, surtout si leur mode d'affichage est STRETCH (étiré) ou si le mode d'affichage du fond est TRANS (transparent).

Valeur minimum

Pour les objets analogiques (afficheurs, histogrammes, courbes...) cette propriété inique la valeur minimum possible pouvant être affichée. Pour les échelles statiques, elle indique la valeur de la première marque.

Valeur maximum

Pour les objets analogiques (afficheurs, histogrammes, courbes...) cette propriété inique la valeur maximum possible pouvant être affichée. Pour les échelles statiques, elle indique la valeur de la dernière marque.

Couleur de la donnée

Cette propriété indique la couleur à utiliser pour la partie du dessin représentant la variable associée (par exemple la zone remplie d'un histogramme).

Nb divisions (principales)

Pour les objets incluant une échelle, cette propriété indique le nombre de divisions principales à tracer dans l'échelle.

Nb divisions (secondaires)

Pour les objets incluant une échelle, cette propriété indique le nombre de divisions secondaires à tracer entre deux marques prinicipales de l'échelle.

Couleur de l'échelle

Pour les objets incluant une échelle, cette propriété indique la couleur de l'axe et des marques et valeurs associées.

Chemin (bitmap)

Pour les images bitmaps, cette propriété indique le nom du fichier bitmap à afficher. Les formats BMP, GIF et JPG son supportés. Si aucun répertoire n'est spécifié, le fichier est recherché:

  • Dans le répertoire du projet.
  • Dans le répertoire "\BITMAP" de l'atelier.

Chemin du bitmap "VRAI"

Pour les objets à deux états ayant l'aspect CUSTOM, cette propriété indique le chemin du fichier contenant l'image à afficher qua la variable associée vaut TRUE (ou non nul pour une variable analogique). Les formats BMP, GIF et JPG son supportés. Si aucun répertoire n'est spécifié, le fichier est recherché:

  • Dans le répertoire du projet.
  • Dans le répertoire "\BITMAP" de l'atelier.

Chemin du bitmap "FAUX"

Pour les objets à deux états ayant l'aspect CUSTOM, cette propriété indique le chemin du fichier contenant l'image à afficher qua la variable associée vaut FALSE (ou 0 pour une variable analogique). Les formats BMP, GIF et JPG son supportés. Si aucun répertoire n'est spécifié, le fichier est recherché:

  • Dans le répertoire du projet.
  • Dans le répertoire "\BITMAP" de l'atelier.

Couleur quand non connecté

Pour les formes géométriques, cette propriété indique la couleur de remplissage de la forme.

Couleur "VRAI"

Pour les formes géométriques associées à une variable, cette propriété indique la couleur de remplissage de la forme quand la variable vaut TRUE (ou non nul pour les analogiques).

Couleur "FAUX"

Pour les formes géométriques associées à une variable, cette propriété indique la couleur de remplissage de la forme quand la variable vaut FALSE (ou 0 pour les analogiques).

Direction (formes géométriques)

Pour les formes géométriques orientées (triangles, demi-ellipses, cylindres...) Cette propriété indique la direction du dessin:

TOP: vers le haut
BOTTOM: vers le bas
LEFT: vers la gauche
RIGHT: vers la droite

Direction (échelles)

Pour les échelles, cette proriété indique le sens de l'axe:

LEFT: la valeur minimale est à gauche.
RIGHT: la valeur maximal est à droite.

Positionnement (échelles)

Pour les échelles, cette proriété indique le positionnement de l'axe dans le rectangle de l'objet:

TOP: vers le haut.
BOTTOM: vers le bas.
LEFT: vers la gauche.
RIGHT: vers la droite.

Action (textes)

Pour les boîtes de texte, cette propriété indique les actions possibles pouvant être réalisée avec la souris lors de l'animation:

STATIC = aucune action possible.
EDIT = un double click ouvre une boîte d'édition pour saisir la valeur de la variable.

Action (boutons)

Pour les bouton, cette propriété indique les actions possibles pouvant être réalisée avec la souris lors de l'animation:

STATIC = aucune action possible.
PUSHBUTTON = la variable estforcée à TRUE quand le bouton est enfoncé et à FALSE quand le bouton est relâché.
SWITCH = la variable est inversée dans le bouton est enfoncé.
ONESHOTBUTTON = identique à SWITCH, mais l'affichage du bouton est "relâché" quand la souris est relâchée.

Direction (histogrammes)

Cette propriété indique la direction de remplissage d'un histogramme:

TOP: vers le haut.
BOTTOM: vers le bas.
LEFT: vers la gauche.
RIGHT: vers la droite.

Nombre de points (courbes)

Pour les courbes, cette propriété indique le nombre maximum de points enregistrés. Si la taille de l'objet est inférieure au nombre de points enregistrés, les points les plus anciens ne sont pas visibles.

Direction (bouton linéaire)

Pour un bouton linéaire (curseur), cette propriété indique sa direction:

TOP: vertical
RIGHT: horizontal

Lien

Cette propriété indique le nom de la page de destination d'un hyperlien. C'est le chemin du fichier .GRA contenant la page. Si aucun répertoire n'est spécifié, le fichier est recherché dans le répertoire du projet.

Aspect (formes géométriques)

Cette propriété permet de choisir un type de forme géométrique:

CYLINDER = un cylindre (effet 3D).
ELLIPSE = une ellipse.
HALFELLPISE = une demi-ellipse.
GATE = un simple dessin représentant une vanne.
RECTANGLE = un rectangle.
ROUNDRECT = un rectangle à coins arrondis.
TRIANGLE = un triangle.

Aspect (boutons)

Cette propriété indique le type d'affichage d'une bouton ou afficheur à 2 états:

DEFAULT = un bouton poussoir standard de type Windows.
CUSTOM = un bouton où les états TRUE et FALSE sont représentés par des bitmaps.

Aspect (courbes)

Cette propriété indique le mode de tracé d'une courbe:

POINT = seuls les points enregistrés sont tracés.
LINE = les points enregistrés sont reliés par des lignes.
HISTO = style histogramme.

Aspect (afficheurs numériques)

Cette propriété indique le mode d'affichage d'un afficheur numérique:

DEFAULT = simple.
BEZEL = chaque segment est dessiné avec un effet 3D.


Export des synoptiques en pages HTML

IEC 61131-3 Programming Environment -> Exécution de l'application -> Synoptiques -> Export des synoptiques en pages HTML

Previous chapter Next chapter Show all Show all Hide all Hide all

Quand un synoptique a été créé avec l'atelier, vous pouvez l'exporter au format HTML afin de l'afficher dans un navigateur. L'affichage du synoptique nécessitera que les composants ActiveX soient installés. Notez que ces composants sont systématiquement installés avec l'atelier.

Pour exporter un synoptique en HTML:

  • Passez l'atelier en mode édition (déconnecté).
  • Ouvrez le synoptique.
  • Lancez la comande de menu: Outils / Générer une page HTML.

Un assistant vous guide dans la configuration de la page à générer. Appuyez sur le bouton Suivant dans la page de bienvenue. La page suivante est affichée:

Vous devez ici sélectionner ou créer le répertoire de destination où seront enregistrés la page HTML et les fichiers attachés. Il est vivement conseillé de sélectionner un répertoire vide. Sélectionnez le répertoire de destination et appuyez sur Suivant. La page suivante apparaît:

Vous devez renseigner les options suivantes:

Option | Description
Nom du fichier HTML | Nom du fichier HTML à créer.
Nom de la cible | Driver utilisé pour la communication avec la cible. Spécifiez K5NET5.DLL pour une cible standard.
Paramètres de connexion | Paramètres pour la communication avec la cible. Dans le cas d'une adresse IP, elle doit être suivie par ":" et le numéro de port IP. Si le numéro de port n'est pas indiqué, la valeur par défaut 1100 est utilisée.
Largeur/Hauteur | Taille en pixel de la zône animée dans la page HTML.
Nom du fichier ZIP | Nom du document à embarquer (voir les notes) Ce champ doit rester vide si vous ne désirez pas embarquer la page HTML sur le système cible.
Inclure les symboles | Si cette option est validée, la table de symboles utilisée pour la communication est enregistrée avec la page HTML. Sinon, les symboles sont téléchargés quand la page est ouverte.
Barres de défilement | Indique si la zône graphique doit inclure des barres de défilement.

Si vous spécifiez un nom de fichier "ZIP", alors la page et tous les fichiers attachés seront enoyés sur le système cible. Ceci suppose que le système cible est actuellement connecté et dispose d'un serveur WEB. Référez-vous aux instructions du constructeur pour les conventions de nomenclature des fichiers. Notez que le fichier ZIP peut être assez gros car il peut contenir des images bitmap.

Appuyez sur le bouton Suivant: la page est créé et le message suivant est affiché:

Validez l'option Afficher la page HTML pour ouvrir dès maintenant la page HTML dans le navigateur.

Si vous avez spécifié un nom de fichier "ZIP", appuyez sur Terminer pour envoyer les fichiers vers le système cible. Appuyez sur Abandoner pour fermer l'assistant quand le transfert est terminé.


L'analyseur logique

IEC 61131-3 Programming Environment -> Exécution de l'application -> L'analyseur logique

Previous chapter Next chapter Show all Show all Hide all Hide all

Le système cible comme le simulateur inclut un analyseur logique pour l'enregistrement en temps réel de signaux booléens. L'analyseur enregistre périodiquement jusqu'à 8 variables booléennes. Les échantillons peuvent être enregistrés à chaque cycle ou selon une période configurable. L'analyseur logique est un outil très utile pour le diagnostic d'aléas et la trace des évènements temps réel de l'application.

L'analyseur logique est configuré et visualisé depuis la fenêtre de Sortie. L'analyseur n'est disponible que pendant le test en simulation ou en mode connecté.

attention Attention
  • L'analyseur logique est une ressource unique du système cible. Les paramètres d'enregistrement sont les mêmes pour toutes les variables enregistrées.
  • L'enregistrement est limitè à 900 échantillons d'au plus 8 variables de type BOOL.
  • L'analyseur logique peut ne pas être disponible sur certaines cibles. Référez-vous aux instructions du constructeurs pour plus d'information.
  • L'analyseur logique consomme du temps machine et peut dégrader les performances de la cible.

Opérations

Utilisez les commandes suivantes dans la fenêtre de trace quand la page Analyseur logique est activée:

Icone | Description
 | Définit les variables à enregistrer et les paramètres de l'analyseur.
 | Démarre l'enregistrement.
 | Arrête l'enregistrement.
 | Valide ou inhibe le mode de défilement automatique.
+ / - | Zoom avant ou arrière (clavier numérique).

Paramètres

Avant de lancer l'enregistrement, vous devez définir les paramètres de l'analyseur. Ceci inclut la liste des variables à enregistrer, la période d'enregistrement (ou bien à chaque cycle), plus les conditions de démarrage et d'arrêt. Toutes les variables doivent être de type BOOL.

Notez que si vous définissez une période d'enregistrement, cela signifie le temps minimum à attendre entre deux échantillons, et ne correspond pas à une synchronisation précise dans le temps.

Pressez le bouton Configurer pour valider les paramètres. Pressez le bouton Annuler pour effacer les paramètres courants dans la cible.

Condition de démarrage

La page Condition de démarrage de la boîte de configuration permet de définir la condition logique pour le démarrage de l'enregistrement. Les choix possibles sont:

  • Immediatement.
  • Plus tard: Vous lancerez manuellement l'enregistreur avec la commande Démarrer.
  • Sur front montant ou descendant d'une variable booléenne, optionnellement avec un délai.

Le délai est exprimé comme un nombre d'échantillons oubliés après la condition de démarrage et avant que l'enregistrement commence vraiment.

Condition d'arrêt

La page Condition d'arrêt de la boîte de configuration permet de définir la condition logique pour l'arrêt de l'enregistrement. Les choix possibles sont:

  • Jamais: Vous lancerez manuellement l'enregistreur avec la commande Arrêter.
  • Quand le buffer est plein.
  • Sur front montant ou descendant d'une variable booléenne, optionnellement avec un délai.

Le délai est exprimé comme un nombre d'échantillons passéss après la condition d'arrêt et avant que l'enregistrement soit effectivement arrêté.

Remarques

L'enregistreur ne peut pas être redémarré après l'enregistrement d'échantillons, même s'il est arrêté. Pour redémarrer un enregistrement, vous devez d'abord re-valider sa configuration.

L'analyseur logique doit être configuré ou lancé quand l'atelier est utilisé en mode simulation ou en test en ligne.

Utilisez les commandes Fichier / Enregistrer Sous et Edition / Copier pour échanger les valeurs enregistrées avec d'autres applications telles qu'un tableur.


Debug en pas à pas

IEC 61131-3 Programming Environment -> Exécution de l'application -> Debug en pas à pas

Previous chapter Next chapter Show all Show all Hide all Hide all

En plus du mode d'exécution en cycle à cycle, le debugger offre un ensemble de fonctions puissantes pour le tester en pas à pas le code source de votre application. Le mode pas à pas est complété par la possibilité de poser des points d'arrêt dans le code. Le debugger montre également la pile d'appel des UDFBs et des sous-programmes pendant le test en pas à pas. Le debug en pas à pas est disponible:

  • En ST et IL (un pas est uin énoncé).
  • En LD (un pas est une échelle).
  • En FBD (un pas est un symbole correspondant à une action).

attention Attention
  • Le debug en pas à pas n'est disponible que si le projet a été compilé en mode "Mise au point". Cette option est sélectionnée dans la boîte des options de complilation.
  • Une application compilée en mode Mise au point inclut des informations additionnelles our le debug. Ceci engendre une inflation du code téléchargé et diminue les performances. Il est recommandé de copiler l'application en mode Exécution quand la mise a point de l'application est terminée.
  • Le debug en pas à pas peut ne pas être disponible sur certaines cibles. Référez-vous aux instructions du contructeur pour plus de détails.

Il ya deux possibilités pour activer le mode pas à pas:

  • Placer un point d'arrêt dans un programme (commande Générer / Positionner-Supprimer un point d'arrêt). Quand le point d'arrêt est rencontré, l'exécution s'arrête à la position spécifiée est vous pouvez alors exécuter la suite du programme en pas à pas.
  • Quand la cible est en mode cycle à cycle (ARRET), vous pouvez directement commencer le pas à pas dans le premier programme.

Les commandes suivantes sont disponibles pour le pas à pas, soit depuis le panneau de contrôle de la fenêtre principale, soit depuis le menu Générer dans les éditeurs:

Icone | Description
 | Exécuter un pas: Si l'instruction suivante est un appel de bloc fonctionnel ou de sous-programme, l'exécution continue jusqu'à la fin du bloc appelé.
 | Entrer: Si l'instruction suivante est un appel de bloc ou de sous-programme, le prochain pas sera au début du bloc appelé.
 | Sortir: Si la position courante est dans un bloc ou un sous-programme, l'exécution continue jusqu'à la fin du bloc.

De plus, vous pouvez à tout moment:

  • Exécutee un cycle (depuis la position courante jusqu'à la fin du dernier programme).
  • Relancer la cible en mode d'exécution "normal" (MARCHE).

Points d'arrêt

Pour installer ou supprimer un point d'arrêt dans un programme, utilisez la commande Générer / Positionner/Supprimer un point d'arrêt. Si la position courante n'est pas une instruction valide pour le pas à la pas, le point d'arrêt est automatiquement installé à la position valide la plus proche.

Les points d'arrêt peuvent être installés dans le programmes, les sous-programmes ou les UDFBs. Il ne sont pas disponibles dans les programmes SFC.

La liste des points d'arrêt installés est disponible dans la fenêtre de Trace ou dans la fenêtre de "Sortie" des éditeurs. Depuis la liste vous pouvez supprimer en une seule fois tous les points d'arrêt installés. A tout moment vous pouvez cliquer deux fois sur un point d'arrêt dans la fenêtre de Trace pour ouvrir le programme correspondant là où le point d'arrêt est installé.

La pile d'appel

Pendant le pas à pas, la pile des appels est disponible dans la fenêtre de Trace ou dans la fenêtre de "Sortie" des éditeurs. Elle montre la pile des UDFBs et/ou des sous-programmes appelés, depuis le programme de plus haut niveau jusqu'à la poisition d'exécution courante. Pour un UDFB, la pile montre aussi quelle instance du bloc est exécutée.

A tout moment vous pouvez cliquer deux fois sur une ligne de la pile d'appel pour ouvrir le programme correspondant.


La fenêtre de sortie

IEC 61131-3 Programming Environment -> Exécution de l'application -> La fenêtre de sortie

Previous chapter Next chapter Show all Show all Hide all Hide all

Utilisez les commandes du menu Affichage pour montrer ou cacher la fenêtre de sortie.

Messages d'exécution

La fenêtre de trace affiche les messages d'exécution émis par la cible ou le simulateur pendant le test de l'application. Les messages sont enregistrés même si la fenêtre de traces n'est pas visible. L'enregistrement est effacé quand le test (en ligne ou en simulation) est arrêté.

Pendant le debug en pas à pas, la fenêtre de trace montre également la pile d'appels et la liste des points d'arrêt installés.

Historique du projet

Sélectionnez la page Historique pour afficher la liste où sont mémorisées toutes les modifications et opérations effectuées dans le projet. Vous devez sélectionnez l'option de menu Edition / Activer l'historique pour valider l'enregistrement des modifications. Utilisez la commande Edition / Paramètres pour configurer le nombre maximum d'évènements enregistrés, et sélectionner les types d'évènements que vous désirez enregistrer.

L'analyseur logique

Le système cible comme le simulateur inclut un analyseur logique pour l'enregistrement en temps réel de signaux booléens. Référez-vous à la description de l'analyseur logique pour plus de détails.

Console

Ce volet vous permet de tester votre application en mode console.


Oscilloscope

IEC 61131-3 Programming Environment -> Exécution de l'application -> Oscilloscope

Previous chapter Next chapter Show all Show all Hide all Hide all

L'oscilloscope vous permet de tracer la valeur de variables booléennes ou numériques sous forme de courbe. Les variables sont espionnées directement par la cible, qui détecte leur changement et affecte les horodatages qui serviront à tracer la courbe sur l'atelier. Ceci assure une grande précision de la courbe.

L'oscilloscope est disponible pendant le test en ligne ou la simulation. Il utilise le protocole T5 évènementiel (binding) sur ETHERNET. L'utilisation de l'oscilloscope requiert donc une liaison ETHERNET avec la cible.

L'oscilloscope est ouvert depuis l'espace de travail. Utilisez les commandes du menu contextuel pour créer de nouvelles courbes. Voici l'écran de l'oscilloscope:

  1. Liste des variables espionnées.
  2. Courbes (oscilloscope).

Dans la zone des courbes, vous pouvez régler le zoom, explorer une fenêtre de temps ou faire défiler les courbes.

La barre de défilement représente le temps d'enregistrement et peut être utiliser pour déplacer la fenêtre de temps visible.

Pour ajouter de nouvelles courbes, glissez une variable depuis l'éditeur de variables dans la liste de l'oscilloscope. Les variables peuvent être ajoutées pendant le test ou hors ligne.

Voici les éléments configurables ou affichés pour une variable:

Paramètre | Description
Symbole | Nom de la variable espionnée.
Couleurr | Couleur de la courbe.
#Diagramme | Index du panneau de courbe - defaut = 1. Vous pouvez définir jusqu'à 30 panneaux.
Hysteresis | Hysteresis pour la détection de changement d'une variable analogique. L'hysteresis spécifié est une valeur absolue.
Valeur | Valeur courante de la variable dans la cible.
Minimum/Maximum | Echelle de l'axe Y.
Heure | Horodatage du dernier changement d'état.
Description | Texte de description libre.

Les commandes suivantes sont disponibles depuis la barre d'outils de l'oscilloscope:

Icone | Description
 | Déplace la variable sélectionnée dans la liste.
 | Trie les variables de la liste.
 | "Paramétrer": Définit les échelles de temps.
 | Démarre l'oscilloscope.
 | Arrête l'oscilloscope.
 | Démarre l'enregistrement sur fichier (bascule).
 | Sauve l'enregistrement dans un fichier.
 | Recharge un enregistrement depuis un fichier.
 | Mode auto-défilement (bascule).

Quand l'oscilloscope est démarré, vous pouvez commencer l'enregistrement sur fichier en cliquant sur le bouton correspondant rouge). Vous devez spécifier le nom d'une fichier “csv” où enregistrer les échantillons. Les échantillons (changements d'état) de toutes les variables configurées sont enregistrés jusqu'à ce que l'enregistrement sur fichier soit arrêté (en cliquant sur le même bouton).

Quand l'oscilloscope est arrêté, vous pouvez sauvegarder les courbes affichées dans un fichier. our ceci, sélectionnez les variables désirées dans la liste cliquez sur le bouton de sauvegarde pour sélectionner un fichier “.rec”. Les fichiers “.rec” peuvent être rechargés par la suite pour visualiser leur contenu.

Le bouton Paramétrer permer de configurer la gestion de l'axe X:

Deux modes sont disponibles:

  • Zoom
  • Défilement automatique

Vous pouvez choisir la fenêtre de temps à afficher en renseignant les dates et heures depuis et vers. Les boutons associés permettent de régler la fenêtre de temps depuis le démarrage ou jusqu'à présent.

En mode de défilement automatique, les diagrammes sont déroulés à la vitesse spécifiée.


Séquences de test

IEC 61131-3 Programming Environment -> Exécution de l'application -> Séquences de test

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier offre un outil intégré pour la création et l'exécution de scénarios de test automatrisés. Les scénarios sont appelés "Séquences de test" et sont des documents de l'espace de travail. Pour créer une nouvelle séquence, sléectionnez un dossier dans l'espace de travail et depuis le menu contextuel, lancez la commande "Ajouter un nouvel élément". Puis, dans la catégorie "Listes" sélectionnez "Séquence de test" et entrez un nom pour la séquence.

Syntaxe

Les syntaxes suivantes sont supportées:

Commentaires

Les lignes vides ou de commentaire sont autorisées. Les syntaxes suivantes sont supportées:

// commentaire jusqu'à la fin de ligne

(* commentaire délimité *)

Evaluation d'une expression

Vous pouvez évaluer une expression combinant des opérateurs du langage ST. Les appels de fonctions ne sont pas supportés. Exemples:

Var1

Bool1 & (Var2 > 1000)

Si une expression est entrée seule sur une ligne, sa valeur est affichée dans le rapport lors de l'exécution de la séquence.

Forçage une variable

Une ligne peut contenir un énoncé de forçage d'une variable, selon la syntaxe:

variable_name := expression ;

Exemples:

Var1 := 1000;

Var1 := Var1 + 1;

Attendre que la valeur d'une expression soit TRUE

La syntaxe suivante permet d'attendre qu'une expression prenne la valeur TRUE:

wait expression ;

Un timeout peut être exprimé entre crochets, après le mot clé "wait":

wait [timeout] expression ;

Exemples:

wait Bool1;

wait [t#5] Bool1 OR Bool2;

S'il n'est pas spécifié, le timeout par défaut est de 10 secondes.

Attendre un délai

La syntaxe suivante permet de suspendre la séquence pendant un délai:

wait_time time_value;

Exemples:

wait_time t#2s;

Utilisation

Utilisez la barre d'outils de l'éditeur pour vérifier et exécuter la séquence:

Commands:

1 | Utilisez ce bouton pour activer ou désactiver la séquence. La séquence doit être désactivée pour pouvoir être éditée. Quand elle est active, elle peut être exécutée.
2 | Vérifie la syntaxe de la séquence.
3 | Anuule la séquence en cours d'exécution.
4 | Suspend la séquence en cours d'exécution.
5 | Lance l'exécution de la séquence.
6 | Pas à pas: exécute la ligne sélectionnée
7 | Insére/retire un point d'arrêt sur la ligne courante.
8 | Retire tous les points d'arrêt.

Utilisez le menu contextuel pour sauver le rapport d'exécution en format CSV.


Configuration des bus de terrain

IEC 61131-3 Programming Environment -> Configuration des bus de terrain

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier inclut un configurateur intégré pour divers systèmes d'entrées/sorties déportées et divers protocoles. L'outil de configuration vous permet de décrire les bus de terrains sous la forme d'arbre, et d'y connecter les variables du projet.

Icone | Description
 | Utilisez la commande Fichier / Ouvrir / Bus de terrain.

L'outil de configfuration propose l'espace de travail suivant:

  1. Arbre de configuration.
  2. Items fils du noeud sélectionné dans l'arbre.
  3. Variables du projet.

Chaque type de bus de terrain est montré comme un noeud de niveau supérieur dans l'arbre. Utilisez la commande Edition / Insérer une configuration pour sélectionner un type de bus à ajouter à l'arbre. Chaque configuration est affichée sous la forme d'un arbre à 4 niveaux:

- Configuration (type de bus)
- Port de communication ou organe maître
- Organe esclave ou bloc de données
- Variable connectée

Utilisez les boutons suivants pour construire l'arbre:

Icone | Description
 | Ajoute un nouveau type de bus (niveau supérieur) à la configuration.
 | Ajoute un nouveau maître/port au bus sélectionné.
 | Ajoute un nouvel esclave/bloc au maître sélectionné.
 | Ajoute une nouvelle variable à l'esclave sélectionné.

Quand un noeud est sélectionné dans l'arbre, ses fils sont affichés dans la grille au dessous. Vous pouvez éditer les items directement dans la grille, ou bien cliquer deux fois sur un item de l'arbre pour éditer ses propriétés dans une boîte de dialogue. Utiliser la commande Affichage / Grille pour montrer ou cacher la grille.

Vous pouvez également glisser une variable de la liste des variables déclarées vers un noeud "esclave" de l'arbre pour l'jouter à la configuration.

Dans cette section

Entrées/sorties AS-interface

BACnet MSTP Slave Configuration

Réseau CAN bus

CANopen configuration

Configuration DNP3 Maître

DNP3 Slave configuration

Ethernet/IP IO Client

Ethernet/IP Server

Ethernet/IP Tag Client

Configuration Hilscher CIF Profibus DP

Configuration d'E/S Hilscher (SYCON)

SYCONConfiguration Hilscher SYCON [universel]

Configuration Hilscher SYCON.net (CifX)

Configuration d'E/S HMS

IEC 60870-5-101/104 Master configuration

IEC 60870-5-101/104 Slave configuration

IEC 61850 Server including GOOSE

IEC 61850 Client

IEEE C37.118 Synchrophasor

Interbus S - Phoenix Contact

Communication MODBUS

Profinet IO RT Controller Configuration

SIMATIC S7-modular Embedded Controler

Configuration d'E/S Siemens SoftNet

WAGO 758-87x IO-System / ThinkIO

Configuration des E/S du contrôleur Linux WAGO 750-865

Weihenstephan standard - Client configuration

E/S virtuelles en mémoire partagée - configuration

Configuration d'E/S Woodhead (ApplicomIO)

Configuration E/S XFlow

zenon Runtime connection configuration


Entrées/sorties AS-interface

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Entrées/sorties AS-interface

Previous chapter Next chapter Show all Show all Hide all Hide all

Le système cible inclut un driver pour AS-interface qui vous permet de manipuler des entrées/sorties AS-i dans vos applications. Reportez-vous aux sections suivantes pour une information détaillée sur l'utilisation et la configuration des réseaux AS-i:

En plus des outils de configuration AS-i, l'atelier propose une ensemble de fonctions pour les opérations spéciales sur le réseau AS-i.

Protocole - spécifications

Le système supporte la spécification AS-i V2.1 avec un adressage jusqu'à 63.
Un projet peut inclure plusieurs réseaux AS-i gérés par plusieurs contrôleurs AS-i maîtres.

Echange de données - configuration

La cible gère une carte d'adressage indépendante pour les entrées/sorties AS-i. Un outil de configuration dédié est intégré à l'atelier de programmation. Lancez-le avec la commande Fichier / Ouvrir / Bus de terrain depuis le menu de la fenêtre principale. Puis sélectionnez le volet AS-i.

La configuration est représentée par un arbre:

- Configuration AS-i
- Contrôleur maître AS-i (*)
- Diagnostics maître AS-i
- Variable d'état (*)
- Esclave AS-i (*)
- Variable d'entrée/sortie (*)
- Variable d'état (*)

(*) Les items avec cette marque peuvent apparaître plusieurs fois.

Configuration

Vous devez donfigurer les réseaux AS-i pour connecter les variables aux informations d'E/S ou d'état correspondantes.

Cliquez deux fois sur le noeud prinicipal AS-interface pour sélectionner le mode de démarrage de l'application. Les options suivantes sont disponibles:

  • Appliquer la configuration AS-i aux contrôleurs maîtres.
  • Travailler sur la configuration existante des maîtres.

La commande Editio / Nouveuw maître pour insérer un maître AS-i. Chaque maître est identifié par un numéro (à partir de 1) correspondant à sa position dans l'arbre, plus une chaine de caractères pour ses paramètres. Référez-vous aux instructions du constructeur pour la syntaxe des paramètres. Par exemple, un maître Bihl+Wiedemann PCI attend le paramètre ASIPCI.DLL.

Quand le maître est sélectionné, ajoutez des esclaves AS-i à l'aide de la commande de menu Edition / Nouvel esclave. Pour chaque esclave, vous devez renseigner:

  • Son adresse (1..31 / 33..63).
  • Son profil AS-interface.

De plus, chaque esclave peut être identifié par un nom libre.

Vuos pouvez maintenant connecter des variables aux données du réseau AS-i. La commande Edition / Nouvelle variable insère une variable à l'esclave sélectionné. Vous pouvez également connecter une variable à un flag d'exécution d'un maître AS-i en sélectionnat son bloc de diagnostic. Quand vous connectez une variable à un esclave, les options suivantes sont proposées:

  • Connecter une variable à un bit d'entrée ou de sortie.
  • Connecter une variable entière à tous les bits d'entrée (formant un nombre en binaire).
  • Connecter une variable entière à tous les bits de sortie (formant un nombre en binaire).
  • Connecter une variable à un flag d'état de l'esclave.

A chaque instant vous pouvez trier les variables de chaque bloc avec la commande Edition / Trier les symboles.

Types de données

Vous pouvez librement connecter une variable de type quelconque à une donnée AS-i. Le système se charge de convertir la donnée en temps réel. Toutefois les contraintes suivantes doivent être respectées:

Seuls les types BOOL et entiers 8/16/32 bits sont supportés. Vous ne pouvez pas utiliser de variables REAL, LREAL, LINT, TIME ou STRING dans la configuration AS-i.


BACnet MSTP Slave Configuration

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> BACnet MSTP Slave Configuration

Previous chapter Next chapter Show all Show all Hide all Hide all

Le système cible T5 intègre le protocole BACnet MSTP esclave.

Echange de données - configuration

Le système cible T5 gère une carte intermédiaire de données contenant les objets BACnet publiés. Un outil de configuration dédié est intégré à l'atelier.Utilisez la commande Fichier / Ouvrir / Configuration des bus de terrain puis sélectionnez la configuration BACnet MSTP Esclave.

La configuration est représentée sous la forme d'un arbre:

- Configuration BACnet MSTP Esclave
- Port de communication
- Dossier (*)
- Variable échangée (*)
(*) Les items marqués peuvent apparaître plusieurs fois dans la configuration.

Configuration

Voud devez configurer le port de communication utilisé par BACnet ainsi que les paramètres généraux de la pile de communication:

Paramètre | Description
Adresse | Adresse du device sur le réseau MSTP local
Envoyer "I-Am" | Si cette option est sélectionnée, un message "I-Am" est envoyé spontanément lorsque l'application démarre
Port | Nom et configuration du port de communication
Instance du device | Instance de l'objet BACnet "Device"
Nom du device | Nom de l'objet BACnet "Device"
Version de l'application | Proriété du device BACnet
Description | Proriété du device BACnet
Emplacement | Proriété du device BACnet
Mot de passe | Mot de passe autorisant les commandes de "Device Communication Control"
Préfixe - noms d'objets | Préfixe optionnel à ajouter à tous les noms d'objets
Longueur - noms d'objets | Longueur minimum des noms d'objets, en excluant les préfixes et suffixes. Le nom est complété par des espaces si nécessaire et aligné à droite. Spécifiez une longueur négative pour aligner à gauche.
Suffixe - noms d'objets | Suffixe optionnel à ajouter à tous les noms d'objets
Préfixe - types de device | Préfixe optionnel à ajouter à toutes les propriétés "type de device"
Longueur - types de device | Longueur minimum des propriétés "type de device", en excluant les préfixes et suffixes. Le texte est complété par des espaces si nécessaire et aligné à droite. Spécifiez une longueur négative pour aligner à gauche.
Suffixe - types de device | Suffixe optionnel à ajouter à toutes les propriétés "type de device"

Les variables (objets BACnet) sont librement organisés en dossiers. Les dossiers n'ont aucune influence sur l'exécution.

Les objets BACnet sont liés aux variables IEC 61131 et doivent être configurés de la façon suivante:

Paramètre | Description
Symbole | Nom de la variable IEC 61131
Identificateur | Identificateur de l'objet BACnet (instance)
Type d'object | Type d'objet BACnet
Nom d'objet | Nom d'objet BACnet
Nb. états | Nombre d'états pour les objets "multi-state"
Unité | Unité pour les objets analogiques
Description | Propriété de l'objet BACnet
Type de device | Propriété de l'objet BACnet
Valeur de repli | Valeur de repli par défaut pour les sorties

Types de données

Vous pouvez librement connecter des variables de tout type à une E/S. La cible convertit les données en fonction du type choisi. Les variables de type STRING ne sont pas supportées.


Réseau CAN bus

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Réseau CAN bus

Previous chapter Next chapter Show all Show all Hide all Hide all

Le système cible T5 inclut un configurateur dédié pour la messagerie sur le réseau CAN bus. Reportez vous aux sections suivantes pour plus de détails sur la configuration et la mise en oeuvre de la messagerie CAN bus:

Protocole

Le système supporte les réseaux CAN bus version 2.0A (header 11 bits) ou 2.0B (header 29 bits). Un projet peut inclure plusieurs réseaux CAN.

Echange de données - configuration

Le système cible T5 gère une carte de données intermédiaire pour représenter les données échangées sur CAN. Un outil de configuration dédié est intégré à l'atelier. Utilisez la commande Fichier / Ouvrir / Bus de terrain depuis le menu, et sélectionnez la configuration CAN bus.

La configuration est représentée sous la forme d'un arbre:

- Configuration CAN bus
- Réseau CAN (*)
- Message CAN (*)
- Variable échangée (*)

(*) Les items avec cette marque peuvent apparaître plusieurs fois.

Configuration

Les propriétés suivantes doivent être renseignées à la racine de l'arcbre de configuration :

Elément | Description
Taille des FIFOs application | Nombre maximum de messages CAN mémorisés pour l'application. Le système cible version 8 et plus permet à l'application de gérer des messages CAN qui ne sont pas définis dans la configuration. Ces messages sont échangés au travers de listes "FIFO". La taille de chaque FIFO est définie ici. Chaque port intègre 2 FIFOs: une pour les messages reçus et une autre pour les messages enoyés.

Utilisez la commande Insérer / Maître - Port pour déclarer un réseau CAN. Chaque réseau est identifié par:

Élément | Description
Description | Texte de description libre.
Type | Type de réseau (CAN 2.0A or CAN 2.0B).
Débit | Débit de transmission en Kbs.
Configuration | Identification et configuration du port (réréfez-vous au constructeur).

Quand un réseau est sélectionné, ajoutez des messages CAN à l'aide de la commande "Insérer / Esclave - Bloc de données". Pour chaque message vous devez configurer les options suivantes:

Élément | Description
Description | Texte de description libre.
ID | Identificateur CAN en hexadécimal.
Longueur | Longueur des données du message (de 0 à 8).
Mode = Reçu | Sélectionnez cette option pour indiquer un message reçu.
Mode = Emis périodiquement | Sélectionnez cette option pour indiquer un message émis périodiquement par la cible (la période min. doit être spécifiée dans ce cas).
Mode = Emis sur demande | Sélectionnez cette option pour indiquer un message émis par la cible sur demande (one shot). Le message est émis une fois quand la variable de "commande" configurée pour ce message passe à TRUE. La cible reforce la variable à FALSE quand la message est émis.
Mode = Emis sur changement | Sélectionnez cette option pour indiquer un message émis par la cible lors d'un changement d'état de ses données. Les périodes min. et max. doivent être spécifiées dans ce cas.
Période min. | Pour un message émis périodiquement ou sur changement d'état, c'est la période minimum entre deux émissions du message.
Période max. | Pour un message émis sur changement d'état, c'est la période maximum entre deux émissions du message, même si ses données n'ont pas changé.
RTR | Pour un message émis, spécifie une requête "remote".
Données initiales | Pour un message émis, spécifie le contenu initiale de ses données, en hexadecimal. (ex: 2B 17 10 00 E8 03 00 00)

Vous pouvez maintenant relier les variables aux données des messages CAN. Utilisez la commande Insérer / Variable pour ajouter un variable au message sélectionné. Pour chaque variable vous devez configurer les options suivantes:

Élément | Description
Symbole | Symbole de la variable.
Echange de données | Cette option indique un échange entre les données du message et la variable.
Offset | Offset (en octets) dans les données du message.
Bit | Numéro de bit (de 0 à 7) en cas d'une donnée binaire.
Taille | Taille de la donnée dans le message.
Format | Format de stockage dans le message.
Big endian | Indique le format "big endian" (octets de poids fort d'abord) pour une données stockée sur plusieurs octets.
Diagnostic / contrôle | Cette option indique une variable de diagnostic ou de contrôle du message.

Voici les options possibles pour une variable de diagnostic ou de contrôle:

Valeur | Description
Erreurs CAN | Indique les erreurs CAN courantes (réréfez-vous au constructeur).
CAN bus off | Indique le flag d'erreur "Bus CAN off".
Message reçu | Indique que le message a été reçu depuis le cycle précédent.
Au moins un message reçu | Indique qu'au moins un message a été reçu sur le réseau depuis le cycle précédent.
Emission du message | A utiliser avec le mode d'émission "Sur demande". Le message est émis une fois quand la variable de "commande" configurée pour ce message passe à TRUE. La cible reforce la variable à FALSE quand la message est émis.
Diagnostic (spécifique HW) | Info de diagnostic spécifique (réréfez-vous au constructeur).
Contrôle (spécifique HW) | Commande de contrôle spécifique (réréfez-vous au constructeur).

Types de données

Vous pouvez librement connecter une variable de type quelconque à une donnée CAN. La cible se charge de convertir la donnée en temps réel. Les variables STRING ne sont pas supportées.


CANopen configuration

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> CANopen configuration

Previous chapter Next chapter Show all Show all Hide all Hide all

The T5 runtime includes fully integrated CANopen driver for management CANopen slaves in your applications. This driver is dedicated for the runtime to be the CANopen master. It is completed by a set of functions and function blocks for managing slaves.

Data exchange - configuration

The T5 runtime manages a intermediate variable map representing CANopen data. A dedicated configuration tool is integrated in the Workbench. Run it using the File / Open / Fieldbus Configuration menu command from the main window. Then select the CANopen configuration.

The configuration is represented as a tree:

- CANopen Configuration
- CANopen network (*)
- CANopen slave (*)
- Exchanged Variable (*)

(*) The items with this mark can appear several times in the configuration.

Configuration

You must specify the following properties for a CANopen network:

Identifier | Meaning
Port name | Port identification or settings (refer to OEM instructions)
Baudrate | CANopen network baudrate
Node-ID | ID of the master on the network (usually 0)
Heart beat | Master heartbeat in milliseconds (0 = no heart beat)

You must specify the following properties for a CANopen slave:

Identifier | Meaning
Name | Slave name (just a free description)
EDS file | Name of the EDS file that describes the slave. EDS files must be placed in the \EDS folder where the Workbench is installed.
Node-ID | ID of the CANopen slave
Heart beat timeout | Timeout for reception of the slave heart beat, in milliseconds. If no heartbeat is received after this time, then the node status of the slave is set to 255.
Node guarding | Period for sending Node Guarding requests, in milliseconds. If defined, it should obviously be less that the heartbeat timeout. If "0", then node guarding protocol is not managed and the node status relies on spontaneaous heartbeat sending by the device.

You must specify the following properties for a CANopen variable:

Identifier | Meaning
Symbol | Name of the IEC variable
PDO | Slave RPDO or TPDO containing the data
PDO Item | Index of the PDO item containing the data
Mode | Data = exchange of slave data Control/status = status variable exchanged with the CANopen stack
Offset | Byte offset of the data in the PDO item
Bit | Bit offset of the data in the PDO item
Size | Size of the data
Format | Storage format of the data in the PDO
Control/status | In case of a status variable, can be: CAN errors: CAN bus error diagnostic (refer to OEM instructions) CAN bus off flag Node status: CANopen slave status or 255 if no heart beat received
Range (low/high) | Range of the IEC variable - for scaling
Signal (low/high) | Range of the PDO data - for scaling
Description | Free description text

Importing EDS files

EDS files must be placed in the \EDS folder where the Workbench is installed. From the context menu in the configuration tree, run the "Import EDS File..." command to import EDS files from your CANopen device providers.

Mapping PDOs of a slave node

From the context menu in the configuration tree when a slave is selected, run the "PDO mapping..." command to map its PDOs. A wizard enables you to map available CANopen objects to the PDOs of the slave. Select a PDO and use the following push buttons:

Add Mapping: map an object to the selected PDO

Clear: remove the selected object from the mapping

Up/Down: re-organize objects within a PDO

If you have a CAN device connected to your PC (e.g. a CAN/USB adapter), you can use the "Upload" command to directly read the current mapping from a slave on the network.

Testing PDO nodes

If you have a CAN device connected to your PC (e.g. a CAN/USB adapter), from the context menu in the configuration tree when a slave is selected, run the "Test CAN node..." command to connect to the slave device and read/write its parameters directly from the Workbench.


Configuration DNP3 Maître

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Configuration DNP3 Maître

Previous chapter Next chapter Show all Show all Hide all Hide all

The T5 runtime includes fully integrated DNP3 Master driver for driving DNP3 slaves in your applications.

Note: a set of function blocks is used as a complement to this configurator.

Data exchange - configuration

A dedicated configuration tool is integrated in the Workbench. Run it using the File / Open / Fieldbus Configuration menu command from the main window. Then select the DNP3 Master configuration.

The configuration is represented as a tree:

- DNP3 Master configuration
- Channel (an Ethernet or serial connection(*)
- DNP3 session (*)
- Exchanged Variable (*)
(*) The items with this mark can appear several times in the configuration.

Configuration

Below are parameters of the root configuration:

Identifier | Meaning
Log traces | If this option is checked, some log messages are displayed in the output window of the Workbench. This is time consuming and must be reserved for trouble shooting.

Run the Edit / New master command to declare a new DNP3 channel. A channel represents a physical connection. Below are parameters of a channel:

Identifier | Meaning
Name | Optionnal description of the connection. This name can be used in log messages if they are enabled.
Mode | Can be ETHERNET or SERIAL
Address | For ETHERNET mode, this is the IP address of the server. For SERIAL mode, this is the description of the serial port to be used, for instance "COM1:9600,N,8,1"
Connection timeout | Maximum amount of time to wait for a link level confirm if requested

Then run the Edit / Slave - Data Block command to declare a session. Each session corresponds to a logical DNP3 master and is identified by:

Identifier | Meaning
ID | Identifier of the session. This ID must be UNIQUE within the whole DNP3 master configuration, thus the same ID cannot be used for sessions in different channels.
Master address | DNP3 address of the logical master
Outstation address | DNP3 address of the slave outstation
Keep Alive | How often to send link status requests
Integrity interval | Delay to to conduct an Integrity Poll
Event interval | Delay to conduct an Event Poll and an Feedback Poll
Enable unsolicited - class 1 | Enable class 1 for unsolicited reporting
Enable unsolicited - class 2 | Enable class 2 for unsolicited reporting
Enable unsolicited - class 3 | Enable class 3 for unsolicited reporting
Command timeout | This is the default value for the response timeout for any request generated on this session
Automatic behaviour | Mask used to enable/disable automatic processing of requests

Then you can map IEC61131-3 variables on the data of the assembly, for each variable you must specify:

Identifier | Meaning
Symbol | The name of the IEC61131-3 variable
Operation | Data exchange or error report Error report is 0 for OK
Type | DNP3 object type
Point number | DNP3 point number


DNP3 Slave configuration

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> DNP3 Slave configuration

Previous chapter Next chapter Show all Show all Hide all Hide all

The workbench includes an integrated configurator for the DNP3 slave protocol.

Port configuration

To establish the communication, run the Fieldbus configuration using Tools / Fieldbus Configuration menu command from the main window. Then select the DNP3 Slave configuration.

The configuration is represented as a configuration tree:

DNP3 Slave configuration

DNP3 Slave Channel (*)

DNP3 Session (*)

(*) There can be several channels in the configuration. There should be only one session per channel.

You must specify the following properties at the root level:

Property | Description
Log traces | If checked, warning messages are sent to the system console.

See "Adanved parameters" at the end of this page for more parameters at the root level

Channel configuration

Property | Description
Name | Unique ID of the channel
Mode | TCP-IP or Serial
Port | DNP3 port number (e.g. 20000)
Time out | Timeout for the connection
OEM options | Device dependent - refer to your OEM
LAN used (IP) | IP address of the LAN adapter bound to the DNP3 server

Session configuration

Property | Description
Session ID | Unique ID of the session
Slave Address | Source identifier (slave).
Outstation address | Destination identifier (master).
Keep alive | Period of the "keep alive" signal
Enable Unsolicited | Enable sending of unsolicited messages
UTC time | Use UTC time base for sent and receive messages
OEM options | Device dependent - refer to your OEM

Variables configuration

Exchanged variables are not described in the fieldbus configuration, but using profiles. To map a variable to the DNP3 slave protocol, edit its properties using the Properties command of the context menu in the variable editor, and then select the DNP3S profile. Then you must specify the following properties for the variable:

Property | Description
Type | DNP3 type identifier.
PointNum | DNP3 point number.
EventClass | The class to which events generated for this point will be assigned to. If set to NONE then the point will not generate events.
StaticVariation | The variation to return when the master request variation 0 on a static (class 0) poll
EventVariation | The variation to return when the master request variation 0 on an event (class 1, 2 or 3) poll

Data types

You can freely map a variable of any data type to the configuration. The runtime automatically converts the value to the type of the variable.

Advanced parameters

Advanced DNP3 parameters are arranged in sections:

[Default class event]

Specifies the class that will be used if Default is selected for a point's EventClass property.

[Default variations]

Specifies the variation that will be used if Default is selected for a point's StaticVariation or EventVariation properties. (Static object groups are 1, 3, 10, 20, 21, 30 & 40 and events object groups are 2, 4, 22 & 32).

[Event mode]

Specifies the event mode that will be used for unsolicited responses:

ALL : Sequence of Events, return all events in chronological order

MOST RECENT : Most Recent, return only the most recent event for each point

[Device Attribute]

These user assigned object group 0 variations may be used to allow the master to read site specific information from the DNP3 slave.

[Unsolicited messages]

Property

Description

Unsolicited allowed

Enable or disable unsolicited event reporting (report by exception). If set to FALSE unsolicited events reporting will be disabled and may not be enabled by the master.

Unsolicited event mask

For use only with older non-compliant DNP3 masters that don’t support remote enabling of unsolicited responses (Function Code 20). For compliant masters (that do support Function Code 20) this must be set to NONE.

If set to a value other than NONE then this specifies the class of events that will be sent as unsolicited responses, once the initial null response sent after reset has been confirmed.

Unsolicited retry number

Specify the maximum number of unsolicited retries before changing to the 'offline' retry period. This parameter allows you to specify up to 65535 retries.

Unsolicited retry delay

Specifies the time to delay after an application confirm timeout before retrying the unsolicited response.

Unsolicited offline retry delay

Specifies the time to delay after the Unsolicited retry number of unsolicited retries have been attempted before retrying to send the unsolicited message again.

Send unsolicited when online

For use only if the slave never accepts incoming (master initiated) communication links.

If TRUE an unsolicited message will always be sent when the port opens, if there are no events queued then a null message will be sent. If FALSE then the unsolicited response will only be sent on connection if events are queued or a null unsolicited response is queued due to a reset.

Unsolicited events number

If unsolicited responses are enabled, Unsolicited events number specifies the maximum number of events in the corresponding class to be allowed before an unsolicited response will be generated unless the Unsolicited events delay has expired.

Unsolicited events delay

If unsolicited responses are enabled, Unsolicited events delay specifies the maximum amount of time after an event in the corresponding class is received before an unsolicited response will be generated unless the Unsolicited events number is exceeded first.

[Misc]

Property | Description
Self address enable | Specify whether or not to enable self address functionality on this slave device. Slave will respond to address 0xfffc as though it received a request for its configured address. It will respond with its own address so the master can automatically discover the slave address.
Clock valid period | Specifies how long to wait after receiving a time synchronization before requesting the next time synchronisation.
Application confirm timeout | Application confirm timeout specifies how long the slave DNP device will wait for an application layer confirmation from the master. This in combination with Unsolicited retry delay or Unsolicited offline retry delay will determine how frequently an unsolicited response will be resent.
Output select timeout | This specifies the maximum amount of time for an output point that a select will remain valid before the corresponding operate is received. If an operate request is received after this period has elapsed the operate request will fail.
File transfer timeout | This specifies the maximum amount of time between file operations (read or write) on an open file before the file is automatically closed.
Integrity poll response groups | Object groups included in response to read static data (class 0) request.
OEM options | Device dependent - refer to your OEM


Ethernet/IP IO Client

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Ethernet/IP IO Client

Previous chapter Next chapter Show all Show all Hide all Hide all

The T5 runtime includes fully integrated Ethernet/IP client driver for exchanging CIP I/O assemblies as an Ethernet/IP scanner in your applications.

Data exchange - configuration

A dedicated configuration tool is integrated in the Workbench. Run it using the File / Open / Fieldbus Configuration menu command from the main window. Then select the Ethernet/IP IO Scanner configuration.

The configuration is represented as a tree:

- Ethernet/IP IO Scanner
- Server (an Ethernet/IP adapter device) (*)
- IO Assembly (Originator to Target)
- Exchanged Variable (*)
- IO Assembly (Target to Originator)
- Exchanged Variable (*)

(*) The items with this mark can appear several times in the configuration.

Configuration of server

Run the Edit / New master command to declare an server (slave device). Each server is identified by its IP address and an optional description Text.

For each connection, three blocks of data are exchanged with the server:

- outputs (originator to target)
- inputs (target to originator)
- configuration: a static block sent to the server at connection time

You can specify the instance number for the configuration block in the properties of the server. Refer to the following section for entering configuration data.

Editing the configuration data block

Although most devices do not expect any configuration, it may happen that some data is required. For this, double click on the server in the tree and press the "Edit..." button of the box.

The configuration is entered as a list of items. Use the "Type" button to specify the number of items and their data types. Structured data types defined in the Workbench are supported.

Then simply enter values in the grid. In case you exchange multiple byte integers (e.g. WORD) you must specify whether the device expect little or big endian formatting of items.

Configuration an assembly

Then run the Edit / Slave - Data Block command to declare a CIP I/O assembly. Each assembly is identified by:

Identifier | Meaning
Type | Direction of the I/O assembly. Can be one of: - Originator to Target (outputs) - Target to Originator (inputs)
Instance | Instance of the CIP assembly
Size | Data size in bytes
Connection type | Type of the CIP connection. Can be Point To Point or MultiCast
Priority | CIP priority: Low, High, Scheduled or Urgent
32 bit header | Check this option if a 32 bit header is to be sent on notifications
RPI(ms) | Minimum period for notification of changes, in milliseconds
Description | Optional description text

Configuration of variables

Then you can map IEC61131-3 variables on the data of the assembly, for each variable you must specify:

Identifier | Meaning
Symbol | The name of the IEC61131-3 variable
Offset | Offset in bytes in the assembly data
Bit | Bit offset in the selected byte if format is "Bit"
Format | Format of the data in the assembly
Mode | Kind of data exchanged through the variable: Data Exchange: a piece of input or output data in the assembly Server OK: indicates the status of the IP connection to the server I/O connection OK: indicates the status of the CIP I/O connection Last UCMM error: CIP code of the last error occurred during a connection


Ethernet/IP Server

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Ethernet/IP Server

Previous chapter Next chapter Show all Show all Hide all Hide all

The T5 runtime includes fully integrated Ethernet/IP server driver for exchanging CIP I/O assemblies as an Ethernet/IP adapter in your applications.

Data exchange - configuration

A dedicated configuration tool is integrated in the Workbench. Run it using the File / Open / Fieldbus Configuration menu command from the main window. Then select the Ethernet/IP Adapter configuration.

The configuration is represented as a tree:

- Ethernet/IP IO Scanner
- Served I/Os and objects
- IO Assembly or Vendor Specific Object (*)
- Exchanged Variable (*)
(*) The items with this mark can appear several times in the configuration.

Configuration

The following items can be configured at the root level:

Identifier | Meaning
Ue LAN2 | obsolete
IP address | IP address of the Ethernet adapter used

Then run the Edit / Slave - Data Block command to declare a CIP I/O assembly or a vendor specific object. Each assembly is identified by:

Identifier | Meaning
Mode | Kind of CIP object. Can be one of: - I/O assembly - Vendor specific object
Access | In case of a vendor specific object, this property defines the access rights: - Read/Write = free access - Read Only = the client (scanner) cannot write the object data
Class | CIP class in case of a vendor specific object. This field should be ignored in case of an I/O assembly.
Instance | Instance of the CIP assembly or object
Size | Data size in bytes
Read only | Specify that a vendor specific object iis only readable by clients.
Description | Optional description text

When defining a vendor specific objects, the following attributes will be available for scanners:

1 (get only) = size of the object data

3 (get/set) = object data

Then you can map IEC61131-3 variables on the data of the assembly, for each variable you must specify:

Identifier | Meaning
Symbol | The name of the IEC61131-3 variable
Offset | Offset in bytes in the assembly data
Bit | Bit offset in the selected byte if format is "Bit"
Format | Format of the data in the assembly


Ethernet/IP Tag Client

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Ethernet/IP Tag Client

Previous chapter Next chapter Show all Show all Hide all Hide all

The T5 runtime includes fully integrated Ethernet/IP client driver for exchanging tags with Ethernet/IP tag based devices such as PLCs.

Data exchange - configuration

A dedicated configuration tool is integrated in the Workbench. Run it using the File / Open / Fieldbus Configuration menu command from the main window. Then select the Ethernet/IP Tag Client configuration.

The configuration is represented as a tree:

- Ethernet/IP Tag Client
- Server (an Ethernet/IP adapter device) (*)
- Tag (generally an array) (*)
- Exchanged variable (*)
(*) The items with this mark can appear several times in the configuration.

Driver and configurator are optimized for exchanging arrays (tags declared as arrays in the PLC). However it is also possible to exchange single tags.

Configuration

Run the Edit / New master command to declare an server (slave device). Each server is identified by its IP address and an optional description Text.

Then you need to configure tags such as declared in the PLC:

- The easiest way is to right click on the server in the tree and run the command Add ARRAY Tag from the contextual menu. You will then enter the properties of the tag request and the symbol of the corresponding array to be used in your IEC61131-3 application. Configuration of the tag and mapping of all array items will be performed automatically.

- Alternatively you can run the Edit / Slave - Data Block command to declare the tag and map some variables later on.

A tag request is is identified by:

Identifier | Meaning
Tag name | The name of the tag such as declared in the PLC
PLC Slot | PLC slot number
Mode | Read or Write (note that the same tag can be configured twice for both reading and writing)
Nb Elements | Number of array items to read or write
Offset | O-based index of the first item to read or write in the array
Tag data type | Data type of the tag such as declared in the PLC. Available Types are: - BOOL (single boolean variable on 1 byte - 00=FALSE / FF=TRUE) - SINT (8 bit signed integer) - INT (16 bit signed integer) - DINT (32 bit signed integer) - DWORD (32 bit string) DWORD should be selected if the tag is declared in the PLC as an array of bits.
Period(ms) | You can specify in this parameter a period for continuously sending the request. Enter "0" for a request sent "on demand"
Timeout | Request timeout in milliseconds

IEC61131-3 variables are mapped on the data of the tag, for each variable you must specify:

Identifier | Meaning
Symbol | The name of the IEC61131-3 variable
Offset | Offset in bytes in the assembly data
Bit | Bit offset in the selected byte if format is "Bit"
Format | Format of the data in the assembly
Mode | Kind of data exchanged through the variable: Data Exchange: a piec of input or output data in the assembly Server OK: indicates the status of the IP connection to the server Send Request Now: will be used as a command for activating the request [transaction counter]: increased each time the request is sent [general status]: CIP error code (0 = OK) [extended status]: CIP extended error code (0 = OK)

The tag will be read or written:

- periodically if a non zero period is specified in the tag configuration

- when a variable configured as "Send Request Now" becomes TRUE

In the case of a command variable, the variable is automatically resetted to FALSE when the request is sent.


Configuration Hilscher CIF Profibus DP

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Configuration Hilscher CIF Profibus DP

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier inclut un configurateur pour Profibus sur les cartes Hilscher CIF boards. Référez-vous aux sections suivantes pour plus d'information sur l'utilisation et la configuration des cartes Hilscher CIF:

Echange de données - configuration

Le système cible Le système gère une carte intermédiaire représentant les entrées et sorties Profibus. Un outil de configuration dédié est intégré à l'atelier. Utilisez la commande de menu Fichier > Ouvrir > Configuration Bus de Terrain puis Insérer > Insérer une configuration.

Sélectionnez Hilscher CIF Profibus et cliquez sur OK.

La configuration est représentée sous la forme d'un arbre:

- Configuration Hilscher Profibus
- Carte CIF (*)
- Esclave Profibus (**)
- Variable échangée (**)

(*) Cet item peut apparaître jusqu'à 4 fois (maximum 4 cartes).
(**) Ces items peuvent apparaître plusieurs fois.

Configuration

Vous devez configurer le réseau pour relier les E/S Profibus aux variables. Utilisez la commande de menu Insérer > Insérer Maître/Port pour déclarer une carte CIF.

Chaque carte est identifiée par un numéro (0…3), et une description.

Paramètres | Description
Name | Description (libre).
Hilscher Board | 0…3
Master address |
Baud rate | 9,6kBaud…12MBaud
Orientation | Intel/Motorola; Orientation des mots.
Request timeout [ms] | Temps accordé à la carte pour répondre à une requête.
Slave boot time [ms] | Temps accord aux esclaves pour être prêts à communiquer ; cette valeur ne peut pas être 0 afin de pouvoir ré-établir la communication après une interruption.
Board start delay [ms] | Temps accordé à la carte CIF pour redémarrer la communication after.
Bus watchdog [ms] | Temps du chien de garde ; la valeur 0 désactive le chien de garde.
HSA | Highest station address; HSA définit la plus grande adresse pour le rafraichissement GAP (si actif).
Slot time [tBit] | Temps accordé à un esclave par le maître pour répondre à une requête.
Minimum TSDR [tBit] | Minimum station delay responder ; Temps d'attente minimum pour la réponse d'un esclave. Ce paramètre est envoyé à tous les esclaves au démarrage.
Maximum TSDR [tBit] | Maximum station delay responder ; Temps d'attente maximum pour la réponse d'un esclave. Ce paramètre est envoyé à tous les esclaves au démarrage.
Gap update | Le "GAP updatee peut être activé ou désactivé. Utilisé uniquement en mode multi-maître.
TQUI [tBit] | Quiet time ; Définit le temps de traduction des signaux NRZ. TRDY > TQUI < min TSDR
TSET [tBit] | Durée de Setup.
TTR [tBit] | Temps de rotation du Token.
Transfer attempts | Nombre de ré-essais.
Request delay [100µs] | Délai entre les requêtes à un esclave.
Timeout 2nd master [ms] | Temps de recherche d'un second maître.
Data control time [10ms] | Temps minimum de rafraichissement de l'état du maître.
Wait data control time | On/Off; Si actif, le "Data control time" est attendu après. l'initialisation jusqu'à ce que l'échange des E/S commence.
Start despite disconnected slaves | On/Off; Possibilité de démarrer avec un bus incomplet.
Do not reset on stop (keep outputs) | On/Off; Maintient les sorties après un stop; peut-être. nécessaire après une routine de shutdown.
Log errors | On/Off
Log warnings | On/Off
Log available boards | On/Off
Log slaves on bus | On/Off
Log slave topology | On/Off
Log initialize retries | On/Off
Log slave I/O | On/Off
Log data exchange | On/Off
Log manual I/O | On/Off
Log protocol states | On/Off
Log slave diagnostics | On/Off

Si un fichier GSD est disponible, il peut être chargé directement en cliquant sur Load GSD.

Quand une carte est sélectionnée, ajoutez des esclaves Profibus à l'aide de la commande de menu Insérer > Insérer Esclave/Bloc de données.

Pour chaque esclave vous devez spécifier son adresse selon les conventions Profibus et une description.

Paramètres | Description
Name | description
Slave address | adresse
Input start offset |
Output start offset |
Parameter data | Paramètres - peuvent provenir d'un fichier .GSD (User_Prm_Data). Doit être spécifié en hexadécimal (ex: C0 80 08 0A 11)
Slave modules | Descriptions des modules d'E/S de l'esclave, selon le standard Profibus. Doit être spécifié en hexadécimal (ex: 10 08 70 1A FF)
Variable prefix |

Si un fichier GSD est disponible, il peut être chargé directement en cliquant sur Load GSD.

Après sélection du fichier GSD vous pouvez ajouter des modules et changer leurs paramètres.

Maintenant vous devez connecter les variables aux E/S échangées. Utilisez la commande de menu Insérer > Insérer Variable

Quand une variable est ajoutée, vous devez spécifier:

Élément | Description
Variablename | Le symbole de la variable.
Area | "Bus state" ou "Diagnostic" ou "Input" ou "Output".
Format | 32 bit float, Boolean Byte, Signed 16 bit integer, Signed 32 bit integer, Signed 8 bit integer, Single bit, Unsigned 16 bit integer, Unsigned 32 bit integer, Unsigned 8 bit integer.
Offset | Offset dans les données.
Bit | Numéro de bit.

info Info

L'offset est relatif à l'esclave. L'offset de la première variable est 0.

info Info

Attention au nombre d'E/S disponibles pour l'esclave ! Vous riquer de "déborder" sur l'esclave suivant.

Ces informations peuvent également être saisies dans une grille. La commande Affichage > Grille montre la grille. Les items contenus dans la grilles sont ceux situés en dessous de l'item sélectionné dans l'arbre (ex: les variables quand un esclave est sélectionné dans l'arbre).

ID de modules ambigüs

Cette fenêtre vous permet de parcourir le bus et de tester si plusieurs modules ont le même ID.

Vous pouvez choisir le module à activer en cas de conflit (double cliquez sur l'item choisi dans la colonne Salve modules).

Types de données

Vous pouvez librement connecter des variables de tout type à une E/S. La cible convertit les données en fonction du type choisi. Les variables de type STRING ne sont pas supportées.

Fonctions additionnelles

Browse boards

Cette commande du menu contextuel donne la liste des cartes CIF disponibles.

Sélectionnez les cartes choisies et cliques sur OK.

Puis utilisez la commande Edition > Propriétés pour entrer les paramètres de la carte.

Le fichier de log est écrit dans le répertoire où le code de l'application est téléchargé.

Configure boards

Cette commande du menu contextuel vous permet de définir les cartes CIF hors-ligne. Ceci peut être requis pour configurer Profibus pour WinCE.

info Info

L'adresse physique du maître Profibus et la taille mémoire doivent être spécifiées manuellement!

Create master diagnostics

Cette commande du menu contextuel génère automatiquement toutes les variables de diagnostic du maître sélectionné. Toutes les noms des variables créés commencent par un préfixe choisi ici.

Si vous sélectionnez Create variable les variables sont automatiquement déclarées.

Variables de diagnostic :
WrongParameterization [BOOL]
AutoClearActivated [BOOL]
NoDataExchange [BOOL]
FatalError [BOOL]
BusErrorEvents [BOOL]
HostNotReady [BOOL]
PROFIBUS_timeout [BOOL]
GlobalState [USINT]
LocationOf Error [USINT]
ErrorEvent [USINT]
BusErrorCount [UINT]
BusTimeoutCount [UINT]

Browse bus

Cette commande du menu contextuel explore le bus et liste les esclaves Profibus détectés.

Sélectionnez les esclaves choisis dans la colonne Create.

Puis double cliquez sur un esclave pour saisir ses paramètres et ses données de configuration.

Create variables for slave modules

Cette commande du menu contextuel déclare automatiquement toutes les variables d'E/S de l'esclave sélectionné. Les noms des variables créées ont un préfixe choisi ici.

Create slave diagnostics

Cette commande du menu contextuel crèe toutes les variables de diagnostic pour l'esclave sélectionné.

Si vous sélectionnez Create variable les variables sont automatiquement déclarées.

Variables créées :
ConfigurationReady [BOOL]
SlaveState [BOOL]
SlaveDiag [BOOL]
StationNonExistent [BOOL]
StationNotReady [BOOL]
SlaveCfgFault [BOOL]
ExtendedDiag [BOOL]
SyncFreezeNot Supported [BOOL]
InvalidResponse [BOOL]
ParamFaulty [BOOL]
MasterLook [BOOL]
ParamRequest [BOOL]
StaticDiagnostic [BOOL]
SlaveTrue [BOOL] … Si ce bit est TRUE les infos de diagnostic sont lues par le maître et le bus est initialisé.
WatchdogOn [BOOL]
FreezeOn [BOOL]
SyncOn [BOOL]
SlaveDeActive [BOOL]
ExtDiagOverflow [BOOL]
SlaveMasterAdr [USINT]
SlaveIdent [UINT]

Convert project (/zenon seulement!)

Cette commande du menu contextuel convertir une ancienne configuration Profibus de zenon 6.01.

Procédure:

  1. Ouvrir le projet devant contenir la configuration Profibus.
  2. Insérer la configuration: Edition / Insérer configuration.
  3. Sélectionnez: Hilscher CIF Profibus.
  4. Menu contextuel: Convert project.
  5. Cliquez sur Convert dans la fenêtre de conversion.
  6. La fenêtre montre tous les éléments disponibles.
  7. Cliquez sur OK pour convertir.
  8. Vous pouvez conserver les profils des variables si nécessaires dans zenon.

Dans cette section

Hilscher CIF PB Functions

Profibus DPV1 Class 1

Profibus DPV1 Class 2

Other Profibus Functions

Error reporting


Hilscher CIF PB Functions

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Configuration Hilscher CIF Profibus DP -> Hilscher CIF PB Functions

Previous chapter Next chapter Show all Show all Hide all Hide all

attention Attention

Hilscher CIF PB functions may be not available on some target systems. Please refer to OEM instructions for further details about available features.


Profibus DPV1 Class 1

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Configuration Hilscher CIF Profibus DP -> Profibus DPV1 Class 1

Previous chapter Next chapter Show all Show all Hide all Hide all

DPV1 class 1 services enable an acyclic communication to a Profibus slave with having an active DPV0 connection to this slave.

info Info

The DPV1 protocol is supported by Hilscher CIF-xxx-PB with firmware version >1.040.

The use of DPV1 class 1 services must be enabled during the connection to the slave. Therefore the DPV1 class 1 support must be selectable in the configuration of the slave node. Therefore slaves which will be used with DPV 1 class 1 must be named with a "_DPV1" postfix (DPV in capital letters).

The following functions deal with the Profibus driver for DPV1 class 1 and support read and write services:

MSAC1_Read_Rq

Send read request for a data block to a DPV1 slave

 | Data type | Description
Inputs |  |
MasterID | DINT | Hilscher Board No. (0..3) selected in master configuration dialog
SlaveID | DINT | Slave address
Slot | DINT | Slot number
Index | DINT | Index
Length | DINT | Length of data to read
Outputs |  |
Status | DINT | 0 in case of success

MSAC1_Read_Rv

Receive the requested data block from a DPV1 slave previously requested by MSAC1_Read_Rq function

 | Data type | Description
Inputs |  |
MasterID | DINT | Hilscher Board No. (0..3) selected in master configuration dialog
SlaveID | DINT | Slave address
Slot | DINT | Slot number
Index | DINT | Index
@Length | DINT | Reference to retrieve the actual length of data read
Data[] | USINT | USINT array for storing the data read
Timeout | DINT | Timeout in [ms]
Outputs |  |
Status | DINT | 0 in case of success

MSAC1_Write_Rq

Send a write request to a DPV1 slave

 | Data type | Description
Inputs |  |
MasterID | DINT | Hilscher Board No. (0..3) selected in master configuration dialog
SlaveID | DINT | Slave address
Slot | DINT | Slot number
Index | DINT | Index
Length | DINT | Length of data to be written
Data[] | USINT | USINT array for storing the data read
Outputs |  |
Status | DINT | 0 in case of success

MSAC1_Write_Rv

Send data to a DPV1 slave previously requested by MSAC1_Write_Rq function

 | Data type | Description
Inputs |  |
MasterID | DINT | Hilscher Board No. (0..3) selected in master configuration dialog
SlaveID | DINT | Slave address
Slot | DINT | Slot number
Index | DINT | Index
@Length | DINT | Actual length of data written
Timeout | DINT | Timeout in [ms]
Outputs |  |
Status | DINT | 0 in case of success

For error reports please refer to the tables in the Error reporting.

info Info

Only the services read and write are supported, DPV1 alarms are not available.


Profibus DPV1 Class 2

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Configuration Hilscher CIF Profibus DP -> Profibus DPV1 Class 2

Previous chapter Next chapter Show all Show all Hide all Hide all

DPV1 class 2 services enable an acyclic communication to a Profibus slave without having an active DPV0 connection to this slave.

info Info

The DPV1 protocol is supported by Hilscher CIF-xxx-PB with firmware version >1.040.

In the bus driver configuration of the Workbench add the Hilscher CIF Profibus configuration and add a master representing your installed CIF card. The slaves with which DPV1 class 2 communication should be established may not be added to the configuration.

info Info

Not all slaves supporting DPV1 class 2 support a concurrently opened DPV0 connection to the same master.

The following DPV1 class 2 services are supported:

MSAC2M_Initiate

With this initiate service a Class2 connection to a specific slave must be established first before the services MSAC2M_Read or MSAC2M_Write can be used. The initiate service sends the parameter directly to the slave who checks this parameter immediately. If a slave does not support a wished service or does not support a defined profile, it will deny the initiate primitive. If the initiate request is confirmed positively then the connection state go to OPEN and the master will now request IDLE-telegrams to the slave cyclically to supervise it, until the connection is aborted or until the connection is interrupted physically. In the last case the master will automatically abort and close the connection. In a Class2 relationship only one open connection can exist at the same time, parallel established connections are forbidden. To initialize a connection to another slave device the already established connection must be aborted before with the MSAC2M_Abort primitive.

MSAC2M_Read

By means of this service a read request via a Class2 connection for a data block is transferred to a slave. The service operates slot and index related.

MSAC2M_Write

By means of this service a write request via a Class2 connection for a data block is transferred to a slave. The service operates slot and index related.

MSAC2M_Abort

The MSAC2M_Abort primitive is used to abort a Class2 communication relationship.

The DPV1 class 2 services can be invoked using functions contained in the Hilscher CIF Profibus RT driver DLL:

(For error reports please refer to the table at the end of this chapter.)

MSAC2M_Init_Rq

Send an initiate request to initiate a Profibus DPV1 class 2 connection

 | Data type | Description
Inputs |  |
MasterID | DINT | Hilscher Board No. (0..3) selected in master configuration dialog
SlaveID | DINT | Slave address
Outputs |  |
Status | DINT | 0 in case of success

MSAC2M_Init_Rv

Wait for an initiate request to be completed

 | Data type | Description
Inputs |  |
MasterID | DINT | Hilscher Board No. (0..3) selected in master configuration dialog
SlaveID | DINT | Slave address
Timeout | DINT | Timeout in [ms]
Outputs |  |
Status | DINT | 0 in case of success

MSAC2M_Read_Rq

Send Profibus DPV1 class 2 read request

 | Data type | Description
Inputs |  |
MasterID | DINT | Hilscher Board No. (0..3) selected in master configuration dialog
SlaveID | DINT | Slave address
Slot | DINT | Slot number
Index | DINT | Index
Length | DINT | Length of data to read
Outputs |  |
Status | DINT | 0 in case of success

MSAC2M_Read_Rv

Receive Profibus DPV1 class read response

 | Data type | Description
Inputs |  |
MasterID | DINT | Hilscher Board No. (0..3) selected in master configuration dialog
SlaveID | DINT | Slave address
Slot | DINT | Slot number
Index | DINT | Index
@Length | DINT | Reference to retrieve the actual length of data read
Data[] | USINT | USINT array for storing the data read
Timeout | DINT | Timeout in [ms]
Outputs |  |
Status | DINT | 0 in case of success

MSAC2M_Write_Rq

Send Profibus DPV1 class 2 write

 | Data type | Description
Inputs |  |
MasterID | DINT | Hilscher Board No. (0..3) selected in master configuration dialog
SlaveID | DINT | Slave address
Slot | DINT | Slot number
Index | DINT | Index
Length | DINT | Length of data to be written
Data[] | USINT | USINT array for storing the data read
Outputs |  |
Status | DINT | 0 in case of success

MSAC2M_Write_Rv

Receive Profibus DPV1 class 2 write response

 | Data type | Description
Inputs |  |
MasterID | DINT | Hilscher Board No. (0..3) selected in master configuration dialog
SlaveID | DINT | Slave address
Slot | DINT | Slot number
Index | DINT | Index
@Length | DINT | Actual length of data written
Timeout | DINT | Timeout in [ms]
Outputs |  |
Status | DINT | 0 in case of success

MSAC2M_Abort_Rq

Abort a Profibus DPV1 class2 communication

 | Data type | Description
Inputs |  |
MasterID | DINT | Hilscher Board No. (0..3) selected in master configuration dialog
SlaveID | DINT | Slave address
Outputs |  |
Status | DINT | 0 in case of success

For error reports please refer to the tables in the Error reporting

Reason codes in case of a received abort indication (shown in log message):

Instance | Reason_Code | Name | Meaning
0 (FDL) | 1 | UE | FDL interface error
0 | 2 | RR | insufficient remote resource for that service
0 | 3 | RS | service at remote SAP not activated
0 | 9 | NR | response without response data
0 | A | DH | response sent with high priority level
0 | B | LR | no resource of local FDL
0 | C | RDL | response low bit with neg. acknowledge received
0 | D | RDH | response high bit with neg. acknowledge received
0 | E | DS | master not in the logical ring
0 | F | NA | no response from the remote FDL
1 (MSAC2) | 1 | ABT_SE | sequence error, service not allowed in this state
1 | 2 | ABT_FE | invalid request PDU received
1 | 3 | ABT_TO | timeout of the connection
1 | 4 | ABT_RE | invalid response PDU received
1 | 5 | ABT_IV | invalid service from the HOST
1 | 6 | ABT_STO | Send_Timeout requested was to small
1 | 7 | ABT_IA | invalid additional address information
1 | 8 | ABT_OC | waiting for FDL_DATA_REPLY.con
3 (USER) | 0...F |  | fully USER specific reason code


Other Profibus Functions

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Configuration Hilscher CIF Profibus DP -> Other Profibus Functions

Previous chapter Next chapter Show all Show all Hide all Hide all

DDLM_GlobalCtrl

Synchronizes slave Outputs or freezes slave Inputs.

Function for DDLM_Global_Control (Freeze and Sync) support

Data type

Description

Inputs

MASTERID

DINT

Hilscher Board No. (0..3) selected in master configuration dialog

SLAVEID

DINT

Slave address

This parameter fixes the address of the slave. The value could be from 0 to 127. The value of 127 is the special global address. If this address is selected all slaves are influenced simultaneously.

FREEZE

BOOL
  • 1st TRUE: Switches on the Freeze mode of the slave and reads the input data once
  • FALSE: Input data are not read by the master
  • TRUE: Input data are read once by the master

UNFREEZE

BOOL
  • TRUE: Deactivates Freeze mode
  • FALSE: Activation of freeze mode possible

SYNC

BOOL
  • 1st TRUE: Switches the slave to Sync mode and writes output data once
  • FALSE: Output data are not written by the master
  • TRUE: Output data are written once by the master

UNSYNC

BOOL
  • TRUE: Deactivates Sync mode
  • FALSE: Activation of Sync mode possible

CLEARDATA

BOOL
  • TRUE: Sets all outputs to 0/FALSE if slave is in Sync mode
  • FALSE: Outputs can be written in sync mode (no effect if Unsync is TRUE)

GROUP

DINT

Define the addressed slave group here (group numbers are defined in the profibus slave configuration). This parameter has to fit to the Slave address input (SLAVEID). If the SLAVEID is not part of the Group the function will not work.

0...Global; Group numbers are not consiedered.

Outputs

STATUS

DINT

0 in case of success

For error reports please refer to the tables in the Error reporting.

Combinations of the bits UNSYNC/SYNC and UNFREEZE/FREEZE

UNFREEZE/UNSYNC | FREEZE/SYNC | Signification
FALSE | FALSE | No function
FALSE | TRUE | function will be activated
TRUE | FALSE | function will be inactive
TRUE | TRUE | function will be inactive


Error reporting

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Configuration Hilscher CIF Profibus DP -> Error reporting

Previous chapter Next chapter Show all Show all Hide all Hide all

The status returned by these functions does either contain the error code returned by the Hilscher CIF card or the error code returned by the Profibus slave. More detailed error information is available in the log file, if logging of error and warning messages is enabled.

Basic communication errors:

STATUS | signification | error source | help
0 = CON_OK | service could be executed without an error |  |
2 = CON_RR | resource unavailable | slave | slave has no left buffer space for the requested service
3 = CON_RS | requested function of master is not activated within the slave | slave | slave is not activated in its DPV1 support
9 = CON_NR | no answer-data, although the slave has to response with data | slave | slave hasn't sent back any amount of data
17 = CON_NA | no response of the station | slave | check network wiring, check bus address of slave or baud rate support
18 = CON_DS | master not within the logical token ring | network in general | check master DP-Address or highest-station-Address of other masters; examine bus wiring to bus short circuits
25 = CON_NP | no plausible reaction of remote partner | slave | slave does not work DPV1 norm conform
54 = CON_AD | negative response received, access denied | slave | access denied to requested data; check Error_Code_1 and Error_Code_2 in response message to get closer error information (see table below)
0x81 = REJ_SE | Device is about to stop the DPV1-communication or the DPV1 is not in Open state | HOST, configuration | DPV1 communications must be configured to be activated by the Device
0x82 = REJ_ABORT | Device has stopped the DPV1-communication automatically | slave | a previous addressed slave has responded with non confirm parameters
0x83 = REJ_PS | a previous services is still in process | HOST | wait for the outstanding answer first; parallel services are not allowed
0x84 = REJ_LE | length oversteps maximum configured size | HOST | reduce length of message or enlarge maximum buffer size in SyCon/Fieldbus configuration or in slave data set
0x85 = REJ_IV | wrong parameter in request | HOST | check SlaveID parameter of requested message
0x9a = REJ_COM | unknown command | HOST | function not supported, wrong master type?

Error codes (Error_Code_1 and Error_Code_2): If Status or Log message shows an error code with two bytes (e.g. 0xb012) then refer to this table. Note: the returned error code in Status is displayed swapped (e.g. 0x12b0).

info Info

These error codes are relevant for read or write functions only!

Error_Code_1 (e.g. 0xb0**):

Error_Code_1 range | Meaning | Error_Code_1
00...9F | reserved |
A0...AF | application | A0 = read error A1 = write error A2 = module failure A3...A7 = reserved A8 = version conflict A9 = feature not supported AA...AF = user specific
B0...BF | access | B0 = invalid index B1 = write length error B2 = invalid slot B3 = type conflict B4 = invalid area B5 = state conflict B6 = access denied B7 = invalid range B8 = invalid parameter B9 = invalid type BA...BF = user specific
C0...CF | resource | C0 = read constrain conflict C1 = write constrain conflict C2 = resource busy C3 = resource unavailable C4...C7 = reserved C8...CF = user specific
D0...FF | user specific |

Error_Code_2 (e.g. 0x**12) is fully user (slave) specific an cannot be defined here.


Configuration d'E/S Hilscher (SYCON)

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Configuration d'E/S Hilscher (SYCON)

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier inclut un configurateur intégré pour les entrées/sorties SYCON. La configuration du bus est réalisée avec la console SYCON de Hilscher, et peut être directement importée. Les pages suivantes décrivent la configuration:

Echange de données - configuration

La cible T5 gère une carte intermédiaire représentant les entrées et sorties SYCON. Un outil de configuration dédié est intégré à l'atelier. Utilisez la commande Fichier / Ouvrir / Configuration bus de terrain dans le menu de la fenêtre principale. Puis sélectionnez la configuration SYCON.

La configuration est représentée sous la forme d'un arbre:

- Configuration SYCON
- Carte SYCON (*)
- Groupe (*)
- Variable échangée (*)

(*) Les items avec cette marque peuvent apparaître plusieurs fois.

Configuration

Vous devez configurer le réseau et lier les variables aux entrées/sorties. Une carte SYCON est identifiée par son numéro et une description. Un équipement est identifié par une description.

Pour chaque variable vous devez définir:

  • Son symbole.
  • Un offset (dans la carte SYCON).
  • Un mode (entrée ou sortie).
  • Un format de données sur la carte SYCON.
  • Possiblement un numéro de bit pour une variable binaire.

Quand le noeud principal de la configuration est sélectionnez, vous pouvez lancer la commande Importer la configuration SYCON depuis le menu "bouton droit" et sélectionner la configuration SYCON à importer. Dans ce cas l'arbre de configuration est automatiquement créé et toutes les variables déclarées dans le projet.

Types de données

Vous pouvez librement connecter des variables de tout type à une E/S. La cible convertit les données en fonction du type choisi. Les variables de type STRING ne sont pas supportées.


SYCONConfiguration Hilscher SYCON [universel]

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> SYCONConfiguration Hilscher SYCON [universel]

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier inclut un configurateur intégré pour les entrées/sorties SYCON. La configuration du bus est réalisée avec la console SYCON de Hilscher, et peut être directement importée.

Contraitement à la configuration "Hilscher SYCON" ce driver peut être utillisé avec le runtime RTK et le runtime CE sans besoin de driver Hilscher.

Les pages suivantes décrivent la configuration:

Echange de données - configuration

La cible T5 gère une carte intermédiaire représentant les entrées et sorties SYCON. Un outil de configuration dédié est intégré à l'atelier. Utilisez la commande Fichier / Ouvrir / Configuration bus de terrain dans le menu de la fenêtre principale. Puis sélectionnez la configuration SYCON.

La configuration est représentée sous la forme d'un arbre:

- Configuration SYCON
- Carte SYCON (*)
- Groupe (*)
- Variable échangée (*)

(*) Les items avec cette marque peuvent apparaître plusieurs fois.

Configuration

Vous devez configurer le réseau et lier les variables aux entrées/sorties. Une carte SYCON est identifiée par son numéro et une description. Un équipement est identifié par une description.

Pour chaque variable vous devez définir:

  • Son symbole.
  • Un offset (dans la carte SYCON).
  • Un mode (entrée ou sortie).
  • Un format de données sur la carte SYCON.
  • Possiblement un numéro de bit pour une variable binaire.

Quand le noeud principal de la configuration est sélectionnez, vous pouvez lancer la commande Importer la configuration SYCON depuis le menu "bouton droit" et sélectionner la configuration SYCON à importer. Dans ce cas l'arbre de configuration est automatiquement créé et toutes les variables déclarées dans le projet.

Types de données

Vous pouvez librement connecter des variables de tout type à une E/S. La cible convertit les données en fonction du type choisi. Les variables de type STRING ne sont pas supportées.

Fonctions avancées

La commande Configure boards du menu contextuel vous permet de défiir les cartes en mode hors ligne. Ceci peut être requis pour la configuration d'un réseau Profibus sur Windows CE.

info Info

L'adresse physique du maître Profibus et la taille de la mémoire dualport doivent être entrés manuellement!


Configuration Hilscher SYCON.net (CifX)

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Configuration Hilscher SYCON.net (CifX)

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier inclut un configurateur intégré pour les entrées/sorties Hilscher CifX. La configuration du bus est réalisée avec la console SYCON.net de Hilscher, et peut être directement importée. Les pages suivantes décrivent la configuration:

Data exchange - configuration

La cible T5 gère une carte intermédiaire représentant les entrées et sorties CifX. Un outil de configuration dédié est intégré à l'atelier. Utilisez la commande Fichier / Ouvrir / Configuration bus de terrain dans le menu de la fenêtre principale. Puis sélectionnez la configuration Hilscher SYCON.net configuration (CifX).

La configuration est représentée sous la forme d'un arbre:

- Configuration Hilscher SYCON.net (CifX)
- Carte CifX (*)
- Groupe (*)
- Variable connectée (*)

(*) Les items avec cette marque peuvent apparaître plusieurs fois.

Configuration

Vous devez configurer le réseau et lier les variables aux entrées/sorties CifX. Une carte CifX est identifiée par son numéro, un numéro de canal et une description. Vous pouvez sélectionner l'inversion des octets des mots. Un équipement est identifié par une description.

Pour chaque variable vous devez définir:

  • Son symbole.
  • Un format de données sur la carte SYCON.
  • Un mode (entrée ou sortie).
  • Un offset (dans la carte SYCON).
  • Possiblement un numéro de bit pour une variable binaire.

Quand le noeud principal de la configuration est sélectionnez, vous pouvez lancer la commande Importer la configuration SYCON depuis le menu "bouton droit" et sélectionner la configuration XML à importer. Le fichier XML est créé avec l'outil de configuration de SYCON.net. Dans ce cas l'arbre de configuration est automatiquement créé et toutes les variables déclarées dans le projet.

Types de données

Vous pouvez librement connecter des variables de tout type à une E/S. La cible convertit les données en fonction du type choisi. Les variables de type STRING ne sont pas supportées.


Configuration d'E/S HMS

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Configuration d'E/S HMS

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier inclut un configurateur intégré pour les entrées/sorties HMS. La configuration du bus est réalisée avec la console HMS, et peut être directement importée. Les pages suivantes décrivent la configuration:

Echange de données - configuration

La cible T5 gère une carte intermédiaire représentant les entrées et sorties HMS. Un outil de configuration dédié est intégré à l'atelier. Utilisez la commande Fichier / Ouvrir / Configuration bus de terrain dans le menu de la fenêtre principale. Puis sélectionnez la configuration HMS.

La configuration est représentée sous la forme d'un arbre:

- Configuration HMS
- Carte HMS (*)
- Groupe (*)
- Variable échangée (*)

(*) Les items avec cette marque peuvent apparaître plusieurs fois.

Configuration

Vous devez configurer le réseau et lier les variables aux entrées/sorties. Une carte HMS est identifiée par son numéro et une description. Un équipement est identifié par une description.

Pour chaque variable vous devez définir:

  • Son symbole
  • Un offset (dans la carte HMS).
  • Un mode (entrée ou sortie).
  • Un format de données sur la carte HMS.
  • Possiblement un numéro de bit pour une variable binaire.

Quand le noeud principal de la configuration est sélectionnez, vous pouvez lancer la commande Importer la configuration HMS depuis le menu "bouton droit" et sélectionner la configuration HMS à importer. Dans ce cas l'arbre de configuration est automatiquement créé et toutes les variables déclarées dans le projet.

Types de données

Vous pouvez librement connecter des variables de tout type à une E/S. La cible convertit les données en fonction du type choisi. Les variables de type STRING ne sont pas supportées.


IEC 60870-5-101/104 Master configuration

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> IEC 60870-5-101/104 Master configuration

Previous chapter Next chapter Show all Show all Hide all Hide all

The workbench includes a driver which makes it possible to read in IEC 60870 slave devices and send back commands to these device. Communication via IEC 60870-5-104 and IEC 60870-5-101 is supported.

Configuration

Bus node

General configuration of the bus driver. The following settings are possbile:

Parameter | Description
Port number [101] | Port number of the serial interface which should be used for communication for all configured 101 devices. e.g. 1 for COM1
Baud rate [101] | Baud rate for all configured 101 devices.
Directory for file transfer | Target directory for file transfer (Function block IEC60870_FTGET).
Buffer each value change | Buffer all received values. Before each cycle the values are copied from the buffer. Note: If there is a response variable in the buffer for which in the current cycle a value has been allocated, the allocation is interrupted and is continued in the next cycle. This guarantees that each value change is processed.
Standard DCS/DPI mapping deactivated | Deactivate the standard mapping of DCS/DPI values. Inactive: The values OFF/ON of double messages (DPI and DCS) are adjusted to area 0/1. The driver converts the values of double messages (intermediate, off, on, fault in: 2, 0, 1, 3) so that in straton value 0 means OFF and value 1 means On. Active: The values of double messages are passed on to straton 1:1. default: inactive.

Master node

In the bus configuration the master node represents a connection to an IEC 60870 Slave. The following settings are possible:

Parameter | Description
Protocol | Is defined once when creating the node (read-only).
Name | Name for the connection. It is also used as prefix for automatically created variables. Must be in accordance with the rules for variable naming.
Slave ID | Unique ID for this slave connection.
IP address [104] | Primary IP address of the slave.
TCP port [104] | Primary TCP address of the slave.
Redundant IP address [104] | Secondary IP address of the slave (optional).
Redundant TCP address [104] | Secondary TCP address of the slave (optional).
T1 [104] | Time-out for requests in ms.
T2 [104] | Time period in ms after which an acknowledgement must be sent.
T3 [104] | Time period in ms after which a TESTFR frame must eb sent if no other data is sent.
K [104] | Number of request which can be sent without an acknowledge must be received. Maximum: 32767 default: 12
W [104] | Number of request after which an acknowledge must be sent. Maximum: 32767 default: 8 Note: Teh communiaction is carried out synchronized with the cycle. Therefor a maximum of K outgoing and W incoming telegrams can be processed. The values for K and W should be the same at the master and at the slave.
Link address [101] | Link address aof the slave.
Size link address [101] | Size of the link address in byte. Value range: 1-2
Size COA | Byte size Value range: 1-2
Size IOA | Byte size Value range: 1-2
Size COT | Byte size Value range: 1-3

attention Attention

Do not create TCP/IP and serial connections in one instance. The serial connection would slow down the TCP/IP connection which may result in a time-out.

Slave node

The slave node represents a sector of the IEC60870 slave. The following settings are possible.

Parameter | Description
Name | Freely definabel name (optional)
COA | COA of the sector.

Variable node

The follwoign settings are possible.

Parameter | Description
Name | Name of the associated straton variable.
Type identification | IEC 60870 type identification <1...37> or 0.
IOA | Information Object Address.

Variable Import

Variables in message direction can be created with the driver onlien import. Prerequisite for this is that the sectors were already created as slave nodes in the bus driver configuration and that all engineered sectors are available at the slave.

By right-clicking the master node you can import all response variables for a slave connection automatically. The driver sends a general interrogation (GI) command to the selected device and all received IOs are displayed in a list.

info Info

Name structure

The names for the imported variables follow the following structure:

<Connection name>_T<TID>_COA_IOA

TID is ignored when checking for existing variables. If variables with identical IOA and COA exist but the TID is different, the TID is displayed after the data type in the dialog.

Example: Connection_T1_1_10 (BOOL), T30.

When you activate option Create variable in database, the variables are not only created in the bus driver configuration but also in straton as global variables. Already existing variables are displayed in bold. If you deselect an existing variable, it will be deleted from the bus driver configuration. The straton variable is not deleted.

Connection state

Via a UNIT variable of the type "internal state" (T00), COA 0 and IOA 0, you can request the current connection state to the control. If the value of this variabel equals 5, a running connection exist and the general interrogation was completed successfully.

State of the DL layers

Via a variable of the type "internal state" (T00), COA 0 and IOA 1, you can read the state of the data link layer connection to the control. The variable refers to the data link layer and both connectionsof the redundancy if the secondary connection was defined in the driver configuration:

Bit | Description
Bit 0 | Connection state of the primary connection.
Bit 1 | Shows whether the primary connection is active (is used at the communication)
Bit 4 | Connection state of the secondary connection.
Bit 5 | Shows whether the secondary connection is active (is used at the communication)

Time stamp and status bits

The driver delivers the following bits received in the protocol telegram including the updated date/time stamps (UTC time):

  • _VSB_I_BIT
  • _VSB_OV_BIT
  • _VSB_BL_BIT
  • _VSB_SP_BIT
  • _VSB_NT_BIT

You can evaluate the information with the help of function blocks vsiGetBit, vsiGetDate and vsiGetTime.

If values with time information (CP24Time2a or CP56Tima2a) are received, the driver sets the status bit _VSB_RT_E. Otherwise the variabel receivs status bit _VSB_RT_I and a time stamp with the local time (PC clock).

The time information of type CP24Time2a contains only minutes, seconds and miliseconds. Date information (year, month, day) and information about the hour are not transferred. The driver uses the PC clock to complement the missing time information. If a CP24Time2a with a time difference of more than plus/minus 30 minutes is received, the driver corrects the time stamp automatically by one hour plus/minus. A change in date is also considered if necessary. The time stamps CP56Time2a are not affected.

On connection loss all status bits are set to zero execpt _VSB_I_BIT which is set to 1. The time stamp is set to 0.

straton redundancy

The driver at the passiv straton Runtime is not connected to the slave (control). It receives the image of the process values from the active Runtime. The driver only connects to the slave when the passive Runtime becomes the active Runtime. This means that the connection is automatically initialized and a general interrogation is sent.

Hardware redundancy

If the secondary connection was defined in the driver configuration, the driver can be set to redundant IP address in order to communicate with the slave. At this no general interrogation is sent. The switch between the two configured IP addresses only takes place if the current connection is faulty. If the primary connection is re-established, the secondary connection is still used in order to prevent unnecessary switching.

Function blocks

You can use the following fucntion blocks to send commands to the IEC60870 slave.

IEC60870_SELECT

Inputs:

Input | Description
ENABLE (BOOL) | Activating the command; reacts on rising flank.
CANCEL (BOOL) | Deactivating the Select; reacts to rising flank. Note: ENABLE must be FASLE.
SLAVEID (UDINT) | ID of the slave connection as set in the driver configuration.
TYPE (USINT) | Type ID (IEC60870 type identification).
COA (UINT) | Common Address of ASDU.
IOA (UDINT) | Information Object Address.
QUALIFIER (USINT) | Qualifier of Command or Qualifier of Interrogation.
VALUE (ANY) | Value.

Outputs:

Input | Description
PN (BOOL) | Positive/negative bit (P/N Bit as received from the slave); 1= negative.
COT (USINT) | Cause of transmission (as received from the slave).

IEC60870_EXEC (Execute)

Inputs:

Input | Description
ENABLE (BOOL) | Activating the command; reacts on rising flank.
SLAVEID (UDINT) | ID of the slave connection as set in the driver configuration.
TYPE (USINT) | Type ID (IEC60870 type identification)
COA (UINT) | Common Address of ASDU.
IOA (UDINT) | Information Object Address.
QUALIFIER (USINT) | Qualifier of Command or Qualifier of Interrogation.
VALUE (ANY) | Value.

Outputs:

Input | Description
PN (BOOL) | Positive/negative bit (P/N Bit as received from the slave); 1= negative.
COT (USINT) | Cause of transmission (as received from the slave).

By creating command execute with TYPE=100, QULIFIER=20 (VALUE=TRUE or FALSE), you can start a general interrogation manually. Via type identification 103, the time synchronisation is started.

attention Attention

Do not call more than one function block instance within the same COA, IOA and TYPE values set even when ENABLE=FALSE. Otherwise you cannot rely on function block outputs.

IEC60870_FTDIR (Directory listing)

Inputs:

Input | Description
ENABLE (BOOL) | Activating the command; reacts on rising flank.
CANCEL (BOOL) | Deactivating the Select; reacts to rising flank. Note: ENABLE must be FASLE. Therefore the driver does not expect additional F_DR_TA_1 protocol telegrams. The slave is not informed actively.
SLAVEID (UDINT) | ID of the slave connection as set in the driver configuration.
COA (UINT) | Common Address of ASDU.
IOA (UDINT) | Information Object Address.
NOF (UINT) | NOF according to IEC60870-5-101 7.2.6.33, e.g. 1 - transparent

Outputs:

Input

Description

STATUS (USINT)
  • 0: OK, closed
  • 1: error, closed
  • 2: in progress
  • 3: not initialized (unknown)

LISTING (STRING)

String variable in which the file list is written. The list is limited to 255 characters.

IEC60870_FTGET (File transfer)

Inputs:

Input | Description
ENABLE (BOOL) | Activating the command; reacts on rising flank.
CANCEL (BOOL) | Deactivating the Select; reacts to rising flank. Note: ENABLE must be FASLE. An active file transfer can be canceled. Thus the driver does not expect any other segments of the file and will not request another section of the file. The deactivation is however not sent to the control. The file whose transfer was canceled will not be saved.
SLAVEID (UDINT) | ID of the slave connection as set in the driver configuration.
COA (UINT) | Common Address of ASDU.
IOA (UDINT) | Information Object Address.
NOF (UINT) | NOF according to IEC60870-5-101 7.2.6.33, e.g. 1 - transparent

Outputs:

Input

Description

STATUS (USINT)
  • 0: OK, closed
  • 1: error, closed
  • 2: in progress
  • 3: not initialized (unknown)

attention Attention

A transfer of large files can increase Runtime calculation time and exceed the straton cycle when it was set too short.

IEC60870_FTDEL (Delete file)

Inputs:

Input | Description
ENABLE (BOOL) | Activating the command; reacts on rising flank.
CANCEL (BOOL) | Deactivating the Select; reacts to rising flank. Note: ENABLE must be FASLE. Thus the driver does not expect an acknowledgement from the slave. The slave is not informed actively.
SLAVEID (UDINT) | ID of the slave connection as set in the driver configuration.
COA (UINT) | Common Address of ASDU.
IOA (UDINT) | Information Object Address.
NOF (UINT) | NOF according to IEC60870-5-101 7.2.6.33, e.g. 1 - transparent

Outputs:

Input

Description

STATUS (USINT)
  • 0: OK, closed
  • 1: error, closed
  • 2: in progress
  • 3: not initialized (unknown)

The status of the current file transfer operation: DIR, GET or DEL is applied only to the outputs of the block which initiated the last operation.

Dans cette section

IEC60870 Master Interoperability


IEC60870 Master Interoperability

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> IEC 60870-5-101/104 Master configuration -> IEC60870 Master Interoperability

Previous chapter Next chapter Show all Show all Hide all Hide all

This companion standard presents sets of parameters and alternatives from which subsets must be selected to implement particular telecontrol systems. Certain parameter values, such as the choice of 'structured' or'unstructured' fields of the informationobject address of ASDUs represent mutually exclusive alternatives. This means that only one value of the defined parameters is admitted per system. Other parameters, such as the listed set of different process information incommand and in monitor direction allow the specification of the complete set orsubsets, as appropriate for given applications. This clause summarizes theparameters of the previous clauses to facilitate a suitable selection for aspecific application. If a system is composed of equipment stemming from different manufacturers, it is necessary that all partners agree on the selected parameters.

The interoperability list is defined as in IEC 60870-5-101 and extended with parameters used in this standard. The text descriptions of parameters which are not applicable to this companion standard are strike-through (corresponding check box is marked black).

NOTE In addition, the full specification of a system may require individual selection of certain parameters for certain parts of the system, such as the individual selection of scaling factors for individually addressable measured values.

The selected parameters should bemarked in the white boxes as follows:

[ ] Function or ASDU is not used
[ X ] Function or ASDU is used as standardized (default)
[ R ] Function or ASDU is used in reverse mode
[ B ] Function or ASDU is used in standard and reverse mode

The possible selection (blank, X , R , or B ) is specified for each specific clause or parameter.

A black check box indicates that the option cannot be selected in this companion standard.

1. System or device

(system-specific parameter, indicate definition of a system or a device by marking one of the following with ' X ')
[ ] System definition
[ X ] Controlling station definition (Master)
[ ] Controlled station definition (Slave)

2. Network Configuration

(network-specific parameter, all configurations that are used are to be marked ' X ') Configuration types
[ X ] Point-to-point | [ X ] Multipoint-partyline
[ X ] Multiple point-to-point | [ ] Multipoint-star

3. Physical Layer

(network-specific parameter, all interfaces and data rates that are used are to be marked ' X ')

Transmission speed (control direction)

Unbalanced interchange Circuit V.24/V.28 Standard | Unbalanced interchange Circuit V.24/V.28 Recommended if >1 200 bit/s | Balanced interchange Circuit X.24/X.27
[ X ] 100 bit/s | [ X ] 2400 bit/s | [ ] 2400 bit/s
[ X ] 200 bit/s | [ X ] 4800 bit/s | [ ] 4800 bit/s
[ X ] 300 bit/s | [ X ] 9600 bit/s | [ ] 9600 bit/s
[ X ] 600 bit/s |  | [ ] 19200 bit/s
[ X ] 1200 bit/s |  | [ ] 38400 bit/s
 |  | [ ] 56000 bit/s
 |  | [ ] 64000 bit/s

Transmission speed (monitor direction)

Unbalanced interchange Circuit V.24/V.28 Standard | Unbalanced interchange Circuit V.24/V.28 Recommended if >1 200 bit/s | Balanced interchange Circuit X.24/X.27
[ X ] 100 bit/s | [ X ] 2400 bit/s | [ ] 2400 bit/s
[ X ] 200 bit/s | [ X ] 4800 bit/s | [ ] 4800 bit/s
[ X ] 300 bit/s | [ X ] 9600 bit/s | [ ] 9600 bit/s
[ X ] 600 bit/s |  | [ ] 19200 bit/s
[ X ] 1200 bit/s |  | [ ] 38400 bit/s
 |  | [ ] 56000 bit/s
 |  | [ ] 64000 bit/s

4. Link layer

(network-specific parameter, all options that are used are to be marked ' X '. Specify the maximum frame length. If a non-standard assignment of class 2 messages is implemented for unbalanced transmission, indicate the Type ID and COT of all messages assigned to class 2.)
Frame format FT 1.2, single character 1 and the fixed time out interval are used exclusively in this companion standard.

Link transmission | Frame length | Address field of the link
[ ] Balanced transmission | [255] Maximum length L (number of octets) | [ ] not present (balanced transmission only)
[ X ] Unbalanced transmission |  | [ X ] One octet
 |  | [ X ] Two octets
 |  | [ X ] Structured
 |  | [ X ] Unstructured

When using an unbalanced link layer, the following ASDU types are returned in class 2 messages (low priority) with the indicated causes of transmission:

[ ] The standard assignment of ASDUs to class 2 messages is used as follows:

Type identification | Cause of transmission
9, 11, 13, 21 | <1>

[ ] A special assignment of ASDUs to class 2 messages is used as follows:

Type identification | Cause of transmission

Note: (In response to a class 2 poll, a controlled station may respond with class 1 data when there is no class 2 data available).

5. Application Layer

Transmission mode for application data

Mode 1 (Least significant octet first), as defined in 4.10 of IEC 60870-5-4, is used exclusively in this companion standard.

Common address of ASDU

(system-specific parameter, all configurations that are used are to be marked ' X ')

[ X ] One octet

[ X ] Two octets

Information object address

(system-specific parameter, all configurations that are used are to be marked ' X ')

[ X ] One octet | [ X ] Structured
[ X ] Two octets | [ X ] Unstructured
[ X ] Three octets |

Cause of transmission

(system-specific parameter, all configurations that are used are to be marked ' X ')

[ X ] One octet

[ X ] Two octets (with originator address).
Originator address is set to zero if not used

Length of APDU

(system-specific parameter, all configurations that are used are to be marked ' X ')
The maximum length of the APDU is 253 (default). The maximum length may be reduced by the system.

[ ] Maximum length of APDU per system

Selection of standard ASDUs
Process information in monitor direction

(station-specific parameter, mark each Type ID ' X ' if it is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ X ] <1> | := Single-point information | M_SP_NA_1
[ X ] <2> | := Single-point information with time tag | M_SP_TA_1
[ X ] <3> | := Double-point information | M_DP_NA_1
[ X ] <4> | := Double-point information with time tag | M_DP_TA_1
[ X ] <5> | := Step position information | M_ST_NA_1
[ X ] <6> | := Step position information with time tag | M_ST_TA_1
[ X ] <7> | := Bitstring of 32 bit | M_BO_NA_1
[ X ] <8> | := Bitstring of 32 bit with time tag | M_BO_TA_1
[ X ] <9> | := Measured value, normalized value | M_ME_NA_1
[ X ] <10> | := Measured value, normalized value with time tag | M_ME_TA_1
[ X ] <11> | := Measured value, scaled value | M_ME_NB_1
[ X ] <12> | := Measured value, scaled value with time tag | M_ME_TB_1
[ X ] <13> | := Measured value, short floating point value | M_ME_NC_1
[ X ] <14> | := Measured value, short floating point value with time tag | M_ME_TC_1
[ X ] <15> | := Integrated totals | M_IT_NA_1
[ X ] <16> | := Integrated totals with time tag | M_IT_TA_1
[ ] <17> | := Event of protection equipment with time tag | M_EP_TA_1
[ ] <18> | := Packed start events of protection equipment with time tag | M_EP_TB_1
[ ] <19> | := Packed output circuit information of protection equipment with time tag | M_EP_TC_1
[ ] <20> | := Packed single-point information with status change detection | M_SP_NA_1
[ ] <21> | := Measured value, normalized value without quality descriptor | M_ME_ND_1
[ X ] <30> | := Single-point information with time tag CP56Time2a | M_SP_TB_1
[ X ] <31> | := Double-point information with time tag CP56Time2a | M_DP_TB_1
[ X ] <32> | := Step position information with time tag CP56Time2a | M_ST_TB_1
[ X ] <33> | := Bitstring of 32 bit with time tag CP56Time2a | M_BO_TB_1
[ X ] <34> | := Measured value, normalized value with time tag CP56Time2a | M_ME_TD_1
[ X ] <35> | := Measured value, scaled value with time tag CP56Time2a | M_ME_TE_1
[ X ] <36> | := Measured value, short floating point value with time tag CP56Time2a | M_ME_TF_1
[ X ] <37> | := Integrated totals with time tag CP56Time2a | M_IT_TB_1
[ ] <38> | := Event of protection equipment with time tag CP56Time2a | M_EP_TD_1
[ ] <39> | := Packed start events of protection equipment with time tag CP56Time2a | M_EP_TE_1
[ ] <40> | := Packed output circuit information of protection equipment with time tag CP56Time2a | M_EP_TF_1

Either the ASDUs of the set <2>, <4>, <6>, <8>, <10>, <12>, <14>, <16>, <17>, <18>, <19> or of the set <30> – <40> are used.

Process information in control direction

(station-specific parameter, mark each Type ID ' X ' if it is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ X ] <45> | := Single command | C_SC_NA_1
[ X ] <46> | := Double command | C_DC_NA_1
[ X ] <47> | := Regulating step command | C_RC_NA_1
[ X ] <48> | := Set point command, normalized value | C_SE_NA_1
[ X ] <49> | := Set point command, scaled value | C_SE_NB_1
[ X ] <50> | := Set point command, short floating point value | C_SE_NC_1
[ X ] <51> | := Bitstring of 32 bit | C_BO_NA_1
[ X ] <58> | := Single command with time tag CP56Time2a | C_SC_TA_1
[ X ] <59> | := Double command with time tag CP56Time2a | C_DC_TA_1
[ X ] <60> | := Regulating step command with time tag CP56Time2a | C_RC_TA_1
[ X ] <61> | := Set point command, normalized value with time tag CP56Time2a | C_SE_TA_1
[ X ] <62> | := Set point command, scaled value with time tag CP56Time2a | C_SE_TB_1
[ X ] <63> | := Set point command, short floating point value with time tag CP56Time2a | C_SE_TC_1
[ X ] <64> | := Bitstring of 32 bit with time tag CP56Time2a | C_BO_TA_1

Either the ASDUs of the set <45> – <51> or of the set <58> – <64> are used.

System information in monitor direction

(station-specific parameter, mark ' X ' if used)

[ ] <70> | := End of initialization | M_EI_NA_1

System information in control direction

(station-specific parameter, mark each Type ID ' X ' if it is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ X ] <100> | := Interrogation command | C_IC_NA_1
[ ] <101> | := Counter interrogation command | C_CI_NA_1
[ ] <102> | := Read command | C_RD_NA_1
[ X ] <103> | := Clock synchronization command (option see 7.6). Only supported by zenon master. | C_CS_NA_1
[ ] <104> | := Test command | C_TS_NA_1
[ ] <105> | := Reset process command | C_RP_NA_1
[ ] <106> | := Delay acquisition command | C_CD_NA_1
[ ] <107> | := Test command with time tag CP56Time2a | C_TS_TA_1

Parameter in control direction

(station-specific parameter, mark each Type ID ' X ' if it is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ ] <110> | := Parameter of measured value, normalized value | P_ME_NA_1
[ ] <111> | := Parameter of measured value, scaled value | P_ME_NB_1
[ ] <112> | := Parameter of measured value, short floating point value | P_ME_NC_1
[ ] <113> | := Parameter activation | P_AC_NA_1

File transfer

(station-specific parameter, mark each Type ID ' X ' if it is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ X ] <120> | := File ready | F_FR_NA_1
[ X ] <121> | := Section ready | F_SR_NA_1
[ X ] <122> | := Call directory, select file, call file, call section | F_SC_NA_1
[ X ] <123> | := Last section, last segment | F_LS_NA_1
[ X ] <124> | := Ack file, ack section | F_AF_NA_1
[ X ] <125> | := Segment | F_SG_NA_1
[ B ] <126> | := Directory {blank or X, only available in monitor (standard) direction} | F_DR_TA_1

Type identifier and cause of transmission assignments

(station-specific parameters)

Shaded boxes: option not required.
Black boxes: option not permitted in this companion standard
Blank: functions or ASDU not used.

Mark Type Identification/Cause of transmission combinations:
' X ' if only used in the standard direction;
' R ' if only used in the reverse direction;
' B ' if used in both directions.

Type identification |  | Cause of transmission
 |  | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 20 to 36 | 37 to 41 | 44 | 45 | 46 | 47
<1> | M_SP_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<2> | M_SP_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<3> | M_DP_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<4> | M_DP_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<5> | M_ST_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<6> | M_ST_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<7> | M_BO_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<8> | M_BO_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<9> | M_ME_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<10> | M_ME_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<11> | M_ME_NB_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<12> | M_ME_TB_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<13> | M_ME_NC_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<14> | M_ME_TC_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<15> | M_IT_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<16> | M_IT_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<17> | M_EP_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<18> | M_EP_TB_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<19> | M_EP_TC_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<20> | M_PS_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<21> | M_ME_ND_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<30> | M_SP_TB_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<31> | M_DP_TB_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<32> | M_ST_TB_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<33> | M_BO_TB_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<34> | M_ME_TD_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<35> | M_ME_TE_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<36> | M_ME_TF_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<37> | M_IT_TB_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<38> | M_EP_TD_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<39> | M_EP_TE_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<40> | M_EP_TF_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<45> | C_SC_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<46> | C_DC_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<47> | C_RC_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<48> | C_SE_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<49> | C_SE_NB_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<50> | C_SE_NC_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<51> | C_BO_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<58> | C_SC_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<59> | C_DC_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<60> | C_RC_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<61> | C_SE_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<62> | C_SE_TB_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<63> | C_SE_TC_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<64> | C_BO_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<70> | M_EI_NA_1* |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<100> | C_IC_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<101> | C_CI_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<102> | C_RD_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<103> | C_CS_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<104> | C_TS_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<105> | C_RP_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<106> | C_CD_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<107> | C_TS_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<110> | P_ME_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<111> | P_ME_NB_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<112> | P_ME_NC_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<113> | P_AC_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<120> | F_FR_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<121> | F_SR_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<122> | F_SC_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<123> | F_LS_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<124> | F_AF_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<125> | F_SG_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<126> | F_DR_TA_1* |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
* Blank or X only

5. Basic application functions

Station initialization

(station-specific parameter, mark 'X' if function is used)

[ ] Remote initialization

Cyclic data transmission

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions)

[ X ] Cyclic data transmission

Read procedure

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions)

[ ] Read procedure

Spontaneous transmission

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions)

[ X ] Spontaneous transmission

Double transmission of information objects with cause of transmission spontaneous

(station-specific parameter, mark each information type ' X ' where both a Type ID without time and corresponding Type ID with time are issued in response to a single spontaneous change of a monitored object)

The following type identifications may be transmitted in succession caused by a single status change of an information object. The particular information object addresses for which double transmission is enabled are defined in a project-specific list.
[ ] Single-point information M_SP_NA_1, M_SP_TA_1, M_SP_TB_1 and M_PS_NA_1
[ ] Double-point information M_DP_NA_1, M_DP_TA_1 and M_DP_TB_1
[ ] Step position information M_ST_NA_1, M_ST_TA_1 and M_ST_TB_1
[ ] Bitstring of 32 bit M_BO_NA_1, M_BO_TA_1 and M_BO_TB_1 (if defined for a specific project)
[ ] Measured value, normalized value M_ME_NA_1, M_ME_TA_1, M_ME_ND_1 and M_ME_TD_1
[ ] Measured value, scaled value M_ME_NB_1, M_ME_TB_1 and M_ME_TE_1
[ ] Measured value, short floating point number M_ME_NC_1, M_ME_TC_1 and M_ME_TF_1

Station interrogation

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ X ] global |  |
[ ] group 1 | [ ] group 7 | [ ] group 13
[ ] group 2 | [ ] group 8 | [ ] group 14
[ ] group 3 | [ ] group 9 | [ ] group 15
[ ] group 4 | [ ] group 10 | [ ] group 16
[ ] group 5 | [ ] group 11 |
[ ] group 6 | [ ] group 12 | Information object addresses assigned to each group must be shown in a separate table.

Clock synchronization

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ X ] Clock synchronization
optional, see 7.6

Command transmission

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ X ] Direct command transmission
[ X ] Direct set point command transmission
[ X ] Select and execute command
[ X ] Select and execute set point command
[ ] C_SE ACTTERM used

[ X ] No additional definition
[ ] Short-pulse duration (duration determined by a system parameter in the outstation)
[ ] Long-pulse duration (duration determined by a system parameter in the outstation)
[ ] Persistent output

[ ] Supervision of maximum delay in command direction of commands and set point commands
[ ] Maximum allowable delay of commands and set point commands

Transmission of integrated totals

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ ] Mode A: Local freeze with spontaneous transmission
[ ] Mode B: Local freeze with counter interrogation
[ ] Mode C: Freeze and transmit by counter-interrogation commands
[ ] Mode D: Freeze by counter-interrogation command, frozen values reported spontaneously

[ ] Counter read
[ ] Counter freeze without reset
[ ] Counter freeze with reset
[ ] Counter reset

[ ] General request counter
[ ] Request counter group 1
[ ] Request counter group 2
[ ] Request counter group 3
[ ] Request counter group 4

Parameter loading

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ ] Threshold value
[ ] Smoothing factor
[ ] Low limit for transmission of measured values
[ ] High limit for transmission of measured values

Parameter activation

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ ] Act/deact of persistent cyclic or periodic transmission of the addressed object

Test procedure

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).
[ ] Test procedure

File transfer

(station-specific parameter, mark 'X' if function is used).
File transfer in monitor direction
[ X ] Transparent file
[ X ] Transmission of disturbance data of protection equipment
[ X ] Transmission of sequences of events
[ X ] Transmission of sequences of recorded analogue values

File transfer in control direction
[ ] Transparent file

Background scan

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).
[ ] Background scan

Acquisition of transmission delay

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ ] Acquisition of transmission delay
Definition of time outs

Parameter | Default value | Remarks | Selected value
t0 | 30s | Time-out of connection establishment |
t1 | 15s | Time-out of send or test APDUs |
t2 | 10s | Time-out for acknowledges in case of no data messages t2 < t1 |
t3 | 20s | Time-out for sending test frames in case of a long idle state |

Maximum range of values for all time-outs: 1 to 255 s, accuracy 1 s.

Maximum number of outstanding I format APDUs k and latest acknowledge APDUs (w)

Parameter | Default value | Remarks | Selected value
k | 12 APDUs | Maximum difference receive sequence number to send state variable |
w | 8 APDUs | Latest acknowledge after receiving w I format APDUs |

Maximum range of values k: 1 to 32767 (215–1) APDUs, accuracy 1 APDU
Maximum range of values w: 1 to 32767 APDUs, accuracy 1 APDU (Recommendation: w should not exceed two-thirds of k)

Portnumber

Parameter | Value | Remarks
Portnumber | 2404 | in all cases

RFC 2200 suite
RFC 2200 is an official Internet Standard which describes the state of standardization of protocols used in the Internet as determined by the Internet Architecture Board (IAB). It offers a broad spectrum of actual standards used in the Internet. The suitable selection of documents from RFC 2200 defined in this standard for given projects has to be chosen by the user of this standard.
[ ] Ethernet 802.3
[ ] Serial X.21 interface
[ ] Other selection from RFC 2200:

List of valid documents from RFC 2200
1. ..........................................................................
2. ..........................................................................
3. ..........................................................................
4. ..........................................................................
5. ..........................................................................
6. ..........................................................................
7. etc.


IEC 60870-5-101/104 Slave configuration

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> IEC 60870-5-101/104 Slave configuration

Previous chapter Next chapter Show all Show all Hide all Hide all

The workbench includes an integrated configurator for the IEC 60870-5 /101 and /104 slave protocols.

Port configuration

To establish the communication, run the Fieldbus configuration using File / Open / Fieldbus Configuration menu command from the main window. Then select Insert / Insert Configuration and select IEC 60870 Slave and click OK in the Add configuration window.

The configuration is represented as a tree:

- IEC 10870 Slave
- Connection (101 or 104)
- Device

When adding a connection point, you must specify the wished protocol (101 and 104) and cannot change it later.

Below are parameters for an IEC60870-5/101 connection:

Property | Description
Name | Free description text.
Port number | Number of the serial port used.
Baudrate | Communication baud rate.
Link address size | Size of the link address (bytes).

Below are parameters for an IEC60870-5/104 connection:

Property | Description
Name | Free description text.
Ethernet port | Ethernet port number (default is 2404)

Below are parameters for an IEC60870-5/101 device:

Property | Description
Name | Free description text.
Link address | IEC link address number.
Commands active | If this option is unchecked, commands will be denied.
APDU/data size | Maximum size of exchanged data.
Short pulse | Short pulse duration in milliseconds.
Long pulse | Long pulse duration in milliseconds.
File directory | Directory on the runtime for files transferred with 60870 protocol
CAOA size | Size of the common address (bytes).
COT size | Size of the type (bytes).
IOA size | Size of the object address (bytes).
Background scan time (ms) | Time used for IOs which are transferred using background scan. If 0, cyclic transfer is inactive independent of the setting at the variable.
Periodic time (ms) | Time used for IOs which are transferred cyclically.

Below are parameters for an IEC60870-5/104 device:

Property | Description
Name | Free description text.
Host IP | IP address of the connected host
Commands active | If this option is unchecked, commands will be denied.
APDU/data size | Maximum size of APDUs.
Short pulse | Short pulse duration in milliseconds.
Long pulse | Long pulse duration in milliseconds.
File directory | Directory on the runtime for files transferred with 60870 protocol
Background scan time (ms) | Time used for IOs which are transferred using background scan. If 0, cyclic transfer is inactive independent of the setting at the variable.
Periodic time (ms) | Time used for IOs which are transferred cyclically.

Variables configuration

Exchanged variables are not described in the fieldbus configuration, but using profiles. To map a variable to the IEC 60870-5 slave protocols, edit its properties using the Properties command of the context menu in the variable editor, and then select either the IEC60870S or the IEC60870S2 profile. Then you must specify the following properties for the variable:

IEC60870S

Property | Description
CAOA | Common address.
TID | Type identifier.
IOA | Object address.

The type of transfer is always spontaneous with this profile.

IEC60870S2

Property

Description

CAOA

Common address.

TID

Type identifier.

IOA

Object address.

TRFS

Type of transfer; available values are:

  • 0 - spontaneous
  • 1 - background scan
  • 2 - cyclic
  • 3 - off
  • 4 - spontaneous - values will be queued when master is offline

SOE

Sequence of event
The following settings define the IO-specific behavior for SOE:

  • Inactive: Data point is not used for SOE. Is automatically activated for all type IDs which do nor support SOE. It is used as the default value for a new IO.
  • All events: Each value or status change triggers writing to the open file. This settings is blocked if the type ID is not designed for SOE.
  • Raising edge: If the value changes from 0 to another value than 0, writing to the open file is triggerd. This settings is blocked if the type ID is not designed for SOE.
  • Falling edge: If the value chagnes to 0 from a value unlike 0, writing to the open file is triggerd. This settings is blocked if the type ID is not designed for SOE.
  • Raising + falling edge: If the changes from/to 0 from/to a value unlike 0, writing to the open file is triggerd. This settings is blocked if the type ID is not designed for SOE.

SOE_FT

Sequence of event file trigger
If because of the settings above a value should be written, a new file is created an opened unless it is not open yet. The trigger event is also written in the SOE file. This settings is blocked if the type ID is not designed for SOE.

New options for type ID

The followign options have been added:

  • [0]: Selecting 0 (internal state) is possible via the combo box
  • [58] - [64]: Commands with time tag.
  • [103]: Variable for activating/deactivating the time synchronization. If you create a variable with this type ID and it has the value TRUE, the time is taken over if a clock sync reqeust is received.

The use of these profiles apply to both the IEC 60870-5-101 and the 60870-5-104 slave protocols.

Data types

You can freely map a variable of any data type to the configuration. The runtime automatically converts the value to the type of the variable. STRING variables are not supported.

Variable status bit handling

For more information about status bit and time/date stamp handling please see this chapter: Variable status bits.

Slave node

The followign settings are availabel at the slave node (device settings for each master connection)

Parameter

Description

T0 time-out connection buildup [104]

Time period in ms in which a 104 LL connection must be established. The time period starts with the TCP connection buildup. If you enter 0, the check is deactivated.
Default: 30.

T1 time-out APDU acknowledge [104]

Time in ms after which an acknowledgement for an APDU is expected at the latest.

T2 time-out ACK without following data telegrams

Time in ms after which an acknowledgement is sent if a received APDU was not acknowledged implicitly by an outgoing APDU.

T3 time-out sending test APDUs

Time period in ms without communication after which a test frame is sent in order to check the connection.

K parameter [104]

Number of I-frames not yet acknowledged by the master.
Value range: 0 - 4294967295
Default: 12

W parameter [104]

Number of received I-frames after an acknowledgement was sent.
Value range: 0 - 4294967295
Default: 8

Master polling time-out (ms) [101]

Time in seconds in which the master must execute a request to the slave. If no request is executed, the connection is terminated.

Carry integrated totals

Select the transferring method for integrated totals. Ios of type:

  • 15 (M_IT_NA_1)
  • 16 (M_IT_TA_1)
  • 37 (M_IT_TB_1)

Reset is not supported. FRZ with reset creates a warning.
For mode A to D the IOs a requested immediately after connecting the master. The value change of the integrated totals IOs are managed in a separated buffer. It can buffer either 4 times the number of the integrated totals IOs or 2048 value changes what ever is larger.

  • With general interrogation:
  • Mode A - Local freeze with spontaneous transmission
  • Mode B - Local freeze with counter interrogation
  • Mode C - freeze and transmit by counter interrogation transmission of integrated totals commands
  • Mode D - freeze by counter interrogation comamnd, frozen values spontaneous

Use sequence of events

If you activate this option, SOE is active for the selected device. If you do not activate this option, all SOE settings at the IOs are ignored.
Default: inactive.

Buffered SOE files

If the set number of SOE files for the sector is reached in the directory, a spontaneous directory transfer is triggered (type ID "F_DT_TA_1"). If twice as many files are in the directory, the oldest file is deleted (ring buffer functionality).
Value rang: 1 - 1024
Default: 1024

Delete SOE files automatically

If you activate this option, as reaction for type ID "F_AF_NA_1" for a SOE file, the file is deleted.

Post trigger time-out (ms)

If no new ASDU is written in the file within this time period, the file is closed. The time period starts again every time an ASDU is written in the file.
Value range: 100 - 120000
Default: 1000

SOE file time-out (ms)

Maximum time which the file remains open. It is independent of the number of events.
Value range: 100 - 120000
Default: 5000

Error messages

Possible error messages during compiling:

Message | Description
Error - only one slave instance allowed | You tried to engineer more than one slave instance.
Error - only one 60870-5-101 device allowed | You tried to engineer more than one master connections with protocol 101.

Dans cette section

IEC 60870 Slave Interoperability


IEC 60870 Slave Interoperability

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> IEC 60870-5-101/104 Slave configuration -> IEC 60870 Slave Interoperability

Previous chapter Next chapter Show all Show all Hide all Hide all

This companion standard presents sets of parameters and alternatives from which subsets must be selected to implement particular telecontrol systems. Certain parameter values, such as the choice of 'structured' or'unstructured' fields of the informationobject address of ASDUs represent mutually exclusive alternatives. This means that only one value of the defined parameters is admitted per system. Other parameters, such as the listed set of different process information incommand and in monitor direction allow the specification of the complete set orsubsets, as appropriate for given applications. This clause summarizes theparameters of the previous clauses to facilitate a suitable selection for aspecific application. If a system is composed of equipment stemming from different manufacturers, it is necessary that all partners agree on the selected parameters.

The interoperability list is defined as in IEC 60870-5-101 and extended with parameters used in this standard. The text descriptions of parameters which are not applicable to this companion standard are strike-through (corresponding check box is marked black).

NOTE In addition, the full specification of a system may require individual selection of certain parameters for certain parts of the system, such as the individual selection of scaling factors for individually addressable measured values.

The selected parameters should bemarked in the white boxes as follows:

[ ] Function or ASDU is not used
[ X ] Function or ASDU is used as standardized (default)
[ R ] Function or ASDU is used in reverse mode
[ B ] Function or ASDU is used in standard and reverse mode

The possible selection (blank, X , R , or B ) is specified for each specific clause or parameter.

A black check box indicates that the option cannot be selected in this companion standard.

1. System or device

(system-specific parameter, indicate definition of a system or a device by marking one of the following with ' X ')

[ ] System definition
[ ] Controlling station definition (Master)
[ X ] Controlled station definition (Slave)

2. Network Configuration: 101 only

(network-specific parameter, all configurations that are used are to be marked ' X ')

[ X ] Point-to-point | [ X ] Multipoint
[ X ] Multiple point to point | [ ] Multipoint-star

3. Physical Layer: 101 only

(network-specific parameter, all interfaces and data rates that are used are to be marked ' X ')

Transmission speed (control direction)

Unbalanced interchange Circuit V.24/V.28 Standard | Unbalanced interchange Circuit V.24/V.28 Recommended if >1 200 bit/s | Balanced interchange Circuit X.24/X.27
[ ] 100 bit/s | [ X ] 2400 bit/s | [ ] 2400 bit/s
[ ] 200 bit/s | [ X ] 4800 bit/s | [ ] 4800 bit/s
[ X ] 300 bit/s | [ X ] 9600 bit/s | [ ] 9600 bit/s
[ X ] 600 bit/s | [ X ] 19200 bit/s | [ ] 19200 bit/s
[ X ] 1200 bit/s | [ X ] 38400 bit/s | [ ] 38400 bit/s
 | [ X ] 56000 bit/s | [ ] 56000 bit/s
 | [ X ] 57600 bit/s | [ ] 64000 bit/s
 | [ X ] 115200 bit/s |
 | [ X ] 128000 bit/s |
 | [ X ] 256000 bit/s |

Transmission speed (monitor direction)

Unbalanced interchange Circuit V.24/V.28 Standard | Unbalanced interchange Circuit V.24/V.28 Recommended if >1 200 bit/s | Balanced interchange Circuit X.24/X.27
[ ] 100 bit/s | [ X ] 2400 bit/s | [ ] 2400 bit/s
[ ] 200 bit/s | [ X ] 4800 bit/s | [ ] 4800 bit/s
[ X ] 300 bit/s | [ X ] 9600 bit/s | [ ] 9600 bit/s
[ X ] 600 bit/s | [ X ] 19200 bit/s | [ ] 19200 bit/s
[ X ] 1200 bit/s | [ X ] 38400 bit/s | [ ] 38400 bit/s
 | [ X ] 56000 bit/s | [ ] 56000 bit/s
 | [ X ] 57600 bit/s | [ ] 64000 bit/s
 | [ X ] 115200 bit/s |
 | [ X ] 128000 bit/s |
 | [ X ] 256000 bit/s |

4. Link layer: 101 only

(network-specific parameter, all options that are used are to be marked ' X '. Specify the maximum frame length. If a non-standard assignment of class 2 messages is implemented for unbalanced transmission, indicate the Type ID and COT of all messages assigned to class 2.)

Frame format FT 1.2, single character 1 and the fixed time out interval are used exclusively in this companion standard.

Link transmission | Frame length [octets] | Address field of the link
[ ] Balanced transmission | [255] Maximum length L (both directions)* | [ ] not present (balanced transmission only)
[ X ] Unbalanced transmission |  | [ X ] One octet
 |  | [ X ] Two octets
 |  | [ X ] Structured
 |  | [ X ] Unstructured

*may be reduced by the system

When using an unbalanced link layer, the following ASDU types are returned in class 2 messages (low priority) with the indicated causes of transmission:

[ ] The standard assignment of ASDUs to class 2 messages is used as follows:

Type identification | Cause of transmission
9, 11, 13, 21 | <1>

[ X ] A special assignment of ASDUs to class 2 messages is used as follows:

Type identification | Cause of transmission
120 - 126 | All (as specified in the standard)

Note: (In response to a class 2 poll, a controlled station may respond with class 1 data when there is no class 2 data available).

5. Application Layer

Transmission mode for application data

Mode 1 (Least significant octet first), as defined in 4.10 of IEC 60870-5-4, is used exclusively in this companion standard.

Common address of ASDU

(system-specific parameter, all configurations that are used are to be marked ' X ')

ASDU adress
[ X ] One octet | [ X ] Two octets

Information object address

(system-specific parameter, all configurations that are used are to be marked ' X ')

Object adress
[ X ] One octet | [ X ] Structured
[ X ] Two octets | [ X ] Unstructured
[ X ] Three octets |

Cause of transmission

(system-specific parameter, all configurations that are used are to be marked ' X ')

Cause of transmission
[ X ] One octet | [ X ] Two octets (with originator address) Originator address is set to zero if not used.

Length of APDU: 104 only

(system-specific parameter, specify the maximum length of the APDU per system)
The maximum length of APDU for both directions is 253. The maximum length may be reduced by the system.

[ 253 ] Maximum length of APDU per system

Selection of standard ASDUs

Process information in monitor direction

(station-specific parameter, mark each Type ID ' X ' if it is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

Mark | Parameter | Type
[ B ] | <1>: = Single-point information | M_SP_NA_1
[ B ] | <2>: = Single-point information with time tag | M_SP_TA_1
[ B ] | <3>: = Double-point information | M_DP_NA_1
[ B ] | <4>: = Double-point information with time tag | M_DP_TA_1
[ B ] | <5>: = Step position information | M_ST_NA_1
[ B ] | <6>: = Step position information with time tag | M_ST_TA_1
[ B ] | <7>: = Bitstring of 32 bit | M_BO_NA_1
[ B ] | <8>: = Bitstring of 32 bit with time tag | M_BO_TA_1
[ B ] | <9>: = Measured value, normalized value | M_ME_NA_1
[ B ] | <10>: = Measured value, normalized value with time tag | M_ME_TA_1
[ B ] | <11>: = Measured value, scaled value | M_ME_NB_1
[ B ] | <12>: = Measured value, scaled value with time tag | M_ME_TB_1
[ B ] | <13>: = Measured value, short floating point value | M_ME_NC_1
[ B ] | <14>: = Measured value, short floating point value with time tag | M_ME_TC_1
[ B ] | <15>: = Integrated totals | M_IT_NA_1
[ B ] | <16>: = Integrated totals with time tag | M_IT_TA_1
[ ] | <17>: = Event of protection equipment with time tag | M_EP_TA_1
[ ] | <18>: = Packed start events of protection equipment with time tag | M_EP_TB_1
[ ] | <19>: = Packed output circuit information of protection equipment with time tag | M_EP_TC_1
[ ] | <20>: = Packed single-point information with status change detection | M_SP_NA_1
[ ] | <21>: = Measured value, normalized value without quality descriptor | M_ME_ND_1
[ B ] | <30>: = Single-point information with time tag CP56Time2a | M_SP_TB_1
[ B ] | <31>: = Double-point information with time tag CP56Time2a | M_DP_TB_1
[ B ] | <32>: = Step position information with time tag CP56Time2a | M_ST_TB_1
[ B ] | <33>: = Bitstring of 32 bit with time tag CP56Time2a | M_BO_TB_1
[ B ] | <34>: = Measured value, normalized value with time tag CP56Time2a | M_ME_TD_1
[ B ] | <35>: = Measured value, scaled value with time tag CP56Time2a | M_ME_TE_1
[ B ] | <36>: = Measured value, short floating point value with time tag CP56Time2a | M_ME_TF_1
[ B ] | <37>: = Integrated totals with time tag CP56Time2a | M_IT_TB_1
[ ] | <38>: = Event of protection equipment with time tag CP56Time2a | M_EP_TD_1
[ ] | <39>: = Packed start events of protection equipment with time tag CP56Time2a | M_EP_TE_1
[ ] | <40>:= Packed output circuit information of protection equipment with time tag CP56Time2a | M_EP_TF_1

Either the ASDUs of the set <2>, <4>, <6>, <8>, <10>, <12>, <14>, <16>, <17>, <18>, <19> or of the set <30> – <40> are used.

Process information in control direction

(station-specific parameter, mark each Type ID ' X ' if it is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

Mark | Parameter | Type
[ X ] | <45>: = Single command | C_SC_NA_1
[ X ] | <46>: = Double command | C_DC_NA_1
[ X ] | <47>: = Regulating step command | C_RC_NA_1
[ X ] | <48>: = Set point command, normalized value | C_SE_NA_1
[ X ] | <49>: = Set point command, scaled value | C_SE_NB_1
[ X ] | <50>: = Set point command, short floating point value | C_SE_NC_1
[ X ] | <51>: = Bitstring of 32 bit | C_BO_NA_1
[ ] | <58>: = Single command with time tag CP56Time2a | C_SC_TA_1
[ ] | <59>: = Double command with time tag CP56Time2a | C_DC_TA_1
[ ] | <60>: = Regulating step command with time tag CP56Time2a | C_RC_TA_1
[ ] | <61>: = Set point command, normalized value with time tag CP56Time2a | C_SE_TA_1
[ ] | <62>: = Set point command, scaled value with time tag CP56Time2a | C_SE_TB_1
[ ] | <63>: = Set point command, short floating point value with time tag CP56Time2a | C_SE_TC_1
[ ] | <64>:= Bitstring of 32 bit with time tag CP56Time2a | C_BO_TA_1

Either the ASDUs of the set <45> – <51> or of the set <58> – <64> are used.

System information in monitor direction

(station-specific parameter, mark ' X ' if used)

Mark | Parameter | Type
[ X ] | <70> : = End of initialization | M_EI_NA_1

System information in control direction

(station-specific parameter, mark each Type ID ' X ' if it is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

Mark | Parameter | Type
[ X ] | <100>: = Interrogation command* | C_IC_NA_1
[ X ] | <101>: = Counter interrogation command | C_CI_NA_1
[ X ] | <102>: = Read command | C_RD_NA_1
[ ] | <103>: = Clock synchronization command (option see 7.6)* | C_CS_NA_1
[ ] | <104>: = Test command | C_TS_NA_1
[ X ] | <105>: = Reset process command | C_RP_NA_1
[ ] | <106>: = Delay acquisition command | C_CD_NA_1
[ ] | <107>: = Test command with time tag CP56Time2a | C_TS_TA_1

*also Broadcast (with Common Address of ASDU = 0xFF or 0xFFFF)

Parameter in control direction

(station-specific parameter, mark each Type ID ' X ' if it is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

Mark | Parameter | Type
[ ] | <110>: = Parameter of measured value, normalized value | P_ME_NA_1
[ ] | <111>: = Parameter of measured value, scaled value | P_ME_NB_1
[ ] | <112>: = Parameter of measured value, short floating point value | P_ME_NC_1
[ ] | <113>: = Parameter activation | P_AC_NA_1

File transfer

(station-specific parameter, mark each Type ID ' X ' if it is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

Mark | Parameter | Type
[ X ] | <120>: = File ready | F_FR_NA_1
[ X ] | <121>: = Section ready | F_SR_NA_1
[ X ] | <122>: = Call directory, select file, call file, call section | F_SC_NA_1
[ X ] | <123>: = Last section, last segment | F_LS_NA_1
[ X ] | <124>: = Ack file, ack section | F_AF_NA_1
[ X ] | <125>: = Segment | F_SG_NA_1
[ X ] | <126>: = Directory {blank or X, only available in monitor (standard) direction} | F_DR_TA_1

Type identifier and Cause of transmission assignments

(station-specific parameters)

Shaded boxes: option not required.
Blank: functions or ASDU not used.

Mark Type Identification/Cause of transmission combinations:
' X ' if only used in the standard direction;
' R ' if only used in the reverse direction;
' B ' if used in both directions.

Type identification |  | Cause of transmission
 |  | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 20 to 36 | 37 to 41 | 44 | 45 | 46 | 47
<1> | M_SP_NA_1 |  | B | B |  | X |  |  |  |  |  |  |  |  | X |  |  |  |  |
<2> | M_SP_TA_1 |  |  | B |  | X |  |  |  |  |  |  |  |  |  |  |  |  |  |
<3> | M_DP_NA_1 |  | B | B |  | X |  |  |  |  |  |  |  |  | X |  |  |  |  |
<4> | M_DP_TA_1 |  |  | B |  | X |  |  |  |  |  |  |  |  |  |  |  |  |  |
<5> | M_ST_NA_1 |  | B | B |  | X |  |  |  |  |  |  |  |  | X |  |  |  |  |
<6> | M_ST_TA_1 |  |  | B |  | X |  |  |  |  |  |  |  |  |  |  |  |  |  |
<7> | M_BO_NA_1 |  | B | B |  | X |  |  |  |  |  |  |  |  | X |  |  |  |  |
<8> | M_BO_TA_1 |  |  | B |  | X |  |  |  |  |  |  |  |  |  |  |  |  |  |
<9> | M_ME_NA_1 | B | B | B |  | X |  |  |  |  |  |  |  |  | X |  |  |  |  |
<10> | M_ME_TA_1 |  |  | B |  | X |  |  |  |  |  |  |  |  |  |  |  |  |  |
<11> | M_ME_NB_1 | B | B | B |  | X |  |  |  |  |  |  |  |  | X |  |  |  |  |
<12> | M_ME_TB_1 |  |  | B |  | X |  |  |  |  |  |  |  |  |  |  |  |  |  |
<13> | M_ME_NC_1 | B | B | B |  | X |  |  |  |  |  |  |  |  | X |  |  |  |  |
<14> | M_ME_TC_1 |  |  | B |  | X |  |  |  |  |  |  |  |  |  |  |  |  |  |
<15> | M_IT_NA_1 |  |  | B |  | X |  |  |  |  |  |  |  |  | X1 | X |  |  |  |
<16> | M_IT_TA_1 |  |  | B |  | X |  |  |  |  |  |  |  |  |  | X |  |  |  |
<17> | M_EP_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<18> | M_EP_TB_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<19> | M_EP_TC_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<20> | M_PS_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<21> | M_ME_ND_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<30> | M_SP_TB_1 |  |  | B |  | X |  |  |  |  |  |  |  |  |  |  |  |  |  |
<31> | M_DP_TB_1 |  |  | B |  | X |  |  |  |  |  |  |  |  |  |  |  |  |  |
<32> | M_ST_TB_1 |  |  | B |  | X |  |  |  |  |  |  |  |  |  |  |  |  |  |
<33> | M_BO_TB_1 |  |  | B |  | X |  |  |  |  |  |  |  |  |  |  |  |  |  |
<34> | M_ME_TD_1 |  |  | B |  | X |  |  |  |  |  |  |  |  |  |  |  |  |  |
<35> | M_ME_TE_1 |  |  | B |  | X |  |  |  |  |  |  |  |  |  |  |  |  |  |
<36> | M_ME_TF_1 |  |  | B |  | X |  |  |  |  |  |  |  |  |  |  |  |  |  |
<37> | M_IT_TB_1 |  |  | B |  | X |  |  |  |  |  |  |  |  |  | X |  |  |  |
<38> | M_EP_TD_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<39> | M_EP_TE_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<40> | M_EP_TF_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<45> | C_SC_NA_1 |  |  |  |  |  | X | X | X2 | X2 | X |  |  |  |  |  |  |  | X | X
<46> | C_DC_NA_1 |  |  |  |  |  | X | X | X2 | X2 | X |  |  |  |  |  |  |  | X | X
<47> | C_RC_NA_1 |  |  |  |  |  | X | X | X2 | X2 | X |  |  |  |  |  |  |  | X | X
<48> | C_SE_NA_1 |  |  |  |  |  | X | X | X2 | X2 | X |  |  |  |  |  |  |  | X | X
<49> | C_SE_NB_1 |  |  |  |  |  | X | X | X2 | X2 | X |  |  |  |  |  |  |  | X | X
<50> | C_SE_NC_1 |  |  |  |  |  | X | X | X2 | X2 | X |  |  |  |  |  |  |  | X | X
<51> | C_BO_NA_1 |  |  |  |  |  | X | X | X2 | X2 | X |  |  |  |  |  |  |  | X | X
<58> | C_SC_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<59> | C_DC_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<60> | C_RC_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<61> | C_SE_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<62> | C_SE_TB_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<63> | C_SE_TC_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<64> | C_BO_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<70> | M_EI_NA_1* |  |  |  | X |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<100> | C_IC_NA_1 |  |  |  |  |  | X | X | X | X | X |  |  |  |  |  |  |  | X |
<101> | C_CI_NA_1 |  |  |  |  |  | X | X |  |  | X |  |  |  |  |  |  |  | X |
<102> | C_RD_NA_1 |  |  |  |  | X |  |  |  |  |  |  |  |  |  |  |  | X | X | X
<103> | C_CS_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | X | X |
<104> | C_TS_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<105> | C_RP_NA_1 |  |  |  |  |  | X | X |  |  |  |  |  |  |  |  |  | X | X |
<106> | C_CD_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<107> | C_TS_TA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<110> | P_ME_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<111> | P_ME_NB_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<112> | P_ME_NC_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<113> | P_AC_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
<120> | F_FR_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  | X |  |  |  |  | X |
<121> | F_SR_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  | X |  |  |  |  | X |
<122> | F_SC_NA_1 |  |  |  |  | X |  |  |  |  |  |  |  | X |  |  |  | X | X |
<123> | F_LS_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  | X |  |  |  |  | X |
<124> | F_AF_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  | X |  |  |  | X | X |
<125> | F_SG_NA_1 |  |  |  |  |  |  |  |  |  |  |  |  | X |  |  |  |  | X |
<126> | F_DR_TA_1* |  |  | X |  | X |  |  |  |  |  |  |  |  |  |  |  |  |  |

* Blank or X only

1 Optional.

2 Slave confirms deactivations of write command (TI <45> ... <64>) but corresponding activation is already transferred to execution; actcon and actterm were already sent .

COT | Cause of Transmission |
<0> | not used |
<1> | periodic, cyclic | per/cyc
<2> | background scan | back
<3> | spontaneous | spont
<4> | initialized | init
<5> | request or requested | req
<6> | activation | act
<7> | activation confirmation | actcon
<8> | deactivation | deacts
<9> | deactivation confirmation | deactcon
<10> | activation termination | actterm
<11> | return information caused by a remote command | retrem
<12> | return information caused by a local command | retloc
<13> | file transfer | file
<14...19> | reserved |
<20> | interrogated by station interrogation | inrogen
<21...36> | interrogated by interrogation of the group 1..16 |
<37> | requested by general counter request | reqcogen
<38...41> | requested by counter interrogation of the group 1 ... 4 |
<42, 43> | reserved |
<44> | unknown type identification |
<45> | unknown cause of transmission |
<46> | unknown common address of ASDU |
<47> | unknown information object address |
<48, 63> | for special use (private range) |

6. Basic application functions

Station initialization

(station-specific parameter, mark 'X' if function is used)

[ ] Remote initialization

Cyclic data transmission

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions)

[ X ] Cyclic data transmission

Read procedure

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions)

[ X ] Read procedure

Spontaneous transmission

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions)

[ B ] Spontaneous transmission

Double transmission of information objects with cause of transmission spontaneous

(station-specific parameter, mark each information type ' X ' where both a Type ID without time and corresponding Type ID with time are issued in response to a single spontaneous change of a monitored object)

The following type identifications may be transmitted in succession caused by a single status change of an information object. The particular information object addresses for which double transmission is enabled are defined in a project-specific list.

[ ] Single-point information M_SP_NA_1, M_SP_TA_1, M_SP_TB_1 and M_PS_NA_1
[ ] Double-point information M_DP_NA_1, M_DP_TA_1 and M_DP_TB_1
[ ] Step position information M_ST_NA_1, M_ST_TA_1 and M_ST_TB_1
[ ] Bitstring of 32 bit M_BO_NA_1, M_BO_TA_1 and M_BO_TB_1 (if defined for a specific project)
[ ] Measured value, normalized value M_ME_NA_1, M_ME_TA_1, M_ME_ND_1 and M_ME_TD_1
[ ] Measured value, scaled value M_ME_NB_1, M_ME_TB_1 and M_ME_TE_1
[ ] Measured value, short floating point number M_ME_NC_1, M_ME_TC_1 and M_ME_TF_1

Station interrogation

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ X ] global |  |
[ ] group 1 | [ ] group 7 | [ ] group 13
[ ] group 2 | [ ] group 8 | [ ] group 14
[ ] group 3 | [ ] group 9 | [ ] group 15
[ ] group 4 | [ ] group 10 | [ ] group 16
[ ] group 5 | [ ] group 11 | Information object addresses assigned to each group must be shown in a separate table.
[ ] group 6 | [ ] group 12

Clock synchronization

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ ] Clock synchronization

[ ] Day of week used
[ ] RES1, GEN (time tag substituted/ not substituted) used
[ B ] SU-bit (summertime) used

optional, see 7.6

Command transmission

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ X ] Direct command transmission
[ X ] Direct set point command transmission
[ X ] Select and execute command
[ X ] Select and execute set point command
[ ] C_SE ACTTERM used

[ X ] No additional definition
[ X ] Short-pulse duration (duration determined by a system parameter in the outstation)
[ X ] Long-pulse duration (duration determined by a system parameter in the outstation)
[ X ] Persistent output

[ ] Supervision of maximum delay in command direction of commands and set point commands
[ ] Maximum allowable delay of commands and set point commands

Transmission of integrated totals

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ X ] Mode A: Local freeze with spontaneous transmission
[ X ] Mode B: Local freeze with counter interrogation
[ X ] Mode C: Freeze and transmit by counter-interrogation commands
[ X ] Mode D: Freeze by counter-interrogation command, frozen values reported spontaneously

[ X ] Counter read
[ X ] Counter freeze without reset
[ ] Counter freeze with reset
[ ] Counter reset

[ X ] General request counter
[ ] Request counter group 1
[ ] Request counter group 2
[ ] Request counter group 3
[ ] Request counter group 4

Parameter loading

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ ] Threshold value
[ ] Smoothing factor
[ ] Low limit for transmission of measured values
[ ] High limit for transmission of measured values

Parameter activation

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ ] Act/deact of persistent cyclic or periodic transmission of the addressed object

Test procedure

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ ] Test procedure

File transfer

(station-specific parameter, mark 'X' if function is used).
File transfer in monitor direction

[ X*] Transparent file
[ ] Transmission of disturbance data of protection equipment
[ X ] Transmission of sequences of events
[ ] Transmission of sequences of recorded analogue values

* a data can be transparently transported by the system but not generated or evaluated. Maximum file size is 16711680 bytes.

File transfer in control direction

[ ] Transparent file

Background scan

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ X ] Background scan

Acquisition of transmission delay

(station-specific parameter, mark ' X ' if function is only used in the standard direction, ' R ' if only used in the reverse direction, and ' B ' if used in both directions).

[ ] Acquisition of transmission delay

Definition of time outs: 104 only

Parameter | Default value | Remarks | Selected value
t0 | 30 s | Time-out of connection establishment | not fixed
t1 | 15 s | Time-out of send or test APDUs | not fixed
t2 | 10 s | Time-out for acknowledges in case of no data messages; t2 < t1 | not fixed
t3 | 20 s | Time-out for sending test frames in case of a long idle state; t3 > t1 | not fixed

Recommended range for timeouts t0 - t2 : 1s to 255s, accuracy 1s

Recommended range for timeout t3 : 0s to 48hrs, accuracy 1s
Long timeouts for t3 may be needed in special cases where satellite links or dialup connections are used (e.g. to establish connection and collect values only once per day or week). For dialup connections it may be necessary to give up the connection supervision completely. This is achievable by setting the timeout t3 to zero.

Maximum number of outstanding I format APDUs k and latest acknowledge APDUs (w): 104 only

Parameter | Default value | Remarks | Selected value
k | 12 APDUs | Maximum difference receive sequence number to send state variable | not fixed
w | 8 APDUs | Latest acknowledge after receiving w I format APDUs | not fixed

Recommended range of values k: 1 to 32767 (215–1) APDUs, accuracy 1 APDU

Recommended range of values w: 1 to 32767 APDUs, accuracy 1 APDU (Recommendation: w should not exceed two-thirds of k)

Portnumber: 104 only

Parameter | Default value | Remarks
Portnumber | 2404 | not fixed

Redundant connections

[ ] Number N of redundancy group connections used

RFC 2200 suite

RFC 2200 is an official Internet Standard which describes the state of standardization of protocols used in the Internet as determined by the Internet Architecture Board (IAB). It offers a broad spectrum of actual standards used in the Internet. The suitable selection of documents from RFC 2200 defined in this standard for given projects has to be chosen by the user of this standard.

[ ] Ethernet 802.3
[ ] Serial X.21 interface
[ ] Other selection from RFC 2200:

List of valid documents from RFC 2200
1. ..........................................................................
2. ..........................................................................
3. ..........................................................................
4. ..........................................................................
5. ..........................................................................
6. ..........................................................................
7. etc.


IEC 61850 Server including GOOSE

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> IEC 61850 Server including GOOSE

Previous chapter Next chapter Show all Show all Hide all Hide all

With the workbench, you have the possibility to configure an IEC 61850 server. GOOSE messages can also be configured as an option:

Port configuration

Start the configuration using the File / Open / Fieldbus Configuration menu command from the main window. Then select Insert / Insert Configuration and select IEC 61850 Server incl. GOOSE and press OK in the Add configuration window.

The configuration is represented in a single entry:

- IEC 61850 Server incl. GOOSE (Configuration)

The remaining parameters are defined in the profile (IEC61850S) of the variables.

The configuration entry has these properties:

Name | Description
Directory for file transfer | The IEC 61850 server supports the file transfer as described in Part 7-2 and 8-1 of the specification. To use the file transfer a valid path on the Runtime system must be entered for the File transfer directory property in the Fieldbus Configuration window.
Adapter identification | To use the GOOSE (generic object oriented substation event) model to exchange a wide range of possible common data organized by DataSets you have to enter the identification for the network card which should be used for send/receive of GOOSE messages in the Adapter identification property in the Fieldbus configuration window. With GOOSE, data that is represented in datasets can be replaced.
Max. number of saved BRCBs | This value defines the number of saved buffered reports. The oldest buffered report is overwritten when this value is overwritten. This value should be adjusted according the amount of available memory. Note that this value specifies the number of saved reports per BRCB. The value should therefore be reduced if several BRCBs are defined. Default value 1000

SCL file handling

Before the IEC 61850 server driver can be used in Runtime, it is necessary to have a suitable ICD (IED Capability Description) file. This file describes the environment of the device that is simulated in the IEC 61850 protocol. This file must meet the rules that are defined in the IEC 61850-6 standard and can be created with an SCL tool.

Function: Read variables from SCL file

If you right-click on the driver, you are shown the context menu, in which you can select the Read variable from SCL file function. With this function, you can create or update variables according to the object model of this file and read in SCL files from other GOOSE publishers.

attention Attention

This context menu must be used! There is no other way to the configuration of the corresponding data model.

With this command, a window is opened in which the server's own data model can be imported as a an SCL file. Further SCL files from partner IEDs that support GOOSE can be added.

In the Model tab, click on the Insert button to import an ICD file, which is used for the creation of the IEC 61850 model for the IEC 61850 server. Once the ICD file has been read in, all logical nodes, data objects and data attributes are displayed in a tree. You can now select the variables, which are then automatically created.

info Info

The IEC 61850 server always uses the complete object model that is defined in the ICD file. The attributes selected in the tree are then shown.

You can add ICD files of partner IEDs that can send GOOSE messages in the GOOSE tab. These attributes of control blocks are displayed in a tree and can be automatically displayed as variables.

The project can be compiled once the variables have been defined (Project / Compile project). Connect the workbench to Runtime and load the application in Runtime to start the device that simulates the IEC 61850 protocol. If Runtime does not start, check the log messages for possible errors in the configuration.

info Info

String variables that were imported via an SCL file always have a length of 255. The length must therefore be manually amended to the desired size; for example 128 for OCTET STRING64.

Variable configuration

IEC 60850 slave variables are not shown in the fieldbus configuration but in the variable list under the use of profiles. To show a variable on the IEC 61850 server protocol, its properties can be set using the Properties context menu command in the variable list with the selection of the IEC61850S profile. The following profile properties of the variable can be defined this way:

Name | Description
LogicalDevice | Name of the logical device [String]. Info: it is possible to use placeholder names in IED names. If you use the profile LogicalDevice property, for example %LD1% for the first device, the server takes the real names from the SCL file in Runtime. You can thus compile a straton project and use it for different machines, for example, by simply amending the SCL file. Note: If you use placeholders, the Read variables from SCL file function can no longer highlight variables that have already been imported.
LogicalNode | Name of the logical node [String]
DataObject | Name of the data object. Separate nested data objects with a . ('dot'). [String]
DataAttribute | Name of the data attribute. Separate sublevels of the data attribute with a . ('dot'). [String]
ControlObject | If set to true, this data object (data attribute is ignored) is used as a control model. The integer value of this variable is used as an indication. [BOOL]
GOOSEreception | Set to TRUE if this variable is a GOOSE reception value. [BOOL]

The mapping of an IEC 61850 attribute data type to a variable data type can be found here:

IEC 61850 data type | Variable data type
BOOLEAN | BOOL
INT8, INT16, INT24, INT32, INT128 | SINT, INT, DINT, LINT
INT8U, INT16U, INT24U, INT32U | USINT/BYTE, UINT/WORD, UDINT/DWORD
FLOAT32, FLOAT64 | REAL, LREAL
CODED ENUM (Dbpos, Quality) | UDINT oderr STRING
ENUMERATED (Enum, Check, Tcmd) | USINT/BYTE, UINT/WORD, UDINT/DWORD
Timestamp, EntryTime | LREAL
OCTET STRING (Octet64) | STRING
VISIBLE STRING (VisString32, VisString64, VisString255) | STRING
UNICODE STRING (Unicode255) | STRING

You also have the possibility to declare bit strings as STRING data types and represent bit strings as bit strings.

info Info

When CODED ENUM IEC 61850 types (quality: mapped to the communication protocol as a BIT-STRING) are mapped to an UDINT data type the resulting value contains the byte wise read data. Bit 0 of the BIT-STRING becomes to most significant bit of the least significant byte in the value, bit 7 of the BIT-STRING becomes to least significant bit of the least significant byte in the value, and so on. The last bit in BIT-STRING which is read is bit 31 and thus becomes to least significant bit of the most significant byte in the value. So for BIT-STRINGS with more than 32 bits the trailing bits will be ignored!

Examples:

  • A quality attribute with validity questionable and failure bits set (1100001000000) should be written as 194
    110000102 + (000000002 << 810) = 19410 (The three padding bits were also included)
  • A quality attribute with test bit set (0000000000010) should be written as 4096
    000000002 + (000100002 << 810) = 409610

The CODED ENUM IEC 61850 data type Dbpos (which is communication wise also a BIT-STRING) is here special treated and mapped according the following table:

Dbpos value | Value in application
Difference position (00) | 2
Off (01) | 0
On (10) | 1
Invalid (11) | 3

info Info

The variable names must be in line with IEC1131.
This means that they must have no more than 255 characters and can only consist of letters, numbers and underscores ('_'). If you try to create a variable with a name that does not correspond to this rule, you will receive an error message.

If you import variables, their name is automatically adapted to correspond to this standard. Each special character is replaced with an underscore ('_').

Global TimeQuality

To define TimeQuality in the straton program for all t attributes, an additional straton byte variable must be created in the IEC61850S profile. In the profile, the name of the LogicDevice must be entered and DataAttribute must be called TimeQuality. In addition, the ControlObject option must be activated.

The value of this variable is then used for all t attributes in the LogicalDevice.

Bit | Value | IEC61850-8-1, table 15 | Description
0 |  | Leap second known | Switch second
1 |  | Clock failure | Time incorrect
2 |  | Clock not synchronized | Time not synchronized
3-7 |  | Time accuracy of fractions of second | Time accuracy.
 | 00000 | 0 bit of accuracy | 0 bit accuracy (accuracy is limited to seconds)
 | 00001 | 1 bit of accuracy | 1-bit accuracy (accuracy is limited to 0.5 seconds)
 | 00010 | 2 bit of accuracy | 2-bit accuracy (accuracy is limited to 0.25 seconds)
 | 00011 | 3 bit of accuracy | 3-bit accuracy
 | 00100 - 11000 | Integer value of the number of bits of accuracy | Number of bits of accuracy; for example 01010 means 10 bit accuracy; i.e. 1 - 999 +/-1 milliseconds after the decimal point.
 | 11000 - 11110 | invalid | invalid
 | 11111 | Not specified | Not specified

Default: If the TimeQuality variable was not created, the driver uses the value 11111000b (cannot be defined). The accuracy is thus not limited.

Automatic update of the t and q attribute.

If you have not defined any t and/or q attributes for a data object in the straton project, its value is automatically updated when the attribute is changed as described in table 49 IEC61850-7-3 of the corresponding t or q attribute. If one or both of these attributes (t and/or q) exist in the project, they are not updated automatically. The person configuring the project must ensure that they are updated correctly.

There is a new function block, DT2UNIX (for PC_CE), to set attribute t, and UNIX2BINARYTIME to set attribute T.

Function block in the PC_CE node | Description
DT2UNIX | Converts time and date, which are shown as year, month, day, hour, minute, second, millisecond - local time or UTC or UTC and summer time if accepted locally - into UNIX time format with milliseconds as decimal places.
UNIX2DT | Is used for the reconversion to DT2UNIX.
UNIX2BINARYTIME | Converts UNIX time format into binary time format in accordance with IEC61850 standard.
BINARYTIME2UNIX | Converts binary time format into UNIX time format.

A binary time is is saved as a longer real time with days since 01/01/1984 as an integer part and and milliseconds since midnight as a fraction. The UNIX time stamp contains the seconds since 01/01/1970 as an integer part and the milliseconds as a fraction.

Variable status bits

For more information about status bit and time/date stamp handling please see this chapter: Variable status bits

info Info

The CD port driver is available for 32-bit and 64-bit systems. Please note that this if you install the driver on your system manually.

Dans cette section

Control model

GOOSE

File transfer

ACSI conformance statement


Control model

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> IEC 61850 Server including GOOSE -> Control model

Previous chapter Next chapter Show all Show all Hide all Hide all

The IEC 61850 Server handles the control model automatically according to current ctlModel attribute value. It means that by reception of an operate command the server transfers received ctlVal value into straton program and the client responds positive. By ctlModel=2 and 4, the server responds positive on a select command (and internally selects given Data Object) and the server makes deselect by receive of a cancel command. By ctlModel=3 and 4 after receive an operate command, the server sends additionally a positive terminate at the end. However, this automatically handling shall be used only for ctlModel=1.

If you do not want the server handles control model automatically (you want to implement negative responses) you must handle the control model in the straton program - you must program a control model state-machine for given Data Object.

To implement the control model state-machine, you must create in given Data Object an additional variable with active setting ControlObject in its properties (a variable in the straton program, not read from SCL-file). To do this create a variable with type INT and assign the IEC61850S profile from the variable properties by selecting properties from the drop-down list while right clicking on the desired variable.

After assigning the profile the values for LogicalDevice, LogicalNode and DataObject have to be filled with the contents matching the IEC 61850 data model. The value for the DataAttribute should be left empty, and the check box for Control\-Object has to be selected. When a client wants to control a value for which such a variable is defined, the IEC 61850 server will change this value to 99 (wants select), 199 (wants operate) or 299 (wants cancel). The program for your IEC 61850 device has to increment this value by one (results: 100 for select ok, 200 for operate ok, 300 for cancel ok) to indicate that the designated control request is acknowledged, where operate ok means that the control request has been forwarded to the physical device. After the control has been acknowledged by the physical device you have to set the value to 400 (operated ok) or any operate failure. If you want prohibit the client to control this object increment set the value to 1xx (select failed), 2xx (operate failed), 3xx (cancel failed) or 4xx (operated failed) where xx has to be filled with the error code from the table below with AdditionalCauseDiagnosis (AddCause, IEC61850-8-1), so the IEC 61850 Server can notify the client that this control is rejected. After a successful or canceled control operation the value will be set automatically to 0 by (and only by) the server.

Error | Error code
Not supported | 1
Blocked by switching hierarchy | 2
Select failed | 3
Invalid position | 4
Position reached | 5
Parameter change in execution | 6
Step limit | 7
Blocked by mode | 8
Blocked by process | 9
Blocked by interlocking | 10
Blocked by synchrocheck | 11
Command already in execution | 12
Blocked by health | 13
1 of n control | 14
Abortion by cancel | 15
Time limit over | 16
Abortion by trip | 17
Object not selected | 18

Here are the defines which can be used for copy&paste in the Global defines:

#define state_unselected 0

// select

#define state_wants_select 99

#define state_select_ok 100

#define state_select_not_supported 101

#define state_select_blocked_by_switching_hierarchy 102

#define state_select_select_failed 103

#define state_select_invalid_position 104

#define state_select_position_reached 105

#define state_select_parameter_change_in_execution 106

#define state_select_step_limit 107

#define state_select_blocked_by_mode 108

#define state_select_blocked_by_process 109

#define state_select_blocked_by_interlocking 110

#define state_select_blocked_by_synchrocheck 111

#define state_select_command_already_in_execution 112

#define state_select_blocked_by_health 113

#define state_select_1_of_n_control 114

#define state_select_abortion_by_cancel 115

#define state_select_time_limit_over 116

#define state_select_abortion_by_trip 117

#define state_select_object_not_selected 118

// operate

#define state_wants_operate 199

#define state_operate_ok 200

#define state_operate_not_supported 201

#define state_operate_blocked_by_switching_hierarchy 202

#define state_operate_select_failed 203

#define state_operate_invalid_position 204

#define state_operate_position_reached 205

#define state_operate_parameter_change_in_execution 206

#define state_operate_step_limit 207

#define state_operate_blocked_by_mode 208

#define state_operate_blocked_by_process 209

#define state_operate_blocked_by_interlocking 210

#define state_operate_blocked_by_synchrocheck 211

#define state_operate_command_already_in_execution 212

#define state_operate_blocked_by_health 213

#define state_operate_1_of_n_control 214

#define state_operate_abortion_by_cancel 215

#define state_operate_time_limit_over 216

#define state_operate_abortion_by_trip 217

#define state_operate_object_not_selected 218

// cancel

#define state_wants_cancel 299

#define state_cancel_ok 300

#define state_cancel_not_supported 301

#define state_cancel_blocked_by_switching_hierarchy 302

#define state_cancel_select_failed 303

#define state_cancel_invalid_position 304

#define state_cancel_position_reached 305

#define state_cancel_parameter_change_in_execution 306

#define state_cancel_step_limit 307

#define state_cancel_blocked_by_mode 308

#define state_cancel_blocked_by_process 309

#define state_cancel_blocked_by_interlocking 310

#define state_cancel_blocked_by_synchrocheck 311

#define state_cancel_command_already_in_execution 312

#define state_cancel_blocked_by_health 313

#define state_cancel_1_of_n_control 314

#define state_cancel_abortion_by_cancel 315

#define state_cancel_time_limit_over 316

#define state_cancel_abortion_by_trip 317

#define state_cancel_object_not_selected 318

// operated

#define state_operated_ok 400

#define state_operated_not_supported 401

#define state_operated_blocked_by_switching_hierarchy 402

#define state_operated_select_failed 403

#define state_operated_invalid_position 404

#define state_operated_position_reached 405

#define state_operated_parameter_change_in_execution 406

#define state_operated_step_limit 407

#define state_operated_blocked_by_mode 408

#define state_operated_blocked_by_process 409

#define state_operated_blocked_by_interlocking 410

#define state_operated_blocked_by_synchrocheck 411

#define state_operated_command_already_in_execution 412

#define state_operated_blocked_by_health 413

#define state_operated_1_of_n_control 414

#define state_operated_abortion_by_cancel 415

#define state_operated_time_limit_over 416

#define state_operated_abortion_by_trip 417

#define state_operated_object_not_selected 418


GOOSE

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> IEC 61850 Server including GOOSE -> GOOSE

Previous chapter Next chapter Show all Show all Hide all Hide all

To use the GOOSE (generic object oriented substation event) model to exchange of a wide range of possible common data organized by DataSets you have to enter the identification for the network card which should be used for send/receive of GOOSE messages in the Adapter identification property in the Fieldbus configuration window. To receive GOOSE messages from other IEDs the ICD files for these IEDs have to be added in the GOOSE tab. To do that you have to select the root GOOSE station node and click on the Append button. After that select the ICD file from the file dialog and a new tree node with the filename and all available GOOSE messages appears. For all the attributes checked in this tree a variable will be created and while running the server automatically will be updated by the server when a GOOSE message was received from such an IED.

For all GOOSE messages in sending direction the control blocks are automatically created by the Server with those values defined in the own IEC 61850 ICD and are activated on runtime startup. Currently all those values can be overridden by sending the proper instructions from a client.

Change repetition rate for GOOSE messages

Instead of the deafult repetition rate you can set a minimum and maximum time for the repetition rate using the SCL file. If you set a minimum and maximum time in the SCL file the repetition will follow the following pattern:

  • First two repetitions after the minimum time
  • then the maximum time is halved for each repetition as long as it is still larger than the minimum time
  • finally the maximum time is used for each repetition.

Example Example

Definition in the SCL file:

<?xml version="1.0" encoding="utf-8"?>

<SCL xmlns="http://www.iec.ch/61850/2003/SCL">

<Communication>

<SubNetwork name="StzNET1" type="8-MMS">

<ConnectedAP iedName="B3M11C1" apName="AP1" desc="AP Description">

<GSE ldInst="C1" cbName="GoCBiB" desc="">

<Address>

...

</Address>

<MinTime unit="s" multiplier="m">10</MinTime>

<MaxTime unit="s" multiplier="m">2000</MaxTime>

</GSE>

...


File transfer

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> IEC 61850 Server including GOOSE -> File transfer

Previous chapter Next chapter Show all Show all Hide all Hide all

The IEC 61850 server supports the file transfer as described in Part 7-2 and 8-1 of the specification. To use the file transfer a valid path on the Runtime system must be entered for the File transfer directory property in the Fieldbus Configuration window. If there was no value entered or the value doesn't correspond a valid path on the Runtime system, the file transfer will be automatically disabled by the server.

info Info

The client can request to delete files from the path on the Runtime file system. Therefore you should handle the files in this path carefully. Maybe you want to set some files the read-only status to avoid removing these.


ACSI conformance statement

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> IEC 61850 Server including GOOSE -> ACSI conformance statement

Previous chapter Next chapter Show all Show all Hide all Hide all

The ACSI service conformance statement of the IEC 61850 server is defined in the following table.

Service | Supported | Comments
Server |  |
ServerDirectory | yes |
Application association |  |
Associate | yes |
Abort | yes |
Release | yes |
Logical device |  |
LogicalDeviceDirectory | yes |
Logical node |  |
LogicalNodeDirectory | yes |
GetAllDataValues | yes |
Data |  |
GetDataValues | yes |
SetDataValues | yes |
GetDataDirectory | yes |
GetDataDefinition | yes |
Data set |  |
GetDataSetValues | yes |
SetDataSetValues | yes |
CreateDataSet | yes |
DeleteDataSet | yes |
GetDataSetDirectory | yes |
Substitution |  |
SetDataValues | no |
Setting group control |  |
SelectActiveSG | no |
SelectEditSG | no |
SetSGValues | no |
ConfirmEditSGValues | no |
GetSGValues | no |
GetSGCBValues | no |
Reporting |  |
Buffered report control block (BRCB) |  |
Report | yes |
GetBRCBValues | yes |
SetBRCBValues | yes |
Unbuffered report control block (URCB) |  |
Report | yes |
GetURCBValues | yes |
SetURCBValues | yes |
Logging |  |
Log control block |  |
GetLCBValues | no |
SetLCBValues | no |
Log |  |
QueryLogByTime | no |
QueryLogAfter | no |
GetLogStatusValues | no |
Generic substation event model (GSE) |  |
GOOSE-CONTROL-BLOCK |  |
SendGOOSEMessage | yes | Incoming GOOSE messages can be mapped to variables
GetGoReference | no |
GetGOOSEElementNumber | no |
GetGoCBValues | no |
SetGoCBValues | no |
GSSE-CONTROL-BLOCK |  |
SendGSSEMessage | no |
GetGsReference | no |
GetGSSEElementNumber | no |
GetGsCBValues | no |
SetGsCBValues | no |
Transmission of sampled value model (SVC) |  |
Multicast SVC |  |
SendMSVMessage | no |
GetMSVCBValues | no |
SetMSVCBValues | no |
Unicast SVC |  |
SendUSVMessage | no |
GetUSVCBValues | no |
SetUSVCBValues | no |
Control |  |
Select | yes |
SelectWithValue | yes |
Cancel | yes |
Operate | yes |
Command- Termination | yes |
TimeActivated-Operate | no |
File transfer |  |
GetFile | yes |
SetFile | no |
DeleteFile | yes |
GetFileAttributeValues | yes |
Time |  |
Time resolution of internal clock | no |
Time accuracy of internal clock | no |
Supported TimeStamp resolution | no |


IEC 61850 Client

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> IEC 61850 Client

Previous chapter Next chapter Show all Show all Hide all Hide all

The workbench includes a fully integrated configurator for IEC 61850 Client.

Data exchange - configuration

Run the configuration using the File / Open / Fieldbus Configuration menu command from the main window. Then select Insert / Insert Configuration and select IEC 61850 Client and press OK in the Add configuration window.

The configuration is represented as a tree in four levels:

- IEC 61850 Client (=Configuration)
- Server (=Master/Port)*
- Logical Device (=Slave/Data Block)*

- Variable/Path (=Variable)*

*) The items with this mark can appear several times in the configuration.

Configuration

IEC 61850 Client Properties

Name

Description

Directory for file transfer

When opening the node for the configuration the dialog for the settings for the driver configuration is opened. Here, the folder in which the files for the file transfer are written can be entered.

e.g.: C:\Temp

Run communication from within ….

If this option is activated, the driver runs synchronously. In doing so, the configuration of the PLC cycle time is applied. As a result of this, it is possible to react more quickly to changes. However this can have a negative effect on the PLC time.

If the option is not selected, the drive runs asynchronously in a cycle of 100ms (default).

Default: not active

Queue all value changes …

Activates a queue to save all stack values contained. This option prevents loss of data, because the processing of the queue is moved to the next cycle if a second variable value is found.

As soon as a value is received as a data point, this value and all subsequent values are cached and the following cycle is transferred.

Default: not active

orCat

Originator category. Possible settings are:

  • 1 - bay control
  • 2 - station control
  • 3 - remote control
  • 4 - automatic-bay
  • 5 - automatic-station
  • 6 - automatic-remote
  • 7 - maintenance

Default: 2 - station control

Server Properties

Name | Description
Name | Freely definable name of the server.
Server ID | ID Nummer of the servers Default value 0
IP address | IP address of the server to which you want connect Default value 0.0.0.0
Port | Port on which the connection will be established. Default value 102
Polling rate [ms] | You can define the update rate for every connection (in milliseconds) Default value 1000
Calling AP Title | Settings according to ISO 8650-1(ACSE) should not be used in standard cases. Default value 1.1.1.999
Calling AE Qualifier | Settings according to ISO 8650-1(ACSE) should not be used in standard cases. Default value 12
Called AP Title | Settings according to ISO 8650-1(ACSE) should not be used in standard cases. Default value 1.1.999.1.1
Called AE Qualifier | Settings according to ISO 8650-1(ACSE) should not be used in standard cases. Default value 12
Maximum URCBs | Maximum number of 'Unbuffered Reports' that will be activated. Default value 1
Use preconfigured TrgOps | Active: Trigger conditions that are defined in the IEC61850 server are used. The driver does not write the TrgOps attribute to the reporting control block during assignment. Inactive: Activate/deactivate TrgOps manually.
Use authentication | Activate this checkbox if you want to use authentication according to ISO 8650-1. With authentication, an authentication string is sent and and checks if the connection between the driver and the end device has been established.
Authentication parameters | If 'Use authentication' has been activated, you can enter the authentication string here. In doing so, please note that there is a length restriction of 55 characters in accordance with ISO 8327-1 session protocol.
IP address (redundant) | Alternative IP address. If the connection to the first IP address is not successful, a switch to the alternative IP address is made once the network waiting time has expired. The IP address is then used until the driver is restarted or the connection is unsuccessful. An attempt is then made to connect to the first IP address again.
Port (redundant) | Alternative IP port.
TrgOps data-change | Deactivate this option if the devices used do not support this trigger option. Default: active
TrgOps quality-change | Deactivate this option if the devices used do not support this trigger option. Default: active
TrgOps data-update | Deactivate this option if the devices used do not support this trigger option. Default: active
TrgOps Integrity | Deactivate this option if the devices used do not support this trigger option. Default: active
TrgOps general-interrogation | Deactivate this option if the devices used do not support this trigger option. Default: active

Context menu of Server (right click):

Name | Description
Read variables from SCL file | A dialog for selecting the SCL file opens. The user selects the file. After that the data model from the SCL file will be generated. After that the dialog for selecting the variables opens.
Read variables from server | The data model is read from the server. Therefore the settings of the server configuration are used. The user can select the variable via the following dialog.

The dialog shows the data model of the server. Variables already used in the configuration are shown bold. If the user unchecks variables selected in this dialog, the user must confirm this in the following box. The variable is then deleted in the configuration. Newly checked variables will be created in the configuration. A variable will be created if "Create variables in data base" is checked. The name of the variable consists of the full path within braces {}. The data type of the variable is defined through the type defined in the model. Via the tree it is possible to select/unselect underlying variables.

This is true for both context menu commands "Read variables from SCL file" and "Read variables from server".

Logical Device Properties

Name | Description
Logical device | Name of the logical device

Variable/Path Properties

Name | Description
Name | The variable is identified via its name.
Path | The path contains the path referring to the model starting with the logical device.

info Info

The variable names must be in line with IEC1131.
This means that they must have no more than 255 characters and can only consist of letters, numbers and underscores ('_'). If you try to create a variable with a name that does not correspond to this rule, you will receive an error message.

If you import variables, their name is automatically adapted to correspond to this standard. Each special character is replaced with an underscore ('_').

Data types

You can freely map a variable of any data type to a path. The runtime automatically converts the value to the type of the variable. It is also possible to declare strings as String data types.

Support of Redundancy

The passive runtime establishes a connection to the IEC 61850 server(s). This causes an immediate operation right after a redundancy switch.

Fault behavior:

If the driver cannot be loaded or an error occurs at connection establishment the runtime will be started in passive mode in any way. Error messages will be generated. When switching from passive to active the runtime tries again to start the driver. If this fails, the switch cannot be executed.

Variable status bits

For more information about status bit and time/date stamp handling please see this chapter: Variable status bits

Additional status bits that are waited for by the driver

Number | Name | Description
17 | _VSB_SPONT | Spontaneous
18 | _VSB_I_BIT | invalid
21 | _VSB_RT_E | real time external
22 | _VSB_RT_I | real time internal
44 | _VSB_BL_BIT | IEC status: blocked
45 | _VSB_SP_BIT | IEC status: substituted
47 | _VSB_OV_BIT | IEC status: overflow
49 | _VSB_TINVAL_BIT | IEC status: time invalid

function blocks

IEC61850_OPER

Inputs

Input | Type | Description
ENABLE | BOOL | Flank control to execute the command. Attention: The command is only carried out if the last command has been completed. A command is completed if the output STATUS is not equal to 0.
SERVERID | UDINT | ID of the servers
PATH | STRING | Path (without server name), for example 'GEDeviceF650/XCBR1/Pos/Oper.ctlVal[CO]'
CHECK | USINT | IEC61850 check attribute, 0, 1, 2, 3
VALUE | ANY | Value; can be any data type.

Outputs

Output

Type

Description

STATUS

UDINT

Status of the last command written:

  • 0 = BUSY
  • 1 = DONE
  • 2 = ERROR

RESULT

DINT

If > 0, IEC61850 Add Cause (for commands only).

If < 0, internal error code:

  • -1 = VALUE parameter invalid
  • -2 = driver not loaded
  • -3 = write command cannot be written (invalid SERVERID for example)

IEC61850_SELECT (Select)

Inputs

Input | Type | Description
ENABLE | BOOL | Flank control to execute the command. Attention: The command is only carried out if the last command has been completed. A command is completed if the output STATUS is not equal to 0.
SERVERID | UDINT | ID of the servers
PATH | STRING | Path (without server name), for example 'GEDeviceF650/XCBR1/Pos/Oper.ctlVal[CO]'
CHECK | USINT | IEC61850 check attribute, 0, 1, 2, 3
VALUE | ANY | Value; can be any data type.

Outputs

Output

Type

Description

STATUS

UDINT

Status of the last command written:

  • 0 = BUSY
  • 1 = DONE
  • 2 = ERROR

RESULT

DINT

If > 0, IEC61850 Add Cause (for commands only).

If < 0, internal error code:

  • -1 = VALUE parameter invalid
  • -2 = driver not loaded
  • -3 = write command cannot be written (invalid SERVERID for example)

IEC61850_CANCEL (Cancel)

Inputs

Input | Type | Description
ENABLE | BOOL | Flank control to execute the command. Attention: The command is only carried out if the last command has been completed. A command is completed if the output STATUS is not equal to 0.
SERVERID | UDINT | ID of the servers
PATH | STRING | Path (without server name), for example 'GEDeviceF650/XCBR1/Pos/Oper.ctlVal[CO]'

Outputs

Output

Type

Description

STATUS

UDINT

Status of the last command written:

  • 0 = BUSY
  • 1 = DONE
  • 2 = ERROR

RESULT

DINT

If > 0, IEC61850 Add Cause (for commands only).

If < 0, internal error code:

  • -1 = VALUE parameter invalid
  • -2 = driver not loaded
  • -3 = write command cannot be written (invalid SERVERID for example)

RCB assignment

Assignment of buffered and unbuffered report control clocks using their names is possible in the LLN0 and in all other available logical nodes.

Dans cette section

Description of the Functional Constraints

Abbreviations for data object/data attribute

Conformance statement

IEC 61850 Client Functions


Description of the Functional Constraints

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> IEC 61850 Client -> Description of the Functional Constraints

Previous chapter Next chapter Show all Show all Hide all Hide all

Description of the ‘Functional Constraints’ (FCs):

FC | Semantics | Description
ST | Status information | represents a status information whose value may be read, substituted, reported, and logged but can not be written.
MX | Measurands (analogue values) | represents a measurand information whose value may be read, substituted, reported, and logged but can not be written.
CO | Control | represents a control information whose value may be operated (control model) and read.
SP | Setpoint | represent a set-point information whose value may be controlled (control model) and read.
SV | Substitution | represents a substitution information whose value may be written to substitute the value attribute and read.
CF | Configuration | represents a configuration information whose value may be written and read.
DC | Description | represents a description information whose value may be written and read
EX | Extended definition | represents an extension information providing a reference to a name space. Extensions are used in conjunction with extended definitions of LNs, DATA, and DataAttributes in 61850-7-3 and IEC 61850- 7-4. Value may be read.


Abbreviations for data object/data attribute

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> IEC 61850 Client -> Abbreviations for data object/data attribute

Previous chapter Next chapter Show all Show all Hide all Hide all

Abbreviations for data object/data attribute

Term | Description
f | floating point (analog value)
i | integer (analog value)
d | Visible String(255)
q | Quality
t | Timestamp
A | Current
Acs | Access
ACSI | Abstract Communication Service Interface
Acu | Acoustic
Age | Ageing
Alm | Alarm
Amp | Current non phase related
To | Analogue
Ang | Angle
Auth | Authorization
Auto | Automatic
Aux | Auxiliary
Av | Average
B | Bushing
Bat | Battery
Beh | Behavior
Bin | Binary
Blk | Block, blocked
Bnd | Band
Bo | Bottom
Cancel | Cancel
Cap | Capability
Capac | Capacitance
Car | Carrier
CB | Circuit Breaker
CDC | Common Data Class
CE | Cooling Equipment
Cf | Crest factor
Cfg | Configuration
CG | Core Ground
Ch | Channel
Cha | Charger
Chg | Change
Chk | Check
Chr | Characteristic
Cir | Circulating
Clc | Calculate
Clk | Clock, clockwise
Cls | Close
Cnt | Counter
Col | Coil
Cor | Correction
Crd | Coordination
Crv | Curve
CT | Current Transducer
Ctl | Control
Ctr | Center
Cyc | Cycle
Dea | Dead
Den | Density
Det | Detected
DExt | De-excitation
Diag | Diagnostics
Dif | Differential, difference
Dir | Direction
Dis | Distance
Dl | Delay
Dlt | Delete
Dmd | Demand
Dn | Down
DPCSO | Double point controllable status output
DQ0 | Direct, Quadrature, and zero axis quantities
Drag | Drag hand
Drv | Drive
DS | Device State
Dsch | Discharge
Dur | Duration
EC | Earth Coil
EE | External Equipment
EF | Earth Fault
Ena | Enabled
Eq | Equalization, Equal
Ev | Evaluation
Ex | External
Exc | Exceeded
Excl | Exclusion
Ext | Excitation
FA | Fault Arc
Fact | Factor
Fan | Fan
Flt | Fault
Flw | Flow
FPF | Forward Power Flow
Fu | Fuse
Fwd | Forward
Gen | General
Gn | Generator
Gnd | Ground
Gr | Group
Grd | Guard
Gri | Grid
H | Harmonics (phase related)
H2 | Hydrogen
H2O | Water
Ha | Harmonics (non phase related)
Hi | High, highest
HP | Hot point
Hz | Frequency
IEEE | Institute of Electrical and Electronic Engineers
Imb | Imbalance
Imp | Impedance non phase related
In | Input
Ina | Inactivity
Incr | Increment
Ind | Indication
Inh | Inhibit
Ins | Insulation
Int | Integer
ISCSO | Integer status controllable status output
Km | Kilometer
L | Lower
LD | Logical Device
LDC | Line Drop Compensation
LDCR | Line Drop Compensation Resistance
LDCX | Line Drop Compensation Reactance
LDCZ | Line Drop Compensation Impedance
LED | Light Emitting Diode
Len | Length
Lev | Level
Lg | Lag
Lim | Limit
Lin | Line
Liv | Live
Lo | Low
LO | Lockout
Loc | Local
Lod | Load, loading
Lok | Locked
Los | Loss
Lst | List
LTC | Load Tap Changer
M | minutes
M/O | Data Object is Mandatory or Optional
Max | Maximum
Mem | Memory
Min | Minimum
Mod | Mode
Mot | Motor
Ms | Milliseconds
Mst | Moisture
MT | Main Tank
N | Neutral
Nam | Name
Net | Net sum
Ng | Negative
Nom | Nominal, Normalizing
Num | Number
Ofs | Offset
Op | Operate, Operating
Oper | Operate*
Opn | Open
Out | Output
Ov | Over, Override, Overflow
Pa | Partial
Par | Parallel
Pct | Percent
Per | Periodic
PF | Power Factor
Ph | Phase
Phy | Physical
Pls | Pulse
Plt | Plate
Pmp | Pump
Po | Polar
Pol | Polarizing
Pos | Position
POW | Point on wave switching
PP | Phase to phase
PPV | Phase to phase voltage
Pres | Pressure
Prg | Progress, in progress
Pri | Primary
Pro | Protection
Ps | Positive
Pst | Post
Pwr | Power
Qty | Quantity
R | Raise
R0 | Zero sequence resistance
R1 | Positive sequence resistance
Rat | Winding ratio
Rcd | Record, recording
Rch | Reach
Rcl | Reclaim
Re | Retry
React | Reactance; Reactive
Rec | Reclose
Red | Reduction
Rel | Release
Rem | Remote
Res | Residual
Ris | Resistance
Rl | Relation, relative
Rms | Root mean square
Rot | Rotation, Rotor
Rs | Reset, Resetable
Rsl | Result
Rst | Restraint
Rsv | Reserve
Rte | Rate
Rtg | Rating
Rv | Reverse
Rx | Receive, received
S1 | Step one
S2 | Step two
SBO | Select before operate*
SBOw | Select with value*
Sch | Scheme
SCO | Supply change over
SCSM | Specific Communication Service Mapping
Sec | Security
Seq | Sequence
Set | Setting
Sh | Shunt
Spd | Speed
SPl | Single Pole
SPCSO | Single point controllable status output
Src | Source
St | Status
Stat | Statistics
Stop | Stop
Std | Standard
Str | Start
Sup | Supply
Svc | Service
Sw | Switch
Swg | Swing
Syn | Synchronization
Tap | Tap
Td | Total distortion
Tdf | Transformer derating factor
Test | Test
Thd | Total Harmonic Distortion
Thm | Thermal
TiF | Telephone influence factor
Tm | Time
 | • Tmh = Time in h
 | • Tmm = Time in min
 | • Tms = Time in s
 | • Tmms = Time in ms
Tmp | Temperature (°C)
To | Top
Tot | Total
TP | Three pole
Tr | Trip
Trg | Trigger
Ts | Total signed
Tu | Total unsigned
Tx | Transmit, transmitted
Typ | Type
Un | Under
V | Voltage
VA | Volt Amperes
Vac | Vacuum
Val | Value
VAr | Volt Amperes Reactive
Vlv | Valve
Vol | Voltage non phase related
VT | Voltage Transducer
W | Active Power
Wac | Watchdog
Watt | Active Power non phase related
Wei | Weak End Infeed
Wh | Watt hours
Wid | Width
Win | Window
Wrm | Warm
X0 | Zero sequence reactance
X1 | Positive sequence reactance
Z | Impedance
Z0 | Zero sequence impedance
Z1 | Positive sequence impedance
Zer | Zero
Zn | Zone
Zro | Zero sequence method

* SBO,SBOw,Oper, and Cancel: defined in IEC 61850-8-1:

Data attribute name | Semantics
SBO | Select – returns ACSI name of control
SBOw | SelectWithValue – receives service parameters
Oper | Operate – receives service parameters and control values
Cancel | Cancel – receives service parameters and control values


Conformance statement

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> IEC 61850 Client -> Conformance statement

Previous chapter Next chapter Show all Show all Hide all Hide all

Basic ACSI conformance statement

 |  | Client / subscriber | Server / publisher | Value / comments
Client-server roles
B11 | Server side (of TWO-PARTY-APPLICATION-ASSOCIATION) | - | C1 |
B12 | Client side of (TWO-PARTY-APPLICATION-ASSOCIATION) | C1 | - | supported
SCSMs supported
B21 | SCSM: IEC 61850-8-1 used |  |  | supported
B22 | SCSM: IEC 61850-9-1 used |  |  |
B23 | SCSM: IEC 61850-9-2 used |  |  |
B24 | SCSM: other |  |  |
Generic substation event model (GSE)
B31 | Publisher side | - | O |
B32 | Subscriber side | O | - | not supported
Transmission of sampled value model (SVC)
B41 | Publisher side | - | O |
B42 | Subscriber side | O | - | not supported
C1 – shall be 'M' if support for LOGICAL-DEVICE model has been declared. O – Optional M – Mandatory

ACSI models conformance statement

 |  | Client / subscriber | Server / publisher | Value / comments
If Server side (B11) is supported
M1 | Logical device | C2 | C2 |
M2 | Logical node | C3 | C3 |
M3 | Data | C4 | C4 |
M4 | Data set | O | O |
M5 | Substitution | O | O |
Reporting
M7 | Buffered report control | O | O |
M7-1 | sequence-number |  |  |
M7-2 | report-time-stamp |  |  |
M7-3 | reason-for-inclusion |  |  |
M7-4 | data-set-name |  |  |
M7-5 | data-reference |  |  |
M7-6 | buffer-overflow |  |  |
M7-7 | entryID |  |  |
M7-8 | BufIm |  |  |
M7-9 | IntgPd |  |  |
M7-10 | GI |  |  |
M8 | Unbuffered report control | O | O |
M8-1 | sequence-number |  |  |
M8-2 | report-time-stamp |  |  |
M8-3 | reason-for-inclusion |  |  |
M8-4 | data-set-name |  |  |
M8-5 | data-reference |  |  |
M8-6 | BufIm |  |  |
M8-7 | IntgPd |  |  |
M8-8 | GI |  |  |
Logging
M9 | Log control | O | O |
M9-1 | IntgPd |  |  |
M10 | Log | O | O |
M11 | Control | M | M |
If GSE (B31/B23) is supported
 | GOOSE | O | O |
M12-1 | entry-ID |  |  |
M12-2 | DataRefInc |  |  |
M13 | GSSE | O | O |
 |  | Client / subscriber | Server / publisher | Value / comments
If SVC (B41/B42) is supported
M14 | Multicast SVC | O | O |
M15 | Unicast SVC | O | O |
M16 | Time | M | M | Time source with required accuracy shall be available
M17 | File Transfer | O | O |
C2 – shall be 'M' if support for LOGICAL-NODE model has been declared C3 – shall be 'M' if support for DATA model has been declared C4 – shall be 'M' if support for DATA-SET, substitution, Report, Log-Control, or Time model has been declared C5 – shall be 'M' if support for Report, GSE, or SV models has been declared M – Mandatory O - Optional

ACSI service conformance statement

ACSI Service Conformance |  | AA: TP/MC | Client / subscriber | Server / publisher | Comments
Server (Clause 6)
S1 | ServerDirectory | TP |  | M |
Application association (Clause 7)
S2 | Associate |  | M | M | supported
S3 | Abort |  | M | M | supported
S4 | Release |  | M | M | supported
Logical device (Clause 8)
S5 | LogicalDeviceDirectory | TP | M | M | supported
Logical node (Clause 9)
S6 | LogicalNodeDirectory | TP | M | M | supported
S7 | GetAllDataValues | TP | O | M | not supported
Data (Clause 10)
S8 | GetDataValues | TP | M | M | supported
S9 | SetDataValues | TP | O | O | supported
S10 | GetDataDirectory | TP | O | M | supported
S11 | GetDataDefinition | TP | O | M | not supported
Data set (Clause 11)
S12 | GetDataSetValues | TP | O | M | not supported
S13 | SetDataSetValues | TP | O | O | not supported
S14 | CreateDataSet | TP | O | O | not supported
S15 | DeleteDataSet | TP | O | O | not supported
S16 | GetDataSetDirectory | TP | O | O | supported
Substitution (Clause 12)
S17 | SetDataValues | TP | M | M | supported
Setting group control (Clause 13)
S18 | SelectActiveSG | TP | O | O | not supported
S19 | SelectEditSG | TP | O | O | not supported
S20 | SetSGValues | TP | O | O | not supported
S21 | ConfirmEditSGValues | TP | O | O | not supported
S22 | GetSGValues | TP | O | O | not supported
S23 | GetSGCBValues | TP | O | O | not supported
Reporting (Clause 14)
Buffered report control block (BRCB)
S24 | Report | TP | C6 | C6 | supported
S24-1 | data-change (dchg) |  |  |  |
S24-2 | qchg-change (qchg) |  |  |  |
S24-3 | data-update (dupd) |  |  |  |
S25 | GetBRCBValues | TP | C6 | C6 | supported
S26 | SetBRCBValues | TP | C6 | C6 | supported
Unbuffered report control block (URCB)
S27 | Report | TP | C6 | C6 | supported
S27-1 | data-change (dchg) |  |  |  |
S27-2 | qchg-change (qchg) |  |  |  |
S27-3 | data-update (dupd) |  |  |  |
S28 | GetURCBValues | TP | C6 | C6 | supported
S29 | SetURBCValues | TP | C6 | C6 | supported
C6 - shall declare support for at least one (BRCB or URCB)
Logging (Clause 14)
Log control block
S30 | GetLCBValues | TP | M | M | not supported
S31 | SetLCBValues | TP | O | M | not supported
Log
S32 | QueryLogByTime | TP | C7 | M | not supported
S33 | QueryLogAfter | TP | C7 | M | not supported
S34 | GetLogStatusValues | TP | M | M | not supported
C7 – shall declare support for at least one (QueryLogByTime or QueryLogAfter)

ACSI Service Conformance |  | AA: TP/MC | Client/ subscriber | Server/ publisher | Comments
Generic substation event model (GSE) (Clause 14.3.5.3.4)
GOOSE-CONTROL-BLOCK
S35 | SendGOOSEMessage | MC | C8 | C8 | not supported
S36 | GetGoReference | TP | O | C9 | not supported
S37 | GetGOOSEElementNumber | TP | O | C9 | not supported
S38 | GetGoCBValues | TP | O | O | not supported
S39 | SetGoCBValues | TP | O | O | not supported
GSSE-CONTROL-BLOCK
S40 | SendGSSEMessage | MC | C8 | C8 | not supported
S41 | GetGsReference | TP | O | C9 | not supported
S42 | GetGSSEElementNumber | TP | O | C9 | not supported
S43 | GetGsCBValues | TP | O | O | not supported
S44 | SetGsCBValues | TP | O | O | not supported
C-8 shall declare support for at least one (SendGOOSEMessage or SendGSSEMessage) C-9 shall declare support if TP association is available
Transmission of sampled value model (SVC) (Clause 16)
Multicast SVC
S45 | SendMSVMessage | MC | C10 | C10 | not supported
S46 | GetMSVCBValues | TP | O | O | not supported
S47 | SetMSVCBValues | TP | O | O | not supported
Unicast SVC
S48 | SendUSVMessage | TP | C10 | C10 | not supported
S49 | GetUSVCBValues | TP | O | O | not supported
S50 | SetUSVCBValues | TP | O | O | not supported
C10 – shall declare support for at least one (SendMSVMessage or SendUSVMessage)

Control (17.5.1)
S51 | Select |  | M | O | supported
S52 | SelectWithValue | TP | M | O | supported
S53 | Cancel | TP | O | O | not supported
S54 | Operate | TP | M | M | supported
S55 | Command-Termination | TP | M | O | supported
S56 | TimeActivated-Operate | TP | O | O | not supported
File Transfer (Clause 20)
S57 | GetFile | TP | O | M | supported
S58 | SetFile | TP | O | O | not supported
S59 | DeleteFile | TP | O | O | supported
S60 | GetFileAttributeValues | TP | O | M | not supported

ACSI Service Conformance |  | AA: TP/MC | Client / subscriber | Server / publisher | Comments
Time (5.5)
T1 | Time resolution of internal clock |  |  |  | Nearest negative power of 2 in seconds
T2 | Time accuracy of internal clock |  |  |  | T0
 |  |  |  |  | T1
 |  |  |  |  | T3
 |  |  |  |  | T4
 |  |  |  |  | T5
T3 | Supported TimeStamp resolution |  |  |  | Nearest value of 2**-n in seconds according to 5.5.3.7.3.3

Protocol Implementation Conformance Statement (PICS) for A-Profile support

A-Profile Shortcut

Profile description

Client

Server

Value/Comment

A1

Client/Server A-Profile

C1

C1

Client supported

A2

GOOSE/GSE Management A-Profile

C2

C2

not supported

A3

GSSE A-Profile

C3

C3

not supported

A4

TimeSync A-Profile

C4

C4

not supported

C1 Shall be 'M' if support for any service specified in Table 2 are declared within the ACSI basic conformance statement.

C2 Shall be 'M' if support for any service specified in Table 6 are declared within the ACSI basic conformance statement.

C3 Shall be 'M' if support for any service specified in Table 9 are declared within the ACSI basic conformance statement.

C4 Support for at least one other A-Profile shall be declared (e.g. in A1-A3) in order to claim conformance to IEC 61850-8-1.

PICS for T-Profile support

T-Profile Description |  | Client | Server | Value/Comment
T1 | TCP/IP T-Profile | C1 | C1 | Client supported
T2 | OSI T-Profile | C2 | C2 | not supported
T3 | GOOSE/GSE T-Profile | C3 | C3 | not supported
T4 | GSSE T-Profile | C4 | C4 | not supported
T5 | TimeSync T-Profile | O | O | not supported
C1 Shall be 'm' if support for A1 is declared. Otherwise, shall be 'i'. C2 Shall be 'o' if support for A1 is declared. Otherwise, shall be 'i'. C3 Shall be 'm' if support for A2 is declared. Otherwise, shall be 'i'. C4 Shall be 'm' if support for A3 is declared. Otherwise, shall be 'i'. i: out-of-scope. The implementation of the item is not within the scope of this standard.


IEC 61850 Client Functions

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> IEC 61850 Client -> IEC 61850 Client Functions

Previous chapter Next chapter Show all Show all Hide all Hide all

The following functions are available by using the IEC 61850 Client I/O driver:

Write on a data point:

IEC61850_WRITE Write a value on a IEC 61850 data point

File transfer:

IEC61850_FTDIR Request file transfer directory-listing

IEC61850_FTDEL Request file to be deleted

IEC61850_FTGET Request file to be transferred (file will be copied to the directory defined in the IEC 61850 Client configuration property "Directory for file transfer")

IEC61850_FTQRES Query the result of a file transfer operation

IEC61850_FTQDIR Query a directory listing previously requested

attention Attention

Only one file transfer command can be handled at one time. The following command may only be initiated after completion of the previous command (IEC61850_FTQRES = OK, ERROR).

attention Attention

IEC 61850 functions may be not available on some target systems. Please refer to OEM instructions for further details about available features.

IEC61850_WRITE

Write a value on a IEC 61850 data point

 | Data type | Description
Inputs |  |
SERVERID | UDINT | Identification of the server via its ID
PATH | STRING | Path to data point (without "ServerName!")
VALUE | ANY | Variable whose value should be written on data point
Outputs |  |
Q | BOOL | TRUE if the request was successfully written into the queue

IEC61850_FTDIR

Request file transfer directory-listing

 | Data type | Description
Inputs |  |
SERVERID | DINT | Identification of the server via its ID
FILEDESC | STRING | String with file name
Outputs |  |
Q | BOOL | TRUE if request was successfully sent to queue

IEC61850_FTDEL

Request file to be deleted

 | Data type | Description
Inputs |  |
SERVERID | DINT | Identification of the server via its ID
FILEDESC | STRING | String with file name
Outputs |  |
Q | BOOL | TRUE if request was successfully sent to queue

IEC61850_FTGET

Request file to be transferred

 | Data type | Description
Inputs |  |
SERVERID | DINT | Identification of the server via its ID
FILEDESC | STRING | String with file name
Outputs |  |
Q | BOOL | TRUE if request was successfully sent to queue

IEC61850_FTQRES

Query the result of a file transfer operation

 | Data type | Description
Inputs |  |
SERVERID | DINT | Identification of the server via its ID
Outputs |  |
Q | DINT | Status of the command (0..OK, 1..ERROR, 2..BUSY)

IEC61850_FTQDIR

Query a directory listing previously requested

Copies entries of directory listing which was requested via IEC61850_FTDIR and was successfully received (IEC61850_FTQRES = OK).

One entry represents a file and has the format: 'Name;Size[Bytes};Date Time' (e.g.: '\SUBDIR\LogFile.csv;110592;2009-01-13 14:04:41'). In order to receive all entries the function hast to be called with incremental index until the function returns FALSE.

 | Data type | Description
Inputs |  |
SERVERID | DINT | Identification of the server via its ID
ENTRY | DINT | Index of entry which should be copied (0-based)
@FILEDESC | STRING | String where the entries should be entered. (Output; can be an array)
Outputs |  |
Q | BOOL | TRUE if the listing contains an entry with the quoted index


IEEE C37.118 Synchrophasor

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> IEEE C37.118 Synchrophasor

Previous chapter Next chapter Show all Show all Hide all Hide all

The workbench includes the IEEE C37.118 Synchrophasor driver which makes it possible to read in data from a PDC (Phasor Data Concentrator) or PMUs (Phasor Measurment Unit) to straton if they send the data using the IEEE C37.118 protocol.

Konfiguration

Master node

The master node represents a PDC (Phasor data concentrator). The follwoing setting are available:

Parameter | Description
Name | Freely definable name. Must conform with the syntax for variable names according to IEC 61131. If you enter a name, it is used as a prefix for variable names during the variable import.
Address | IP address or DNS name of the PDC.
Port | TCP port of the PDC.
ID-code | ID-code of the PDC.
Queuing | If you activate this check box all received values are saved in a queue. For each cycle only the values of the oldest received telegram arr written to the variable.

Variable import

You can import the configuration for PMUs and variables automatically from a PDC by right-clicking the master node. However the communication settings must be already done in the PDC configuration. The variables which should be created can then be selected in a dialog.

By activating checkbox Declare variables in data base in the dialog, the variables are not only created in the bus driver configuration but also in the straton application as global variable.

Already existing variables are displayed in bold. If an existing variable discarded, it will be deleted in the bus driver configuration but not in the straton application.

Slave node

The slave node represents a PMU. The following settings are available:

Parameter | Description
Name | Freely definable name.
ID-code | ID-code of the PMU (valid value range 1 - 65534). If you enter 0, the node will be considered as a PDC subnode for time stamp information. This is valid for all PMUs.

Variable node

Parameter

Description

Name

Name of the associated straton variable.

Source type

Defines the type of the variable:

  • Timestamp: Time stamp in second since 1 January 1970. If a floating point variable is associated, the sub-second time value is always displayed as decimal place.
    Note: The time stamp is always 0 if there is no active connection to the PDC.
  • Fraction of second: Sub-second time value
  • Leap-second: Available flags for leap-second
    With "source number" 0: Leap-second direction
    With "source number" 1: Leap-second occured
    With "source number" 2: Leap second pending
  • Timequality: Time precision
  • Status (Word): The whole status word of a PMU
  • Status (Trigger reason): Trigger reason value from the status word
  • Status (Unlocked time): Unlocked Time value from the status word
  • Phasor (Component 1): Phasor value of the 1. component. Depending on the configuration of the PMU either real part of the Phasor value or magnitude
  • Phasor (Component 2): Phasor value of the 2. component. Depending on the configuration of the PMU either imaginary part of the Phasor value or angle
  • Analog data: Analog data value
  • Digital data: Digital data value
  • Frequency
  • Rate of change of frequency

Source number

Index for Phasor data, analog data and digital data.

Scaling

If you activate this option and the data are transferred as 16 bit ineger, the multiplicator configurated at the PMU is considered.

Sub-addressing
  • Single bit: Addressing a single bit of the digital data word or status word
  • Unsigned 8 bit integer: Addressing a single byte of the digital data word or status word
  • None: deactivated

Bit number

Bit offset for sub-addressing of bits or bytes

Status bits

If for a data telegram timequality equals "Fault"(0XF), TIME INVALID is set for all data variables. TIME INVALID is also set if in the PMU status "Unlock time" does not equal "Sync locked" (0).

IF in the PMU status the DATA_VALID bit is set, the Test status bit of the variable is set.

If the PMU error bit is set or there is not connection to the PDC the INVALID bit is set.

  • TIME_INVALID_BIT = [PDC-TIMEQUALITY = FAULT] OR [PMU_UNLOCKTIME <> LOCKED]
  • TEST_BIT = PMU_DATAVALID
  • I_BIT = [PMU_ERROR] OR [No connection to PDC]
  • SPONT_BIT = NOT [I_BIT]

Function blocks

The configuration transmitted by the PDC, which can also be used for the import, can also be prompted from the Runtime application using function blocks. With function blocks you have the possibility to decide when and how often data from the configuration are copied to variables. The following function blocks are available:

CFG_PDC

Inputs:

Input | Type | Description
IDCODE | UINT | ID-code of the PDC.

info Info

In order to use this block the ID-codes of the PDCs must be unique; i.e. the same ID-code must not be used by several PDCs.

Outputs:

Output | Type | Description
TIME_BASE | UDINT | Time base for sub-seconds time designation.
NUM_PMU | UNIT | Number of PMUs which exist in the configuration.
DATA_RATE | INT | Data rate with which data telegrams are sent.
Q | BOOL | TRUE if data could be read.

CFG_PMU

Inputs:

Input | Type | Description
IDCODE_PDC | UNIT | ID-code of the PDC.
INDEX_PMU | UINT | Index of the PMU in the configuration frame.

info Info

In order to use this block the ID-codes of the PDCs must be unique; i.e. the same ID-code must not be used by several PDCs.

Outputs:

Output | Type | Description
STATION_NAME | STRING | Station name of the PMU.
ID_CODE | UINT | ID-code of the PMU.
PHASOR_POLAR | BOOL | TRUE if Phasor value is transferred in polar form; FALSE if phasor value is transferred as complex number.
PHASOR_FLOAT | BOOL | TRUE if Phasor value is transferred as floating decimal number (32 bit); FALSE if it is transferred as integer (16 bit).
ANALOG_FLOAT | BOOL | TRUE if analog values are transferred as floating decimal number (32 bit); FALSE if they are transferred as integer (16 bit).
FREQ_FLOAT | BOOL | TRUE if the frequency and the change of frequency are transferred as floating decimal number (32 bit); FALSE if they are transferred as integer (16 bit).
NUM_PHASOR | UINT | Number of Phasor values.
NUM_ANALOG | UINT | Number of analog values.
NUM_DIGITAL | UINT | Number of digital data words.
FNOM | UINT | Nominal line frequency.
CFG_CNT | UINT | COnfiguration change counter.
Q | BOOL | TRUE if data could be read.

CFG_PHASOR

Inputs:

Input | Type | Description
IDCODE_PDC | UINT | ID-code of the PDC.
INDEX_PMU | UINT | Index of the PMU in the configuration frame.
INDEX_PHASOR | UINT | Index of the Phasor value.

info Info

In order to use this block the ID-codes of the PDCs must be unique; i.e. the same ID-code must not be used by several PDCs.

Outputs:

Output | Type | Description
NAME | STRING | Name.
TYPE | USINT | Type of the value voltage/current.
CNV_FACTOR | UINT | Conversion factor if the data value is transferred as 16 bit integer.
Q | BOOL | TRUE if data could be read.

CFG_ANALOG

Inputs:

Input | Type | Description
IDCODE_PDC | UINT | ID-code of the PDC.
INDEX_PMU | UINT | Index of the PMU in the configuration frame.
INDEX_ANALOG | UINT | Index of the analog value.

info Info

In order to use this block the ID-codes of the PDCs must be unique; i.e. the same ID-code must not be used by several PDCs.

Outputs:

Output | Type | Description
NAME | STRING | Name.
TYPE | USINT | Type.
SCL_FACTOR | UINT | Scaling factor if the data value is transferred as 16 bit integer.
Q | BOOL | TRUE if data could be read.

CFG_DIGITAL

Inputs:

Input | Type | Description
IDCODE_PDC | UINT | ID-code of the PDC.
INDEX_PMU | UINT | Index of the PMU in the configuration frame.
INDEX_DIGITAL | UINT | Index of the digital data word.

info Info

In order to use this block the ID-codes of the PDCs must be unique; i.e. the same ID-code must not be used by several PDCs.

Outputs:

Output | Type | Description
CH0_NAME | STRING | Name channel 0 (Bit0).
CH1_NAME | STRING | Name channel 1 (Bit1).
CH2_NAME | STRING | Name channel 2 (Bit2).
CH3_NAME | STRING | Name channel 3 (Bit3).
CH4_NAME | STRING | Name channel 4 (Bit4).
CH5_NAME | STRING | Name channel 5 (Bit5).
CH6_NAME | STRING | Name channel 6 (Bit6).
CH7_NAME | STRING | Name channel 7 (Bit7).
CH8_NAME | STRING | Name channel 8 (Bit8).
CH9_NAME | STRING | Name channel 9 (Bit9).
CH10_NAME | STRING | Name channel 10 (Bit10).
CH11_NAME | STRING | Name channel 11 (Bit11).
CH12_NAME | STRING | Name channel 12 (Bit12).
CH13_NAME | STRING | Name channel 13 (Bit13).
CH14_NAME | STRING | Name channel 14 (Bit14).
CH15_NAME | STRING | Name channel 15 (Bit15).
NORMAL | UINT | Normal state of the data word.
MASK | UINT | Bit mask for valid bits.
Q | BOOL | TRUE if data could be read.


Interbus S - Phoenix Contact

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Interbus S - Phoenix Contact

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier inclut un configurateur intégré pour les entrées/sorties Interbus-S. Les pages suivantes décrivent la configuration:

Spécifications du protocole

Le système supporte les cartes Interbus "IBS PCI SC/I-T" de Phoenix Contact. La configuration de la carte et du réseau Interbus connecté est réalisée avec le logiciel "IBS CMD G4" de Phoenix Contact. Après ceci vous pouvez décririe le réseau dans le configurateur de bus de terrain.

Echange de données - configuration

La cible T5 gère une carte intermédiaire représentant les entrées et sorties Interbus. Un outil de configuration dédié est intégré à l'atelier. Utilisez la commande Outils / Configuration bus de terrain dans le menu de la fenêtre principale. Puis sélectionnez la configuration Interbus-S.

La configuration est représentée sous la forme d'un arbre:

- Configuration Interbus-S
- Carte PC (*)
- Esclave Interbus (*)
- Variable (*)

(*) Les items avec cette marque peuvent apparaître plusieurs fois.

Configuration

Voud devez configurer le réseau Interbus pour y connecter les variables aux E/S Interbus.

Utilisez la commande Insérer un maître / port pour insérer la carte Interbus-S maître.

Quand la carte est sélectionnée, insérer les esclaves Interbus avec Insérer un esclave / bloc de données.

Chaque esclave est identifié par un nom libre, montré dans l'arbre de configuration.

Par la suite, connectez les variables aux E/S Interbus à l'aide de la commande Insérer variables.

Types de données

Vous pouvez des variables de type BOOL et entiers 8/16/32 bits aux E/S. La cible convertit les données en fonction du type choisi. Les types REAL, LREAL, LINT, TIME et STRING ne sont pas supportés.


Communication MODBUS

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Communication MODBUS

Previous chapter Next chapter Show all Show all Hide all Hide all

Le système intègre les fonctions maître et esclave MODBUS pour une communication MODBUS sur liaison série ou ETHERNET. Reportez-vous aux sections ci-dessous pour plus de détails sur la mise en oeuvre et la configuration de MODBUS dans vos applications:

Protocole - spécifications

Les protocoles suivants sont supportés:

  • MODBUS-RTU sur liaison série.
  • Open MODBUS sur ETHERNET.

Les fonctions MODBUS suivantes sont supportées:

1 lecture de bits de sortie
2 lecture de bits d'entré
3 lecture de mots de sortie
4 lecture de mots d'entrée
5 écriture d'un bit de sortie
6 écriture d'un mot de sortie
15 écriture de N bits de sortie
16 écriture de N mots de sortie

Par défaut, la première adresse valide de chaque type de donnée est 1. Si vous utilisez des équipements MODBUS avec d'autres conventions d'adressage, vous pouvez changer l'offset de base pour chaque type de données en utilisant la commande de menu Outils / Adresses.

Architecture

La cible T5 peut être utilisée comme serveur (esclave MODBUS) ou client (maître MODBUS). Les fonctions esclave et maître peuvent être actives en même temps. Ceci autorise de nombreuses configurations telles que:

  • Connexion esclave à un maître MODBUS tel qu'un superviseur (SCADA).
  • Connexion maître vers des entrées / sorties MODBUS.
  • Connextion entre cibles T5 pour l'échange de données en temps réel.

La configuration des fonctions esclave et maître se fait depuis l'atelier. La configuration MODBUS est totalement intégrée au code de l'application téléchargée dans la cible.

Ports de communication

La fonction client (maître) ouvre un port de communication (RS ou ETHERNET) pour chaque port MODBUS configuré. Le nombre de ports clients ouverts en même temps n'est pas limité.

Côté serveur (esclave), la gestion de la communication (envoi et réception de trames) est totalement intégrée au serveur de communication de la cible, patageant les mêmes ports pour les requêtes MODBUS et la communication avec l'atelier. Les limitations de l'esclaves sont:

  • Un port série.
  • Plusieurs ports sur ETHERNET (dépend de l'implémentation de la cible - généralement 7 ports maximum).

D'autres ports esclaves peuvent être ouverts à l'aide des blocs fonctionnels MBSlaveRTU ou MBSlaveUDP.

Le même port peut être utilisé pour la communcation MODBUS et la communication vers l'atelier. Les trames atelier et MODBUS sont reconnues par la cible.

Le serveur MODBUS-TCP utilisa toujours la configuration du premier port.

Echanges de données - configuration

La cible T5 gère des carte d'adressage MODBUS, pour les connexions maîtres et esclaves. Un outil de configuration dédié est intégré à l'atelier. Utilisez la commande Fichier / Ouvrir / Bus de terrains dans le menu de la fenêtre principale.

La configuration MODBUS est présentée sous forme d'arbre:

- Configuration MODBUS
- Esclave (variables accédées par des maîtres MODBUS distants)
- Bloc de bits d'entrées (lus par les maîtres)
- Variable (*)
- Bloc de mots d'entrée (lus par les maîtres)
- Variable (*)
- Bloc de bits de sortie (forcés par les maîtres)
- Variable (*)
- Blo de mots de sortie (forcés par les maîtres)
- Variable (*)
- Port de communication maître (connecté à des esclaves MODBUS) (*)
- Bloc de données (lecture ou écriture / bits ou mots) (*)
- Variable échangée (*)
- Variable de commande (*)
- Variable d'état (*)

(*) Ces items peuvent apparaître plusieurs fois dans la configuration.

Configuration MODBUS esclave

Vous devez spécifier la fonction esclave MODBUS pour rendre les variables accessibles par les maîtres MODBUS distants tels que les superviseurs. Voici un exemple de configuration esclave:

Example Example

Cliquez deux fois sur l'item Serveur local pour spécifier le numéro d'esclave MODBUS identifiant la cible. Quand le serveur local est sélectionné, utilisez la commande Edition / Nouveau bloc de donnérs pour insérer des blocs de données MODBUS. Les types suivants sont disponibles:

  • Bits d'entrée: bits lus par les maîtres externes (fonction 2).
  • Bits de sortie: bits forcés par les maîtres externes (fonction 5 ou 15).
  • Mots d'entrée: mots lus par les maîtres externes (fonction 4).
  • Mots de sortie: mots forcés par les maîtres externes (fonction 6 ou 16).

Chaque bloc est identifié par une adresse MODBUS de base et un nombre d'items (bits ou mots).

attention Attention
  • Les requêtes de lecture et d'écriture reçues des maîtres MODBUS seront refusées si la plage d'adresses spécifiée dans la requête n'est pas incluse dans un des blocs configurés. Les requêtes en intersection avec plusieurs blocs configurés seront refusées.
    Par exemple, si vous configurez un bloc de 16 mots à l'adresse 1 et un autre bloc de 16 mots à l'adresse 17, une requête de lecture ou d'écriture de 32 mots à partir de l'adresse 1 sera refusée et un rapport "adresse invalide"sera renvoyé.

Quand un bloc de données serveur est sélectionné, utilisez la commande Edition / Nouvelle variable pour relier une variable à un item du bloc. Chaque variable est idntifié par son symbole dans l'application et par un offset par rapport à l'adresse MODBUS de base du bloc.

Pour échanger des variables booléennes dans des mots MODBUS, vous pouvez spécifier un masque en hexadécimal pour indiquer à quel bit du mot la variable est reliée. Par exemple, entrez le masque "0001" pour relier une variable au bit le moins significatif du mot. Pour échanger des variables de 32 bit (DINT, REAL...), vous pouvez indiquer de relier cette variable sur deux mots MODBUS consécutifs.

A chaque instant vous pouvez trier les variables de chaque bloc selon leur offset à l'aide de la commande Edition / Trier les symboles.

Configuration MODBUS maître

Voud devez configurer chaque port maître MODBUS pour accéder à des E/S sur MODBUS. Voici une exemple de configuration maître:

Example Example

La commande Edition / Nouveau port crée un port MODBUS. Chaque port identifie un port MODBUS physique et logique. Un port se base sur une liaison série ou sur ETHERNET. Pour les ports ETHERNET, il vous faut spécifier l'adresse IP de l'esclave et le numéro de port ETHERNET utilisé (généralement 502). Pour les ports série, vous devez entrer une chaîne identifiant le port et ses paramètres de communication, selon les conventions de la cible (par exemple "COM1:9600,N,8,1" sur une cible PC). En option, vous pouvez spécifier que le maître essaie à nouveau d'établir la connection quand elle ne peut être établie.

attention Attention
  • Référez-vous aux instructions du constructeur pour plus d'information sur la configuration du port MODBUS. Certaines cibles utilisent un autre port que 502. Il peut également s'avérer qu'un changement du port utilisé pour la communication avec l'atelier affecte la configuration du port MODBUS.

Une autre option au niveau du "port" permet la gestion de compteurs de diagnostic pour chaque' esclave. Voir plus bas les informations de diagnostic et d'état disponibles.

Quand un port est sélectionné, définissez les blocs de données MODBUS à l'aide de la commande Edition / Nouveau bloc de données. Les types de blocs suivants sont disponibles:

  • Lecture de bits d'entrée (fonction 2).
  • Lecture de bits de sortie (fonction 1).
  • Écriture de bits de sortie (fonction 5 ou 15).
  • Lecture de mots d'entrée (fonction 4).
  • Lecture de mots de sortie (fonction 3).
  • Écriture de mots de sortie (fonction 6 ou 16).

Chaque bloc est identifié par un numéro d'esclave MODBUS, une adresse de base et un nombre d'items (bits ou mots). Le nombre d'items est limité par MODBUS (2000 bits lus, 1968 bits forcés, 125 mots lus ou 120 mots forcés).

Pour chaque requête (chaque bloc), vous devez définir un timeout en millisecondes, et un mode d'activation. Les modes d'activations possibles sont:

  • Périodique: vous devez indiquer une période minimum.
  • Sur changement: dans le cas d'une requête d'écriture, indique que la requête est envoyée seulement quand au moins une des variables concernées changent d'état.
  • Sur appel: la requête est activée à par une variable.

Pour les requêtes périodiques, vous devez spécifier une autre période devant être utilisée quand la requête est en erreur. Ceci est typiquement utilisé pour ralentir les échanges avec les exclaves en erreur.

Quand un bloc de données serveur est sélectionné, utilisez la commande Edition / Nouvelle variable pour relier une variable à un item du bloc. Chaque variable est idntifié par son symbole dans l'application et par un offset par rapport à l'adresse MODBUS de base du bloc.

Pour échanger des variables booléennes dans des mots MODBUS, vous pouvez spécifier un masque en hexadécimal pour indiquer à quel bit du mot la variable est reliée. Par exemple, entrez le masque "0001" pour relier une variable au bit le moins significatif du mot. Pour échanger des variables de 32 bit (DINT, REAL...), vous pouvez indiquer de relier cette variable sur deux mots MODBUS consécutifs.

A chaque instant vous pouvez trier les variables de chaque bloc selon leur offset à l'aide de la commande Edition / Trier les symboles

Variables d'état et de commande

Quand vous connectez une variable à un bloc de données vous pouvez sélectionner:

Un échange de donnée (entre la pile MODBUS et une variable de l'application).

  • Un état (diagnostic fourni à l'application).
  • Une commande (utilisation d'une variable pour piloter la pile).

Voici les informations de diagnostic et d'état disponibles:

Information | Description
Rapport d'erreur | La variable est forcée à un code d'erreur après le dernier essai non réussi, et remise à zéro après le permier nouvel essai réussi.
Rapport d'erreur (pas de reset) | Identique au précédent, mais la variable n'est pas remise à zéro par la pile MODBUS. L'application est en charge du reset de la variable
Requête en cours | La variable est mise à 1 quand la requête est émise et remise à zéro après la réponse de l'esclave ou l'échéance d'un timeout.
Compteur - succès | La variable est incrémentée après chaque échange réussi.
Compteur - échecs | La variable est incrémentée après chaque échange échoué.
Compteur de ré-essais | La variable est mise à 0 au premier essai et incrémenté à chaque ré-essai après un échec.
Esclave: dernière erreur | La variable contient le code de la dernière erreur survenue pour cet esclave.
Esclave: date dernière erreur | La variable contient la date de la dernière erreur survenue pour cet esclave.
Esclave: heure dernière erreur | La variable contient l'heure de la dernière erreur survenue pour cet esclave.
Esclave: date dernier reset | La variable contient la date de la dernière remise à zéro des compteurs de diagnostics de cet esclave.
Esclave: heure dernier reset | La variable contient l'heure de la dernière remise à zéro des compteurs de diagnostics de cet esclave.
Esclave: compteur de transactions | La variable est incrémentée à chaque nouvel échange avec cet esclave, que l'échangesoit réussi ou non.
Esclave: compteur d'erreurs | La variable est incrémentée à chaque nouvel erreur lors d'un échange avec cet esclave.

Voici les commandes pouvant être configurées:

Commande | Description
Commande (validation) | La requête est envoyée continuellement pendant que la variable est à TRUE.
Commande (front) | La requête est envoyée une seule fois quand la variable passe à TRUE. La variable est remise à zéro à la fin de l'échange.
Reset compteurs | Les compteurs de diagnostic de la requête sont remis à zéro quand la variable passe à TRUE, et la variable est alors remise à zéro.
Esclave: reset compteurs | Les compteurs de diagnostic de l'esclave sont remis à zéro quand la variable passe à TRUE, et la variable est alors remise à zéro.

Voici les possibles codes d'errreur:

Le code d'erreur | Description
0 | OK
1 | fonction MODBUS non supportée
2 | adresse MODBUS invalide
3 | valeur MODBUS invalide
4 | serveur MODBUS en erreur
6 | serveur occupé
8 | erreur de parité
10 | chemin de paserelle invalide
11 | la cible de la passerelle est en erreur
128 | timeout de communication
129 | CRC16 incorrect
130 | erreur de communication RS232

Quand vous reliez une variable à un bloc de données, vous pouvez spécifier l'option commande. Dans ce cas, le bloc de données n'est échangé que quand la variable est à l'état TRUE (ou non nul pour un entier).

Types de données

Vous pouvez relier librement des variables de tout type aux donées MODBUS. La cible convertit automatiquement les données dans le type requis.

Pour échanger des variables booléennes dans des mots MODBUS, vous pouvez spécifier un masque en hexadécimal pour indiquer à quel bit du mot la variable est reliée. Par exemple, entrez le masque "0001" pour relier une variable au bit le moins significatif du mot. Pour échanger des variables de 32 bit (DINT, REAL...), vous pouvez indiquer de relier cette variable sur deux mots MODBUS consécutifs.

Les variables de type STRING ne sont pas supportées et ne peuvent pas être échangées avec MODBUS. Les variables de 64 bits (LINT et LREAL) ne peuvent pas être échangées directement sans perte de précision ou de valeur.


Profinet IO RT Controller Configuration

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Profinet IO RT Controller Configuration

Previous chapter Next chapter Show all Show all Hide all Hide all

The workbench contains a fully integrated configurator for Profinet IO RT Controller.

info Info

Referring to the Profinet standard the units of a Profinet network are named as IO Controllers (Masters) and IO Devices (Slaves).

Dans cette section

Data exchange - configuration

Configuration

Data types

Additional features

How to resolve errors

Coding of PNIO status


Data exchange - configuration

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Profinet IO RT Controller Configuration -> Data exchange - configuration

Previous chapter Next chapter Show all Show all Hide all Hide all

The Runtime manages a mapping table which contains the Profinet IO Inputs and Outputs.

An appropriate configuration tool is integrated in the Workbench. To start the configuration choose File > Open > Fieldbus Configuration. The fieldbus configuration window opens.

Choose Insert > Insert Configuration

The following window opens. Select PROFINET IO and click OK.

The configuration is represented as a tree:

- Profinet IO Configuration
- Profinet IO controller (*)
- Profinet IO device (*)
- Variable (*)

(*) These items can appear several times in the configuration (depending on the bus topology).

With a double click on the configuration item the depth of the logging can be adjusted:


Configuration

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Profinet IO RT Controller Configuration -> Configuration

Previous chapter Next chapter Show all Show all Hide all Hide all

The I/Os of the Profinet network must be connected to the variables via a Profinet IO controller. Start the declaration of a Profinet controller with Insert > Insert Master/Port. The following window opens:

These parameter can be changed:

Parameter

Meaning

Name
  • A device name can consists of labels and must follow these conventions:
  • 1 or more labels, separated by [.]
  • Total length is 1 to 240
  • Label length is 1 to 63
  • Labels consist of [a...z0...9-]
  • Labels do not start with [-]
  • Labels do not end with [-]
  • The first label does not start with "port-xyz" or "port-xyz-abcde" with a,b,c,d,e, x, y, z = 0...9
  • Device names do not have the form n.n.n.n, n = 0...999
  • Labels do only start with 'xn-' if RFC 3490 is applied

Adapter identification

MAC address of the Profinet IO controller or name of the network connection (Windows XP or younger and Windows CE 4.1 or younger). Use the name of the network connection in order to run the Runtime redundantly. The name of the network connection can be found in the system panel of the operationg system (e.g.: LAN-connection).

Activity timeout factor [100ms]

Timeout for the connection establishment to the devices (maximum time between beginning of connection establishment and the first cyclic data exchange); Timeout factor based on 100ms.

Real-time class

Class 1: cyclic data exchange without priority tag.
Class 2: data exchange with priority tag.

Send clock factor [31,250µs]

Send clock factor. Multiple of 31,250µs (32 = 1ms).

Watchdog factor

Watchdog factor (default 3):
The Watchdog factor defines how many frames may be missing until the device is set back. Frames may:
a) be lost; e.g. due to bad cabling.
b) arrive delayed due to blocking situations in the network; e.g. due to a non-separated network.
and trigger a watchdog.

Alarm timeout [100ms]

Alarm timeout (default 50).

Alarm retries

Number of alarm retries (default 3).

IP configuration delay [ms]

IP configuration delay (default 500):
Defines the time to wait whether some devices are not ready after start.

Do not wait until connect hat been competed

On: the application starts immediately.
Off: the application starts after all devices are connected.

Start despite disconnected slaves

On: the application starts despite configured but not found devices.
Off: the application starts if all configured devices were found only.

Mark the controller and click Insert > Insert Slave/Datablock to add a Profinet IO device.

These parameter can be changed:

Parameter

Meaning

Name
  • A device name can consists of labels and must follow these conventions:
  • 1 or more labels, separated by [.]
  • Total length is 1 to 240
  • Label length is 1 to 63
  • Labels consist of [a...z0...9-]
  • Labels do not start with [-]
  • Labels do not end with [-]
  • The first label does not start with "port-xyz" or "port-xyz-abcde" with a,b,c,d,e, x, y, z = 0...9
  • Device names do not have the form n.n.n.n, n = 0...999
  • Labels do only start with 'xn-' if RFC 3490 is applied

Adapter MAC address

MAC address of the Profinet IO device

VLAN ID

Virtual LAN ID

IP address

IP address of the device

Subnet mask

Subnet mask for the IP address of the device

Default gateway

Default gateway

Object UUID

UUID of the device

Reduction ratio

Reduction ratio (default 1):
The Reduction ratio defines the frequency for data to be exchanged with the device. The transfer rate is calculated by <Send clock factor> * 31,250 µs * <Reduction ratio>. The Send clock factor is a master parameter with a default value of 32 (all known devices work with this Send clock factor).
With the default setting of 1 the data transfer rate is 1ms; for 2 it is 2ms...;
Most devices support Reduction ratio settings of 1,2,4,8,16,32...

Phase

Phase

Module IDs

Module IDs of the device modules.

Module IOs

Module IOs of the device modules.

Module configuration

Module configuration.

Prefix

Prefix for the variables.

info Info

With the calculation of <Watchdog factor> * <Reduction ratio> * <Send clock factor> * 31,250 µs you get the time that may expire between two frames until the device is set back. I.e. for the default settings 3 * 1 * 32 * 31,250 µs the connection will be set back after 3ms of missing frames. For office networks this time is rather low. It is recommended to us a Reduction ratio of 32 and a Watchdog factor of 24 for office networks. I.e. the connection will be reset after 24 * 32 * 32 * 31,250 µs = 768 ms. If this data exchange rate is to low please separate the PROFINET IO network from the office network (e.g. by a router).

Click Load GSDML file to import the necessary GSDML file.

Do the slot configuration after the GSDML file import.

Select the modules in the upper list. With the buttons Insert and Append the modules are copied to the lower list.

You can not configure each module. Only modules with some sub modules respectively with a sub module with parameter data can be configured. Mark the according module in the lower list and click the Configure button.

Example Example

Now you can connect the variables with the I/Os. Use Insert > Insert/Set Variable in order to append a variable to a device.

These parameter can be changed:

Parameter | Description
Variable name | Variable name following the IEC 61131-3 syntax.
Area | Output, Output IOCS, Output IOPS, Input, Input IOCS, Input IOPS, device status.
Format | 32 bit float, Signed 16 bit integer, Signed 32 bit integer, Signed 8 bit integer, Single bit, Unsigned 16 bit integer, Unsigned 32 bit integer, Unsigned 8 bit integer.
Slot | Slot Number
Subslot | Subslot Number
Offset | Offset
Bit | Bit

info Info

The offset of a variable is relative to a sub module. Thus also depending from a slot and subslot. The offset of the first variable of a sub module is always 0.

All settings can be changed in the grid too. Click View > Grid in order to show/hide the grid. The information show refers to the items below of the selected item in the configuration tree.

If the Workbench is online with a target system the grid shows the real-time data of the variables.


Data types

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Profinet IO RT Controller Configuration -> Data types

Previous chapter Next chapter Show all Show all Hide all Hide all

You can connect variables of any data type to the Profinet I/Os. The Runtime converts the values of the I/Os to the type of the variable. STRING variables are not supported.


Additional features

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Profinet IO RT Controller Configuration -> Additional features

Previous chapter Next chapter Show all Show all Hide all Hide all

Browse network adapters

This command is available in the context menu of the Profinet IO configuration item. All available network adapters are listed up.

Select the right network adapter and click OK.

Click Edit > Properties to change the properties of the selected network adapter.

Browse network for slaves

This command is available in the context menu of the network adapter. All connected Profinet IO devices are listed up.

Select the devices you want to add in the tree via the checkbox in the column Create.

The Network Link (or another) -LED of the marked device blinks for three seconds when pressing the Blink button.

Set the device names (column Name) here.
A device name can consist of labels and must follow these conventions:

  • 1 or more labels, separated by [.].
  • Total length is 1 to 240.
  • Label length is 1 to 63.
  • Labels consist of [a...z0...9-].
  • Labels do not start with [-].
  • Labels do not end with [-].
  • The first label does not start with "port-xyz" or "port-xyz-abcde" with a,b,c,d,e, x, y, z = 0...9.
  • Device names do not have the form n.n.n.n, n = 0...999.
  • Labels do only start with 'xn-' if RFC 3490 is applied.

Set the IP address of the device here. By clicking into the grid the Default gateway will be set automatically.

Click OK after setting the IP-parameters (address, subnet mask, default gateway).

Configuration of devices

After adding the Profinet devices to the controller they need to be configured. Double click on the referring device. Load the GSDML file. If ambiguous module IDs are found they are shown in a window. Choose the right module in the combo-box.

info Info

Automatic creation of variables can be done primal after this step.

Set slave station name

With this context menu command it is possible to rename the slave names.

Read module configuration

With this context menu command it is possible to read out the module configuration again.

Create variables

Find this command in the context menu of the device. Based on the defined device modules the referring variables are generated.

Within the same dialog it is possible to define the variables for

  • Device diagnosis
  • IOxS

Device diagnosis

Based on the Profinet standard the referring variables can be generated:

  • CycleCounter [UINT].
  • Status [BOOL].
  • DataValid [BOOL].
  • ProviderState [BOOL].
  • StationsProblemIndikator [BOOL].

Create IOxS for slave modules

Based on the defined device modules the referring IOPS- and IOCS-variables are generated.


How to resolve errors

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Profinet IO RT Controller Configuration -> How to resolve errors

Previous chapter Next chapter Show all Show all Hide all Hide all

Device is not found:

  • Check if device is switched on
  • Check the network connection
  • Ensure the correct name was set on the device

Error setting the IP configuration:

  • Ensure that the IP configuration is valid and appropriate for your network
  • Ensure the VLAN ID is setup correctly in the device settings

CL-RPC Lookup (< 6.22 SP0 Build 3):

Timeout error:

  • Ensure that the IP configuration is valid and appropriate for your network
  • Increase the IP configuration delay

Other errors:

  • Ensure you use the correct device name
  • Ensure you have chosen the correct GSDML file (also check if the GSDML file version is appropriate for the firmware version of the device)

Connect response error:

Timeout error (> 6.22 SP0 Build 3):

  • Ensure that the IP configuration is valid and appropriate for your network
  • Increase the IP configuration delay

Connect response error:

Depending on the PNIO status error check, if the settings listed in the table below are set appropriate for your device.

PNIO status | Check the specified setting
1C010003 | Slave\ObjectUUID (correct GDML file)
DB81010A | Master\Activity timeout factor
DB81010B | Master\Controller name
DB81010C | Master\Controller name
DB810207 | Master\RT-Class
DB81020A | Master\Send clock factor
DB81020B | Slave\Reduction ratio
DB81020C | Slave\Phase
DB81020F | Master\Watchdog factor
DB810210 | Master\Watchdog factor
DB8103,* | Slave\Module IDs,IOs
DB810407 | Master\Alarm timeout
DB810408 | Master\Alarm retries

Table: PNIO status error codes on connect and the related settings in the configuration

Module configuration is different:

  • Ensure you have configured the modules present on the device (If you have read the module configuration from the device, ensure you have selected the correct modules in the resolve ambiguous modules dialog displayed after selecting the GSDML file).
  • Ensure you have chosen the correct GSDML file (also check if the GSDML file version is appropriate for the firmware version of the device).

Writing parameterization error (with status 0xDF80*):

  • Ensure you have configured the modules present on the device (If you have read the module configuration from the device, ensure you have selected the correct modules in the resolve ambiguous modules dialog displayed after selecting the GSDML file).
  • Ensure you have chosen the correct GSDML file (also check if the GSDML file version is appropriate for the firmware version of the device).

If your error could not be resolved using the hints above, update the firmware of your device and the GSDML file to the latest version and try again.

For further analyses record the PNIO communication using Wireshark (http://www.wireshark.org/). Start Wireshark and select Capture\Options from the menu. Choose the network interface used for the PNIO communication and enter the Capture filter below:

ether proto 0x8892 or (ether proto 0x8100 and ether[16:2]=0x8892) or udp port 0x8894

Then click start. Start the straton RT with you application several times and then stop the Wireshark capturing by selecting Capture\Stop from the menu. You can save your recorded traffic by selecting File\Save from the menu.


Coding of PNIO status

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Profinet IO RT Controller Configuration -> Coding of PNIO status

Previous chapter Next chapter Show all Show all Hide all Hide all

The PNIO status is a 32 bit unsigned value. It is composed of 4 byte values, which define the meaning of the status. For positive responses PNIO status has a value of zero.

Bit | Meaning
24-31 | ErrorCode
16-23 | ErrorDecode
8-15 | ErrorCode1
0-7 | ErrorCode2

Table 1: Coding of PNIO status for negative responses

ErrorCode | Meaning
DB | Error in connect response
DC | Error in release response
DD | Error in control response
DF | Error in write response

Table 2: Meaning of ErrorCode for negative responses

ErrorDecode | Meaning
80 | Read/Write service
81 | Connect, Control, Release service

Table 3: Meaning of ErrorDecode for negative responses

ErrorCode1 | Meaning
A1 | write error
A2 | module failure
A3-A6 | reserved
A7 | busy
A8 | version conflict
A9 | feature not supported
AA-AF | device specific
B0 | invalid index
B1 | write length error
B2 | invalid slot/subslot
B3 | type conflict
B4 | invalid area/API
B5 | state conflict
B6 | access denied
B7 | invalid range
B8 | invalid parameter
B9 | invalid type
BA | backup
BB-BF | device specific
C0 | read constrain conflict
C1 | write constrain conflict
C2 | resource busy
C3 | resource unavailable
C4-C7 | reserved
C8-CF | device specific

Table 4: Meaning of ErrorCode1 for ErrorDecode = 80

ErrorCode1 | Meaning
01 | Connect Parameter Error, Faulty ARBlockReq
02 | Connect Parameter Error, Faulty IOCRBlockReq
03 | Connect Parameter Error, Faulty ExpectedSubmoduleBlockReq
04 | Connect Parameter Error, Faulty AlarmCRBlockReq
05 | Connect Parameter Error, Faulty PrmServerBlockReq
06 | Connect Parameter Error, Faulty MCRBlockReq
07 | Connect Parameter Error, Faulty ARRPCBlockReq
08 | Read Write Record Parameter, Error Faulty Record
14 | IODControl Parameter Error, Faulty ControlBlockConnect
15 | IODControl Parameter Error, Faulty ControlBlockPlug
16 | IOXControl Parameter Error , Faulty ControlBlock after a connection establishment
17 | IOXControl Parameter Error, Faulty ControlBlock after a plug alarm
28 | Release Parameter Error, Faulty ReleaseBlock
40 | RMPM (Device state machines, device resources)

Table 5: Meaning of ErrorCode1 for ErrorDecode = 81

ErrorCode1 | Meaning
00 | ArgsLength invalid
01 | Unknown Blocks
02 | IOCR Missing
03 | Wrong AlarmCRBlock count
04 | Out of AR Resources
05 | AR UUID unknown
06 | State conflict
07 | Out of Provider, Consumer, or Alarm Resources
08 | Out of Memory
09-FF | Reserved

Table 6: Meaning of ErrorCode2 for ErrorCode1 = 40

For ErrorCode1 <> 40 ErrorCode2 refers to a field in the block specified by ErrorCode1.

ErrorCode2 | Meaning
00 | Block type
01 | Block length
02 | Block version (high byte)
03 | Block version (low byte)

Table 7: Meaning of ErrorCode2 for ErrorCode1 <> 40

ErrorCode2 | Meaning
04 | AR Type
05 | AR UUID
06 | Session key
07 | Initiator MAC address
08 | Initiator Object UUID
09 | AR Properties
0A | Activity timeout factor
0B | UDP RT port
0C | Station name length
0D | Station name

Table 8: Meaning of ErrorCode2 for ErrorCode1 = 01 (AR block request)

ErrorCode2 | Meaning
04 | IOCR Type
05 | Reference
06 | LT
07 | IOCR properties
08 | IO data length
09 | Frame ID
0A | Send clock factor
0B | Reduction ratio
0C | Phase
0D | Sequence
0E | Frame send offset
0F | Watchdog factor
10 | Data hold factor
11 | Tag header
12 | IOCR multicast MAC address
13 | Number of APIs
14 | API
15 | Number of IO data objects
16 | Slot
17 | Subslot
18 | IO data object offset
19 | Number of IOCS
20 | Slot
21 | Subslot
22 | IOCS offset

Table 9: Meaning of ErrorCode2 for ErrorCode1 = 02 (IOCR block request)

ErrorCode2 | Meaning
04 | Number of APIs
05 | API
06 | Slot
07 | Module ident number
08 | Module properties
09 | Number of submodules
0A | Subslot
0B | Submodule ident number
0C | Submodule properties
0D | Data description
0E | Data length
0F | IOPS length
10 | IOCS length

Table 10: Meaning of ErrorCode2 for ErrorCode1 = 03 (Expected submodule block request)

ErrorCode2 | Meaning
04 | Type
05 | LT
06 | AlarmCR Properties
07 | RTA timeout factor
08 | RTA retries
09 | Local alarm reference
0A | Maximum alarm data length
0B | Alarm CRT Tag high
0C | Alarm CRT Tag low

Table 11: Meaning of ErrorCode2 for ErrorCode1 = 04 (AlarmCR block request)

ErrorCode2 | Meaning
04 | Sequence number
05 | AR UUID
06 | API
07 | Slot number
08 | Subslot number
09 | Padding
0A | Index
0B | Data length
0C | Target AR UUID

Table 12: Meaning of ErrorCode2 for ErrorCode1 = 8 (Read/write record block request)

ErrorCode2 | Meaning
05 | Padding
06 | Session key
07 | Padding
08 | Control block command
09 | Control block properties

Table 13: Meaning of ErrorCode2 for ErrorCode1 = 16 (IOXControl block request)


SIMATIC S7-modular Embedded Controler

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> SIMATIC S7-modular Embedded Controler

Previous chapter Next chapter Show all Show all Hide all Hide all

The workbench includes a driver for connecting the backplane bus, Run/Stop switch and LEDs of the SIMATIC S7 mEC.

Settings at the bus node

Parameter

Description

Secure backplane configuration

When switching the Run/Stop switch to stop, the outputs at the backplane bus are deactivated. The outputs can only be reactivated by restarting the application.

Run/Stop switch

Actions when changing the position of the Run/Stop switch:

  • Do nothin
  • Pause/Continue
  • Stop/Cold start
  • Stop/Cold start (with RETAINS)
  • Stop/Hot start

Run/Stop LEDs switch automatic

At starting and stopping automatically switch on/off the Run/Stop LED.

Settings at the master node

There are two types of master nodes:

  • CPU: default, cannot be deleted, edited or created newly
  • Backplane bus rack: represents a rack of the backplane bus

Settings for backplane bus rack

Parameter | Description
Name | Freely definabel name.
Rack number | Number of the rack.

Settings at the slave node

There are three types of slave nodes:

  • LEDs: default, cannot be deleted, edited or created newly
  • Run/Stop switch: default, cannot be deleted, edited or created newly
  • Backplane bus module/slot

Settings for backplane bus module/slot

Parameter

Description

Name

Freely definabel name.

Slot number

Number of the slo.

Parametrization

Parameter dat for a moduel. They can consist of several data sets:

  • Syntax: : {0 [00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF]}{2 [00 11 22 33 44]}{<DS>[<DATA>]}
    <DS> … Data set number
    <DATA> Parameter data asbyte string in hex format, bytes separated by space: e.g. 00 11 22 33 AA BB CC

Settings at the variable node

Parameter

Description

Name

Name of the linked variable.

Offset
  • For variables at the backplane bus module: Byte offset
  • For variables under the slave node LED: ID of the LED;
    SF: 0
    RESERVED: 1
    RUN: 2
    STOP: 3
    BF1: 4
    BF2: 5
    BF3: 6
    BF4: 7
    U3: 8
    U4: 9
  • For variables under the slave node Run/Stop switch: no meaning

Mode

Input: Input variable; Output: Output variable

Data type

Data type at the bus.

Bit number

Only for variables at the backplane bus module and data type "Single bit": Bit number

Variables at backplane bus module

Addressing

Central I/O functions make it necessary to address the affected signal modules. The signal modules are addressed in the respective function with data type GeoAddr via parameter Rack and Slot.

Variables under slave node LED: ID of the LED

By writting on such a variable the LEDs at the EC31 can be switched. The possible types are:

  • Bool variable: True = LED on; False = LED off
  • Numeric variable:
    • 0 = no action (LED remains the same)
    • 1 = LED is turned off
    • 2 = LED flashes slowly
    • 3 = LED flashes fast
    • 4 = LED is turned on

Variable for displaying the position of the Run/Stop switch

The possible types are:

  • Bool variable: True = Switch is on "Run"; False = Switch is on "Stop"
  • Numeric variable:
    • 1 = switch is on "MRES"
    • 2 = switch is on "RUN"
    • 3 = switch is on "STOP"

Create variables

In order to create variables for representing the LEDs or the Run/Stop switch right-click on either and select menu item Create variables. The variable is created automatically.

Parameter data for back plane bus module

Some modules can create alarms if diagnosis informationis available. These diagnosis alarms must be enabled by an entry in the parametering data set 0 (DS0).

Module | Ordering Number | DS0 value if "diagnosis alarm inactive" | DS0 value if "diagnosis alarm" active
SM 331; AL 8 x 13 bit | 6ES7331-1KF01-0AB0 | no alarms, only parametering information
SM 331; Al 8 x 12 bit Diagnosis alarm/process alarm | 6ES7331-7KF02-0AB0 | 00 00 | FF 01
SM 331; Al 2 x 12 bit Diagnosis alarm/process alarm | 6ES7331-7KB02-0AB0 | 00 00 | 03 01
SM 332; AO 4 x 12 bit diagnosis alarm | 6ES7332-5HD01-0AB0 | 00 00 | 0F 00
SM 332; AO 2 x 12 bit | 6ES7332-5HB01-0AB0 | 00 00 | 03 00
SM 332; AO 8 x 12 bit | 6ES7332-5HF00-0AB0 | 00 00 | FF 00


Configuration d'E/S Siemens SoftNet

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Configuration d'E/S Siemens SoftNet

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier inclut un configurateur intégré pour les entrées/sorties Profibus I/Os en utilisant le driver SoftNet de Siemens. Les pages suivantes décrivent la configuration:

Echange de données

La cible T5 gère une carte intermédiaire représentant les entrées et sorties SoftNet. Un outil de configuration dédié est intégré à l'atelier. Utilisez la commande Fichier / Ouvrir / Configuration bus de terrain dans le menu de la fenêtre principale. Puis sélectionnez la configuration SoftNet Profibus DP.

La configuration est représentée sous la forme d'un arbre:

- Configuration SoftNet
- Carte SoftNet (*)
- Esclave (*)
- Variable échangée (*)

(*) Les items avec cette marque peuvent apparaître plusieurs fois.

Configuration

Vous devez configurer le réseau et lier les variables aux entrées/sorties. Une carte SoftNet est identifiée par son numéro (CP_L2_1 to CP_L2_4) et une description.

Chaque esclave est identifié par son numéro d'esclave Profibus DP.

Pour chaque variable vous devez définir:

  • Son symbole.
  • Un offset (dans SoftNet).
  • Un mode (entrée ou sortie).
  • Un format de données sur la carte SoftNet.
  • Possiblement un numéro de bit pour une variable binaire.

Diagnostic

Voici les information de diagnostic que vous pouvez relier à des variables:

Diagnostic | Type | Description
Active | BOOL | L'esclave DP n'est pas activé dans la base de données
Offline | BOOL | L'esclave DP n'est pas en phase de transfert (CP startup).
Ready | BOOL | L'esclave DP est en phase de transfert
Ready Diagnostic | BOOL | L'esclave DP est dans la phase de transfert, et le diagnostic existe.
Station_status_1 | BYTE |
Station_status_2 | BYTE |
Station_status_3 | BYTE |
Diag.Master_Add | BYTE |
Ident_Number | WORD |

Station_status_1

Bit 7 : Diag. Master_Lock: Les paramètres de l'esclave DP ont déjà été forcés par un autre maître. Le maître courant n'y a plus accès.

Bit 6 : Diag. Prm_Fault: Ce bit est positionné par l'esclave DP si la dernière trame de forçage des paramètres était incorrecte.

Bit 5 : Diag. Invalid_Slave_Response: Ce bit est positionné quand une réponse invalide est reçue de l'esclave DP.

Bit 4 : Diag. Not_Supported: Ce bit est positionné si une requête n'est pas supportée par l'esclave.

Bit 3 : Diag. Ext_Diag: Ce bit est positionné par l'esclave DP. Si le bit est à 1, une donnée de diagnostic est prête dans la zône d'échange de diagnostic (Ext_Diag_Data). Si ce bit est à 0, il peut y avoir un message dans la zône de diagnostic de l'esclave (Ext_Diag_Data).

Bit 2 : Diag. Cfg_Fault: Ce bit est positionné quand les données de configuration envoyées ne correspondent pas à l'esclave DP (erreur de configuration).

Bit 1 : Diag. Station_Not_Ready: Ce bit est positionné quand l'esclave DP n'est pas encore prêt à échanger des données.

Bit 0 : Diag. Station_Non_Existent: Ce bit est positionné par le maître DP si l'esclave n'est pas trouvé sur le bus. Si ce bit est à 1, les bits de diagnostic contiennent le dernier message de diagnostic. L'esclave DP positionne ce bit à 0.

Station_status_2

Bit 7 : Diag. Deactivated: Ce bit est positionné quand l'esclave DP est devenu inactif.

Bit 6 : réservé

Bit 5 : Diag. Sync_Mode: Ce bit est positionné par l'esclave DP quand il a reçu une commande de synchronisation.

Bit 4 : Diag. Freeze_Mode: Ce bit est positionné par l'esclave DP quand il a reçu une commande de figeage.

Bit 3 : Diag. WD_On (Watchdog on): Ce bit est positionné par l'esclave DP. Si ce bit est à 1, le chien de garde est activé dans l'esclave.

Bit 2 : L'esclave DP positionne toujours ce bit à 1.

Bit 1 : Diag.Stat_Diag (static diagnostics): Si l'esclave DP force ce bit à 1, le maître DP doit lire les données de diagnostic jusqu'à ce que le bit repasse à 0.

Bit 0 : Diag. Prm_Req: Si l'esclave DP positionne ce bit, il demande un nouveau paramètre et doit être reconfiguré.

Note: Si les bits 1 et 0 sont positionnés, le bit 0 est le plus prioriraire.

Station_status_3

Bit 7 : Diag. Ext_Diag_Overflow: Si ce bit est positionné, il y a plus d'information de diagnostic que spécifié dans Ext_Diag_Data.

Bit 6 to 0 : Réservé

Diag. Master_Add

L'adresse que le maître DP a assigné à l'esclave DP est entrée dans l'octet 4 (Diag.Master_Add). Si l'esclave DP n'a pas reçu ses paramètres, il positionne l'adresse à 255 dans cet.

Bytes 5 and 6 Ident_Number

L'ID du fournisseur de l'esclave DP est dans les octets 5 et 6 (Ident_Number).

Types de données

Vous pouvez librement connecter des variables de tout type à une E/S. La cible convertit les données en fonction du type choisi. Les variables de type STRING ne sont pas supportées.


WAGO 758-87x IO-System / ThinkIO

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> WAGO 758-87x IO-System / ThinkIO

Previous chapter Next chapter Show all Show all Hide all Hide all

The workbench offers a fully integrated Configurator for the Wago I/O System 758-87x / Kontron ThinkIO. In the following this device will be called as "Wago IPC".

Data exchange - Configuration

The T5 Runtime manages the linking table which contains all Inputs and Outputs of the Wago IPC. A referring Configuration tool is integrated in the Workbench. To start it click File / Open / Fieldbus Configuration in the main window. A window for the fieldbus configuration will be opened. Click Insert / Insert configuration. Choose Wago 758-87x IO-System / ThinkIO configuration and click OK.

The configuration is set up as tree structure:

- Wago 758-87x IO-System / ThinkIO

- Local configuration
- Inputs/Outputs/LED/States
- Variables

- K-Bus configuration
- K-Bus Modules
- Variables

Configuration

Basic settings

The basic settings of the Wago IPC can be done by a double click on the configuration (Wago 758-87x IO-System / ThinkIO).

This settings can be done:

Setting

Description

Run/Stop switch

Configuration of the Run/Stop switch:

Pause/Run: Position Stop stops the execution of the application. Run continues the execution (Hot Restart).

Stop/Cold start: Position Stop stops the application. Run causes a cold restart.

Stop/Warmstart: Position Stop stops the application. Run causes a warm restart (cold with retain variables).

If the Run/Stop switch is at Stop at Runtime start, the application won't be started.

LEDs

Configuration of the LEDs of the Wago IPC:
In general the LEDs MS0, MS1, IO green, IO red, IDE and PWR can be used only. STA and ERR are exclusively used by the Wago IPC system.

As I/O: All LEDs can be used by the application.

I/Os MS1 show VM state: MS1 shows the status of the Runtime, all other LEDs can be used by the application.

LEDs not used: All LEDs are used by the system only.

MS1 show VM state: MS1 shows the status of the Runtime. All other LEDs are used by the system.

Show VM State - in two modes the LED MS1 shows the status of the Runtime:

  • On: application running
  • Blink: application running, breakpoint set.
  • Off: application is stopped.

Address areas of the LEDs (Offset 0, Bit x):

0...STA (not accessible)

1...ERR (not accessible)

2...MS1

3...MS0

4...IO green

5...IO red

6...PWR

7...IDE

Retain variables in SRAM

When activated, the retain variables are stored in the SRAM (battery buffered RAM). When deactivated the retain variables are stored on the flash disk.

CON5 Watchdog [ms]

The watchdog of the X5 plug is enabled/disabled here.

If the watchdog is enabled once it can't be disabled any more. If the Runtime is stopped the whole system must be reseted due to watchdog timeout.

A cycle time overflow causes a watchdog timeout as well.

Available watchdog settings: disabled, 127, 508, 1016, 2033ms

CPU watchdog

Enable/disable the CPU Watchdog. With this firmware version the CPU Watchdog cannot be used.

Check the IDs of configured K-bus modules

TRUE: Checks the IDs of the configured K-bus modules on the target system (Wago IPC). If the configuration in the Workbench does not match with the real configuration on the Wago IPC the Runtime on the Wago IPC will not start.

A generic module or an end module will not be checked in the configuration. However generic digital modules will be checked!

FALSE: Does not check the IDs of the configured K-bus modules on the Wago IPC.

Read/write I/Os directly from VM cycle

TRUE: Reads and writes the I/Os synchronously with the Runtime cycle. This works well with slow cycle times and provides a small jitter on the K-bus outputs.

FALSE: Runs the read/write of the I/Os asynchronously. This works well with fast cycle times for e.g. fast Profibus DP data exchange.

Configuration of the local configuration

Local configuration

Description

Locale inputs

Both inputs of the X5 plug are supported. Create variables via context menu.

Locale outputs

Both outputs of the X5 plug are supported. Create variables via context menu.

LED

The LEDs MS0, MS1, IO green, IO red, IDE and PWR can be used by the application. The availability of the variables depend on the settings made in the properties of "Areas".

Via context menu the variables can be created. All LEDs are defined as variables. Un-allowed variables have to be removed manually!

States

(see "Additional features")

This area gives information to the Wago IPC and the status of the K-Bus.

Firmware: Identifier for firmware version.

Fieldbus: Identifier for supported fieldbus systems.

OEMVariant: Identifier for OEM variant.

Battery: Condition of battery. Due to design error this value represents OK always.

X5WdgFailed: TRUE if X5 plug watchdog timeout is active.

BitlengthKBus: Size of image on K-Bus [bit].

NrClamps: Number of clamps on K-Bus.

ErrorType: Type or error on K-Bus.

ErrorArgument: Error specific error code.

NrClampsWithError: Number of defective clamps on K-Bus.

LedError: LED error active.

LedErrorArgument: Additional information regarding LedError.

CfgNoClamps: Number of detected clamps on K-Bus.

PosClampX: Position of image for clamp X on K-Bus.

TypeClampX: Identifier for type of clamp on K-Bus.

SizeClampX: Length of data for clamp X on K-Bus.

Use Edit / Insert variable to create a variable in the chosen area.

The following entries can be done:

Property | Possible Entries
Variable name | Free variable name (referring to IEC 61131 standard)
I/O direction | Undefined / Input / Output
Format | 32 bit float, Boolean Byte, Signed 16 bit integer, Signed 32 bit integer, Signed 8 bit integer, Single bit, Unsigned 16 bit integer, Unsigned 32 bit integer, Unsigned 8 bit integer
Offset |
Bit |

Additional features

Create variables

This command is available in the context menu of the item Local configuration in the tree. With that all default variables for the Wago IPC will be created.

Choose the needed default variables.

Clamp information: K-Bus clamp status for X clamps

Device information: information of the device

ThinkIO health state: states of the device

Default variables can be created for each local configuration separately.

Configuration of the K-Bus configuration

You need to configure the modules in order to map I/Os to variables. Each I/O module is identified by its WAGO reference number and a free description text. A wizard enables you to browse the list of available modules. Then you must connect IEC variables to I/O points of the modules.

For each linked variable you have to enter:

  • Its symbol.
  • A type (direction and data size).
  • Byte and bit offsets on the K-bus.
  • A free description text.

Alternatively, you can use the Set variables and Calculate all addresses commands of the contextual menu to automate the declaration and mapping of I/O points.

Special menu commands

The following specific commands are available from the contextual menu of the configuration tree:

  • Create K-Bus configuration

    Run the configuration wizard that enables you to configure the I/O system in a graphic form. Refer to the following section for further information about using the wizard. This command is available when the K-Bus configuration node is selected in the configuration tree.

  • Create variables

    This command automatically declares I/O variables and maps them to the selected node(s). If a module is selected in the tree, only this module is handled. If the K-Bus configuration node or the root node is selected, variables are mapped for all the modules of the configuration.

  • Automatically apply K-Bus offsets to variables

    This command automatically adjust all byte and bit offsets of mapped variables in the whole configuration. The calculation is based on the position of the modules in the tree. So it is important that you enter modules in the tree in the same order as they are plugged on the hardware.

Configuration wizard

Run the Create K-Bus configuration from the contextual menu when the K-Bus configuration node is selected in the configuration tree to open the wizard. The wizard is a graphic tool that enables you to enter your configuration in a user friendly graphic mode.

The list of configured modules is shown on the right of the wizard window. Use the << and >> buttons to scroll the list horizontally if not all modules are visible.

To add a module, select a location in the list and double click on a module reference in the tree on the left side of the wizard. You can also use the following buttons in the left upper corner of the wizard.

When the configuration is ready, press the OK button to apply it in the fieldbus configuration tree.

If the Declare variables option is checked when you press OK, then IEC variables are automatically declared. You must specify a valid prefix for declared variables.

All settings can also be done in the Grid. Click View / Grid to switch on/off the grid. The listed information always refers to the items selected in the tree.

The grid shows online-values of the Runtime if the Workbench is online.

Data types

You can freely map a variable of any data type to an I/O. The runtime automatically converts the value to the type of the variable. STRING variables are not supported.


Configuration des E/S du contrôleur Linux WAGO 750-865

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Configuration des E/S du contrôleur Linux WAGO 750-865

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier intègre un outil de configuration dédié pour déclarer les E/S d'un système cible WAGO 750-865. Les sections suivantes détaillent l'utilisation du configurateur et les fonctions spécifiques aux E/S du controleur Linus WAGO 750-860:

Echange de données - configuration

Un outil de configuration dédié au WAGO 750-865 est intégré à l'atelier. Utilisez la commande Fichier / Ouvrir / Configuration Bus de Terrain. Puis sélectionnez la configuration WAGO 750-865.

La configuration est représentée sous la forme d'un arbre:

- Configuration WAGO
- Contrôleur WAGO
- Module (*)
- Variable échangée (*)

(*) Les items avec cette marque peuvent apparaître plusieurs fois.

Configuration

Vous devez configurer les modules du KBus pour connecter les variables d'E/S. Chaque module d'E/S est identifié par son numéro de référence WAGO et un texte de description libre. Un assistant vous permet de parcourir la liste des références existantes. Puis vous devez connecter les variables IEC aux points d'E/S.

Pour chaque variable vous devez indiquer:

  • Son symbole
  • Un type (direction et format)
  • Les offsets byte et bit sur le KBus
  • Un texte de description libre

Voud pouvez également utiliser les commandes "Affecter les variables" et "Calculer toutes les adresses" du menu contextuel pour automatiser la connexion des variables aux points d'E/S.

Types de données

Vous pouvez librement connecter des variables de tout type à une E/S. La cible convertit les données en fonction du type choisi. Les variables de type STRING ne sont pas supportées.

Commandes spécifiques

Les commandes spécifiques suivantes sont disponibles depuis le menu contextuel dans l'arbre de configuration:

  • Créer une configuration

    Cette commande lance un assistant qui vous permet de créer la configuration des E/S sous forme graphique. Référez-vous à la section suivante pour plus d'informations. Cette commande est disponible quand le contrôleur est sélectionné dans l'arbre de configuration.

  • Afftecter les variables

    Cette commande déclare automatiquement les variables d'E/S du ou des noeud(s) sélectionnés dans l'arbre. Si un module est sélectionné, seul ce module est pris en compte. Si le contrôleur ou la racine de l'arbre est sélectionné, les variables sont générées pour l'ensemble de la configuration.

  • Calculer toutes les adresses

    Cette commande ajuste automatiquement tous les offsets (byte et bit) des variables pour l'ensemble de la configuration. Le calcul est basé sur l'ordre des modules dans l'arbre. Vous devez-donc vous assurer que l'ordre dans le quel les modules sont déclarés correspond à l'ordre physique sur le KBus.

Assistant de configuration

Lancez la commande Créer une configuration du menu contextuel quand le contrôleur est sélectionné dans l'arbre pour lancer l'assistant de configuration. L'assistant est un outil graphique qui vous permet de définir la configuration des E/S dans un mode intuitif.

La liste des modules configfurés est montrée graphiquement dans la partie droite de l'assistant. Les boutons << et >> vous permettent de faire défiler la liste des modules configurés.

Pour ajouter un module, sélectionnez un emplacement et cliquez deux fois sur une référence dans l'arbre de gauche. Vous pouvez également utiliser les boutons suivants:

Valeur | Description
 | Ajoute à la configuration le module sélectionné dans l'arbre des références.
 | Retire le module sélectionné de la configuration.
 | Déclare le module sélectionné vers la gauche.
 | Déclare le module sélectionné vers la droite.
 | Télécharge la configuration depuis le système cible. Le système cible T5 doit être connecté.

Quand la configuration est prête, appuyez sur OK pour l'appliquer.

Si l'option Déclarer les variables est validée quand vous appuyez sur OK, les variables IEC sont automatiquement déclarées et connectées. Vous devez spécifier un préfixe pour les variables créées.


Weihenstephan standard - Client configuration

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Weihenstephan standard - Client configuration

Previous chapter Next chapter Show all Show all Hide all Hide all

The workbench includes a fully integrated configurator for Weihenstephan standard client protocol. Please refer to the following topics in that page for detailed information on how to use and configurate the protocol:

Data exchange - configuration

The T5 runtime manages a intermediate variable map representing Weihenstephan data to read or write. A dedicated configuration tool is integrated in the Workbench. Run it using the File / Open / Fieldbus Configuration menu command from the main window. Then select the Weihenstephan client configuration.

The configuration is represented as a tree:

- Weihenstephan client configuration
- Server (*)
- Group (*)
- Exchanged Variable (*)

(*) The items with this mark can appear several times in the configuration.

Configuration

You need to configure the network in order to exchange variables. A Weihenstephan server is identified by its IP address and its port number (usually 5000). Connections to multiple servers can be defined.

Groups can be freely defined in order to arrange linked variables. A group can either be a set of individual tags that will be read or written one by one, or can refer to a list of tags according to device conventions. You don't need no enter any particular settings in case of individual tags. In case of a list supported by the device, you need to specify the following options:

Option

Description

(List)

The tag of the list object such as defined in the device.

(List Tags)

The exact list of tags contained in the list. This must fit exactly the definition of the list such as described in the device. All tags within the list must be specified in the correct order, even if some of them are not used. Tags are entered separated by comas. Note that this is done automatically when a list is imported from XML file or uploaded from a device.

If you prefix the list of tags with "MIXED,", then requests READ_MIXED_LIST / WRITE_MIXED_LIST will be used instead of READ_LIST / WRITE_LIST.

Example: MIXED,11,23,25

Warning: If a tag is specified for the list, then the list should not contain a mix of read and written tags.

Hint: As the configuration of the list needs to match the configuration of the device exactly, including tags and the order of tags, it is advised to create the configuration for the list automatically by importing the PDACONF.XML or by importing the configuration directly from the device. (Device must support reading the configuration)

For each linked variable you have to enter:

  • Its symbol (the IEC1131 variable).
  • Its tag number according to Weihenstephan standard.
  • Its type according to Weihenstephan standard.
  • Its tag name in the Weihenstephan server.
  • An access mode (read or write).
  • Possibly a bit number for a single bit information within a HEX32 tag.

When specifying the access mode, the following options are possible:

Option | Description
Read | The variable is read from the server.
Write | The variable is sent to the server.
Nb. Err. | The variable receives as a status information the number of errors (invalid tags) detected furing the last exchange poll.
Err. Code | The variable receives as a status information the error code of the first error detected furing the last exchange poll. The error code complies to Weihenstephan standard conventions.
Err. Tag | The variable receives as a status information the tag number related to the first error detected during the last exchange poll.

Alternatively, when a server is selected in the tree, you can use the following commands from the contextual popup menu:

  • Import device XML configuration

    This command browses the disk for the XML file defining the configuration of the device server.

  • Upload device configuration

    This command connects to the server and automatically read the configuration of the device through ETHERNET.

After both Import or Upload, a box is open and shows all available tags of the read configuration. Here you can select which tag you want to keep in the fonciguration tree. Groups are automatically created according to the Weihenstephan standard conventions.

In the tag selection box, you can check the Declare variables for checked items. This automatically declares IEC1131 variables for all selected tags. Declared variables have the same name as the corresponding tags.

Data types

You can freely map a variable of any data type to an I/O. The runtime automatically converts the value to the type of the variable. However, for a "STRING16" tag, you need to connect a variable declared as STRING. All basic data types are supported.


E/S virtuelles en mémoire partagée - configuration

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> E/S virtuelles en mémoire partagée - configuration

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier inclut un configurateur pour des E/S virtuelles stockées dans un espace mémoire nommé du système.

Echange de données - configuration

La cible T5 runtime peut lier ses variables à tout emplacement dans le bloc de mémoire partagée. Un outil de configuration dédié est inclus. Utilisez la commande de menu Fichier / Ouvrir / Configuration bus de terrain et sélectionnez la configuration Mémoire partagée.

The configuration est représentée sous la forme d'un arbre:

- Configuration mémoire partagée
- Bloc de mémoire (*)
- Groupe (*)
- variable échangée (*)

(*) Les items avec cette marque peuvent apparaître plusieurs fois.

Configuration

A- Espaces mémoire

Il vous faut tout d'abord déclarer un espace mémoire. La mémoire est isentifiée par un nom qui sera utilisée pour l'objet mémoire dans le système Windows. Vous devez également spécifier la taille du bloc (en octets). Plusieurs blocs mémoires peuvent être configurés dans la même application.

Plusieurs modes d'ouverture sont disponibles quand l'application démarre:

  • Allouer la mémoire (et créer l'objet système Windows).
  • Se lier à un bloc mémoire déjà alloué.
  • Essayer de se lier au bloc mémoire et l'allouer s'il n'existe pas.

De plus, vous pouvez spécifier un accès exclusif aux données en mémoire partagée.

B- Groupes

Au sein d'un espace mémoire, les variables peuvent être librement organisées en groupes.

C- Variables

Vous devez ensuite relier les variables à des emplacements dans la mémoire partagée. Pour chaque variable, vous devez définir son offset en mémoire partagée et son format de stockage.

De plus vous devez indiquer le mode d'échange:

  • Entrée (de la mémoire partagée vers la cible).
  • Sortie (de la cible vers la mémoire partagée).
  • Bidirectionnel.

Pour un accès bidirectionnel, la cible implémente l'algirithme suivant:

si la valeur a changée dans la cible (*)
alors
copier de la cible vers la mémoire
sinon
copier de la mémoire vers la cible
finsi

(*) au premier cycle, la valeur est considérée comme changée si elle est différente de 0.

Types de données

Vous pouvez librement relier une variable de tout type, même si son type IEC ne correspond pas au format de stockage. La cible convertit automatiquement les données dans ce cas. Tousles types de variables sont supportés.

info Info

Quand plusieurs cibles tournent sur la même machine, l'accès à la mémoire partagée permet de configurer facilement des variables "super global" partagées entre les cibles.


Configuration d'E/S Woodhead (ApplicomIO)

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Configuration d'E/S Woodhead (ApplicomIO)

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier inclut un configurateur intégré pour les entrées/sorties ApplicomIO. La configuration du bus est réalisée avec la console ApplicomIO de Woodhead, et peut être directement importée. Les pages suivantes décrivent la configuration:

Echange de données - configuration

La cible T5 gère une carte intermédiaire représentant les entrées et sorties ApplicomIO. Un outil de configuration dédié est intégré à l'atelier. Utilisez la commande Fichier / Ouvrir / Configuration bus de terrain dans le menu de la fenêtre principale. Puis sélectionnez la configuration ApplicomIO.

La configuration est représentée sous la forme d'un arbre:

- Configuration ApplicomIO
- Carte ApplicomIO (*)
- Equipement ApplicomIO (*)
- Variable échangée (*)

(*) Les items avec cette marque peuvent apparaître plusieurs fois.

Configuration

Vous devez configurer le réseau et lier les variables aux entrées/sorties. Une carte ApplicomIO est identifiée par son numéro et une description. Un équipement est identifié par son numéro et une description.

Pour chaque variable vous devez définir:

  • Son symbole.
  • Un offset (dans l'équipement).
  • Un mode (entrée ou sortie).
  • Un format de donnée dans la carte ApplicomIO.

Quand le noeud principal de la configuration est sélectionnez, vous pouvez lancer la commande Importer la configuration ApplicomIO depuis le menu "bouton droit" et sélectionner la configuration ApplicomIO à importer (fichier XML). Dans ce cas l'arbre de configuration est automatiquement créé et toutes les variables déclarées dans le projet.

Types de données

Vous pouvez librement connecter des variables de tout type à une E/S. La cible convertit les données en fonction du type choisi. Les variables de type STRING ne sont pas supportées.


Configuration E/S XFlow

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> Configuration E/S XFlow

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier inclut un outil de configuration intégré pour des entrées/sorties virtuelles vers le logiciel XFlow de NAPAC. Les échanges avec XFlow sont disponibles avec la cible "T5 runtime for Windows XP".

Echange de données - configuration

La cible T5 runtime maps peut échanger ses variables avec XFlow. Un outil de configuration dédié est intégré. Utilisez la commande de menu Fichier / Ouvrir / Configuration bus de terrain et sélectionnez la configuration XFlow.

La configuration est représentée sous la forme d'un arbre:

- Configuration
- Base de données XFlow (*)
- Groupe (*)
- Variable échangée (*)

(*) Les items avec cette marque peuvent apparaître plusieurs fois.

Configuration

A- Base de données XFlow

Vous devez d'abord spécifier une instance d'une base de donnée XFlow. L'instance est identifiée par l'adresse IP de la machine où XFlow s'exécute. Utilisez l'adresse locale LOCAL si XFlow s'exécute sur la même machine que la cible. Le système peut se connecter à un XFlow distant à travers le réseau. Vous pouvez déclarer plusieurs instances de XFlow au sein d'une même configuration.

De plus vous devez spécifier un nom de tache XFlow valide pour établir la connexion. Le nom de tache par défaut T5XP est proposé. Cette tache doit être déclarée dans la configuration avancée de XFlow, sans mentionner aucun fichier EXE ou DLL à exécuter.

B- Groupes

Au sein d'une instance XFlow, les variables peuvent être librement organisées en groupes.

C- Variables

L'identification des variables XFlow se fait par leur nom dans la base de données XFlow. Si vous ne spécifiez rien pour le nom XFlow, alors le symbole de la variable est utilisé.

si vous spécifiez <status> comme nom XFlow, alors la variable reçoit l'état de la connexion avec XFLOW (0 = OK).

Si l'option Doit exister est validée, la cible vérifie que la variable existe dans XFlow. Dans ce cas, la cible ne démarrera pas si la variable n'est pas trouvée. Si cette option est dévalidée, la cible démarre même si la variable n'existe pas. La variable pourra être créée plus tard dans XFlow.

Vous devez ensuite sélectionner un type d'échange. Les choix possibles sont:

Choix | Description
entrée | La valeur de la variable est systématiquement copiée de XFlow vers la cible.
sortie | La valeur de la variable est copiée de la cible vers XFlow. La copie est effectuée lors du premier cycle, puis à chaque changement d'état de la variable.
bidirectionnel | Pour un accès bidirectionnel, la cible implémente l'algorithme suivant: si la valeur a changée dans la cible (*) alors copier de la cible vers la mémoire sinon copier de la mémoire vers la cible finsi (*) au premier cycle, la valeur est considérée comme changée si elle est différente de 0.
état d'alarme | L'état d'alarme de la variable est systématiquement copié de XFlow vers la cible.

info Info

Les échanges avec XFlow sont réalisés de façon asynchrone dans une tache de basse priorité afin de ne pas perturber le temps de cycle.

Import des symboles de XFlow

Vous pouvez également importer les définitions de variables de XFlow pour automatiser la configuration. Pour ceci, sélectionnez une instance XFlow dans l'arbre de configuration puis lancez la commande Importer les symboles XFlow depuis le menu contextuel. Ceci suppose que l'instance de XFlow sélectionnée est actuellement active.

Lors de l'importation, l'ensemble de la configuration de l'instance XFlow sélectionnée est écrasée et remplacée par les symboles importés. Les variables correspondantes sont automatiquement déclarées dans le projet.

Types de données

Vous pouvez librement connecter des variables de tout type à une E/S. La cible convertit les données en fonction du type choisi. Les variables de type STRING ne sont pas supportées.


zenon Runtime connection configuration

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> zenon Runtime connection configuration

Previous chapter Next chapter Show all Show all Hide all Hide all

The workbench supports the configuration of the so called shared-memory-connection between zenon and Runtime.

With this local connection it is possible to exchange zenon variables with a local Soft PLC Runtime (SCADA Logic).

Data exchange - configuration

To establish the communication between zenon and the Runtime run the Fieldbus configuration using File / Open / Fieldbus Configuration menu command from the main menu. Then run the Insert / Insert configuration menu command and select Runtime to zenon RT connection:

The configuration is represented as single entry:

- Runtime to zenon RT connection configuration

You can freely map a zenon variable to straton. The variable will appear with the [image] sign in the variable grid.

The mapping of variables can be done in zenon only. Do that via setting the variable property Additional settings / External settings / Externally visible - check box to TRUE.

info Info

It is possible to communicate complex data type variable via this connection. However there are some restrictions with complex data type variables:

  • The functions for checking the status of a variable (isvalid or isdirty) and the set dirty function are not working with complex data type variables.
  • Reading the status bit information and date/time stamp of complex data type variables does not work.

Data types

All data types are allowed.

Related Functions

There are several functions related to this I/O driver. For more information please see this chapter:

Variable status bit handling

It is possible to read the variable status bits and time/date stamp coming from zenon. For more information please see this chapter: Variable status bits.

Dans cette section

zenon to Runtime Connection Functions


zenon to Runtime Connection Functions

IEC 61131-3 Programming Environment -> Configuration des bus de terrain -> zenon Runtime connection configuration -> zenon to Runtime Connection Functions

Previous chapter Next chapter Show all Show all Hide all Hide all

The following functions are available by using the zenon to Runtime Connection I/O driver:

zenrt_isValid | Is the value of the given variable valid?
zenrt_setDirty | Marks the given variable as dirty, which will cause the variable to be written.
zenrt_isDirty | Checks if the current value of the given variable is different from the last read resp. written value.
zenrt_red | Checks if connected to zenon server.

zenrt_isValid

Is the value of the given variable valid?

Can be used if status bits are disabled to check if a variable has been read/initialized by zenon. The information obtained is basically the same as with the timestamp.

 | Data type | Description
Inputs |  |
VARIABLE | ANY | Variable name of variable to be checked if valid
Outputs |  |
Q | BOOL | TRUE if variable is valid

zenrt_setDirty

Marks the given variable as dirty, which will cause the variable to be written to zenon.

info Info

If the value of the variable changes after calling the function, the new value will be written and the current value is lost.

 | Data type | Description
Inputs |  |
VARIABLE | ANY | Variable name of variable to be set as dirty
Outputs |  |
Q | BOOL | TRUE if successfully set dirty

zenrt_isDirty

Checks if the current value of the given variable is different from the last read resp. written value.

 | Data type | Description
Inputs |  |
VARIABLE | ANY | Variable name of variable to be checked if dirty
Outputs |  |
Q | BOOL | TRUE if variable is dirty

zenrt_red

Checks if connected to zenon server. Uses the zenon failure detection timeout configured in the bus driver settings.

 | Data type | Description
Inputs |  |
MAX_SWITCH | DINT | Maximum number of tries of redundancy switches
Outputs |  |
SWITCH | BOOL | If TRUE the zenon is not available or the zenon Runtime is Standby. I.e. the Number of MAX_SWITCH has not been exceeded yet.
ERROR | BOOL | If TRUE the maximum number of redundancy switches is reached.


Outils

IEC 61131-3 Programming Environment -> Outils

En plus des fonctions de programmation et de test, l'atelier offre une riche collection d'outils pour la gestion et la maintenance des projets:

  • Références croisées
  • Import / export de projets
  • Comparaison de projets
  • Génération de documents HTML
  • Applications de visualisation
  • La console

Dans cette section

Références croisées

Import / Export de projets

Comparaison de projets

Génération de documentation HTML

Applications de visualisation

La console

Code Checker


Références croisées

IEC 61131-3 Programming Environment -> Outils -> Références croisées

Previous chapter Next chapter Show all Show all Hide all Hide all

Les outils de références croisées vous permettent de chercher l'utilisation des variables dans l'ensemble des programmes de l'application. C'est aussi un outil puissant pour naviguer dans les programmes pendant le développement ou le test.

Le résultat des recherches est affiché dans la fenêtre de sortie.

Chercher dans le programmes

Utilisez la commande de menu Edition / Chercher / Chercher dans les fichiers pour rechercher un texte dans l'ensemble des programmes. Le texte est cherché dans tous les programmes. Les occurences trouvées sont listées. Cliquez deux fois sur une occurence pour ouvrir le programme à cet emplacement.

Lister les variables non utilisées

Utilisez la commande Edition / Chercher / Variables non utilisées pour lister les variables et instances déclarées qui ne sont pas utilisées dans l'application. Cette commande est particulièrement utile pour "nettoyer" un projet.

Lister les éléments de librairie OEM

Utilisez la commande Edition / Chercher Eléments de librairie OEM pour lister les équipements d'E/S, fonctions et blocs fonctionnels en "C" utilisés dans l'application.

Remplacer dans tous les programmes

La commande de menu Edition / Remplacer dans les fichiers vous permet de remplacer un texte dans l'ensemble des programmes de l'application. Quand vous démarre cet outil, il exécute une première recherche et liste les programmes où le texte spécifié a été trouvé. Validez les programmes où remplacer le texte. L'emplacement de chaque texte remplacé est ensuite listé dans la fenêtre de sortie.


Import / Export de projets

IEC 61131-3 Programming Environment -> Outils -> Import / Export de projets

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier vous permet d'archiver les projets pour les échanger ou les sauvegarder. Une archive est un fichier compressé (ZIP) unique qui contient tous les fichiers du projet.

Utilisez les commandes du menu Fichier dans la fenêtre principale pour sauver le projet dans une archive ZIP ou ouvrir un projet directement depuis une archive ZIP.

Lors de l'export du projet, vous pouvez choisir d'inclure à l'archive la définition des éléments de librairie OEM (Equipements d'E/S, fonctions et blocs fonctionnels en "C") référencés dans le projet. Il est recommandé de valider cette option si vous utilisez des fonctions, blocs ou équipements qui risquent de ne pas être installés dans la librairie sur une autre machine.

Lors de l'import d'une archive ZIP, l'atelier construit un nouveau projet et y décompresse le contenu de l'archive. Vous pouvez sélectionner un nomm pour le projet importé, ainsi que son emplacement sur le disque. Si vous décidez d'importer les éléments de librairie OEM inclus dans l'archive, vous devrez confirmer les possibles cas d'écrasement en librairie. Vous pouvez choisir dans quelle librairie vous désirez mettre les éléments importés.

Note: il n'est pas possible d'écraser un élément déjà défini dans une autre librairie lors de l'import d'une archive.


Comparaison de projets

IEC 61131-3 Programming Environment -> Outils -> Comparaison de projets

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier inclut un outil graphique qui affiche les différences entre deux projets. Cet outil est très utile lors de la gestion des versions d'un projet et montre rapidement les changements pour un diagnostic et une maintenance facilités.

L'outil de comparaison de projets et lancé depuis le menu "Démarrer" de Windows Start, dans le groupe de l'atelier, par la commande "Compare projects". Vous devez spécifier le chemin complet vers les projets à comparer, et optionnellement sélectionner les options suivantes:

  • Ignorer la casse: Quand cette option est validée, la comparaison ignore la casse dans tous les textes comparés.
  • Ignorer les commentaires: Quand cette option est validée, tous les commentaires sont retirés avant la comparaison.
  • Ignorer les espaces: Quand cette option est sélectionnée, la comparaison ignore tous les espaces et sauts de lignes additionnels dans les fichiers de texte.
  • Ignorer la présentation des diagrammes: Quand cette option est sélectionnée, l'outil ne compare que la ligique des diagrammes. Les changements dûs à la présentation (tels que retailler ou déplacer un objet) sont ignorés.
  • Trier les variables: Quand cette option est validée, la comparaison ne tient pas compte de l'ordre dans lequel les variables sont déclarées.

En plus de ces options, vous pouvez choisir le format pour la présentation des déclarations de variables:

  • Syntaxe IEC
  • Texte XML
  • Texte CSV

Pressez le bouton OK pour lancer la comparaison. Quand la comparaison est finie, une fenêtre vous permet d'explorer les projets et de montrer les différences. Les éléments suivants sont comparés:

  • Programmes
  • Déclaration des variables
  • Définitions (avec #define)
  • Options du projet

Les textes en noir sur blanc indiquent des éléments identiques. Une ligne en rouge sur fond gris montre une différence.

Une ligne en rouge sur fond blanc indique un élément contenant des différences. Cliquez deux fois sur la ligne pour explorer son contenu. Vous pouvez ensuite cliquer sur le bouton << pour revenir au niveau supérieur.

A tout moment la barre de titre montre les chemins des projets à gauche et à droite. L'identification complète de l'élément exploré est indiqué à droite du bouton <<.


Génération de documentation HTML

IEC 61131-3 Programming Environment -> Outils -> Génération de documentation HTML

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier inclut un outil pour générer automatiquement la documentation complète du projet en format HTML. Ceci fournit un moyen simple d'imprimer ou d'échanger la description de vos projets. Pendant la visualisation des pages HTML, de nombreux raccourcis de références croisées simplifient la navigation dans le document.

Pour générer le document, lancez la commande Outils / Générer un document Html depuis le menu de la fenêtre principale. Un assistant vous guide ensuite à travers les étapes pour la génération des pages. Voud devez sélectionner un répertoire où seront stockées les pages et les images associées. Il est recommandé de sélectionner un nouveau répertoire vierge lors de la première création du document d'un projett.

Quand la génération est complète, l'assistant vous propose de visualiser les pages générées si un navigateur est diponible sur votre machine.


Applications de visualisation

IEC 61131-3 Programming Environment -> Outils -> Applications de visualisation

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier inclut un outil de génération d'applications de visualisation basées sur le projet ouvert. L'application de visualisation est exécutée avec le "Monitoring Tool", qui permet la visualisation et le forçage des variables sans besoin d'un atelier complet. Lancez la commande Outils / Générer l'application de visualisation depuis le menu de la fenêtre principale pour lancer l'assistant qui vous guidera dans les étapes de la génération d'application.

info Info

Selon votre licence, l'outil de génération peut ne pas être disponible.

Principe

L'atelier (1) construit l'application de visualisation sous la forme d'un fichier unique (2). Le Monitoring Tool (3) exeécute l'application: il anime les documents en fonction des valeurs en temps réel des variables de la cible connectée (4). Une application de visualisation regroupe des programmes, des listes de variables, ainsi que les messages d'exécution en provenance de la cible. L'outil de visualisation permet également de forcer des variables. L'ensemble des documents disponibles pour la visualisation est défini lors de la construction de l'application. La suite de cette page décrit les opérations effecuées lors de l'utilisation de l'assistant pour la construction de l'application:

Identification de l'application

La première étape consiste à donner un nom à l'application. C'est le nom qui sera affiché dans la barre de titre du Monitoring Tool. La configuration de l'application de visualisation peut être sauvegardée avec le projet dans l'atelier. Vous pouvez sélectionner une configuration existante dans cette page pour reprendre une configuration et la modifier ou siplement la mettre à jour.

Type d'arbre et options principales

L'étape suivante définit les options principale de l'application. La liste des éléments disponibles est visible dans le Monitoring tool sous la forme d'un arbre. Vous pouvez choisir ici la forme de cette arbre parmi différentes présentations.

Si vous sélectionnez l'option Inclure la table de symboles, l'application travaillera avec la table de symboles complète générée par le compilateur. Vous devez alors vous assurer que la même version du projet se trouve dans la cible connecté au Monitoring Tool. Si vous ne sélectionnez pas cette option, le Monitoring Tool téléchargera les symboles depuis la cible lors de la connexion.. Dans ce cas, vous devez vous assurer que tous les symboles nécessaires sont embarqués dans l'application cible.

Sélection des éléments à visualiser

L'étape suivante consiste simplement à sélectionner les éléments du projet que vous désirez inclure dans l'application de visualisation.

Mots de passe pour les objets

Pour chaque élément à visualiser vou pouvez définir un mot de passe pour protéger l'accès au document ocrrespondant lors de la visualisation.

Mots de passe pour les variables

Vous pouvez définir des mots de passe pour protéger l'accès en écriture (forçage) aux variables de la cible pendant la visualisation. Pour chaque variable vous pouvez sélectionner un des modes de protection suivants:

  • Libre: la variable peut être forcée sans protection.
  • Protégé: le forçage de la variable requiert un mot de passe.
  • Non: la variable ne peut en aucun cas être forcée.

Glissez les variables depuis la liste du bas dans la liste des variables à protéger. La ligne Défaut indique le mode de protection à appliquer à toutes les variables non explicitement décrites dans la liste du haut.

Fichier de destination

Tout est prêt maintenant. L'étape suivante consiste à indiquer le chemin et le nom du fichier où l'application de visualisation sera enregistrée. L'application est stockée sous la forme d'un fichier unique et compressé.

C'est fini!

L'application est maintenant générée. Vous pouvez l'exécuter en mode simulation depuis le dernier volet de l'assistant. Cette page vous propose également de sauvegarder la configuration de l'application pour que vous puissiez la reprendre et a metre à jour ultérieurement.

Sécurité

Tous les programmes stockées dans l'application de visualisation sont cryptés. L'utilisateur du Monitoring Tool ne pourra pas reprendre ni copier le contenu des programmes visualisés.


La console

IEC 61131-3 Programming Environment -> Outils -> La console

L'atelier inclut une console où vous pouvez, pendant le développement d'un projet, effectuer des opérations en mode "ligne de commande" plutôt que d'utiliser les menus de l'atelier. Ceci est très utile pour les taches répétitives ou pour manipuler les objets de très gros projets.

Pendant l'édition, ouvrez l'onglet Console de la fnêtre de sortie:

La commande "?" liste les commandes disponibles et leur syntaxe. Voici les commandes disponibles, classées par catégories.

Commandes spéciales

Commande | Description
? | Affiche l'aide.
HELP | Affiche l'aide (identique à "?").
FOR | Répète une commande.

Gestion de programmes

Commande | Description
CreateProgram | Crée un programme principal.
CreateSP | Crée un sous-programme.
CreateUDFB | Crèe un UDFD.
CreateSfcChild | Crèe un programme SFC fils.
CopyProgram | Duplique un programme.
DeleteProgram | Supprime un programme.
EnumProgram | Enumère les programmes.
GetProgram | Affiche les détails d'un programme.

Gestion des variables

Commande | Description
CreateVar | Crée une variable.
CreateInParam | Crée un paramètre d'entrée.
CreateOutParam | Crée un paramètre de sortie.
DimVar | Définit les dimensions d'une variable.
DeleteVar | Supprime une variable.
InitVar | Définit la valeur initiale d'une variable.
SybVar | Spécifie si le symbole d'une variable doit être embarqué.
ProfileVar | Définit le profil et les propriétés embarquées d'une variable.
EnumVar | Enumère les variables.
GetVar | Affiche les détails d'une variable.
GetVarProp | Affiche les propriétés embarquées d'une variable.

Gestion des types de données (structures)

Commande | Description
CreateStruct | Crée une structure.
DeleteStruct | Supprime une structure.
EnumStruct | Enumère les structures.

Gestion des cartes d'E/S

Commande | Description
CreateIO | Crée une instance d'un périphérique d'E/S.
IOParam | Spécifie un paramètre d'une carte d'E/S.
IOAlias | Donne un alias à une voie d'E/S.
DeleteIO | Supprime une instance d'un périphérique d'E/S.
EnumIO | Enumère les cartes d'E/S.
GetIO | Affiche les détails d'un carte d'E/S.

Gestion des textes de commentaire

Commande | Description
Comm | Définit un commentaire.
Tag | Définit un commentaire court (tag) - variables seulement.
GetComm | Affiche un commentaire.
GetTag | Affiche un commentaire court (tag) - variables seulement.

La suite de ce document détaille chaque commande.

Dans cette section

Commandes spéciales

Gestion de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire


Commandes spéciales

IEC 61131-3 Programming Environment -> Outils -> La console -> Commandes spéciales

Previous chapter Next chapter Show all Show all Hide all Hide all

seealso See also

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console

Dans cette section

? / HELP - Affiche l'aide

FOR - Répète une commande


? / HELP - Affiche l'aide

IEC 61131-3 Programming Environment -> Outils -> La console -> Commandes spéciales -> ? / HELP - Affiche l'aide

Previous chapter Next chapter Show all Show all Hide all Hide all

? / HELP - Affiche l'aide

Syntaxe:

HELP [ command ]
? [ command ]

Arguments:

command : nom de la commande pour laquelle l'aide est souhaitée

info Info

Si l'argument "command" n'est pas spécifié, HELP donne la liste des commandes disponibles.

seealso See also

FOR - Répète une commande

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


FOR - Répète une commande

IEC 61131-3 Programming Environment -> Outils -> La console -> Commandes spéciales -> FOR - Répète une commande

Previous chapter Next chapter Show all Show all Hide all Hide all

FOR - Répète une commande

Syntaxe:

FOR <min> TO <max> <command> [ args ]

Arguments:

min : valeur entière pour la première itération (voir les notes)

max : valeur entière pour la dernière itération (voir les notes)

command : commande à exécuter

args : arguments de la commande

info Info

Dans les arguments de la commande, voud pouvez utiliser le caractère '%' pour indiquer le numéro de l'itération. Si vous spécifiez plusieurs caractères '%' onsécutifs, ceci représente l'index d'itération formatté sur plusieurs digits, complétés à gauche par des '0'. Par exemple la commande:

FOR 1 TO 3 CreateProgram LD Prog%%

crée 3 programmes LD appelés Prog01, Prog02 and Prog03

Certaines commandes ne supportent pas les itérations avec FOR. Référez-vous à la descrption des commandes.

seealso See also

? / HELP - Affiche l'aide

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


Gestion de programmes

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion de programmes

Previous chapter Next chapter Show all Show all Hide all Hide all

seealso See also

Commandes spéciales

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console

Dans cette section

CreateProgram - Crée un programme principal

CreateSP - Crée un sous-programme

CreateUDFB - Crée un UDFB

CreateSfcChild - Crée un programme SFC fils

CopyProgram - Duplique un programme

DeleteProgram - Supprime un programme

EnumProgram - Enumère les programmes

GetProgram - Affiche les détails d'un programme


CreateProgram - Crée un programme principal

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion de programmes -> CreateProgram - Crée un programme principal

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateProgram - Crée un programme principal

Syntaxe:

CreateProgram <language> <name>

Arguments:

language : SFC ou FBD ou LD ou ST ou IL

name : nom du programme

info Info

Le programme est créé en fin de cycle (après le dernier programme existant).

Cette commande peut être utilisée dans une boucle FOR.

seealso See also

CreateProgram - Crée un programme principal

CreateSP - Crée un sous-programme

CreateUDFB - Crèe un UDFD

CreateSfcChild - Crèe un programme SFC fils

CopyProgram - Duplique un programme

DeleteProgram - Supprime un programme

EnumProgram - Enumère les programmes

GetProgram - Affiche les détails d'un programme

Commandes spéciales

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


CreateSP - Crée un sous-programme

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion de programmes -> CreateSP - Crée un sous-programme

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateSP - Crée un sous-programme

Syntaxe:

CreateSP <language> <name>

Arguments:

language : FBD ou LD ou ST ou IL

name : nom du sous-programme

info Info

Cette commande peut être utilisée dans une boucle FOR.

seealso See also

CreateProgram - Crée un programme principal

CreateUDFB - Crèe un UDFD

CreateSfcChild - Crèe un programme SFC fils

CopyProgram - Duplique un programme

DeleteProgram - Supprime un programme

EnumProgram - Enumère les programmes

GetProgram - Affiche les détails d'un programme

Commandes spéciales

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


CreateUDFB - Crée un UDFB

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion de programmes -> CreateUDFB - Crée un UDFB

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateUDFB - Crée un UDFB

Syntaxe:

CreateUDFB <language> <name>

Arguments:

language : FBD ou LD ou ST ou IL

name : nom du bloc

info Info

Cette commande peut être utilisée dans une boucle FOR.

seealso See also

CreateProgram - Crée un programme principal

CreateSP - Crée un sous-programme

CreateSfcChild - Crèe un programme SFC fils

CopyProgram - Duplique un programme

DeleteProgram - Supprime un programme

EnumProgram - Enumère les programmes

GetProgram - Affiche les détails d'un programme

Commandes spéciales

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


CreateSfcChild - Crée un programme SFC fils

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion de programmes -> CreateSfcChild - Crée un programme SFC fils

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateSfcChild - Crée un programme SFC fils

Syntaxe:

CreateSfcChild <parent> <name>

Arguments:

parent : nom du programme SFC père

name : nomm du programme fils

info Info

Cette commande peut être utilisée dans une boucle FOR.

seealso See also

CreateProgram - Crée un programme principal

CreateSP - Crée un sous-programme

CreateUDFB - Crèe un UDFD

CopyProgram - Duplique un programme

DeleteProgram - Supprime un programme

EnumProgram - Enumère les programmes

GetProgram - Affiche les détails d'un programme

Commandes spéciales

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


CopyProgram - Duplique un programme

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion de programmes -> CopyProgram - Duplique un programme

Previous chapter Next chapter Show all Show all Hide all Hide all

CopyProgram - Duplique un programme

Syntaxe:

CopyProgram <program> <newprogram>

Arguments:

program : nom du programme source

newprogram : nom du programme de destination à créer

info Info

Cette commande est utilisée pour créer des copies d'un programme. Elle ne doit pas être utilisée pour écraser un programme existant.

Cette commande peut être utilisée dans une boucle FOR.

seealso See also

CreateProgram - Crée un programme principal

CreateSP - Crée un sous-programme

CreateUDFB - Crèe un UDFD

CreateSfcChild - Crèe un programme SFC fils

DeleteProgram - Supprime un programme

EnumProgram - Enumère les programmes

GetProgram - Affiche les détails d'un programme

Commandes spéciales

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


DeleteProgram - Supprime un programme

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion de programmes -> DeleteProgram - Supprime un programme

Previous chapter Next chapter Show all Show all Hide all Hide all

DeleteProgram - Supprime un programme

Syntaxe:

DeleteProgram <program>

Arguments:

program : programme à supprimer - peut contenir des caractères génériques "?"

info Info

Cette commande peut être utilisée dans une boucle FOR.

seealso See also

CreateProgram - Crée un programme principal

CreateSP - Crée un sous-programme

CreateUDFB - Crèe un UDFD

CreateSfcChild - Crèe un programme SFC fils

CopyProgram - Duplique un programme

EnumProgram - Enumère les programmes

GetProgram - Affiche les détails d'un programme

Commandes spéciales

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


EnumProgram - Enumère les programmes

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion de programmes -> EnumProgram - Enumère les programmes

Previous chapter Next chapter Show all Show all Hide all Hide all

EnumProgram - Enumère les programmes

Syntaxe:

EnumProgram [ filter ]

Arguments:

filter : filtre - peut contenir des caractères génériques "?" et "*"

info Info

Cette commande ne peut pas être utilisée dans une boucle FOR

seealso See also

CreateProgram - Crée un programme principal

CreateSP - Crée un sous-programme

CreateUDFB - Crèe un UDFD

CreateSfcChild - Crèe un programme SFC fils

CopyProgram - Duplique un programme

DeleteProgram - Supprime un programme

GetProgram - Affiche les détails d'un programme

Commandes spéciales

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


GetProgram - Affiche les détails d'un programme

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion de programmes -> GetProgram - Affiche les détails d'un programme

Previous chapter Next chapter Show all Show all Hide all Hide all

GetProgram - Affiche les détails d'un programme

Syntaxe:

GetProgram <program>

Arguments:

program : nom du programme

info Info

Cette commande ne peut pas être utilisée dans une boucle FOR

seealso See also

CreateProgram - Crée un programme principal

CreateSP - Crée un sous-programme

CreateUDFB - Crèe un UDFD

CreateSfcChild - Crèe un programme SFC fils

CopyProgram - Duplique un programme

DeleteProgram - Supprime un programme

EnumProgram - Enumère les programmes

Commandes spéciales

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


Gestion des variables

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des variables

Previous chapter Next chapter Show all Show all Hide all Hide all

seealso See also

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console

Dans cette section

CreateVar - Crée une variable

CreateInParam - Crée un paramètre d'entrée

CreateOutParam - Crée un paramètre de sortie

DimVar - Définit les dimensions d'une variable

DeleteVar - Supprime une variable

InitVar - Spécifie la valeur initiale d'une variable

SybVar - Spéfifie si le symbole d'une variable doit être embarqué

ProfileVar - Spécifie le profil etr les propriétés embarquées d'une variable

EnumVar - Enumère les variables

GetVar - Affiche les détails d'une variable

GetVarProp - Affiche les propriétés embarquées d'une variable


CreateVar - Crée une variable

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des variables -> CreateVar - Crée une variable

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateVar - Crée une variable

Syntaxe:

CreateVar <name> <type>

Arguments:

name : nom de la variable - voir les notes

type : type de données (peut être un bloc fonctionnel pour une instance)

info Info

Cette fonction s'applique aux variables ou aux items de structure. Le nom de la variable doit être préfixé par le nom de son groupe et le séparateur '.' . La variable est considéree globale si aucun groupe d'est spécifié. Voici quelques exemples:

Argument | Description
VarName | une variable globale
RETAIN.VarName | une variable RETAIN
ProgName.LocVarName | une variable locale à un programme
UDFBName.ParamName | un paramètre d'UDFB
StructName.Item | un item de structure

Cette commande peut être utilisée dans une boucle FOR

seealso See also

CreateInParam - Crée un paramètre d'entrée

CreateOutParam - Crée un paramètre de sortie

DimVar - Définit les dimensions d'une variable

DeleteVar - Supprime une variable

InitVar - Définit la valeur initiale d'une variable

SybVar - Spécifie si le symbole d'une variable doit être embarqué

ProfileVar - Définit le profil et les propriétés embarquées d'une variable

EnumVar - Enumère les variables

GetVar - Affiche les détails d'une variable

GetVarProp - Affiche les propriétés embarquées d'une variable

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


CreateInParam - Crée un paramètre d'entrée

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des variables -> CreateInParam - Crée un paramètre d'entrée

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateInParam - Crée un paramètre d'entrée

Syntaxe:

CreateInParam <POU>.<name> <type>

Arguments:

POU : nom du sous-programme ou UDFB

name : nom du paramètre

type : type de données

info Info

Cette commande peut être utilisée dans une boucle FOR

seealso See also

CreateVar - Crée une variable

CreateOutParam - Crée un paramètre de sortie

DimVar - Définit les dimensions d'une variable

DeleteVar - Supprime une variable

InitVar - Définit la valeur initiale d'une variable

SybVar - Spécifie si le symbole d'une variable doit être embarqué

ProfileVar - Définit le profil et les propriétés embarquées d'une variable

EnumVar - Enumère les variables

GetVar - Affiche les détails d'une variable

GetVarProp - Affiche les propriétés embarquées d'une variable

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


CreateOutParam - Crée un paramètre de sortie

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des variables -> CreateOutParam - Crée un paramètre de sortie

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateOutParam - Crée un paramètre de sortie

Syntaxe:

CreateOutParam <POU>.<name> <type>

Arguments:

POU : nom du sous-programme ou UDFB

name : nom du paramètre

type : type de données

info Info

Cette commande peut être utilisée dans une boucle FOR.

seealso See also

CreateVar - Crée une variable

CreateInParam - Crée un paramètre d'entrée

DimVar - Définit les dimensions d'une variable

DeleteVar - Supprime une variable

InitVar - Définit la valeur initiale d'une variable

SybVar - Spécifie si le symbole d'une variable doit être embarqué

ProfileVar - Définit le profil et les propriétés embarquées d'une variable

EnumVar - Enumère les variables

GetVar - Affiche les détails d'une variable

GetVarProp - Affiche les propriétés embarquées d'une variable

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


DimVar - Définit les dimensions d'une variable

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des variables -> DimVar - Définit les dimensions d'une variable

Previous chapter Next chapter Show all Show all Hide all Hide all

DimVar - Définit les dimensions d'une variable

Syntaxe:

DimVar <var> <Dim1> [ Dim2 [ Dim3 ] ]

Arguments:

var : nom de la variable - voir les notes

dim1, dim2, dim3 : dimensions (de la plus haute à la plus basse)

info Info

Cette fonction s'applique aux variables, aux paramètres d'entrées et de sorties de sous-programmes et d'UDFB ou aux items de structure. Le nom de la variable doit être préfixé par le nom de son groupe et le séparateur '.' . La variable est considéree globale si aucun groupe d'est spécifié. Voici quelques exemples:

Argument | Description
VarName | une variable globale
RETAIN.VarName | une variable RETAIN
ProgName.LocVarName | une variable locale à un programme
UDFBName.ParamName | un paramètre d'UDFB
StructName.Item | un item de structure

Cette commande peut être utilisée dans une boucle FOR

seealso See also

CreateVar - Crée une variable

CreateInParam - Crée un paramètre d'entrée

CreateOutParam - Crée un paramètre de sortie

DeleteVar - Supprime une variable

InitVar - Définit la valeur initiale d'une variable

SybVar - Spécifie si le symbole d'une variable doit être embarqué

ProfileVar - Définit le profil et les propriétés embarquées d'une variable

EnumVar - Enumère les variables

GetVar - Affiche les détails d'une variable

GetVarProp - Affiche les propriétés embarquées d'une variable

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


DeleteVar - Supprime une variable

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des variables -> DeleteVar - Supprime une variable

Previous chapter Next chapter Show all Show all Hide all Hide all

DeleteVar - Supprime une variable

Syntaxe:

DeleteVar <var>

Arguments:

var : nom de la variable - voir les notes

info Info

Cette fonction s'applique aux variables, aux paramètres d'entrées et de sorties de sous-programmes et d'UDFB ou aux items de structure. Le nom de la variable doit être préfixé par le nom de son groupe et le séparateur '.' . La variable est considéree globale si aucun groupe d'est spécifié. Voici quelques exemples:

Argument | Description
VarName | une variable globale
RETAIN.VarName | une variable RETAIN
ProgName.LocVarName | une variable locale à un programme
UDFBName.ParamName | un paramètre d'UDFB
StructName.Item | un item de structure

Cette commande peut être utilisée dans une boucle FOR

seealso See also

CreateVar - Crée une variable

CreateInParam - Crée un paramètre d'entrée

CreateOutParam - Crée un paramètre de sortie

DimVar - Définit les dimensions d'une variable

InitVar - Définit la valeur initiale d'une variable

SybVar - Spécifie si le symbole d'une variable doit être embarqué

ProfileVar - Définit le profil et les propriétés embarquées d'une variable

EnumVar - Enumère les variables

GetVar - Affiche les détails d'une variable

GetVarProp - Affiche les propriétés embarquées d'une variable

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


InitVar - Spécifie la valeur initiale d'une variable

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des variables -> InitVar - Spécifie la valeur initiale d'une variable

Previous chapter Next chapter Show all Show all Hide all Hide all

InitVar - Spécifie la valeur initiale d'une variable

Syntaxe:

InitVar <var> [ value ]

Arguments:

var : nom de la variable - voir les notes

value : valeur initiale (valeur initiale supprimée si cet argument est omis)

info Info

Cette fonction s'applique aux variables, aux paramètres d'entrées et de sorties de sous-programmes et d'UDFB ou aux items de structure. Le nom de la variable doit être préfixé par le nom de son groupe et le séparateur '.' . La variable est considéree globale si aucun groupe d'est spécifié. Voici quelques exemples:

Argument | Description
VarName | une variable globale
RETAIN.VarName | une variable RETAIN
ProgName.LocVarName | une variable locale à un programme
UDFBName.ParamName | un paramètre d'UDFB
StructName.Item | un item de structure

Cette commande peut être utilisée dans une boucle FOR

seealso See also

CreateVar - Crée une variable

CreateInParam - Crée un paramètre d'entrée

CreateOutParam - Crée un paramètre de sortie

DimVar - Définit les dimensions d'une variable

DeleteVar - Supprime une variable

SybVar - Spécifie si le symbole d'une variable doit être embarqué

ProfileVar - Définit le profil et les propriétés embarquées d'une variable

EnumVar - Enumère les variables

GetVar - Affiche les détails d'une variable

GetVarProp - Affiche les propriétés embarquées d'une variable

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


SybVar - Spéfifie si le symbole d'une variable doit être embarqué

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des variables -> SybVar - Spéfifie si le symbole d'une variable doit être embarqué

Previous chapter Next chapter Show all Show all Hide all Hide all

SybVar - Spéfifie si le symbole d'une variable doit être embarqué

Syntaxe:

SybVar <var> < ON | OFF >

var : nom de la variable - peut contenir des caractères génériques "?" et "*" - voir les notes

info Info

Cette fonction s'applique aux variables, aux paramètres d'entrées et de sorties de sous-programmes et d'UDFB ou aux items de structure. Le nom de la variable doit être préfixé par le nom de son groupe et le séparateur '.' . La variable est considéree globale si aucun groupe d'est spécifié. Voici quelques exemples:

Argument | Description
VarName | une variable globale
RETAIN.VarName | une variable RETAIN
ProgName.LocVarName | une variable locale à un programme
UDFBName.ParamName | un paramètre d'UDFB
StructName.Item | un item de structure

Cette commande peut être utilisée dans une boucle FOR

seealso See also

CreateVar - Crée une variable

CreateInParam - Crée un paramètre d'entrée

CreateOutParam - Crée un paramètre de sortie

DimVar - Définit les dimensions d'une variable

DeleteVar - Supprime une variable

InitVar - Définit la valeur initiale d'une variable

ProfileVar - Définit le profil et les propriétés embarquées d'une variable

EnumVar - Enumère les variables

GetVar - Affiche les détails d'une variable

GetVarProp - Affiche les propriétés embarquées d'une variable

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


ProfileVar - Spécifie le profil etr les propriétés embarquées d'une variable

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des variables -> ProfileVar - Spécifie le profil etr les propriétés embarquées d'une variable

Previous chapter Next chapter Show all Show all Hide all Hide all

ProfileVar - Spécifie le profil etr les propriétés embarquées d'une variable

Syntaxe:

ProfileVar <var> [ profile [ props ] ]

Arguments:

var : nom de la variable - peut contenir des caractères génériques "?" et "*" - voir les notes

profile : nom du profil - le profil est retiré si cet argument est omis

pros : propriétés attachées au profil

info Info

Les propriétés sont entrées sous la forme 'name=value,name=value...' comme montré dans l'éditeur de variables.

Cette fonction s'applique aux variables, aux paramètres d'entrées et de sorties de sous-programmes et d'UDFB ou aux items de structure. Le nom de la variable doit être préfixé par le nom de son groupe et le séparateur '.' . La variable est considéree globale si aucun groupe d'est spécifié. Voici quelques exemples:

Argument | Description
VarName | une variable globale
RETAIN.VarName | une variable RETAIN
ProgName.LocVarName | une variable locale à un programme
UDFBName.ParamName | un paramètre d'UDFB
StructName.Item | un item de structure

Cette commande peut être utilisée dans une boucle FOR

seealso See also

CreateVar - Crée une variable

CreateInParam - Crée un paramètre d'entrée

CreateOutParam - Crée un paramètre de sortie

DimVar - Définit les dimensions d'une variable

DeleteVar - Supprime une variable

InitVar - Définit la valeur initiale d'une variable

SybVar - Spécifie si le symbole d'une variable doit être embarqué

EnumVar - Enumère les variables

GetVar - Affiche les détails d'une variable

GetVarProp - Affiche les propriétés embarquées d'une variable

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


EnumVar - Enumère les variables

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des variables -> EnumVar - Enumère les variables

Previous chapter Next chapter Show all Show all Hide all Hide all

EnumVar - Enumère les variables

Syntaxe:

EnumVar [ filter ]

Arguments:

filter : filtre - peut contenir des caractères génériques "?" et "*"

info Info

Cette fonction s'applique aux variables, aux paramètres d'entrées et de sorties de sous-programmes et d'UDFB ou aux items de structure. La chaine de filtre doit être préfixé par le nom de son groupe et le séparateur '.' . La variable est considéree globale si aucun groupe d'est spécifié. Voici quelques exemples:

Argument | Description
* | variables globales
RETAIN.* | variables ERTAIN
ProgName.* | variables locales à un program
UDFBName.* | paramètres d'un UDFB
StructName.* | items d'une structure

Cette commande ne peut pas être utilisée dans une boucle FOR

seealso See also

CreateVar - Crée une variable

CreateInParam - Crée un paramètre d'entrée

CreateOutParam - Crée un paramètre de sortie

DimVar - Définit les dimensions d'une variable

DeleteVar - Supprime une variable

InitVar - Définit la valeur initiale d'une variable

SybVar - Spécifie si le symbole d'une variable doit être embarqué

ProfileVar - Définit le profil et les propriétés embarquées d'une variable

GetVar - Affiche les détails d'une variable

GetVarProp - Affiche les propriétés embarquées d'une variable

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


GetVar - Affiche les détails d'une variable

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des variables -> GetVar - Affiche les détails d'une variable

Previous chapter Next chapter Show all Show all Hide all Hide all

GetVar - Affiche les détails d'une variable

Syntaxe:

GetVar <var>

Arguments:

var : nom de la variable - voir les notes

info Info

Cette fonction s'applique aux variables, aux paramètres d'entrées et de sorties de sous-programmes et d'UDFB ou aux items de structure. Le nom de la variable doit être préfixé par le nom de son groupe et le séparateur '.' . La variable est considéree globale si aucun groupe d'est spécifié. Voici quelques exemples:

Argument | Description
VarName | une variable globale
RETAIN.VarName | une variable RETAIN
ProgName.LocVarName | une variable locale à un programme
UDFBName.ParamName | un paramètre d'UDFB
StructName.Item | un item de structure

Cette commande ne peut pas être utilisée dans une boucle FOR

seealso See also

CreateVar - Crée une variable

CreateInParam - Crée un paramètre d'entrée

CreateOutParam - Crée un paramètre de sortie

DimVar - Définit les dimensions d'une variable

DeleteVar - Supprime une variable

InitVar - Définit la valeur initiale d'une variable

SybVar - Spécifie si le symbole d'une variable doit être embarqué

ProfileVar - Définit le profil et les propriétés embarquées d'une variable

EnumVar - Enumère les variables

GetVarProp - Affiche les propriétés embarquées d'une variable

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


GetVarProp - Affiche les propriétés embarquées d'une variable

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des variables -> GetVarProp - Affiche les propriétés embarquées d'une variable

Previous chapter Next chapter Show all Show all Hide all Hide all

GetVarProp - Affiche les propriétés embarquées d'une variable

Syntaxe:

GetVarProp <var>

Arguments:

var : nom de la variable - voir les notes

info Info

Cette fonction s'applique aux variables, aux paramètres d'entrées et de sorties de sous-programmes et d'UDFB ou aux items de structure. Le nom de la variable doit être préfixé par le nom de son groupe et le séparateur '.' . La variable est considéree globale si aucun groupe d'est spécifié. Voici quelques exemples:

Argument | Description
VarName | une variable globale
RETAIN.VarName | une variable RETAIN
ProgName.LocVarName | une variable locale à un programme
UDFBName.ParamName | un paramètre d'UDFB
StructName.Item | un item de structure

Cette commande ne peut pas être utilisée dans une boucle FOR

seealso See also

CreateVar - Crée une variable

CreateInParam - Crée un paramètre d'entrée

CreateOutParam - Crée un paramètre de sortie

DimVar - Définit les dimensions d'une variable

DeleteVar - Supprime une variable

InitVar - Définit la valeur initiale d'une variable

SybVar - Spécifie si le symbole d'une variable doit être embarqué

ProfileVar - Définit le profil et les propriétés embarquées d'une variable

EnumVar - Enumère les variables

GetVar - Affiche les détails d'une variable

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des types de données (structures)

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


Gestion des types de données (structures)

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des types de données (structures)

Previous chapter Next chapter Show all Show all Hide all Hide all

seealso See also

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console

Dans cette section

CreateStruct - Crée une structure

DeleteStruct - Supprime une structure

EnumStruct - Enumère les structures


CreateStruct - Crée une structure

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des types de données (structures) -> CreateStruct - Crée une structure

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateStruct - Crée une structure

Syntaxe:

CreateStruct <name>

Arguments:

name : nom de la structure

info Info

Cette commande peut être utilisée dans une boucle FOR

seealso See also

DeleteStruct - Supprime une structure

EnumStruct - Enumère les structures

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


DeleteStruct - Supprime une structure

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des types de données (structures) -> DeleteStruct - Supprime une structure

Previous chapter Next chapter Show all Show all Hide all Hide all

DeleteStruct - Supprime une structure

Syntaxe:

DeleteStruct <struct>

Arguments:

struct : nom de la structure

info Info

Cette commande peut être utilisée dans une boucle FOR.

seealso See also

CreateStruct - Crée une structure

EnumStruct - Enumère les structures

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


EnumStruct - Enumère les structures

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des types de données (structures) -> EnumStruct - Enumère les structures

Previous chapter Next chapter Show all Show all Hide all Hide all

EnumStruct - Enumère les structures

Syntaxe:

EnumStruct [ filter ]

Arguments:

filter : filtre - peut contenir des caractères génériques "?" et "*"

info Info

Cette commande ne peut pas être utilisée dans une boucle FOR

seealso See also

CreateStruct - Crée une structure

DeleteStruct - Supprime une structure

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des cartes d'E/S

Gestion des textes de commentaire

La console


Gestion des cartes d'E/S

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des cartes d'E/S

Previous chapter Next chapter Show all Show all Hide all Hide all

seealso See also

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des textes de commentaire

La console

Dans cette section

CreateIO - Crée une instance de périphérique d'E/S

IOParam - Spécifie un paramètre d'une carte d'E/S

IOAlias - Donne un alias à une voie d'E/S

DeleteIO - Supprime une instance de périphérique d'E/S

EnumIO - Enumère les carte d'E/Ss

GetIO - Affiche les détails d'une carte d'E/S


CreateIO - Crée une instance de périphérique d'E/S

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des cartes d'E/S -> CreateIO - Crée une instance de périphérique d'E/S

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateIO - Crée une instance de périphérique d'E/S

Syntaxe:

CreateIO <slot> <IOtype>

Arguments:

slot : numéro de slot (0 .. 255)

IOtype : type de périphérique

info Info

Cette commande ne peut pas être utilisée dans une boucle FOR

seealso See also

IOParam - Spécifie un paramètre d'une carte d'E/S

IOAlias - Donne un alias à une voie d'E/S

DeleteIO - Supprime une instance d'un périphérique d'E/S

EnumIO - Enumère les cartes d'E/S

GetIO - Affiche les détails d'un carte d'E/S

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des textes de commentaire

La console


IOParam - Spécifie un paramètre d'une carte d'E/S

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des cartes d'E/S -> IOParam - Spécifie un paramètre d'une carte d'E/S

Previous chapter Next chapter Show all Show all Hide all Hide all

IOParam - Spécifie un paramètre d'une carte d'E/S

Syntaxe:

IOParam <%board> <name> <value>

Arguments:

%board : adresse de la carte d'E/S (e.g. %QX0)

name : nom du paramètre

value : valeur du paramètre

info Info

Cette commande ne peut pas être utilisée dans une boucle FOR

seealso See also

CreateIO - Crée une instance d'un périphérique d'E/S

IOAlias - Donne un alias à une voie d'E/S

DeleteIO - Supprime une instance d'un périphérique d'E/S

EnumIO - Enumère les cartes d'E/S

GetIO - Affiche les détails d'un carte d'E/S

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des textes de commentaire

La console


IOAlias - Donne un alias à une voie d'E/S

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des cartes d'E/S -> IOAlias - Donne un alias à une voie d'E/S

Previous chapter Next chapter Show all Show all Hide all Hide all

IOAlias - Donne un alias à une voie d'E/S

Syntaxe:

IOAlias <%channel> <alias>

Arguments:

%channel : adresse de la voie (e.g. %QX0.1)

alias : nom lisible à utiliser comme alias pour la variable

info Info

Cette commande ne peut pas être utilisée dans une boucle FOR

seealso See also

CreateIO - Crée une instance d'un périphérique d'E/S

IOParam - Spécifie un paramètre d'une carte d'E/S

DeleteIO - Supprime une instance d'un périphérique d'E/S

EnumIO - Enumère les cartes d'E/S

GetIO - Affiche les détails d'un carte d'E/S

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des textes de commentaire

La console


DeleteIO - Supprime une instance de périphérique d'E/S

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des cartes d'E/S -> DeleteIO - Supprime une instance de périphérique d'E/S

Previous chapter Next chapter Show all Show all Hide all Hide all

DeleteIO - Supprime une instance de périphérique d'E/S

Syntaxe:

DeleteIO <slot>

Arguments:

slot : numéro de slot (0 .. 255)

info Info

Cette commande ne peut pas être utilisée dans une boucle FOR

seealso See also

CreateIO - Crée une instance d'un périphérique d'E/S

IOParam - Spécifie un paramètre d'une carte d'E/S

IOAlias - Donne un alias à une voie d'E/S

EnumIO - Enumère les cartes d'E/S

GetIO - Affiche les détails d'un carte d'E/S

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des textes de commentaire

La console


EnumIO - Enumère les carte d'E/Ss

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des cartes d'E/S -> EnumIO - Enumère les carte d'E/Ss

Previous chapter Next chapter Show all Show all Hide all Hide all

EnumIO - Enumère les carte d'E/Ss

Syntaxe:

EnumIO

info Info

Cette commande ne peut pas être utilisée dans une boucle FOR

seealso See also

CreateIO - Crée une instance d'un périphérique d'E/S

IOParam - Spécifie un paramètre d'une carte d'E/S

IOAlias - Donne un alias à une voie d'E/S

DeleteIO - Supprime une instance d'un périphérique d'E/S

GetIO - Affiche les détails d'un carte d'E/S

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des textes de commentaire

La console


GetIO - Affiche les détails d'une carte d'E/S

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des cartes d'E/S -> GetIO - Affiche les détails d'une carte d'E/S

Previous chapter Next chapter Show all Show all Hide all Hide all

GetIO - Affiche les détails d'une carte d'E/S

Syntaxe:

GetIO <%board>

Arguments:

%board : adress de la carte d'E/S (e.g. %QX0)

info Info

Cette commande ne peut pas être utilisée dans une boucle FOR

seealso See also

CreateIO - Crée une instance d'un périphérique d'E/S

IOParam - Spécifie un paramètre d'une carte d'E/S

IOAlias - Donne un alias à une voie d'E/S

DeleteIO - Supprime une instance d'un périphérique d'E/S

EnumIO - Enumère les cartes d'E/S

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des textes de commentaire

La console


Gestion des textes de commentaire

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des textes de commentaire

Previous chapter Next chapter Show all Show all Hide all Hide all

seealso See also

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

La console

Dans cette section

Comm - Définit un commentaire

Tag - Définit un commentaire court (tag) - variables seulement

GetComm - Affiche un commentaire

GetTag - Affiche un commentaire (tag) - variables seulement


Comm - Définit un commentaire

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des textes de commentaire -> Comm - Définit un commentaire

Previous chapter Next chapter Show all Show all Hide all Hide all

Comm - Définit un commentaire

Syntaxe:

Comm <X|P|S|V|B> <name> <comment>

Arguments:

name : nom de l'objet

comment : commentaire

info Info

Uitlisez les valeurs suivantes pour le 1er argument pour spécifier le type d'objet:

X : projet
P : programme ou sous-programme ou UDFB
S : structure
V : variable
B : carte d'E/S

Pour une variable, le nom doit être préfixé par le nom de son groupe et le séparateur '.' . La variable est considéree globale si aucun groupe d'est spécifié. Voici quelques exemples:

Argument | Description
VarName | une variable globale
RETAIN.VarName | une variable RETAIN
ProgName.LocVarName | une variable locale à un programme
UDFBName.ParamName | un paramètre d'UDFB
StructName.Item | un item de structure

Cette commande peut être utilisée dans une boucle FOR, except or carte d'E/Ss

seealso See also

Tag - Définit un commentaire court (tag) - variables seulement

GetComm - Affiche un commentaire

GetTag - Affiche un commentaire court (tag) - variables seulement

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

La console


Tag - Définit un commentaire court (tag) - variables seulement

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des textes de commentaire -> Tag - Définit un commentaire court (tag) - variables seulement

Previous chapter Next chapter Show all Show all Hide all Hide all

Tag - Définit un commentaire court (tag) - variables seulement

Syntaxe:

Tag V <name> <comment>

Arguments:

name : nom des variables (voir les notes)

comment : commentaiore court (tag)

info Info

Pour une variable, le nom doit être préfixé par le nom de son groupe et le séparateur '.' . La variable est considéree globale si aucun groupe d'est spécifié. Voici quelques exemples:

Argument | Description
VarName | une variable globale
RETAIN.VarName | une variable RETAIN
ProgName.LocVarName | une variable locale à un programme
UDFBName.ParamName | un paramètre d'UDFB
StructName.Item | un item de structure

Cette commande peut être utilisée dans une boucle FOR, except or carte d'E/Ss

seealso See also

Comm - Définit un commentaire

GetComm - Affiche un commentaire

GetTag - Affiche un commentaire court (tag) - variables seulement

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

La console


GetComm - Affiche un commentaire

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des textes de commentaire -> GetComm - Affiche un commentaire

Previous chapter Next chapter Show all Show all Hide all Hide all

GetComm - Affiche un commentaire

Syntaxe:

GetComm <X|P|S|V|B> <name>

Arguments:

name : mom de l'objet

info Info

Uitlisez les valeurs suivantes pour le 1er argument pour spécifier le type d'objet:

X : projet
P : programme ou sous-programme ou UDFB
S : structure
V : variable
B : carte d'E/S

Pour une variable, le nom doit être préfixé par le nom de son groupe et le séparateur '.' . La variable est considéree globale si aucun groupe d'est spécifié. Voici quelques exemples:

Argument | Description
VarName | a global variable
RETAIN.VarName | une variable RETAIN
ProgName.LocVarName | une variable locale à un programme
UDFBName.ParamName | un paramètre d'UDFB
StructName.Item | un item de structure

Cette commande ne peut pas être utilisée dans une boucle FOR

seealso See also

Comm - Définit un commentaire

Tag - Définit un commentaire court (tag) - variables seulement

GetTag - Affiche un commentaire court (tag) - variables seulement

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

La console


GetTag - Affiche un commentaire (tag) - variables seulement

IEC 61131-3 Programming Environment -> Outils -> La console -> Gestion des textes de commentaire -> GetTag - Affiche un commentaire (tag) - variables seulement

Previous chapter Next chapter Show all Show all Hide all Hide all

GetTag - Affiche un commentaire (tag) - variables seulement

Syntaxe:

GetTag V <name>

Arguments:

name : nom de la variable (voir les notes)

info Info

Pour une variable, le nom doit être préfixé par le nom de son groupe et le séparateur '.' . La variable est considéree globale si aucun groupe d'est spécifié. Voici quelques exemples:

Argument | Description
VarName | une variable globale
RETAIN.VarName | une variable RETAIN
ProgName.LocVarName | une variable locale à un programme
UDFBName.ParamName | un paramètre d'UDFB
StructName.Item | un item de structure

Cette commande peut être utilisée dans une boucle FOR, excepté pour les cartes d'E/S

seealso See also

Comm - Définit un commentaire

Tag - Définit un commentaire court (tag) - variables seulement

GetComm - Affiche un commentaire

Commandes spéciales

Gestion de programmes

Gestion des dossiers de programmes

Gestion des variables

Gestion des types de données (structures)

Gestion des cartes d'E/S

La console


Code Checker

IEC 61131-3 Programming Environment -> Outils -> Code Checker

Previous chapter Next chapter Show all Show all Hide all Hide all

L'outil Code Checker effectue une analyse et une vérification des déclarations et programmes d'un projet. Il vérifie la conformité à une série de règles, motivées par l'intégrité, la sécurité et la portabilitédu code. Il est accessible depuis le volet "Code Checker" de la fenêtre de sortie.

Utilisez le bouton "Configuration" pour sélectionner et configurer les règles à appliquer.

Utilisez le bonton "Analyser" pour démarrer l'analyse. Le projet doit être compilé sans erreur pour pouvoir être analysé.

Cliquez deux fois sur un rapport de violation de règle pour ouvrir le document correspondant.

Utilisez les commandes du menu contextuel pour copier ou exporter le rapport d'analyse.

Note: une option est disponible dans la section "Compilation" de la boîte des "Paramètres du projet" pour lancer automatiquement l'analyse après chaque compilation réussie.

Configuration des règles

Utilisez le bouton "Configuration" pour sélectionner et configurer les règles à appliquer. Les règles disponibles sont montrées dans un arbre qui inclut des cases à cocher. Les règles non cochées seront ignorées dans l'analyse. Cliquez deux fois sur une règle opur la configurer.

Pour chaque rèble vous pouvez sélectionner un niveau de gravité: "Non testée" ou "Info" ou "Warning" ou "Erreur" ou "Fatal". Vous pouvez aussi entrer pour chaque règle une réference qui sera affichée dans le rapport.

Pour les règles incluant des métriques (ex. longueur des noms) vous pouvez entrer des valeurs minimale et maximale.

Pour les règles concernant les variables, vous pouvez spécifier un filtre basé sur la colonne "Groupe utilisateur"de l'éditeur de variables: soit tester les variables de certains groupes seulement, soit tester les variables à l'exception des certains groupes. Entrez un nom de groupe par ligne.

Pour la règle 1.4, vous devez spécifier dans le champ "Data" la liste des noms interdits. Entrez un nom par ligne.

La boîte de configuration des règles vous permet également d'exporter ou d'importer la configuration sous forme de fichier XML.

Règles

1.1

Les voies d'IO (%...) doivent avoir un alias

Défaut = ERREUR

Accepte les filtres par groupes

Toutes les voies des cartes d'I/O (variables "%..." créées par l'éditeur de cartes) doivent avoir un alias lisible défini dans l'éditeur de variable. Les noms "%..." ne peuvent pas être utilisées dans les programmes. Les programmes doivent toujours se référer aux alias lisibles.

1.2

Les alias de voies IO (%...) ne doivent pas refléter la localisation physique

Défaut = WARNING

Accepte les filtres par groupes

Les alias de vois d'I/O ne doivent pas reflèter la localisation physique. Par exemple, un alias pour "%IX0.1" ne peut pas être "DI0_1".

1.3

Les noms doivent repecter une longueur minimale et maximale

Défaut = INFO

Accepte les filtres par groupes in case of variables

Valeurs minimum et maximum values configurables

Ceci s'applique à toute déclaration de variable ou de POU.

1.4

Les noms utilisés pour le debug ne doivent pas être conservés

Défaut = INFO

Accepte les filtres par groupes in case of variables

Data = lise des noms de variables interdits

Les variables temporaires utilisées pendant le test doivent être retirées du projet. Une liste de noms interdits doit être renseignée pour cette règle.

1.5

Tous les noms diovent respecter le standard IEC

Défaut = ERREUR

Accepte les filtres par groupes in case of variables

L'atelier propose une option pour accepter les noms de variables non conformes au standard IEC (ponctuation, accents, espaces…). Cette option ne doit pas être validée. Les noms de tous les POUs et variables sont vérifiés.

1.6

Les noms réservés des langages ne doivent pas être utilisés

Défaut = FATAL

Accepte les filtres par groupes in case of variables

Les mots réservés du langage IEC ne doivent pas être utilisés pour des variables, quelquesoit le langage. Par exemple le nom "STEP" ne doit pas être utilsé.

1.7

Les informations des POUs doivent être renseignées

Défaut = WARNING

N'accepte pas les filtres par groupes

Dans la boîte "Informations" de chaque POU, les items "Auteur", "Niveau de sécurité" et "No Projet" doivent être renseignés.

1.8

La casse des noms de variable doit être respectée

Défaut = INFO

Accepte les filtres par groupes in case of variables

Quand une variable est utilisée dans nu programme, elle doit avoir la même casse que dans sa déclaration.

2.1

Tous les objets déclarés doivent avoir un commentaire

Défaut = ERREUR

Accepte les filtres par groupes in case of variables

Ceci s'applique à tous les POUs et variables.

2.2

Les commentaires doivent repecter une longueur minimale et maximale

Défaut = ERREUR

Accepte les filtres par groupes in case of variables

Valeurs minimum et maximum values configurables for the length

Ceci s'applique à tous les POUs et variables.

2.3

Le pourcentage de commentaire doit être suffisant

Défaut = WARNING

Accepte les filtres par groupes in case of variables

Valeur minimum configurable (pourcents)

C'est le pourcentage de commentaires entrés dans le code de chaque POU, quelquesoit son langage. Le pourcentage est vérifié individuellement pour chaque POU et s'applique uniquement au code. Les commentaires des variables locales ne sont pas pris en compte.

2.4

Les commentaires ne doivent pas contenir de caractère spécial

Défaut = WARNING

Accepte les filtres par groupes in case of variables

Valeur minimum configurable (pourcents)

Les caractères ASCII supérieurs à 127 (accents, caractères spéciaux) ne doivent pas être utilisés dans les commentaires. Ceci s'applique aux commentaires des objets déclarés ainsi qu'au commentaires inclus dans le code des POUs.

3.x

Le langage XXX ne doit pas être utilisé pour un programme principal

Défaut = FATAL for IL – NOT CHECKED for others

N'accepte pas les filtres par groupes

Cette règle est dispoinibles pour les langages: IL, ST, LD, FBD et SFC

3.x

Le langage XXX ne doit pas être utilisé pour un UDFB

Défaut = FATAL pour IL – NON TESTE pour les autres langages

N'accepte pas les filtres par groupes

Cette règle est dispoinibles pour les langages: IL, ST, LD, FBD et SFC

3.x

Le langage XXX ne doit pas être utilisé pour un sous-programme

Défaut = FATAL for IL – NOT CHECKED for others

N'accepte pas les filtres par groupes

Cette règle est dispoinibles pour les langages: IL, ST, LD et FBD

4.1

Tous les paramètres d'entrée doivent être lus

Défaut = FATAL

Accepte les filtres par groupes in case of variables

Chaque paramètre d'entrée d'un UDFB ou sous-programme doit être lû dans son implémentation.

4.2

Tous les paramètres de sortie doivent être écrits avant d'être lus

Défaut = FATAL

Accepte les filtres par groupes in case of variables

Chaque paramètre de sortie d'un UDFB ou sous-programe doit être écrit dans son implémentation. Il peut être lû mais seulement s'il a été écrit auparavant.

4.3

Tous les paramètres INOUT doivent être écrits et lus

Défaut = FATAL

Accepte les filtres par groupes in case of variables

Chaque paramètre INOUT d'un UDFB ou sous-programe doit être lû et écrit dans son implémentation.

4.4

Les sauts en avant ou en arrière ne doivent pas être utilisés

Défaut = ERREUR

N'accepte pas les filtres par groupes

Ceci s'applique aux instructions de saut et RETURN des langages LD, FBD et IL, et aux instructions RETURN, EXIT et GOTO du langage ST.

4.5

Les expressions ST ne doivent pas être utilisés en LD ni en FBD

Défaut = FATAL

N'accepte pas les filtres par groupes

Le texte associé aux éléments graphiques des diagrammes LD et FBD ne doivent pas être des expressions complexe. Par exemple, associer "IntVar > iMax" à nu contact LD est interdit.

4.6

Les bobines LD doivent être alignées à droite

Défaut = WARNING

N'accepte pas les filtres par groupes

4.7

Les structures IF doivent comporter une section ELSE

Défaut = WARNING

N'accepte pas les filtres par groupes

Ceci s'applique aux instructions "IF" et "CASE" du langage ST.

4.8

Il ne doit pas rester de code mort (UDFB ou sous-programme non appelé)

Défaut = ERREUR

N'accepte pas les filtres par groupes

Chaque UDFB ou sous-programme déclaré doit être appelé au moins une fois dans le projet. La compilation conditionelle ne doit pas être utilisée.

4.9

Les tests d'égalités ne doivent pas être utilisés pour les types REAL et LREAL

Défaut = FATAL

N'accepte pas les filtres par groupes

L'option "Interdire les tests d'égalité entre réels" doit être validée dans la la section "Compilation" de la boîte des "Paramètres du projet".

4.10

L'imbrication de structures ST ne doit pas dépasser un niveau de complexité

Défaut = INFO

N'accepte pas les filtres par groupes

Valeur maximum configurable

Ceci s'applique à l'imbrication des structures IF, WHILE, REPEAT, FOR, CASE du langage ST.

4.11

L'instruction WAIT du langage ST ne doit pas être utilisée

Défaut = ERREUR

N'accepte pas les filtres par groupes

Les instructions "WAIT", "WAIT_TIME" et "DO_WAIT" du langage ST ne doivent pas être utilisées.

4.12

Les instructions de boucle du langage ST ne doivent pas être utilisées

Défaut = ERREUR

N'accepte pas les filtres par groupes

Les instructions "WHILE", "REPEAT" et "FOR" du langage ST ne doivent pas être utilisées.

4.13

Toutes les entrées de blocs doivent être connectées dans les diagrammes FBD

Défaut = ERREUR

N'accepte pas les filtres par groupes

Dans la section "Avancé" de la boîte des "Paramètres du projet", L'option "Interdire les entrées non connectées en FBD" doit être validée.

4.14

Les POUs et ST ou IL ne doivent pas excéder un nombre de lignes

Défaut = WARNING

N'accepte pas les filtres par groupes

Valeur maximum configurable

Ceci s'applique au contenu intégral de chaque POU, incluant les commentaires et lignes vides.

4.15

Les POUs en LD ne doivent pas excéder un nombre d'échelons

Défaut = WARNING

N'accepte pas les filtres par groupes

Valeur maximum configurable

4.16

Les POUs en LD ou FBD should ne doivent pas excéder un nombre de blocs

Défaut = WARNING

N'accepte pas les filtres par groupes

Valeur maximum configurable

Chaque function, opérateur ou block fonctionnel dans le diagramme est pris en compte pour le calcul.

4.17

Les POUs en SFC ne doivent pas excéder un nombre d'étapes

Défaut = WARNING

N'accepte pas les filtres par groupes

Valeur maximum configurable

4.18

Les transitions SFC doivent avoir une condition

Défaut = WARNING

N'accepte pas les filtres par groupes

Le stardard IEC considère qu'une étape SFC sans condition est toujours "TRUE". Pour se confrmer à cette règle du Code Checker, vous devez entrer explicitement "TRUE" dans la condition de telles transitions.

5.1

Toutes les variables déclarées doivent être utilisées dans les programmes

Défaut = ERREUR

Accepte les filtres par groupes in case of variables

Les variables inutilisées doivent être retirées du projet.

5.2

Les tableaux de structures ne doivent pas être utilisés

Défaut = WARNING

Accepte les filtres par groupes in case of variables

5.3

Toutes les variables doivent être écrites avant d'être lues

Défaut = ERREUR

Accepte les filtres par groupes in case of variables

Ceci s'applique aux variables globales lues ou écrites dans plusieurs POUs, selon l'ordre d'exécution des POUs. Cette règle ne s'applique pas aux variables ayant l'attribut "Lecture seule".

5.4

Une instance de bloc doit être appelée une seule fois

Défaut = FATAL

Accepte les filtres par groupes in case of variables

Ceci s'applique aux appels de la lême instance du même bloc fonctionnel.

5.5

Une variable globale ne doit être écrite que dans un seul POU

Défaut = ERREUR

Accepte les filtres par groupes in case of variables

Il est autorisé de lire la même variable dans plusieurs POUs.

5.6

Une variable ne doit être écrite qu'une fois dans les programmes

Défaut = FATAL

Accepte les filtres par groupes in case of variables

Ceci s'applique aux variables locales utilisées dans un POU et aux variables globales utilisées dans un ou plusieurs POUs du projet.

5.7

Les tableaux ne doivent pas être utilisés

Défaut = WARNING

Accepte les filtres par groupes in case of variables

5.8

Les branches parallèles en SFC ne doivent pas être utilisées

Défaut = WARNING

N'accepte pas les filtres par groupes

Cette règle se réfère aux branches parallèles (divergences AND) des diagrammes SFC.

5.9

Les graphes SFC doivent être vérifiés

Défaut = FATAL

N'accepte pas les filtres par groupes

Dans la section "Compilation" de la boîte des "Paramètres du projet", L'option "Vérifier la sécurité des graphes SFC" doit être validée.

5.10

Toutes les variables déclarées avec un type simple doivent avoir une valeur initiale

Défaut = WARNING

Accepte les filtres par groupes in case of variables

Cette règle ne s'applique pas pour: les vois d'une carte d'entrée (%), les tableaux, les structures, les instances de bloc fonctionnel, les paramètres d'entrée ou de sortie des UDFBs et des sous-programmes.

6.1

Les programmes ne doivent pas être compilés avec les options de debug

Défaut = FATAL

N'accepte pas les filtres par groupes

Cette règle se réfère à la boîte des "Paramètres du projet". Le code ne doit pas être compilé en mode DEBUG. L'option "Verrouillage des variables" ne doit pas être validée. La modification en ligne ne doit pas être activée.

6.2

Les index de tableaux doivent être vérifiés à l'exécution

Défaut = FATAL

N'accepte pas les filtres par groupes

Cette règle se réfère à la boîte des "Paramètres du projet". Dans la section "Compilation", l'option "Vérifier les bornes des tableaux à l'exécution" doit être validée.

6.3

La mémoire dynamique doit être configurée comme un buffer à taille fixe

Défaut = FATAL

N'accepte pas les filtres par groupes

Cette règle se réfère à la boîte des "Paramètres du projet". Dans la configuration de "Allocation dynamique de mémoire" (section "Exécution"), Le choix "Utiliser l'allocation dynamique du système d'exlpoitation" ne doit pas être sélectionné.


Ressources

IEC 61131-3 Programming Environment -> Ressources

en plus de la programmation IEC-1131, l'atelier vous permet de définir des données de configuration devant être embarquées avec le programme et utilisées à l'exécution à l'aide de fonctions et blocs fonctionnels dédiés.

L'atelier supporte les types de ressource suivants

Tables de textes: tables de textes définis statiquement et chargées à l'exécution dans des variables STRING.
Signaux: signaux analogique pouvant être déroulés à l'exécution pour générer une commande.

Pour créer une nouvelle ressource, lancez la commande Ajouter Un Nouvel Elément depuis l'espace de travail et sélectionnez la catégorie Resources. Double clicquez sur une ressource depuis l'espace de travail pour l'ouvrir en édition.

Dans cette section

Ressources: Tables de texte

Ressources: signaux analogiques


Ressources: Tables de texte

IEC 61131-3 Programming Environment -> Ressources -> Ressources: Tables de texte

Previous chapter Next chapter Show all Show all Hide all Hide all

Les tables de textes sont des ressources (données de configuration embarquées) éditées avec l'atelier. Une table de texte est une liste d'éléments définis comme un identificateur et une ou plusieurs chaines de caractères.

Les tables de texte sont typiquement utilisées pour définir les textes statiques devant être manipulés par l'application. Les fonctions suivantes sont utilisées pour accéder aux tables de textes:

StringTable: Sélectionne la table de textes active.
LoadString: Charge une STRING de la table de textes active.

De plus, chaque table peut contenir plusieurs colonnes de texte pour chaque élément. Ceci vous permet de gérer facilement la traduction des textes en ligne, en définissant une colonne pour chaque langage. La fonction StringTable() permet de sélectionner la colonne active.

Le nom entré dans la table comme identificateur d'un texte est automatiquement déclaré pour le compilateur et peut être passé directement à la fonction LoadString() sans le re-déclarer. Le nom doit se conformer aux conventions de nomenclature de la norme IEC.

Bien sûr, vous pouvez gérer vos textes en déclarant des tableaux de variables STRING avec des valeurs initiales. Toutefois, les tables de textes apportent les avantages suivants:

  • L'éditeur offre un mode d'édition multi-colonnes confortable.
  • Les tables de textes sont chargées dans le code et ne nécessitent aucune mémoire RAM contrairement aux tableaux de variables.
  • L'éditeur de tables de textes déclare automatiquement des "identificateurs" pour chaque élément qui peuvent être utilisés dans les programmes, plutôt que de travailler avec des index numériques.

info Info

Si le texte est trop long quand il est chargé dans une variable STRING, il est tronqué.

Vous pouvez utiliser les séquences '$' dans les textes pour représenter les caractères non imprimables, selon le standard IEC:

$$
$'
$T
$R
$L
$N
$P
$xx

un caractère "$"
une apostrophe
une tabulation (code ASCII 9)
un retour à la ligne (code ASCII 13)
un saut de ligne (code ASCII 10)
un retour à la ligne ET un saut de ligne (codes ASCII 13 et 10)
un saut de page (code ASCII 12)
un caractère quelconque (xx est son code ASCII exprimé sur deux caractères hexadécimaux


Ressources: signaux analogiques

IEC 61131-3 Programming Environment -> Ressources -> Ressources: signaux analogiques

Previous chapter Next chapter Show all Show all Hide all Hide all

Les signaux analogiques sont des ressources (données de configuration embarquées) éditées avec l'atelier. U signal analogique est défini comme une liste de points sur un axe X temporel.

Les signaux sont typiquement utilisés pour définir statiquement un signal de consigne pouvant être généré à l'exécution à l'aide des blocs et fonctions suivants:

SigID: Trouve l'identificateur d'une ressource signal (à passer aux autres blocs).
SigPlay: Génère un signal.
SigScale: Trouve la valeur d'un point dans un signal.

Un signal est défini dans l'atelier comme une liste de points. Chaque point spécifie un temps (axe X) et une valeur analogique de type REAL (axe Y). Voici un exemple:

Example Example
Points | Signal

Entre deux points le signal doit être compris comme une rampe analogique. Si vous devez spécifier une discontinüité, spécifiez la même valeur de temps pour deux points consécutifs. Le nombre de points n'est pas limité.


Applications distribuées - Liens

IEC 61131-3 Programming Environment -> Applications distribuées - Liens

Previous chapter Next chapter Show all Show all Hide all Hide all

Le système cible T5 à partir de la version 2.10 inclut un protocole évènementiel sur TCP-IP pour échanger des variables en temps réel entre systèmes cible. Le protocole étant purement évènementiel, il assure des temps d'échange courts et une faible charge du réseau. Cette page explique comment utiliser le protocole évènementiel des cibles T5 pour relier les variables de différents noeuds dans une architecture distribuée.

seealso See also

Fonctions de communications UDP (Jump Template)

Nouveau! La fonction EnableEvents vous permet d'activer ou de désactiver la production d'évènements.

Mécanisme d'échange

Le protocole T5 est basé sur le modèle de "publication-souscription". Chaque noeud peut produire (publier) des variables sur le réseau, et consommer (souscription) des variables produites par les autres noeuds. Chaque variable produite est identifiée par un numéro (identificateur). Cet identificateur est utilisé pour associer les variables source et destination dans les noeuds respectifs. La même variable produite par un noeud peut être consommée par plusieurs noeuds.

Example Example

Dans cet exemple, la variable VarP1 du projet Proj1 sera reliée (copiée) à travers le réseau à la variable VarP2 du projet Proj2 et à la variable VarP3 du projet Proj3.

Echanges

La valeur de la variable n'est émise sur le réseau que lorsqu'elle change. Pour chaque variable produite, vous pouvez définir des hystérésis positif et négatif afin de régler la charge du réseau en fonction des besoins de votre application. Chaque nouvelle valeur émise sur le réseau est datée. Pour chaque variable consommée, vous avez accès dans le projet de destination à la datation de la dernière valeur reçue, ainsi qu'à un flag de qualité. Vous pouvez également accéder au status global de la connexion pour chaque producteur relié.

Limitations

Le nombre maximum de variables produites par un noeud est limité. Référez-vous aux instructions du constructeur pour connaître la limitation apportée lors de l'implémentation du système T5.

Seuls les variable booléennes, entières et TIME peuvent être échangées. Les variables STRING et les instances de blocs fonctionnels ne sont pas supportées par le protocole.

L'éditeur de liens

L'atelier offre un outil global pour spécifier les liaisons entre plusieurs projets. Pour bâtir une application distribuée, vous devez:

  • Créer les projets (pour chaque noeud) avec l'atelier.
  • Depuis le menu de la fenêtre principale de l'atelier, lancez la commande Outils / Editeur de liens.

L'éditeur de liens peut aussi être lancé depuis le groupe de l'atelier dans le menu "Démarrer" de Windows, sans ouvrir l'atelier.

Définition des noeuds

La commande Fichier / Nouveau démarre une nouvelle configuration distribuée et vous permet de définir les noeuds sur le réseau. Par la suite vous pouvez à tout moment appeler la commande Fichier / Projets pour changer la liste des noeuds.

Chaque noeud est représeenté par un "project" dans l'éditeur de liens, est et identifié par un nom, une adresse IP et un numéro de port ETHERNET. Référez-vous aux instructions du constructeur pour connaître le numéro de port utilisé pour la publication de variables.

Pressez le bouton Explorer pour ajouter à la configuration un projet. Il suffit de sélectionner le répertoire où le projet est stocké.

Pressez le bouton Importer pour ajouter à la configuration les variables publiées d'un project. Dans ce cas, vous devez sélectionner le fichier APPLI.EVT dans le répertoire d'un projet. Les autres fichiers ne sont pas nécessaires dans ce cas. Le fichier APPLI.EVT peut également être échangé seul entre utilisateurs. Vous ne pourrez pas change les variables produites d'un projet importé.

Pressez le bouton Declarer pour définir manuellement un noeud non associé à un projet. Dans ce cas, vous déclarerez manuellement les variables publiées par ce noeud en spécifiant leur identificateur.

L'espace de travail

Voici la forme de l'éditeur de liens:

  1. Grille d'édition.
  2. Fenêtre d'affichage des rapports.
  3. Liste des variables du projet source pour la cellule sélectionnée.
  4. Liste des variables du projet destination pour la cellule sélectionnée.

La grille d'édition

La première colonne de la grille d'édition montre les variables publiées par les différents noeuds. Les autres colonnes montrent les variables consommées.

Example Example

Dans cet exemple, le projet EvPing produit les variables Sent1 et BSent1. La cellule sélectionnée montre que la variable Sent1 du projet source EvPing est reliée à la variable Received1 du projet de destination EvPong. Le lien corrrespondant à la variable publiée a l'identificateur 1.

Vous pouvez à tout moment cliquer deux fois sur le nom d'un projet source dans la première colonne pour changer ses propriétés (adresse IP et port ETHERNET).

Variables produites

Pour ajouter une variable publiée dans un projet, sélectionnez le nom du projet dans la première colonne et cliquez deux fois sur la variable à publier dans la liste des variables du projet source (fenêtre en haut et à droite).

Quand une variable est sélectionnée dans la première colonne, la commande Edition / Propriétés permet de définir ses hystérésis et éventuellement de changer l'identificateur du lien correspondant.

Variables consommées

Pour ajouter une variable consommée, sélectionnez la cellule pour les projets de source et de destination, et cliquez deux fois sur la variable à publier dans la liste des variables du projet destination (fenêtre en bas et à droite).

Si une variable consommée est placée sur la ligne "Connection Status" du projet source, la variable contiendra l'éventuel état d'erreur de la connection. La valeur 0 (ou FALSE pour un booléen) indique que la connexion est OK.

La ligne contenant le nom de variable source indique un échange de sa valeur. Déployez la variable dans la première colonne afin de connecter des variables de destination à sa dataion et son flag de qualité.

Example Example

Dans cet exemple, la variable Sent1 du projet EvPing est reliée aux variables suivantes dans le projet EvPong:

  • La variable Receive1 contiendra la dernière valeur.
  • La variable Rcv_error contiendra le rapport d'errreur (0 ou FALSE signifie OK).
  • La variable Rcv_date contiendra la date du dernier changement.
  • La variable Rcv_time contiendra l'heure du dernier changement.

Declaration de nouvelles variables

Vous pouvez déclarer de nouvelles variables dans les projets sources et destination depuis l'éditeur de liens, sans avoir besoin d'ouvrir l'atelier. Pour ceci, sélectionnez une cellule et lancez la comande Edition / Insérer une variable et entrez le nom de la nouvelle variable.

Si l'atelier est ouvert, il sera automatiquement mis à jour avec la nouvelle variable déclarée.

Si vous créez, supprimez ou changes des variables avec l'atelier pendant que l'éditeur de liens est ouvert, le signe "!" apparaîtra dans la liste de variables correspondante. Cliquez sur le signe "!" pour mettre la liste à jour:

Identificateurs de liens

L'éditeur de liens alloue automatiquement un nouvel identificateur pour chaque variable produite. La commande "Edition / Propriétés" quand une variable produite est sélectionnée dans la première colonne vous permet de changer cet identificateur.

Edition locale dans l'atelier

Si vous n'utilisez pas l'éditeur de liens, vous pouvez définir la configuration des échanges localement dans chaque projet. Pour ceci lancez la commande Fichier / Ouvrir / Configuration de liens depuis la fenêtre principale.

Les variables produites et consommées par le projet sont montrées dans un arbre.

Le premier noeud de l'ardre est appelé "PUBLIC" et regroupe toutes les variables produites. Utilisez la commande Insérer une variable de la barre d'outils ou glissez une variable sur le noeud "PUBLIC" pour produire une nouvelle variable. Pour chaque variable produite vous devez spécifier son nom, l'identificateur du lien et optionnellement ses hystérésis positif et négatif.

La commande Insérer un maître - un port de la barre d'outils permet de définir les autres noeuds du réseau. Chaque noeud est identifié par un nom, une adresse IP et un numéro de port ETHERNET. Vous pouvez alors consommer les variables produites par les autres noeuds.

Une variable consommée se réfère à l'identificateur du lien défini lors de la production de la variale. Vous devez indiquer le type de consommation:

  • Valeur.
  • Indication d'erreur.
  • Date ou heure de la dernière valeur émise.

Dans cette section

Applications distribuées - Réseaux ETHERNET redondants


Applications distribuées - Réseaux ETHERNET redondants

IEC 61131-3 Programming Environment -> Applications distribuées - Liens -> Applications distribuées - Réseaux ETHERNET redondants

Previous chapter Next chapter Show all Show all Hide all Hide all

Le système cible T5 version SR5 ou plus permet d'utiliser le protocole évènementiel pour relier des variables à travers des réseaux ETHERNET redondants. Ceci procure un haut niveau de sécurité pour les échanges inter-cibles.

Le lien redondant est établi à travers deux réseaux redondants utilisants deux segments de réseaux séparés. Le système qui publie les variables (producteur) et le système qui les consommme sont tous deux équipés de 2 cartes ETHERNET:

L'échange redondant nécessite deux cartes Ethernet sur chacune des plate-formes

Configuration

La configuration des échanges redondants se fait dans l'éditeur de liens. Pour spécifier un lien redondant, vous devez spécifier deux adresses IP au lieu d'une seule pour chaque noeud concerné. Pour ceci, entrez deux adresses IP séparés par un signe de division "/":

Aucune autre configuration n'est requise. Les deux connexions utilisent le même numéro de port.

Etat de la connexion

L'information "Etat de la connexion" reste disponible dans le cas de liens redondants. Dans ce cas, la valeur de la variable connectée à l'état reflète l'état des deux connexions.

L'état est stocké sous la forme d'un entier. L'état de la première connexion est dans les bits 0 à 3, et l'état de la seconde dans les bits 4 à 7. Pour chaque connexion, la valeur "0" signifie OK.

Etat des variables

L'information "état de variable" reste disponible pour chaque variable échangée sur un lien redondant. Dans ce cas, la valeur de la variable conectée à l'état reflète l'état des deux connexions:

0 | OK
1 | Connexion 1 en défaut
2 | Connexion 2 en défaut
3 | Les deux connexions en défaut


"Upload" de projet

IEC 61131-3 Programming Environment -> "Upload" de projet

L'atelier vous permet d'embarquer sur la cible les ources du projet, afin de les récupérér par "upload" ultérieurement. Le code source est filtré et compressé afin de réduire sa taille. Puisque l'envoi des sources peut engendrer un temps de chargement assez long, vous devez explicitement appeler les commande de téléchargement. Ces commandes sont disponibles depuis le menu contextuel de la fenêtre Espace de Travail:

Enregistrer le projet sur la cible: compression et envoi des sources du projet.
Ouvrir le projet depuis la cible: "upload" et reconstruction du projet.

Enregistrement (download)

Lors de l'envoi des sources, vous devez sélectionner l'addresse et les paramètres de communication de la cible. Les options suivantes vous permettent de sélectionner les informations optionnelles à envoyer avec le code source:

  • Table de symboles: la table de symboles est nécessaire pour la mise au point de l'application. Si elle n'est pas embarquée, il faudra re-compiler l'application après un upload pour pouvoir accéder à ses variables.
  • Information de debug: ce fichier est nécessaire pour le debug en pas à pas, et peut être reconstruit par une re-compilation du projet.
  • Listes: toutes les listes de variables et recettes.
  • Paramètres: la configuration courante des outils tels que le générateur d'application de visualisation.
  • Historique: l'historique des modifications apportées au projet
  • Commentaires: tous les textes de commentaires associés aux variables programmes... Les commentaires dans les programmes sont systématiquement embarqués.
  • Bitmaps et icones: tous les fichiers BMP, GIF, JPG ou ICO localisés dans le répertoire du projet et possiblement utilisés dans les vues graphiques.
  • Eléments de la librairie OEM (blocs et fonctions en "C", profils, E/S) effectivement utilisés dans le projet.

En plus des fichiers standard, vous pouvez indiquer quelques fichiers extra à télécharger. Dans ce cas, ces fichiers seront toujours restaurés dans le répertoire du projet après une upload, même s'ils étaient originellement situés ailleurs sur le disque.

Dé-sélectionner des options permet de réduire la taille du code à télécharger.

Ouverture (upload)

Lors de l'upload d'un projet, vous devez spécifier l'adresse et les paramètres de communication du système cible, ainsi qu'un nom et un emplacement pour le projet restitué sur le PC. Cette fonction ne peut pas être utilisée pour écraser un répertoire projet existant.


Librairies

IEC 61131-3 Programming Environment -> Librairies

L'atelier offre plusieurs méthodes pour partager des UDFBs, sous-programmes et types de données (structures) entre les projets:

  • Utiliser les commands Exporter et Importer du menu Outils pour échanger des objets:

    Les programmes, sous-programmes, UDFBs et structures peuvent être exportés sous la forme de fichiers suffixés par .XK5. Ceci vous permet de gérer dans un répertoire partagé une collection de fichiers à importer dans les projets. Vous pouvez également créer plusieurs fichiers .XK5 pour différentes versions du même objet.

  • Utiliser dans un projet des objets d'un autre projet (objets externes)

    L'atelier vous permet d'utiliser dans un projet des objets définis dans d'autres projets, tels que des UDFBs. C'est un moyen simple de mettre en oeuvre des librairies de blocs écrits en langage IEC qui pourront être réutilisés dans de nombreux projets. De plus, l'atelier procure des moyens efficaces et robustes pour la gestion des modifications des objets externes.

  • Travailler avec de vraies librairies

    Alternativement vous pouvez créer des librairies référencées par les projets. Le lien avec les librairies est fait automatiquement chaque fois que le projet est ouvert ou compilé. Ceci vous assure que votre projet inclut toujours les dernières versions des objets de librairies, mais impose que la librairie soit présente.

Dans cette section

Utiliser des objets externes

Librairies de sous-programmes et UDFBs


Utiliser des objets externes

IEC 61131-3 Programming Environment -> Librairies -> Utiliser des objets externes

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier vous permet d'utiliser dans un projet des objets définis dans d'autres projets, tels que des UDFBs. C'est un moyen simple de mettre en oeuvre des librairies de blocs écrits en langage IEC qui pourront être réutilisés dans de nombreux projets. De plus, l'atelier procure des moyens efficaces et robustes pour la gestion des modifications des objets externes.

Principe

Vous pouvez utiliser dans un projet local des objets définis dans des projets externes. Il peu s'agir de:

  • Sous programems
  • Blocs fonctionnels utilisateur (UDFBs)
  • Structures

Quand vous sélectionner des objets externes, ils sont enregistrés localement dans le projet. Ceci permet une maintenance sécurisée du projet local dans le cas où les projets externes sont modifiés ou supprimés. De plus, l'atelier offre des outils de comparaison pour que vous puissiez analyser les modifications des objets externes avant de les mettre à jour dans le projet.

Les objets externes inclus ne peuvent pas être modifiés dans le projet local, et sont marqués avec une couleur différentes dans l'espace de travail du projet. Toutefois, ils peuvent être ouverts pendant l'édition ou la mise au point.

Utilisation

Icone | Description
 | Utilisez la commande de menu Projet / Paramètres puis appyez sur le bouton Editer dans le groupe Objets externes de la boîte de paramètres.

La boîte suivante est affichée est vous permet de gérer les objets externes:

Appuyez sur Ajouter pour insérer un projet externe. Vous devez sélectionner le répertoire où le projet externe est installé. Puis vous devez sélectionner chaque objet que bous souhaitez incorporer au projet local.

Appuyez sur Comparer pour effectuer une comparaison visuelle des objets à la fois présents dans le projet externe et déjà incorporés au projet local. Ceci est effectué à l'aide de l'outil de comparison de projets.

Appuyez sur OK pour valider la configuration. A ce moment:

  • Les objets nouvellement sélectionnés sont ajoutés au projet local.
  • Les objets dé-sélectionnés sont retirés.
  • Les objets déjà sélectionnés sont mis à jour.

info Info

Certains objets sont marqués en rouge si leur symbole est déjà utilisé par un autre élément du projet local (la slection est impossible dans ce cas).

Il se peut que ceratins objets sélectionnés précédemment n'existent plus dans le projet externe. Si vous les dé-sélectionnez, ces objets seront définitivement supprimés lors de la validation par OK. Si vous les gardez sélectionnés, ils seront conservés dans le projet local pour assurer sa cohérence.

Il se peut s'un projet externe ne soit plus présent sur le disque ou le réseau local . Tous les éléments de ces projets sont conservés dans le projet local jusqu'à leur dé-sélection.


Librairies de sous-programmes et UDFBs

IEC 61131-3 Programming Environment -> Librairies -> Librairies de sous-programmes et UDFBs

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier vous permet de créer des "librairies" référencées par les projets. Le lien avec les librairies est fait automatiquement chaque fois que le projet est ouvert ou compilé. Ceci vous assure que votre projet inclut toujours les dernières versions des objets de librairies, mais impose que la librairie soit présente.

info Info

D'autres méthodes sont disponibles pour partager des sous-programmes et blocs fonctionnels.

Qu'est-ce qu'un librairie ?

Une "librairie" est semblable à un projet, mais est spécialement "marquée" comme pouvant être utilisée en tant que librairie. Les sous-programmes, UDFBs et structures d'une librairie peuvent être utilisés dans des projets liés à la librairie. En outre, une librairie peut être ouverte en édition comme un projet, et peut contenir d'autres éléments (programmes, variables...) pour permettre le test et la validation des objets partagés.

Créer une librairie

Pour créer une librairie, utilisez la commande de menu Fichier / Nouveau Prtojet, et sélectionnez le choix "Librairie" dans la liste en haut de la boîte de création de projet. L'atelier utilise un jeu de couleurs différent quand une librairie est éditée. Vous pouvez également utiliser la commande de menu Fichier / Enregistrer le projet sous pour sauver un projet existant comme librairie ou inversement.

Lier un projet à des librairies

Pour utiliser les objets d'une librairie dans un projet, vous devez "lier" le projet aux librairies. Utilisez la commande Projet / Librairies quand le projet est ouvert dans l'atelier. Une boîte montre la liste des librairies déjà liées. Le bouton Ajouter vous permet de parcourir le disque pour sélectionner une nouvelle librairie à lier au projet. Le bouton Supprimer retire le lien avec la librairie sélectionnée dans la liste.

U projet peut être lié à plusieurs librairies.

Les objets de librairies (sous-programmes et UDFBs) ne sont pas visibles dans l'espace de travail du projet, mais peuvent être sélectionnés depuis la liste en bas à droite de l'atelier.

Chaque sous-programme ou UDFB d'une librairie liée peut être librement utilisé dans les programmes du projet, comme tout autre bloc. La définition des blocs de librairies (leurs entrées et sorties) est tenue à jour automatiquement:

  • Quand le projet est ouvert.
  • Avant chaque compilation.
  • Quand vous fermez la boîte de sélection des librairies (même sans changement).

Si un projet est lié à une librairie n'existant plus physiquement sur le disque, un message d'erreur est affiché. Des erreurs de compilation surviendront si des objets de la librairie manquante sont utilisés dans le projet.

info Info

Une librairie peut être liée à une autre librairie. Mais dans ce cas, un projet l'utilisant doit se lier aux deux librairies. Voici un exemple:

Arbre | Description
Projet1 | "Projet1" doit être lié à "LIB1" et LIB2"
utilise LIB1 | "LIB1" doit être lié à "LIB2"
utilise LIB2 |

Vous ne pouvez jamais voir depuis un projet le contenu (source) d'un objet de librairie. Pendant le test en pas à pas, vous ne pouvez pas "entrer" dans un bloc de librairie. Les éléments de librairies sont ignorés par les fonctions de recherche dans les fichiers.


Compatibilité

Compatibilité

A chaque nouvelle version, nous ajoutons de nombreuses fonctionalités à l'atelier. Certaines de ces fonctionalités peuvent ne pas être supportées par des systèmes cible basés sur des implémentations antérieures ou limitées de la cible T5 runtime.

Référez-vous au fichier d'aide README installé avec l'atelier pour connaître la liste exacte des améliorations et nouvelles fonctionnalités ajoutées lors de chaque version. Lancez la commande Readme depuis le groupe de l'atelier dans le menu Démarrer de Windows pour ouvrir ce fichier.

Référez-vous aux instructions de votre construteur pour connaître:

  • Quelle est la version du système T5 implémenté dans la cible,
  • quelles sont les limitations imposées par le constructeur dans l'implémentation de la cible T5.


Raccourcis clavier

Raccourcis clavier

Cette page liste les raccourcis clavier disponible depuis les fenêtres de l'atelier.

Communs

Raccourci | Commande
Alt + Entrée | Editer les propriétés
CTRL + A | Sélectionner tout
CTRL + Alt + E | Ouvrir l'Explorer dans le répertoire du projet
CTRL + C | Copier
CTRL + F | Chercher
CTRL + F3 | Chercher la prochaine assignation
CTRL + F4 | Fermer
CTRL + F7 | Compiler
CTRL + G | Afficher la grille
CTRL + Insertion | Copier
CTRL + L | Liste de fenêtres
CTRL + N | Nouveau
CTRL + O | Ouvrir
CTRL + P | Imprimer
CTRL + S | Enregistrer
CTRL + MAJ + F6 | Volet précédent
CTRL + F6 | Volet suivant
CTRL + V | Coller
CTRL + X | Couper
CTRL + Y | Répéter
CTRL + Z | Annuler
Suppr | Supprimer
F1 | Afficher l'aide
F2 | Renommer
F3 | Chercher le suivant
F6 | Fenêtre suivante
F7 | Compiler
MAJ + Suppr | Couper
MAJ + F6 | Fenêtre précédente
MAJ + Insertion | Coller

Debug

Raccourci | Commande
CTRL + Alt + F4 | Modification en ligne
CTRL + F5 | Debug en mode connecté
CTRL + F8 | Exécuter un pas (sortir)
F4 | Pause / Reprise
F5 | Simulation
F8 | Exécuter un pas (entrer)
F9 | Poser/Enlever un point d'arrêt
F11 | Télécharger
MAJ + CTRL + F4 | Démarrer/Arrêter l'application
MAJ + F4 | Exécuter un cycle
MAJ + F8 | Exécuter un pas

Editeur FBD (commun)

Raccourci | Commande
Flèches | Défilement
CTRL + d | Afficher l'ordre d'exécution du diagramme
CTRL + F2 | Poser/Enlever un signet
CTRL + page HAUT/BAS | Aller au réseau précédent / suivant
Echap | Annuler l'opération souris en cours Annule la sélection Active le mode sélection
Page HAUT/BAS | Défilement
Entrée | Equivalent au double clic
MAJ + CTRL + Fin | Sélectionner tous les items jusqu'à la fin
MAJ + CTRL + Début | Sélectionner tous les items depuis le début
MAJ + F2 | Aller au signet suivant
Tab | Sélectionner l'item suivant
MAJ + Tab | Sélectionner l'item précédent

Editeur FBD (édition)

Raccourci | Commande
caractère | Commence l'édition d'un symbole Pour un saut ou une étiquette: sélectionne l'étiquette
CTRL + flèches | Aligne les items sélectionnés
Suppr | Supprimer la sélection
MAJ + flèches | Déplacer la sélection
MAJ + page HAUT/BAS | Déplacer la sélection
Espace MAJ + CTRL + Flèche bas | Change le style de l'item sélectionné Insère des lignes blanches à la position de la souris

Editeur FBD (debug)

Raccourci | Commande
Espace | Change l'état d'une variable booléenne
* | Verrouille la variable
/ | Déverrouille la variable

Edireur LD (commun)

Raccourci | Commande
Flèches | Déplacer le curseur
CTRL+F2 | Poser/Enlever un signet
Page HAUT/BAS | Défilement
Entrée | Equivalent au double clic
MAJ + flèches | Séléction multiple
MAJ + Début | Sélectionner tout à gauche du curseur
MAJ + Page HAUT/BAS | Sélectionner (pace précédente / suivante)
MAJ+F2 | Aller au prochain signet

Editeur LD (édition)

Raccourci | Commande
caractère | Commence l'édition d'un symbole
CTRL + D | Commentaire
CTRL + F8 | Bloc en parallèle
CTRL + R | Insère une échalle
CTRL + MAJ + F4 | Contact en parallèle
Suppr | Supprier
F4 | Contact après
F8 | Bloc après
F9 | Bobine
MAJ + F4 | Contact avant
MAJ + F8 | Bloc avant
MAJ + F9 | Saut
MAJ + Espace | Segment de ligne horizontal
Espace | Change le style de l'item

Editeur LD (debug)

Raccourci | Commande
Espace | Change l'état d'une variable booléenne
* | Verrouille la variable
/ | Déverrouille la variable

Editeur SFC

Raccourci | Commande
? | Afficher / Cacher les notes
Flèches | Déplacer le curseur
Page HAUT/BAS | Défilement
Entrée | Equivalent au double clic
MAJ + flèches | Sélection multiple
MAJ + Début | Sélection à gauche
MAJ + Page HAUT/BAS | Sélection en haut ou en bas
b ou B | Corps de macro-étape
c ou C | Convergence
CTRL+ Entrée | Editer la référence numérique
d oU D | Divergence
Suppr | Supprimer
i ou I | Etape initiale
j ou J | Saut vers une étape
m ou M | Macro-étape
s ou S | Etape
Espace | Change le style de l'item
t ou T | Transition
x ou X | Coin de divergence à gauche

Editeur ST (commun)

Raccourci | Commande
Flèches | Déplacer le curseur
CTRL + F2 | Poser / enlever un signet
CTRL + Flèches horizontales | Aller au mot précédent / suivant
MAJ + Flèches | Selection
MAJ + F2 | Aller au prochain signet
MAJ+CTRL+ Flèche horz. | Sélectionner un mot à gauche ou à droite du curseur

Editeur ST (édition)

Raccourci | Commande
. | Liste les champs d'une structure ou d'une instance
CTRL + Espace | Auto-completion / sélection d'une variable
SHIFT + CTRL + Espace | Sélection d'une function ou d'un mot-clé

Editeur ST (debug)

Raccourci | Commande
* | Verrouille une variable
/ | Déverrouille une variable
MAJ + double click | Force la valeur d'une variable
Espace | Change la valeur d'une variable booléeene

Editeur de variables (commun)

Raccourci | Commande
- | Réduire
+ | Etendre
Arrows | Déplacer la sélection
CTRL + Début/Fin | Aller au groupe précédent / suivant
CTRL+F2 | Poser ou enlever un signet
F12 | Sélectionner les colonnes à afficher
Page HAUT/BAS | Défilement
MAJ + TAB | Déplacer la sélection à gauche
MAJ+ F2 | Aller au signet suivant
Espace | Sélection par ligne ou par cellule
Tab | Déplacer la sélection à droite

Editeur de variables (édition)

Raccourci | Commande
caractère | Commencer l'édition d'une cellule
Suppr | Supprimer
Insertion | Ajouter une variable
Entrée | Editer la cellule ou la ligne sélectionnée

Editeur de variables (debug)

Raccourci | Commande
* | Verrouiller une variable
/ | Déverrouiller une variable
Entrée | Forcer une variable

Editeur de synoptiques

Raccourci | Commande
- | Zoom arrière
+ | Zoom avant
Flèches | Défilement
CTRL + F2 | Poser / enlever un signet
CTRL+ Page HAUT/BAS | Redimensionner
CTRL+ Flèches | Aligner
Suppr | Supprimer
Escape | Annuler l'opération souris en cours Déselectionner Activer le mode sélection
MAJ + CTRL + Fin | Sélectionner tout jusqu'à la fin
MAJ + CTRL + Début | Sélectionner tout depuis le début
MAJ + F2 | Aller au signet suivant
MAJ + Page HAUT/BAS | Déplacer
MAJ + Flèches | Déplacer
MAJ + CTRL + Flèches | Redimensionner
Tab | Sélectionner l'item suivant
MAJ + Tab | Sélectionner l'item précédent


Langages de programmation - Référence

Langages de programmation - Référence

Référez-vous aux sections suivantes pour une description des langages de la norme IEC61131-3:

Organisation en programmes
Types de données
Variables
Tableaux
Expressions constantes
Compilation conditionnelle
Gestion d'exceptions
Bits d'état des variables

SFC: Sequential Function Chart (ou GRAFCET)
FBD: Function Block Diagram (schéma à blocs)
LD: Ladder Diagram (shéma à relais)
ST: Structured Text
IL: Instruction List
Expressions ST dans les langages graphiques

Les sections suivantes décrivent les structures de programmation et les blocs disponibles:

Opérations de base
Opérations booléennes
Opérations arythmétiques
Comparaisons
Conversions de type
Sélecteurs
Registres
Compteurs
Temporisateurs
Opérations mathématiques
Fonctions trigonométriques
Manipulation des chaines de caractères
Fonctions avancées

info Info

Dertaines fonctions non décrites dans ce document sont réservées pour le diagnostic et certaines opérations spéciales. Contactez votre support technique pour plus d'information.

Dans cette section

Résumé des langages de programmation

Organisation en programmes

Types de données

Variables

Tableaux

Expressions constantes

Compilation conditionnelle

Gestion d'exceptions

Variable status bits

Opérations de base

Opérations booléennes

Opérations arithmétiques

Opérations de comparaison

Conversion de type

Sélecteurs

Registres

Compteurs

Temporisateurs

Opérations mathématiques

Fonctions trigonométriques

Manipulation des chaines de caractères

Opérations avancées


Résumé des langages de programmation

Langages de programmation - Référence -> Résumé des langages de programmation

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les langages définis par la norme IEC61131-3:

SFC: Sequential Function Chart (ou GRAFCET)
FBD: Function Block Diagram (schéma à bloc)
LD: Ladder Diagram (schéma à relais)
ST: Structured Text
IL: Instruction List

Expressions ST dans les langages graphiques

Vous devez choisir un langage pour chaque programme ou bloc fonctionnel (UDFB) de l' application.

Dans cette section

Sequential Function Chart (SFC)

Function Block Diagram (FBD)

Ladder Diagram (LD)

Structured Text (ST)

Instruction List (IL)

Utilisation d'expressions ST dans les langages graphiques


Sequential Function Chart (SFC)

Langages de programmation - Référence -> Résumé des langages de programmation -> Sequential Function Chart (SFC)

Previous chapter Next chapter Show all Show all Hide all Hide all

Le langage SFC (ou GRAFCET) est un graphe d'état. Des étapes graphiques représentent les états stables, et des transitions décrivent les conditions et les évènements qui conduisent à un changement d'état. L'utilisation du SFC permet de simplifier de façon significative la programmation des opérations séquentielles, en économisant beaucoup de variables et d'instructions destinées uniquement à gérer le contexte du programme.

attention Attention

Vous ne devez pas utiliser le SFC comme un diagramme de décision. L'utilisation d'une étape pour représenter un point de décision au sien d'un algorithme ne doit jamais apparaître dans un graphe SFC. Utiliser le SFC comme langage de décision entraine une perte deperformance et des graphes compliqués et difficiles à maintenir. Le langage ST doit être préféré pour programmer un algorithme de décision qui n'a pas de sens au vu de "l'état du procédé".

Voici les éléments de base du langage SFC:

Schéma | Programmiation
Etapes et étapes initiales Transitions et divergences Branches parallèles Saut à une étape | Actions dans une étape Timeout sur étape Condition d'une transition Comment le SFC est exécuté UDFBs programmés en SFC

L'atelier supporte la programmation en SFC avec plusieurs niveaux hiérarchiques de graphes: c'est-à-dire un graphe qui contrôle d'autres graphes. La hiérarchisation des graphes SFC est un moyen facile et puissant pour gérer les séquences complexes et améliorer les performances à l'exécution. Consultez les sections suivantes pour plus de détails:

Définir une hiérarchie de programmes SFC
Contrôler un programme fils SFC

Dans cette section

Etapes SFC

Transition SFC

Branches SFC parallèles

Sauts vers des étapes SFC

Actions d'une étape SFC

Test de timeout pour les étapes SFC

Condition d'une transition SFC

Exécution du SFC

Hiérarchie de programmes SFC

Contrôle des programmes fils SFC

Blocs fonctionnels (UDFBs) programmés en SFC


Etapes SFC

Langages de programmation - Référence -> Résumé des langages de programmation -> Sequential Function Chart (SFC) -> Etapes SFC

Previous chapter Next chapter Show all Show all Hide all Hide all

Une étape représente un état stable du procédé. Il est représenté par un carré dans le graphe SFC. Chaque étape est représentée par un numéro unique. A l'exécution, une étape est soit active soit inactive, selon l'état du programme.

info Info

Toutes les actions affectées à une étape sont conditionnées par l'activité de l'étape.

Etape inactive | Etape active

Dans les actions et conditions du programme SFC, vous pouvez tester l'activité de l'étape en spécifiant son numéro préfixé par "GS" et suivi par ".X".

Example Example

GS100.X Est TRUE quand l'étape 100 est active.
(C'est une expression de type BOOL).

Vous pouvez également tester le temps d'activation d'une étape, en spécifiant son numéro préfixé par "GS" et suivi par ".T". C'est le temps passé depuis l'activation d'une étape. Le temps reste inchangé quand l'étape est désactivée, et ne repasse à 0 que lors d'une nouvelle activation.

Example Example

GS100.T Est le temps passé depuis l'activation de l'étape 100.
(Expression de type TIME).

Etapes initiales

Les étapes initiales représentent l'état initial du graphe quand le programme est lancé. Il doit y avoir au moins une étape initiale dans un graphe. Le symbole d'une étape initiale est marqué par un cadre double:


Transition SFC

Langages de programmation - Référence -> Résumé des langages de programmation -> Sequential Function Chart (SFC) -> Transition SFC

Previous chapter Next chapter Show all Show all Hide all Hide all

Une transitions représente la condition qui fait passer l'activité du programme d'une étape vers une autre.

info Info

Une transition est représentée par un trait horizontal qui traverse le lien entre deux étapes du graphe:

Chaque transition est identifiée par un numéro unique dans le programme.

Chaque transition est complétée par une condition booléenne qui indique si la transition peut être franchie. C'est une expression de type BOOL.

Pour simplifier le graphe et réduire le nombre de liens tracés, vous pouvez spécifier explicitement l'activité d'une étape dans la condition d'une transition en utilisant sa marque d'activité (GSnnn.X).

Les transitions définissent le comportement dynamique du graphe SFC, selon les règles suivantes:

  • Une transition est franchie si:
    • sa condition est TRUE.
    • et si toutes les étapes qui la précèdent sont actives.
  • Lorsq'une transition est franchie:
    • toutes les étapes reliées avant la transition sont désactivéees.
    • toutes les étapes reliées après la transition sont activéees.

Divergences

Il est possible qu'une étape soit suivie de plusieurs transitions, pour indiquer une divergence. La divergence est représentée par une ligne horizontale. Les transitions après la divergence représentent plusieurs possibilités dans l'évolution de la situation.

Dans le cas d'une divergence, toutes les conditions sont considérées exclusives, selon l'ordre de priorité de gauche à droite. Cela signifie qu'une transition est considérée comme FALSE si au moins une transition à gauche dans la même divergence est évaluée à TRUE.

Example Example
 | La transition 1 est franchie si: l'étape 1 est active et Cond1 = TRUE La transition 2 est franchie si: l'étape 1 est active et Cond2 = TRUE et Cond1 = FALSE

attention Attention

Certains systèmes cibles peuvent ne pas supporter l'exclusivité implicite des conditions dans une divergence. Référez-vous aux instructions du constructeur.


Branches SFC parallèles

Langages de programmation - Référence -> Résumé des langages de programmation -> Sequential Function Chart (SFC) -> Branches SFC parallèles

Previous chapter Next chapter Show all Show all Hide all Hide all

Les branches parallèles sont utilisées en SFC pour représenter des processus parallèles. Les branches parallèles sont commencées par plusieurs étapes suivant la même transition. Les branches parallèles sont tracées entre des lignes doubles de divergence:

Quand la transition avant divergence (1 sur cet exemple) est franchie, l'étape de début de chaque branche (101 et 201 ici) est activée.

Le séquencement de chaque branche parallèle se poursuit indépendament des autres et peut prendre un temps différent.

La transition après la convergence (2 sur cet exemple) est valide quand toutes étapes en amont de la ligne de convergence (la dernière étape de chaque branche) sont actives. La transition de convergence indique une synchronisation de toutes les branches parallèles.

Si besoin, une branche peut se terminer par une étape vide (sans action). Cette étape représente l'état pendant lequel la branche "attend" que les autres branches se terminent.

Vous devez respecter les règles suivantes dans le tracé des branches parallèles afin d'éviter les cas de blocage du graphe quand le programme est exécuté:

  • Toutes les branches doivent être connectées à la divergence et à la convergence.
  • Un élément d'une branche ne peut pas être connecté à un élément en dehors de la divergence.


Sauts vers des étapes SFC

Langages de programmation - Référence -> Résumé des langages de programmation -> Sequential Function Chart (SFC) -> Sauts vers des étapes SFC

Previous chapter Next chapter Show all Show all Hide all Hide all

Les symboles de saut peuvent être utilisés en SFC pour représenter un lien d'une transition vers une étape sans le tracer. Le saut est représenté par une flèche et est identifié par le numéro de l'étape de destination.

info Info

L'atelier ne permet pas d'insérer un saut vers une transition, car ceci peut mener à la définition non explicite de convergence de branches parallèles (plusieurs étapes vers la même transition) et mène généralement à des erreurs dans la compréhension du graphe.


Actions d'une étape SFC

Langages de programmation - Référence -> Résumé des langages de programmation -> Sequential Function Chart (SFC) -> Actions d'une étape SFC

Previous chapter Next chapter Show all Show all Hide all Hide all

A chaque étape est associée une liste de blocs d'actions. Ces instructions sont exécutées en fonction de l'éctivité de l'étape. Il peut s'agir d'actions booléennes ou SFC simples, qui consistemt à forcer une variable booléenne ou contrôler un programme SFC fils en fonction du signal d'activité, ou de blocs d'actions programmés dans un autre langage (FBD, LD, ST ou IL).

Test à l'exécution

Les synatxes suivantes peuvent être utilisées dans une étape SFC pour exécuter des tests de sécurité à l'exécution:

Syntaxe | Description
__StepTimeout (...); | Teste si le temps d'activation d'une étape dépasse un timeout.

Actions booléennes simples

Voici les syntaxes possibles pour forcer une variable booléenne en utilisant le signal d'activité de l'étape:

Syntaxe | Description
BoolVar (N); | Force la variable BoolVar à TRUE quand l'étape est activée, et à FALSE quand l'étape est désactivée.
BoolVar (S); | Force la variable BoolVar à TRUE quand l'étape est activée.
BoolVar (R); | Force la variable BoolVar à FALSE quand l'étape est activée.
/ BoolVar; | Force la variable BoolVar à FALSE quand l'étape est activée, et à TRUE quand l'étape est désactivée.

Alarmes

La syntaxe suivante vous permet d'associer des variables d'alarme en timeout à une étape SFC:

Syntaxe

Description

BoolVar (A, duration);

Spécifie une variable d'alarme à associer à l'étape

BoolVar doit être une variable booléenne

duration est la durée: soit une constante, soit une variable TIME simple
(expressions complexes interdites ici)

Quand le timeout est écoulé, la variable d'alarme est forcée à TRUE, et les transition(s) suivant l'étapes ne peuvent pas être franchies tant que la variable d'alarme n'est pas repositionnée à FALSE.

Actions SFC simples

Voici les syntaxes possibles pour contrôler un programme SFC fils:

Syntaxe | Description
Child (N); | Lance le programme fils quand l'étape est activée, et l'arrête quand l'étape est désactivée.
Child (S); | Lance le programme fils quand l'étape est activée.
Child (R); | Arrête le programme fils quand l'étape est activée.

Blocs d'action programmés

Des programmes décrits dans un autre langage (FBD, LD, ST or IL) peuvent être entrés pour décrire les actions d'une étape. Il y a trois principaux styles de blocs d'action, identifiés par les qualificatifs suivants:

 | Description
P1 | Exécuté une fois quand l'étape est activée.
N | Exécuté à chaque cycle pendant l'activation de l'étape.
P0 | Exécuté une seule fois quand l'étape devient inactive.

L'atelier offre une interface pour saisir les actions P1, N et P0 en langage ST/IL, LD ou FBD. Il est également possible d'insérer des blocs d'action programmés en ST dans la liste des actions simples, en utilisant la syntaxe suivante:

ACTION ( qualificatif ) :
énncés...
END_ACTION;

Où qualificatif est P1, N ou P0.


Test de timeout pour les étapes SFC

Langages de programmation - Référence -> Résumé des langages de programmation -> Sequential Function Chart (SFC) -> Test de timeout pour les étapes SFC

Previous chapter Next chapter Show all Show all Hide all Hide all

Le système peut pour chaque étape SFC vérifier que sa durée c'activité n'excède pas un timeout. Pour ceci, vous devez entrer l'instruction suivante dans le bloc principal "Action" de l'étape:

__StepTimeout ( timeOut , errString );

Où:

timeout est une variable ou expression constante de type TIME indiquant la valeur du timeout
errString est la chaîne de caractères à afficher en cas d'erreur

A l'exécution, si la durée d'activité de l'étape excède le timeout, la chaîne spécifiée est envoyée et affichée dans la fenêtre "Trace" de l'atelier.

attention Attention

L'envoi de message vers la fenêtre de trace requiert une liaison ETHERNET, et impose que votre système cible T5 intègre le système d'envoi de traces.

info Info

Vous pouvez placer l'instruction dans une condition #ifdef __DEBUG pour que le timeout ne soit vérifié que lorsque l'application est compilée en mode "Mise au point".

Alternativement, vous pouver programmer une gestion d'erreur de timout plus spécifique, en programmant de la façon suivante dans une action "N":

if GSn.T > timeout then /* 'n' est le numéro de l'étape */
...instructions...
end_if;


Condition d'une transition SFC

Langages de programmation - Référence -> Résumé des langages de programmation -> Sequential Function Chart (SFC) -> Condition d'une transition SFC

Previous chapter Next chapter Show all Show all Hide all Hide all

A chaque transition SFC est associée une condition booléenne qui indique si la transition peut être franchie. La condition d'une transition est programmée en ST ou en LD.

En ST, entrez simplement une expression booléenne. Il peut s'agir d'une expression complexe incluant des parenthèses ou des appels de fonction.

Example Example

bForce AND (bAlarm OR min (iLevel, 1) <> 1)

En LD, la condition est représentée par une échelle unique. Le bobinage de l'échelle représente la transition et n'a pas besoin d'être associé à une variable.

Example Example


Exécution du SFC

Langages de programmation - Référence -> Résumé des langages de programmation -> Sequential Function Chart (SFC) -> Exécution du SFC

Previous chapter Next chapter Show all Show all Hide all Hide all

Les programmes sont exécutés séquentiellement dans le cycle, selon l'ordre défini pour la hiérarchie des programmes. Un programme SFC père est toujours exécuté avant ses fils. Ceci implique que si programme lance ou arrête un fils, les actions correspondantes du programme fils seront exécutées dans e même cycle.

Dans un graphe, toutes les transitions valides sont d'abord évaluées, puis les actions des étapes actives sont exécutées. Le graphe est évalué de la gauche vers la droite et du haut vers le bas.

Example Example

Ordre d'évaluation:

  • Evaluer les transitions:

1, 101, 2

  • Gérer les étapes:

1, 101, 201, 102

Dans le cas d'une divergence, toutes les conditions sont considérées exclusives, selon l'ordre de priorité de gauche à droite. Cela signifie qu'une transition est considérée comme FALSE si au moins une transition à gauche dans la même divergence est évaluée à TRUE.

Les étapes initiales définissent l'état du programme quand il est lancé. Tous les programmes principaux (niveau principal) sont lancés quand l'application démarre. Les programmes fils sont lancés explicitement par les actions de leur programme père.

L'évaluation des transitions définit l'activation et la désactivation des étapes, selon les règles suivantes:

  • Une transition est franchie si:
    • Sa condition est égale à TRUE.
    • Et si toutes les étapes qui la précèdent sont actives.
  • Quand une transition est franchie:
    • Toutes les étapes avant la transition sont désactivées.
    • Toutes les étapes qui suivent la transition sont activées.

attention Attention

L'exécution des graphes SFC dans une cible est échantillonée selon le cadencement des cycles. Quand une transition est franchie dans un cycle, les étapes suivantes sont activées, et l'évaluation de la suite du graphe continuera au prochain cycle. Si plusieurs transitions consécutives sont à TRUE dans une branche, il n'y a qu'une transition franchie par cycle.

attention Attention
  • Cette section décrit le fonctionnement d'une cible standard. Le modèle d'exécution du SFC peut différer sur d'autres cibles. Référez-vous aux instructions du constructeur pour plus de détails.
  • Certains systèmes cibles peuvent ne pas supporter l'exclusivité des transitions dans une divergence. Référez-vous aux instructions du constructeur.


Hiérarchie de programmes SFC

Langages de programmation - Référence -> Résumé des langages de programmation -> Sequential Function Chart (SFC) -> Hiérarchie de programmes SFC

Previous chapter Next chapter Show all Show all Hide all Hide all

Chaque programme SFC peut avoir un ou plusieurs "programmes fils". Les programmes fils sont écrits en SFC. Ils sont démarrés et arrêtés explicitement dans les actions du programme père. Un programme fils peut également avoir des fils. Le nombre de niveaux dans la hiérarchie ne peut pas excéder 19.

Quand un programme fils est arreté, tous ses fils sont implicitement arrêtés dans le même cycle.

Quand un programme fils est lancé, il doit explicitement lancer ses fils dans ses actions.

Un programme fils peut être contrôlé (lancé ou arrêté) dans les actions de son programme père. Réaliser un programme fils correspond à décrire une action en langage SFC.

L'utilisation de programme fils est un moyen simple et puissant de définir un procédé complese en séparant clairement les opérations liées à des aspects différents du procédé. Par exemple, il est fréquent de gérer une séquence d'actions dans un programme fils, et les modes de démarrage de la séquence dans le programme père.


Contrôle des programmes fils SFC

Langages de programmation - Référence -> Résumé des langages de programmation -> Sequential Function Chart (SFC) -> Contrôle des programmes fils SFC

Previous chapter Next chapter Show all Show all Hide all Hide all

Contrôler un programme SFC fils peut se faire dans une action simple ayant le nom du programme fils, insérée dans les actions d'une étape du programme père. Voici les qualificatifs possibles pour une action SFC simple:

Qualificatif | Description
Child (N); | Lance le programme fils quand l'étape est activée, et l'arrête quand l'étape est désactivée.
Child (S); | Lance le programme fils quand l'étape est activée.
Child (R); | Arrête le programme fils quand l'étape est activée.

Vous pouvez également utiliser les énoncés suivants dans les blocs d'action programmés en ST. Dans la table suivante, "prog" représente le nom du programme fils:

Déclaration | Description
GSTART (prog); | Lance le programme fils.
GKILL (prog); | Arrête le programme fils.
GFREEZE (prog); | Suspend l'exécution du programme fils.
GRST (prog); | Reprend l'exécution d'un programme suspendu par GFREEZE.

Vous pouvez également utiliser la fonction "GSTATUS" dans les expressions ST. Cette fonction rend l'état du programme fils passé en argument:

Déclaration | Description
GSTATUS (prog) | Retourne l'état courant du programme fils: 0: programme inactif 1: programme actif 2: programme actif mais suspendu

info Info

Quand un programme fils est lancé par son père, il garde l'état inactif jusqu'à sa prochaine exécution (plus tard dans le même cycle). Si vous lancez un programme fils dans un bloc en ST, GSTATUS retournera 1 (active) lors du prochain cycle.


Blocs fonctionnels (UDFBs) programmés en SFC

Langages de programmation - Référence -> Résumé des langages de programmation -> Sequential Function Chart (SFC) -> Blocs fonctionnels (UDFBs) programmés en SFC

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier vous permet de créer des blocs fonctionnels (UDFBs) programmés avec le langage SFC. Cette section détaille les fonctionalités spécifiques à de tels blocs fonctionnels.

L'exécution des UDFBs écrits en SFC requiert un système cible version SR7-1 ou plus.

Déclaration

Depuis le menu contextuel de l'espace de travail, lancez la commande Insérer Nouveau Programme. Spécifiez un nom valide pour le bloc. Sélectionnez le langage "SFC" et le style d'exécution "UDFB".

Paramètres

Quand un UDFB programmable en SFC est créé, l'atelier déclare automatiquement 3 entrées spéciales pour le bloc:

RUN: Le programme SFC n'est pas activé si cette entrée est FALSE.
RESET: Le graphe SFC est remis dans sa situation initiale si cette entrée est TRUE.
KILL: Toutes les étapes actives du graphe SFC sont désactivées si cette entrée est TRUE.

Vous pouvez librement ajouter d'autres entrées et sorties au bloc. Vous pouvez aussi supprimer certaines entrées spéciales si elles ne sont pas nécessaires. Si l'entrée RUN est supprimée, elle est considérée comme toujours TRUE. Si les entrées RESET ou KILL sont supprimées, elles sont considérées comme toujours FALSE.

Voici la table de vérité montrant la priorité entre les entrées spéciales:

RUN | RESET | KILL |
FALSE | FALSE | FALSE | Ne rien faire
FALSE | FALSE | TRUE | Tuer le graphe SFC
FALSE | TRUE | FALSE | Réinitialiser le graphe SFC
FALSE | TRUE | TRUE | Tuer le graphe SFC
TRUE | FALSE | FALSE | Activer le graphe SFC
TRUE | FALSE | TRUE | Tuer le graphe SFC
TRUE | TRUE | FALSE | Réinitialiser le graphe SFC
TRUE | TRUE | TRUE | Tuer le graphe SFC

Etapes

Chaque étape insérée dans le graphe SFC sont automatiquement déclarées comme instances de blocs fonctionnels spécifiques avec les variables locales de l'UDFB. Les types de blocs fonctionnels utilisés sont:

isfcSTEP : une étape
isfcINITSTEP : une étape initiale

L'éditeur prend en charge la création et la mise à jour des déclaration d'étapes comme instante. Vous ne devez pas supprimer, renommer ou modifier ces instances dans l'éditeur de variables. Les instances d'étapes sont nommées GS suivi de leur numéro.

Exécution

Le programme SFC est activé seulement quand le bloc fonctionnel est appelé par un programme.

Si l'entrée RESET est TRUE, le graphe SFC est forcé dans sa situation initale. Si l'entrée KILL estr TRUE, chaque étape active est désactivée.

Si l'entrée RUN est TRUE et KILL/RESET sont FALSE, le graphe SFC est activé de la même façon que les autres programmes SFC:

  1. Tester les transitions valides et les conditions associées.
  2. Franchir les transitions valides avec leur condition à TRUE.
  3. Exécuter les actions correspondantes des étapes actives.

info Info

Dans une UDFB programmé en SFC, vous ne pouvez pas écrire d'action SFC pour piloter un "programme fils SFC". Cette fonctionnalité est réservé aux programmes SFC. A la place d'une hiérarchie père/fils, un UDFB programmé en SFC peut activer un autre UDFB programmé en SFC dans ses actions.


Function Block Diagram (FBD)

Langages de programmation - Référence -> Résumé des langages de programmation -> Function Block Diagram (FBD)

Previous chapter Next chapter Show all Show all Hide all Hide all

Un diagramme FBD (Function Block Diagram) représente un flux de données entre des expressions constantes ou des variables et des opérations représentées par des blocs rectangulaires. Les opérations peuvent être des opérateurs de base du langage, des appels de fonctions ou de blocs fonctionnels.

Expressions ST dans les langages graphiques

Le nom de l'opérateur ou de la fonction, ou le type du bloc fonctionnel est inscit à l'intérieur du rectangle. Dans le cas d'un bloc fonctionnel, le nom de l'instance appelée est inscrit en dessus du rectangle du bloc, comme dans l'exemple ci-dessous:

Example Example

Les flux de données représentés par des lignes peuvent être de tout type. Toutes les connexions doivent être tracées entre des points d'entrée ou de sortie ayant le même type. Dans le cas d'une connexion booléenne, le lien peut être terminé par un petit cercle indiquant une inversion booléenne du flux. Par exemple:

Example Example

Lien inversé: Q = IN1 AND NOT IN2

Le flux de données se propage de gauche à droite et du haut vers le bas dans le diagramme. Il est possible d'utiliser des étiquettes et sauts pour forcer l'ordre d''exécution du diagramme.

Symboles LD

Des symboles du langage LD (schéma à relais) peuvent être insérés dans un diagramme FBD et liés aux autres éléments du diagramme. Référez-vous aux section suivantes pour plus de détails sur les éléments graphiques du langage LD:

Contacts
Bobinages
Barres d'alimentation

Un type spécial de barre verticale est disponible en langage FBD pour la convergence des flux booléens de branches LD parallèles. Ces lignes verticales représentent une opération logique OU entre toutes les entrées connectées. Voici un exemple de ligne verticale "OU" dans un diagramme FBD:

Example Example


Ladder Diagram (LD)

Langages de programmation - Référence -> Résumé des langages de programmation -> Ladder Diagram (LD)

Previous chapter Next chapter Show all Show all Hide all Hide all

Le langage Ladder Diagram (ou Schéma à relais) est une liste d'échelles. Chaque échelle représente un flux de données booléen depuis une barre d'alimentation à gauche vers une barre d'alimentation à droite. La barre d'alimentation à gauche représente l'état TRUE qui initialise le flux dans l'échelle. Chaque symbole inséré sur l'échelle modifie le flux de données et/ou exécute une opération. Voici les éléments graphiques du langage LD:

Barres d'alimentation
Contacts et Bobinages
Operations, Fonctions et Blocs fonctionnels, représentés par des rectangles
Etiquettes et Sauts
Expressions ST dans les langages graphiques

Utilisation de l'entrée EN et de la sortie ENO des blocs

L'état d'une échelle est toujours une valeur booléenne. Les blocs sont connectés sur l'échelle par leur première entrée et leur première sortie. Ceci implique qu'une entrée supplémentaite EN ou une sortie ENO sont ajoutées au bloc si sa première entrée et/ou sortie n'est pas de type booléen.

L'entrée EN signifie une condition. Elle indique que le bloc ne doit pas être exécuté si le flux d'entrée (EN) est FALSE. La sortie ENO est toujours une copie de la première entrée du bloc: le flux n'est jamais modifié par un bloc avec une sortie ENO.

Voici l'exemple du bloc XOR, qui a des entrées et sorties booléennes, et ne nécessitent ni l'entrée EN ni la sortie ENO:

info Info

La première entrée est le flux. Le flux en sortie est la sortie du bloc.

Voici l'exemple du bloc > (plus grand que), ayant des entrées non booléennes et une sortie booléenne. Ce bloc nécessite l'entrée EN quand il est utilisé en LD:

info Info

La comparaison n'est exécutée que si EN = TRUE.

Voici l'exemple du bloc SEL, dont la première entrée est booléenne, mais dont la sortie ne l'est pas. Ce bloc nécessite la sortie ENO en LD:

info Info

Le flux d'entrée est l'entrée de sélection.
ENO a la même valeur que SELECT.

Finalement, voici l'exemple d'une adidition, n'ayant que des entrées/sorties numériques. Ce blox nécessite l'entrée EN et la sortie ENO quand il est utilisé en LD:

info Info

L'addition n'est exécutée que si EN = TRUE.
ENO est égal à EN.

Dans cette section

Contacts

Bobinages

Barres d'alimentation


Contacts

Langages de programmation - Référence -> Résumé des langages de programmation -> Ladder Diagram (LD) -> Contacts

Previous chapter Next chapter Show all Show all Hide all Hide all

Les contacs sont des éléments graphiques de base du langage LD. Un contact est associés à une variable booléenne indiqué en dessus du symbole graphique. Un contact modifie l'état du flux de donnée en fonction de l'état de la variable associée.

Voici les différents types de contacts disponibles:

Type

Description

Normal: la valeur du flux de donnée à droite est le ET booléen entre le flux à gauche et la valeur de la variable associée.

Inversé: la valeur du flux de donnée à droite est le ET booléen entre le flux à gauche et l'inverse de la valeur de la variable associée.

Front montant: la valeur du flux à droite est TRUE seulement si le flux à gauche est TRUE et la variable associée change de FALSE à TRUE (front montant)

Front descendant: la valeur du flux à droite est TRUE seulement si le flux à gauche est TRUE et la variable associée change de TRUE à FALSE (front descendant)

info Info

Quand un contact ou un bobinage est sélectionné, frappez la touche ESPACE pour changer son type (normal, inversé, front...)

Deux contacts normaux en série représentent une opération logique ET.
Deux contacts normaux en parallèle représentent une opération logique OU.

seealso See also

Bobinages Barres d'alimentation


Bobinages

Langages de programmation - Référence -> Résumé des langages de programmation -> Ladder Diagram (LD) -> Bobinages

Previous chapter Next chapter Show all Show all Hide all Hide all

Les bobinages sont des éléments graphiques du langage LD. Un bobinage est associé à une variable booléenne, inscrite en dessus du symbole grahique. Un bobinage représente un forçage de la variable associée en fonction du flux de donnée en entrée.

Voici les différents styles de bobinages:

Normal: la variable associée prend la valeur du flux d'entrée

Inversé: la variable associée prend la valeur de l'inverse du flux d'entrée.

Set: la variable associée est forcée à TRUE si le flux d'entrée est TRUE. (aucune action n'est effectuée si le flux d'entrée est FALSE)

Reset: la variable associée est forcée à FALSE si le flux d'entrée est TRUE. (aucune action n'est effectuée si le flux d'entrée est FALSE)

info Info

Quand un contact ou un bobinage est sélectionné, frappez la touche ESPACE pour changer son type (normal, inversé, front...)

attention Attention

Les bobinages sont en général reliés à une barre d'alimentation à droite. Toutefois, le flux peut continuer après un coil. La valeur du flux n'est jamais changée par un bobinage.

seealso See also

Contacts Barres d'alimentation


Barres d'alimentation

Langages de programmation - Référence -> Résumé des langages de programmation -> Ladder Diagram (LD) -> Barres d'alimentation

Previous chapter Next chapter Show all Show all Hide all Hide all

Les barres d'alimentation versticales sont utilisées dans le langage LD pour matérialiser les limites des échelles du diagramme.

La barre d'alimentation à gauche représente l'état TRUE et initialise le flux de chaque échelle. La barre d'alimentation à droite est connectée aux bobinages des échelles, et n'a pas de signification particulière dans l'évaluation des diagrammes.

Les barres d'alimentation peuvent également être utilisées dans les diagrammes FBD. Seuls les objets booléens peuvent être connectés aux barres d'alimentation.

seealso See also

Contacts Bobinages


Structured Text (ST)

Langages de programmation - Référence -> Résumé des langages de programmation -> Structured Text (ST)

Previous chapter Next chapter Show all Show all Hide all Hide all

Le ST est un langage textuel structuré. Un programme ST est une liset d'énoncés. Chaque énoncé décrit une action et se termine par un point-virgule (";").

La présentation du texte n'a pas d'influence sur l'exécution du programme. Vous pouvez insérer des caractères blancs ou des sauts de lignes n'importe où dans le texte.

Commentaires

Des commentaires peuvent être entrés n'importe où dans un programme ST. Les commentaires n'ont pas d'influence sur l'exécution du programme. Un commentaire doit commencer par "(*" et se terminer par "*)". Les commentaires peuvent être entrés sur plusieurs lignes (un commentaire peut contenir des sauts de lignes). Les commentaires ne peuvent pas être imbriqués.

Expressions

Chaque énoncé décrit une action et peut inclure des expressions complexe. Une expression est évaluée:

  • De gauche à droite.
  • Selon la priorité des opérateurs.
  • La priorité par défaut peut être changée à l'aide de parenthèses.

Les arguments d'une expression sont:

  • Des variables déclarées.
  • Des expressions constantes.
  • Des appels de fonction.

Enoncés

Voici les différents styles d'énoncés de base d'un programme ST:

  • Assignation.
  • Appel de bloc fonctionnel.

Voici les énoncés disponibles pour l'exécution conditionnelle d'énoncés:

  • IF / THEN / ELSE (sélecteur binaire)
  • CASE (énumération de cas)

Voici les énoncés disponibles pour l'exécution itérative d'énoncés:

  • WHILE (avec test en entrée de boucle).
  • REPEAT (avec test en fin de boucle).
  • FOR (énumération).


Instruction List (IL)

Langages de programmation - Référence -> Résumé des langages de programmation -> Instruction List (IL)

Previous chapter Next chapter Show all Show all Hide all Hide all

Un programme écrite en langage IL est une liste d'instructions. Chaque instruction doit être écrite sur une ligne de texte. Une instruction peut avoir un ou plusieurs opérandes. Les opérandes peuvent être des variables ou des expressions constantes. Chaque instruction peut commencer par une étiquette, suivie par le caractère ":". Les étiquettes sont les destinations pour les instructions de saut.

L'atelier vous permet de mélanger les langages ST et IL dans un programme textuel. ST est le langage par défaut. Pour entrer des instructions en IL, le programme doit commencer par BEGIN_IL et se terminer par END_IL, comme montré dans l'exemple suivant:

Example Example

BEGIN_IL
LD var1
ST var2
END_IL

Commentaires

Des textes de commentaire peuvent être entrés à la fin de chaque ligne d'instruction. Les commentaires n'ont pas d'influence sur l'exécution du programme. Un commentaire doit être délimité par les caractères "(*" et "*)". Vous pouvez également entrer des commentaires sur des lignes vides (sans instruction). Les commentaires ne peuvent pas être imbriqués.

Flux de données

Un énoncé IL complet est une liste d'instruction pour:

  • D'abord: évaluer une expression (le résultat courant).
  • Ensuite: utiliser le résultat courant pour exécuter des actions.

Evaluation d'expressions

L'ordre des instructions dans le programme indique l'ordre d'évaluation des expressions, sauf si des parenthèses sont utilisées. Voici les instructions disponibles pour l'évaluation d'expressions:

Instruction | Opérande | Description
LD / LDN | tout type | Charge l'opérande dans le résultat courant.
AND (&) | booléen | ET entre l'opérande et le résultat courant.
OR / ORN | booléen | OU entre l'opérande et le résultat courant.
XOR / XORN | booléen | OU exclusif entre l'opérande et le résultat courant.
ADD | numérique | Addition entre l'opérande et le résultat courant.
SUB | numérique | Soustraction entre l'opérande et le résultat courant.
MUL | numérique | Multiplication entre l'opérande et le résultat courant.
DIV | numérique | Division entre l'opérande et le résultat courant.
GT | numérique | Compare le résultat courant et l'opérande.
GE | numérique | Compare le résultat courant et l'opérande.
LT | numérique | Compare le résultat courant et l'opérande.
LE | numérique | Compare le résultat courant et l'opérande.
EQ | numérique | Compare le résultat courant et l'opérande.
NE | numérique | Compare le résultat courant et l'opérande.
appel de fonction | paramètres | Appelle une fonction.
parenthèses |  | Force l'ordre d'évaluation de l'expression.

info Info

Les instructions suffixées par N utilisent l'inverse booléen de l'opérande.

Actions

Les instructions suivantes exécutent des actions en fonction de la valeur du résultat courant. Certaines de ces opérations ne nécessitent pas de résultat courant:

Instruction | Opérande | Description
ST / STN | tout type | Stocke le résultat courant dans l'opérande.
JMP | étiquette | Saut inconditionnel - pas de résultat courant utilisé.
JMPC | étiquette | Saut à une étiquette si le résultat courant est TRUE.
JMPNC / JMPCN | étiquette | Saut à une étiquette si le résultat courant est FALSE.
S | booléen | Force l'opérande à TRUE si le résultat courant est TRUE.
R | booléen | Force l'opérande à FALSE si le résultat courant est TRUE.
CAL | bloc fonctionnel | Appel de bloc fonctionnel - pas de résultat courant utilisé.
CALC | bloc fonctionnel | Appel de bloc fonctionnel si le résultat courant est TRUE.
CALNC / CALCN | bloc fonctionnel | Appel de bloc fonctionnel si le résultat courant est FALSE.

info Info

Les instructions suffixées par N utilisent l'inverse booléen de l'opérande.


Utilisation d'expressions ST dans les langages graphiques

Langages de programmation - Référence -> Résumé des langages de programmation -> Utilisation d'expressions ST dans les langages graphiques

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier permet d'associer n'importe quelle exporession ST à un élément graphique des diagrammes LD ou FBD. Cette fonctionalité vous permet de simplifier considérablement les diagrammes LD et FBD quand certaines expressions triviales doivent être programmées. Ceci permet également de réserver les langages graphiques à la représentation d'un algorithme en utilisant la programmation textuelle pour les détails de l'implémentation.

Les expressions doivent être écrites en langage ST. Une expression est l'évalutation d'une valeur. Bien sûr l'expression ST doit avoir le type de donnée requis par le contexte du diagramme (par exemple une expression associées à un contact doit être booléenne).

Langage FBD

Une expression complex ST peut être entrée sur toute boîte variable d'un diagramme FBD, si la boîte n'est pas cconnectée à gauche.

Example Example

Langage LD

Une expression complexe ST peut être associée à tout contact ou à toute entrée de bloc ou de fonction.

Example Example


Organisation en programmes

Langages de programmation - Référence -> Organisation en programmes

Previous chapter Next chapter Show all Show all Hide all Hide all

Une application est une liste de programmes. Les programmes sont exécutés dans le cycle de l'automate selon le modèle suivant:

Début du cycle
| échange des E/S
| exécution du premier programme
| ...
| exécution du dernier programme
| attente du fin de temps de cycle
Fin du cycle

Les programmes sont exécutés dans l'ordre défini par l'utilisateur. Tous les programmes SFC doivent être groupés (ilne doit pas y avoir de programme en FBD, LD, ST ou IL entre deux programmes SFC). Le nombre de programmes dans une application est limité à 32767. Chaque programme a un langage choisi lors de la création du programme. Les langages disponibles sont le Sequential Function Chart (SFC ou GRAFCET), Function Block Diagram (FBD), Ladder Diagram (LD - SChéma à relais), Structured Text (ST) ou Instruction List (IL).

Chaque programme doit avoir un nom unique. Le nom d'un programme ne doit pas être un mot réservé des langages, et ne doit pas être utilisé par un autre objet déclaré. Le nom d'un programme doit commencer avec une lettre ou un caractère souligné ("_"), suivi par des lettres, chiffres ou caractères soulignés. Il ne peut pas y avoir deux caractères de soulignement consécutifs dans un nom. La casse est ignorée.

Programmes fils SFC

L'atelier vous permet de définit une hiérarchie de programmes SFC, définie comme un arbre dans la liste des programmes. Un programme fils est contrôlé dans les actions du programme père.

Blocs fonctionnels (UDFBs)

La liste des programmes peut être complétée par une liste de blocs fonctionnels en langage IEC ou User Defined Function Blocks (UDFBs). Les UDFBs sont écrits en SFC, FBD, LD, ST ou IL, et peuvent être utilisés dans les programmes de l'application. Les entrées, sorties et variables privées d'un UDFB sont déclarées dans l'éditeur de variables, dans le groupe identifiant les variables locales du UDFB.

Il n'y a pas de restriction particulière dans la programmation d'un UDFB. Un UDFB peut appeler des blocs fonctionnels standard ou en "C".

Un UDFB peut appeler un autre UDFB. Le bloc appelé doit être déclaré avant le bloc appelant dans la liste des programmes.

A chaque instanciation d'un UDFB, ses variables privées sont dupliquées pour l'instance déclarée. Le code d'un UDFB est dupliqué à chaque appel dans les programmes. Ceci entraine de meilleures performances, mais génère un code plus gros. Il est recommandé de réserver l'utilisation des blocs fonctionnels aux algorithmes courts pouvant aisément être embarqué comme une "boîte noire" utilisée plusisuers fois dans l'application. Il est préférable de traiter les portions de code uniques et longues dans les programmes.

Un UDFB ne peut pas avoir plus de 32 paramètres en entrée ou plus de 32 paramètres en sortie.

Sous-programmes

La liste des programmes peut être complétée par des Sous-programmes. Les sous-programmes sont écrits en langage FBD, LD, ST ou IL, et sont appelés par les programmes de l'application. Les paramètres d'entrée et de sortie ainsi que les variables locales à un sous-programme sont entrées dans l'éditeur de variables dans la section correspondante au sous-programme.

Un sous-programme peut appeler un autre sous-programme ou un UDFB.

Contrairement aux UDFBs, les variables locales d'un sous-programme ne sont pas instanciées. Ceci signifie que le sous-programme travaille toujours avec le même jeu de variables locales. Ces variables gardent leur valeur d'un appel à l'autre. Le code d'un sous-programme n'est pas dupliqué quand il est appelé plusieurs fois dans l'application.

Un sous-programme ne peut pas avoir plus de 32 paramètres en entrée ni plus de 32 paramètres en sortie.


Types de données

Langages de programmation - Référence -> Types de données

Types de base

Voici les types de base disponibles:

Type de données | Description
BOOL | Booléen (bit) - vaut FALSE ou TRUE - stocké sur un octet.
SINT (*) | Entier court de 8 bits (de -128 à +127).
USINT (*) | Entier non signé de 8 bits (de 0 à +255).
BYTE | Identique à USINT.
INT (*) | Entier de 16 bits (de -32768 à +32767).
UINT (*) | Entier non signé de 16 bits (de 0 à +65535).
WORD | Identique à UINT.
DINT | Entier de 32 bits (de -2147483648 à +2147483647).
UDINT (*) | Entier non signé de 32 bits (de 0 à 4294967295).
DWORD | Identique à UDINT.
LINT (*) | Entier long de 64 bits.
REAL (*) | Réel en simple précision - socké sur 32 bits.
LREAL (*) | Réel en double précision - socké sur 64 bits.
TIME | Durée - inférieure à 24h - la précision est 1ms.
STRING (*) | Chaine de caractères à longueur variable - avec longueur maximum déclarée. La taille maximum déclarée ne peut pas excéder 255 caractères.

(*) Certains types de données peuvent ne pas être supportés sur certaines cibles.

Structures

Une structure est un type de donnée complexe définit comme un ensemble de membres. Les membres d'une structure peuvent avoir des types hétérogènes. Un membre d'une structure peut avoir des dimensions ou peut être une instance d'une autre structure.

Quand une structure est définie, elle peut être utilisée comme type pour la déclaration de variables.

Les membres d'une structure peuvent avoir une valeur initiale. dans ce cas, les membres correspondant de toutes les variables du type de cette structure seront initialisés avec la valeur initiale du membre.

Pour accéder à un membre d'une variable de type structure dans les langages, utilisez la notation:

NomDeLaVariable.NomDuMembre

Types énumérés

Voud pouvez définir de nouveaux types qui sont des énumérations de valeurs nommées. Par exemple:

type: FEU

values: VERT, ORANGE, ROUGE

Dans les programmmes vous pouvez alors utiliser un nom de valeur préfixée par le nom du type:

Feu1 := FEU#ROUGE;

Les variables ayant un type énumérées ne peuvent être utilisées que pour les assignations, les compairisons, et les fonctions SEL/MUX.

Type de données en "Champs de bits"

Vous pouvez créer de types de données dérivés d'un type entier, qui possède des noms pour certains de ses bits. Vous pouvez alors utiliser la notation VarName.BitName dans les programmes. Vous ne pouvez pas dériver un tel type du type LINT.


Variables

Langages de programmation - Référence -> Variables

Toutes les variables utilisées dans les programmes doivent être déclarées dans l'éditeur de variables. Chaque variable appartient à un groupe et est identifiée par un symbole unique.

Groupes

Un groupe est un ensemble de variables. Un groupe correspond soit à une classe physique de variables, soit identifie les variables locales à un programme ou un UDFB. Voici les différents groupes:

Groupe | Description
GLOBAL | Variables internes connues par tous les programmes.
RETAIN | Variables globales stockées dans une zone de mémoire non volatile.
%I... | Voies d'une carte d'entrée - variables de même type liées à un équipement d'E/S.
%Q... | Voies d'une carte de sortie - variables de même type liées à un équipement d'E/S.
PROGRAMxxx | Variables internes locales à un programme (le nom du groupe est le nom du programme).
UDFBxxx | Variables internes locales à un bloc fonctionnel utilisateur (UDFB) (le nom du groupe est le nom du UDFB).

Type et dimension

Chaque variable doit avoir un type. Ce peut être un type de base ou un type de bloc fonctionnel pour une instance. Les E/S physiques ont toujours un type de base. Les instances de blocs fonctionnels peuvent représenter soit un bloc écrit en "C", soit un bloc standard, soit un bloc utilisateur (UDFB).

Si le type sélectionné est STRING, vous devez spécifier la longueur maximum de la chaine, qui ne peut pas excéder 255 caractères.

Consultez la liste des types de données pour plus d'informartion. Référez-vous à la description des blocs fonctionnels pour plus d'information sur la mise en oeuvre des instances.

Vous pouvez spécifier une ou des dimension(s) dans le cas d'nue variable interne, pour déclarer un tableau. Les tableaux ont au plus 3 dimensions. Le premier index pour chaque dimension est 0, identifié par Tableau[0] par exemple dans le cas d'un tableau à une seule dimension. Le nombre total d'éléments dans un tableau (toutes dimensions ensemble) ne peut pas excéder 65535.

Nom d'une variable

Une variable doit être identifiée par un nom unique dans son groupe. Le nom d'une variable ne peut pas être un mot réservé des langages, ou être utilisé pour une bloc standard ou "C" de la librairie. Une variable ne peut pas avoir le même nom qu'un programme ou UDFB.

Le nom d'une variable doit commencer par une lettre ou un carcatère souligné("_"), suivi de lettres, chiffres ou soulignés. Il ne doit pas y avoir plusieurs caractères soulignés consécutifs dans un nom. La casse est ignorée.

Nom des E/S physiques

Chaque voie d'E/S est identifiée par un nom qui indique son emplacement physique. Ce symbole commence par %I pour une entrée ou %Q pour une sortie, suivi par une lettre identifiant le type de donnée. Ensuite est indiqué l'emplacement de la carte et de la voie, séparés par des points. Tous les emplacements sont numérotés à partir de 0. Voici la liste des préfixes possibles pour une E/S:

Préfixe | Description
%IX | Entrée de 1 octet - BOOL ou SINT
%QX | Sortie de 1 octet - BOOL ou SINT
%IW | Entrée de 2 octets - INT
%QW | Sortie de 2 octets - INT
%ID | Entrée de 4 octets - DINT ou REAL
%QD | Sortie de 4 octets - DINT ou REAL
%IL | Entrée de 8 octets - LINT ou LEAL
%QL | Sortie de 8 octets - LINT ou LEAL
%IS | Entrée de type STRING
%QS | Sortie de type STRING

Vous pouvez également définir un alias (un nom lisible) pour chaque voie. Dans ce cas, vous pouvez utiliser soit l'alias soit le nom naturel ("%...") dans les programmes. L'alias doit respecter les règles de nomenclature des varaibles.

Attributs d'une variable

Les variables physiques d'E/S sont marquées comme Entrée ou Sortie. Les entrées sont en lecture seule. Chaque variable interne peut avoir l'attribut Lecture seule.

Les paramètres d'un bloc (UDFB) sont marqués IN ou OUT.

Paramètres de sous-programmes et UDFBs

Les sous-programmes et UDFBs peuvent avoir des paramètres en entrée et en sortie. Les paramètres de sortie ne peuvent pas être des tableaux ou des structures. Quand un tableau est passé en entrée à un UDFB, il est considéré comme INOUT et l'UDFB peut lire ou écrire dans le tableau. Le support de types complexses pour les paramètres d'entrée dépend des options de compilation.


Tableaux

Langages de programmation - Référence -> Tableaux

Vous pouvez spécifier une ou des dimensions pour les variables internes, pour déclarer des tableaux. Tous les index de tableaux sont numérotés à partir de 0. Par exemple, pour un tableau à une seule dimension, le premier élément est toujours ArrayName[0].

Pour déclarer un tableau, entrez sa dimension dans la colonne correspondante de l'éditeur de variables. Pour un tableau à plusieurs dimensions, entrez les dimensions séparées par des virgules (ex: 2,10,4).

Utilisation en ST et IL

Pour spécifier un élément de tableau en ST ou IL, entrez le nom du tableau suivi du ou des index entre les caractères "[" et "]". Pour les tableaux à plusieurs dimensions, spécifiez les index séparés par des virgules. Les index peuvent être des expressions constantes ou complexes. Voici quelques exemples en ST:

Example Example

TheArray[1,7] := value;
result := SingleArray[i + 2];

Utilisation en FBD et LD

Dans les langages graphiques, les blocs suivants sont disponibles pour accéder à un élément d'un tableau:

Bloc | Description
[I]>> | Lit la valeur d'un élément dans un tablea à 1 dimension.
[I,J]>> | Lit la valeur d'un élément dans un tablea à 2 dimensions.
[I,J,K]>> | Lit la valeur d'un élément dans un tablea à 3 dimensions.
>>[I] | Écrit la valeur d'un élément dans un tablea à 1 dimension.
>>[I,J] | Écrit la valeur d'un élément dans un tablea à 2 dimensions.
>>[I,J,K] | Écrit la valeur d'un élément dans un tablea à 3 dimensions.

Pou les blocs de lecture, la première entrée est le tableau, et la valeur lue est la sortie. Les autres entrées sont les index dans le tableau.

Pour les blocs d'écriture, la première entrée est la valeur à forcer et la seconde entrée est le tableau. Les autres entrées sont les index dans le tableau.

attention Attention
  • Les tableaux ont au plus 3 dimensions.
  • Tous les index commencent à 0.
  • Le nombre total d'éléments dans un tableau (en groupant toutes les dimensions) ne peut pas excéder 65535.


Expressions constantes

Langages de programmation - Référence -> Expressions constantes

Previous chapter Next chapter Show all Show all Hide all Hide all

Les expressions constantes peuvent être utilisées dans tous les langages pour représenter une valeur, qui sera soit affectée à une variable, soit passée en entrée à un bloc ou une fonction, soit utilisée dans le calcul d'une expression complexe. Chaque expression constante a un type de donnée explicitement défini par sa syntaxe. Si vous programmez une opération entre une variable et une expression constante ayant des types discordants, une erreur sera générée. Voici les règles sémantiques pour l'écriture d'expression constante pour chaque type de données:

BOOL: Booléen

Il n'y a que deux valeurs possibles. Ce sont les mots réservés TRUE (vrai) et FALSE (faux).

SINT: Entier court (8 bits)

Les entiers courts sont des valeurs entières valides comprises entre -128 et 127. L'expression doit être préfixée par SINT#. Toutes les expressions entières sans préfixe sont de type DINT.

USINT / BYTE: Entier non signé de 8 bits

Les entiers courts no signés sont des valeurs entières valides comprises entre 0 et 255. L'expression doit être préfixée par USINT#. Toutes les expressions entières sans préfixe sont de type DINT.

INT: Entier de 16 bits

Les entiers de 16 bits sont des valeurs entières valides comprises entre -32768 et 32767. L'expression doit être préfixée par INT#. Toutes les expressions entières sans préfixe sont de type DINT.

UINT / WORD: Entier non signé de 16 bits

Les entiers no signés de 16 bits sont des valeurs entières valides comprises entre 0 et 65535. L'expression doit être préfixée par UINT#'. Toutes les expressions entières sans préfixe sont de type DINT.

DINT: Entier (defaut = 32 bits)

Les entiers de 32 bits sont des valeurs entières valides comprises entre -2147483648 et 2147483647. DINT est la taille par défaut pour les entiers et ne nécessitent aucun préfixe. Voux pouvez utiliser les préfixes 2#, 8# ou 16# pour spécfier des expressions en binaire, octal ou hexadécimal respectivement.

UDINT / DWORD: Entier non signé de 32 bits

Les entiers no signés de 32 bits sont des valeurs entières valides comprises entre 0 et 4294967295. L'expression doit être préfixée par UDINT#. Toutes les expressions entières sans préfixe sont de type DINT.

LINT: Entier long de 64 bits

Les extiers longs doivent être préfixés par LINT#. Toutes les expressions entières sans préfixe sont de type DINT.

REAL: Réel en simple précision

Les expressions constantes REAL représentent des nombres réels valides, et doivent impérativement inclure un point décimal ("."). Si vous devez spécifier une valeur entière de type REAL, ajoutez .0 à la valeur du nombre. Vous pouvez utiliser les lettres F ou E pour spécifier l'exposant dans le cas d'une représentation scientifique. REAL est la précision par défaut des réels: ce expressions ne nécessitent aucun préfixe.

LREAL: Réel en double précision

Les expressions constantes REAL représentent des nombres réels valides, et doivent impérativement inclure un point décimal ("."), et doivent être préfixées par LREAL#. Si vous devez spécifier une valeur entière de type REAL, ajoutez .0 à la valeur du nombre. Vous pouvez utiliser les lettres F ou E pour spécifier l'exposant dans le cas d'une représentation scientifique.

TIME: Durée

Les expressions de type TIME représentent une durée inférieure à 24 heures. Les expressions doivent être préfixées par TIME# ou T#. La durée est exprimée comme un nombre d'heures suivi par h, un nombre de minutes suivi par m, un nombre de secondes suivi par s, et un nombre de millisecondes suivi par ms. L'ordre des unités (heures, minutes, secondes, millisecondes) ne peut pas être changé. Vous ne pouvez pas inclure d'espaces dans une expression constante. Au moins une unité valide doit être spécifiée.

STRING: Chaine de caractères

Les expressions constantes de type STRING sont des chaines de caractères délimitées par des apostrophes. La longueur de la chaine ne peut pas excéder 255 caractères. Vous pouvez utiliser les séquences suivantes pour représenter les caractères non imprimables:

Séquence | Description
$$ $' $T $R $L $N $P $xx | un caractère "$" une apostrophe une tabulation (code ASCII 9) un retour à la ligne (code ASCII 13) un saut de ligne (code ASCII 10) un retour à la ligne ET un saut de ligne (codes ASCII 13 et 10) un saut de page (code ASCII 12) un caractère quelconque (xx est son code ASCII exprimé sur deux caractères hexadécimaux

Example Example

Voici des exemples d'expressions constantes valides

TRUE
FALSE
SINT#127
INT#2000
123456
16#abcd
LINT#1
0.0
1.002E3
LREAL#1E-200
T#23h59m59s999ms
TIME#0s
T#1h123ms
'hello'
'name$Tage'
'I$'m here'
'x$00y'

Booléen = TRUE
Booléen = FALSE
Entier court
Entier de 16 bit
Entier de 32 bits
Entier de 32 bits en hexadécimal
Entier long (valeur "1")
0 exprimé en type REAL
1002 exprimé en type REAL en représentation scientifique
Nombre réel en double précision
Valeur TIME maximale
Valeur TIME nulle
Valeur TIME avec certaines unités manquantes
Chaine de caractères
Chaine de caractères incluant une tabualtion
Chaine de caractères avec un apostrophe (I'm here)
Chaine de caractères incluant un caractère nul (code ASCII 0)

Voici des cas typiques d'erreur dans des expressions constantes

1a2b
1E-200
T#12
'I'm here'
hello

Préfixe de base ("16#") oublié
Préfixe LREAL# oublié pour un réel en double précision
Unité de temps manquante
Aposotrophe dans une chaine avex oubli du marqueur "$"
Apostrophes manuantes autour d'une chaine de caractères


Compilation conditionnelle

Langages de programmation - Référence -> Compilation conditionnelle

Previous chapter Next chapter Show all Show all Hide all Hide all

Le compilateur supporte les directives de compilation conditionnelle dans les langages ST, IL, LD, et FBD. Les directives de compilation conditionnelle contitionnent l'inclusion d'une partie du programme dans le code généré. La compilation conditionnelle est un moyen facile de gérer plusieurs configurations ou options pour une application au sein d'un programme unique.

Le directives de compilation conditionnelles utilisent les définitions comme conditions. Voici la syntaxe:

#ifdef CONDITION

énoncésOUI...

#else

énoncésNON...

#endif

Si CONDITION a été définie à l'aide de la syntaxe #define, alors la partie énoncésOUI est inclue dans le code, sinon la partie énoncésNON est inclue. La mention #else est optionnelle.

En ST ou IL, les directives doivent être entrées seules sur une ligne de texte. En FBD, les directives sont entrées dans le texte des lignes de séparation. En LD, les directives seront entrées dans le texte des lignes de commentaire.

La condition __DEBUG est automatiquement définie quand l'application est comiplée en mode Mise au point. Ceci vous permet d'inclure dans votre code des instructions supplémentaires (telles que des messages de trace) qui ne sont pas intégrée en mode Exécution.


Gestion d'exceptions

Langages de programmation - Référence -> Gestion d'exceptions

Previous chapter Next chapter Show all Show all Hide all Hide all

Le compilateur vous permet d'écrire vos propres programmes pour gérer certains évènements systèmes. Les exceptions suivantes peuvent être gérées:

  • Démarrage (avant le premier cycle)
  • Arrêt (après le dernier cycle)
  • Division par zéro

Démarrage

Vous pouvez écrirte un programme spécifique à exécuter avant le premier cycle quand l'application démarre. Voici la procédure à suivre pour installer la gestion d'exception:

  1. Créez un nouveau programme principal. Ce ne peut pas être un programme SFC.
  2. Dans l'éditeur de définitions globales, insérez la ligne:

#OnStartup NomProgramme

attention Attention

Le programme est exécuté avant tous les autres lors du premier cycle. Ceci implique que le temps du premier cycle peut être plus long. Vous ne pouvez pas insérer de point d'arrêt dans ce programme.

Shutdown

Vous pouvez écrirte un programme spécifique à exécuter après le dernier cycle quand l'application est arrêtée proprement. Voici la procédure à suivre pour installer la gestion d'exception:

  1. Créez un nouveau programme principal. Ce ne peut pas être un programme SFC.
  2. Dans l'éditeur de définitions globales, insérez la ligne:

#OnShutdown NomProgramme

attention Attention

Vous ne pouvez pas insérer de point d'arrêt dans ce programme.

Division par zéro

Le compilateur vous permet d'écrire votre propre gestion d'exception pour gérer les cas de division par zéro. Voici la procédure à suivre pour installer la gestion d'exception:

  1. Créez un nouveau sous-programme sans paramètres, qui gèrera l'exception
  2. Dans l'éditeur de définitions globales, insérez la ligne:

#OnDivZero NomSousProgramme

Dans le sous-programme qui gère l'exception, vous pouvez exécuter des instructions de sécurité. Vous avez ensuite les possibilités suivantes:

  • Retourner du sous-programme sans appel particulier. Dans ce cas la gestion standard est appliquée: un message d'erreur système est généré, le résultat de la division est remplacé par une valeur maximum, et l'application continue.
  • Appeler la fonction FatalStop. L'application s'arrête immédiatement en erreur fatale.
  • Appeler la fonction CycleStop. Le programme en cours se termine normalement et l'application bascule en mode cycle à cycle.

Le sous-programme d'exception peut également être mis en oeuvre en mode Mise au point pour localiser la division en erreur. Placez un point d'arrêt dans le sous-programme d'exception. Quand l'application s'arrête, la pile d'appels vous montre la localisation de la division dans les sources des programmes.

Index de tableau hors bornes

Le compilateur vous permet d'écrire votre propre gestion d'exception pour gérer les cas d'erreur dus à un index de tableau invalide (hors bornes). Voici la procédure à suivre pour installer la gestion d'exception:

  1. Créez un nouveau sous-programme sans paramètres, qui gèrera l'exception
  2. Dans l'éditeur de définitions globales, insérez la ligne:

#OnBadArrayIndex NomSousProgramme

Note: ceci est de toute façon une erreur grave. Si l'option de compilation "Tester les bornes de tableaux" est validée, la cible passe en mode "Erreur Fatale" après l'appel de votre sous-programme.


Variable status bits

Langages de programmation - Référence -> Variable status bits

Previous chapter Next chapter Show all Show all Hide all Hide all

The workbench enables you to associate status bits to declared variables. Each variable may have, in addition to its real time value:

  • 64 status bits
  • a date and time stamp

Status bits and time stamps are generally set by input drivers taking care of hardware inputs, but may also be transported together with the value of the variable on some network protocols. In addition, the IEC 61131-3 programs may access to the status bits of variables.

attention Attention
  • Status bit management may be not available on some targets. Please refer to OEM instructions for further details about available features.
  • Status bit management is CPU and memory consuming and may reduce the performances of your applications.

Enabling status bits

In order to enable the management of status bits and time/date stamps by the runtime, you must check the following option in the list of compiler options from the Project Settings wizard:

Allocate status flags for variables with embedded properties

Only variables having some properties defined (either a profile attached or embedded symbol) will get status bits. Status bits are available only for global scope variables (global, retain, IOs...) with a single data type (cannot be array or structure).

Reading and writing status from programs

The following functions are available for managing status information in the programs:

vsiGetBit : get a status bit of a variable
vsiGetDate : get the date stamp of a variable
vsiGetTime : get the time stamp of a variable
vsiSetBit : set a status bit of a variable
vsiSetDate : set the date stamp of a variable
vsiSetTime : set the time stamp of a variable
vsiStamp / vsiStampGMT : update the stamp of a variable according to the current time
vsiCopy : copie les bits de status et l'horodatage d'une variable dans une autre variable

Below is the syntax of the functions:

bBit := vsiGetBit ( variable, bitID );
iDate := vsiGetDate ( variable );
iTime := vsiGetTime ( variable );
bOK := vsiSetBit ( variable, bitID, bBit );
bOK := vsiSetDate ( variable, iDate );
bOK := vsiSetTime ( variable, iTime );
bOK := vsiStamp ( variable );

The functions use the following arguments:

Argument | Description
variable | Variable having embedded profile or symbol.
bitID : DINT | ID of a status bit (see list of IDs in the section below).
bBit : BOOL | Value of the status bit.
iDate : DINT | Date stamp according to real time clock functions conventions.
iTime : DINT | Time stamp according to real time clock functions conventions.
bOK : BOOL | TRUE if successful.

See the description of real time clock functions for further information about time and date stamps.

Drivers supporting status bits

Below are runtime drivers taking care of status bits and date/time stamping:

Driver | Description
Variable binding (ETHERNET) | Binding (spontaneous protocol) is used for real time exchange of variable values among runtimes over ETHERNET. The protocol takes care of carrying status bits. The protocol updates the date and time stamps of variables updated by the network.
MODBUS Master | The MODBUS master protocols (RTU / TCP / UDP) takes care of updating the date and time stamp of all variables updated by the network. The MODBUS stack also sets the _VSB_I_BIT status bits of received variables according to the exchange error status.
MODBUS Slave | The MODBUS slave protocols (RTU / TCP / UDP) takes care of updating the date and time stamp of all variables updated by the network.
DNP3 Master | The DNP3 protocol handles the time stamps and the following status bits: _VSB_SPONT, _VSB_I_BIT, _VSB_ST_M1, _VSB_ST_M3, _VSB_ST_M2, _VSB_OV_BIT, _VSB_SP_BIT
DNP3 Slave | The DNP3 protocol handles the time stamps and the following status bits: _VSB_SPONT, _VSB_I_BIT, _VSB_ST_M1, _VSB_ST_M3, _VSB_ST_M2, _VSB_OV_BIT, _VSB_SP_BIT
IEC 60870-5 Master | The IEC 60870-5-101/-104 master protocols receive the _VSB_I_BIT, _VSB_OV_BIT, _VSB_SP_BIT and _VSB_NT_BIT. Update of date/time (UTC time) included. You can evaluate the information with the help of function blocks vsiGetBit, vsiGetDate and vsiGetTime. If values with time information (CP24Time2a or CP56Tima2a) are received, the driver sets the status bit _VSB_RT_E. Otherwise the variabel receivs status bit _VSB_RT_I and a time stamp with the local time (PC clock).
IEC 60870-5 Slave | The IEC 60870-5-101 and IEC 60870-5-104 slave protocols send the _VSB_I_BIT, _VSB_OV_BIT, _VSB_BL_BIT, _VSB_SP_BIT and _VSB_NT_BIT in the protocol telegrams for points and measures. Update of date/time stamp included.
IEC 61850 Client | The IEC 61850 Client can read the _VSB_I_BIT from the IEC 61850 Server. Update of date/time stamp included.
IEC 61850 Server | Variable status bits are not supported by the IEC 61850 Server.
zenon RT to straton connection | The zenon RT to straton connection can read all 64 status bits. Update of date/time stamp included.

Dans cette section

Liste des bits d'état


Liste des bits d'état

Langages de programmation - Référence -> Variable status bits -> Liste des bits d'état

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici la liste des bits d'état. Les identificateurs (_VSB_...) sont prédéfinis par le compilateur et n'ont pas besoin d'être déclarés pour être utilisés dans les programmes:

Bit | Identificateur | Description
0 | _VSB_ST_M1 | défini par l'utilisateur
1 | _VSB_ST_M2 | défini par l'utilisateur
2 | _VSB_ST_M3 | défini par l'utilisateur
3 | _VSB_ST_M4 | défini par l'utilisateur
4 | _VSB_ST_M5 | défini par l'utilisateur
5 | _VSB_ST_M6 | défini par l'utilisateur
6 | _VSB_ST_M7 | défini par l'utilisateur
7 | _VSB_ST_M8 | défini par l'utilisateur
8 | _VSB_SELEC | Sélection
9 | _VSB_REV | Révision
10 | _VSB_DIREC | Direction désirée
11 | _VSB_RTE | Dépassement Runtime
12 | _VSB_MVALUE | Valeur manuelle
13 | _VSB_ST_14 | défini par l'utilisateur
14 | _VSB_ST_15 | défini par l'utilisateur
15 | _VSB_ST_16 | défini par l'utilisateur
16 | _VSB_GR | défini par l'utilisateur
17 | _VSB_SPONT | Spontané
18 | _VSB_I_BIT | Invalide
19 | _VSB_SUWI | Annoncement heure d'été/hiver
20 | _VSB_N_UPD | Off
21 | _VSB_RT_E | Realtime - externe
22 | _VSB_RT_I | Realtime - interne
23 | _VSB_NSORT | Non triable
24 | _VSB_DM_TR | Default message trafo value
25 | _VSB_RM_TR | Run message trafo value
26 | _VSB_INFO | Info variable
27 | _VSB_AVALUE | Valeur alternative
28 | _VSB_RES28 | réservé
29 | _VSB_ACTUAL | Non mis à jour
30 | _VSB_WINTER | Heure d'hiver
31 | _VSB_RES31 | réservé
32 | _VSB_TCB0 | Cause de transmission
33 | _VSB_TCB1 | Cause de transmission
34 | _VSB_TCB2 | Cause de transmission
35 | _VSB_TCB3 | Cause de transmission
36 | _VSB_TCB4 | Cause de transmission
37 | _VSB_TCB5 | Cause de transmission
38 | _VSB_PN_BIT | P/N
39 | _VSB_T_BIT | Test
40 | _VSB_WR_ACK | Acquittement
41 | _VSB_WR_SUC | Ecriture réussie
42 | _VSB_NORM | Normal
43 | _VSB_ABNORM | Déviation
44 | _VSB_BL_BIT | IEC status: bloqué
45 | _VSB_SP_BIT | IEC status: substituté
46 | _VSB_NT_BIT | IEC status: atypique
47 | _VSB_OV_BIT | IEC status: overflow
48 | _VSB_SE_BIT | IEC status: sélectionné
49 | _VSB_T_INVAL | Temps invalide
50 | _VSB_CB_TRIP | Breaker tripping detected
51 | _VSB_CB_TR_I | Breaker tripping detection inactive
52 | non défini |
53 | non défini |
54 | non défini |
55 | non défini |
56 | non défini |
57 | non défini |
58 | non défini |
59 | non défini |
60 | non défini |
61 | non défini |
62 | non défini |
63 | non défini |


Opérations de base

Langages de programmation - Référence -> Opérations de base

Voici les principales éléments de langage pour la manipulation de données:

Assignation de variables
Accès aux bits d'un mot
Parenthèses
Appel de fonction
Appel de bloc fonctionnel
Appel de sous-programme
MOVEBLOCK
COUNTOF
INC
DEC

Voici les principales éléments de langage pour le contrôle de l'exécution d'un programme:

Etiquettes
Sauts
RETURN

Voici les principales éléments de langage pour la structuration des programmes:

Instruction | Description
IF WHILE REPEAT FOR CASE EXIT ON WAIT | Exécution conditionnelle d'énoncés. Répète des énoncés tant qu'une la condition est TRUE. Répète des énoncés jusqu'à ce qu'une la condition soitt TRUE. Itère des énoncés. Sélectionne un groupe d'énoncés. Quitte une boucle d'itérations. Exécution conditionnelle Suspend l'exécution d'un programme

Dans cette section

Assignation

Accès aux bits d'un mot

Appel de fonction

Appel de bloc fonctionnel

Appel de sous-programme

CASE OF ELSE END_CASE

CountOf

DEC

EXIT

FOR TO BY END_FOR

IF THEN ELSE ELSIF END_IF

INC

Sauts JMP JMPC JMPNC JMPCN

Etiquettes

MOVEBLOCK

Parenthèses ( )

REPEAT UNTIL END_REPEAT

RETURN RET RETC RETNC RETCN

WHILE DO END_WHILE

ON

WAIT / WAIT_TIME


Assignation

Langages de programmation - Référence -> Opérations de base -> Assignation

Previous chapter Next chapter Show all Show all Hide all Hide all

:= LD LDN ST STN

Opérator - assigne une valeur à une variable.

Inputs

IN : ANY Toute valeur, expression constante ou expresseion complexe.

Sorties

Q : ANY Variable forcée.

Remarques

La variable forcée et l'expression doivent avaoir le même type. La variable forcée ne doit pas avoir l'attribut lecture seule. En LD et FBD, le bloc 1 est utilisé pour copier une valeur. En LD, le flux d'entrée (EN) valide la copie, et le flux est inchangé en sortie. En IL, l'instruction LD est utilisée pour charger la valeur dans le résultat courant, et l'instruction ST force la variable. Le résultat courant et l'opérande de l'instruction ST doivent avoir le même type. Les instruction LD et ST peuvent être modifiées par le sufffixe N pour indiquer une inversion dans le cas d'un opérande booléen.

Langage ST

Q := IN; (* IN dans la variable Q *)
Q := (IN1 + (IN2 / IN 3)) * IN4; (* la valeur est un expression complexe *)
result := SIN (angle); (* la valeur est le retour d'une fonction *)
time := MyTon.ET; (* la valeur est un paramètre de retour d'un bloc fonctionnel *)

Langage FDB

Langage LD

La copie n'est exécutée que si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD IN (* résultat courant: IN *)
ST Q (* Q = IN *)
LDN IN1 (* résultat courant: NOT (IN1) *)
ST Q (* Q = NOT (IN1) *)
LD IN2 (* résultat courant: IN2 *)
STN Q (* Q = NOT (IN2) *)

seealso See also

Parenthèses


Accès aux bits d'un mot

Langages de programmation - Référence -> Opérations de base -> Accès aux bits d'un mot

Previous chapter Next chapter Show all Show all Hide all Hide all

Vous pouvez directement spécifier un bit d'une variable entière dans les expressions et les diagrammes, en utilisant la syntaxe suivante:

Variable.BitNo

Où:

Variable: est le nom d'une variable entière
BitNo: est le numéro du bit dans l'entier

La variable peut avoir un des types suivants:

SINT, USINT, BYTE (8 bits de .0 à .7)
INT, UINT, WORD (16 bits de .0 à .15)
DINT, UDINT, DWORD (32 bits de .0 à 31)
LINT (from 0 to 63)

0 représente toujours le bit de poids le plus faible.


Appel de fonction

Langages de programmation - Référence -> Opérations de base -> Appel de fonction

Previous chapter Next chapter Show all Show all Hide all Hide all

Une fonction calcule un résultat à partir de ses paramètres d'entrée. Contrairement à un bloc fonctionnel, une fonction ne dispose pas de données privées pour le stockage d'information. Une fonction a une sortie et une seule. Une fonction peut être:

  • Une fonction standard (SHL, SIN...).
  • Une fonction écrite en langage "C" et intégrée à la cible.

Langage ST

Pour appeler une fonction en ST, entrez son nom, suivi de ses paramètres entre parenthèses et séparés par des virgules. La fonction peut être imbriquée dans une expression complexe. Un paramètre de fonction peut être un appel à une autre fonction. Voici un exemple d'utilisation des fonctions ODD et SEL en ST:

Example Example

(* L'énoncé suivant contertit un entier impair en l'entier pair le plus proche *)
iEvenVal := SEL ( ODD( iValue ), iValue, iValue+1 );

Langages FBD et LD

Pour appeler une fonction en FBD et LD, il suffit de l'insérer dans le diagramme et de connecter ses entrées et sa sortie.

Langage IL

Pour appeler une fonction en IL, il faut d'abord charger le premier paramètre de la fonction dans le résultat courant, puis utiliser le nom de la fonction comme une instruction. Les entrées suivantes (si la fonction a plus d'une entrée, sont les opérandes de l'instruction, séparés par desvirgules. Le résultat de la fonction est chargé dans le résultat courant. Voici un exemple d'utilisation des fonctions ODD et SEL en IL:

Example Example

(* les instructions suivantes convertissent les nombres impairs en "0" *)
Op1: LD iValue
ODD
SEL iValue, 0
ST iResult


Appel de bloc fonctionnel

Langages de programmation - Référence -> Opérations de base -> Appel de bloc fonctionnel

Previous chapter Next chapter Show all Show all Hide all Hide all

CAL CALC CALNC CALCN

Un bloc fonctionnel regroupe une algorithme et un jeu de données privées. Il peut avoir des paramètres en entrée et en sortie. Un bloc fonctionnel peut être:

  • Un bloc standard de la librairie (RS, TON...).
  • Un bloc écrit en langage "C" et intégré au système cible.
  • Un bloc utilisateur ou "User Defined Function Block" (UDFB) écrit en ST, FBD, LD ou IL.

Pour utiliser un bloc fonctionnel, vous deveez déclarer une instance du bloc de la même façon qu'on déclare une varieble. Chaque instance doit être identifiée par un symbole unique. Chaque instance de bloc représente un jeu de données privées et peut être appelée insépendament des autres instances. Un appel à une instance de bloc lance l'algorithme du bloc sur les données de l'instance, en utilisant les paramètres passés lors de l'appel.

Langage ST

Pour appeler un bloc en ST, vous devez spécifier le nom de l'instance, suivi des paramètres d'appel écrits entre parenthèses et séparés par des virgules. Pour accéder à un paramètre de sortie, vous devez spécifier le nom de l'instance suivi par un point '.' et le nom du paramètre. Voici un exemple d'utilisation du bloc TON en ST:

Example Example

(* MyTimer est une instance déclarée du bloc TON *)
MyTimer (bTrig, t#2s); (* active le bloc fonctionnel *)
TimerOutput := MyTimer.Q;
ElapsedTime := MyTimer.ET;

Langages FBD et LD

Pour appeler un bloc fonctionnel en FBD ou LD, il suffit d'insérer le bloc dans le schéma et de connecter des variables à ses entrées/sorties. Le nom de l'instance est spécifiée en dessus du cadre du bloc.

Langage IL

Pur appeler un bloc en IL, utilisez l'instruction CAL, en spécifiant une instance déclarée ayant le type du bloc. Le nom de l'instance est l'opérande de l'instruction, suivi par les paramètres d'entrée entre parenthèses et séparés par des virgules. Les instructions CALC, CALCN ou CALNC représentent un appel conditionnel du bloc:

CAL Appelle le bloc.
CALC Appelle le bloc si le résultat courant est TRUE.
CALNC Appelle le bloc si le résultat courant est FALSE.
CALCN Identique à CALNC.

Voici un exemple d'appel du bloc TON en IL:

Example Example

(* MyTimer est une instance déclarée du bloc TON *)
Op1: CAL MyTimer (bTrig, t#2s)
LD MyTimer.Q
ST TimerOutput
LD MyTimer.ET
ST ElapsedTimer

Op2: LD bCond
CALC MyTimer (bTrig, t#2s) (* appelé si bCond = TRUE *)
Op3: LD bCond
CALNC MyTimer (bTrig, t#2s) (* appelé si bCond = FALSE *)


Appel de sous-programme

Langages de programmation - Référence -> Opérations de base -> Appel de sous-programme

Previous chapter Next chapter Show all Show all Hide all Hide all

Un sous-programme est appelé par un autre programme. Contrairement aux blocs fonctionnels, les variables locales à un sous-programme ne sont pas instanciées, et vous n'avez donc pas à déclarer d'instance. L'appel à un sous-programme lance son algorithme avec les entrées spécifiées. Les paramètres de sortie sont alors disponibles.

Langage ST

Pour appeler un sous-programme en ST, voud devez spécifier son nom, suivi des paramètres d'entrée entre parenthèses et séparés par des virgules. Pour accéder à un paramètre de sortie, utilisez le nom du sous-programme suivi par un point '.' et le nom du paramètre désiré:

MySubProg (i1, i2); (* appelle le sous-programme *)
Res1 := MySubProg.Q1;
Res2 := MySubProg.Q2;

Il est également possible, si le sous-programme a une sortie et une seule, de l'appeler comme une fonction dans le langage ST:

Res := MySubProg (i1, i2);

Langages FBD et LD

Pour appeler un sous-programme en FBD ou LD, il suffit d'insérer le bloc dans un diagramme et de connecter ses entrées et sorties.

Langage IL

Pour appeler un sous-programme en IL, utilisez l'instruction CAL avec le nom du sous-programme, suivi de ses paramètres d'entrée entre parenthèses et séparés par des virgules. Les instructions CALC, CALCN ou CALNC peuvent être utilisés:

CAL Appelle le sous-programme.
CALC Appelle le sous-programme si le résultat courant est TRUE.
CALNC Appelle le sous-programme si le résultat courant est FALSE.
CALCN same as CALNC.

Example Example

Op1: CAL MySubProg (i1, i2)
LD MySubProg.Q1
ST Res1
LD MySubProg.Q2
ST Res2


CASE OF ELSE END_CASE

Langages de programmation - Référence -> Opérations de base -> CASE OF ELSE END_CASE

Previous chapter Next chapter Show all Show all Hide all Hide all

Enoncé - sélection d'un groupe d'énoncés.

Syntaxe

CASE <expression DINT> OF
<valeur> :
<énoncés>
<valeur> , <valeur> :
<énoncés>;
<valeur> .. <valeur> :
<énoncés>;
ELSE
<énoncés>
END_CASE;

Remarques

Toutes les valeurs énumérées correspondent à l''expression DINT, et sont des possibilités lors de l'exécutiondu programme. Les énoncés entrés après ELSE sont exécutés si l'expression prend une valeur qui n'est pas énumérée. Pour chaque cas, vous devez spécifier soit une valeur, soit une liste de valeurs séparées par des virgules (",") soit une plage spécifiée par un intervalle "min .. max". Vous devez insérer un caractère blanc avant et après le séparateur "..".

Langage ST

Cet exemple teste les nombres premiers jusqu'à 5.

Example Example

CASE iNumber OF
0 :
Alarm := TRUE;
AlarmText := '0 = pas de résultat';
1 .. 3, 5 :
bPrime := TRUE;
4, 6 :
bPrime := FALSE;
ELSE
Alarm := TRUE;
AlarmText := 'Je ne sais pas après 6 !';
END_CASE;

Langage FBD

Non disponible.

Langage LD

Non disponible.

Langage IL

Non disponible.

seealso See also

IF WHILE REPEAT FOR EXIT


CountOf

Langages de programmation - Référence -> Opérations de base -> CountOf

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Retourne le nombre d'éléments d'un tableau.

Entrées

ARR : ANY Tableau de variables.

Sorties

Q : DINT Nombre total d'éléments dans le tableau.

Remarques

L'entrée doit être un tableau et peu avoir n'importe quel type. Cette fonction est particulièrement utile pour éviter de spécifier expolicitement une dimension dans un programme et ainsi garder le code du programme indépendant de la programmation.

Example Example

FOR i := 1 TO CountOf (MyArray) DO
MyArray[i-1] := 0;
END_FOR;

En LD, l'opération n'est exéutée que si le flux en entrée (EN) est TRUE. Le flux est inchangé en sortie.

Example Example
Tableau | Retour
Arr1 [ 0..9 ] | 10
Arr2 [ 0..4 , 0..9 ] | 50

Langage ST

Q := CountOf (ARR);

Langage FBD

Langage LD

La fonction n'est appelée que si EN = TRUE.
ENO garde la même valeur que EN.

Langage IL

Non disponible.


DEC

Langages de programmation - Référence -> Opérations de base -> DEC

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Décrémente une variable.

Entrées

IN : ANY Variable numérique (décrémentée après l'appel).

Sorties

Q : ANY Valeur décrémentée.

Remarques

Quand la fonction est appelée, la variable connectée à l'entrée IN est décrémentée et copiée dans Q. Tous les types de données sont supportés à l'exception de BOOL et STRING: dans ces cas, la sortie est simplement la copie de IN.

Pour les variables réelles, le pas est "1.0". Pour les temporisations, le pas est 1ms.

L'entrée IN doit être directement conneectée à une variable, et ne peut pas être une constante ou une expression complexe.

Cette fonction est particulièrement dédiée au langage ST. Elle permet une écriture simplifiée puisque l'affectation de la valeur de retour de la fonction n'est pas obligatoire.

Langage ST

IN := 2;
Q := DEC (IN);
(* maintenant: IN = 1 ; Q = 1 *)

DEC (IN); (* écriture simplifiée *)

Langage FBD

Langage LD

Langage IL

Non disponible.


EXIT

Langages de programmation - Référence -> Opérations de base -> EXIT

Previous chapter Next chapter Show all Show all Hide all Hide all

Enoncé - Abandonne un énoncé itératif.

Remarques

L'énoncé EXIT indique que la boucle courante (WHILE, REPEAT ou FOR) doit être quittée. L'exécution est déroutée après l'instruction END_WHILE, END_REPEAT ou END_FOR de la boucle où EXIT est inséré. EXIT se rapporte à une boucle uniquement et ne peut pas être utilisé pour quitter plusieurs boucles imbriquées.

attention Attention

Les instructions itératives peuvent créer de boucles infinies et bloquer le cycle de l'automate.

Langage ST

Ce programme cherche la première valeur non nulle dans un tableau.

iFound = -1; (* signifie: non trouvé *)
FOR iPos := 0 TO (iArrayDim - 1) DO
IF iPos <> 0 THEN
iFound := iPos;
EXIT;
END_IF;
END_FOR;

Langage FBD

Non disponible.

Langage LD

Non disponible.

Langage IL

Non disponible.

seealso See also

IF WHILE REPEAT FOR CASE


FOR TO BY END_FOR

Langages de programmation - Référence -> Opérations de base -> FOR TO BY END_FOR

Previous chapter Next chapter Show all Show all Hide all Hide all

Enoncé - Itération d'énoncés.

Syntaxe

FOR <index> := <minimum> TO <maximum> BY <step> DO
<énoncés>
END_FOR;

index = Variable interne DINT utilisée comme index.
minimum = Expression DINT: valeur initiale de index.
maximum = Expression DINT: maximum autorisé pour index.
step = Expression DINT: pas d'incrément de index après chaque itération (1 par défaut).

Remarques

La mention BY <step> peut être omise. Dans ce cas le pas d'incrément est 1.

Langage ST

iArrayDim := 10;

(* force à 0 tous les éléments d'un tableau *)
FOR iPos := 0 TO (iArrayDim - 1) DO
MyArray[iPos] := 0;
END_FOR;

(* force à 1 tous les éléments aux index impairs *)
FOR iPos := 1 TO 9 BY 2 DO
MyArray[ipos] := 1;
END_FOR;

Langage FBD

Non disponible.

Langage LD

Non disponible.

Langage IL

Non disponible.

seealso See also

IF WHILE REPEAT CASE EXIT


IF THEN ELSE ELSIF END_IF

Langages de programmation - Référence -> Opérations de base -> IF THEN ELSE ELSIF END_IF

Previous chapter Next chapter Show all Show all Hide all Hide all

Enoncé - Exécution conditionnel d'énoncés.

Syntaxe

IF <expression BOOL> THEN
<énoncés>
ELSIF <expression BOOL> THEN
<énoncés>
ELSE
<énoncés>
END_IF;

Remarques

L'énoncé IF n'est utilisable qu'en ST. L'exécution des énoncés est condiftionné par la valeur de l'expression booléenne. Les énoncés ELSIF et ELSE sont optionnels. Il peut y avaoir plusieurs énoncés ELSIF.

Langage ST

(* condition simple *)
IF bCond THEN
Q1 := IN1;
Q2 := TRUE;
END_IF;

(* sélection binaire *)
IF bCond THEN
Q1 := IN1;
Q2 := TRUE;
ELSE
Q1 := IN2;
Q2 := FALSE;
END_IF;

(* conditions énumérées *)
IF bCond1 THEN
Q1 := IN1;
ELSIF bCond2 THEN
Q1 := IN2;
ELSIF bCond3 THEN
Q1 := IN3;
ELSE
Q1 := IN4;
END_IF;

Langage FBD

Non disponible.

Langage LD

Non disponible.

Langage IL

Non disponible.

seealso See also

WHILE REPEAT FOR CASE EXIT


INC

Langages de programmation - Référence -> Opérations de base -> INC

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Incrémente une variable.

Entrées

IN : ANY Variable numérique (incrémentée après l'appel).

Sorties

Q : ANY Valeur incrémentée.

Remarques

Quand la fonction est appelée, la variable connectée à l'entrée IN est incrémentée et copiée dans Q. Tous les types de données sont supportés à l'exception de BOOL et STRING: dans ces cas, la sortie est simplement la copie de IN.

Pour les variables réelles, le pas est 1.0. Pour les temporisations, le pas est 1ms.

L'entrée IN doit être directement conneectée à une variable, et ne peut pas être une constante ou une expression complexe.

Cette fonction est particulièrement dédiée au langage ST. Elle permet une écriture simplifiée puisque l'affectation de la valeur de retour de la fonction n'est pas obligatoire.

Langage ST

IN := 1;
Q := INC (IN);
(* maintenant: IN = 2 ; Q = 2 *)

INC (IN); (* écriture simplifiée *)

Langage FBD

Langage LD

Langage IL

Non disponible.


Sauts JMP JMPC JMPNC JMPCN

Langages de programmation - Référence -> Opérations de base -> Sauts JMP JMPC JMPNC JMPCN

Previous chapter Next chapter Show all Show all Hide all Hide all

Enoncé - Saut à une étiquette.

Remarques

Un saut à une étiquette déroute l'exécution du programme après l'étiquette spécifiée. Les sauts et les étiquettes ne sont pas disponibles en ST. En FBD, un saut est représenté pat le symbole >> suivi par le nom de l'étiquette de destination. Le flux en entrée du symbole >> doit être connecté à une variable booléenne qui conditionne le branchement. Le saut n'est exécuté que si le flux en entrée est TRUE. En LD, le symbole >>, suivi par le nom d'une étiquette, finit une échelle. Le saut est exécuté si le flux est TRUE. En IL, les instructions JMP, JMPC, JMPCN et JMPNC spécifient des opérations de saut. La destination du saut est l'opérande de l'instruction.

attention Attention

Les sauts en arrière peuvent créer des boucles infinies et bloquer le cycle.

Langage ST

Non disponible.

Langage FDB

Dans cet exemple, le bloc TON n'est pas appelé si bEnable = TRUE.

Example Example

Langage LD

Dans cet exemple, la seconde échelle n'est pas évaluée si IN1 = TRUE.

Example Example

Langage IL

Les instructions suivantes sont disponibles:
JMP Branchement inconditionnel.
JMPC Branchement si le résultat courant = TRUE.
JMPNC Branchement si le résultat courant = FALSE.
JMPCN Identique à JMPNC.

Start: LD IN1
JMPC TheRest (* Saut à "TheRest" si IN1 = TRUE *)

LD IN2 (* ces instructions ne sont pas exécutées *)
ST Q2 (* si IN1 = TRUE *)
JMP TheEnd (* branchement inconditionnel à "TheEnd" *)

TheRest: LD IN3
ST Q3
TheEnd:

seealso See also

Etiquettes RETURN


Etiquettes

Langages de programmation - Référence -> Opérations de base -> Etiquettes

Previous chapter Next chapter Show all Show all Hide all Hide all

Enoncé - Destination d'une instruction de saut.

Remarques

Les étiquettes sont les destinations des instructions de saut en FDB, LD ou IL. Les sauts et les étiquettes ne sont pas disponibles en ST. Une étiquette est représentée par un nom unique suivi de deux points (":"). En FBD, les étiquettes peuvent être insérée partout dans le diagramme. En LD, une étiquette identifie une échelle et est inscrtite à gauche de la barre d'alimentation en début d'échelle. En IL, les étiquettes sont les destinations des instructions JMP, JMPC, JMPCN et JMPNC. Elles doivent être inscrites en début de ligne, avant une instruction, et doivent précéder une instruction valide: LD (chargement), instructions inconditionnelles telles que CAL, JMP ou RET. L'étiquette peut également êre insérée seule sur une ligne, avant une instruction valide. Dans toue les langages, il n'est pas obligatoire qu'une étiquette soit la destination d'un saut. Les étiquettes peuvent également être utilisées comme des repères dans le programmes pour en augmenter la lisibilité.

Langage ST

Non disponible.

Langage FBD

Dans cet exemple, le bloc TON n'est pas appelé si bEnable = TRUE.

Example Example

Langage LD

Dans cet exemple, la seconde échelle n'est pas évaluée si IN1 = TRUE.

Example Example

Langage IL

Start: LD IN1 (* étiquette inutilisée *)
JMPC TheRest (* Saut à "TheRest" si IN1 = TRUE *)

LD IN2 (* ces instructions ne sont pas exécutées *)
ST Q2 (* si IN1 = TRUE *)

TheRest: LD IN3 (* destination du saut *)
ST Q3

seealso See also

Sauts RETURN


MOVEBLOCK

Langages de programmation - Référence -> Opérations de base -> MOVEBLOCK

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Déplace / Copie des éléments d'un tableau.

Entrées

SRC : ANY (*) Tableau contenant la source de la copie.
DST : ANY Tableau contenant la destination de la copie.
PosSRC : DINT Index du premier caractère dans SRC.
PosDST : DINT Index du premier caractère dans DST.
NB : DINT (*) Nombre d'éléments à copier.

(*) SRC/DST ne peuvent pas être de type STRING.

Sorties

OK : BOOL TRUE si la copie est exécutée avec succès.

Remarques

Les tableaux de type STRING ne sont pas supportés par cette fonction.

En LD, la fonction n'est appelée que si le flux en entrée (EN) est TRUE. La fonction n'est pas disponibler en IL.

La fonction copie NB caractères consécutifs de SRC à partir de la position PosSRC vers la position PosDST du tableau DST. SRC et DST peuvent être le même tableau. Dans ce cas, la fonction évite de perdre des éléments pendant la copie si les plages de source et de destination se chevauchent.

Cette fonction vérifie les bornes des tableaux et ne provoque jamais de débordement. La function retourne TRUE quand la copie est valide. Elle retourne FALSE si les positions et nombre en entrée ne correspondent pas aux dimensions des tableaux SRC ou DST.

Langage ST

OK := MOVEBLOCK (SRC, DST, PosSRS, PosDST, NB);

Langage FBD

Langage LD

La fonction n'est appelée que si EN = TRUE.

IL Language

Non disponible.


Parenthèses ( )

Langages de programmation - Référence -> Opérations de base -> Parenthèses ( )

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateurr - force l'odre d'évaluation d'une expression complexe.

Remarques

Les parenthèses sont utilisées en ST et en IL pour changer l'ordre par défaut lors de l'évaluation des éléments d'une expression complexe. Par exemple, l'ordre par défaut pour l'évaluation de l'expression "2 * 3 + 4" en ST donne un résultat de 10 puisque l'opérateur "*" est prioritaire. Changer l'ordre avec des parenthèses pour "2 * ( 3 + 4 )" donne un résultat de 14. Les parenthèses peuvent être imbriquées dans une expression.

Voici l'ordre de priorité appliqué par défaut pour les opérateurs du langage ST (le premier a la plus grande priorité):

Opérateurs unaires: - NOT
Multiplication/Division: * /
Addition/Soustraction: + -
Comparaisons: < > <= >= = <>
ET booléen: & AND
OU booléen: OR
OU exclusif: XOR

En IL, l'ordre par défaut est donné par l'ordre des instructions dans la séquence. Chaque nouvelle instruction modifie le résultat courant. En IL, une parenthèse ouvrante "(" doit être écrite entre une instruction et son opérande. La parenthèse fermante ")" est écrite seule sur une ligne, sans opérande.

Langage ST

Q := (IN1 + (IN2 / IN 3)) * IN4;

Langage FBD

Non disponible.

Langage LD

Non disponible.

Langage IL

Op1: LD( IN1
ADD( IN2
MUL IN3
)
SUB IN4
)
ST Q (* Q = (IN1 + (IN2 * IN3) - IN4) *)

seealso See also

Assignation


REPEAT UNTIL END_REPEAT

Langages de programmation - Référence -> Opérations de base -> REPEAT UNTIL END_REPEAT

Previous chapter Next chapter Show all Show all Hide all Hide all

Enoncé - Exécution répétée d'un liste d'énoncés.

Syntaxe

REPEAT
<énoncés>
UNTIL <expression BOOL> END_REPEAT;

Remarques

Les énoncés entre REPEAT et UNTIL sont exécutés jusqu'à ce que la valeur de l'expression booléenne soit TRUE. La condition est évaluée après l'exécution des énoncés. Les énoncés sont exécutés au moins une fois.

attention Attention

Les instructions de bouble peuvent bloquer le cycle en une boucle infinie. Ne testez jamais la valeur d'une entrée physique dans la condition d'un REPEAT. L'entrée ne sera mis à jour qu'au cycle suivant.

Langage ST

iPos := 0;
REPEAT
MyArray[iPos] := 0;
iNbCleared := iNbCleared + 1;
iPos := iPos + 1;
UNTIL iPos = iMax END_REPEAT;

Langage FBD

Non disponible.

Langage LD

Non disponible.

Langage IL

Non disponible.

seealso See also

IF WHILE FOR CASE EXIT


RETURN RET RETC RETNC RETCN

Langages de programmation - Référence -> Opérations de base -> RETURN RET RETC RETNC RETCN

Previous chapter Next chapter Show all Show all Hide all Hide all

Enoncé - Saut à la fin du programme.

Remarques

L'énoncé RETURN indique un saut à la fin du programme. En FBD et en LD, le symbole "<RETURN>" est disponible. Le saut est conditionné par le flux booléen à gauche. En IL, les instructions RET, RETC, RETCN et RETNC peuvent être utilisées.

Quand il est utilisé dans une action d'étape SFC, l'énoncé RETURN correspond à un saut vers la fin du bloc d'action.

Langage ST

IF NOT bEnable THEN
RETURN;
END_IF;
(* le reste du programme est ignoré si bEnabled = FALSE... *)

Langage FBD

Dans cet exemple, le bloc TON n'est pas évalué si bIgnore = TRUE.

Example Example

Langage LD

La seconde échelle n'est pas évaluée si ENABLE = FALSE.

Example Example

Langage IL

Instructions disponibles:
RET Saut inconditionnel.
RETC Saut si le résultat courant est TRUE.
RETNC Saut si le résultat courant est FALSE.
RETCN Identique à RETNC.

Start: LD IN1
RETC (* saut à la fin si IN1 = TRUE *)

LD IN2 (* instructions non écéutées... *)
ST Q2 (* ...si IN1 = TRUE *)
RET (* saut inconditionnel *)

LD IN3 (* instructions jamais éxécutées *)
ST Q3

seealso See also

Etiquettes Sauts


WHILE DO END_WHILE

Langages de programmation - Référence -> Opérations de base -> WHILE DO END_WHILE

Previous chapter Next chapter Show all Show all Hide all Hide all

Enoncé - Exécution répétée d'un liste d'énoncés.

Syntaxe

WHILE <expression BOOL> DO
<énoncés>
END_WHILE ;

Remarques

Les énoncés entre DO et END_WHILE sont exécutés tant que la valeur de l'expression booléenne est TRUE. La condition est évaluée avant l'exécution des énoncés. Si la condition est FALSE lors de la première évaluation, les éléments ne sont pas exécutés.

attention Attention

Les instructions de bouble peuvent bloquer le cycle en une boucle infinie. Ne testez jamais la valeur d'une entrée physique dans la condition d'un REPEAT. L'entrée ne sera mis à jour qu'au cycle suivant.

Langage ST

iPos := 0;
WHILE iPos < iMax DO
MyArray[iPos] := 0;
iNbCleared := iNbCleared + 1;
END_WHILE;

Langage FBD

Non disponible.

Langage LD

Non disponible.

Langage IL

Non disponible.

seealso See also

IF REPEAT FOR CASE EXIT


ON

Langages de programmation - Référence -> Opérations de base -> ON

Previous chapter Next chapter Show all Show all Hide all Hide all

Enoncé - Exécution conditionnelle.

Syntaxe

ON <expression BOOL> DO
<énoncés>
END_DO;

Remarques

Les énoncés à l'intérieur de la structure ON sont exécutés seuelement quand la condition booléenne spécifiée passe de FALSE à TRUE. L'instruction ON simplifie la programmation en évitant l'utilisation de blocs R_TRIG ou autres flags de mémorisation.

La syntaxe ON est disponible dans les programmes, sous-programmes et UDFB. Elle est disponible dans tous les modes de compilation (code T5 ou post-compilation en "C").

Cet énoncé est une extension au standard est n'est pas conforme à la norme IEC61131-3.

Langage ST

(* Cet exemple compte les fronts montant de la variable bIN *)
ON bIN DO
diCount := diCount + 1;
END_DO;


WAIT / WAIT_TIME

Langages de programmation - Référence -> Opérations de base -> WAIT / WAIT_TIME

Previous chapter Next chapter Show all Show all Hide all Hide all

Enoncé - Suspend l'exécution d'un programme ST.

Syntaxe

WAIT <expression BOOL> ;

WAIT_TIME <expression TIME> ;

Remarques

L'énoncé WAIT teste la condition spécifiée et selon:

- si l'expression est TRUE, le programme continue normalement.

- si l'expression est FALSE, l'exécution du programme est suspendue jusqu'au cycle suivant. L'expression est testée à nouveau lors des cycles suivants jusqu'à ce qu'elle vale TRUE. L'exécution des autres programmes n'est pas affectée.

L'énoncé WAIT_TIME suspends l'exécution du programme pour la durée spécifiée. L'exécution des autres programmes n'est pas affectée.

Cest instructions ne sont disponibles qu'en ST et n'on pas n'équivalent dans les autres langages. Elles ne peuvent pas être utilisées dans un bloc fonctionnel (UDFB). L'utilisation de WAIT ou WAIT_TIME dans un UDFB génère une erreur lors de la compilation.

Les instructions WAIT et WAIT_TIME peuvent être utilisées dans un sous-programme. Toutefois, ceci peut conduire à des situations instables si le même sous-programme est appelé depuis plusieurs programmes. La ré-entrance n'est pas supportée par les instructions WAIT et WAIT_TIME. C'est la responsabilité du programmeur d'éviter de telles situations. Le compilateur génère des messages de "warning" si un sous-programme contenant des instructions WAIT ou WAIT_TIME est appelé depuis plusieurs programmes.

Ces instructions ne peuvent pas être appelées dans une portion ST d'un programme SFC. Ceci n'a pas de sens puisque le SFC offre déjà un mécanisme de machine d'état. L'utilisation de WAIT ou WAIT_TME dans le SFC ou un sous-programme appelé par le SFC génère une erreur lors de la compilation.

Ces instructions ne sont pas disponibles quand le code est compilé à travers un compilateur "C". La compilation en "C" d'un programme contenant des instructions WAIT ou WAIT_TIME génère une erreur lors de la post-compilation.

Ces énoncés sont des extensions au standard et ne sont pas conformes à la norme IEC61131-3.

Langage ST

(* WAIT avec différents styles d'expressions *)
WAIT BoolVariable;
WAIT (diLevel > 100) AND NOT bAlarm;

WAIT SubProgCall ();

(* WAIT_TIME avec différents styles d'expression *)
WAIT_TIME t#2s;
WAIT_TIME TimeVariable;


Opérations booléennes

Langages de programmation - Référence -> Opérations booléennes

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les opérateurs standard pour les opérations booléennes:

Opérateur | Description
AND OR XOR NOT S R QOR | ET booléen OU booléen OU exclusif Inversion booléeen (opérateur unaire) Force une variable booléenne à TRUE Force une variable booléenne à FALSE OU qualifié (somme)

Voici les blocs fonctionnels standard pour la gestion des signaux booléens:

Bloc fonctionnel | Description
RS SR R_TRIG F_TRIG SEMA FLIPFLOP | Bascule avec RESET prioritaire Bascule avec SET prioritaire Détection de front montant Détection de front descendant Sémaphore Commutateur

Dans cette section

AND ANDN &

FLIPFLOP

F_TRIG

NOT

OR ORN

R

RS

R_TRIG

S

SEMA

SR

XORD XORN

QOR


AND ANDN &

Langages de programmation - Référence -> Opérations booléennes -> AND ANDN &

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Calcule un ET booléen.

Entrées

IN1 : BOOL Entrée booléenne.
IN2 : BOOL Entrée booléenne.

Outputs

Q : BOOL ET booléen entre les entrées.

Table de vérité

IN1 | IN2 | Q
0 | 0 | 0
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1

Remarques

En FBD, le bloc peut avoir jusqu'à 16 entrées. Le block est nommé "&" en FBD. En LD, un "ET" est représenté par des contacts en série. En IL, l'instruction AND calcule un ET booléen entre le résultat courant et l'opérande. Le résultat courant et l'opérande doivent être booléens. L'instruction ANDN calcule un ET booléen entre le résultat courant et l'inverse de l'opérande. En ST et IL, "&" peut être utilisé à la place de "AND".

Langage ST

Q := IN1 AND IN2;
Q := IN1 & IN2 & IN3;

Langage FBD

Le bloc peut avoir jusqu'à 16 entrées.

Langage LD

Contacts en série.

Langage IL

Op1: LD IN1
& IN2 (* "&" et "AND" sont équivalents *)
ST Q (* Q = IN1 AND IN2 *)
Op2: LD IN1
AND IN2
&N IN3 (* "&N" et "ANDN" sont équivalents *)
ST Q (* Q = IN1 AND IN2 AND (NOT IN3) *)

seealso See also

OR XOR NOT


FLIPFLOP

Langages de programmation - Référence -> Opérations booléennes -> FLIPFLOP

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Commutateur.

Entrées

IN : BOOL Commande d'inversion (sur front montant).
RST : BOOL Remise à zéro.

Sorties

Q : BOOL Signal.

Remarques

La sortie est systématiquement forcée à FALSE quand RST = TRUE.
La sortie change d'état à chaque front montant de IN si RST = FALSE.

Langage ST

MyFlipFlop est une instance déclarée du bloc FLIPFLOP.

MyFlipFlop (IN, RST);
Q := MyFlipFlop.Q;

Langage FBD

Langage LD

Langage IL

MyFlipFlop est une instance déclarée du bloc FLIPFLOP.

Op1: CAL MyFlipFlop (IN, RST)
LD MyFlipFlop.Q
ST Q1

seealso See also

R S SR


F_TRIG

Langages de programmation - Référence -> Opérations booléennes -> F_TRIG

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Détection de front descendant.

Entrées

CLK : BOOL Signal booléen.

Outputs

Q : BOOL TRUE quand l'entrée passe de TRUE à FALSE.

Table de vérité

CLK | CLK prec | Q
0 | 0 | 0
0 | 1 | 1
1 | 0 | 0
1 | 1 | 0

Remarques

Bien que les contacts ]P[ et ]N[ soient disponibles dans le langage LD, il est recommandé d'utiliser les blocs R_TRIG ou F_TRIG afin d'éviter les sources d'aléas lors d'une modification en ligne.

Langage ST

MyTrigger est une instance déclarée du bloc F_TRIG.

MyTrigger (CLK);
Q := MyTrigger.Q;

Langage FBD

Langage LD

Langage IL

MyTrigger est une instance déclarée du bloc F_TRIG.

Op1: CAL MyTrigger (CLK)
LD MyTrigger.Q
ST Q

seealso See also

R_TRIG


NOT

Langages de programmation - Référence -> Opérations booléennes -> NOT

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Effectue une inversion logique de l'entrée.

Entrées

IN : BOOL Valeur booléenne.

Sorties

Q : BOOL Inversion booléenne de l'entrée.

Table de vérité

IN | Q
0 | 1
1 | 0

Remarques

En FBD, le bloc NOT peut être utilisé. Vous pouvez également utiliser un lien terminé par une inversion logique o. En LD, les contacts et bobinages inversé sont disponibles. En IL, le modificateur d'instruction N permet d'inverser l'opérande des instructions LD, AND, OR, XOR et ST. En ST, l'opérateur unaire NOT inverse une expression booléenne.

Langage ST

Q := NOT IN;
Q := NOT (IN1 OR IN2);

Langage FBD

Utilisation du bloc NOT.

Lien avec inversion: Q = IN1 AND NOT IN2.

Langage LD

Contact inversé: Q = IN1 AND NOT IN2.

Bobinage inversé: Q = NOT (IN1 AND IN2).

Langage IL

Op1: LDN IN1
OR IN2
ST Q (* Q = (NOT IN1) OR IN2 *)
Op2: LD IN1
AND IN2
STN Q (* Q = NOT (IN1 AND IN2) *)

seealso See also

AND OR XOR


OR ORN

Langages de programmation - Référence -> Opérations booléennes -> OR ORN

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Calcule un OU booléen.

Entrées

IN1 : BOOL entrée booléenne.
IN2 : BOOL entrée booléenne.

Outputs

Q : BOOL OU booléen entre les entrées.

Table de vérité

IN1 | IN2 | Q
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 1

Remarques

En FBD, le bloc peut avoir jusqu'à 16 entrées. En LD, un OU est représenté par des contacts en parallèle. En IL, l'instruction OR calcule un OU booléen entre le résultat courant et l'opérande. Le résultat courant et l'opérande doivent être booléens. L'instruction ORN calcule un OU booléen entre le résultat courant et l'inverse de l'opérande.

Langage ST

Q := IN1 OR IN2;
Q := IN1 OR IN2 OR IN3;

Langage FBD

Le bloc peut avoir jusqu'à 16 entrées.

Langage LD

Contacts en parallèle.

Langage IL

Op1: LD IN1
OR IN2
ST Q (* Q = IN1 OR IN2 *)
Op2: LD IN1
ORN IN2
ST Q (* Q = IN1 OR (NOT IN2) *)

seealso See also

AND XOR NOT


R

Langages de programmation - Référence -> Opérations booléennes -> R

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Force une variable booléenne à FALSE.

Entrées

RESET : BOOL Condition.

Sorties

Q : BOOL Variable forcée.

Table de vérité

RESET | Q prec | Q
0 | 0 | 0
0 | 1 | 1
1 | 0 | 0
1 | 1 | 0

Remarques

Les opérateurs S et R sont disponibles en IL. En LD, ils sont représentés par les bobinages (S) et (R). En FBD, vous pouvez également utiliser les bobinages (S) et (R), mais les blocs RS et SR sont également disponibles. Les opérations S et R n'ont pas d'équivalence directe en ST.

Langage ST

Non disponible.

Language FBD

Utilisez les blocs fonctionnels RS et SR.

Langage LD

Exemple d'utilisation d'un bobinage "R".

Langage IL

Op1: LD RESET
R Q (* Q est forcé à FALSE si RESET = TRUE *)
(* aucune action si RESET = FALSE *)

seealso See also

S RS SR


RS

Langages de programmation - Référence -> Opérations booléennes -> RS

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Bascule à RESET prioritaire.

Entrées

SET : BOOL Condition de forçage à TRUE.
RESET1 : BOOL Condition de forçage à FALSE (prioritaire).

Sorties

Q1 : BOOL Variable forcée.

Table de vérité

SET | RESET1 | Q1 prec | Q1
0 | 0 | 0 | 0
0 | 0 | 1 | 1
0 | 1 | 0 | 0
0 | 1 | 1 | 0
1 | 0 | 0 | 1
1 | 0 | 1 | 1
1 | 1 | 0 | 0
1 | 1 | 1 | 0

Remarques

La sortie est inchangée si les deux entrées sont à FALSE. Quand les deux entrées sont à TRUE, la sortie est forcée à FALSE (reset prioritaire).

Langage ST

MyRS est une instance déclarée du bloc RS.

MyRS (SET, RESET1);
Q1 := MyRS.Q1;

Langage FBD

Langage LD

Langage IL

MyRS est une instance déclarée du bloc RS.

Op1: CAL MyRS (SET, RESET1)
LD MyRS.Q1
ST Q1

seealso See also

R S SR


R_TRIG

Langages de programmation - Référence -> Opérations booléennes -> R_TRIG

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Détection de front montant.

Entrées

CLK : BOOL Signal booléen.

Outputs

Q : BOOL TRUE quand l'entrée passe de FALSE à TRUE.

Table de vérité

CLK | CLK prec | Q
0 | 0 | 0
0 | 1 | 0
1 | 0 | 1
1 | 1 | 0

Remarques

Bien que les contacts ]P[ et ]N[ soient disponibles dans le langage LD, il est recommandé d'utiliser les blocs R_TRIG ou F_TRIG afin d'éviter les sources d'aléas lors d'une modification en ligne.

Langage ST

MyTrigger est une instance déclarée du bloc R_TRIG:

MyTrigger (CLK);
Q := MyTrigger.Q;

Langage FBD

Langage LD

IL Language

MyTrigger est une instance déclarée du bloc R_TRIG:

Op1: CAL MyTrigger (CLK)
LD MyTrigger.Q
ST Q

seealso See also

F_TRIG


S

Langages de programmation - Référence -> Opérations booléennes -> S

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Force une variable booléenne à TRUE.

Entrées

RESET : BOOL Condition.

Sorties

Q : BOOL Variable forcée.

Table de vérité

SET | Q prec | Q
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 1

Remarques

Les opérateurs S et R sont disponibles en IL. En LD, ils sont représentés par les bobinages (S) et (R). En FBD, vous pouvez également utiliser les bobinages (S) et (R), mais les blocs RS et SR sont également disponibles. Les opérations S et R n'ont pas d'équivalence directe en ST.

Langage ST

Non disponible.

Language FBD

Utilisez les blocs fonctionnels RS et SR.

Langage LD

Exemple d'utilisation d'une bobine "S".

Langage IL

Op1: LD SET
S Q (* Q est forcé à TRUE si SET = TRUE *)
(* aucune action si SET = FALSE *)

seealso See also

R RS SR


SEMA

Langages de programmation - Référence -> Opérations booléennes -> SEMA

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Sémaphore.

Entrées

CLAIM : BOOL Prend le sémaphore.
RELEASE : BOOL Relâche le sémaphore.

Sorties

BUSY : BOOL TRUE si le sémaphore est occupé.

Remarques

Le bloc fonctionnel implémente l'algorithme suivant:

BUSY := mem;
if CLAIM then
mem := TRUE;
else if RELEASE then
BUSY := FALSE;
mem := FALSE;
end_if;

En LD, l'échelle en entrée est la commande CLAIM. L'échelle en sortie est le signal BUSY.

Langage ST

MySema est une instance déclarée du type SEMA.

MySema (CLAIM, RELEASE);
BUSY := MySema.BUSY;

Langage FBD

Langage LD

Langage IL

MySema est une instance déclarée du type SEMA.

Op1: CAL MySema (CLAIM, RELEASE)
LD MySema.BUSY
ST BUSY


SR

Langages de programmation - Référence -> Opérations booléennes -> SR

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Bascule à SET prioritaire.

Entrées

SET1 : BOOL Condition de forçage à TRUE (prioritaire).
RESET : BOOL Condition de forçage à FALSE.

Sorties

Q1 : BOOL Variable forcée.

Table de vérité

SET1 | RESET | Q1 prec | Q1
0 | 0 | 0 | 0
0 | 0 | 1 | 1
0 | 1 | 0 | 0
0 | 1 | 1 | 0
1 | 0 | 0 | 1
1 | 0 | 1 | 1
1 | 1 | 0 | 1
1 | 1 | 1 | 1

Remarques

La sortie est inchangée si les deux entrées sont à FALSE. Quand les deux entrées sont à TRUE, la sortie est forcée à TRUE (set prioritaire).

Langage ST

MySR est une instance déclarée du bloc SR.

MySR (SET1, RESET);
Q1 := MySR.Q1;

Langage FBD

Langage LD

Langage IL

MySR est une instance déclarée du bloc SR.

Op1: CAL MySR (SET1, RESET)
LD MySR.Q1
ST Q1

seealso See also

R S RS


XORD XORN

Langages de programmation - Référence -> Opérations booléennes -> XORD XORN

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Calcule un OU exclusif.

Entrées

IN1 : BOOL entrée booléenne.
IN2 : BOOL entrée booléenne.

Outputs

Q : BOOL OU exclusif entre les entrées.

Table de vérité

IN1 | IN2 | Q
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 0

Remarques

En IL, l'instruction XOR calcule un OU exclusif entre le résultat courant et l'opérande. Le résultat courant et l'opérande doivent être booléens. L'instruction ORN calcule un OU exclusif entre le résultat courant et l'inverse de l'opérande.

Langage ST

Q := IN1 XOR IN2;
Q := IN1 XOR IN2 XOR IN3;

Langage FBD

Langage LD

Langeg IL

Op1: LD IN1
XOR IN2
ST Q
Op2: LD IN1
XORN IN2
ST Q

seealso See also

AND OR NOT


QOR

Langages de programmation - Référence -> Opérations booléennes -> QOR

Previous chapter Next chapter Show all Show all Hide all Hide all

Operateur - Compte le nombre d'entrées à TRUE

Entréess

IN1 .. INn : BOOL Entrées booléennes

Sorties

Q : DINT Nombre d'entrées à TRUE

Remarques

Le bloc accepte un nombre variable d'entrées.

Langage ST

Q := QOR (IN1, IN2);

Q := QOR (IN1, IN2, IN3, IN4, IN5, IN6);

Langage FBD

Le bloc accepte un nombre variable d'entrées.

Langage LD

Le bloc accepte un nombre variable d'entrées.

Langage IL

Op1: LD IN1
QOR IN2, IN3
ST Q


Opérations arithmétiques

Langages de programmation - Référence -> Opérations arithmétiques

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les opérateurs standard pour le calul arithmétique:

Opérateur | Description
+ - * / - (NEG) | Addition Soustraction Multiplication Division Négation (opérateur unaire)

Voici les fonctions standard pour le calul arithmétique:

Fonction | Description
MIN MAX LIMIT MOD ODD SetWithin | Minimum de deux valeurs Maximum de deux valeurs Limite un entier entre deux bornes Modulo Test si un entier est impair Force une valeur pour un intervalle

Dans cette section

+ ADD

/ DIV

NEG -

LIMIT

MAX

MIN

MOD / MODR / MODLR

* MUL

ODD

- SUB

SetWithin


+ ADD

Langages de programmation - Référence -> Opérations arithmétiques -> + ADD

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Addition.

Entrées

IN1 : ANY Première valeur.
IN2 : ANY Seconde valeur.

Sorties

Q : ANY Résultat: IN1 + IN2.

Remarques

Toutes les entrées et la sortie doivent avoir le même type. En FBD, le bloc peut avoir jusqu'à 16 entrées. En LD, le flux d'entrée (EN) conditionne l'opération, et le flux reste inchangé en sortie. En IL, l'instruction ADD exécute une addition entre le résultat courant et l'opérande. Le résultat courant et l'opérande doivent être du même type.

L'addition peut être utiliséée avec des chaines de caractères STRING. Le résultat est la concaténation des deuxchaines.

Langage ST

Q := IN1 + IN2;
MyString := 'He' + 'll ' + 'o'; (* MyString = 'Hello' *)

Langage FBD

Le bloc peut avoir jusqu'à 16 entrées.

LD Language

The addition is executed only if EN is TRUE.
ENO is equal to EN.

Langage IL

Op1: LD IN1
ADD IN2
ST Q (* Q = IN1 + IN2 *)
Op2: LD IN1
ADD IN2
ADD IN3
ST Q (* Q = IN1 + IN2 + IN3 *)

seealso See also

- * /


/ DIV

Langages de programmation - Référence -> Opérations arithmétiques -> / DIV

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Division.

Entrées

IN1 : ANY_NUM Entrée.
IN2 : ANY_NUM Dénominateur.

Sorties

Q : ANY_NUM Résultat: IN1 / IN2.

Remarques

Toutes les entrées et la sortie doivent être du même type. En LD, le flux d'entrée (EN) conditionne l'opération, est le flux est inchangé en sortie. En IL, l'instruction DIV exécute une division entre le résultat courant et l'opérande. Le résultat courant et l'opérande doivent être du même type.

Langage ST

Q := IN1 / IN2;

Langage FBD

Langage LD

La division est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN1
DIV IN2
ST Q (* Q = IN1 / IN2 *)
Op2: LD IN1
DIV IN2
DIV IN3
ST Q (* Q = IN1 / IN2 / IN3 *)

seealso See also

- * +


NEG -

Langages de programmation - Référence -> Opérations arithmétiques -> NEG -

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Négation d'une valeur numérique.

Entrées

IN : DINT Valeur numérique.

Sorties

Q : DINT Négation de l'entrée.

Table de vérité (exemples)

IN | Q
0 | 0
1 | -1
-123 | 123

Remarques

En FBD et en LD, le block NEG peut être utilisé. En LD, le flux d'entrée conditionne l'opération, est le flux est inchangé en sortie. Cette fonctionnalité n'est pas disponible en IL. En ST, l'opérateur unaire "-" est utilisé: il précède l'expression numérique.

Langage ST

Q := -IN;
Q := - (IN1 + IN2);

Langage FBD

Langage LD

La négation est effectué si EN = TRUE.
ENO est égal à EN.

Langage IL

Non disponible.


LIMIT

Langages de programmation - Référence -> Opérations arithmétiques -> LIMIT

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Borne une valeur entière entre deux limites.

Entrées

IMIN : DINT Borne inférieur.
IN : DINT Valeur d'entrée.
IMAX : DINT Borne supérieure.

Sortie

Q : DINT IMIN si IN < IMIN; IMAX si IN > IMAX; IN dans les autres cas.

Diagramme

Remarques

En LD, le flux d'entrée (EN) conditionne l'opération, et le flux est inchangé en sortie. En IL, la première entrée doit être chargée dans le résultat courant avant l'appel de la fonction. Les autres entrées sont les opérandes de la fonction, séparés par une virgule.

Langage ST

Q := LIMIT (IMIN, IN, IMAX);

Langage FDB

Langage LD

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IMIN
LIMIT IN, IMAX
ST Q

seealso See also

MIN MAX MOD ODD


MAX

Langages de programmation - Référence -> Opérations arithmétiques -> MAX

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Rend le maximum de deux valeurs.

Entrées

IN1 : ANY Première valeur.
IN2 : ANY Seconde valeur.

Sorties

Q : ANY IN1 si IN1 > IN2; sinon IN2.

Remarques

En LD, le flux d'entrée conditionne l'opération, et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Le second paramètre est l'argument de la fonction.

Langage ST

Q := MAX (IN1, IN2);

Langage FBD

Langage LD

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN1
MAX IN2
ST Q

seealso See also

MIN LIMIT MOD ODD


MIN

Langages de programmation - Référence -> Opérations arithmétiques -> MIN

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Rend le minimum de deux valeurs.

Entrées

IN1 : ANY Première valeur.
IN2 : ANY Seconde valeur.

Sorties

Q : ANY IN1 si IN1 < IN2; sinon IN2.

Remarques

En LD, le flux d'entrée conditionne l'opération, et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Le second paramètre est l'argument de la fonction.

Langage ST

Q := MIN (IN1, IN2);

Langage FBD

Langage LD

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN1
MIN IN2
ST Q

seealso See also

MAX LIMIT MOD ODD


MOD / MODR / MODLR

Langages de programmation - Référence -> Opérations arithmétiques -> MOD / MODR / MODLR

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Calcul de modulo.

Entrées

IN : DINT/REAL/LREAL Valeur entière.
BASE : DINT/REAL/LREAL Base du modulo (dénominateur).

Sorties

Q : DINT/REAL/LREAL Modulo: reste de la division entière (IN / BASE).

Remarques

En LD, le flux d'entrée conditionne l'opération, est le flux est inchangé en sortie. En IL, la première entrée doit être chargée dans le résultat courant avant l'appel de la fonction. La seconde entrée est l'opérande de la fonction.

Langage ST

Q := MOD (IN, BASE);

Langage FBD

Langage LD

La fonction est appelée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
MOD BASE
ST Q (* Q is the rest of integer division: IN / BASE *)

seealso See also

MIN MAX LIMIT ODD


* MUL

Langages de programmation - Référence -> Opérations arithmétiques -> * MUL

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Multiplication.

Entrées

IN1 : ANY_NUM Valeur numérique.
IN2 : ANY_NUM Valeur numérique.

Sorties

Q : ANY_NUM Résultat: IN1 * IN2.

Remarques

Toutes les entrées et la sorties doivent être du même type. En FBD, le bloc peut avoir juq=squ'à 16 entrées. En LD, le flux d'entrée conditionne l'opération, est le flux est inchangé en sortie. En IL, l'instruction MUL effectue une multiplication entre le résultat courant et l'opérande. Le résultat courant et l'opérande doivent être du même type.

Langage ST

Q := IN1 * IN2;

Langage FBD

Le bloc peut avoir jusqu'à 16 entrées.

Langage LD

La fonction est appelée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN1
MUL IN2
ST Q (* Q = IN1 * IN2 *)
Op2: LD IN1
MUL IN2
MUL IN3
ST Q (* Q = IN1 * IN2 * IN3 *)

seealso See also

+ - /


ODD

Langages de programmation - Référence -> Opérations arithmétiques -> ODD

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Teste si un entier est impair.

Entrées

IN : DINT Valeur entière.

Sorties

Q : BOOL TRUE si IN est impair.

Remarques

En LD, le flux d'entrée (EN) conditionne l'opération, et le flux en sortie est le résultat de la fonction. En IL, l'entrée doit être chergée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := ODD (IN);

Langage FBD

LD Language

La fonction est appelée si EN = TRUE.

Langage IL

Op1: LD IN
ODD
ST Q

seealso See also

MIN MAX LIMIT MOD


- SUB

Langages de programmation - Référence -> Opérations arithmétiques -> - SUB

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - soustraction.

Entrées

IN1 : ANY_NUM / TIME Première valeur.
IN2 : ANY_NUM / TIME Seconde valeur.

Sorties

Q : ANY_NUM / TIME Résultat: IN1 - IN2.

Remarques

Toutes les entrées et la sortie doivent avoir le même type. En LD, le flux en entrée (EN) conditionne l'opération et le flux eest inchangé en sortie. En IL, l'instruction SUB effectue une soustraction entre le résultat courant et son opérande. Le résultat courant et l'opérande doivent être du même type.

Langage ST

Q := IN1 - IN2;

Langage FBD

Langage LD

La soustraction est excéutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN1
SUB IN2
ST Q (* Q = IN1 - IN2 *)
Op2: LD IN1
SUB IN2
SUB IN3
ST Q (* Q = IN1 - IN2 - IN3 *)

seealso See also

+ * /


SetWithin

Langages de programmation - Référence -> Opérations arithmétiques -> SetWithin

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Force une valeur à l'intérieur d'un intervalle

Entrées

IN : ANY Valeur
MIN : ANY Limite basse de l'intervalle
MAX : ANY Limite haute de l'intervalle
VAL : ANY Valeur à appliquer à l'intérieur de l'intervalle

Sorties

Q : BOOL Résultat

Table de vérité

IN | Q
IN < MIN | IN
IN > MAX | IN
MIN < IN < MAX | VAL

Remarques

La sortie est forcée à la valeur VAL quand IN est dans l'intervalle [MIN .. MAX]. Elle garde la valeur de IN en dehors de cet intervalle.


Opérations de comparaison

Langages de programmation - Référence -> Opérations de comparaison

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les opérateurs et blocs standard effectuant des comparaisons:

Opérateur | Description
< > <= >= = <> CMP | plus petit que plus grand que plus petit ou égal plus grand ou égal est égal est différent de comparateur complet à sorties multiples

Dans cette section

CMP

>= GE

> GT

= EQ

<> NE

<= LE

< LT


CMP

Langages de programmation - Référence -> Opérations de comparaison -> CMP

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Comparison avec sortie multiple.

Entrées

IN1 : DINT Première valeur.
IN2 : DINT Seconde valeur.

Sorties

LT : BOOL TRUE si IN1 < IN2.
EQ : BOOL TRUE si IN1 = IN2.
GT : BOOL TRUE si IN1 > IN2.

Remarques

En LD language, Le flux d'entrée (EN) valide l'opération. Le flux en sortie est le résultat de la comparaison LT (inférieur à).

Langage ST

MyCmp est une instance déclarée du bloc CMP.

MyCMP (IN1, IN2);
bLT := MyCmp.LT;
bEQ := MyCmp.EQ;
bGT := MyCmp.GT;

Langage FBD

Langage LD

La comparaison n'est exécutée que si EN = TRUE.

Langage IL

MyCmp est une instance déclarée du bloc CMP.

Op1: CAL MyCmp (IN1, IN2)
LD MyCmp.LT
ST bLT
LD MyCmp.EQ
ST bEQ
LD MyCmp.GT
ST bGT

seealso See also

> < >= <= = <>


>= GE

Langages de programmation - Référence -> Opérations de comparaison -> >= GE

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Test de supériorité ou d'égalité.

Entrées

IN1 : ANY Première entrée.
IN2 : ANY Seconde entrée.

Outputs

Q : BOOL TRUE si IN1>= IN2.

Remarques

Les deux entrées doivent être du même type. En LD, le flux d'entrée (EN) conditionne l'opération, et le flux de sortie est le résultat de la comparaison. En IL, l'instruction EQ compare le résultat courant et l'opérande. L'opérande et le résultat courant doivent être du même type.

La comparaison peut être utilisée pour des chaines de caractères. Dans ce cas, le système effectue une comparaison lexicographique des chaines. Par exemple, "ABC" est plus petit que "ZX" ; "ABCD" est plus grand que "ABC".

Langage ST

Q := IN1 >= IN2;

Langage FBD

Langage LD

La comparaison est exécutée si EN = TRUE.

Langage IL

Op1: LD IN1
GE IN2
ST Q

seealso See also

> < <= = <> CMP


> GT

Langages de programmation - Référence -> Opérations de comparaison -> > GT

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Test de supériorité.

Entrées

IN1 : ANY Première entrée.
IN2 : ANY Seconde entrée.

Outputs

Q : BOOL TRUE si IN1> IN2.

Remarques

Les deux entrées doivent être du même type. En LD, le flux d'entrée (EN) conditionne l'opération, et le flux de sortie est le résultat de la comparaison. En IL, l'instruction EQ compare le résultat courant et l'opérande. L'opérande et le résultat courant doivent être du même type.

La comparaison peut être utilisée pour des chaines de caractères. Dans ce cas, le système effectue une comparaison lexicographique des chaines. Par exemple, "ABC" est plus petit que "ZX" ; "ABCD" est plus grand que "ABC".

Langage ST

Q := IN1 > IN2;

Langage FBD

Langage LD

La comparaison est exécutée si EN = TRUE.

Langage IL

Op1: LD IN1
GT IN2
ST Q

seealso See also

< >= <= = <> CMP


= EQ

Langages de programmation - Référence -> Opérations de comparaison -> = EQ

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Test d'égalité.

Entrées

IN1 : ANY Première entrée.
IN2 : ANY Seconde entrée.

Outputs

Q : BOOL TRUE si IN1 = IN2.

Remarques

Les deux entrées doivent être du même type. En LD, le flux d'entrée (EN) conditionne l'opération, et le flux de sortie est le résultat de la comparaison. En IL, l'instruction EQ compare le résultat courant et l'opérande. L'opérande et le résultat courant doivent être du même type.

La comparaison peut être utilisée pour des chaines de caractères. Dans ce cas, le système effectue une comparaison lexicographique des chaines. Par exemple, "ABC" est plus petit que "ZX" ; "ABCD" est plus grand que "ABC".

Les tests d'égalité ne peuvent pas être utilisés avec des entrées de type TIME. En effet une temporisation active croît avec la résolution de temps de cycle, et certaines valeurs peuvent ne jamais apparaître.

Langage ST

Q := IN1 = IN2;

Langage FBD

Langage LD

La comparaison est exécutée si EN = TRUE.

Langage IL

Op1: LD IN1
EQ IN2
ST Q

seealso See also

> < >= <= <> CMP


<> NE

Langages de programmation - Référence -> Opérations de comparaison -> <> NE

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Test de non égalité.

Entrées

IN1 : ANY Première entrée.
IN2 : ANY Seconde entrée.

Outputs

Q : BOOL TRUE si IN1 est différent de IN2.

Remarques

Les deux entrées doivent être du même type. En LD, le flux d'entrée (EN) conditionne l'opération, et le flux de sortie est le résultat de la comparaison. En IL, l'instruction EQ compare le résultat courant et l'opérande. L'opérande et le résultat courant doivent être du même type.

La comparaison peut être utilisée pour des chaines de caractères. Dans ce cas, le système effectue une comparaison lexicographique des chaines. Par exemple, "ABC" est plus petit que "ZX" ; "ABCD" est plus grand que "ABC".

Les tests d'égalité ne peuvent pas être utilisés avec des entrées de type TIME. En effet une temporisation active croît avec la résolution de temps de cycle, et certaines valeurs peuvent ne jamais apparaître.

Langage ST

Q := IN1 <> IN2;

Langage FBD

Langage LD

La comparaison est exécutée si EN = TRUE.

Langage IL

Op1: LD IN1
NE IN2
ST Q (* Q is true if IN1 is not equal to IN2 *)

seealso See also

> < >= <= = CMP


<= LE

Langages de programmation - Référence -> Opérations de comparaison -> <= LE

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Test d'infériorité ou d'égalité.

Entrées

IN1 : ANY Première entrée.
IN2 : ANY Seconde entrée.

Outputs

Q : BOOL TRUE si IN1<= IN2.

Remarques

Les deux entrées doivent être du même type. En LD, le flux d'entrée (EN) conditionne l'opération, et le flux de sortie est le résultat de la comparaison. En IL, l'instruction EQ compare le résultat courant et l'opérande. L'opérande et le résultat courant doivent être du même type.

La comparaison peut être utilisée pour des chaines de caractères. Dans ce cas, le système effectue une comparaison lexicographique des chaines. Par exemple, "ABC" est plus petit que "ZX" ; "ABCD" est plus grand que "ABC".

Langage ST

Q := IN1 <= IN2;

Langage FBD

Langage LD

La comparaison est exécutée si EN = TRUE.

Langage IL

Op1: LD IN1
LE IN2
ST Q

seealso See also

> < >= = <> CMP


< LT

Langages de programmation - Référence -> Opérations de comparaison -> < LT

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Test d'infériorité.

Entrées

IN1 : ANY Première entrée.
IN2 : ANY Seconde entrée.

Outputs

Q : BOOL TRUE si IN1< IN2.

Remarques

Les deux entrées doivent être du même type. En LD, le flux d'entrée (EN) conditionne l'opération, et le flux de sortie est le résultat de la comparaison. En IL, l'instruction EQ compare le résultat courant et l'opérande. L'opérande et le résultat courant doivent être du même type.

La comparaison peut être utilisée pour des chaines de caractères. Dans ce cas, le système effectue une comparaison lexicographique des chaines. Par exemple, "ABC" est plus petit que "ZX" ; "ABCD" est plus grand que "ABC".

Langage ST

Q := IN1 < IN2;

Langage FBD

Langage LD

La comparaison est exécutée si EN = TRUE.

Langage IL

Op1: LD IN1
LT IN2
ST Q

seealso See also

> >= <= = <> CMP


Conversion de type

Langages de programmation - Référence -> Conversion de type

Voici les fonction standard de conversion de type:

Fonction | Description
ANY_TO_BOOL ANY_TO_SINT ANY_TO_INT ANY_TO_DINT ANY_TO_LINT ANY_TO_REAL ANY_TO_LREAL ANY_TO_TIME ANY_TO_STRING NUM_TO_STRING | Convertit en booléen Convertit en entier court (8 bits) Convertit en entier de 16 bits Convertit en integer (32 bits) Convertit en entier long (64 bits) Convertit en réel Convertit en réel double precicion Convertit en valeur temporelle Convertit en chaine de caractères Convertit en chaine de caractères

Voici les fonctions de conversion pour le format DCB (*):

Fonction | Description
BIN_TO_BCD BCD_TO_BIN | Convertit une valeur binaire en DCB Convertit une valeur DCB en binaire

(*) Les conversion DCB peuvent ne pas être disponibles sur certaines cibles.

Dans cette section

ANY_TO_BOOL

ANY_TO_DINT / ANY_TO_UDINT

ANY_TO_INT / ANY_TO_UINT

ANY_TO_LINT

ANY_TO_LREAL

ANY_TO_REAL

ANY_TO_TIME

ANY_TO_SINT / ANY_TO_USINT

ANY_TO_STRING

NUM_TO_STRING

BCD_TO_BIN

BIN_TO_BCD


ANY_TO_BOOL

Langages de programmation - Référence -> Conversion de type -> ANY_TO_BOOL

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Convertit une valeur en booléen.

Entrées

IN : ANY Valeur d'entrée.

Sorties

Q : BOOL Valuer convertie en booléen.

Remarques

Pour des entrées de type entier, réel ou TIME, le résultat est FALSE si l'entrée vaut 0. Le résultat est TRUE dans tous les autres cas. Pour une entrée de type STRING, la sortie est TRUE si la chaine n'est pas vide. En LD, la conversion n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux de sortie est le résultat de la conversion. En IL, la fonction ANY_TO_BOOL convertit le résultat courant.

Langage ST

Q := ANY_TO_BOOL (IN);

Langage FBD

Langage LD

La conversion n'est exécutée que si EN = TRUE.
Le flux en sortie est le résultat de la conversion.
La sortie (Q) est FALSE si EN = FALSE.

Langage IL

Op1: LD IN
ANY_TO_BOOL
ST Q

seealso See also

ANY_TO_SINT ANY_TO_INT ANY_TO_DINT ANY_TO_LINT ANY_TO_REAL ANY_TO_LREAL ANY_TO_TIME ANY_TO_STRING


ANY_TO_DINT / ANY_TO_UDINT

Langages de programmation - Référence -> Conversion de type -> ANY_TO_DINT / ANY_TO_UDINT

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Convertit une valeur en entier.

Entrées

IN : ANY Valeur d'entrée.

Sorties

Q : DINT Valuer convertie en entier.

Remarques

Pour une entrée de type BOOL, le résultat est 0 ou 1. Pour une entrée réelle, le résultat est la partie entière. Pour une entrée de type TIME, le résultat est le nombre de millisecondes. Pour une chaine de caractères, le résultat est la valeur représentée par la chaine. En LD, la conversion n'est exécutée que si le flux en entrée (EN) est TRUE. Le flux en sortie (ENO) a la même valeur qu'en entrée. En IL, la fonction convertit le résultat courant..

Langage ST

Q := ANY_TO_DINT (IN);

Langage FBD

Langage LD

La conversion n'est exécutée que si EN = TRUE.
ENO garde la même valeur que EN.

Langage IL

Op1: LD IN
ANY_TO_DINT
ST Q

seealso See also

ANY_TO_SINT ANY_TO_INT ANY_TO_LINT ANY_TO_REAL ANY_TO_LREAL ANY_TO_TIME ANY_TO_STRING ANY_TO_BOOL


ANY_TO_INT / ANY_TO_UINT

Langages de programmation - Référence -> Conversion de type -> ANY_TO_INT / ANY_TO_UINT

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Convertit une valeur en entier de 16 bits.

Entrées

IN : ANY Valeur d'entrée.

Sorties

Q : BOOL Valuer convertie en entier de 16 bits.

Remarques

Pour une entrée de type BOOL, le résultat est 0 ou 1. Pour une entrée réelle, le résultat est la partie entière. Pour une entrée de type TIME, le résultat est le nombre de millisecondes. Pour une chaine de caractères, le résultat est la valeur représentée par la chaine. En LD, la conversion n'est exécutée que si le flux en entrée (EN) est TRUE. Le flux en sortie (ENO) a la même valeur qu'en entrée. En IL, la fonction convertit le résultat courant..

Langage ST

Q := ANY_TO_INT (IN);

Langage FBD

Langage LD

La conversion n'est exécutée que si EN = TRUE.
ENO garde la même valeur que EN.

Langage IL

Op1: LD IN
ANY_TO_INT
ST Q

seealso See also

ANY_TO_SINT ANY_TO_DINT ANY_TO_LINT ANY_TO_REAL ANY_TO_LREAL ANY_TO_TIME ANY_TO_STRING ANY_TO_BOOL


ANY_TO_LINT

Langages de programmation - Référence -> Conversion de type -> ANY_TO_LINT

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Convertit une valeur en entier long de 64 bits.

Entrées

IN : ANY Valeur d'entrée.

Sorties

Q : BOOL Valuer convertie en entier de 64 bits.

Remarques

Pour une entrée de type BOOL, le résultat est 0 ou 1. Pour une entrée réelle, le résultat est la partie entière. Pour une entrée de type TIME, le résultat est le nombre de millisecondes. Pour une chaine de caractères, le résultat est la valeur représentée par la chaine. En LD, la conversion n'est exécutée que si le flux en entrée (EN) est TRUE. Le flux en sortie (ENO) a la même valeur qu'en entrée. En IL, la fonction convertit le résultat courant..

Langage ST

Q := ANY_TO_LINT (IN);

Langage FBD

Langage LD

La conversion n'est exécutée que si EN = TRUE.
ENO garde la même valeur que EN.

Langage IL

Op1: LD IN
ANY_TO_LINT
ST Q

seealso See also

ANY_TO_SINT ANY_TO_INT ANY_TO_DINT ANY_TO_REAL ANY_TO_LREAL ANY_TO_TIME ANY_TO_STRING ANY_TO_BOOL


ANY_TO_LREAL

Langages de programmation - Référence -> Conversion de type -> ANY_TO_LREAL

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Convertit une valeur en réel double précision.

Entrées

IN : ANY Valeur d'entrée.

Sorties

Q : BOOL Valuer convertie en réel double précision.

Remarques

Pour une entrée de type BOOL, le résultat est 0.0 ou 1.0. Pour une entrée entière, le résultat est la même valeur. Pour une entrée de type TIME, le résultat est le nombre de millisecondes. Pour une chaine de caractères, le résultat est la valeur représentée par la chaine. En LD, la conversion n'est exécutée que si le flux en entrée (EN) est TRUE. Le flux en sortie (ENO) a la même valeur qu'en entrée. En IL, la fonction convertit le résultat courant..

Langage ST

Q := ANY_TO_LREAL (IN);

Langage FBD

Langage LD

La conversion n'est exécutée que si EN = TRUE.
ENO garde la même valeur que EN.

Langage IL

Op1: LD IN
ANY_TO_LREAL
ST Q

seealso See also

ANY_TO_SINT ANY_TO_INT ANY_TO_DINT ANY_TO_LINT ANY_TO_REAL ANY_TO_TIME ANY_TO_STRING ANY_TO_BOOL


ANY_TO_REAL

Langages de programmation - Référence -> Conversion de type -> ANY_TO_REAL

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Convertit une valeur en réel.

Entrées

IN : ANY Valeur d'entrée.

Sorties

Q : BOOL Valuer convertie en réel.

Remarques

Pour une entrée de type BOOL, le résultat est 0.0 ou 1.0. Pour une entrée entière, le résultat est la même valeur. Pour une entrée de type TIME, le résultat est le nombre de millisecondes. Pour une chaine de caractères, le résultat est la valeur représentée par la chaine. En LD, la conversion n'est exécutée que si le flux en entrée (EN) est TRUE. Le flux en sortie (ENO) a la même valeur qu'en entrée. En IL, la fonction convertit le résultat courant..

Langage ST

Q := ANY_TO_REAL (IN);

Langage FBD

Langage LD

La conversion n'est exécutée que si EN = TRUE.
ENO garde la même valeur que EN.

Langage IL

Op1: LD IN
ANY_TO_REAL
ST Q

seealso See also

ANY_TO_SINT ANY_TO_INT ANY_TO_DINT ANY_TO_LINT ANY_TO_LREAL ANY_TO_TIME ANY_TO_STRING ANY_TO_BOOL


ANY_TO_TIME

Langages de programmation - Référence -> Conversion de type -> ANY_TO_TIME

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Convertit une valeur en temps (TIME).

Entrées

IN : ANY Valeur d'entrée.

Sorties

Q : BOOL Valuer convertie en temps.

Remarques

Pour une entrée de type BOOL, le résultat est t#0ms ou t#1ms. Pour une entrée entière ou réelle, le résultat est le la valeur d'entrée interprétée comme un nombre de millisecondes. En LD, la conversion n'est exécutée que si le flux en entrée (EN) est TRUE. Le flux en sortie (ENO) a la même valeur qu'en entrée. En IL, la fonction convertit le résultat courant..

Langage ST

Q := ANY_TO_TIME (IN);

Langage FBD

Langage LD

La conversion n'est exécutée que si EN = TRUE.
ENO garde la même valeur que EN.

Langage IL

Op1: LD IN
ANY_TO_TIME
ST Q

seealso See also

ANY_TO_SINT ANY_TO_INT ANY_TO_DINT ANY_TO_LINT ANY_TO_REAL ANY_TO_LREAL ANY_TO_STRING ANY_TO_BOOL


ANY_TO_SINT / ANY_TO_USINT

Langages de programmation - Référence -> Conversion de type -> ANY_TO_SINT / ANY_TO_USINT

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Convertit une valeur en entier de 8 bits.

Entrées

IN : ANY Valeur d'entrée.

Sorties

Q : BOOL Valuer convertie en entier de 8 bits.

Remarques

Pour une entrée de type BOOL, le résultat est 0 ou 1. Pour une entrée réelle, le résultat est la partie entière. Pour une entrée de type TIME, le résultat est le nombre de millisecondes. Pour une chaine de caractères, le résultat est la valeur représentée par la chaine. En LD, la conversion n'est exécutée que si le flux en entrée (EN) est TRUE. Le flux en sortie (ENO) a la même valeur qu'en entrée. En IL, la fonction convertit le résultat courant..

Langage ST

Q := ANY_TO_SINT (IN);

Langage FBD

Langage LD

La conversion n'est exécutée que si EN = TRUE.
ENO garde la même valeur que EN.

Langage IL

Op1: LD IN
ANY_TO_SINT
ST Q

seealso See also

ANY_TO_INT ANY_TO_DINT ANY_TO_LINT ANY_TO_REAL ANY_TO_LREAL ANY_TO_TIME ANY_TO_STRING ANY_TO_BOOL


ANY_TO_STRING

Langages de programmation - Référence -> Conversion de type -> ANY_TO_STRING

Previous chapter Next chapter Show all Show all Hide all Hide all

Opérateur - Convertit une valeur en chaine de caractères.

Entrées

IN : ANY Valeur d'entrée.

Sorties

Q : BOOL Valuer convertie en chaine de caractères.

Remarques

Pour une entrée de type BOOL, le résultat est '0' ou '1'. Pour une entrée entière, réelle ou TIME, le résultat est la représentation, litérale du nombre. C'est un nombre de millisecondes pour une entrée de type TIME. En LD, la conversion n'est exécutée que si le flux en entrée (EN) est TRUE. Le flux en sortie (ENO) a la même valeur qu'en entrée. En IL, la fonction convertit le résultat courant..

Langage ST

Q := ANY_TO_STRING (IN);

Langage FBD

Langage LD

La conversion n'est exécutée que si EN = TRUE.
ENO garde la même valeur que EN.

Langage IL

Op1: LD IN
ANY_TO_STRING
ST Q

seealso See also

ANY_TO_SINT ANY_TO_INT ANY_TO_DINT ANY_TO_LINT ANY_TO_REAL ANY_TO_LREAL ANY_TO_TIME ANY_TO_BOOL


NUM_TO_STRING

Langages de programmation - Référence -> Conversion de type -> NUM_TO_STRING

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Convertit un nombre en chaine de caractères.

Entrées

IN : ANY Valeur numérique.
WIDTH : DINT Longueur désirée pour la chaine de sortie (voir remarques)
DIGITS : DINT Nombre de digits après la virgule

Sorties

Q : STRING Valeur convertie.

Remarques

Cette fonction convertit une valeur numérique en chaine de caractères. Contrairement à la fonction ANY_TO_STRING, elle vous permet de spécifier une longueur pour le résultat et un nombre de décimales.

Si WIDTH vaut 0, la chaine est formattée avec le nombre de caractères nécessaire.

Si WIDTH est supérieur à 0, la chaine est préfixée avec des caractères blancs pour atteindre la longueur spécifiée par WIDTH.

Si WIDTH est inférieur à 0, la chaine est suffixée avec des caractères blancs pour atteindre la longueur spécifiée par la valeur absolue de WIDTH.

Si DIGITS vaut 0 alors ni le point ni la partie décimale ne sont ajoutés.

Si DIGITS est plus grand que 0, le nombre correspondant de décimales est ajouté Des caractères '0' sont ajoutés si nécessaire.

Si le résultat est trop long pour la taille spécifiée, la chaine est remplie avec des caractères '*'.

Exemples

Q := NUM_TO_STRING (123.4, 8, 2); (* Q vaut ' 123.40' *)

Q := NUM_TO_STRING (123.4, -8, 2); (* Q vaut '123.40 ' *)

Q := NUM_TO_STRING (1.333333, 0, 2); (* Q vaut '1.33' *)

Q := NUM_TO_STRING (1234, 3, 0); (* Q vaut '***' *)


BCD_TO_BIN

Langages de programmation - Référence -> Conversion de type -> BCD_TO_BIN

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Convertit une valeur BCD (Décimal Codé Binaire) en valeur binaire.

Entrées

IN : DINT valeur entière en BCD.

Sorties

Q : DINT Valeur convertie en binaire.
ou 0 si IN n'est pas une valeur BCD valide.

Table de vérité (exemples)

IN | Q
-2 | 0 (invalide)
0 | 0
16 (16#10) | 10
15 (16#0F) | 0 (invalide)

Remarques

L'entrée doit être un nombre positif représentant une valeur BCD valide. En LD, l'opération est exécutée seulement si le flux d'entrée (EN) est TRUE. Le flux est inchangé en sortie (ENO). En IL, la valeur à convertir doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := BCD_TO_BIN (IN);

Langage FBD

Langage LD

La fonction est appelée seulement si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD IN
BCD_TO_BIN
ST Q

seealso See also

BIN_TO_BCD


BIN_TO_BCD

Langages de programmation - Référence -> Conversion de type -> BIN_TO_BCD

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Convertit une valeur binaire en BCD (Décimal Codé Binaire).

Entrées

IN : DINT valeur entière.

Sorties

Q : DINT Valeur convertie en BCD.
ou 0 si IN est négatif.

Table de vérité (Exemples)

IN | Q
-2 | 0 (invalide)
0 | 0
10 | 16 (16#10)
22 | 34 (16#22)

Remarques

L'entrée doit être un nombre positif. En LD, l'opération est exécutée seulement si le flux d'entrée (EN) est TRUE. Le flux est inchangé en sortie (ENO). En IL, la valeur à convertir doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := BIN_TO_BCD (IN);

Langage FBD

Langage LD

La fonction est appelée seulement si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD IN
BIN_TO_BCD
ST Q

seealso See also

BCD_TO_BIN


Sélecteurs

Langages de programmation - Référence -> Sélecteurs

Voici les fonctions standard pour la sélection de données:

Fontion | Description
SEL MUX4 MUX8 | 2 entrées entières 4 entrées entières 8 entrées entières

Dans cette section

MUX4

MUX8

SEL


MUX4

Langages de programmation - Référence -> Sélecteurs -> MUX4

Fonstion - Sélecteur à 4 entrées.

Entrées

SELECT : DINT Commande de sélection.
IN1 : ANY Première valeur.
IN2 : ANY Seconde valeur.
... :
IN4 : ANY Dernière valeur.

Sorties

Q : ANY IN1 ou IN2 ... ou IN4 selon la valeu de SELECT (voir la table).

Table de vérité

SELECT | Q
0 | IN1
1 | IN2
2 | IN3
3 | IN4
autre | 0

Remarques

En LD, le flux d'entrée conditionne l'opération, est le flux est inchangé en sortie. En IL, le premier paramètre (sélecteur) doit être chargé dans le résultat courant avant l'appel de la fonction. Les autres paramètres sont les opérandes de la fonction, séparés par des virgules.

Langage ST

Q := MUX4 (SELECT, IN1, IN2, IN3, IN4);

Langage FBD

Langage LD

La fonction est appelée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD SELECT
MUX4 IN1, IN2, IN3, IN4
ST Q

seealso See also

SEL MUX8


MUX8

Langages de programmation - Référence -> Sélecteurs -> MUX8

Fonction - Sélecteur à 8 entrées.

Entrées

SELECT : DINT Commande de sélection.
IN1 : ANY Première valeur.
IN2 : ANY Seconde valeur.
... :
IN8 : ANY Dernière valeur.

Sorties

Q : ANY IN1 ou IN2 ... ou IN8 selon la valeu de SELECT (voir la table).

Table de vérité

SELECT | Q
0 | IN1
1 | IN2
2 | IN3
3 | IN4
4 | IN5
5 | IN6
6 | IN7
7 | IN8
autre | 0

Remarques

En LD, le flux d'entrée conditionne l'opération, est le flux est inchangé en sortie. En IL, le premier paramètre (sélecteur) doit être chargé dans le résultat courant avant l'appel de la fonction. Les autres paramètres sont les opérandes de la fonction, séparés par des virgules.

Langage ST

Q := MUX8 (SELECT, IN1, IN2, IN3, IN4, IN5, IN6, IN7, IN8);

Langage FBD

Langage LD

La fonction est appelée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD SELECT
MUX8 IN1, IN2, IN3, IN4, IN5, IN6, IN7, IN8
ST Q

seealso See also

SEL MUX4


SEL

Langages de programmation - Référence -> Sélecteurs -> SEL

Fonction - Sélecteur à 2 entrées.

Entrées

SELECT : BOOL Commande de sélection.
IN0 : ANY Premiève valeur.
IN1 : ANY Seconde valeur.

Sorties

Q : ANY IN1 si SELECT = FALSE; IN2 si SELECT = TRUE.

Table de vérité

SELECT | Q
0 | IN0
1 | IN1

Remarques

En LD, le sélecteur est le flux en entrée. Le flux est inchangé en sortie. En IL, le sélecteur doit être chargé dans le résultat courant avant l'appel de la fonction. Les autres paramètres sont les opérandes de la fonction, séparés par des virgules.

Langage ST

Q := SEL (SELECT, IN0, IN1);

Langage FBD

Langage LD

ENO est égal à SELECT.

Langage IL

Op1: LD SELECT
SEL IN1, IN2
ST Q

seealso See also

MUX4 MUX8


Registres

Langages de programmation - Référence -> Registres

Voici les fonctions standard pour la manipulation de registres à décalage:

Fonction | Description
SHL SHR ROL ROR | Décalage à gauche. Décalage à droite. Rotation à gauche. Rotation à droite.

Voici les fonctions avancées pour la gestion de registres

Fonction | Description
MBShift | Décalage ou rotation multi octets.

Voici les opérations de masquage disponibles pour les entiers DINT:

Fonction | Description
AND_MASK OR_MASK XOR_MASK NOT_MASK | ET booléen bit à bit. OU booléen bit à bit. OU exclusif bit à bit. Inversion booléenne bit à bit.

Les fonctions suivantes permettent de manipuler les octets de registres:

Fonction | Description
LOBYTE HIBYTE LOWORD HIWORD MAKEWORD MAKEDWORD PACK8 UNPACK8 SWAP | Octet de poids faible d'un mot. Octet de poids fort d'un mot. Mot de poids faible d'un mot double. Mot de poids fort d'un mot double. Regroupe deux octets dans un mot. Regroupe deux mots dans un mot double. Regroupe des bits dans un octet. Extrait les bits d'un octet. Permute les octets d'un entier

Les fonctions suivantes permettent l'accès aux bits d'un registre de 8 à 32 bits:

Fonction | Description
SETBIT TESTBIT | Force un bit d'un registre. Teste un bit d'un regsitre.

Les fonctions suivantes sont gardées pour compatibilité:

AND_DINT, AND_UDINT, AND_DWORD, NOT_DINT, NOT_UDINT, NOT_DWORD
OR_DINT, OR_UDINT, OR_DWORD, XOR_DINT, XOR_UDINT, XOR_DWORD
AND_INT, AND_UINT, AND_WORD, NOT_INT, NOT_UINT, NOT_WORD
OR_INT, OR_UINT, OR_WORD, XOR_INT, XOR_UINT, XOR_WORD
AND_SINT, AND_USINT, AND_BYTE, NOT_SINT, NOT_USINT, NOT_BYTE
OR_SINT, OR_USINT, OR_BYTE, XOR_SINT, XOR_USINT, XOR_BYTE
rolw, rorw, shlw, shrw, rolb, rorb, shlb, shrb
ROL_DINT, ROR_DINT, SHL_DINT, SHR_DINT
ROL_UDINT, ROR_UDINT, SHL_UDINT, SHR_UDINT
ROL_DWORD, ROR_DWORD, SHL_DWORD, SHR_DWORD
ROL_INT, ROR_INT, SHL_INT, SHR_INT
ROL_UINT, ROR_UINT, SHL_UINT, SHR_UINT
ROL_WORD, ROR_WORD, SHL_WORD, SHR_WORD
ROL_SINT, ROR_SINT, SHL_SINT, SHR_SINT
ROL_USINT, ROR_USINT, SHL_USINT, SHR_USINT
ROL_BYTE, ROR_BYTE, SHL_BYTE, SHR_BYTE

Dans cette section

AND_MASK

HIBYTE

LOBYTE

HIWORD

LOWORD

MAKEDWORD

MAKEWORD

MBSHIFT

NOT_MASK

OR_MASK

PACK8

ROL

ROR

RORb / ROR_SINT / ROR_USINT / ROR_BYTE

RORw / ROR_INT / ROR_UINT / ROR_WORD

SETBIT

SHL

SHR

SWAB

TESTBIT

UNPACK8

XOR_MASK


AND_MASK

Langages de programmation - Référence -> Registres -> AND_MASK

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - ET booléen bit à bit entre deux entiers.

Entrées

IN : ANY Registre.
MSK : ANY Registre.

Sorties

Q : ANY ET booléen bit à bit entre IN et MSK.

Remarques

Les arguments doivent être des entiers signés ou non signés de 8 à 32 bits.

En LD, le flux d'entrée (EN) conditionne l'opération, et le flux reste inchangé en sortie. En IL,le premier paramètre (IN) doit être chargé dans le résultat courant avant l'appel de la fonction. L'autre entrée est l'opérande de la fonction.

Langage ST

Q := AND_MASK (IN, MSK);

Langage FBD

Langage LD

La fonction est exécutée seulement si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
AND_MASK MSK
ST Q

seealso See also

OR_MASK XOR_MASK NOT_MASK


HIBYTE

Langages de programmation - Référence -> Registres -> HIBYTE

Fonction - Retourne l'octet de poids fort d'un mot.

Entrées

IN : UINT Registre de 16 bits.

Sorties

Q : USINT Octet de poids fort.

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux de sortie (ENO) garde la même valeur que l'entrée EN. En IL, la première entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := HIBYTE (IN);

Langage FBD

Langage LD

La fonction est exécutée seulement si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD IN
HIBYTE
ST Q

seealso See also

LOBYTE LOWORD HIWORD MAKEWORD MAKEDWORD


LOBYTE

Langages de programmation - Référence -> Registres -> LOBYTE

Fonction - Retourne l'octet de poids faible d'un mot.

Entrées

IN : UINT Registre de 16 bits.

Sorties

Q : USINT Octet de poids faible.

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux de sortie (ENO) garde la même valeur que l'entrée EN. En IL, la première entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := LOBYTE (IN);

Langage FBD

Langage LD

La fonction est exécutée seulement si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD IN
LOBYTE
ST Q

seealso See also

HIBYTE LOWORD HIWORD MAKEWORD MAKEDWORD


HIWORD

Langages de programmation - Référence -> Registres -> HIWORD

Fonction - Retourne le mot de poids fort d'un mot double.

Entrées

IN : UDINT Registre de 32 bits.

Sorties

Q : UINT Mot de poids fort.

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux de sortie (ENO) garde la même valeur que l'entrée EN. En IL, la première entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := HIWORD (IN);

Langage FBD

Langage LD

La fonction est exécutée seulement si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD IN
HIWORD
ST Q

seealso See also

HIBYTE LOWORD LOBYTE MAKEWORD MAKEDWORD


LOWORD

Langages de programmation - Référence -> Registres -> LOWORD

Fonction - Retourne le mot de poids faible d'un mot double.

Entrées

IN : UDINT Registre de 32 bits.

Sorties

Q : UINT Mot de poids faible.

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux de sortie (ENO) garde la même valeur que l'entrée EN. En IL, la première entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := LOWORD (IN);

Langage FBD

Langage LD

La fonction est exécutée seulement si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD IN
LOWORD
ST Q

seealso See also

HIBYTE LOBYTE HIWORD MAKEWORD MAKEDWORD


MAKEDWORD

Langages de programmation - Référence -> Registres -> MAKEDWORD

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Groupe deux mots dans un mot double.

Entrées

HI : UINT Mot de poids fort.
LO : UINT Mot de poids faible.

Sorties

Q : UDINT Registre de 32 bits.

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux de sortie (ENO) garde la même valeur que l'entrée EN. En IL, la première entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := MAKEDWORD (HI, LO);

Langage FBD

Langage LD

La fonction est exécutée seulement si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD HI
MAKEDWORD LO
ST Q

seealso See also

HIBYTE LOBYTE HIWORD MAKEWORD LOWORD


MAKEWORD

Langages de programmation - Référence -> Registres -> MAKEWORD

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Groupe deux octets dans un mot.

Entrées

HI : USINT Octet de poids fort.
LO : USINT Octet de poinds faible.

Sorties

Q : UINT Registre de 16 bits.

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux de sortie (ENO) garde la même valeur que l'entrée EN. En IL, la première entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := MAKEWORD (HI, LO);

Langage FBD

Langage LD

La fonction est exécutée seulement si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD HI
MAKEWORD LO
ST Q

seealso See also

HIBYTE LOBYTE HIWORD LOWORD MAKEDWORD


MBSHIFT

Langages de programmation - Référence -> Registres -> MBSHIFT

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Décalage ou rotation multi-octets.

Entrées

Buffer : SINT/USINT Tableau d'octets.
Pos : DINT Position de base dans le tableau.
NbByte : DINT Nombre d'octets à décaler.
NbShift : DINT Nombre de décalages ou de rotations.
ToRight : BOOL TRUE pour droite / FALSE pour gauche.
Rotate : BOOL TRUE pour rotation / FALSE pour décalage.
InBit : BOOL Bit à introduire pour un décalage.

Sorties

Q : BOOL TRUE si opération effectuée avec succès.

Remarques

Utilisez l'argument ToRight pour spécifier un décalage vers la gauche (FALSE) ou vers la droire (TRUE). Utilisez l'argument Rotate pour spécifier un décalage (FALSE) ou une rotation (TRUE). Dans le cas d'un décalage, l'argument InBit indique la valeur du bit qui remplace le dernier bit décalé.

En LD, le flux en entrée (EN) valide l'opération. Le flux en sortie est l'argument Q.

Langage ST

Q := MBShift (Buffer, Pos, NbByte, NbShift, ToRight, Rotate, InBit);

Langage FBD

Langage LD

La fonction n'est appelée que si EN = TRUE.

Language IL

Non disponible.


NOT_MASK

Langages de programmation - Référence -> Registres -> NOT_MASK

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Exécute une inversion logique bit à bit d'un entier.

Entrées

IN : ANY Valeur entière.

Sorties

Q : ANY Inversion bit à bit de l'entrée.

Remarques

Les arguments doivent être des entiers signés ou non signés de 8 à 32 bits.

En LD, le flux d'entrée (EN) conditionne l'opération, et le flux est inchangé en sortie. En IL, le paramètre d'entrée (IN) doit être chargé dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := NOT_MASK (IN);

Langage FBD

Langage LD

La fonction est appelée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
NOT_MASK

seealso See also

AND_MASK OR_MASK XOR_MASK


OR_MASK

Langages de programmation - Référence -> Registres -> OR_MASK

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - OU booléen bit à bit entre deux entiers.

Entrées

IN : ANY Registre.
MSK : ANY Registre.

Sorties

Q : ANY OU booléen bit à bit entre IN et MSK.

Remarques

Les arguments doivent être des entiers signés ou non signés de 8 à 32 bits.

En LD, le flux d'entrée (EN) conditionne l'opération, et le flux reste inchangé en sortie. En IL,le premier paramètre (IN) doit être chargé dans le résultat courant avant l'appel de la fonction. L'autre entrée est l'opérande de la fonction.

Langage ST

Q := OR_MASK (IN, MSK);

Langage FBD

Langage LD

La fonction est exécutée seulement si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
OR_MASK MSK
ST Q

seealso See also

AND_MASK XOR_MASK NOT_MASK


PACK8

Langages de programmation - Référence -> Registres -> PACK8

Fonction - Construit un octet avec des bits.

Entrées

IN0 : BOOL Bit de poids faible.
...
IN7 : BOOL Bit de poids fort.

Sorties

Q : USINT Octet construit à l'aide des bits d'entrée.

Remarques

En LD, le flux en entrée est IN0. Le flux est inchangé en sortie. En IL, la première entrée doit être dans le résultat courant avant l'appel.

Langage ST

Q := PACK8 (IN0, IN1, IN2, IN3, IN4, IN5, IN6, IN7);

Langage FBD

Langage LD

(* ENO = EN *)

Langage IL

Op1: LD IN0
PACK8 IN1, IN2, IN3, IN4, IN5, IN6, IN7
ST Q

seealso See also

UNPACK8


ROL

Langages de programmation - Référence -> Registres -> ROL

Fonction - Rotation à gauche d'un registre.

Entrées

IN : ANY Registre.
NBR : ANY Nombre de of rotations (chaque rotation est de 1 bit).

Sorties

Q : ANY Registre décalé.

Diagramme

Remarques

Les arguments doivent être des entiers signés ou non signés de 8 à 32 bits.

En LD, le flux d'entrée conditionne l'opération, et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Le second paramètre est l'argument de la fonction.

Langage ST

Q := ROL (IN, NBR);

Langage FBD

Langage LD

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
ROL NBR
ST Q

seealso See also

SHL SHR ROR SHLb SHRb RORb SHLw SHRw ROLb RORw ROLw


ROR

Langages de programmation - Référence -> Registres -> ROR

Fonction - Rotation à droite d'un registre.

Entrées

IN : ANY Registre.
NBR : ANY Nombre de of rotations (chaque rotation est de 1 bit).

Sorties

Q : ANY Registre décalé.

Diagramme

Remarques

Les arguments doivent être des entiers signés ou non signés de 8 à 32 bits.

En LD, le flux d'entrée conditionne l'opération, et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Le second paramètre est l'argument de la fonction.

Langage ST

Q := ROR (IN, NBR);

Langage FBD

Langage LD

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
ROR NBR
ST Q

seealso See also

SHL SHR ROL SHLb SHRb RORb SHLw SHRw ROLb RORw ROLw


RORb / ROR_SINT / ROR_USINT / ROR_BYTE

Langages de programmation - Référence -> Registres -> RORb / ROR_SINT / ROR_USINT / ROR_BYTE

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Rotation à droite d'un registre de 8 bits.

Entrées

IN : SINT Registre de 8 bits.
NBR : SINT Nombre de of rotations (chaque rotation est de 1 bit).

Sorties

Q : SINT Registre décalé.

Diagramme

Remarques

En LD, le flux d'entrée conditionne l'opération, et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Le second paramètre est l'argument de la fonction.

Langage ST

Q := RORb (IN, NBR);

Langage FBD

Langage LD

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
RORb NBR
ST Q

seealso See also

SHL SHR ROL ROR SHLb SHRb SHLw SHRw ROLb RORw ROLw


RORw / ROR_INT / ROR_UINT / ROR_WORD

Langages de programmation - Référence -> Registres -> RORw / ROR_INT / ROR_UINT / ROR_WORD

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Rotation à droite d'un registre de 16 bits.

Entrées

IN : INT Registre de 16 bits.
NBR : INT Nombre de of rotations (chaque rotation est de 1 bit).

Sorties

Q : INT Registre décalé.

Diagramme

Remarques

En LD, le flux d'entrée conditionne l'opération, et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Le second paramètre est l'argument de la fonction.

Langage ST

Q := RORw (IN, NBR);

Langage FBD

Langage LD

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
RORw NBR
ST Q

seealso See also

SHL SHR ROL ROR SHLb SHRb RORb SHLw SHRw ROLb ROLw


SETBIT

Langages de programmation - Référence -> Registres -> SETBIT

Fonction - Force un bit d'un registre.

Entrées

IN : ANY Registre ou entier de 8 à 32 bits.
BIT : DINT Numéro du bit (0 = bit de poids faible).
VAL : BOOL Valeur du bit à appliquer.

Sorties

Q : ANY Registre modifié.

Remarques

Les type LINT, REAL, LREAL, TIME et STRING ne sont pas vaildes pour IN et Q. IN et Q doivent être du même type. En cas d'arguments incorrects (mauvais numéro de bit ou type invalide) la fonction retourne la valeur de IN sans modification.

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux de sortie (ENO) garde la même valeur que l'entrée EN.

Langage ST

Q := SETBIT (IN, BIT, VAL);

Langage FBD

Langage LD

La fonction est exécutée seulement si EN est TRUE.
ENO a la même valeur que EN

Langage IL

Non disponible.

seealso See also

TESTBIT


SHL

Langages de programmation - Référence -> Registres -> SHL

Fonction - Décalage à gauche d'un registre.

Entrées

IN : ANY Registre.
NBR : ANY Nombre de of décalages (chaque décalage est de 1 bit).

Sorties

Q : ANY Registre décalé.

Diagramme

Remarques

Les arguments doivent être des entiers signés ou non signés de 8 à 32 bits.

En LD, le flux d'entrée conditionne l'opération, et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Le second paramètre est l'argument de la fonction.

Langage ST

Q := SHL (IN, NBS);

Langage FBD

Langage LD

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
SHL NBS
ST Q

seealso See also

SHR ROL ROR SHLb SHRb RORb SHLw SHRw ROLb RORw ROLw


SHR

Langages de programmation - Référence -> Registres -> SHR

Fonction - Décalage à droite d'un registre.

Entrées

IN : ANY Registre.
NBR : ANY Nombre de of décalages (chaque décalage est de 1 bit).

Sorties

Q : ANY Registre décalé.

IMPORTANT!

Si l'option "SHR: ne pas dupliquer le bit de poids fort est sélectionnée dans la boîte des "Options du project / Avancé", alors le bit de poids fort est forcé à FALSE.

Si l'option n'est pas sélectionné, alors le bit de poids fort est dupliqué:

Remarques

Les arguments doivent être des entiers signés ou non signés de 8 à 32 bits.

En LD, le flux d'entrée conditionne l'opération, et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Le second paramètre est l'argument de la fonction.

Langage ST

Q := SHR (IN, NBS);

Langage FBD

Langage LD

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
SHR NBS
ST Q

seealso See also

SHL ROL ROR SHLb SHRb RORb SHLw SHRw ROLb RORw ROLw


SWAB

Langages de programmation - Référence -> Registres -> SWAB

Fonction - Permute les octets d'nu entier.

Entrées

IN : ANY Tout entier signé ou de signé de 16 ou 32 bits

Sortiess

Q : ANY Entier permuté.

Remarques

Les types de données supportés sont INT, UINT, WORD, DINT, UDINT et DWORD. Si la fonction est appelée pour un autre type, alors la sortie prend la valeur de l'entrée.

Exemples

Type | IN | Q
WORD | 16#1A2B | 16#2B1A
DWORD | 16#1A2B3C4D | 16#4D3C2B1A


TESTBIT

Langages de programmation - Référence -> Registres -> TESTBIT

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Teste un bit d'un registre ou d'un entier.

Entrées

IN : ANY Registre ou entier de 8 à 32 bits.
BIT : DINT Numéro du bit (0 = bit de poids faible).

Sorties

Q : BOOL Valeur du bit.

Remarques

Les type LINT, REAL, LREAL, TIME et STRING ne sont pas vaildes pour IN et Q. IN et Q doivent être du même type. En cas d'arguments incorrects (mauvais numéro de bit ou type invalide) la fonction retourne FALSE.

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux de sortie (ENO) est la sortie de la fonction.

Langage ST

Q := TESTBIT (IN, BIT);

Langage FBD

Langage LD

La fonction est exécutée seulement si EN est TRUE.

Langage IL

Non disponible.

seealso See also

SETBIT


UNPACK8

Langages de programmation - Référence -> Registres -> UNPACK8

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Extrait les bits d'un octet.

Entrées

IN : USINT Registre de 8 bits.

Sorties

Q0 : BOOL Bit de poids faible.
...
Q7 : BOOL Bit de poids fort.

Remarques

En LD language, le flux en sortie est Q0. L'opération n'est exécutée que si le flux en entrée est TRUE.

Langage ST

MyUnpack est une instance déclarée du bloc UNPACK8.

MyUnpack (IN);
Q0 := MyUnpack.Q0;
Q1 := MyUnpack.Q1;
Q2 := MyUnpack.Q2;
Q3 := MyUnpack.Q3;
Q4 := MyUnpack.Q4;
Q5 := MyUnpack.Q5;
Q6 := MyUnpack.Q6;
Q7 := MyUnpack.Q7;

Langage FBD

Langage LD

L'opération est exécutée si EN = TRUE.

Langage IL

MyUnpack est une instance déclarée du bloc UNPACK8.

Op1: CAL MyUnpack (IN)
LD MyUnpack.Q0
ST Q0
(* ... *)
LD MyUnpack.Q7
ST Q7

seealso See also

PACK8


XOR_MASK

Langages de programmation - Référence -> Registres -> XOR_MASK

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - OU exclusif bit à bit entre deux entiers.

Entrées

IN : ANY Registre.
MSK : ANY Registre.

Sorties

Q : ANY OU exclusif bit à bit entre IN et MSK.

Remarques

Les arguments doivent être des entiers signés ou non signés de 8 à 32 bits.

En LD, le flux d'entrée (EN) conditionne l'opération, et le flux reste inchangé en sortie. En IL,le premier paramètre (IN) doit être chargé dans le résultat courant avant l'appel de la fonction. L'autre entrée est l'opérande de la fonction.

Langage ST

Q := XOR_MASK (IN, MSK);

Langage FDB

Langage LD

La fonction est exécutée seulement si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
XOR_MASK MSK
ST Q

seealso See also

AND_MASK OR_MASK NOT_MASK


Compteurs

Langages de programmation - Référence -> Compteurs

Voici les blocs standard qui permettent de manipuler des compteurs:

Bloc | Description
CTU CTD CTUD | Compteur Décompteur Compteur/Décompteur

Dans cette section

CTU / CTUr

CTD / CTDr

CTUD / CTUDr


CTU / CTUr

Langages de programmation - Référence -> Compteurs -> CTU / CTUr

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Compteur.

Entrées

CU : BOOL Comptage. Le compteur est incrémenté à chaque appel si CD = TRUE.
RESET : BOOL Remise à zéro. le compteur est remis à 0 si RESET = TRUE.
PV : DINT Valeur maximum programmée.

Sorties

Q : BOOL TRUE si le comptage est terminé, c'est-à-dire si CV = PV.
CV : DINT Valeur courante du compteur.

Remarques

Le compteur est vide (CV = 0) quand l'application démarre. Le compteur n'inclue pas de détection de front pour l'entrée CU. Utilisez les blocs R_TRIG ou F_TRIG en entrée du compteur pour compter les fronts d'un signal. En LD, CU est le flux en entrée. Le flux en sortie est la sortie Q.

Les blocs CTUr, CTDr, CTUDr fonctionnent exactement comme les autres compteurs, sauf que toutes les entrées booléennes (CU, CD, RESET, LOAD) ont une détection de front montant implicite.

Langage ST

MyCounter est une instance déclarée du bloc CTU.

MyCounter (CU, RESET, PV);
Q := MyCounter.Q;
CV := MyCounter.CV;

Langage FBD

Langage LD

Langage IL

MyCounter est une instance déclarée du bloc CTU.

Op1: CAL MyCounter (CU, RESET, PV)
LD MyCounter.Q
ST Q
LD MyCounter.CV
ST CV

seealso See also

CTD CTUD


CTD / CTDr

Langages de programmation - Référence -> Compteurs -> CTD / CTDr

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Décompteur.

Entrées

CD : BOOL Décomptage. Le compteur est décrémenté à chaque appel si CD = TRUE.
LOAD : BOOL Chargement. Le compteur est forcé à PV si LOAD = TRUE.
PV : DINT Valeur maximum programmée.

Sorties

Q : BOOL TRUE si le compteur est vide, c'est-à-dire si CV = 0.
CV : DINT Valeur courante du compteur.

Remarques

Le compteur est vide (CV = 0) quand l'application démarre. Le compteur n'inclue pas de détection de front pour l'entrée CD. Utilisez les blocs R_TRIG ou F_TRIG en entrée du compteur pour compter les fronts d'un signal. En LD, CD est le flux en entrée. Le flux en sortie est la sortie Q .

Les blocs CTUr, CTDr, CTUDr fonctionnent exactement comme les autres compteurs, sauf que toutes les entrées booléennes (CU, CD, RESET, LOAD) ont une détection de front montant implicite.

Langage ST

MyCounter est une instance déclarée du bloc CTD.

MyCounter (CD, LOAD, PV);
Q := MyCounter.Q;
CV := MyCounter.CV;

Langage FBD

Langage LD

Langage IL

MyCounter est une instance déclarée du bloc CTD.

Op1: CAL MyCounter (CD, LOAD, PV)
LD MyCounter.Q
ST Q
LD MyCounter.CV
ST CV

seealso See also

CTU CTUD


CTUD / CTUDr

Langages de programmation - Référence -> Compteurs -> CTUD / CTUDr

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Compteur/décompteur.

Entrées

CU : BOOL Comptage. Le compteur est incrémenté à chaque appel si CU = TRUE.
CD : BOOL Décomptage. Le compteur est décrémenté à chaque appel si CD = TRUE.
RESET : BOOL Remise à zéro. le compteur est remis à 0 si RESET = TRUE.
LOAD : BOOL Chargement. Le compteur est forcé à PV si LOAD = TRUE.
PV : DINT Valeur maximum programmée.

Sorties

QU : BOOL TRUE si le comptage est terminé, c'est-à-dire si CV = PV.
QD : BOOL TRUE si le compteur est vide, c'est-à-dire si CV = 0.
CV : DINT Valeur courante du compteur.

Remarques

Le compteur est vide (CV = 0) quand l'application démarre. Le compteur n'inclue pas de détection de front pour les entrées CD et CU. Utilisez les blocs R_TRIG ou F_TRIG en entrée du compteur pour compter les fronts d'un signal. En LD, CU est le flux en entrée. Le flux en sortie est la sortie QU.

Les blocs CTUr, CTDr, CTUDr fonctionnent exactement comme les autres compteurs, sauf que toutes les entrées booléennes (CU, CD, RESET, LOAD) ont une détection de front montant implicite.

Langage ST

MyCounter est une instance déclarée du bloc CTUD.

MyCounter (CU, CD, RESET, LOAD, PV);
QU := MyCounter.QU;
QD := MyCounter.QD;
CV := MyCounter.CV;

Langage FBD

Langage LD

Langage IL

MyCounter est une instance déclarée du bloc CTUD.

Op1: CAL MyCounter (CU, CD, RESET, LOAD, PV)
LD MyCounter.QU
ST QU
LD MyCounter.QD
ST QD
LD MyCounter.CV
ST CV

seealso See also

CTU CTD


Temporisateurs

Langages de programmation - Référence -> Temporisateurs

Voici les blocs fonctionnels standard qui gèrent des temporisateurs:

Fonction | Description
TON TOF TP BLINK BLINKA PLS TMU TMD | Temporisateur à l'enclenchement Temporisateur au déclenchement Temporisateur d'impulsions Clignotant Clignotant - asymétrique Générateur d'impulsions Chronomètre compteur Chronomètre décompteur

Dans cette section

BLINK

BLINKA

PLS

TMD

TMU / TMUsec

TOF / TOFR

TON

TP / TPR


BLINK

Langages de programmation - Référence -> Temporisateurs -> BLINK

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Signal clignotant.

Entrées

RUN : BOOL Validation du bloc.
CYCLE : TIME Période de clignotement.

Sorties

Q : BOOL Signal clignotant.

Chronogramme

Remarques

Le signal de sortie est FALSE quand l'entrée RUN est FALSE. L'entrée CYCLE définit la période complète du signal. En LD language, le flux d'entrée est la commande IN. Le flux en sortie a la valeur du signal (Q).

Langage ST

MyBlinker est une instance déclarée du bloc fonctionnel BLINK.
MyBlinker (RUN, CYCLE);
Q := MyBlinker.Q;

Langage FBD

Langage LD

Langage IL

MyBlinker est une instance déclarée du bloc fonctionnel BLINK.

Op1: CAL MyBlinker (RUN, CYCLE)
LD MyBlinker.Q
ST Q

seealso See also

TON TP TOF


BLINKA

Langages de programmation - Référence -> Temporisateurs -> BLINKA

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Clignotant asymétrique.

Entrées

RUN : BOOL Commande.
TM0 : TIME Durée de l'état FALSE en sortie.
TM1 : TIME Durée de l'état TRUE en sortie.

Sorties

Q : BOOL Signal clignotant.

Chronogramme

Remarques

Le signal de sortie est FALSE si l'entrée RUN est FALSE. En LD, le flux en entrée est la commande RUN. Le flux en sortie est le signal Q.

Langage ST

MyBlinker est une instance déclarée du bloc BLINKA.

MyBlinker (RUN, TM0, TM1);
Q := MyBlinker.Q;

Langage FBD

Langage LD

Langage IL

MyBlinker est une instance déclarée du bloc BLINKA.

Op1: CAL MyBlinker (RUN, TM0, TM1)
LD MyBlinker.Q
ST Q

seealso See also

TON TP TOF


PLS

Langages de programmation - Référence -> Temporisateurs -> PLS

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Générateur d'impulsions.

Entrées

RUN : BOOL Entrée de commande.
CYCLE : TIME Période.

Sorties

Q : BOOL Signal d'implusions.

Chronogramme

Remarques

A chaque période, la sortie est positionnée à TRUE pendanty un seul cycle. En LD, le flux en entrée est la commande IN. Le flux en sortie est le signal Q.

Langage ST

MyPLS est une instance déclarée du bloc PLS.

MyPLS (RUN, CYCLE);
Q := MyPLS.Q;

Langage FBD

Langage LD

Langage IL

MyPLS est une instance déclarée du bloc PLS.

Op1: CAL MyPLS (RUN, CYCLE)
LD MyPLS.Q
ST Q

seealso See also

TON TP TOF


TMD

Langages de programmation - Référence -> Temporisateurs -> TMD

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Chronomètre décompteur.

Entrées

IN : BOOL Le chronomètre compte quand cette entrée est TRUE.
RST : BOOL Le chronomètre est réinitialisé à PT quand cette entrée est TRUE.
PT : TIME Temps programmé.

Sorties

Q : BOOL Signal de fin de comptage.
ET : TIME Temps écoulé.

Chronogramme

Remarques

Le chronomètre compte quand l'entrée IN est à TRUE. Il s'arrête quand le temps programmé est écoulé. Le chronomètre est réinitialisé par la commande RST. Il garde sa valeur quand IN est à FALSE.

Langage ST

MyTimer est une instance déclarée du bloc TMD.

MyTimer (IN, RST, PT);
Q := MyTimer.Q;
ET := MyTimer.ET;

Langage FBD

Langage LD

Langage IL

MyTimer est une instance déclarée du bloc TMD.

Op1: CAL MyTimer (IN, RST, PT)
LD MyTimer.Q
ST Q
LD MyTimer.ET
ST ET

seealso See also

TMU


TMU / TMUsec

Langages de programmation - Référence -> Temporisateurs -> TMU / TMUsec

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Chronomètre compteur.

Entrées

IN : BOOL Le chronomètre compte quand cette entrée est TRUE.
RST : BOOL Le chronomètre est réinitialisé à 0 quand cette entrée est TRUE.
PT : TIME Temps programmé. (TMU)
PTsec : UDINT Temps programmé. (TMUsec - secondes)

Sorties

Q : BOOL Signal de fin de comptage.
ET : TIME Temps écoulé. (TMU)
ETsec : UDINT Temps écoulé. (TMUsec - secondes)

Chronogramme

Remarques

Le chronomètre compte quand l'entrée IN est à TRUE. Il s'arrête quand le temps programmé est écoulé. Le chronomètre est réinitialisé par la commande RST. Il garde sa valeur quand IN est à FALSE.

Langage ST

MyTimer est une instance déclarée du bloc TMU.

MyTimer (IN, RST, PT);
Q := MyTimer.Q;
ET := MyTimer.ET;

Langage FBD

Langage LD

Langage IL

MyTimer est une instance déclarée du bloc TMU.

Op1: CAL MyTimer (IN, RST, PT)
LD MyTimer.Q
ST Q
LD MyTimer.ET
ST ET

seealso See also

TMD


TOF / TOFR

Langages de programmation - Référence -> Temporisateurs -> TOF / TOFR

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Temporisateur au déclenchement.

Entrées

IN : BOOL Commande.
PT : TIME Temps programmé.

RST : BOOL Reset (TOFR seulement).

Sorties

Q : BOOL Signal de sortie.
ET : TIME Temps écoulé.

Chronogramme

Remarques

La temporisation commence sur un front descendant de IN. Elle s'arrête quand le temps écoulé est égal au temps programmé. Un front montant de IN remet la temporisation à 0. Le signal de sortie passe à TRUE IN passe à TRUE, et repasse à FALSE quand le temps programmé est écoulé.

TOFR est similaire à TOF mais a une entrée supplémentaire pour ré-initialiser le temporisateur.

En LD, le flux d'entrée est la commande IN. Le flux en sortie est le signal Q.

Langage ST

MyTimer est une instance déclarée du bloc TOF.

MyTimer (IN, PT);
Q := MyTimer.Q;
ET := MyTimer.ET;

Langage FBD

Langage LD

Langage IL

MyTimer est une instance déclarée du bloc TOF.

Op1: CAL MyTimer (IN, PT)
LD MyTimer.Q
ST Q
LD MyTimer.ET
ST ET

seealso See also

TON TP BLINK


TON

Langages de programmation - Référence -> Temporisateurs -> TON

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Temporisateur à l'enclenchement.

Entrées

IN : BOOL Commande.
PT : TIME Temps programmé.

Sorties

Q : BOOL Signal de sortie.
ET : TIME Temps écoulé.

Chronogramme

Remarques

La temporisation démarre sur un front montant de IN. Elle s'arrête quand le temps programmé est écoulé. Sur un front descendant de IN la temporisation est remise à 0. Le signal de sortie passe à TRUE quand le temps programmé est écoulé, et repasse à FALSE quand la commande retombe.

En LD, le flux d'entrée est la commande IN. Le flux en sortie est le signal Q.

Langage ST

MyTimer est une instance déclarée du bloc TON.

MyTimer (IN, PT);
Q := MyTimer.Q;
ET := MyTimer.ET;

Langage FBD

Langage LD

Langage IL

MyTimer est une instance déclarée du bloc TON.

Op1: CAL MyTimer (IN, PT)
LD MyTimer.Q
ST Q
LD MyTimer.ET
ST ET

seealso See also

TOF TP BLINK


TP / TPR

Langages de programmation - Référence -> Temporisateurs -> TP / TPR

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Temporisateur d'impulsions.

Entrées

IN : BOOL Commande.
PT : TIME Temps programmé.

RST : BOOL Reset (TPR seulement).

Sorties

Q : BOOL Signal de sortie.
ET : TIME Temps écoulé.

Chronogramme

Remarques

La temporisation démarre sur un front montant de IN. Elle s'arrête quand le temps programmé est écoulé. Un front descendant de IN remet la temporisation à 0, seulement après le temps programmé. Toutes les impulsions de l'entrée IN pendant le temps programmé sont ignorées. Le signalde sortie est TRUE tant que la temporisation est active.

TPR est similaire à TP mais a une entrée supplémentaire pour ré-initialiser le temporisateur.

En LD, le flux d'entrée est la commande IN. Le flux en sortie est le signal Q.

Langage ST

MyTimer est une instance déclarée du bloc TP.

MyTimer (IN, PT);
Q := MyTimer.Q;
ET := MyTimer.ET;

Langage FBD

Langage LD

Langage IL

MyTimer est une instance déclarée du bloc TP.

Op1: CAL MyTimer (IN, PT)
LD MyTimer.Q
ST Q
LD MyTimer.ET
ST ET

seealso See also

TON TOF BLINK


Opérations mathématiques

Langages de programmation - Référence -> Opérations mathématiques

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les fonctions standard effectuant des opérations mathématiques:

Fonction | Description
ABS TRUNC LOG, LN POW,EXPT, EXP SQRT, ROOT SCALEIN | Valeur absolue Partie entière Logarithme Puissance Racine Mise à l'échelle - conversion linéraire

Dans cette section

ABS

EXP / EXPL

EXPT

LOG

LN

POW ** POWL

ROOT

ScaleLin

SQRT / SQRTL

TRUNC / TRUNCL


ABS

Langages de programmation - Référence -> Opérations mathématiques -> ABS

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Calcule la valeur absolue d'un nombre.

Entrées

IN : ANY Valeur.

Outputs

Q : ANY Résultat: valeur absolue de IN.

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux en sortie (ENO) garde la même valeur que l'entrée EN. En IL, la valeur d'entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := ABS (IN);

Langage FBD

Langage LD

La fonction est exécutée seulement si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD IN
ABS
ST Q

seealso See also

TRUNC LOG POW SQRT


EXP / EXPL

Langages de programmation - Référence -> Opérations mathématiques -> EXP / EXPL

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Calcule une exponentielle naturelle.

Entrées

IN : REAL Valeur réelle.

Sorties

Q : REAL Résulatat: exponentielle naturelle de IN.

Remarques

En LD, le flux d'entrée (EN) conditionne l'opération, et le flux est inchangé en sortie. En IL, l'entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := EXP (IN);

Langage FBD

Langage IL

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
EXP
ST Q (* Q is: EXP (IN) *)

seealso Voir aussi

ABS TRUNC POW SQRT


EXPT

Langages de programmation - Référence -> Opérations mathématiques -> EXPT

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Calcule une puissance.

Entrées

IN : REAL Valeur réelle.
EXP : DINT Exposant.

Sorties

Q : REAL Résultat: IN à la puissance 'EXP'.

Remarques

En LD, le flux en entrée (EN) conditionnne l'opération et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Le second paramètre est l'argument de la fonction.

Langage ST

Q := EXPT (IN, EXP);

Langage FBD

Langage LD

La fonction est appelée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
EXPT EXP
ST Q

seealso See also

TRUNC LOG ABS SQRT


LOG

Langages de programmation - Référence -> Opérations mathématiques -> LOG

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Calcule un logarithme en base 10.

Entrées

IN : REAL Valeur réelle.

Sortie

Q : REAL Résultat: logarithme (base 10) de IN.

Remarks

En LD, le flux d'entrée (EN) conditionne l'opération, et le flux est inchangé en sortie. En IL, l'entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := LOG (IN);

Langage FBD

Langage LD

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
LOG
ST Q (* Q is: LOG (IN) *)

seealso See also

TRUNC ABS POW SQRT


LN

Langages de programmation - Référence -> Opérations mathématiques -> LN

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Calcule un logarithme naturel.

Entrées

IN : REAL/LREAL Valeur réelle.

Sorties

Q : REAL/LREAL Résultat: logarithme naturel de IN.

Remarques

En LD, le flux d'entrée (EN) conditionne l'opération, et le flux est inchangé en sortie. En IL, l'entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := LN (IN);

Langage FBD

Langage LD

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Language IL

Op1: LD IN
LN
ST Q (* Q is: LN (IN) *)

seealso Voir aussi

ABS TRUNC POW SQRT


POW ** POWL

Langages de programmation - Référence -> Opérations mathématiques -> POW ** POWL

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Calcule une puissance.

Entrées

IN : REAL/LREAL Valeur réelle.
EXP : REAL/LREAL Exposant.

Sorties

Q : REAL/LREAL Résultat: IN à la puissance 'EXP'.

Remarques

En ST, l'opérateur "**" peut être utilisé à la place de POW. En LD, le flux en entrée (EN) conditionnne l'opération et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Le second paramètre est l'argument de la fonction.

Langage ST

Q := POW (IN, EXP);
Q := IN ** EXP;

Langage FBD

Langage LD

La fonction est appelée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
POW EXP
ST Q

seealso See also

TRUNC LOG ABS SQRT


ROOT

Langages de programmation - Référence -> Opérations mathématiques -> ROOT

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Calcule la racine Nième d'un nombre réel.

Entrées

IN : REAL Vvaleur réells

N : DINT Niveau de racine

Sorties

Q : REAL Résultat: racine (N) de IN

Remarques

En LD, le flux en entrée (EN) conditionne l'appel de la fonction, et le flux est inchangé en sortie. En IL, l'entrée doit être chargé dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := ROOT (IN, N);

Langage FBD

Langage LD

La fonction est appelée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
ROOT N
ST Q


ScaleLin

Langages de programmation - Référence -> Opérations mathématiques -> ScaleLin

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Mise à l'échelle - Conversion linéaire.

Entrées

IN : REAL Valeur réelle.
IMIN : REAL Valeur minimum en entrée.
IMAX : REAL Valeur maximum en entrée.
OMIN : REAL Valeur minimum en sortie.
OMAX : REAL Valeur maximum en sortie.

Sorties

OUT : REAL Résultat: OMIN + IN * (OMAX - OMIN) / (IMAX - IMIN).

Table de vérité

entrées | OUT
IMIN >= IMAX | = IN
IN < IMIN | = OMIN
IN > IMAX | = OMAX
autre | = OMIN + IN * (OMAX - OMIN) / (IMAX - IMIN)

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux est inchangé en sortie(ENO). En IL, la valeur d'entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

OUT := ScaleLin (IN, IMIN, IMAX, OMIN, OMAX);

Langage FBD

Langage LD

La fonction est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
ScaleLin IMAX, IMIN, OMAX, OMIN
ST OUT


SQRT / SQRTL

Langages de programmation - Référence -> Opérations mathématiques -> SQRT / SQRTL

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Calcule une racine carrée.

Entrées

IN : REAL/LREAL Valeur réelle.

Sorties

Q : REAL/LREAL Résultat: racine carrée de IN.

Remarques

En LD, le flux en entrée (EN) conditionne l'appel de la fonction, et le flux est inchangé en sortie. En IL, l'entrée doit être chargé dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := SQRT (IN);

Langage FBD

Langage LD

La fonction est appelée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
SQRT
ST Q

seealso See also

TRUNC LOG POW ABS


TRUNC / TRUNCL

Langages de programmation - Référence -> Opérations mathématiques -> TRUNC / TRUNCL

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Tronque la partie décimale d'un nombre.

Entrées

IN : REAL/LREAL Valeur réelle.

Sorties

Q : REAL/LREAL Résultat: partie entière de IN.

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux est inchangé en sortie(ENO). En IL, la valeur d'entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := TRUNC (IN);

Langage FBD

Langage LD

La fonction est appelée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
TRUNC
ST Q

seealso See also

ABS LOG POW SQRT


Fonctions trigonométriques

Langages de programmation - Référence -> Fonctions trigonométriques

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les fonctions trigonométriques standard:

Fonction | Description
SIN COS TAN ASIN ACOS ATAN ATAN2 | sinus cosinus tangente arc-sinus arc-cosinus arc-tangente arc-tangente de Y / X

seealso See also

UseDegrees

Dans cette section

ACOS / ACOSL

ASIN / ASINL

ATAN / ATANL

ATAN2 / ATAN2L

COS / COSL

SIN / SINL

TAN / TANL

UseDegrees


ACOS / ACOSL

Langages de programmation - Référence -> Fonctions trigonométriques -> ACOS / ACOSL

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Arc-cosinus.

Entrées

IN : REAL/LREAL Valeur entière.

Outputs

Q : REAL/LREAL Résultat: arc-cosinus de IN.

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux de sortie (ENO) garde la même valeur que l'entrée EN. En IL, l'entrée (IN) doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := ACOS (IN);

Langage FBD

Langage LD

La fonction est exécutée seulement si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD IN
ACOS
ST Q

seealso See also

SIN COS TAN ASIN ATAN ATAN2


ASIN / ASINL

Langages de programmation - Référence -> Fonctions trigonométriques -> ASIN / ASINL

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Arc-sinus.

Entrées

IN : REAL/LREAL Valeur réelle.

Sorties

Q : REAL/LREAL Résultat: arc-sinus de IN.

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux de sortie (ENO) garde la même valeur que l'entrée EN. En IL, l'entrée (IN) doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := ASIN (IN);

Langage FBD

Langage LD

La fonction est exécutée seulement si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD IN
ASIN
ST Q (* Q is: ASIN (IN) *)

seealso See also

SIN COS TAN ACOS ATAN ATAN2


ATAN / ATANL

Langages de programmation - Référence -> Fonctions trigonométriques -> ATAN / ATANL

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Arc-tangente.

Entrées

IN : REAL/LREAL Valeur réelle.

Sorties

Q : REAL/LREAL Résultat: arc-tangente de IN.

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux de sortie (ENO) garde la même valeur que l'entrée EN. En IL, l'entrée (IN) doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := ATAN (IN);

Langage FBD

Langage LD

La fonction est exécutée seulement si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD IN
ATAN
ST Q (* Q is: ATAN (IN) *)

seealso See also

SIN COS TAN ASIN ACOS ATAN2


ATAN2 / ATAN2L

Langages de programmation - Référence -> Fonctions trigonométriques -> ATAN2 / ATAN2L

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Calcule l'arc-tangente de Y/X.

Entrées

Y : REAL/LREAL Valeur réelle.
X : REAL/LREAL Valeur réelle.

Sorties

Q : REAL/LREAL Résultat: arc-tangente de Y / X.

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux de sortie (ENO) garde la même valeur que l'entrée EN. En IL, l'entrée (IN) doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := ATAN2 (IN);

Langage FDB

Langage LD

La fonction est exécutée seulement si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD Y
ATAN2 X
ST Q (* Q is: ATAN2 (Y / X) *)

seealso See also

SIN COS TAN ASIN ATAN ACOS


COS / COSL

Langages de programmation - Référence -> Fonctions trigonométriques -> COS / COSL

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Calcule un cosinus.

Entrées

IN : REAL/LREAL Valeur réelle.

Sorties

Q : REAL/LREAL Résulat: cosinus de IN.

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux est inchangé en sortie (ENO). En IL, la valeur d'entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := COS (IN);

Langage FBD

Langage LD

La fonction est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
COS
ST Q

seealso See also

SIN ACOS TAN ASIN ATAN ATAN2


SIN / SINL

Langages de programmation - Référence -> Fonctions trigonométriques -> SIN / SINL

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Calcule un sinus.

Entrées

IN : REAL/LREAL Valeur réelle.

Sorties

Q : REAL/LREAL Résulat: sinus de IN.

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux est inchangé en sortie(ENO). En IL, la valeur d'entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := SIN (IN);

Langage FBD

Langage LD

La fonction est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
SIN
ST Q

seealso See also

ACOS COS TAN ASIN ATAN ATAN2


TAN / TANL

Langages de programmation - Référence -> Fonctions trigonométriques -> TAN / TANL

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Calcule une tangente.

Entrées

IN : REAL/LREAL Valeur réelle.

Sorties

Q : REAL/LREAL Résulat: tangente de IN.

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux est inchangé en sortie(ENO). En IL, la valeur d'entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := TAN (IN);

Langage FBD

Langage LD

La fonction est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
TAN
ST Q

seealso See also

SIN COS ACOS ASIN ATAN ATAN2


UseDegrees

Langages de programmation - Référence -> Fonctions trigonométriques -> UseDegrees

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Définit l'unité d'angle pour les fonctions trigonometriques.

Entrées

IN : BOOL Si TRUE, les fonctions trigonométriques travaillent en degrés.
Si FALSE, les fonctions trigonométriques travaillent en radian (défaut).

Sorties

Q : BOOL TRUE si fonctions en degrés avant l'appel de UseDegrees.

Remarques

Cette function positionne l'unité d'angle utilisée par:

Fonction | Description
SIN COS TAN ASIN ACOS ATAN ATAN2 | sinus cosinus tangente arc-sinus arc-cosinus arc-tangente arc-tangente de Y / X

Langage ST

Q := UseDegrees (IN);

Langage FBD

Langage LD

L'entrée est le fluxInput. Le flux est la sortie.

Langage IL

Op1: LD IN
UseDegrees
ST Q


Manipulation des chaines de caractères

Langages de programmation - Référence -> Manipulation des chaines de caractères

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les opérateurs et fonctions standard pour la manipulation des chaines de caractères:

Fonction | Description
+ CONCAT MLEN LEN DELETE INSERT FIND REPLACE LEFT RIGHT MID CHAR ASCII ATOH HTOA CRC16 ArrayToString StringToArray | concaténation de chaines concaténation de chaines longueur courante d'une chaine supprime des caractères dans une chaine insère des caractères dans une chaine trouve des caractères dans une chaine remplace des caractères dans une chaine extrait des caractères à gauche dans une chaine extrait des caractères à droite dans une chaine extrait des caractères dans une chaine construit une chaine à un seul caractère trouve le code ASCII d'un caractère dans une chaine conversion d'une chaine en entier (hexadécimal) conversion d'un entier en chaine (hexadécimal) calcul de CRC16 Copie un tableau de SINT dans une chaine Copie les caractères d'une chaine dans un tableau de SINT

D'autres fonctions permettent de gérer des ressources "tables de textes":

Fonction | Description
StringTable LoadString | Sélectionne la table de textes active Charge une string de la table de textes active

Dans cette section

ArrayToString / ArrayToStringU

ASCII

ATOH

CHAR

CONCAT

CRC16

DELETE

FIND

HTOA

INSERT

LEFT

LEN

LoadString

MID

MLEN

REPLACE

RIGHT

StringTable

StringToArray / StringToArrayU


ArrayToString / ArrayToStringU

Langages de programmation - Référence -> Manipulation des chaines de caractères -> ArrayToString / ArrayToStringU

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Copie un tableau de SINT dans une variable STRING.

Entrées

SRC : SINT Source: tableau d'entiers courts SINT (USINT for ArrayToStringU).
DST : STRING Variable de destination STRING.
COUNT : DINT Nombre de caractères copiés.

Sorties

Q : DINT Nombre de caractères copiés.

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux de sortie (ENO) garde la même valeur que l'entrée EN. En IL, l'entrée (IN) doit être chargée dans le résultat courant avant l'appel de la fonction.

Cette fonction copie les COUNT premiers éléments du tableau SRC dans les caractères de la chaine DST. La fonction vérifie la taille maximale de la chaine de destination et au besoin ajuste le nombre de caractères copiés.

Langage ST

Q := ArrayToString (SRC, DST, COUNT);

Langage FBD

Langage LD

La fonction est exécutée seulement si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Non disponible.

seealso See also

StringToArray


ASCII

Langages de programmation - Référence -> Manipulation des chaines de caractères -> ASCII

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Rend le code ASCII d'un caractère dans une chaine.

Entrées

IN : STRING Chaine de caractères.
POS : DINT Position du caractère dans la chaine
(La première position valide est 1).

Sorties

CODE : DINT Code ASCII du caractère sélectionné
ou 0 si la position est invalide.

Remarque

En LD, l'opération n'est exécutée que si le flux en entrée (EN) est TRUE. Le flux en sortie (ENO) a la même valeur qu'en entrée. En IL, le premier paramètre (IN) doit être chargé avant l'appel de la fonction. L'autre entrée est l'opérande de la fonction.

Langage ST

CODE := ASCII (IN, POS);

Langage FBD

Langage LD

La fonction n'est appelée que si EN = TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD IN
AND_MASK MSK
ST CODE

seealso See also

CHAR


ATOH

Langages de programmation - Référence -> Manipulation des chaines de caractères -> ATOH

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Convertit une chaine de caractères en entier (base hexadécimale).

Entrées

IN : STRING Chaine représentant un entier en format hexadecimal.

Sorties

Q : DINT Entier représenté par la chaine.

Table de vérité (exemples)

IN | Q
'' | 0
'12' | 18
'a0' | 160
'A0zzz' | 160

Remarques

La fonction ignore la casse. Le résultat est 0 pour une chaine vide. La conversion s'arrête avant le premier caractère invalide. En LD, l'opération n'est exécutée que si le flux en entrée (EN) est TRUE. Le flux en sortie (ENO) est inchangé. En IL, l'entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := ATOH (IN);

Langage FBD

Langage LD

La fonction n'est exécutée que si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD IN
ATOH
ST Q

seealso See also

HTOA


CHAR

Langages de programmation - Référence -> Manipulation des chaines de caractères -> CHAR

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Construit une chaine d'un seul caractère.

Entrées

CODE : DINT Code ASCII du caractère souhaité.

Outputs

Q : STRING Chaine ne contenant que le caractère spécifié.

Remarques

En LD, le flux d'entrée (EN) conditionne l'opération, et le flux reste inchangé en sortie. In IL, le paramètre d'entrée doit être chargé dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := CHAR (CODE);

Langage FBD

Langage LD

La function n'est appelée que si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD CODE
CHAR
ST Q

seealso See also

ASCII


CONCAT

Langages de programmation - Référence -> Manipulation des chaines de caractères -> CONCAT

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Concaténation de chain,es de caractères.

Entrées

IN_1 : STRING Variable ou expression constante.
...
IN_N : STRING Variable ou expression constante.

Sortie

Q : STRING Concaténation de toutes les entrées.

Remarques

En FBD ou LD, le bloc peut avoir jusqu'à 16 entrées. En IL ou ST, la fonction accepte un nombre variable d'entrées (au moins 2).

Vous pouvez également utiliser l'opérateur "+" pour concaténer des chaines de caractères.

Langage ST

Q := CONCAT ('AB', 'CD', 'E');
(* Q vaut 'ABCDE' *)

Langage FBD

Langage LD

Langage IL

Op1: LD 'AB'
CONCAT 'CD', 'E'
ST Q (* Q vaut 'ABCDE' *)


CRC16

Langages de programmation - Référence -> Manipulation des chaines de caractères -> CRC16

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - calcule un CRC16 sur les caractères d'une chaine.

Entrées

IN : STRING chaine de caractères.

Sorties

Q : INT CRC16 calculé sur tous les caractères.

Remarques

En LD, le flux en entrée (EN) valide l'opération, et le flux est inchangé en sortie. En IL, l'entrée (IN) doit être chargée dans le résultat courant avant l'appel de la fonction.

La fonction calcule un CRC16 de type MODBUS initialisé à 16#FFFF.

Langage ST

Q := CRC16 (IN);

Langage FBD

Langage LD

La fonction est appelée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
CRC16
ST Q


DELETE

Langages de programmation - Référence -> Manipulation des chaines de caractères -> DELETE

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Supprime des caractères dans une chaine.

Entrées

IN : STRING Chaine de caractères.
NBC : DINT Nombre de caractères à supprimer.
POS : DINT Position du premier caractère à détruire (la première position valide est 1).

Sorties

Q : STRING Chaine modifiée.

Remarques

Le premier caractère de la chaine est à la position 1. En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux est inchangé en sortie(ENO). En IL, la première entrée doit être chargée dans le résultat courant avant l'appel de la fonction. Les autres entrées sont les opérandes de la fonction, séparés par des virgules.

Langage ST

Q := DELETE (IN, NBC, POS);

Langage FBD

Langage LD

La fonction est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
DELETE NBC, POS
ST Q

seealso See also

+ MLEN INSERT FIND REPLACE LEFT RIGHT MID


FIND

Langages de programmation - Référence -> Manipulation des chaines de caractères -> FIND

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Cherche la position de caractères dans une chaine.

Entrées

IN : STRING Chaine de caractères.
STR : STRING Chaine contenant la séquence de caractères à chercher.

Sorties

POS : DINT Position du premier caractère de STR dans IN, ou 0 si la recherche a échoué.

Remarques

La première position valide est 1. Une valeur de retour de 0 signifie que STR n'a pas été trouvée. La recherche tient compte de la casse. En LD, le flux d'entrée (EN) valide l'opération, et le flux en sortie est inchangé. En IL, le premier paramètre (la chaine) doit être chargé dans le résultat courant avant l'appel de la fonction? Le second paramètre est l'opérande de la fonction.

Langage ST

POS := FIND (IN, STR);

Langage FBD

Langage LD

La fonction est appelée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
FIND STR
ST POS

seealso See also

+ MLEN DELETE INSERT REPLACE LEFT RIGHT MID


HTOA

Langages de programmation - Référence -> Manipulation des chaines de caractères -> HTOA

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Convertit un entier en chaine de caractère (format hexadécimal).

Entrées

IN : DINT Valeur entière.

Sorties

Q : STRING Chaine représentant la valeur d'entrée en hexadécimal.

Table de vérité (exemples)

IN | Q
0 | '0'
18 | '12'
160 | 'A0'

Remarks

En LD, l'opération n'est exécutée que si le flux en entrée (EN) est TRUE. Le flux en sortie (ENO) est inchangé. En IL, l'entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := HTOA (IN);

Langage FBD

Langage LD

La fonction n'est exécutée que si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD IN
HTOA
ST Q

seealso See also

ATOH


INSERT

Langages de programmation - Référence -> Manipulation des chaines de caractères -> INSERT

Previous chapter Next chapter Show all Show all Hide all Hide all

Function - Insère des caractères dans une chaine.

Inputs

IN : STRING Chaine de caractères.
STR : STRING Chaine contenant les caractères à insérer.
POS : DINT Position du premier caractère inséré (la première position valide est 1).

Sorties

Q : STRING Chaine modifiée.

Remarques

La première position valide est 1. En LD, le flux en entrée (EN) conditionne l'opération, et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Les autres paramètres sont les opérandes de la fonction, séparés par une virgule.

Langage ST

Q := INSERT (IN, STR, POS);

Langage FBD

Langage LD

La fonction n'est appelée que si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
INSERT STR, POS
ST Q

seealso See also

+ MLEN DELETE FIND REPLACE LEFT RIGHT MID


LEFT

Langages de programmation - Référence -> Manipulation des chaines de caractères -> LEFT

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Extrait des caractères à gauche dans une chaine.

Entrées

IN : STRING Chaine de caractères à extraire.
NBC : DINT Nombre de caractères à extraire.

Sorties

Q : STRING Chaine contenant les NBC premiers caractères de IN.

Remarques

En LD, le flux d'entrée (EN) conditionne l'opération, et le flux est inchangé en sortie. En IL, la première entrée doit être chargée dans le résultat courant avant l'appel de la fonction. La seconde entrée est l'opérande de la fonction.

Langage ST

Q := LEFT (IN, NBC);

Langage FBD

Langage LD

La fonction est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
LEFT NBC
ST Q

seealso See also

+ MLEN INSERT FIND REPLACE DELETE RIGHT MID


LEN

Langages de programmation - Référence -> Manipulation des chaines de caractères -> LEN

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Calcule la longuer courante d'une chaine de caractères.

Entrées

IN : STRING Chaine de caractères.

Outputs

NBC : INT Nombre de caractères dand la chaine. 0 si la chaine est vide.

Remarques

En LD, le flux d'entrée conditionne l'opération, est le flux est inchangé en sortie. En IL, l'entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

NBC := LEN (IN);


LoadString

Langages de programmation - Référence -> Manipulation des chaines de caractères -> LoadString

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Charge une string de la table de textes active.

Entrées

ID : DINT Identificateur de la string dans la table.

Sorties

Q : STRING Chaine chargée ou chaine vide en cas d'erreur.

Remarques

Cette fonction charge un texte depuis la table de texte active et la stoque dans une variable STRING. La fonction StringTable() est utilisée pour sélectionner la table active.

L'entrée ID (l'identificateur du texte) est l'identificateur déclaré dans la ressource table de textes, et n'a pas besoin d'être redéfini.

Langage ST

Q := LoadString (ID);

Langage FBD

Langage LD

Langage IL

Op1: LD ID
LoadString
ST Q

seealso See also

StringTable String tables


MID

Langages de programmation - Référence -> Manipulation des chaines de caractères -> MID

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Extrait des caractères dans dans une chaine.

Entrées

IN : STRING Chaine de caractères à extraire.
NBC : DINT Nombre de caractères à extraire.
POS : DINT Position du premier caractère à extraire (La première position valide est 1).

Outputs

Q : STRING Chaine contenant les caractères extraits.

Remarques

La première position valide est 1. En LD, le flux d'entrée (EN) conditionne l'opération, et le flux est inchangé en sortie. En IL, la première entrée doit être chargée dans le résultat courant avant l'appel de la fonction. Les autres entrées sont les opérandes de la fonction, séparés par des virgules.

Langage ST

Q := MID (IN, NBC, POS);

Langage FBD

LD Language

The function is executed only if EN is TRUE.
ENO keeps the same value as EN.

Langage IL

Op1: LD IN
MID NBC, POS
ST Q

seealso See also

+ MLEN INSERT FIND REPLACE LEFT RIGHT DELETE


MLEN

Langages de programmation - Référence -> Manipulation des chaines de caractères -> MLEN

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Calcule la longuer courante d'une chaine de caractères.

Entrées

IN : STRING Chaine de caractères.

Outputs

NBC : DINT Nombre de caractères dand la chaine. 0 si la chaine est vide.

Remarques

En LD, le flux d'entrée conditionne l'opération, est le flux est inchangé en sortie. En IL, l'entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

NBC := MLEN (IN);

Langage FBD

Langage LD

La fonction est appelée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
MLEN
ST NBC

seealso See also

+ DELETE INSERT FIND REPLACE LEFT RIGHT MID


REPLACE

Langages de programmation - Référence -> Manipulation des chaines de caractères -> REPLACE

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Remplace des caractères dans une chaine.

Entrées

IN : STRING Chaine de caractères.
STR : STRING Chaine contenant les caractères à insérer
en remplacement des NDEL caractères supprimés.
NDEL : DINT Nombre de caractères à supprimer avant l'insertion de STR.
POS : DINT Position du premier caractère remplacé (la première position valide est 1).

Sorties

Q : STRING Chaine modifiée.

Remarques

La première position valide est 1. En LD, le flux d'entrée (EN) conditionne l'appel de la fonction et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Les autres paramètres sont les opérandes de la fonction, séparés par des virugules.

Langage ST

Q := REPLACE (IN, STR, NDEL, POS);

Langage FBD

LD Language

La fonction est appelée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
REPLACE STR, NDEL, POS
ST Q

seealso See also

+ MLEN INSERT FIND DELETE LEFT RIGHT MID


RIGHT

Langages de programmation - Référence -> Manipulation des chaines de caractères -> RIGHT

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Extrait des caractères à droite dans une chaine.

Entrées

IN : STRING Chaine de caractères à extraire.
NBC : DINT Nombre de caractères à extraire.

Sorties

Q : STRING Chaine contenant les NBC derniers caractères de IN.

Remarques

En LD, le flux d'entrée (EN) conditionne l'opération, et le flux est inchangé en sortie. En IL, la première entrée doit être chargée dans le résultat courant avant l'appel de la fonction. La seconde entrée est l'opérande de la fonction.

Langage ST

Q := RIGHT (IN, NBC);

Langage FBD

Langage LD

La fonction est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
RIGHT NBC
ST Q

seealso See also

+ MLEN INSERT FIND REPLACE LEFT DELETE MID


StringTable

Langages de programmation - Référence -> Manipulation des chaines de caractères -> StringTable

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Sélectionne la table de textes active.

Entrées

TABLE : STRING Nom de la ressource table de texte - doit être une constante!
COL : STRING Nom de la colonne dans la table table - doit être une constante!

Sorties

OK : BOOL TRUE si OK

Remarques

Cette fonction sélectionne une colonne d'une table comme devant être la table de textes active. La fonction LoadString() se réfère toujours à la table active.

Les arguments doivent être des expressions constantes STRING, et doivent correspondre à une table déclarée dans l'éditeur, et à une colonne valide dans cette table.

Si vous n'avez qu'une table à une colonne dans votre projet, vous n'avez pas besoin d'appeler cette fonction. La table sera activée par défaut.

Langage ST

OK := StringTable ('MyTable', 'FirstColumn");

Langage FBD

Langage LD

Langage IL

Op1: LD 'MyTable'
StringTable 'First Column'
ST OK

seealso See also

LoadString String tables


StringToArray / StringToArrayU

Langages de programmation - Référence -> Manipulation des chaines de caractères -> StringToArray / StringToArrayU

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Copie les caractères d'une variable STRING dans un tableau de SINT.

Entrées

SRC : STRING Variable source STRING.
DST : SINT Destination: tableau d'entiers courrts SINT (USINT for StringToArrayU).

Sorties

Q : DINT Nombre de caractères copiés.

Remarques

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux de sortie (ENO) garde la même valeur que l'entrée EN. En IL, l'entrée (IN) doit être chargée dans le résultat courant avant l'appel de la fonction.

Cette fonction copie les caractères de la chaine SRC dans les premiers éléments du tableau DST. La fonction vérifie la taille du tableau de destination et au besoin ajuste le nombre de carcatères copiés.

Langage ST

Q := StringToArray (SRC, DST);

Langage FBD

Langage LD

La fonction est exécutée seulement si EN est TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD SRC
StringToArray DST
ST Q

seealso See also

ArrayToString


Opérations avancées

Langages de programmation - Référence -> Opérations avancées

Voici la liste des blocs standards pour les fonctions avancées.

Contrôle de signaux analogiques

Bloc | Description
Average Integral Derivate PID Ramp Lim_Alrm Hyster, HysterAcc SigPlay SigScale CurveLin SurfLin | Calcule la moyenne d'échantillons. Calcute l'intégrale d'un signal. Calcule la dérivée d'un signal. Régulateur PID. Rampe analogique. Détection d'alarme sur seuils haut et bas. Hystérésis. Génère un signal analogique en ressource. Trouve un point d'un signal analogique en ressource. Interpolation linéaire sur une courbe Interpolation linéaire sur une surface

Gestion d'alarmes

Bloc | Description
Lim_Alrm ALARM_M ALARM_A | Détection d'alarme sur seuils haut et bas. Alarme avec reset manuel. Alarme avec reset automatique.

Collections de données

Bloc | Description
Stackint FIFO LIFO SerializeIn SerializeOut SerGetString SerPutString | Pile de valeurs entières. Liste "First in / first out". Pile "Last in / first out". Extrait des données d'une trame binaire. Copie des données dans une trame binaire. Extrait une STRING d'une trame binaire. Copie une STRING dans une trame binaire.

Enregistrement de données

Bloc | Description
LogFileCSV | Enregistre une liste de variables dans un fichier CSV.

Opérations spéciales

Bloc | Description
GetSysInfo Printf CycleStop FatalStop EnableEvents ApplyRecipeColumn VLID SigID | Information système. Trace. Passe en mode cycle à cycle. Arrête la cible en erreur fatale. Valide / inhibe la production d'évènements (applications distribuées). Applique les valeurs d'une colonne d'un fichier de recette. Retourne l'identificateur d'une liste de variables embarquée. Retourne l'identificateur d'une signal en ressource.

Communication

SERIO: Communication série SERIO_B
AS-interface
Fonctions de communication TCP-IP
Fonctions de communications UDP
MBSlaveRTU MBSlaveUDP MBMasterRTU MBMasterTCP
CanRcvMsg CanSndMsg
Fonctions CANopen
DNP3 Master

Autres

Fonctions de gestion de tableaux
Fonctions de gestion de fichiers
Allocation dynamique de mémoire
Horloge temps réel
Gestion de buffers de texte
Ecriture et lecture XML
Fonctions d'accès au registre T5

Dans cette section

ALARM_A

ALARM_M

ApplyRecipeColumn

Arrays management functions

AS-interface - fonctions

AVERAGE / AVERAGEL

Fonctions CANopen

CanRcvMsg

CanSndMsg

CycleStop

CurveLin

DERIVATE

DNP3 Master function blocks

Allocation dynamique de mémoire

EnableEvents

FatalStop

FIFO

Gestion de fichiers

GETSYSINFO

HYSTER

HYSTERacc

INTEGRAL

LIFO

LIM_ALRM

LogFileCSV

MBMasterRTU

MBMasterTCP

MBSlaveRTU / MBSlaveRTUex / MBSlaveRTUexD

MBSlaveUDP / MBSlaveUDPex

PID

printf

RAMP

Horloge temps réel

SerializeIn

SerializeOut

SerGetString

SerPutString

SERIO

SERIO_B

SigID

SigPlay

SigScale

STACKINT

SurfLin

Fonctions de communication TCP-IP

Manipulation de buffers de texte

Fonctions de communication UDP

VLID

Ecriture et lecture XML

Fonctions de gestion du registre T5


ALARM_A

Langages de programmation - Référence -> Opérations avancées -> ALARM_A

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Alarme avec reset automatique.

Entrées

IN : BOOL Signal d'entrée.
ACK : BOOL Commande d'acquittement.

Sorties

Q : BOOL TRUE si l'alarme est active.
QACK : BOOL TRUE si l'alarme est acquittée.

Séquence

Remarques

Combinez ce bloc avec le bloc LIM_ALRM pour gérer des alarmes analogiques.

Langage ST

(* MyALARM est une instance déclarée du bloc ALARM_M *)

MyALARM (IN, ACK, RST);
Q := MyALARM.Q;
QACK := MyALARM.QACK;

Langage FBD

Langage LD

Langage IL

(* MyALARM est une instance déclarée du bloc ALARM_A *)

Op1: CAL MyALARM (IN, ACK, RST)
LD MyALARM.Q
ST Q
LD MyALARM.QACK
ST QACK

seealso See also

ALARM_M LIM_ALRM


ALARM_M

Langages de programmation - Référence -> Opérations avancées -> ALARM_M

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Alarme avec reset manuel.

Entrées

IN : BOOL Signal d'entrée.
ACK : BOOL Commande d'acquittement.
RST : BOOL Commande de reset.

Sorties

Q : BOOL TRUE si l'alarme est active.
QACK : BOOL TRUE si l'alarme est acquittée.

Séquence

Remarques

Combinez ce bloc avec le bloc LIM_ALRM pour gérer des alarmes analogiques.

Langage ST

(* MyALARM est une instance déclarée du bloc ALARM_M *)

MyALARM (IN, ACK, RST);
Q := MyALARM.Q;
QACK := MyALARM.QACK;

Langage FBD

Langage LD

Langage IL

(* MyALARM est une instance déclarée du bloc ALARM_M *)

Op1: CAL MyALARM (IN, ACK, RST)
LD MyALARM.Q
ST Q
LD MyALARM.QACK
ST QACK

seealso See also

ALARM_A LIM_ALRM


ApplyRecipeColumn

Langages de programmation - Référence -> Opérations avancées -> ApplyRecipeColumn

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Applique les valeurs d'une colonne d'un fichier de recette.

Entrées

FILE : STRING Nom de chemin du fichier de recette (.RCP ou .CSV) - doit être une constante!
COL : DINT Index de la colonne à appliquer (1ère colonne = 0).

Sorties

OK : BOOL TRUE si OK - FALSE si les paramètres sont invalides

Remarques

L'entrée 'FILE' est une constante STRING qui indique le chemin et le nom d'un fichier de recette .RCP ou .CSV. Si aucun chemin n'est spécifié, le fichier est supposé être dans le répertoire du projet. Les fichiers RCP sont créés avec l'éditeur de recettes. Les fichiers CSV sont créés avec EXCEL ou NOTEPAD.

Dans les fichiers CSV, la première ligne doit contenir les entêtes des colonnes et est ignorée. Il y a une variable par ligne. La première colonne contient les symboles de variables. Les autres colonnes contiennent les valeurs.

Si une cellule est vide, elle est comprise comme la même valeur que la cellule précédente (à gauche). S'il s'agit de la première cellule de la ligne, elle est comprise comme une valeur nulle (0 ou FALSE ou chaine vide).

En LD, l'opération n'est exécutée que si le flux en entrée est TRUE. Le flux en sortie est le résultat de la fonction.

attention Attention

Les fichiers de recettes sont lus à la compilation et intégrés au code de l'application. Ceci implique qu'une modification effectuée après le téléchargement ne sera pas prise en compte.

Langage ST

OK := ApplyRecipeColumn ('MyFile.rcp', COL);

Langage FBD

Langage LD

La fonction est appelée si EN = TRUE.

Langage IL

Op1: LD 'MyFile.rcp'
ApplyRecipeColumn COL
ST OK


Arrays management functions

Langages de programmation - Référence -> Opérations avancées -> Arrays management functions

Previous chapter Next chapter Show all Show all Hide all Hide all

Les fonctions suivantes permettent de gérer des tableaux:

attention Attention
  • Ces fonctions peuvent ne pas être disponibles sur certaines cibles. Référez-vous aux instructions de votre fournisseur.

ARCOUNT: compte les occurences d'une valeur dans un tableau

COUNT := ARCOUNT (ARR, PATTERN, STARTINDEX);

ARRAY : ANY tableau à une ou plusieurs dimensions.
PATTERN : ANY valeur cherchée.
STARTINDEX : DINT index de la position de départ - 0 pour chercher dans tout le tableau.

Valeur de retour

Nombre d'occurrences trouvées.

ARFILL: replit un tableau avec une valeur

OK := ARFILL (ARR, VALUE);

ARRAY : ANY tableau à une ou plusieurs dimensions.
PATTERN : ANY valeur à copier dans tous les éléments du tableau.

Valeur de retour

TRUE si OK.

ARFIND: cherche la première occurence d'une valeur dans un tableau

INDEX := ARFIND (ARR, PATTERN, STARTINDEX);

ARRAY : ANY tableau à une dimension.
PATTERN : ANY valeur cherchée.
STARTINDEX : DINT index de la position de départ - 0 pour chercher dans tout le tableau.

Valeur de retour

Index de la première occurrence trouvée.

ARMAX: cherche la valeur maximum dans un tableau

Q := ARMAX (ARR);

ARRAY : ANY tableau à une ou plusieurs dimensions.

Valeur de retour

Valeur maximum trouvée.

ARMIN: cherche la valeur minimum dans un tableau

Q := ARMIN (ARR);

ARRAY : ANY tableau à une ou plusieurs dimensions.

Valeur de retour

Valeur minimum trouvée.

ARSORT: trie les éléments d'un tableau

OK := ARSORT (ARR);

ARRAY : ANY tableau à une dimension.

Valeur de retour

TRUE si OK.


AS-interface - fonctions

Langages de programmation - Référence -> Opérations avancées -> AS-interface - fonctions

Previous chapter Next chapter Show all Show all Hide all Hide all

Les fonctions suivantes permettent des opérations spéciales sur un réseau AS-i:

ASiReadPP lit les paramètres permanents d'un esclave AS-i.
ASiWritePP écrit les paramètres permanents d'un esclave AS-i.
ASiSendParam envoie de paramètres à un esclave AS-i.
ASiReadPI lit les paramètres courants d'une esclave AS-i.
ASiStorePI enregistre les paramètres courants comme paramètres permanents.

attention Attention

La communication AS-i peut ne pas être disponibles sur certains systèmes. Référez-voud aux instructions du constructeur pour plus de détail.

Interface

Params := ASiReadPP (Master, Slave);
bOK := ASiWritePP (Master, Slave, Params);
bOK := ASiSendParam (Master, Slave, Params);
Params := ASiReadPI (Master, Slave);
bOK := ASiStorePI (Master);

Arguments

Master : DINT Index du maître AS-i (1..N) tel que montré dans la configuration.
Slave : DINT Adresse de l'esclave AS-i (1..32 / 33..63).
Params : DINT Valeur des paramètres AS-i.
bOK : BOOL TRUE si réussi.


AVERAGE / AVERAGEL

Langages de programmation - Référence -> Opérations avancées -> AVERAGE / AVERAGEL

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Calcule la moyenne d'un signal.

Entrées

RUN : BOOL Conditionne l'exécution du bloc.
XIN : REAL Signal d'entrée (*).
N : DINT Nombre d'échantillons mémorisés - Ne peut pas excéder 128.

Sorties

XOUT : REAL Moyenne des échantillons stockés (*).

(*) AVERAGEL a des arguments de type LREAL.

Remarques

La moyenne est calculée sur les échantillons stockés. Ce nombre peut être inférieur à N quand le bloc est validé. En LD, le flux en entrée commande le bloc (RUN). Le flux en sortie garde la valeur du flux d'entrée.

L'entrée "N" n'est prise en compte que lorsque l'entrée RUN est FALSE. L'entrée "RUN" doit donc être réinitialisée après chaque changement.

Langage ST

MyAve est une instance déclarée du bloc AVERAGE.

MyAve (RUN, XIN, N);
XOUT := MyAve.XOUT;

Langage FBD

Langage LD

ENO a la même valeur que RUN.

Langage IL

(* MyAve est une instance déclarée du bloc AVERAGE *)

Op1: CAL MyAve (RUN, XIN, N)
LD MyAve.XOUT
ST XOUT

seealso See also

INTEGRAL DERIVATE LIM_ALRM HYSTER STACKINT


Fonctions CANopen

Langages de programmation - Référence -> Opérations avancées -> Fonctions CANopen

Previous chapter Next chapter Show all Show all Hide all Hide all

Un ensemble de fonctions et de blocs fonctionnels est disponible pour la gestion d'esclaves CANopen. Ces fonctions se réfèrent à la configuration maître CANopen définie dans le configurateur de bus de terrain.

Envoi de messages SYNC

La fonction suivante envoie un message SYNC:

OK := coSync (PORT);

Arguments:

OK : BOOL; (* TRUE si OK *)

Note: Vous ne pouvez pas envoyer plusieurs messages SYNC pendant le même cycle.

Envoi de messages NMT

Les fonctions suivantes envoient un message NMT à un esclave CANopen:

OK := coNmtReset (PORT, SLV); (* reset *)

OK := coNmtStart (PORT, SLV); (* start *)

OK := coNmtStop (PORT, SLV); (* stop *)

OK := coNmtEnterPreop (PORT, SLV); (* enter peroperational *)

Arguments:

OK : BOOL; (* TRUE si OK - FALSE si esclave occuppé ou non configuré *)

PORT : STRING; (* Nom du port CAN tel que défini dans la configuration CANopen *)

SLV : DINT; (* numéro d'esclave CANopen *)

Note: Vous ne pouvez pas envoyer plusieurs messages NMT au même esclave pendant le même cycle.

Lecture de paramètre (SDO) - bloc fonctionnel coReadParam

Le bloc fonctionnel coReadParam envoie un message SDO simple pour lire un paramètre d'un esclave.

Entrées:

EN : BOOL; (* le message est envoyé sur front montant de cette entrée *)

PORT : STRING; (* Nom du port CAN tel que défini dans la configuration CANopen *)

SLV : DINT; (* numéro d'esclave CANopen *)

Param : DINT; (* index du paramètre SDO *)

Sub : DINT; (* sous-index du paramètre SDO *)

TO : TIME; (* timeout pour l'échange *)

Sorties:

Ready : BOOL; (* TRUE quand le bloc est prêt - FALSE pendant l'échange *)

RC : DINT; (* compte rendu CANopen *)

VAL : DINT; (* valeur du paramètre lu dans l'esclave *)

Ecriture de paramètre (SDO) - bloc fonctionnel coWriteParam

Le bloc fonctionnel coWriteParam envoie un message SDO simple pour écrire un paramètre d'un esclave.

Entrées:

EN : BOOL; (* le message est envoyé sur front montant de cette entrée *)

PORT : STRING; (* Nom du port CAN tel que défini dans la configuration CANopen *)

SLV : DINT; (* numéro d'esclave CANopen *)

Param : DINT; (* index du paramètre SDO *)

Sub : DINT; (* sous-index du paramètre SDO *)

VAL : DINT; (* valeur du paramètre *)

LEN : DINT; (* nombre d'octets envoyés - de 1 à 4 *)

TO : TIME; (* timeout pour l'échange *)

Sorties:

Ready : BOOL; (* TRUE quand le bloc est prêt - FALSE pendant l'échange *)

RC : DINT; (* compte rendu CANopen *)

Envoie du mapping des PDOs _(séquence SDOs) - bloc fonctionnel coSendPdoMap

Le bloc fonctionnel coSendPdoMap envoie une séquence de messages SDO pour appliquer le mapping des PDOs d'un esclave tel que défini dans la configuration CANopen.

Entrées:

EN : BOOL; (* le message est envoyé sur front montant de cette entrée *)

PORT : STRING; (* Nom du port CAN tel que défini dans la configuration CANopen *)

SLV : DINT; (* numéro d'esclave CANopen *)

TO : TIME; (* timeout pour l'échange *)

Sorties:

Ready : BOOL; (* TRUE quand le bloc est prêt - FALSE pendant l'échange *)

RC : DINT; (* compte rendu CANopen *)


CanRcvMsg

Langages de programmation - Référence -> Opérations avancées -> CanRcvMsg

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Reçoit un message CANbus.

Entréess

PORT : STRING Identification du port CAN (voir remarques).

DATA : USINT[] Données CAN (renseignée en sortie) - le tableau doit avoir une dimension de 8.

Sorties

OK : BOOL TRUE si OK.

ID : DWORD ID du message CAN

LEN : DINT Longueur des données du message CAN

Remarques

Cette fonction lit le prochain message reçu depuis le dernier cycle. Seuls les messages dont les IDs ne sont pas définis dans la configuration CANbus sont reçus par ce bloc.

Le nombre de messages pouvant être reçus entre deux cycles est limité par la taille de FIFO défini dans la configuration.

L'entrée PORT identifie un port CANbus configuré:

- si vous spécifiez une chaine vide, le premier port est sélectionné

- si vous spécifiez une chaine contenant un nombre, le port correspondant est sélectionné. Par exemple, '2' signifie le second port

- vous pouvez aussi spécifier les paramètres du port tels que spécifiés dans la configuration, ex: 'CAN0'


CanSndMsg

Langages de programmation - Référence -> Opérations avancées -> CanSndMsg

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Envoie un message CANbus.

Entrées

PORT : STRING Identification du port CAN (voir remarques).

ID : DWORD ID du message CAN

LEN : DINT Longueur des données du message CAN

DATA : USINT[] Données CAN

RTR : BOOL Envoi en mode RTR

Sorties

OK : BOOL TRUE si OK

Remarques

Cette fonction envoie un message CAN non configuré. Le message sera envoyé en fin de cycle.

Le nombre de messages pouvant être envoyés entre deux cycles est limité par la taille de FIFO défini dans la configuration.

L'entrée PORT identifie un port CANbus configuré:

- si vous spécifiez une chaine vide, le premier port est sélectionné

- si vous spécifiez une chaine contenant un nombre, le port correspondant est sélectionné. Par exemple, '2' signifie le second port

- vous pouvez aussi spécifier les paramètres du port tels que spécifiés dans la configuration, ex: 'CAN0'


CycleStop

Langages de programmation - Référence -> Opérations avancées -> CycleStop

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Passe la cible en mode cycle à cycle.

Entrées

IN : BOOL Condition.

Sorties

Q : BOOL TRUE si exécuté.

Remarques

Cette fonction passe la machine virtuelle en mode Cycle à cycle. Relancer l'exécution des cycles doit être fait depuis le debugger.

La VM passe en mode cycle à cycle seulement si l'argument IN est à TRUE.

Le programme principal courant et tous ses possibles appels de sous-programmes ou UDFBs est exécuté normalement jusqu'à sa fin. Les autres programmes du cycle ne sont pas exécutés.


CurveLin

Bloc fonctionnel - Interpolation linéaire sur une courbe.

Entrées

X : REAL Coordonnée X du point à interpoler.

XAxis : REAL[] Coordonnées en X des points de l'axe.

YVal : REAL[] Coordonnées en Y des points définis sur l'axe X.

Sorties

Y : REAL Valeur en Y pour l'entrée X (interpolation)

OK : BOOL TRUE si réussi

ERR : DINT Code d'erreur en cas d'échec - 0 si OK

Remarques

Cette fonction effectue une interpolation linéaire entre les points définis pour l'axe X. Les valeurs en Y des points définis sur l'axe sont passés dans le tableau YVal.

Les valeurs de XAxis doivent être triées de la plus petite vers la plus grande. Il faut au moins deux points pour définir l'axe. Les tableaux X axis et YVal doivent avoir la même dimension.

Si X est en dehors des valeurs extrêmes définies pour l'axe, la valeur Y en sortie est bornée à la valeur correspondante et une erreur est rapportée.

La sortie ERR indique la cause de l'erreur en cas d'échec:

Code d'erreur | Signification
0 | OK
1 | Dimensions invalides pour les tableaux en entrée
2 | Les valeurs définissant l'axe X sont incorrectes
4 | L'entrée X est en dehors des valeurs définies pour l'axe


DERIVATE

Langages de programmation - Référence -> Opérations avancées -> DERIVATE

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Derivation d'un signal.

Inputs

RUN : BOOL Commande: TRUE=dérivation / FALSE=maintien.
XIN : REAL Signal d'entrée.
CYCLE : TIME Période d'échantillonnage (ne doit pas être inférieure au temps de cycle).

Sorties

XOUT : REAL Signal dérivé.

Remarques

En LD, le flux d'entrée est la commande RUN. Le flux est inchangé en sortie.

Langage ST

MyDerv est une instance déclarée du bloc DERIVATE

MyDerv (RUN, XIN, CYCLE);
XOUT := MyDerv.XOUT;

Langage FBD

Langage LD

ENO est égal à RUN.

Langage IL

MyDerv est une instance déclarée du bloc DERIVATE.

Op1: CAL MyDerv (RUN, XIN, CYCLE)
LD MyDerv.XOUT
ST XOUT

seealso See also

AVERAGE INTEGRAL LIM_ALRM HYSTER STACKINT


DNP3 Master function blocks

Langages de programmation - Référence -> Opérations avancées -> DNP3 Master function blocks

Previous chapter Next chapter Show all Show all Hide all Hide all

DNP3M_ASSIGNCL

Issue an assign class command

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3M_CMDANLG

Issue an analog command

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number
PNUM : UINT | Point number
FC : UINT | Fucntion code - must be DNP3_FC_SELECT or DNP3_FC_OPERATE or DNP3_FC_DIRECT_OP or DNP3_FC_DIRECT_OP_NOACK See values at the end of this page
VART : UINT | Object variation to use in request
QUAL : UINT | Qualifier - must be DNP3_QUAL_8BIT_INDEX or DNP3_QUAL_16BIT_INDEX See values at the end of this page
VALUE : ANY | Value to write - can be any data type

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3M_CMDANLGEX

Issue several analog command, the points number and values are stored in two arrays in their respective order

Input | Description
EN : BOOL | Activate the block, on Rising Edge
SESN : UINT | Session number
PNB : UINT | Number of commands to be sent
PNUM : UINT[] | Array of point numbers
FC : UINT | Fucntion code - must be DNP3_FC_SELECT or DNP3_FC_OPERATE or DNP3_FC_DIRECT_OP or DNP3_FC_DIRECT_OP_NOACK See values at the end of this page
VART : UINT | Object variation to use in request
QUAL : UINT | Qualifier - must be DNP3_QUAL_8BIT_INDEX or DNP3_QUAL_16BIT_INDEX See values at the end of this page
VALUE : ANY[] | Array of value to write - can be any data type

DNP3M_CMDBIN

Issue a binary command

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number
PNUM : UINT | Point number
FC : UINT | Fucntion code - must be DNP3_FC_SELECT or DNP3_FC_OPERATE or DNP3_FC_DIRECT_OP or DNP3_FC_DIRECT_OP_NOACK See values at the end of this page
CONTROL : UINT | Control code - must be DNP3_CROB_CTRL_PULSE_ON or DNP3_CROB_CTRL_PULSE_OFF or DNP3_CROB_CTRL_LATCH_ON or DNP3_CROB_CTRL_LATCH_OFF or DNP3_CROB_CTRL_CLEAR or DNP3_CROB_CTRL_PAIRED_CLOSE or DNP3_CROB_CTRL_PAIRED_TRIP See values at the end of this page
QUAL : UINT | Qualifier - must be DNP3_QUAL_8BIT_INDEX or DNP3_QUAL_16BIT_INDEX See values at the end of this page
TON : TIME | ON duration
TOFF : TIME | OFF duration

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3M_EVPOLL

Issue an event data poll

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3M_FREEZCNTR

Issue a freeze counters request

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number
QUAL : UINT | Qualifier - must be DNP3_QUAL_ALL_POINTS or DNP3_QUAL_8BIT_START_STOP or DNP3_QUAL_16BIT_START_STOP See values at the end of this page
START : UINT | Start point if qualifier is 8/16 bit start/stop
STOP : UINT | Stop point if qualifier is 8/16 bit start/top

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3M_INTPOLL

Issue an integrity data poll

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3M_READCLASS

Issue a read class request

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number
QUAL : UINT | Qualifier - must be DNP3_QUAL_ALL_POINTS or DNP3_QUAL_8BIT_LIMITED_QTY or DNP3_QUAL_16BIT_LIMITED_QTY See values at the end of this page
QTY : UINT | Quantity to request if qualifier is 8/16 bit limited quantity
CLASS0 : BOOL | TRUE to request class 0 (static data)
CLASS1 : BOOL | TRUE to request class 1 event data
CLASS2 : BOOL | TRUE to request class 2 event data
CLASS3 : BOOL | TRUE to request class 3 event data

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3M_READGROUP

Issue a read group request to the specified session

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number
GRP : UINT | Object group for read request
VART : UINT | object variation to read. The type specified by this is specific to the object group being read
QUAL : UINT | Qualifier - must be DNP3_QUAL_ALL_POINTS or DNP3_QUAL_8BIT_START_STOP or DNP3_QUAL_16BIT_START_STOP or DNP3_QUAL_8BIT_LIMITED_QTY or DNP3_QUAL_16BIT_LIMITED_QTY See values at the end of this page
START : UINT | Start point if qualifier is start/stop
STOP : UINT | Stop point if qualifier is start/stop or quantity if qualifier is limited points

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3M_READPTS

Issue an read one or more specific data points request to the specified session

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number
GRP : UINT | Object group for read request
VART : UINT | object variation to read
QUAL : UINT | Qualifier - must be DNP3_QUAL_8BIT_INDEX or DNP3_QUAL_16BIT_INDEX See values at the end of this page
ARPTS[] : UINT | Array of point numbers to read

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3M_TIMESYNC

Issue a time synchronization command

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number
MSK : UINT | Class mask (OR-combined bits)
GRP : UINT | Object group

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3M_WRITEBIN

Issue a binary output write command to the specified session

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number
QUAL : UINT | Qualifier - must be DNP3_QUAL_8BIT_START_STOP or DNP3_QUAL_16BIT_START_STOP See values at the end of this page
START : UINT | Start point index
STOP : UINT | End point index
VALUE[] : BOOL | Array of values (FALSE = off / TRUE = on)

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3M_WRITESTR

Write a string object to the specified point

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number
PNUM : UINT | Point number for the string to write
STR : STRING | String value

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

Command and status values

Below are command values and status values used by or returned by DNP3 Master function blocks. You can directly copy / paste these definitions in the "Global Defines" editor.

// Qualifier

#define DNP3_QUAL_8BIT_START_STOP 16#00

#define DNP3_QUAL_16BIT_START_STOP 16#01

#define DNP3_QUAL_ALL_POINTS 16#06

#define DNP3_QUAL_8BIT_LIMITED_QTY 16#07

#define DNP3_QUAL_16BIT_LIMITED_QTY 16#08

#define DNP3_QUAL_8BIT_INDEX 16#17

#define DNP3_QUAL_16BIT_INDEX 16#28

// Function code

#define DNP3_FC_SELECT 16#03

#define DNP3_FC_OPERATE 16#04

#define DNP3_FC_DIRECT_OP 16#05

#define DNP3_FC_DIRECT_OP_NOACK 16#06

// Values for control code of CROB

#define DNP3_CROB_CTRL_PULSE_ON 16#01 // The point is turned on for the specified onTime, turned off for the specified offTime, and left in the off state

#define DNP3_CROB_CTRL_PULSE_OFF 16#02 // The point is turned off for the specific offTime, then turned on for the specified onTime, and left in the on state

#define DNP3_CROB_CTRL_LATCH_ON 16#03 // The point is latched on

#define DNP3_CROB_CTRL_LATCH_OFF 16#04 // The point is latched off

#define DNP3_CROB_CTRL_CLEAR 16#20 // Cancel the currently running operation

#define DNP3_CROB_CTRL_PAIRED_CLOSE 16#40 // Activate Close relay

#define DNP3_CROB_CTRL_PAIRED_TRIP 16#80 // Activate Trip relay

// Response values

#define DNP3_RESP_STATUS_SUCCESS 16#00 // This indicates the request has completed successfully

#define DNP3_RESP_STATUS_INTERMEDIATE 16#01 // This indicates a response was received but the requested command is not yet complete

#define DNP3_RESP_STATUS_FAILURE 16#02 // This indicates that the transmission of the request failed

#define DNP3_RESP_STATUS_MISMATCH 16#03 // The response to a select or an execute did not echo the request

#define DNP3_RESP_STATUS_STATUSCODE 16#04 // The response to a select or an execute echoed the request, except the status code was different indicating a failure

#define DNP3_RESP_STATUS_IIN 16#05 // The response to the request had IIN bits set indicating the command failed

#define DNP3_RESP_STATUS_TIMEOUT 16#06 // This indicates that the request has timed out

#define DNP3_RESP_STATUS_CANCELED 16#07 // Request canceled by user

#define DNP3_RESP_STATUS_OTHERERR 16#ff // Command failed (ie. Variation not supported)


Allocation dynamique de mémoire

Langages de programmation - Référence -> Opérations avancées -> Allocation dynamique de mémoire

Previous chapter Next chapter Show all Show all Hide all Hide all

Les fonctions suivantes permettent l'allocation dynamique de mémoire pour stocker des tableaux de variables entières de type DINT:

ARCREATE alloue un tablea de variables DINT
ARREAD lit un élément de tableau créé par ARCREATE
ARWRITE écrit un élément de tableau créé par ARCREATE

attention Attention
  • La mémoire utilisée pour ces tableaux est directement alloué par le système d'exploitation de la cible. Le système n'assure pas que la mémoire requise est disponible.
  • L'allocation de tableaux peut rendre le système d'exploitation instable ou réduire ses performances.
  • L'allocation dynamique de mémoire peut âtre refusée (plus assez de mémoire dans la cible). Votre application doit prendre en compte les cas d'erreur.
  • L'allocation dynamique peut ne pas être disponible sur certains systèmes. Référez-vous aux instructions du constructeur pour plus de détails.

ARCREATE: alloue un tableau

OK := ARCREATE (ID, SIZE);

ID : DINT identificateur du tableau (le premier identificateur valide est 0)
SIZE : DINT nombre de variables DINT pouvant être stockées dans la tableau
OK : DINT compte-rendu

Compte-rendus

  1. OK - le tableau est créé et prêt pour des opérations de lecture et d'écriture.
  2. L'identificateur est déjà utilisé pour un autre tableau.
  3. La taille spécifiée est invalide.
  4. Pas assez de mémoire (action refusée par le système d'exploitation).

La mémoire allouée par ARCREATE est désallouée quand l'application s'arrête.

ARREAD: lit un élément de tableau

VAL := ARREAD (ID, POS);

ID : DINT identificateur du tableau.
POS : DINT index de l'élément (le premier index valide est 0).
VAL : DINT valeur de l'élément lu ou 0 si les paramètres d'entrées sont invalides.

ARWRITE: écrit un élément de tableau

OK := ARWRITE (ID, POS, IN);

ID : DINT identificateur du tableau.
POS : DINT index de l'élément (le premier index valide est 0).
IN : DINT valeur à assigner à l'élément.
OK : DINT compte-rendu.

Compte-rendus

  1. OK - l'élément a été forcé.
  2. L'identificateur spécifié est invalide (ce n'est pas un tableau alloué).
  3. L'index spécifié est invalide (hors des bornes du tableau).


EnableEvents

Langages de programmation - Référence -> Opérations avancées -> EnableEvents

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Active/désactive la production d'évènements (applications distribuées).

Entrées

EN : BOOL TRUE pour valider la production / FALSE pour la désactiver.

Sorties

ENO : BOOL Echo de l'entrée EN.

Remarques

La production est active par défaut quand l'application démarre. La première production a lieu à la fin du premier cycle. Donc pour invalider la production d'évènements dès le démarrage, vous devez appeler EnableEvents (FALSE) dans le premier cycle.

En LD, l'état de l'échelle en entrée (EN) valide la production d'évènements, et la sortie garde l'état de l'entrée. En IL, le paramètre d'entrée doit être chargé avant l'appel de la fonction.

Langage ST

ENO := EnableEvents (EN);

Langage FBD

Langage LD

Les évènements sont validés quand EN = TRUE.
ENO a la même valeur que EN.

Langage IL

Op1: LD EN
EnableEvents
ST ENO


FatalStop

Langages de programmation - Référence -> Opérations avancées -> FatalStop

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Arrête la cible en erreur fatale.

Entrées

IN : BOOL Condition.

Sorties

Q : BOOL TRUE si exécuté.

Remarques

Cette fonction arrête le cycle courant et passe la machine virtuelle en mode ERREUR. Relancer l'exécution des cycles doit être fait depuis le debugger.

La VM s'arrête seulement si l'argument IN est à TRUE. La fin du cycle en cours n'est pas exécutée.


FIFO

Langages de programmation - Référence -> Opérations avancées -> FIFO

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Gère une liste first in / first out

Entrées

PUSH : BOOL Pousse une valeur (sur front montant).
POP : BOOL Retire une valeur (sur front montant).
RST : BOOL Vide la liste.
NEXTIN : ANY Valeur à pousser.
NEXTOUT : ANY Valeur la plus ancienne - mis à jour après l'appel !
BUFFER : ANY Tableau où stocker les valeurs.

Sorties

EMPTY : BOOL TRUE si la liste est vide.
OFLO : BOOL TRUE en cas de dépassement sur une commande PUSH.
COUNT : DINT Nombre de valeurs dans la liste.
PREAD : DINT Index dans le buffer de la valeur la plus ancienne.
PWRITE : DINT Index dans le buffer de la prochaine position de PUSH.

Remarques

NEXTIN, NEXTOUT et BUFFER doivent être du même type et ne peuvent pas être du type STRING.

L'argument NEXTOUT spécifie une variable qui sera forcée après l'appel à la valeur la plus ancienne.

Les valeurs sont stockées dans le tableau BUFFER. Les données sont arrangées en buffer tourant, et ne sont jamais décalées ou remises à zéro. Seuls les pointeurs de lecture et d'écriture et les valeurs poussées sont actualisés. La taille maximum de la liste est donnée par la dimension du tableau.

Au premier appel, le bloc mémorise le tableau spécifié. Si la même instance est appelé plus tard avec un autre tableau spécifié dans l'argument BUFFER, l'appel est invalide et rien n'est fait. Les sorties indiquent une liste vide dans ce cas.

En LD, le flux d'entrée est l'argument PUSH. Le flux en sortie est l'argument EMPTY.

Langage ST

MyFIFO est une instance déclarée du bloc FIFO.

MyFIFO (PUSH, POP, RST, NEXTIN, NEXTOUT, BUFFER);
EMPTY := MyFIFO.EMPTY;
OFLO := MyFIFO.OFLO;
COUNT := MyFIFO.COUNT;
PREAD := MyFIFO.PREAD;
PWRITE := MyFIFO.PWRITE;

Langage FBD

Langage LD

Langage IL

MyFIFO est une instance déclarée du bloc FIFO.

Op1: CAL MyFIFO (PUSH, POP, RST, NEXTIN, NEXTOUT, BUFFER)
LD MyFIFO.EMPTY
ST EMPTY
LD MyFIFO.OFLO
ST OFLO
LD MyFIFO.COUNT
ST COUNT
LD MyFIFO.PREAD
ST PREAD
LD MyFIFO.PWRITE
ST PWRITE

seealso See also

LIFO


Gestion de fichiers

Langages de programmation - Référence -> Opérations avancées -> Gestion de fichiers

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les fonctions disponibles pour la lecture et l'écriture de fichiers sur le disque:

F_ROPEN ouvre un fichier en lecture.
F_WOPEN crée ou vide un fichier et l'ouvre en écriture.
F_AOPEN ouvre un fichier en mode "ajout".
F_CLOSE ferme un fichier ouvert.

F_EOF teste si la fin de fichier est rencontrée pendant une lecture.
FA_READ lit une variable de type DINT dans un fichier binaire.
FA_WRITE écrit une variable de type DINT dans un fichier binaire.
FM_READ lit une variable de type STRING dans un fichier texte.
FM_WRITE écrit une variable de type STRING dans un fichier texte.
FB_READ lit une donnée binaire dans un fichier.
FB_WRITE écrit une donnée binaire dans un fichier.
F_EXIST teste si un fichier existe.
F_GETSIZE retourne la taille d'un fichier.
F_COPY copie un fichier.
F_DELETE supprime un fichier.
F_RENAME renomme un fichier.
F_FLUSH force l'écriture sur le disque du contenu d'un fichier ouvert en écriture
F_SEEK force la position courante d'un fichier..

F_SAVERETAIN enregistre les variables RETAIN dans un fichier.
F_LOADERETAIN recharge les variables RETAIN depuis un fichier.

seealso See also

LogFileCSV Enregistrement de données dans un fichier CSV.

Chaque fichier est identifié dans une application par un nombre unique manipulé comme une valeur de type DINT. Les identificateurs de fichiers sont alloués par le système cible. Les identificateurs sont données par les fonctions d'ouverture et passés en argument à toutes les autres fonctions.

attention Attention
  • Les fichiers sont ouverts et fermés directement par le système d'exploitation sur la cible. L'ouverture de fichiers peut être dangereux pour la sécurité du système. Le nombre de fichiers ouverts en même temps peut être limité par le système.
  • L'ouverture d'un fichier peut être refusée (chemin invalide, trop de fichiers ouverts...) Votre application doit prendre en compte ces cas d'erreurs.
  • Les fonctions de gestion de fichiers peuvent ne pas être disponibles sur certaines cibles. Référez-vous aux instructions du contructeur pour plus de détails.
  • La forme des chemins dépend du système cible. Référez-vous aux instructions du constructeur.
  • Si vous utilisez un disque Flash, c'est votre responsabilité de ne pas écrre trop souvent dans les fichiers afin de ne pas détruire la Flash. Ceci s'applique particulièrement à la fonction F_SAVERETAIN.

F_ROPEN: ouvre un fichier en lecture

ID := F_ROPEN (PATH);

PATH : STRING nom du fichier - le fichier doit exister.
peut inclure un chemin selon les conventions du système cible.
ID : DINT identificateur du fichier ou 0 si le fichier ne peut être lu.

F_WOPEN: ouvre un fichier en écriture

ID := F_WOPEN (PATH);

PATH : STRING nom du fichier.
peut inclure un chemin selon les conventions du système cible.
ID : DINT identificateur du fichier ou 0 si le fichier ne peut être créé.

Si le fichier n'existe pas, il est créé. S'il existe, son contenu est effacé.

F_AOPEN: ouvre un fichier en mode "ajout"

ID := F_AOPEN (PATH);

PATH : STRING nom du fichier
peut inclure un chemin selon les conventions du système cible.
ID : DINT identificateur du fichier ou 0 si le fichier ne peut être créé.

Si le fichier n'existe pas, il est créé. S'il existe, il est ouvert en écriture en mode "ajout".

F_CLOSE: ferme un fichier ouvert

OK := F_CLOSE (ID);

ID : DINT identificateur d'un fichier ouvert.
OK : BOOL TRUE si l'opération a réussi.

F_EOF: teste la fin de fichier

OK := F_EOF (ID);

ID : DINT identificateur d'un fichier ouvert en lecture.
OK : BOOL TRUE si la fin de fichier est atteinte.

F_EOF doit être utilisé avec les fichiers ouverts par F_ROPEN

FA_READ: lit une variable DINT dans un fichier

Q := FA_READ (ID);

ID : DINT identificateur d'un fichier ouvert en lecture.
Q : DINT valeur lue ou 0 en cas d'erreur.

La valeurs lues par FA_READ doivent avoir été écrites par FA_WRITE. Les entiers sont stockés en binaire selon les conventions du système.

FA_WRITE: écrit une variable DINT dans un fichier

OK := FA_WRITE (ID, IN);

ID : DINT identificateur d'un fichier ouvert en écriture.
IN : DINT valeur à écrire.
OK : BOOL TRUE si l'opération a réussi.

Les entiers sont stockés en binaire selon les conventions du système.

FM_READ: lit une variable STRING dans un fichier

Q := FM_READ (ID);

ID : DINT identificateur d'un fichier ouvert en lecture.
Q : STRING valeur lue ou chaine vide en cas d'erreur.

Cette fonction lit une ligne dans un fichier texte. La lecture s'arrête avant le caractère de fin de ligne. La lecture s'arrête si la longueur maximale de la chaine de retour est atteinte.

FM_WRITE: écrit une variable STRING dans un fichier

OK := FM_WRITE (ID, IN);

ID : DINT identificateur d'un fichier ouvert en écriture.
IN : STRING chaine à écrire.
OK : BOOL TRUE si l'opération a réussi.

Cette fonction écrit une ligne de texte dans le fichier. Un caractère de fin de ligne est systématiquement écrit après la chaine passée en entrée.

FB_READ: lit une donnée binaire dans un fichier

OK := FB_READ (ID, V);

ID : DINT identificateur d'un fichier ouvert en lecture.
V : ANY variable à lire (ne peut pas être du type string).
OK : BOOL TRUE si l'opération a réussi.

Les variables sont lues en binaire selon les conventions du système.

FB_WRITE: écrit une donnée binaire dans un fichier

OK := FB_WRITE (ID, V);

ID : DINT identificateur d'un fichier ouvert en écriture.
V : ANY variable à écrire.
OK : BOOL TRUE si l'opération a réussi.

Les variables sont stockées en binaire selon les conventions du système.

FR_READ: lit un tablean dans un fichier

Q := FR_READ (ID, DATA, OFF, NB);

ID : DINT identificateur d'un fichier ouvert en lecture
DATA : ANY tableau de variables à lire. NE PEUT PAS ETRE STRING
OFF : DINT index du premier élément lu
NB : DINT nombre d'éléments à lire
Q : DINT nombre d'éléments lus

Les variables sont stockées en binaire selon les conventions du système.

FR_WRITE: écrit un tableau dans un fichier

Q := FR_write (ID, DATA, OFF, NB);

ID : DINT identificateur d'un fichier ouvert en écriture
DATA : ANY tableau de variables à écrire. NE PEUT PAS ETRE STRING
OFF : DINT index du premier élément à écrire
NB : DINT nombre d'éléments à écrire
Q : DINT nombre d'éléments écrits

Les variables sont stockées en binaire selon les conventions du système.

F_FLUSH: stocke sur le disque le contenu d'un fichier ouvert en écriture

OK := F_FLUSH (ID);

ID : DINT identificateur d'un fichier ouvert
OK : BOOL TRUE si réussi

F_SEEK: set the current position in an open file

OK := F_SEEK (ID, POS, ORG);

ID : DINT identificateur d'un fichier ouvert
POS : DINT position relative par rapport à l'origine spécifiée
ORG : DINT origine du déplacement:

0=début du fichier
1=position courante
2=fin du fichier

OK : BOOL TRUE si réussi

F_EXIST: teste si un fichier existe

OK := F_EXIST (PATH);

PATH : STRING nom du fichier
peut inclure un chemin selon les conventions du système cible.
OK : BOOL TRUE si le fichier existe.

F_GETSIZE: retourne la taille d'un fichier

SIZE := F_GETSIZE (PATH);

PATH : STRING nom du fichier
peut inclure un chemin selon les conventions du système cible.
SIZE : DINT Taille du fichier en octets.

F_COPY: copie un fichier

OK := F_COPY (SRC, DST);

SRC : STRING nom du fichier source
peut inclure un chemin selon les conventions du système cible.
DST : STRING nom du fichier de destination
peut inclure un chemin selon les conventions du système cible.
OK : BOOL TRUE si OK.

F_DELETE: supprime un fichier

OK := F_DELETE (PATH);

PATH : STRING nom du fichier
peut inclure un chemin selon les conventions du système cible.
OK : BOOL TRUE si OK.

F_RENAME: renomme un fichier

OK := F_RENAME (PATH, NEWNAME);

PATH : STRING nom du fichier
peut inclure un chemin selon les conventions du système cible.
NEWNAME : STRING nouveau nom du fichier.
OK : BOOL TRUE si OK.

F_SAVERETAIN: enregistre les variables RETAIN dans un fichier

OK := F_SAVERETAIN (PATH);

PATH : STRING nom du fichier
peut inclure un chemin selon les conventions du système cible.
OK : BOOL TRUE si OK.

F_LOADRETAIN: recharge les variables RETAIN depuis un fichier

OK := F_LOADRETAIN (PATH);

PATH : STRING nom du fichier
peut inclure un chemin selon les conventions du système cible.
OK : BOOL TRUE si OK.


GETSYSINFO

Langages de programmation - Référence -> Opérations avancées -> GETSYSINFO

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Retourne une information système.

Entrées

INFO : DINT Identificateur de l'information requise.

Sorties

Q : DINT Valeur de l'information spécifiée ou 0 en cas d'erreur.

Remarques

Le paramètre INFO peut prendre une des valeurs prédéfinies suivantes:

Valeur | Description
_SYSINFO_TRIGGER_MICROS | Temps de cycle programmé en micro-secondes.
_SYSINFO_TRIGGER_MS | Temps de cycle programmé en milli-secondes.
_SYSINFO_CYCLETIME_MICROS | Durée du cycle précédent en micro-secondes.
_SYSINFO_CYCLETIME_MS | Durée du cycle précédent en milli-secondes.
_SYSINFO_CYCLEMAX_MICROS | Temps de cycle maximum détécté en micro-secondes.
_SYSINFO_CYCLEMAX_MS | Temps de cycle maximum détécté en milli-secondes.
_SYSINFO_CYCLESTAMP_MS | Datation du cycle courant en milli-secondes (dépend de l'intégration).
_SYSINFO_CYCLEOVERFLOWS | Nombre de dépassements de tempsde cycle détectés.
_SYSINFO_CYCLECOUNT | Compteur de cycles.
_SYSINFO_APPVERSION | Numéro de version de l'application.
_SYSINFO_APPSTAMP | Date de compilation de l'application.
_SYSINFO_CODECRC | CRC du code de l'application.
_SYSINFO_DATACRC | CRC des symboles de l'application.
_SYSINFO_FREEHEAP | Espace disponible dans le "memory heap" (octets)
_SYSINFO_DBSIZE | Espace utilisé en RAM (octets)
_SYSINFO_ELAPSED | Secondes écoulées depuis le démarrage
_SYSINFO_CHANGE_CYCLE | Indique un cycle juste après une modification en ligne
_SYSINFO_WARMSTART | Différent de zero si les variables RETAIN ont été rechargées au démarrage
_SYSINFO_NBLOCKED | Nombre de variables verrouillées
_SYSINFO_NBBREAKPOINTS | Nombre de points d'arrêt installés

En LD, l'opération n'est exécutée que si le flux d'entrée (EN) est TRUE. Le flux est inchangé en sortie(ENO). En IL, la valeur d'entrée doit être chargée dans le résultat courant avant l'appel de la fonction.

Langage ST

Q := GETSYSINFO (INFO);

Langage FBD

Langage LD

La fonction est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD INFO
GETSYSINFO
ST Q


HYSTER

Langages de programmation - Référence -> Opérations avancées -> HYSTER

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Détection d'hystérésis.

Entrées

XIN1 : REAL Premier signal d'entrée.
XIN2 : REAL Second signal d'entrée.
EPS : REAL Hystérésis.

Sorties

Q : BOOL Hystérésis détecté: TRUE si XIN1 devient plus grand que XIN2+EPS et n'est pas encore inférieur à XIN2-EPS

Remarques

L'hystérésis est calculé sur la différence de XIN1 et XIN2. En LD, le flux d'entrée (EN) conditionne l'activation du bloc. Le flux en sortie est le résultat Q.

Langage ST

MyHyst est une instance déclarée du bloc HYSTER.

MyHyst (XIN1, XIN2, EPS);
Q := MyHyst.Q;

Langage FBD

Langage LD

Le bloc n'est activé que si EN = TRUE.

Langage IL

MyHyst est une instance déclarée du bloc HYSTER.

Op1: CAL MyHyst (XIN1, XIN2, EPS)
LD MyHyst.Q
ST Q

seealso See also

AVERAGE INTEGRAL DERIVATE LIM_ALRM STACKINT


HYSTERacc

Langages de programmation - Référence -> Opérations avancées -> HYSTERacc

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc Fonctionnel - Hystérésis avec accumulation

Entrées

XIN : REAL Signal d'entrée.
EPS : REAL Hystérésis.
FACTOR : REAL Voir notes.

Sorties

XOUT : REAL Signal filtré

Remarques

Ce bloc calcule l'erreur entre XIN et sa dernière valeur mise à jour (celle visible en sortie). La sortie est mise à jour:

- si l'erreur est plus grande que ou égale à EPS

- ou si l'integrale de l'erreur multipliée par FACTOR est plus grande que ou égale à EPS

L'integrale est calculée depuis la dernière mise à jour.

Langage ST

MyHyst est une instance déclarée d u bloc HYSTER.

MyHyst (rIn, rEps, rFactor);
rOUT := MyHyst.XOUT;


INTEGRAL

Langages de programmation - Référence -> Opérations avancées -> INTEGRAL

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Calcule l'intégrale d'un signal.

Entrées

RUN : BOOL Commande: TRUE=intégration / FALSE=maintien.
R1 : BOOL Reset.
XIN : REAL Signal d'entrée.
X0 : REAL Valeur initiale.
CYCLE : TIME Période d'échantillonnage (ne peut pas être inférieure au temps de cycle).

Sorties

Q : DINT Mode de fonctionnement = NOT (R1).
XOUT : REAL Signale de sortie (intégrale).

Remarques

En LD, le flux en entrée est la commande RUN. Le flux en sortie est la sortie Q.

Langage ST

MyIntg est une instance déclarée du bloc INTEGRAL.

MyIntg (RUN, R1, XIN, X0, CYCLE);
Q := MyIntg.Q;
XOUT := MyIntg.XOUT;

Language FBD

Language LD

Language IL

MyIntg est une instance déclarée du bloc INTEGRAL.

Op1: CAL MyIntg (RUN, R1, XIN, X0, CYCLE)
LD MyIntg.Q
ST Q
LD MyIntg.XOUT
ST XOUT

seealso See also

AVERAGE DERIVATE LIM_ALRM HYSTER STACKINT


LIFO

Langages de programmation - Référence -> Opérations avancées -> LIFO

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Gère une pile last in / first out.

Entrées

PUSH : BOOL Pousse une valeur (sur front montant)

POP : BOOL Retire une valeur (sur front montant)

RST : BOOL Vide la pile

NEXTIN : ANY Valeur à pousser

NEXTOUT : ANY Valeur en sommet de pile - mis à jour après l'appel !

BUFFER : ANY Tableau où stocker les valeurs

Sorties

EMPTY : BOOL TRUE si la pile est vide.
OFLO : BOOL TRUE en cas de dépassement sur une commande PUSH.

COUNT : DINT Nombre de valeurs dans la pile.

PREAD : DINT Index dans le buffer du sommet de pile.

PWRITE : DINT Index dans le buffer de la prochaine position de PUSH.

Remarques

NEXTIN, NEXTOUT et BUFFER doivent être du même type et ne peuvent pas être du type STRING.

L'argument NEXTOUT spécifie une variable qui sera forcée après l'appel à la valeur du sommet de pile.

Les valeurs sont stockées dans le tableau BUFFER. Les données ne sont jamais décalées ou remises à zéro. Seuls les pointeurs de lecture et d'écriture et les valeurs poussées sont actualisés. La taille maximum de la pile est donnée par la dimension du tableau.

Au premier appel, le bloc mémorise le tableau spécifié. Si la même instance est appelé plus tard avec un autre tableau spécifié dans l'argument BUFFER, l'appel est invalide et rien n'est fait. Les sorties indiquent une pile vide dans ce cas.

En LD, le flux d'entrée est l'argument PUSH. Le flux en sortie est l'argument EMPTY.

Langage ST

MyLIFO est une instance déclarée du bloc LIFO.

MyLIFO (PUSH, POP, RST, NEXTIN, NEXTOUT, BUFFER);
EMPTY := MyLIFO.EMPTY;
OFLO := MyLIFO.OFLO;
COUNT := MyLIFO.COUNT;
PREAD := MyLIFO.PREAD;
PWRITE := MyLIFO.PWRITE;

Langage FBD

Langage LD

Langage IL

MyLIFO est une instance déclarée du bloc LIFO.

Op1: CAL MyLIFO (PUSH, POP, RST, NEXTIN, NEXTOUT, BUFFER)
LD MyLIFO.EMPTY
ST EMPTY
LD MyLIFO.OFLO
ST OFLO
LD MyLIFO.COUNT
ST COUNT
LD MyLIFO.PREAD
ST PREAD
LD MyLIFO.PWRITE
ST PWRITE

seealso See also

FIFO


LIM_ALRM

Langages de programmation - Référence -> Opérations avancées -> LIM_ALRM

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Détection de limites haute et basse avec hystérésis.

Entrées

H : REAL Valeur limite haute.
X : REAL Signal d'entrée.
L : REAL Valeur limite basse.
EPS : REAL Valeur de l'hystérésis.

Sorties

QH : BOOL TRUE si la limite haute est dépassée.
Q : BOOL TRUE si une limite est dépassé (QH ou QL).
QL : BOOL TRUE si la limite basse est dépassée.

Remarques

En LD, Le flux d'entrée (EN) conditionne l'exécution du bloc, et le flux en sortie est QH.

Langage ST

MyAlarm est une instance déclarée du bloc LIM_ALRM.

MyAlarm (H, X, L, EPS);
QH := MyAlarm.QH;
Q := MyAlarm.Q;
QL := MyAlarm.QL;

Langage FBD

Langage FB

Le bloc n'est pas appelé si EN = FALSE.

Langage IL

MyAlarm est une instance déclarée du bloc LIM_ALRM.

Op1: CAL MyAlarm (H, X, L, EPS)
LD MyAlarm.QH
ST QH
LD MyAlarm.Q
ST Q
LD MyAlarm.QL
ST QL

seealso See also

ALARM_M ALARM_A


LogFileCSV

Langages de programmation - Référence -> Opérations avancées -> LogFileCSV

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Enregistre une liste de variables dans un fichier au format CSV.

(voir la description de la fonction SetCsvOpt au bas de cette page)

Entrées

LOG : BOOL Les valeurs des variables sont enregistrées sur un front montant de cette entrée.
RST : BOOL Le fichier est vidé sur un front montant de cette entrée.
LIST : DINT Identificateur de la liste de variables (utilisez la fonction VLID).
PATH : STRING Nom du fichier CSV.

Sorties

Q : BOOL TRUE si la dernière opération demandée a été exécutée sans erreur.
ERR : DINT Rapport d'erreur si la fonction a échoué (0 = OK).

attention Attention
  • Les fichiers sont ouverts et fermés directement par le système d'exploitation sur la cible. L'ouverture de fichiers peut être dangereux pour la sécurité du système. Le nombre de fichiers ouverts en même temps peut être limité par le système.
  • L'ouverture d'un fichier peut être refusée (chemin invalide, trop de fichiers ouverts...) Votre application doit prendre en compte ces cas d'erreurs.
  • Les fonctions de gestion de fichiers peuvent ne pas être disponibles sur certaines cibles. Référez-vous aux instructions du contructeur pour plus de détails.
  • La forme des chemins dépend du système cible. Référez-vous aux instructions du constructeur.

Remarques

Ce bloc enregistre les valeurs d'une liste de variables dans un fichier au format CSV. A chaque front montant de l'entrée LOG, une ligne supplémentaire est ajoutée au fichier. Il y a une colonne pour chaque variable de la liste.

Les listes de variables sont créées avec l'atelier ou un éditeur de texte. Utilisez la fonction VLID pour trouver l'identificateur de la liste de variables.

Sur un front montant de l'entrée RST, le fichier est vidé.

La fonction "SetCsvOpt" décrite ci-après vous permet de personnaliser le format du fichier CSV.

Quand une commande LOG ou RST est requise, la sortie Q passe à TRUE si l'opération a réussi. En cas d'erreur, un rapport est donnée dans la sortie ERR. Voici les valeurs d'erreur possibles:

Valeur | Description
1 | Impossible de vider le fichier sur une commande RST.
2 | Impossible d'ouvrir le fichier pour une commande LOG.
3 | Les listes embarquées ne sont pas supportées par la cible.
4 | Identificateur de liste invalide.
5 | Erreur d'écriture dans le fichier.

Combiné avec les blocs de gestion de l'horloge, ce bloc procure un moyen simple de générer des enregistrements périodiques. L'exemple suivant montre une liste et un programme qui enregistre les valeurs chaque jour à 14h23:

Example Example

Exemple

MyLOG est une instance déclarée du bloc LogFileCSV.

MyLOG (LOG, RST, LIST, PATH);
Q := MyLOG.Q;
ERR := MyLog.ERR;

La fonction SetCsvOpt

Par défaut, le bloc LogFileCsv utilise le point-virgule (";") comme séparateur et le point (".") comme point décimal. La fonction SetCsvOpt permet de changer ces caractères.

Syntaxe:

OK := SetCsvOpt (strSeparator, strDecimal);

Paramètres:

StrSeparator (STRING) : chaine de 1 caractère à utiliser comme séparateur

strDecimal (STRING) : chaine de 1 caractère à utiliser comme point décimal

OK (BOOL) : TRUE si réussi. FALSE si les entrées ne sont pas des chaines de 1 caractère.

seealso See also

VLID


MBMasterRTU

Langages de programmation - Référence -> Opérations avancées -> MBMasterRTU

Previous chapter Next chapter Show all Show all Hide all Hide all

Function Block - MODBUS-RTU Master.

This function block manages a master on MODBUS-RTU over a serial line and enables the management of various MODBUS functions. Function blocks MBMASTERTCP and MBMASTERRTU give an alternative to the MODBUS configurator. You do not need to configurate anything in the fieldbus configurator to use these blocks.

Inputs

CNX : BOOL

A rising edge on this input to open the specified COM port. If the port is successfully open, the Ready output will be set to TRUE. If the opening fails, an error is reported by the Error output.

BREFRESH : BOOL

A rising edge on this input starts a new exchange such as specified by other paramerters. A exchange can be started only if the Ready output is TRUE.

SLAVE : DINT

Slave number (or unit number) of the MODBUS TCP server.

FCODE : DINT

MODBUS function code. The following functions are supported:

1 = Read coil bits

2 = Read input bits

3 = Read holding registers

4 = Read input registers

5 = Write one coil bit

6 = Write one holding registers

7 = Read exception status

15 = Write N coil bits

16 = Write N holding registers

17 = Report slave ID

23 = Read/write holding registers

ADDR : DINT

Address of the first address to read. Used only for functions 1, 2, 3, 4 and 23.

NBR : DINT

Number of items to read. Used only for functions 1, 2, 3, 4 and 23.

ADDW : DINT

Address of the first address to write. Used only for functions 5, 6, 15, 16 and 23.

NBW : DINT

Number of items to write. Used only for functions 5, 6, 15, 16 and 23. Must be 1 for functions 5 and 6.

DATA : ARRAY OF ...

Buffer containing the values read or written. Must be set on input before calling functions 5, 6, 15, 16 and 23. Filled on for other functions and also for function 23. The dimension of the array must be greater than or equal to the specified number of items. The data type of the array depends on the function:

BOOL for functions 1, 2, 5 and 15

INT or UINT or WORD for functions 3, 4, 6, 16 and 23

SINT or USINT or BYTE for functions 7 and 17.

TIMEOUT : TIME

Communication timeout for the complete exchange.

PORT : STRING

Specification of the COM port (e.g. 'COM1:9600,N,8,1'). Refer to OEM's instruction for more information about COM port specification.

Outputs

READY : BOOL

This output is TRUE when the connection is correctly established and no pending exchange is currently running.

OK : BOOL

This output is set to TRUE at the end of a successful exchange. It is reset to FALSE when a new exchange is started.

ERROR : DINT

Error report. Can be one of the following values:

1 = invalid function code
2 = bad address
3 = bad value
4 = server failed
5 = server acknoledge
6 = server is busy
8 = data parity error
10 = gateway bad path
11 = gateway target failed
128 = timeout on exchange
129 = bad CRC
130 = frame error or bad COM port
200 = invalid slave number
201 = invalid MODBUS address
202 = invalid number of items or DATA array too small
203 = invalid type for DATA array
204 = invalid numner of items

Note: some devices may answer some other specific error reports


MBMasterTCP

Langages de programmation - Référence -> Opérations avancées -> MBMasterTCP

Previous chapter Next chapter Show all Show all Hide all Hide all

Function Block - MODBUS-TCP Master (client).

This function block manages a client connection on MODBUS-TCP and enables the management of various MODBUS functions. Function blocks MBMASTERTCP and MBMASTERRTU give an alternative to the MODBUS configurator. You do not need to configurate anything in the fieldbus configurator to use these blocks.

Inputs

CNX : BOOL

A rising edge on this input establishes the connection with the specified server. Later on, if the connection is successful, the Ready output will be set to TRUE. If the connection fails, an error is reported by the Error output. After the connection is lost (typically when unplugging the Ethernet cable) the application is responsible for rising again the Cnx input in order to attempt a new connection.

BREFRESH : BOOL

A rising edge on this input starts a new exchange such as specified by other paramerters. A exchange can be started only if the Ready output is TRUE.

SLAVE : DINT

Slave number (or unit number) of the MODBUS TCP server.

FCODE : DINT

MODBUS function code. The following functions are supported:

1 = Read coil bits

2 = Read input bits

3 = Read holding registers

4 = Read input registers

5 = Write one coil bit

6 = Write one holding registers

7 = Read exception status

15 = Write N coil bits

16 = Write N holding registers

17 = Report slave ID

23 = Read/write holding registers

ADDR : DINT

Address of the first address to read. Used only for functions 1, 2, 3, 4 and 23.

NBR : DINT

Number of items to read. Used only for functions 1, 2, 3, 4 and 23.

ADDW : DINT

Address of the first address to write. Used only for functions 5, 6, 15, 16 and 23.

NBW : DINT

Number of items to write. Used only for functions 5, 6, 15, 16 and 23. Must be 1 for functions 5 and 6.

DATA : ARRAY OF ...

Buffer containing the values read or written. Must be set on input before calling functions 5, 6, 15, 16 and 23. Filled on for other functions and also for function 23. The dimension of the array must be greater than or equal to the specified number of items. The data type of the array depends on the function:

BOOL for functions 1, 2, 5 and 15

INT or UINT or WORD for functions 3, 4, 6, 16 and 23

SINT or USINT or BYTE for functions 7 and 17.

TIMEOUT : TIME

Communication timeout for the complete exchange.

IP : STRING

IP address of the MODBUS server.

PORT : DINT

TCP port number of the server (usually 502).

Outputs

READY : BOOL

This output is TRUE when the connection is correctly established and no pending exchange is currently running.

OK : BOOL

This output is set to TRUE at the end of a successful exchange. It is reset to FALSE when a new exchange is started.

ERROR : DINT

Error report. Can be one of the following values:

1 = invalid function code
2 = bad address
3 = bad value
4 = server failed
5 = server acknoledge
6 = server is busy
8 = data parity error
10 = gateway bad path
11 = gateway target failed
128 = timeout on exchange
129 = bad CRC
130 = ETHERNET/TCP error
200 = invalid slave number
201 = invalid MODBUS address
202 = invalid number of items or DATA array too small
203 = invalid type for DATA array
204 = invalid numner of items

Note: some devices may answer some other specific error reports


MBSlaveRTU / MBSlaveRTUex / MBSlaveRTUexD

Langages de programmation - Référence -> Opérations avancées -> MBSlaveRTU / MBSlaveRTUex / MBSlaveRTUexD

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Protocole MODBUS RTU Esclave sur liaison série.

Entrées

IN : BOOL Validation: le port est ouvert quand cette entrée vaut TRUE.
PORT : STRING Configuration du port (ex:'COM1:9600,N,8,1') .
SLV : DINT Numéro d'esclave MODBUS.
SrvID : STRING MBSlaveRTUex seulement: ID du sereur dans la configuration.

Sorties

Q : BOOL TRUE si le port est correctement ouvert.

Sorties (MBSlaveRTUexD)

Nrec : DINT Nombre de requêtes valides reçues adressées à cet esclave
Nx : DINT Nombre de requêtes valides reçues adressées à cet esclave ou à tout autre esclave
Nerr : DINT Nombre de requêtes traitées ayant résulté en une erreur
Nok : DINT Nombre de requêtes traitées sans erreur
Nbr : DINT Nombre de requêtes de diffusion (broadcast) reçues

Remarques

Quand il est activé, ce bloc gère le protocole MODBUS RTU sur le port spécifié. La configuration de la carte d'adressage MODBUS est faite à l'aide du configurateur MODBUS, dans le configurateur de bus de terrain.

Il peut y avoir plusieurs instances du bloc MBSlaveRTU actives en même temps sur de ports différents. D'autres connexions MODBUS Esclave (Serveur TCP, UDP) peuvent également être acives.

Le numéro d'esclave entré dans la configuration MODBUS est ignoré quand le protocole est géré par ce bloc. A la place, l'entrée SLV spécifie le numéro d'esclave MODBUS.

Avec MBSlaveRTUex, vous pouvez spécifier l'ID du serveur dans la configuration MODBUS esclave. Si vous spécifiez une chaine vide, le premier serveur est utilisé. MBSlaveRTU travaille toujours avec le premier serveur configuré.

Langage ST

MySlave est une instance déclarée du bloc MBSlaveRTU.

MySlave (IN, PORT, SLV);
Q := MySlave.Q;

Langage FBD

Langage LD

Langage IL

MySlave est une instance déclarée du bloc MBSlaveRTU.

Op1: CAL MySlave (IN, PORT, SLV)
LD MySlave.Q
ST Q
LD MyCounter.CV
ST CV

seealso See also

MBSlaveUDP MODBUS Konfiguration


MBSlaveUDP / MBSlaveUDPex

Langages de programmation - Référence -> Opérations avancées -> MBSlaveUDP / MBSlaveUDPex

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Protocol MODBUS UDP Esclave sur ETHERNET.

Entrées

IN : BOOL Validation: le port est ouvert quand cette entrée vaut TRUE.
PORT : DINT Numéro de port ETHERNET.
SLV : DINT Numéro d'esclave MODBUS.
RTU : BOOL Protocole: TRUE = MODBUS RTU / FALSE = Open MODBUS.
SrvID : STRING MBSlaveUDPex seulement: ID du sereur dans la configuration.

Sorties

Q : BOOL TRUE si le port est correctement ouvert.

Remarques

Quand il est activé, ce bloc gère le protocole MODBUS UDP sur le port ETHERNET spécifié. La configuration de la carte d'adressage MODBUS est faite à l'aide du configurateur MODBUS, dans le configurateur de bus de terrain.

Il peut y avoir plusieurs instances du bloc MBSlaveUDP actives en même temps sur de ports différents. D'autres connexions MODBUS Esclave (Serveur TCP, série) peuvent également être acives.

Le numéro d'esclave entré dans la configuration MODBUS est ignoré quand le protocole est géré par ce bloc. A la place, l'entrée SLV spécifie le numéro d'esclave MODBUS. Si SLV vaut 0, alors le numéro par déafut spécifié dans la configuration est utilisé.

Avec MBSlaveUDPex, vous pouvez spécifier l'ID du serveur dans la configuration MODBUS esclave. Si vous spécifiez une chaine vide, le premier serveur est utilisé. MBSlaveUDP travaille toujours avec le premier serveur configuré.

Langage ST

MySlave est une instance déclarée du bloc MBSlaveUDP.

MySlave (IN, PORT, SLV, RTU);
Q := MySlave.Q;

Langage FBD

Langage LD

Langage IL

MySlave est une instance déclarée du bloc MBSlaveUDP.

Op1: CAL MySlave (IN, PORT, SLV, RTU)
LD MySlave.Q
ST Q
LD MyCounter.CV
ST CV

seealso See also

MBSlaveRTU MODBUS Konfiguration


PID

Langages de programmation - Référence -> Opérations avancées -> PID

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Régulateur PID.

Entrées | Type de données | Description
AUTO | BOOL | TRUE = automatique - FALSE = manuel.
PV | REAL | Valeur mesurée.
SP | REAL | Valeur de consigne.
Xout_Manu | REAL | Valeur à appliquer en sortie en mode manuel.
KP | REAL | Gain.
TI | REAL | Temps d'intégration.
TD | REAL | Temps de dérivation.
TS | TIME | Période d'échantillonage.
XMIN | REAL | Valeur minimum autorisée pour la sortie.
XMAX | REAL | Valeur maximum autorisée pour la sortie.
I_SEL | BOOL | Si cette entrée est FALSE, la valeur d'intégration est ignorée.
INT_HOLD | BOOL | Si cette entrée est TRUE, la valeur d'intégration est figée.
I_ITL_ON | BOOL | Si cette entrée est TRUE, la valeur d'intégration est forcée à I_ITLVAL.
I_ITLVAL | REAL | Valeur de réinitialisation de l'intégration si I_ITL_ON est TRUE.
DEADB_ERR | REAL | Hysteresis sur PV. PV est considérée comme inchangé si elle est plus grande que . (PVprec - DEADBAND_W) et plus petite que (PRprec + DEADBAND_W).
FFD | REAL | Perturbation de la sortie.

Sorties | Type de données | Description
Xout | REAL | Commande de sortie.
ER | REAL | Dernière erreur calculée.
Xout_P | REAL | Dernière valeur proportionelle calculée.
Xout_I | REAL | Dernière valeur intégrale calculée.
Xout_D | REAL | Dernière valeur dérivée calculée.
Xout_HLM | BOOL | TRUE si la sortie est saturée à XMIN.
Xout_LLM | BOOL | TRUE si la sortie est saturée à XMAX.

Diagramme

Remarques

Il est important que la période d'échantillonnage TS soit bien plus grande que le temps de cycle.

En LD, le flux de sortie est la copie du flux en entrée, qui représente le paramètre AUTO.

Langage ST

MyPID est une instance déclarée du bloc PID.

MyPID (AUTO, PV, SP, XOUT_MANU, KP, TI, TD, TS, XMIN, XMAX,
I_SEL, I_ITL_ON, I_ITLVAL, DEADB_ERR, FFD);
XOUT := MyPID.XOUT;
ER := MyPID.ER;
XOUT_P := MyPID.XOUT_P;
XOUT_I := MyPID.XOUT_I;
XOUT_D := MyPID.XOUT_D;
XOUT_HLM := MyPID.XOUT_HLM;
XOUT_LLM := MyPID.XOUT_LLM;

Langage FBD

Langage LD

ENO has the same state as the input rung.

Langage IL

MyPID est une instance déclarée du bloc PID.

Op1: CAL MyPID (AUTO, PV, SP, XOUT_MANU, KP, TI, TD, TS,
XMIN, XMAX, I_SEL, I_ITL_ON, I_ITLVAL,
DEADB_ERR, FFD)
LD MyPID.XOUT
ST XOUT
LD MyPID.ER
ST ER
LD MyPID.XOUT_P
ST XOUT_P
LD MyPID.XOUT_I
ST XOUT_I
LD MyPID.XOUT_D
ST XOUT_D
LD MyPID.XOUT_HLM
ST XOUT_HLM
LD MyPID.XOUT_LLM
ST XOUT_LLM


printf

Langages de programmation - Référence -> Opérations avancées -> printf

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Affiche un message de trace.

Entrées

FMT : STRING Message de trace.
ARG1..ARG4 : DINT Arguments numériques à inclure dans la trace.

Sorties

Q : BOOL Compte-rendu d'exécution.

Remarques

Cette fonction est identique à la fonction "printf" du langage "C", avec jusqu'à 4 arguments numériques (entiers). Vous pouvez utiliser les pragmas suivants dans le message FMT pour représenter les arguments selon leur ordre de gauche à droite:

%ld valeur signée en décimal
%lu valeur non signée en décimal
%lx valeur en hexadécimal

Le message est affiché dans la fenêtre de trace avec les autres messages d'exécution. La trace est disponible également pendant la simulation.

attention Attention

Il se peut que votre système cible ne suporte pas les fonctions de trace. Référez-vous aux instructions du constructeur.

Example Example

(* i1, i2, i3, i4 sont des variables de type DINT *)

i1 := 1;
i2 := 2;
i3 := 3;
i4 := 4;
printf ('i1=%ld; i2=%ld; i3=%ld; i4=%ld', i1, i2, i3, i4);

Message affiché:

i1=1; i2=2; i3=3; i4=4;


RAMP

Langages de programmation - Référence -> Opérations avancées -> RAMP

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Limite la rampe ascendante ou descendante d'un signal.

Entrées

IN : REAL Signal d'entrée.
ASC : REAL Ascendance maximum pour la base de temps spécifiée.
DSC : REAL Descendance maximum pour la base de temps spécifiée.
TM : TIME Base de temps.
RST : BOOL Ré-initialisation.

Sorties

OUT : REAL Signal de sortie (rampe).

Chronogramme

Remarques

Les paramètres de sont pas constament remis à jour. Ils sont pris en compte seulement :

  • Au premier appel du bloc.
  • Quand l'entrée RST est à TRUE.

Dans ces deux situations, la sortie est forcée à la valeur de l'entrée IN.

ASC et DSC donne l'écart maximum ascendant ou descendant pendant la base de temps TB.
Ces deux paramètres doivent être des valeurs positives.

En LD, l'opération n'est exécutée que si le flux en entrée est TRUE. Le flux est inchangé en sortie.

Langage ST

MyRamp est une instance déclarée du bloc RAMP.

MyRamp (IN, ASC, DSC, TM, RST);
OUT := MyRamp.OUT;

Langage FBD

Langage LD

Le bloc n'est appelé que si EN = TRUE.

Langage IL

MyRamp est une instance déclarée du bloc RAMP.

Op1: CAL MyRamp (IN, ASC, DSC, TM, RST)
LD MyBlinker.OUT
ST OUT


Horloge temps réel

Langages de programmation - Référence -> Opérations avancées -> Horloge temps réel

Previous chapter Next chapter Show all Show all Hide all Hide all

La fonction suivante permet de lire l'horloge temps réel du système:

DTCurDate Rend la datation (date) courante.
DTCurTime Rend la datation (heure) courante.
DTCurDateTime Rend la datation (date + heure) courante.
DTDay Extrait le jour d'une date.
DTMonth Extrait le mois d'une date.
DTYear Extrait l'année d'une date.
DTSec Extrait les secondes d'une heure.
DTMin Extrait les minutes d'une heure.
DTHour Extrait les secondes d'une heure.
DTMs Extrait les milli-secondes d'une heure.

Les fonctions suivantes formattent la date et l'heure courantes dans une variable STRING:

DAY_TIME Format prédéfini.
DTFORMAT Format personnalisé.

Les fonctions suivantes permettent de planifier des opérations:

DTAt Impulsion à une date et une heure données.
DTEvery Signal d'impulsions à période longue.

attention Attention

L'horloge temps-réel peut ne pas être disponible sur certains système. Référez-vous aux instructions du constructeur.

DTCURDATE: rend la datation courante (date)

Q := DTCurDate ();

Q : DINT valeur numérique identifiant la date courante.

DTCURTIME: rend la datation courante (heure)

Q := DTCurTime ();

Q : DINT valeur numérique identifiant l'heure courante.

DTCURDATETIME: rend la date et l'heure courantes (bloc fonctionnel)

Inst_DTCurDateTime (bLocal);

bLocal : BOOL TRUE = heure locale / FALSE = heure GMT.

.Year : DINT Sortie: année

.Month : DINT Output: mois

.Day : DINT Sortie: jour du mois

.Hour : DINT Sortie: heure courante: heures

.Min : DINT Sortie: heure courante: minutes

.Sec : DINT Sortie: heure courante: secondes

.MSec : DINT Sortie: heure courante: milli-secondes

.TmOfDay : TIME Sortie: heure du jour (depuis minuit)

.DST : BOOL Sortie: TRUE si l'heure d'été est active

DTYEAR: extrait the year d'une datation (date)

Q := DTYear (iDate);

IDATE : DINT valeur numérique identifiant une date.
Q : DINT année de la date (ex: 2004).

DTMONTH: extrait the month d'une datation (date)

Q := DTMonth (iDate);

IDATE : DINT valeur numérique identifiant une date.
Q : DINT mois de la date (1..12).

DTDAY: extrait the day of the month d'une datation (date)

Q := DTDay (iDate);

IDATE : DINT valeur numérique identifiant une date.
Q : DINT jour dans le mois de la date (1..31).

DTHOUR: extrait the hours d'une datation (heure)

Q := DTHour (iTime);

ITIME : DINT valeur numérique identifiant une heure.
Q : DINT Heures (0..23).

DTMIN: extrait the minutes d'une datation (heure)

Q := DTMin (iTime);

ITIME : DINT valeur numérique identifiant une heure.
Q : DINT Minutes (0..59).

DTSEC: extrait the seconds d'une datation (heure)

Q := DTSec (iTime);

ITIME : DINT valeur numérique identifiant une heure.
Q : DINT Secondes (0..59).

DTMS: extrait the milliseconds d'une datation (heure)

Q := DTMs (iTime);

ITIME : DINT valeur numérique identifiant une heure.
Q : DINT Milli-secondes (0..999).

Dans cette section

DAY_TIME

DTFORMAT

DTAT

DTEVERY


DAY_TIME

Langages de programmation - Référence -> Opérations avancées -> Horloge temps réel -> DAY_TIME

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Formatte la date et l'heure courante dans une variable STRING.

Entrées

SEL : DINT Sélection du format.

Sorties

Q : STRING Date et heure formattées.

attention Attention

L'horloge temps-réel peut ne pas être disponible sur certains système. Référez-vous aux instructions du constructeur.

Remarques

Les valeurs possibles pour SEL sont:

Valeur | Description
1 | Heure Courante au format: 'HH:MM:SS'
2 | Jour de la semaine
0 (défaut) | Date courante au format 'AAAA/MM/JJ'

En LD, le flux d'entrée (EN) conditionne l'opération, et le flux est inchangé en sortie.

Langage ST

Q := DAY_TIME (SEL);

Langage FBD

Langage LD

La fonction est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD SEL
DAY_TIME
ST Q

seealso See also

DTFORMAT


DTFORMAT

Langages de programmation - Référence -> Opérations avancées -> Horloge temps réel -> DTFORMAT

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Formatte l'heure et la date courantes avec un format personnalisé.

Entrées

FMT : STRING Chaîne de spécification du format.

Sorties

Q : STRING Heure et date formattées.

attention Attention

L'horloge temps-réel peut ne pas être disponible sur certains système. Référez-vous aux instructions du constructeur.

Remarques

L'entrée FMT définit le format. Elle peut contenir n'importe quel caractère. Certains marqueurs commençant par le caractère '%' indiquent une information de date ou d'heure:

%Y Année avec le siècle (ex 2006)
%y Année sans le siècle (ex 06)
%m Mois (1..12)
%d Jour du mois (1..31)
%H Heures (0..23)
%M Minutes (0..59)
%S Secondes (0..59)

Example Example

(* Disons que nous sommes le 4 Juillet 2006 à 18:45:20 *)

Q := DTFORMAT ('Date: %Y/%m/%d - %H:%M:%S');

(* Q vaut: 'Date: 2006/07/04 - 18:45:20 *)

Langage ST

Q := DTFORMAT (FMT);

Langage FBD

Langage LD

La fonction est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD FMT
DTFORMAT
ST Q

seealso See also

DAY_TIME


DTAT

Langages de programmation - Référence -> Opérations avancées -> Horloge temps réel -> DTAT

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Génère une impulsion à la date et l'heure spécifiées.

Entrées

YEAR : DINT Année (e.g. 2006).
MONTH : DINT Mois (1 = Janvier).
DAY : DINT Jour du mois (1 à 31).
TMOFDAY : TIME Heure.
RST : BOOL Commande de réinitialisation.

Sorties

QAT : BOOL Signal impulsionnel.
QPAST : BOOL TRUE si la date et l'heure sont passées.

attention Attention

L'horloge temps-réel peut ne pas être disponible sur certains système. Référez-vous aux instructions du constructeur.

Remarques

Les paramètres de sont pas constament remis à jour. Ils sont pris en compte seulement :

  • Au premier appel du bloc.
  • Quand l'entrée RST est à TRUE.

Dans ces deux situations, la sortie est forcée à la valeur de l'entrée IN.

La première fois que le bloc est appelé avec RST=FALSE et que la date et l'heure spécifiées sont passées, lasortie QPAST passe à TRUE, et la sortie QAT est passée à TRUE pour un cycle (impulsion).

Les unités les plus grandes sont ignorées si égales à 0. Par exemple, si les arguments sont "year=0, month=0, day = 3, tmofday=t#10h" alors le bloc se déclenchera le prochain 3 du mois à 10h.

En LD, le bloc n'est activé que si le flux en entrées est TRUE.

Langage ST

MyDTAT est une instance déclarée du bloc DTAT.

MyDTAT (YEAR, MONTH, DAY, TMOFDAY, RST);
QAT := MyDTAT.QAT;
QPAST := MyDTATA.QPAST;

Langage FBD

Langage LD

Activé seulement si EN = TRUE.

Langage IL

MyDTAT est une instance déclarée du bloc DTAT.

Op1: CAL MyDTAT (YEAR, MONTH, DAY, TMOFDAY, RST)
LD MyDTAT.QAT
ST QAT
LD MyDTATA.QPAST
ST QPAST

seealso See also

DTEVERY Horloge temps réel


DTEVERY

Langages de programmation - Référence -> Opérations avancées -> Horloge temps réel -> DTEVERY

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Signal d'impulsions à période longue.

Entrées

RUN : BOOL Commande de validation.
DAYS : DINT Période : nombre de jours.
TM : TIME Reste de la période (si pas multiple de 24h).

Sorties

Q : BOOL Signal d'impulsions.

Remarques

Ce bloc permet la génération d'impulsions avec une période plus grande que 24h. La période est:
DAYS * 24h + TM

Par exemple, spécifier DAYS=1 et TM=6h signifie une période de 30 heures.

Langage ST

MyDTEVERY est une instance déclarée du bloc DTEVERY.

MyDTEVERY (RUN, DAYS, TM);
Q := MyDTEVERY.Q;

Langage FBD

Langage LD

Langage IL

MyDTEVERY est une instance déclarée du bloc DTEVERY.

Op1: CAL MyDTEVERY (RUN, DAYS, TM)
LD MyDTEVERY.Q
ST Q

seealso See also

DTAT Horloge temps réel


SerializeIn

Langages de programmation - Référence -> Opérations avancées -> SerializeIn

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Extrait la valeur d'une variable d'une trame binaire.

Entrées

FRAME : USINT Buffer source - doit être un tableau.
DATA : ANY(*) Variable de destination (où copier la valeur extraite).
POS : DINT Position dans le buffer source.
BIGENDIAN : BOOL TRUE si la trame est encodée en "Big Endian".

(*) DATA ne peut pas être de type STRING.

Sorties

NEXTPOS : DINT Position dans le buffer source après la donnée extraite.
0 en cas d'erreur (position ou taille de buffer invalide).

Remarques

Cette fonction est généralement utilisée pour extraire des données d'une trame de communication codée en binaire.

En LD, l'opération n'est exécutée que si le flux en entrée (EN) est TRUE. Le flux en sortie (ENO) est inchangé. Cette fonction n'est pas disponible en IL.

L'entrée FRAME doit être compatible avec la position et la taille de la donnée extraite. Si la valeur ne peut pas être extraite correctement, la fonction retourne 0.

L'entrée DATA doit être connectée directement à une variable, et ne peut pas être une expression constante ou complexe. Cette variable sera forcée avec la valeur extraite.

La fonction extrait le nombre d'octets suivants de la trame:

1 octet pour les variables de type BOOL, SINT, USINT ou BYTE
2 octets pour les variables de type INT, UINT ou WORD
4 octets pour les variables de type DINT, UDINT, DWORD ou REAL
8 octet pour les variables de type LINT ou LREAL

Cette fonction ne peut pas sérialiser des variables de type STRING.

La fonction retourne la position dans le buffer après la donnée extraite. Ainsi la position retournée peut être utilisée comme position pour la prochaine sérialisation.

Langage ST

Q := SERIALIZEIN (FRAME, DATA, POS, BIGENDIAN);

Langage FBD

Langage LD

La fonction n'est exécutée que si EN = TRUE.
ENO est égal à EN.

Langage IL

Non disponible.

seealso See also

SERIALIZEOUT


SerializeOut

Langages de programmation - Référence -> Opérations avancées -> SerializeOut

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Copie la valeur d'une variable dans une trame binaire.

Entrées

FRAME : USINT Buffer de destination - doit être un tableau.
DATA : ANY(*) Variable source (valeur à copier).
POS : DINT Position dans le buffer de destination.
BIGENDIAN : BOOL TRUE si la trame est encodée en "Big Endian".

(*) DATA ne peut pas être de type STRING.

Sorties

NEXTPOS : DINT Position dans le buffer de destination après la donnée copiée.
0 en cas d'erreur (position ou taille de buffer invalide).

Remarques

Cette fonction est généralement utilisée pour construire une trame de communication codée en binaire.

En LD, l'opération n'est exécutée que si le flux en entrée (EN) est TRUE. Le flux en sortie (ENO) est inchangé. Cette fonction n'est pas disponible en IL.

Le tableau FRAME doit être assez grand pour recevoir la valeur en fonction de la position spécifiée. Si la valeur ne peut pas être copiée correctement, la fonction retourne 0.

La fonction copie le nombre d'octets suivants dans la trame:

1 octet pour les variables de type BOOL, SINT, USINT ou BYTE
2 octets pour les variables de type INT, UINT ou WORD
4 octets pour les variables de type DINT, UDINT, DWORD ou REAL
8 octet pour les variables de type LINT ou LREAL

Cette fonction ne peut pas sérialiser des variables de type STRING.

La fonction retourne la position dans le buffer après la donnée copiée. Ainsi la position retournée peut être utilisée comme position pour la prochaine sérialisation.

Langage ST

Q := SERIALIZEOUT (FRAME, DATA, POS, BIGENDIAN);

Langage FBD

Langage LD

La fonction n'est exécutée que si EN = TRUE.
ENO est égal à EN.

Langage IL

Non disponible.

seealso See also

SERIALIZEIN


SerGetString

Langages de programmation - Référence -> Opérations avancées -> SerGetString

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Extrait une STRING d'un trame binaire.

Entrées

FRAME : USINT Buffer source - doit être un tableau.
DST : STRING Variable de destination à extraire.
POS : DINT Position dans le buffer.
MAXLEN : DINT Spécifie une longueur fixe.
EOS : BOOL Spécifie une chaine terminée par zéro.
HEAD : BOOL Spécifie une chaine précédée par sa longueur.

Sorties

NEXTPOS : DINT Position dans le buffer après la chaine extraite.
0 en cas d'erreur (position ou taille debuffer invalide).

Remarques

Cette fonction est utilisée pour extraire une chaine d'une trame binaire.

En LD, l'opération n'est exécutée que si le flux en entrée (EN) est TRUE. Le flux en sortie (ENO) est inchangé. Cette fonction n'est pas disponible en IL.

L'entrée FRAME doit être compatible avec la position et la taille de la donnée extraite. Si la valeur ne peut pas être extraite correctement, la fonction retourne 0.

L'entrée DATA doit être connectée directement à une variable, et ne peut pas être une expression constante ou complexe. Cette variable sera forcée avec la valeur extraite.

La fonction copie les octets suivants de la trame:

MAXLEN | EOS | HEAD | Description
<> 0 | any | any | La string est stoquée sur une taille fixe spécifiée par MAXLEN. Si la string est plus petite, elle est complétée par des octets nuls. Si elle est plus grande, elle est tronquée.
= 0 | TRUE | any | La string est stoquée avec sa taille effective est terminée par un caractère nul.
= 0 | FALSE | TRUE | La string est stoquée avec sa taille effective et précédée par sa longueur sur un octet.
=0 | FALSE | FALSE | Invalide.

La fonction retourne la position dans le buffer après la donnée extraite. Ainsi la position retournée peut être utilisée comme position pour la prochaine sérialisation.

Langage ST

Q := SerGetString (FRAME, DSR, POS, MAXLEN, EOS, HEAD);

Langage FBD

Langage LD

The function is executed only if EN is TRUE.
ENO keeps the same value as EN.

Langage IL

Non disponible.


SerPutString

Langages de programmation - Référence -> Opérations avancées -> SerPutString

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Copie une STRING dans une trame binaire.

Entrées

FRAME : USINT Buffer de destination - doit être un tableau.
DST : STRING Variable source à copier.
POS : DINT Position dans le buffer.
MAXLEN : DINT Spécifie une longueur fixe.
EOS : BOOL Spécifie une chaine terminée par zéro.
HEAD : BOOL Spécifie une chaine précédée par sa longueur.

Sorties

NEXTPOS : DINT Position dans le buffer après la chaine copiée.
0 en cas d'erreur (position ou taille de tableau invalide).

Remarques

Cette fonction est utilisée pour stoquer une chaine dans une trame binaire.

En LD, l'opération n'est exécutée que si le flux en entrée (EN) est TRUE. Le flux en sortie (ENO) est inchangé. Cette fonction n'est pas disponible en IL.

L'entrée FRAME doit être compatible avec la position et la taille de la donnée. Si la valeur ne peut pas être copiée correctement, la fonction retourne 0.

La fonction copie les octets suivants dans la trame:

MAXLEN | EOS | HEAD | Description
<> 0 | any | any | La string est stoquée sur une taille fixe spécifiée par MAXLEN. Si la string est plus petite, elle est complétée par des octets nuls. Si elle est plus grande, elle est tronquée.
= 0 | TRUE | any | La string est stoquée avec sa taille effective est terminée par un caractère nul.
= 0 | FALSE | TRUE | La string est stoquée avec sa taille effective et précédée par sa longueur sur un octet.
=0 | FALSE | FALSE | Invalide.

La fonction retourne la position dans le buffer après la donnée copiée. Ainsi la position retournée peut être utilisée comme position pour la prochaine sérialisation.

Langage ST

Q := SerPutString (FRAME, DSR, POS, MAXLEN, EOS, HEAD);

Langage FBD

Langage LD

La fonction n'est exécutée que si EN = TRUE.
ENO a la même valeur que EN.

Langage

Non disponible.


SERIO

Langages de programmation - Référence -> Opérations avancées -> SERIO

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Communication en liaison série.

Entrées

RUN : BOOL Valide la comunication (ouvre le port).
SND : BOOL TRUE si des caractères doivent être envoyés.
CONF : STRING Configuration pour le port de communication.
DATASND : STRING Caractères à envoyer.

Sorties

OPEN : BOOL TRUE si le port de comunication est ouvert.
RCV : BOOL TRUE si des caractères ont été reçus.
ERR : BOOL TRUE si une erreur a été détectée pendant l'émission.
DATARCV : STRING Caractères reçus.

Remarques

L'entrée RUN n'inclut pas de détection de front. Le bloc essaie d'ouvrir le port à chaque appel si RUN est TRUE et si le port n'est pas déjà ouvert. L'entrée CONF contient le nom et les paramètres du port. Référez-vous aux instructions du constructeur pour plus de détails.

L'entrée SND n'inclut pas de détection de front. Les caractères sont émis à chaque appel si SND est TRUE et si DATASND n'est pas vide.

La variable DATARCV est écrasée à chaque appel avec les caracères reçus (s'il y en a eu). Votre application doit analyser ou stocker les caractères reçus immédiatement après l'appel au bloc SERIO.

SERIO est disponible pendant la simulation. Dans ce cas, l'entrée CONF définit le port de communication selon la syntaxe de la commande MODE. Par exemple:

'COM1:9600,N,8,1'

Le bloc SERIO peut ne pas être supporté par certaines cibles. Référez-vous aux instructions du constructeur pour plus d'information.

Langage ST

MySer est une instance déclarée du bloc SERIO.

MySer (RUN, SND, CONF, DATASND);
OPEN := MySer.OPEN;
RCV := MySer.RCV;
ERR := MySer.ERR;
DATARCV := MySer.DATARCV;

Langage FBD

Langage LD

Langage IL

MySer est une instance déclarée du bloc SERIO.

Op1: CAL MySer (RUN, SND, CONF, DATASND)
LD MySer.OPEN
ST OPEN
LD MySer.RCV
ST RCV
LD MySer.ERR
ST ERR
LD MySer.DATARCV
ST DATARCV


SERIO_B

Langages de programmation - Référence -> Opérations avancées -> SERIO_B

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Communication série - utilise des tableaux d'octets.

Entrées

RUN : BOOL Valide la communication (ouvre le port).
CONF : STRING Configuration du port de communication.
DATASND : USINT Données à envoyer - doit être un tableau.
IXSND : DINT Index du premier octet à envoyer dans le tableau DATASND.
MAXSND : DINT Nombre d'octets à envoyer - voir remarques.
DATARCV : USINT Tableau où copier les octets reçus.
IXRCV : DINT Index dans le tableau DATASND où copier le premier octet reçu.
MAXRCV : DINT Nombre maximum d'octets à recevoir.

Sorties

OPEN : BOOL TRUE si le port de communication est ouvert.
NSND : DINT Nombre d'octets envoyés.
NRCV : DINT Nombre d'octets reçus.

Remarques

L'entrée RUN n'inclut pas de détection de front. Le bloc essaie d'ouvrir le port à chaque appel si RUN est TRUE et si le port n'est pas déjà ouvert. L'entrée CONF contient le nom et les paramètres du port. Référez-vous aux instructions du constructeur pour plus de détails.

A chaque appel du bloc SERIO_B, les opérations suivantes sont effectuées:

- essayer d'envoyer MAXSND octets du tableau DATASND, à patrir de l'index IXSND. La sortie NSND contient le nomvre d'octets effectivement émis. Ce nombre peut être inférieur à MAXSND si les buffers système sont pleins.

- stocker les octets reçus dans le tableau DATARCV à partir de l'index IXRCV à la limite de MAXRCV octets copiés. La sortie NRCV contient le nombre exact d'octets reçus et copiés.

SERIO_B travaille de façon asynchrone. L'envoi et la réception des caractères est géré en tâche de fond par les drivers du système.


SigID

Langages de programmation - Référence -> Opérations avancées -> SigID

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Retourne l'identificateur d'une ressource "Signal".

Entrées

SIGNAL : STRING Nom de la ressource signal - doit être une constante!
COL : STRING Nom de la colonne dans la ressource - doit être une constante!

Sorties

ID : DINT ID du signal - à passer aux autres blocs.

Remarques

Certains blocs ont comme entrée une ressource signal. Pour ces blocs, le signal est matérialisé par un identificateur numérique. Cette fonction vous permet de retrouver l'identificateur d'une ressource signal.

Langage ST

ID := SigID ('MySignal', 'FirstColumn');

Langage FD

Langage LD

Langage IL

Op1: LD 'MySignal'
SigID 'FirstColumn'
ST ID

seealso See also

SigScale SigPlay Signal resources


SigPlay

Langages de programmation - Référence -> Opérations avancées -> SigPlay

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Génère un signal analogique créé dans une ressource.

Entrées

IN : BOOL Commande d'activateion.
ID : DINT ID de la ressource signal, doné par la fonction SigID.
RST : BOOL Commande de réinitialisation.
TM : TIME Temps minimum entre deux mises à jour de la sortie.

Sortie

Q : BOOL TRUE si le signal est terminé.
OUT : REAL Signal généré.
ET : TIME Temps écoulé.

Remarques

L'entrée ID est l'identificateur de la ressource signal. Utilisez la fonction SigID pour connaître cette valeur.

L'entrée IN est utilisée comme une commande Play / Pause pour générer le signal. Le signal n'est pas réinitialisé quand IN passe à FALSE. Vous devez utiliser l'entrée RST pour réinitialiser le signal et forcer la sortie OUT à 0.

L'entrée TM spécifie le temps minimum entre deux mises à jour du signal de sortie. Ce paramètre est ignoré s'il est inférieur au temps de cycle.

Ce bloc intègre son propre temporisateur. La fonction SigScale vous permet de générer le signal en utilisant un temporisateur spécifique.

Langage ST

MySig est une instance déclarée du bloc SIGPLAY.

MySig (II, ID, RST, TM);
Q := MySig.Q;
OUT := MySig.OUT;
ET := MySig.ET;

Langage FBD

Langage LD

Langage IL

MySig est une instance déclarée du bloc SIGPLAY.

Op1: CAL MySig (II, ID, RST, TM)
LD MySig.Q
ST Q
LD MySig.OUT
ST OUT
LD MySig.ET
ST ET

seealso See also

SigScale SigID Signal resources


SigScale

Langages de programmation - Référence -> Opérations avancées -> SigScale

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Trouve un point dans une ressource "Signal".

Entrées

ID : DINT ID de la ressource signal, doné par la fonction SigID.
IN : TIME Abcisse (temps) du point voulu dans la ressource signal.

Sorties

Q : REAL Ordonnée (valeur) du point dans la ressource signal.

Remarques

L'entrée ID est l'identificateur de la ressource signal. Utilisez la fonction SigID pour connaître cette valeur.

Cette fonction convertit une valeur de temps en valeur analogique, selon la correspondance définie par le signal spécifié. Cette fonction peut être utilisèe à la place du bloc SigPlay pour cadencer le signal à l'aide d'un temporisateur spécifique.

Langage ST

Q := SigScale (ID, IN);

Langage FBD

Langage LD

Langage IL

Op1: LD IN
SigScale ID
ST Q

seealso See also

SigPlay SigID Signal resources


STACKINT

Langages de programmation - Référence -> Opérations avancées -> STACKINT

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Gère une pile d'entiers DINT.

Entrées

PUSH : BOOL Commande: sur passage de FALSE à TRUE, pousse IN sur la pile.
POP : BOOL Commande: sur passage de FALSE à TRUE, retire l'élément en sommet de pile.
R1 : BOOL Reset: à TRUE, la pile est vidée, et sa taille forcée à N.
IN : DINT Valeur à pousser sur front montant de PUSH.
N : DINT Taille de la pile - ne peut pas excéder 128.

Sorties

EMPTY : BOOL TRUE si la pile est vide.
OFLO : BOOL TRUE si la pile est pleine.
OUT : DINT Valeur de l'entier en sommet de pile.

Remarques

Les commandes Push et Pop ne sont exécutées que sur front montant des entrées PUSH et POP. En LD, le flux d'entrée est la commande PUSH. Le flux en sortie est le paramètre EMPTY.

La taille spécifiée (N) est prise en compte quand l'éntrée R1 (reset) est TRUE.

Langage ST

MyStack est une instance déclarée du bloc STACKINT.

MyStack (PUSH, POP, R1, IN, N);
EMPTY := MyStack.EMPTY;
OFLO := MyStack.OFLO;
OUT := MyStack.OUT;

Langage FBD

Langage LD

Langage IL

MyStack est une instance déclarée du bloc STACKINT:

Op1: CAL MyStack (PUSH, POP, R1, IN, N)
LD MyStack.EMPTY
ST EMPTY
LD MyStack.OFLO
ST OFLO
LD MyStack.OUT
ST OUT

seealso See also

AVERAGE INTEGRAL DERIVATE LIM_ALRM HYSTER


SurfLin

Langages de programmation - Référence -> Opérations avancées -> SurfLin

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Interpolation linéaire sur une surface.

Entrées

X : REAL Coordonnée X du point à interpoler

Y : REAL Coordonnée Y du point à interpoler

XAxis : REAL[] Coordonnées des points de l'axe X

YAxis : REAL[] Coordonnées des points de l'axe Y

ZVal : REAL[,] Coordonnées Z des points définis par les axes

Sorties

Z : REAL Coordonnée Z du point défini par X,Y (interpolation)

OK : BOOL TRUE si réussi

ERR : DINT Code d'erreur - 0 si OK

Remarques

Cette fonction effectue une interpolation linéaire de surface entre les points définis par les axes XAxis et YAxis. La sortie Z est une interpolation des valeurs en Z entre les quatres points définis par les axes X et Y entourant ce point.

Les dimensions du tableau ZVal doivent être comprises comme: ZVal [ iX , iY ]

Les valeurs des axes X et Y doivent être triées de la plus petite vers la plus grande. Il faut au moins deux points pour chaque axe. ZVal doit correspondre aux dimensions de XAxis et YAxis. Par exemple:

XAxis : ARRAY [0..2] of REAL;

YAxis : ARRAY [0.3] of REAL;

ZVal : ARRAY [0..2,0..3] of REAL;

Si le point en entrée est en dehors des valeurs limites définies par XAxis et YAxis, la sortie Z est bornée à la valeur correspondante et une erreur est rapportée.

La sortie ERR donne le code d'erreur en cas d'échec:

Code d'erreur | Signification
0 | OK
1 | Dimensions invalides pour les tableaux d'entrée
2 | Points invalides dans l'axe X
3 | Invalid points for the Y axisPoints invalides dans l'axe Y
4 | Le point défini par X,Y est en dehors des limites des axes


Fonctions de communication TCP-IP

Langages de programmation - Référence -> Opérations avancées -> Fonctions de communication TCP-IP

Previous chapter Next chapter Show all Show all Hide all Hide all

Les fonctions suivantes sous permettent de gérer des "sockets" TCP-IP pour réaliser des applications cliente ou serveur sur ETHERNET:

tcpListen Crèe une socket serveur.
tcpAccept Accepte une connexion cliente.
tcpConnect Crèe une socket cliente et la connecte à un serveur.
tcpIsConnected Teste si une socket client est connectée.
tcpClose Ferme une socket.
tcpSend Envoi de caractères.
tcpReceive Réception de caractères.
tcpIsValid Teste si une socket est valide.

Chaque socket est identifiée par un identificateur unique stockéed dans une valeur de type DINT.

attention Attention
  • Bien que l'atelier procure une interface simplifiée, vous devez être familier avec la programmation de sockets telle qu'elle peut être effectuée dans d'autres langages tels que le "C".
  • La gestion de sockets n'est pas disponible sur certains systèmes cible. Référez-vous aux instructione de votre construteur pour plus d'information.

tcpListen: crée une nouvelle socket serveur

SOCK := tcpListen (PORT, MAXCNX);

PORT : DINT Numéro de port TCP à associer à la socket.
MAXCNX : DINT Nombre maximum de connexion clientes pouvant être acceptées.
SOCK : DINT ID de la nouvelle socket serveur.

Cette fonction crèe une socket et effectue les opérations bind et listen en utilisant les parapètres TCP par défaut. Il vous faudra appeler la fonction tcpClose pour fermer la socket retournée par cette fonction.

tcpAccept: accepte une nouvelle connexion cliente

SOCK := tcpAccept (LSOCK);

LSOCK : DINT ID de la socket serveur retournée par tcpListen.
SOCK : DINT ID d'une nouvelle connexion acceptée, ou identificateur invalide si rien.

Cette fonction effectue un accept en utilisant les paramètres TCP par défaut. Vous devrez appeler la fonction tcpClose pour fermer la socket répondue par cette fonction.

tcpConnect: create a client socket and connect it to a server

SOCK := tcpConnect (ADDRESS, PORT);

ADDRESS : STRING Adresse IP du serveur.
PORT : DINT Port TCP désiré sur le serveur.
SOCK : DINT ID de la socket cliente.

Cette fonction crée une socket et effectue un connect en utilisant les paramètres TCP par défaut et l'adresse et le port spécifiés. Vous devrez appeler la fonction tcpClose pour fermer la socket retournée par cette fonction.

attention Attention

Il est possible que cette fonction retourne un ID valide bien que la conexion ne soit pas encore effectuée. Après avoir appelé cette fonction, vous devez appeler la fonction tcpIsConnected pour savoir si la connexion est établie.

tcpIsConnected: teste si une socket cliente est connectée

OK := tcpIsConnected (SOCK);

SOCK : DINT ID d'une socket cliente.
OK : BOOL TRUE si la connexion est établie.

attention Attention

It est possible que la socket devienne invalide après un appel à cette fonction, en cas d'une erreur de connection. Vous devez appeler la fonction tcpIsValid après chaque appel à cette fonction. Si la socket n'est plus valide, vous devez la fermer en appelant tcpClose.

tcpClose: ferme une socket

OK := tcpClose (SOCK);

SOCK : DINT ID d'une socket.
OK : BOOL TRUE si OK.

Vous êtes responsable de fermer chaque socket créée par les fonctions tcpListen, tcpAccept et tcpConnect, même si elles sont devenues invalides.

tcpSend: envoi de caractères

NBSENT := tcpSend (SOCK, NBCHR, DATA);

SOCK : DINT ID d'une socket.
NBCHAR : DINT Nombre de caractères à envoyer.
DATA : STRING String contenant les caractères à envoyer.
NBSENT : DINT Nombre de caractères effectivement envoyés.

Il est possible que le nombre de caractères effectivement envoyés soit plus petit que le nombre spécifié. Dans ce cas, vous devrez rappeler cette fonction au cycle suivant pour envoyer les caractères restant.

attention Attention

It est possible que la socket devienne invalide après un appel à cette fonction, en cas d'une erreur de connection. Vous devez appeler la fonction tcpIsValid après chaque appel à cette fonction. Si la socket n'est plus valide, vous devez la fermer en appelant tcpClose.

tcpReceive: réception de caractères

NBRCV := tcpReceive (SOCK, MAXCHR, DATA);

SOCK : DINT ID d'une socket.
MAXCHR : DINT Nombre maximum de caractères désiré.
DATA : STRING String où stocker les caractères reçus.
NBRCV : DINT Nombre de caractères effectivement reçus.

Il est possible que le nombre de caractères effectivement reçus soit plus petit que le nombre spécifié. Dans ce cas, vous devrez rappeler cette fonction au cycle suivant pour recevoir les caractères restant.

attention Attention

It est possible que la socket devienne invalide après un appel à cette fonction, en cas d'une erreur de connection. Vous devez appeler la fonction tcpIsValid après chaque appel à cette fonction. Si la socket n'est plus valide, vous devez la fermer en appelant tcpClose.

tcpIsValid: teste si une socket est valide

OK := tcpIsValid (SOCK);

SOCK : DINT ID d'une socket.
OK : BOOL TRUE la socket spécifiée est encore valide.


Manipulation de buffers de texte

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte

Previous chapter Next chapter Show all Show all Hide all Hide all

Les variables STRING sont limitées à 255 caractères. Voici un jeu de fonctions et de blocs fonctionnels permettant de manipuler des buffers de texte de taille non limitée. Ces buffers de texte sont alloués ou ré-alloués dynamiquement.

attention Attention
  • Les fonctions de manipulation des buffers de texte nécessitent que l'allocation de mémoire dynamique soit validée dans les options du projets. Depuis les paramètres du projet, pressez le bouton "Avancé" et allez dans la page "Memoire". Vous pouvez ici configurer l'allocation de mémoire dynamique.
  • Il doit y avoir une instance du bloc TxbManager déclaré dans l'application.
  • L'application est responsable de l'allocation et de la libération des buffers. Une mauvaise gestion des buffers peut entrainer des pertes de mémoire.

L'application est responsable de libérer les buffers alloués. Toutefois, l'ensemble des buffers alloués est automatiquement libéré quand l'application s'arrête.

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.

Dans cette section

Gestion de la mémoire / Drivers

Allocation / échange avec des fichiers

Echange de données

Lecture séquentielle

Ecriture séquentielle

Conversions UNICODE


Gestion de la mémoire / Drivers

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Gestion de la mémoire / Drivers

Previous chapter Next chapter Show all Show all Hide all Hide all

Dans cette section

TxbManager

TxbLastError


TxbManager

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Gestion de la mémoire / Drivers -> TxbManager

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbManager

Description

Ce bloc fonctionnel gère la mémoire utilisée pour les buffers de texte. Il prend en charge la libération de la mémoire quand l'application s'arrête, et peut être utilisé pour tracer les éventuelles pertes de mémoire.

attention Attention

Il doit y avoir une instance et une seule de ce bloc déclarée dans l'application. Les autres fonctions Txb... ne peuvent être utilisée qu'à cette condition.

Sorties | Description
bOK : BOOL | TRUE si le gestionnaire de mémoire est correctement initialisé.
nBuffers : DINT | Nombre de buffers alloués.

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


TxbLastError

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Gestion de la mémoire / Drivers -> TxbLastError

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbLastError

Description

Toutes les fonctions Txb... retourne une information simple, généralement un compte-rendu booléen. Cette fonction retourne une description détaillée de l'erreur survenue lors du dernier appel.

Sorties | Description
iErr : DINT | Erreur détectée lors du dernier appel: 0 = OK autre = erreur (voir ci-dessous)

Voici les codes d'erreur possible:

Code | Description
1 2 3 4 5 6 7 8 9 | Instance invalide de TXBManager - il ne doit y avoir qu'une instance. Gestionnaire de mémoire déjà ouvert - il ne doit y avoir qu'une instance de TxbManager. Gestionnaire de mémoire non initialisé - aucune instance de TxbManager déclarée. Identificateur invalide. Texte tronqué pendant la copie. Lecture de fichier impossible. Écriture de fichier impossible. Type de donnée non supporté. Trop de buffers alloués.

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


Allocation / échange avec des fichiers

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Allocation / échange avec des fichiers

Previous chapter Next chapter Show all Show all Hide all Hide all

Dans cette section

TxbNew

TxbNewString

TxbFree

TxbReadFile

TxbWriteFile


TxbNew

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Allocation / échange avec des fichiers -> TxbNew

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbNew

Description

Cette fonction crée un nouveau buffer de texte vide. L'application est responsable de libérer la mémoire en appelant la fontion TxbFree().

Sorties | Description
hTxb : DINT | Identificateur du nouveau buffer de texte.

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


TxbNewString

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Allocation / échange avec des fichiers -> TxbNewString

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbNewString

Description

Cette fonction crée un nouveau buffer de texte initialisé avec la valeur de la variable STRING spécifiée. L'application est responsable de libérer la mémoire en appelant la fontion TxbFree().

Entrée | Description
szText : STRING | Contenu initial du buffer

Sortie | Description
hTxb : DINT | Identificateur du nouveau buffer de texte

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


TxbFree

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Allocation / échange avec des fichiers -> TxbFree

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbFree

Description

Cette fonction détruit un buffer et libère la mémoire allouée pour le buffer.

Entrée | Description
hTxb : DINT | Identificateur du buffer de texte

Sortie | Description
bOK : BOOL | TRUE si OK

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


TxbReadFile

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Allocation / échange avec des fichiers -> TxbReadFile

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbReadFile

Description

Cette fonction crée un nouveau buffer et le remplit avec le contenu d'un fichier. L'application est responsable de libérer la mémoire en appelant la fontion TxbFree().

Entrée | Description
szPath : STRING | Chemin complet du fichier à lire

Sortie | Description
hTxb : DINT | Identificateur du nouveau buffer de texte

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


TxbWriteFile

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Allocation / échange avec des fichiers -> TxbWriteFile

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbWriteFile

Description

Cette fonction enregistre le contenu d'un buffer dans un fichier. Le buffer rest alloué en mémoire.

Entrée | Description
hTxb : DINT | Identificateur du buffer de texte
szPath : STRING | Chemin complet du fichier à écrire

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


Echange de données

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Echange de données

Previous chapter Next chapter Show all Show all Hide all Hide all

Dans cette section

TxbGetLength

TxbGetData

TxbGetString

TxbSetData

TxbSetString

TxbClear

TxbCopy


TxbGetLength

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Echange de données -> TxbGetLength

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbGetLength

Description

Cette fonction rend la longueur courante d'un buffer.

Entrée | Description
hTxb : DINT | Identificateur du buffer de texte

Sortie | Description
len : DINT | Nombre de caractères dans le buffer

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


TxbGetData

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Echange de données -> TxbGetData

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbGetData

Description

Cette fonction copie le contenu d'un buffer dans un tableau de caractères.

Entrée | Description
hTxb : DINT | Identificateur du buffer de texte
arData : SINT[] | Tableau de caractères

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


TxbGetString

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Echange de données -> TxbGetString

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbGetString

Description

Cette fonction copie le contenu d'un buffer dans une variable STRING. Le texte est tronqué si la longueur maximale déclarée pour la STRING est insuffisante.

Entrée | Description
hTxb : DINT | Identificateur du buffer de texte

Sortie | Description
szText : STRING | Chaine contenant les caractères du buffer

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


TxbSetData

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Echange de données -> TxbSetData

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbSetData

Description

Cette fonction copie un tableau de caractères dans un buffer. Tous les éléments du tableau sont copiés.

Entrée | Description
hTxb : DINT | Identificateur du buffer de texte
arData : SINT[] | Tableau de caractères à copierof characters to copy

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


TxbSetString

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Echange de données -> TxbSetString

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbSetString

Description

Cette fonction copie le contenu d'une variable STRING dans un buffer.

Entrée | Description
hTxb : DINT | Identificateur du buffer de texte
szText : STRING | Chaine à copier

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


TxbClear

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Echange de données -> TxbClear

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbClear

Description

Cette fonction vide un buffer de texte.

Entrée | Description
hTxb : DINT | Identificateur du buffer de texte

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


TxbCopy

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Echange de données -> TxbCopy

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbCopy

Description

Cette fonction copie le contenu du buffer hTxb dans le buffer hTxbDst.

Entrée | Description
hTxbDst : DINT | Identificateur du buffer de texte de destination
hTxb : DINT | Identificateur du buffer de texte source

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


Lecture séquentielle

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Lecture séquentielle

Previous chapter Next chapter Show all Show all Hide all Hide all

Dans cette section

TxbRewind

TxbGetLine


TxbRewind

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Lecture séquentielle -> TxbRewind

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbRewind

Description

Cette fonction réinitialise le système de lecture séquentiel en début de buffer.

Entrée | Description
hTxb : DINT | Identificateur du buffer de texte

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


TxbGetLine

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Lecture séquentielle -> TxbGetLine

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbGetLine

Description

Cette fonction lit séquentiellement une ligne dans un buffer à la position courante. Les caractères de fin de ligne ne sont pas copiés dans la variable de sortie.

Entrée | Description
hTxb : DINT | Handle of the text buffer.
szText : STRING | Chaine contenant la ligne lue

Sortie | Decription
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


Ecriture séquentielle

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Ecriture séquentielle

Previous chapter Next chapter Show all Show all Hide all Hide all

Dans cette section

TxbAppend

TxbAppendLine

TxbAppendEol

TxbAppendTxb


TxbAppend

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Ecriture séquentielle -> TxbAppend

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbAppend

Description

Cette fonction formatte la valeur d'une variable et l'ajoute à la fin d'un buffer. La variable spécifiée peut être de n''importe quel type.

Entrée | Description
hTxb : DINT | Identificateur du buffer de texte
data : ANY | Variable

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


TxbAppendLine

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Ecriture séquentielle -> TxbAppendLine

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbAppendLine

Description

Cette fonction ajoute le contenu de la STRING spécifiée à la fin d'un buffer de texte, et ajoute les caractères de fin de ligne.

Entrée | Description
hTxb : DINT | Identificateur du buffer de texte
szText : STRING | Chaine de caractères à ajouter au buffer

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


TxbAppendEol

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Ecriture séquentielle -> TxbAppendEol

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbAppendEol

Description

Cette fonction ajoute les caractères de fin de ligne à la fin d'un buffer.

Entrée | Description
hTxb : DINT | Identificateur du buffer de texte

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


TxbAppendTxb

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Ecriture séquentielle -> TxbAppendTxb

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbAppendTxb

Description

Cette fonction ajoute le contenu du buffer hTxb à la fin du buffer hTxbDst.

Entrée | Description
hTxbDst : DINT | Identificateur du buffer de texte à compléter
hTxb : DINT | Identificateur du buffer de texte à ajouter

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


Conversions UNICODE

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Conversions UNICODE

Previous chapter Next chapter Show all Show all Hide all Hide all

Dans cette section

TxbAnsiToUtf8

TxbUtf8ToAnsi


TxbAnsiToUtf8

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Conversions UNICODE -> TxbAnsiToUtf8

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbAnsiToUtf8

Description

Cette fonction convertir le contenu d'un buffer du format ANSI en format UNICODE UTF8.

attention Attention
  • Cette fonction peut consommer du temps et de la mémoire pour de grands buffer.
  • Les conversions UNICODE ne sont pas disponibles sur tous les systèmes

Entrée | Description
hTxb : DINT | Identificateur du buffer de texte

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


TxbUtf8ToAnsi

Langages de programmation - Référence -> Opérations avancées -> Manipulation de buffers de texte -> Conversions UNICODE -> TxbUtf8ToAnsi

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbUtf8ToAnsi

Description

Cette fonction convertir le contenu d'un buffer du format UNICODE UTF8 en format ANSI.

attention Attention
  • Cette fonction peut consommer du temps et de la mémoire pour de grands buffer.
  • Les conversions UNICODE ne sont pas disponibles sur tous les systèmes

Entrée | Description
hTxb : DINT | Identificateur du buffer de texte

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

TxbManager: Gestionnaire de mémoire des buffers de texte.

TxbLastError: Renvoie le détail de la dernière erreur détectée.

Allocation / échange avec des fichiers

TxbNew: Alloue un nouveau buffer vide.

TxbNewString: Alloue un buffer contenant une STRING.

TxbFree: Libère un buffer.

TxbReadFile: Alloue un buffer avec le contenu d'un fichier.

TxbWriteFile: Enregistre le buffer dans un fichier.

Echange de données

TxbGetLength: Retourne la longueur d'un buffer.

TxbGetData: Copie le contenu d'un buffer dans un tablkeau de caractères.

TxbGetString: Copie le contenu du buffer dans une STRING.

TxbSetData: Copie un tableau de caractères dans un buffer.

TxbSetString: Copie une STRING dans un buffer.

TxbClear: Vide un buffer.

TxbCopy: Copie un buffer.

Lecture séquentielle

TxbRewind: Reprend la lecture en début du buffer.

TxbGetLine: Lecture séquentiel ligne par ligne.

Ecriture séquentielle

TxbAppend: Ajoute la valeur d'une variable.

TxbAppendLine: Ajoute une ligne de texte.

TxbAppendEol: Ajoute une marque de fin de ligne.

TxpAppendTxb: Ajoute le contenu d'un autre buffer.

Conversions UNICODE

TxbAnsiToUtf8: Convertit un buffer en format UNICODE.

TxbUtf8ToAnsi: Convertit un buffer en format ANSI.


Fonctions de communication UDP

Langages de programmation - Référence -> Opérations avancées -> Fonctions de communication UDP

Previous chapter Next chapter Show all Show all Hide all Hide all

Les fonctions suivantes sous permettent de gérer des "sockets" UDP pour réaliser des applications cliente ou serveur sur ETHERNET:

udpCreate Crée une socket UDP.
udpAddrMake Construit une addresse UDP pour les autres fonctions.
updSendTo Envoie un télégramme.
udpRcvFrom Reçoit un télégramme.
udpClose Ferme une socket.
udpIsValid Teste si une socket est valide.
updSendToArray Envoie un télégramme.
udpRcvFromArray Reçoit un télégramme.

Chaque socket est identifiée par un identificateur unique stockéed dans une valeur de type DINT.

attention Attention
  • Bien que l'atelier procure une interface simplifiée, vous devez être familier avec la programmation de sockets telle qu'elle peut être effectuée dans d'autres langages tels que le "C".
  • La gestion de sockets n'est pas disponible sur certains systèmes cible. Référez-vous aux instructione de votre construteur pour plus d'information.

udpCreate: crée une socket UDP

SOCK := udpCreate (PORT);

PORT : DINT Numéro de port à attacher à la socket.
SOCK : DINT ID de la nouvelle socket.

Cette fonction crée une socket UDP. Si l'argument PORT est différent de 0, la socket est attachée à ce port et peut être utilisée comme serveur.

udpAddrMake: construit une addresse UDP

OK := udpAddrMake (IPADDR, PORT, ADD);

IPADDR : STRING Adresse IP de la forme xxx.xxx.xxx.xxx.
PORT : DINT Numéro de port.
ADD : USINT[32] buffer où stocker l'adresse UDP (en sortie).
OK : BOOL TRUE si OK.

Cette fonction permet de construire l'adresse à padder à la fonction udpSendTo dans le cas d'une socket client.

udpSendTo: envoie un télégramme

OK := udpSendTo (SOCK, NB, ADD, DATA);

SOCK : DINT ID de la socket.
NB : DINT Nombre de caractères à envoyer.
ADD : USINT[32] Buffer contenant l'adresse UDP de destination (en entrée).
DATA : STRING Caractères à envoyer.
OK : BOOL TRUE si OK.

Le buffer "ADD" doit conteni une adresse UDP valide construite par la fonction udpAddrMake ou retournée par la fonction udpRcvFrom.

udpSendToArray: envoie un télégramme

OK := udpSendTo (SOCK, NB, ADD, DATA);

SOCK : DINT ID de la socket.
NB : DINT Nombre de caractères à envoyer.
ADD : USINT[32] Buffer contenant l'adresse UDP de destination (en entrée).
DATA : USINT[] Tableau contenant les caractères à envoyer.
OK : BOOL TRUE si OK.

Le buffer "ADD" doit conteni une adresse UDP valide construite par la fonction udpAddrMake ou retournée par la fonction udpRcvFrom.

udpRcvFrom: reçoit un télégramme

Q := udpRcvFrom (SOCK, NB, ADD, DATA);

SOCK : DINT ID de la socket.
NB : DINT Nombre maximum de caractères à recevoir.
ADD : USINT[32] Buffer contenant l'adresse UDP de l'émetteur (en sortie).
DATA : STRING Buffer où stocker les caractères reçus.
Q : DINT Nombre de caractères reçus.

Si des caractères sont reçus, la fonction rempliut le buffer ADD avec l'adresse UDP de l'émetteur. Ce buffer peut ensuite être directement passé à la fonction udpSendTo pour envoyer une réponse.

udpRcvFromArray: reçoit un télégramme

Q := udpRcvFrom (SOCK, NB, ADD, DATA);

SOCK : DINT ID de la socket.
NB : DINT Nombre maximum de caractères à recevoir.
ADD : USINT[32] Buffer contenant l'adresse UDP de l'émetteur (en sortie).
DATA : USINT[] Tableau où stocker les caractères reçus.
Q : DINT Nombre de caractères reçus.

Si des caractères sont reçus, la fonction rempliut le buffer ADD avec l'adresse UDP de l'émetteur. Ce buffer peut ensuite être directement passé à la fonction udpSendTo pour envoyer une réponse.

udpClose: ferme une socket

OK := udpClose (SOCK);

SOCK : DINT ID d'une socket.
OK : BOOL TRUE si OK.

Vous êtes responsable de fermer chaque socket créée par les fonctions tcpListen, tcpAccept et tcpConnect, même si elles sont devenues invalides.

udpsValid: teste si une socket est valide

OK := udpIsValid (SOCK);

SOCK : DINT ID d'une socket.
OK : BOOL TRUE la socket spécifiée est encore valide.


VLID

Langages de programmation - Référence -> Opérations avancées -> VLID

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Retourne l'identificateur d'une liste de variables embarquée.

Entrées

FILE : STRING Chemin vers le fichier liste de variables (.SPL ou .TXT) - doit être une constrante!

Sorties

ID : DINT Identificateur de la liste - à passer à d'autres blocs.

Remarques

Certains blocs prennent comme argument une liste de variables. Pour ces blocs, la liste est matérialisée par un identificateur numérique. Cette fonction vous permet de trouver l'identificateur d'une liste.

Les listes de variables peuvent être:

  • Des listes créées avec l'atelier. Ces fichiers sont suffixés par .SPL.
  • De simples fichiers de texte .TXT avec un symbole de variable par ligne.

Les listes ne peuvent contenir que des variables simples. Les éléments de tableaux ou de structures doivent être spécifiés un par un. La longueur des listes n'est pas limitée.

attention Attention

Les fichiers de listes sont lus à la compilation et intégrés au code de l'application. Ceci implique qu'une modification effectuée après le téléchargement ne sera pas prise en compte.

Langage ST

ID := VLID ('MyFile.spl');

Langage FBD

Langage LD

La fonction n'est appelée que si EN = TRUE.

Langage IL

Op1: LD 'MyFile.spl'
VLID COL
ST ID


Ecriture et lecture XML

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML

Previous chapter Next chapter Show all Show all Hide all Hide all

Les documents XML peuvent être manipulés depuis les programmes IEC sous la forme d'arbre de balises XML. Chaque balise XML est représentée par:

  • Un nom de balise.
  • Une liste d'attributs (nom=valeur).
  • Un contenu (texte).
  • Une liste de balises filles.

Un document XML entier est manipulé par sa balise principale.

Les fonctions XML sont conçues pour travailler avec des buffers de texte. Toutefois, certaines fonctions ont été ajoutées pour manipuler directement des fichiers XML sur le disque.

attention Attention

La lecture et l'écritue XML supportent l'encodage 8 bits seulement. Il peut s'agir du format UTF8 ou ANSI (ISO-8859-1). Des fonctions de gestion des buffers de caractères permettent la conversion des textes entre les formats UTF8 et ANSI.

Il doit y avoir une instance et une seule du bloc fonctionnel XmlManager déclarée dans l'application.

Il doit y avoir une instance et une seule du bloc fonctionnel TxbManager déclarée dans l'application.

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.

Dans cette section

Gestion de la mémoire

Lecture/Ecriture des documents

Exploration d'un document XML

Construction d'unm document XML

Exchange de variables en utilisant sont symbole


Gestion de la mémoire

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Gestion de la mémoire

Previous chapter Next chapter Show all Show all Hide all Hide all

Dans cette section

XmlManager

XmlLastError


XmlManager

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Gestion de la mémoire -> XmlManager

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlManager – Bloc fonctionnel

Description

Ce bloc fonctionnel gère toutes les données des documents XML et la mémoire correspondante. Il prend en compte la libération de la mémoire quand l'application s'arrête, et peut être utilisé pour tracer les éventuelles pertes de mémoire. Il doit y avoir une instance et une seule de ce bloc déclarée dans l'application pour pouvoir utiliser les autres fonctions XML.

Sortie | Description
bOK : BOOL | TRUE si le système de mémoire XML est correctement initialisé.
nBuffers : DINT | Nombre de documents XML alloués en mémoire.
nTags : DINT | Nombre de balises XML allouées en mémoire.

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


XmlLastError

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Gestion de la mémoire -> XmlLastError

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlLastError – Fonction

Description

Toutes les fonctions XML retournent un compte-rendu simple, généralement une information booléenne. Cette fonction peut être utilisée après qu'une autre fonction a répondu un mauvais compte-rendu. Elle donne la valeur détaillée du compte-rendu d'erreur au sujet du dernier appel effectué.

Sortie | Description
iErr : DINT | Erreur survenue lors du dernier appel 0 = OK autre = erreur

Voici les différents codes d'erreur possibles:

Code d'erreur | Description
1 2 3 4 5 6 7 8 9 | Instance invalide de XMLManager (il doit y avoir une seule instance). XMLManager déjà ouvert (il doit y avoir une seule instance). XMLManager non initialisé - aucune instance de XmlManager déclarée. Identificateur invalide. Trop de balises allouées. Identificateur invalide pour un buffer de texte (ou pas d'instance de TxbManager déclarée). Fichier XML incorrect ou erreur de syntaxe XML. Lecture de fichier impossible. Ecriture de fichier impossible.

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


Lecture/Ecriture des documents

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Lecture/Ecriture des documents

Previous chapter Next chapter Show all Show all Hide all Hide all

Dans cette section

XmlNewDoc

XmlFreeDoc

XmlParseDocTxb

XmlParseDocFile

XmlWriteDocTxb

XmlWriteDocFile


XmlNewDoc

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Lecture/Ecriture des documents -> XmlNewDoc

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlNewDoc – Fonction

Description

Cette fonction crée un nouveau document XML, ne contenant que sa balise principale, sans attribut nit contenu. L'application devra libérer la mémoire allouée en appelant la fonction XmlFreeDoc.

Entrée | Description
szTag : STRING | Nom de la balise principale

Sortie | Description
hRootTag : DINT | Identificateur de la balise principale. Peut être passé aux autres fonctions pour construire ou compléter le document.

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


XmlFreeDoc

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Lecture/Ecriture des documents -> XmlFreeDoc

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlFreeDoc – Fonction

Description

Cette fonction libère la mémoire allouée pour un document XML. Elle détruit la balise principale et toutes ses balises filles. Cette fonction peut également être appelée pour détruire une balise fille et garder sa balise mère en mémoire.

Entrée | Description
hRootTag : DINT | Identificateur de la balise XML à détruire

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


XmlParseDocTxb

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Lecture/Ecriture des documents -> XmlParseDocTxb

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlParseDocTxb – Fonction

Description

Cette fonction alanyse un texte XML contenu dans un buffer de texte et crée le document XML correspondant. L'application est responsable de libérer la mémoire en appelant la fonction XmlFreeDoc.

attention Attention

La lecture et l'écritue XML supportent l'encodage 8 bits seulement. Il peut s'agir du format UTF8 ou ANSI (ISO-8859-1). Des fonctions de gestion des buffers de caractères permettent la conversion des textes entre les formats UTF8 et ANSI.

Entrée | Description
hTxb : DINT | Identificateur du buffer de texte à lire

Sortie | Description
hRootTag : DINT | Identificateur de la balise principale du document lu

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


XmlParseDocFile

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Lecture/Ecriture des documents -> XmlParseDocFile

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlParseDocFile – Fonction

Description

Cette fonction alanyse un texte XML contenu dans un fichier et crée le document XML correspondant. L'application est responsable de libérer la mémoire en appelant la fonction XmlFreeDoc.

attention Attention

La lecture et l'écritue XML supportent l'encodage 8 bits seulement. Il peut s'agir du format UTF8 ou ANSI (ISO-8859-1). Des fonctions de gestion des buffers de caractères permettent la conversion des textes entre les formats UTF8 et ANSI.

Entrée | Description
szPath : STRING | Chemin complet du fichier XML à lire.

Sortie | Description
hRootTag : DINT | Identificateur de la balise principale du document lu

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


XmlWriteDocTxb

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Lecture/Ecriture des documents -> XmlWriteDocTxb

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlWriteDocTxb – Fonction

Description

Cette fonction formatte un document XML dans un buffer de texte. Elle ne libère pas la mémoire allouée pour le document.

attention Attention

La lecture et l'écritue XML supportent l'encodage 8 bits seulement. Il peut s'agir du format UTF8 ou ANSI (ISO-8859-1). Des fonctions de gestion des buffers de caractères permettent la conversion des textes entre les formats UTF8 et ANSI.

Entrée | Description
hRootTag : DINT | Identificateur de la balise principale du document
hTxb : DINT | Identificateur du buffer de texte. Cet identificateur a été alloué et sera détruit par l'application.

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


XmlWriteDocFile

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Lecture/Ecriture des documents -> XmlWriteDocFile

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlWriteDocFile – Fonction

Description

Cette fonction formatte un document XML dans un fichier. Elle ne libère pas la mémoire allouée pour le document.

attention Attention

La lecture et l'écritue XML supportent l'encodage 8 bits seulement. Il peut s'agir du format UTF8 ou ANSI (ISO-8859-1). Des fonctions de gestion des buffers de caractères permettent la conversion des textes entre les formats UTF8 et ANSI.

Entrée | Description
hRootTag : DINT | Identificateur de la balise principale du document
szPath : STRING | Chemin complet du fichier XML à lire.

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


Exploration d'un document XML

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Exploration d'un document XML

Previous chapter Next chapter Show all Show all Hide all Hide all

Dans cette section

XmlGetTagName

XmlCheckTagName

XmlGetTagCont

XmlGetTagContT

XmlGetTagAttrib

XmlGetParent

XmlFirstChild

XmlNextChild


XmlGetTagName

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Exploration d'un document XML -> XmlGetTagName

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlGetTagName – Fonction

Description

Cette fonction retourne le nom d'une balise XML.

Entrée | Description
hTag : DINT | Identificateur de la balise

Sortie | Description
szTag : STRING | Nom de la balise. Ex: “ABC” pour <ABC/>

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


XmlCheckTagName

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Exploration d'un document XML -> XmlCheckTagName

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlCheckTagName – Fonction

Description

Cette fonction retourne TRUE si le nom passé en entrée est celui de la balise spécifiée. Cette fonction ne différencie pas les majuscules et les minuscules.

Entrée | Description
hTag : DINT | Identificateur de la balise.
szTag : STRING | Nom de balise attendu.

Sortie | Description
bOK : BOOL | TRUE si le nom de la basile.

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


XmlGetTagCont

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Exploration d'un document XML -> XmlGetTagCont

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlGetTagCont – Fonction

Description

Cette fonction copie le contenu d'une balise XML dans une variable. La variable peut être de n'importe quel type.

Entrée | Description
hTag : DINT | Identificateur de la basile.
data : ANY | Variable à forcer à la valeur indiquée dans la balise.

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


XmlGetTagContT

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Exploration d'un document XML -> XmlGetTagContT

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlGetTagContT – Fonction

Description

Cette fonction copie le contenu d'une balise XML dans un buffer de texte. Le buffer est alloué en mémoire par la fonction et devra être détruit par l'application.

Entrée | Description
hTag : DINT | Identificateur de la basile.

Sortie | Description
hTxb : DINT | Identificateur du buffer de texte créé.

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


XmlGetTagAttrib

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Exploration d'un document XML -> XmlGetTagAttrib

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlGetTagAttrib – Fonction

Description

Cette fonction force une variable avec la valeur d'un attribut d'une balise XML. La variable spécifiée peut être de n'importe quel type.

Entrées | Description
hTag : DINT | Identificateur de la basile.
szAttrib : STRING | Nom de l'attribut
data : ANY | Variable à forcer.

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


XmlGetParent

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Exploration d'un document XML -> XmlGetParent

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlGetParent – Fonction

Description

Cette fonction retourne la balise mère de la balise spécifiée en entrée.

Entrées | Description
IN : DINT | Balise XML.

Sorties | Description
OUT : DINT | Balise mère.

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


XmlFirstChild

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Exploration d'un document XML -> XmlFirstChild

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlFirstChild – Fonction

Description

Cette fonction retourne la première balise fille ayant le nom de balise spécifié. Si szTag est vide, la première balise fille est retournée quelquesoit son nom.

Entrées | Description
hTag : DINT | Identificateur de la balise
szTag : STRING | Nom de la balise fille cherchée. Chaine vide pour trouver la première balise quelquesoit son nom.

Sortie | Description
hChildTag | Identificateur de la première balise fille trouvée, ou 0 si aucune balise fille n'est trouvée.

Exemple d'utilisation en ST:

hChild := XmlFirstChild (hParentTag, 'TagName');

while hChild <> 0 do

(* explore the tag *)

hChild := XmlNextChild (hParentTag, hChild, 'TagName');

end_while;

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


XmlNextChild

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Exploration d'un document XML -> XmlNextChild

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlNextChild – Fonction

Description

Cette fonction retourne la prochaine balise fille ayant le nom de balise spécifié. Si szTag est vide, la prochaine balise fille est retournée quelquesoit son nom.

Entrées | Description
hTag : DINT | Identificateru de la balise
hChildTag : DINT | Identificateur de la balise fille précédente.
szTag : STRING | Nom de la balise fille cherchée. Chaine vide pour trouver la premiére balise quelquesoit son nom.

Sortie | Description
hChildNext | Handle of the next child tag matching the specified name, or 0 if no child found.

Exemple d'utilisation en ST:

hChild := XmlFirstChild (hParentTag, 'TagName');

while hChild <> 0 do

(* explore the tag *)

hChild := XmlNextChild (hParentTag, hChild, 'TagName');

end_while;

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


Construction d'unm document XML

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Construction d'unm document XML

Previous chapter Next chapter Show all Show all Hide all Hide all

Dans cette section

XmlSetTagAttrib

XmlSetTagCont

XmlSetTagContT

XmlAddChild


XmlSetTagAttrib

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Construction d'unm document XML -> XmlSetTagAttrib

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlSetTagAttrib – Fonction

Description

Cette fonction formatte la valeur dune variable dans la valeur d'un attribut XML. La variable spécifiée peut avoir n'importe quel type.

Entrée | Description
hTag : DINT | Identificateur de la balise.
szAttrib : STRING | Nom de l'attribut
data : ANY | Variable

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


XmlSetTagCont

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Construction d'unm document XML -> XmlSetTagCont

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlSetTagCont – Fonction

Description

Cette fonction formatte la valeur d'une variable dans le contenu d'une balise. La variable spécifiée peut avoir n'importe quel type.

Entrée | Description
hTag : DINT | Identificateur de la balise.
data : ANY | Variable

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


XmlSetTagContT

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Construction d'unm document XML -> XmlSetTagContT

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlSetTagContT – Fonction

Description

Cette fonction copie un buffer de texte dans le contenu d'une balise XML. Le buffer de texte est alloué est devra être détruit par l'application.

Entrée | Description
hTag : DINT | Identificateur de la balise
hTxb : DINT | Identificateur du buffer de texte.

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


XmlAddChild

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Construction d'unm document XML -> XmlAddChild

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlAddChild – Fonction

Description

Cette fonction ajoute une nouvelle balise fille à une balise XML.

Entrée | Description
hTag : DINT | Identificateur de la balise
szTag : STRING | Nom de la nouvelle balise file à créer.

Sortie | Description
hChildTag : DINT | Identificateur de la balise fille créée.

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


Exchange de variables en utilisant sont symbole

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Exchange de variables en utilisant sont symbole

Previous chapter Next chapter Show all Show all Hide all Hide all

Dans cette section

XmlGetSybValue

XmlSetSybValue


XmlGetSybValue

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Exchange de variables en utilisant sont symbole -> XmlGetSybValue

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlGetSybValue – Fonction

Description

Cette fonction formatte la valeur d'une variable dont le symbole est spécifié par szSyb dans une variable STRING. Cette fonction ne fonctionne que si le symbole de la variable a été embarqué dans l'application.

Cette fonction permet l'automatisation des échanges de données entre les documents XML et les variables. Par exemple, vous pouvez trouver le symbole de la variable dans une valeur d'attribut.

Entrée | Description
szSyb : STRING | Symbole de la variable.
keepCase : BOOL | FALSE par défaut, puisque les symboles embarqués sont normalement passés en majuscules. Doit être TRUE si l'option de compilation Converver la casse des symboles embarqués est validée.

Sortie | Description
value : STRING | Current value of the variable formatted as STRING.

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


XmlSetSybValue

Langages de programmation - Référence -> Opérations avancées -> Ecriture et lecture XML -> Exchange de variables en utilisant sont symbole -> XmlSetSybValue

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlSetSybValue – Fonction

Description

Cette force la valeur de la variable dont le symbole est spécifié par szSyb avec la valeur formattée dans la variable STRING spécifiée. Cette fonction ne fonctionne que si le symbole de la variable a été embarqué dans l'application.

Cette fonction permet l'automatisation des échanges de données entre les documents XML et les variables. Par exemple, vous pouvez trouver le symbole de la variable dans une valeur d'attribut.

Entrée | Description
szSyb : STRING | Symbole de la variable.
value : STRING | Value to be assigned to the variable, formatted as STRING.
keepCase : BOOL | Default is FALSE as normally all embedded symbols are turned uppercase by the compiler. Must be TRUE if the Keep case of embedded symbols compiling option is set.

Sortie | Description
bOK : BOOL | TRUE si OK.

seealso See also

Gestion de la mémoire / Divers

XmlManager: Gestionnaire de mémoire pour les données XML.

XmlLastError: Retourne la description de la dernière erreur détectée.

Lecture/Ecriture des documents

XmlNewDoc: Crée un nouveaun doument XML vide.

XmlFreeDoc: Détruit un document XML et libère la mémoire.

XmlParseDocTxb: Lit un document XML dans un buffer de texte.

XmlParseDocFile: Lit un document XML dans un fichier.

XmlWriteDocTxb: Écrit un document XML dans un buffer de texte.

XmlWriteDocFile: Écrit un document XML dans un fichier.

Exploration d'un document XML

XmlGetTagName: Retourne le nom d'une balise XML.

XmlCheckTagName: Teste le nom d'une balise XML.

XmlGetTagCont: Copie le contenu d'une balise dans une variable.

XmlGetTagContT: Copie le contenu d'une balise dans un buffer de texte.

XmlGetTagAttrib: Retourne la valeur d'un attribut.

XmlFirstChild: Commence l'énumération des balises filles.

XmlNextChild: Énumère les balises filles.

Construction d'un document XML

XmlSetTagAttrib: Force un attribut.

XmlSetTagCont: Force le contenu d'une balise avec une variable STRING.

XmlSetTagContT: Force le contenu d'une balise avec un buffer de texte.

XmlAddChild: Ajoute une balise fille.

Exchange de variables en utilisant leur symbole

XmlGetSybValue: Lit la valeur d'une variable en utilisant sont symbole.

XmlSetSybValue: Écrit la valeur d'une variable en utilisant sont symbole.


Fonctions de gestion du registre T5

Langages de programmation - Référence -> Opérations avancées -> Fonctions de gestion du registre T5

Previous chapter Next chapter Show all Show all Hide all Hide all

Le Registre T5 vous permet de définir et de contrôler à distance un registre hiérarchique de paramètres. Les paramètres peuvent être positionnés en dehors de l'atelier, et peuvent également être lus ou écrits depuis les programmes IEC.

Les fonctions suivantes sont disponibles:

RegParGet Lit la valeur courante d'un paramètre.
RegParPut Change la valeur d'un paramètre.

Chemins des paramètres

Chaque paramètre est spécifié par un chemin qui donne sa position exacte dans le registre. Le caractère / est utilisé pour séparer les dossiers dans le chemin. Par exemple, pour le registre:

(Root)
- Folder1
- Folder2
- MyParam

Le chemin du paramètre "MyParam" est:

/Folder1/Folder2/MyParam

attention Attention
  • Le Registre T5 Registry peut ne pas être disponible sur certains systèmes cibles. Référez-vous aux instructions du constructeur.
  • Les chemins de paramètres doivent respecter la casse.

RegParGet: lit la valeur courante d'un paramètre

Q := RegParGet (PATH, DEF);

PATH : STRING Chemin complet du paramètre dans le registre.
DEF : ANY Valeur par défaut à retourner si le paramètre n'est pas trouvé.
Q : ANY Valeur courante du paramètre.

attention Attention

L'entrée DEF définit le type ANY retourné par la fonction. Si vous spécifiez une expression constante, celle-ci doit être explicitement typée selon le type désiré en retour. Par exemple pour récupérer la valeur d'un paramètre comme "INT":

intVariable := RegParGet ('\MyParam', INT#0);

Vous devez respecter la casse des paramètres.

RegParPut: change la valeur d'un paramètre

OK := RegParPut (PATH, IN);

PATH : STRING Chemin complet du paramètre dans le registre.
IN : ANY Nouvelle valeur pour le paramètre.
OK : BOOL TRUE si réussi.

La fonction retourne FALSE dans les cas suivants:

  • Le paramètre est introuvable.
  • Le registre est actuellement en cours de sauvegarde et est verrouillé.


IHM embarquée

IHM embarquée

L'atelier vous permet de définir et d'intégrer à votre projet une application d'IHM embarquée qui sera exécutée sur votre cible, assummant qu'un afficheur graphique est disponible. L'IHM embarquée gère des masques d'écran animés définis dans l'atelier avec les outils appropriés. Les interactions avec le programme IEC se font au travers de variables (contrôlées par le programme IEC et attachées aux propriétés des objets graphiques) plus un ensemble de fonctions et blocs fonctionnels.

Pour activer l'IHM embarquée dans votre projet, vous devez:

1- depuis l'Espace de Travail, lancer la commande "Insérer un raccourci / IHM Embarquée" du menu contextuel

2- déclarer une instance du bloc hmiManager.

Pendant l'étape #1, vous devez sélectionner le type d'écran (matériel) disponible sur votre système. Référez-vous aux instructions du constructeur pour plus de détails sur les matériels disponibles.

Dans cette section

IHM embarquée - chaines de caractères

IHM embarquée - bitmaps

IHM embarquée - polices de caractères

IHM embarquée - écrans

IHM embarquée - fonctions et blocs

Gestion de menus


IHM embarquée - chaines de caractères

IHM embarquée -> IHM embarquée - chaines de caractères

L'éditeur de chaines de caractères pour l'IHM embarquée vous permet de définir une collection de textes à utiliser comme propriétés statiques des objets insérés dans les masques d'écran. Chaque chaine est définie par un nom. L'utilisation de l'éditeur de chaines de caractères est un moyen efficace de garder un point de vue global et cohérent sur l'ensemble des textes utilisés, et de faciliter leur traduction.


IHM embarquée - bitmaps

IHM embarquée -> IHM embarquée - bitmaps

Pour insérer des images (bitmaps) dans des écrans, vous devez d'abord les déclarer dans l'éditeur de bitmaps pour l'IHM embarquée. Chaque bitmap est défini par:

- un nom (ID) utilisé dans les objets graphiques ou les programmes

- le chemin d'un fichier .BMP (les autres formats d'images ne sont pas supportés)

Si vous ne spécifiez aucun chemin, le fichier BMP est cherché dans le répertoire \BITMAP où l'atelier est installé.

Les IDs de bitmaps sont directement utilisables dans les programmes IEC comme des valeurs entières, afin par exemple de passer dynamiquement un bitmap à afficher au travers d'une variable. Vous n'avez pas besoin de re-déclarer ou définir les IDs de bitmaps dans l'application IEC. Leurs noms sont automatiquement connus du compilateur.

Les bitmaps sont automatiqment convertis vers le jeu de couleurs disponibles sur le matériel embarqué.


IHM embarquée - polices de caractères

IHM embarquée -> IHM embarquée - polices de caractères

Pour utiliser des polices de caractères dans les masques d'écran, vous devez d'abord les déclarer dans l'éditeur de polices pour l'IHM embarquée. Chaque police est définie par:

- soit un police système si disponible sur votre plateforme

- soit une police spécifique créée par l'utilisateur (vois ci-après)

Les polices spécifiques sont enregistrées dans des fichiers suffixés par ".K5FNT" et créés à l'aide d'un outil installé avec l'atelier.

Pour créer ou modifier une police spécifique, utilisez la commande "Editeur de polices" du menu contextuel.

Si vous ne spécifiez aucun chemin, le fichier .K5FNT est cherché dans le répertoire \FONT où l'atelier est installé.

Les IDs de polices sont directement utilisables dans les programmes IEC comme des valeurs entières, afin par exemple de changer dynamiquement l'aspect d'un texte au travers d'une variable. Vous n'avez pas besoin de re-déclarer ou définir les IDs de polices dans l'application IEC. Leurs noms sont automatiquement connus du compilateur.


IHM embarquée - écrans

IHM embarquée -> IHM embarquée - écrans

L'application d'IHM embarquée est définie comme un ensemble de masques d'écran. Pour créer un nouvel écran, utilisez la commande "Insérer Elément / Nouvel écran" du menu contextuel dans l'espace de travail. Chaque écran est identifié par un nom (ID) montré dans l'arbre de l'espace de travail. Utilisez la commande "Renommer" du menu contextuel pour le changer.

La fonction hmiSetScreen vous permet de changer dynamiquement l'écran actif depuis les programmes IEC.

Les IDs d'écrans sont directement utilisables dans les programmes IEC comme des valeurs entières. Vous n'avez pas besoin de re-déclarer ou définir les IDs d'écrans dans l'application IEC. Leurs noms sont automatiquement connus du compilateur.

Double-cliquez sur un écran dans l'espace de travail pour éditer son contenu. Un écran est défini par:

- quelques propriétés accessibles quand aucun objet n'est sélectionné,

- un ensemble d'objets graphiques avec leur propriétés statiques ou dynamiques.

Dans cette section

IHM embarquée - objets graphiques


IHM embarquée - objets graphiques

IHM embarquée -> IHM embarquée - écrans -> IHM embarquée - objets graphiques

Previous chapter Next chapter Show all Show all Hide all Hide all

Un objet graphique est une entité graphique prédéfinie à insérer dans un masque d'écran. Chaque objet a un ensemble de propriétés qui peuvent soit être définies statiquement ou bien reliées à des variables de l'application IEC. Les types d'objets suivants sont disponibles:

- Rectangle (forme ou zone de texte)

- Histogramme

- Image (bitmap)

Les objets disponibles sont montrés en bas à droite dans l'éditeur d'écran. Glissez-les avec la souris pour les insérer dans l'écran.

Rectangle (ou texte)

Cet objet est utilisé pour dessiner un rectangle ou une ligne de texte. Ses propriétés sont:

Propriété | Desctiption
Alignement | Alignement horizontal du texte. S'il est échangé au travers d'une variable, utilisez: 0 = centré -1 = à gauche 1 = à droite
Couleur du cadre | Index de la couleur du cadre (peut être échangé avec une variable)
Epaisseur du cadre | Epaisseur du cadre en pixels (0 = pas de cadre)
Couleur de fond | Index de la couleur de fond (peut être échangé avec une variable)
Couleur du texte | Index de la couleur du texte (peut être échangé avec une variable)
Texte | Texte à afficher: peut être un texte spécifique, l'ID d'une chaine de caractères ou une variable de type STRING
Police | Police de caractères: peut être l'ID d'une police déclarée ou le nom d'une variable qui contiendra cet ID.

Histogramme

Cet objet est utilisé pour dessiner un histogramme. Ses propriétés sont:

Propriété | Desctiption
Direction | Direction de remplissage. Si vous passez cette valeur au travers d'une variable, utilisez: 0 = gauche à droite 1 = bas vers haut 2 = droite à gauche 3 = haut vers bas
Couleur du cadre | Index de la couleur du cadre (peut être échangé avec une variable)
Epaisseur du cadre | Epaisseur du cadre en pixels (0 = pas de cadre)
Couleur de fond | Index de la couleur de fond (peut être échangé avec une variable)
Couleur remplissage | Index de la couleur de remplissage (peut être échangé avec une variable)
Valeur remplissage | Pourcentage rempli (de 0 à 100), en général passé par une variable entière.

Image (bitmap)

Cet objet est utilisé pour dessiner une image bitmap. Ses propriétés sont:

Propriété | Desctiption
Couleur de fond | Index de la couleur de fond (peut être échangé avec une variable)
Bitmap | Bitmap à afficher: peut être l'ID d'un bitmap déclaré ou le nom d'une variable qui contiendra cet ID.

Courbe

Cet objet permet d'afficher une courbe. Ses propriétés sont:

Propriété | Desctiption
Style | Type de dessin. Les valeurs possibles sont: 1: histogramme (aire) 2: points (ligne)
Couleur du cadre | Index de la couleur du cadre (peut être échangé avec une variable)
Epaisseur du cadre | Epaisseur du cadre en pixels (0 = pas de cadre)
Couleur de fond | Index de la couleur de fond (peut être échangé avec une variable)
Couleur remplissage | Index de la couleur de remplissage (peut être échangé avec une variable)
Largeur de point | Nombre de pixels sur l'axe X pour chaque échantillon
Premier item | Index du premier élément du tableau à afficher
Dernier item | Index du dernier élément du tableau à afficher
Tableau | Tableau de valeurs à afficher (échelle 0-100)

Menu

Cet objet affiicher une liste de choix déroulante. Ses propriétés sont:

Propriété | Desctiption
Alignement | Alignement horizontal du texte. S'il est échangé au travers d'une variable, utilisez: 0 = centré -1 = à gauche 1 = à droite
Couleur du cadre | Index de la couleur du cadre (peut être échangé avec une variable)
Epaisseur du cadre | Epaisseur du cadre en pixels (0 = pas de cadre)
Police | Police de caractères: peut être l'ID d'une police déclarée ou le nom d'une variable qui contiendra cet ID.
Couleur de fond | Index de la couleur de fond (peut être échangé avec une variable)
Couleur du texte | Index de la couleur du texte (peut être échangé avec une variable)
Police - sélection | Police de caractères pour la ligne sélectionnée
Couleur de fond Sélection | Index de la couleur de fond pour la ligne sélectionnée
Couleur du texte Sélection | Index de la couleur du texte pour la ligne sélectionnée
Texte | Liste de choix (lignes) à afficher, séparées par '|' characters. Exemple: Choice1|Choice2|Choice3
Hauteur ligne | Hauteur d'une ligne, en pixels
Sélection | Index de la ligne sélectionnée (le premier index est 1) Aucune ligne n'est sélectionnée si cette valeur est 0


IHM embarquée - fonctions et blocs

IHM embarquée -> IHM embarquée - fonctions et blocs

Un ensemble de fonctions et de blocs fonctionnels est disponible pour le contrôle dynamique de l'IHM embarquée depuis le programme IEC.

Dans cette section

hmiManager

hmiSetScreen


hmiManager

IHM embarquée -> IHM embarquée - fonctions et blocs -> hmiManager

Previous chapter Next chapter Show all Show all Hide all Hide all

Bloc fonctionnel - Active l'IHM embarquée.

Sortiess

OK : BOOL TRUE si l'IHM embarquée est correctement activée.

Remarques

Vous devez déclarer une et une seule instance de ce bloc pour activer l'IHM embarquée.

Il n'est pas obligatoire d'appeler cette instance dans vos programmes. Déclarer l'instance est suffisant pour l'activation.


hmiSetScreen

IHM embarquée -> IHM embarquée - fonctions et blocs -> hmiSetScreen

Previous chapter Next chapter Show all Show all Hide all Hide all

Fonction - Définit l'écran actif pour l'IHM embarquée.

Entrées

ID : DINT Identificateur de l'écran.
DISPLAY : DINT Ce paramètre est réservé pour les extensions et doit être 0.

Sorties

OK : BOOL TRUE si réussi.

Remarques

Appelez cette fonction pour définir ou changer l'écran actif de l'IHM embarquée.

L'identificateur de l'écran est le nom donné à l'écran tel que montré dans l'espace de travail.

Exemple

hmiSetScreen (IDP1, 0);


Gestion de menus

IHM embarquée -> Gestion de menus

Le système inclut une série de fonctions et de blocs fonctionnels vous permettant de gérer des menus hiérarchiques dans votre application d'IHM embarquée. Ces fonctions sont destinées à être utilisées avec l'objet graphique "Menu" dans les écrans embarqués.

attention Attention
  • Les fonctions de gestion de menu utilisent la mémoire dynamique qui doit être configurée dans les paramètres du projet. Depsuis les paramètres du projet, appuez sur le bouton "Avancé" puis allez dans la page "Mémoire". Ici vous pouvez configurer l'emploi de la mémoire dynamique.

Créer une hiérarchie de menus

Les fonctions suivantes permettent de créer un ensemble de menus hiérarchisés. Elles doivent être appelées lors du démarrage de l'application pour créer en mémoire une hiérarchie de menus qui sera par la suite utilisée à l'aide de l'objet graphique "Menu". Les fonctions suivantes sont disponibles:

hMenu := HmiNewMenu (hParentMenu, strTitle); (* crée un menu principal ou un sous-menu *)

hItem := HmiNewMenuItem (hParentMenu, strChoice, idCommand); (* ajoute un choix à un menu *)

ok := HmiRenameMenu (hItem, strChoice); (* change le texte d'un choix ou d'un menu *)

ok := HmiDelMenu (hItem); (* supporime un choix ou un menu *)

Arguments:

hMenu : BOOL; (* handle de menu principal ou de sous-menu *)

hParentMenu : DINT; (* handle du menu parent - spécifiez 0 pour créer un menu principal *)

hItem : DINT; (* handle de menu ou de choix à passer aux autres fonctions *)

strTitle : STRING; (* titre d'une menu *)

strChoice : STRING; (* texte d'une choix *)

idCommand : DINT; (* identificateur numérique d'un choix, à utliser dans l'application *)

ok : BOOL; (* TRUE si OK *)

Utilisation des menus

Vous pouvez ensuite utiliser les menus à l'aide du bloc fonctionnel HmiMenu. Vous devez décllarer une instance de ce bloc, par exemple:

MENU : HmiMenu;

Vous devez appeler cette instance avec les arguments suivants:

UP : BOOL; (* la selection est déplacée vers le haut sur front montant de ce signal *)

DN : BOOL; (* la selection est déplacée vers le bas sur front montant de ce signal *)

OK : BOOL; (* le sous-menu sélectionné est ouvert sur front montant de ce signal *)

ESC : BOOL; (* le menu parent est activé sur front montant de ce signal *)

Menu : DINT (* handle du menu principal (racine) *)

Voici les sorties du bloc fonctionnel HmiMenu:

SelID : DINT; (* identificateur du choix sélectionné, sur un front montant de l'entrée OK *)

SelPos : DINT; (* position du choix sélectionné - à passer à l'objet graphiwue 'Menu' *)

Title : STRING; (* titre du menu sélectionné *)

Texts : STRING; (* liste de choix à passer à l'objet graphique 'Menu' *)

Exemple

Voici un exemple de création de menus avec 2 niveaux:

if not bInitDone then

// crée le menu pricipal (racine)

hRootMenu := hmiNewMenu (0, 'Main menu');

// crée le premier sous-menu avec 2 choix

hSubMenu := hmiNewMenu (hRootMenu, 'Menu 1');

hmiNewMenuItem (hSubMenu, 'Choice 1', 101);

hmiNewMenuItem (hSubMenu, 'Choice 2', 102);

// crée le second sous-menu avec 2 choix

hSubMenu := hmiNewMenu (hRootMenu, 'Menu 2');

hmiNewMenuItem (hSubMenu, 'Choice 3', 201);

hmiNewMenuItem (hSubMenu, 'Choice 4', 202);

bInitDone := true;

end_if;

Voici un exemple typique d'appel au bloc HmiMenu ("MENU" est une instance de ce bloc):

MENU (bUP, bDOWN, bOK, bBACK, hRootMenu);

case MENU.SelID of

101 : // traiter la commande 1

102 : // traiter la commande 2

201 : // traiter la commande 3

202 : // traiter la commande 4

end_case;

Voici comment configurer un objet graphique 'Texte' pour afficher le titre du menu actif:

Voici comment configurer un objet graphique "Menu" à l'aide des sorties du bloc fonctionnel:


T5 Registry for runtime parameters

T5 Registry for runtime parameters

Le Registre T5 vous permet de définir et de contrôler à distance un registre hiérarchique de paramètres. Les paramètres peuvent être positionnés en dehors de l'atelier, et peuvent également être lus ou écrits depuis les programmes IEC.

Définir le registre de paramètres

L'outil de définition du registre vous permet de définir le jeu de paramètres du système cible et comment ils seront édités. La définition des paramètres est stockée dans un fichier XML. L'outil de définition travaille avant tout sur ce fichier. De plus, il permet d'envoyer le registre sous forme binaire dans la cible, et optionnellement d'y enregistrer aussi le fichier XML.

L'outil de définition est lancée par la commande du menu de l'atelier: Outils / Paramètres Cible / Définir.

Les paramètres sont librement organisés dans des dossiers. La partie gauche de l'éditeur montre l'arbre complet des dossiers et des paramètres. La partie droite est utilisée pour saisir la description détaillée de l'item sélectionné dans l'arbre. Utilisez les commandes du menu Editer pour ajouter des dossiers et des paramètres.

Pour chaque dossier vous devez définir les informations suivantes:

Information | Description
Nom | Nom du dossier - les caractères / sont interdits.
Accès | Mode d'accès (lecture-écriture ou lecture seule).
Protection | Mode de protection pour l'écriture (selon le mot de passe): Non = pas de protection. Oui = protection par mot de passe. Hérite = même mode de protection que le dossier père.
Mot de passe | Mot de passe pour l'écriture.
Description | Texte de description libre.

Pour chaque paramètre vous devez définir les informations suivantes:

Information | Description
Nom | Nom du paramètre - les caractères "/" sont interdits.
Type | Type de donnée.
Longueur max. | Longueur maximum pour le type STRING. Ne peut pas excéder 200 caractères.
Accès | Mode d'accès (lecture-écriture ou lecture seule).
Protection | Mode de protection pour l'écriture (selon le mot de passe): Non = pas de protection. Oui = protection par mot de passe. Hérite = même mode de protection que le dossier père.
Mot de passe | Mot de passe pour l'écriture.
Défaut | Valeur par défaut quand le registre est chargé pour la première fois.
Description | Texte de description libre.
Mode d'édition | Mode d'édition par l'utilisateur.
Données | Description des choix d'une liste.
Minimum | Valeur minimum autorisée pour un nombre.
Maximum | Valeur maximum autorisée pour un nombre.

Les commandes du menu Projet permettent de mettre à jour la cible:

  • Vérifier le registre

Cette commande vérifie le contenu intégral du registre édité et signale les possibles incohérences.

  • Envoyer le registre

Cette commande envoie le registre en format binaire dans la cible. Vous devez sélectionner les paramètres de communication avec le système cible, mais vous pouvez également spécifier un nom de fichier local si vous choisissez un autre mode de transfert. Vous pouvez optionnellement demander de transférer le fichier de définition XML dans la cible.

Selon votre système cible, le nouveau registre peut ne pas être pris en compte immédiatement, s'il est en sours d'utilisation. Certaines cibles requièrent un redémarrage de l'application, d'autres peuvent requérir un redémarrage complet du système (reboot).

Editer les paramètres

L'outil d'édition des paramètres permet de lire et d'écrire les paramètres "en ligne". Les paramètres affichés peuvent éventuellement être modifiés à distance selon leur mode de protection. L'éditeur est lancé par la commande de menu de l'atelier: Outils / Paramètres Cible / Editer. Ensuite utilisez la commande Fichier / Ouvrir pour vous connecter à un système cible.

La partie gauche de l'éditeur montre l'abre des dossiers du registre. A droite sont listés les paramètres du dossier sélectionné. Cliquez deux fois sur un paramètres pour changer sa valeur.

La commande Affichage / Mettre à jour actualise la valeur des paramètres.

La commande Fichier / Sauver demande à la cible d'enregistrer le contenu du registre sur support non volatile (Flash ou disque).


Automation de projets

Automation de projets

L'atelier vous permet d'automatiser la création ou la modification de vos projets IEC61131-3. De nombreuses applications deviennent possibles en écrivant des scripts d'automation, telles que:

  • Bâtir de nouveaux assistants pour créer le squelette d'un nouveau projet
  • Créer des assistants pour automatiser l'import ou la configuration des E/S
  • Générer automatiquement des éléments de documentation
  • Créer des procédures d'import/export.

Pour ceci, vous n'avez pas besoin d'autres outil, ni de connaissance particulière des langages de programmation tels que VB ou C++. Il vous suffit d'utiliser l'atelier pour développer, tester et lancer vos scripts. Les scripts sont écrits en langage IEC (typiquement en ST).

Suivez les liens ci-dessous pour plus d'information:

  • Mise en oeuvre
  • Librairie d'automation - référence

Dans cette section

Automation de projets - Mise en oeuvre

Librairie d'automation - Référence


Automation de projets - Mise en oeuvre

Automation de projets -> Automation de projets - Mise en oeuvre

Previous chapter Next chapter Show all Show all Hide all Hide all

L'atelier vous permet d'automatiser la création ou la modification de vos projets IEC61131-3. De nombreuses applications deviennent possibles en écrivant des scripts d'automation à l'aide du langage ST. Cette page décrit le principe des outils d'automation. Référez-vous aux pages suivantes pour plus de détails sur les fonctionnalités d'automation:

Créer un nouveau script
Développer et tester un script
Enregistrer un script comme assistant de création de projet
Enregistrer un script comme outil de mofification de projet
Lancer un script depuis une autre applications
Librairie d'automation - référence

Principe

Un script d'automation est écrit en langage IEC. Le ST est typiquement utilisé car il est le plus adapté aux traitements effectués dans un script (tests, boucles...). Le script est développé comme un projet, et utilise une librairie spéciale nommée AUTOMATION:

Quand vous développez un script, les commandes Similer et Mode Exécution du menu Projet sont remplacées par la commande Exécuter le Script.

info Info

Contrairement aux projets IEC, le programme du script est exécuté une seule fois et non pas répété de cycle en cycle.

Les scripts peuvent être utilisés pour générer le squelette d'un nouveau projet, ou pour compléter / modifier un projet existant. La librairie AUTOMATION regroupe des fonctions pour créer le projet et d'autres pour énumérer les objets d'un projet existant.

Dans cette section

Créer un nouveau script d'automation

Développer et tester un script

Enregistrer un script comme assistant de création de projet

Enregistrer un script comme outil de l'atelier

Exécuter un script depuis une autre application


Créer un nouveau script d'automation

Automation de projets -> Automation de projets - Mise en oeuvre -> Créer un nouveau script d'automation

Previous chapter Next chapter Show all Show all Hide all Hide all

Pour créer un nouveau script d'automation, utilisez la commande Fichier / Nouveau Projet du menu, et sélectionnez l'assistant Automation Script dans la liste:

Puis suivez les instructions. Vous devez spécifier comment votre script sera utilisé:

  • Pour créer un nouveau projet.
  • Pour modifier un projet existant.
  • Pour modifier un projet ou le créer s'il n'existe pas encore.

Lors de la création du script, vous pouvez définir des paramètres qui seront demandés à l'utilisateur lors de l'exécution de votre script. L'atelier créera automatiquement dans votre script:

  • Les variables globales correspondant aux paramètres.
  • Une liste de variables regroupant les paramètres.
  • Les quelques lignes de ST permettant d'afficher la boîte de saisie des paramètres.

Le script est généré avec l'architecture suivante:

Le programme Main est le programme du script. Vous pouvez créer des fonctions et UDFBs appelés par ce programme.

Le dossier Templates regroupera les programmes à instancier (copier) dans le projet cible.

Il est recommandé de conserver un seul programme principal (le programme Main). Ce programme doit avoir sa propriété Tâche positionnée à "SCRIPT":

Si vous créez un autre programme principal par la suite vous devez absolument positionner cette propriété.


Développer et tester un script

Automation de projets -> Automation de projets - Mise en oeuvre -> Développer et tester un script

Previous chapter Next chapter Show all Show all Hide all Hide all

Un Script d'Automation est développé comme un autre projet avec l'atelier, mais avec certaines particularités. La principale différence est que le programme du script (généralement écrit en ST) est exécuté une seule fois, et non pas répété de cycle en cycle. Le programme principal du script doit avoir sa propriété Tâche positionnée à SCRIPT. Toutefois, vous n'avez pas à vous en soucier car cette propriété est automatiquement positionnée lorsqu'un nouveau script est créé. Son architecture déjà prête:

Le programme Main est le programme d'automation. Vous pouvez librement créer des sous-programmes ou UDFBs appelés par ce programme, mais il est vivement conseillé de conserver un seul programme principal (le programme Main).

Le projet de script utilise une librairie particulière nommée AUTOMATION qui contient toutes les fonctions nécessaires au développement du script:

Quand vous développez un script, les commandes Similer et Mode Exécution du menu Projet sont remplacées par la commande Exécuter le Script:

Cette commande vous permet d'exécuter votre script et de le tester. La boîte suivante est ouverte:

Entrez le nom du projet cible (à créer ou à modifier) et appuyez sur Démarrer!. Tous les messages de traces et erreurs éventuelles seront affichées dans la liste au bas de la boîte.


Enregistrer un script comme assistant de création de projet

Automation de projets -> Automation de projets - Mise en oeuvre -> Enregistrer un script comme assistant de création de projet

Previous chapter Next chapter Show all Show all Hide all Hide all

Si vos scripts sont destinés à créer le squelette d'un nouveau projet, vous pouvez les enregistrer de façon à être accessibles depuis la commande Fichier / Nouveau Projet de l'atelier.

Pour ceci, il vous suffit de copier le dossier contenant votre script dans le répertoire AUTOMATION\SCRIPTS\ où l'atelier est installé:

Le script est dès lors disponible dans la boîte de création de projet:

Votre script doit être compilé pour être disponible.

Le script doit être compilé pour pouvoir être utilisé.

Il est vivement recommandé de copier l'intégralité du répertoire contenant le script, afin d'assurer que les possible programmes à copier soient disponibles.


Enregistrer un script comme outil de l'atelier

Automation de projets -> Automation de projets - Mise en oeuvre -> Enregistrer un script comme outil de l'atelier

Previous chapter Next chapter Show all Show all Hide all Hide all

Si vos scripts sont destinés à modifier un projet existant, vous pouvez les enregistrer de façon à être accessibles depuis la commande Outils / Scripts d'automation de l'atelier.

Pour ceci, il vous suffit de copier le dossier contenant votre script dans le répertoire AUTOMATION\MACROS\ où l'atelier est installé:

Le script est dès lors disponible dans l'atelier.

Le script doit être compilé pour pouvoir être utilisé.

Il est vivement recommandé de copier l'intégralité du répertoire contenant le script, afin d'assurer que les possible programmes à copier soient disponibles.


Exécuter un script depuis une autre application

Automation de projets -> Automation de projets - Mise en oeuvre -> Exécuter un script depuis une autre application

Previous chapter Next chapter Show all Show all Hide all Hide all

Les scripts développés avec l'atelier peuvent être lancés depuis d'autres applications. Plusieurs possibilités sont disponibles:

Depuis la ligne de commande:

Les scripts peuvent être exécutés depuis l'invite de commande de Windows ou dans des fichiers .BAT, à l'aide de l'utilitaire K5Script.exe installé avec l'atelier.

Syntaxe:

K5Script.exe <script> <projet_cible>

Arguments:

<script> : Nom du répertoire contenant le script. Si aucun chemin n'est spécifié, le script est cherché dans le répertoire AUTOMATION\SCRIPTS\ où l'atelier est installé.

<projet_cible> : Chemin complet du projet cible à créer ou modifier.

Depuis une application "C / C++":

Votre application "C/C++" peut utiliser la librairie "K5NETAS.DLL" installée avec l'atelier pour exécuter un script:

Langage "C":

LPCSTR __declspec(dllimport) K5NETAS_RunScript (LPCSTR szScript, LPCSTR szDest);

Langage C++:

extern "C" LPCSTR __declspec(dllimport) K5NETAS_RunScript (LPCSTR szScript, LPCSTR szDest);

Arguments:

szScript : Nom du répertoire contenant le script. Si aucun chemin n'est spécifié, le script est cherché dans le répertoire AUTOMATION\SCRIPTS\ où l'atelier est installé.

szDest : Chemin complet du projet cible à créer ou modifier.

Retour:

La fonction retourne un pointeur vers une chaine de caractères contenant le rapport d'exécution.


Librairie d'automation - Référence

Automation de projets -> Librairie d'automation - Référence

Voici les fonctions disponibles dans la librairie AUTOMATION pour le développement des scripts:

Services principaux

  • Gestion du projet cible

Déclarer et manipuler les objets IEC

  • Déclarer les programmes
  • Déclarer les types de données (structures)
  • Déclarer les variables
  • Déclarer les cartes d'E/S

Générer les documents (fichiers)

  • Services communs
  • Fichiers de texte
  • Fichiers sources IEC 61131-3
  • Communication et bus de terrain
  • Documents de test et de mise au point
  • Ressources

Générer des documents depuis des modèles

  • Définir des variables pour la copie des modèles
  • Modèles de programmes

Outils

  • Utiliser des paramètres pour le script
  • Autres

Dans cette section

Services de gestion du projet cible

Déclaration des objets

Génération de documents

Modèles

Paramètres de scripts

Autres fonctions


Services de gestion du projet cible

Automation de projets -> Librairie d'automation - Référence -> Services de gestion du projet cible

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les fonctions principales pour la gestion du projet cible.

Ouverture du projet

paCreateProject - Crée le projet cible.
paCreateProjectFromTemplate - Crée le projet cible à partir d'un modèle.
paOpenProject - Ouvre le projet cible en modification.

Attributs du projets

paSetProjectComment - Définit un commentaire pour le projet.
paSetOption - Définit une option.
paAddLibrary - Ajoute un lien vers une librairie.

Dans cette section

paCreateProject

paCreateProjectFromTemplate

paOpenProject

paSetProjectComment

paSetOption

paAddLibrary


paCreateProject

Automation de projets -> Librairie d'automation - Référence -> Services de gestion du projet cible -> paCreateProject

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateProject - Crée le projet cible

OK := paCreateProject ()

Paramètre | Description
OK : BOOL; | TRUE si réussi

Description

Cette fonction crée le projet cible (vide). Le répertoire de destination ne doit pas exister.

Vous devez appeler cette fonction au début de votre script, avant toute autre fonction de manipulation du projet. Votre script doit se terminer si cette fonction retourne FALSE.

Example Example

// au début du script:
if not paCreateProject () then
return;
end_if;
// ...

seealso See also

paCreateProjectFromTemplate - Crée le projet cible à partir d'un modèle.
paOpenProject - Ouvre le projet cible en modification.

paSetProjectComment - Définit un commentaire pour le projet.
paSetOption - Définit une option.
paAddLibrary - Ajoute un lien vers une librairie.


paCreateProjectFromTemplate

Automation de projets -> Librairie d'automation - Référence -> Services de gestion du projet cible -> paCreateProjectFromTemplate

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateProjectFromTemplate - Crée le projet cible à partir d'un modèle

OK := paCreateProjectFromTemplate (TEMPLATE)

Paramètre | Description
TEMPLATE : STRING; | Nom du modèle.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction crée le projet cible à partir d'un projet modèle. Le répertoire de destination ne doit pas exister.

Les projets modèles sont stockés dans le répertoire TEMPLATE\ où l'atelier est installé. Le paramètre TEMPLATE spécifie le nom du modèle et ne doit pas inclure de nom de chemin.

Vous devez appeler cette fonction au début de votre script, avant toute autre fonction de manipulation du projet. Votre script doit se terminer si cette fonction retourne FALSE.

Example Example

// au déubt du script:
if not paCreateProjectFromTemplate ('MyTemplate') then
return;
end_if;
// ...

seealso See also

paCreateProject - Crée le projet cible.
paOpenProject - Ouvre le projet cible en modification.

paSetProjectComment - Définit un commentaire pour le projet.
paSetOption - Définit une option.
paAddLibrary - Ajoute un lien vers une librairie.


paOpenProject

Automation de projets -> Librairie d'automation - Référence -> Services de gestion du projet cible -> paOpenProject

Previous chapter Next chapter Show all Show all Hide all Hide all

paOpenProject - Ouvre le projet cible pour des modification

OK := paOpenProject (CREATE)

Paramètre | Description
CREATE : BOOL; | Si TRUE, crée le projet s'il n'existe pas encore
OK : BOOL; | TRUE si réussi

Description

Cette fonction ouvre le projet cible. Si le paramètre CREATE est FALSE, le projet doit exister. Si CREATE est à TRUE et que le projet n'existe pas encore, il est créé.

Vous devez appeler cette fonction au début de votre script, avant toute autre fonction de manipulation du projet. Votre script doit se terminer si cette fonction retourne FALSE.

Example Example

// au début du script
if not paOpenProject (FALSE) then
return;
end_if;
// ...

seealso See also

paCreateProject - Crée le projet cible.
paCreateProjectFromTemplate - Crée le projet cible à partir d'un modèle.
paSetProjectComment - Définit un commentaire pour le projet.
paSetOption - Définit une option.
paAddLibrary - Ajoute un lien vers une librairie.


paSetProjectComment

Automation de projets -> Librairie d'automation - Référence -> Services de gestion du projet cible -> paSetProjectComment

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetProjectComment - Change le commentaire du projet

OK := paSetProjectComment (COMM)

Paramètre | Description
COMM : STRING; | Commentaire
OK : BOOL; | TRUE si réussi

Description

Cette fonction déinfit le commentaire du projet. Ce texte est affiché dans la barre de titre quand le projet est ouvert avec l'atelier.

Example Example

// après l'uoverture du projet
paSetProjectComment ('Project generated by script')

seealso See also

paCreateProject - Crée le projet cible.
paCreateProjectFromTemplate - Crée le projet cible à partir d'un modèle.
paOpenProject - Ouvre le projet cible en modification.

paSetOption - Définit une option.
paAddLibrary - Ajoute un lien vers une librairie.


paSetOption

Automation de projets -> Librairie d'automation - Référence -> Services de gestion du projet cible -> paSetOption

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetOption - Change une option

OK := paSetOption (OPTION, VALUE)

Paramètre | Description
OPTION : STRING; | Nom de l'option.
VALUE : STRING; | Valeur de l'option.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction force un paramètre dy projet. Les options suivantes sont disponibles:

Nom | Valeur | Description
TARGET | T5RTM / T5RTI | Type de système cible.
DEBUG | ON / OFF | Compilation en mode "mise au point".
CTSEG | ON / OFF | Variables complexe dans un segment séparé.
FBDFLOW | ON / OFF | Coloration des lignes FBD pendant le test.
EMBEDSYMBOLS | ON / OFF | Embarquer tous les symboles.
EMBEDSYBCASE | ON / OFF | Embarquer la casse des symboles.
WARNING | ON / OFF | Afficher les "warning".
SFCSAFE | ON / OFF | Vérifier la sécurité des graphes SFC.
SPCLEAN | ON / OFF | Enlever le code des sous-programmes non appelés.
IECCHECK | ON / OFF | Tester la conformité au standard IEC.
SAFEARRAY | ON / OFF | Tester les bornes des tableaux.
LARGEJUMP | ON / OFF | Instructions de saut larges.
LOCK | IO / ALL / NONE | Tyoe de variables verrouillables.
PASSWORD | nombre | Mot de passe de connexion.

seealso See also

paCreateProject - Crée le projet cible.
paCreateProjectFromTemplate - Crée le projet cible à partir d'un modèle.
paOpenProject - Ouvre le projet cible en modification.

paSetProjectComment - Définit un commentaire pour le projet.
paAddLibrary - Ajoute un lien vers une librairie.


paAddLibrary

Automation de projets -> Librairie d'automation - Référence -> Services de gestion du projet cible -> paAddLibrary

Previous chapter Next chapter Show all Show all Hide all Hide all

paAddLibrary - Ajoute un lien à une librairie

OK := paAddLibrary (PATH)

Paramètre | Description
PATH : STRING; | Chemin complet vers le répertoire de la librairie.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un lien vers une librairiede sous-programmes et UDFBs en langage IEC.

seealso See also

paCreateProject - Crée le projet cible.
paCreateProjectFromTemplate - Crée le projet cible à partir d'un modèle.
paOpenProject - Ouvre le projet cible en modification.

paSetProjectComment - Définit un commentaire pour le projet.
paSetOption - Définit une option.


Déclaration des objets

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets

Previous chapter Next chapter Show all Show all Hide all Hide all

Dans cette section

Déclaration des programmes

Déclaration des structures

Déclaration des variables

Déclarer des cartes d'E/S


Déclaration des programmes

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des programmes

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les fonctions permettant de manipuler les programmes.

Déclaration

paCreateProgram - Crée un programme principal.
paCreateSubProgram - Crée un sous-programme.
paCreateUDFB - Crée un UDFB.
paCreateSfcChildProgram - Crée un programme fils SFC.
paCopyProgram - Duplique un programme.
paSetProgramComment - Définit le commentaire d'un programme.

Manipuler les programmes existants

paEnumProgram - Enumère les programmes.
paGetProgramDesc - Rend la description d'un programme.
paDeleteProgram - Supprime un programme.

Dans cette section

paCreateProgram

paCreateSubProgram

paCreateUDFB

paCreateSfcChildProgram

paCopyProgram

paSetProgramComment

paEnumProgram

paGetProgramDesc

paDeleteProgram

paCreateProgramFolder

paSendProgramToFolder

paEnumProgramFolder

paDeleteProgramFolder


paCreateProgram

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des programmes -> paCreateProgram

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateProgram - Crée un programme principal

OK := paCreateProgram (NAME, LANGUAGE)

Paramètres | Description
NAME : STRING; | Nom du programme.
LANGUAGE : STRING; | Langage (voir notes).
OK : BOOL; | TRUE si réussi.

Description

Cette fonction crée un principal. Les programmes principaux sont arrangés dans le cycle selon l'ordre dans lequel vous les déclarez dans le script.

Voici les valeurs possibles pour le paramètre LANGUAGE:

Valeur | Description
_LG_SFC | Sequential Function Chart.
_LG_FBD | Function Block Diagram.
_LG_LD | Ladder Diagram.
_LG_ST | Structured Text.
_LG_IL | Instruction List.

Example Example

// Crée un dossier
paCreateProgramFolder ('Folder1') then
// Crée un programme en langage LD
if paCreateProgram ('Prog1', _LG_LD) then
// met le programme dans le dossier
paSendProgramToFolder ('Prog1', 'Folder1');
end_if;

seealso See also

paCreateSubProgram - Crée un sous-programme.
paCreateUDFB - Crée un UDFB.
paCreateSfcChildProgram - Crée un programme fils SFC.
paCopyProgram - Duplique un programme.
paSetProgramComment - Définit le commentaire d'un programme.

paEnumProgram - Enumère les programmes.
paGetProgramDesc - Rend la description d'un programme.
paDeleteProgram - Supprime un programme.

paCreateProgramFolder - Crée un dossier.
paSendProgramToFolder - Déplace un programme dans un dossier.
paEnumProgramFolder - Enumère les dossiers.
paDeleteProgramFolder - Supprime un dossier.


paCreateSubProgram

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des programmes -> paCreateSubProgram

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateSubProgram - Crée un sous-programme

OK := paCreateSubProgram (NAME, LANGUAGE)

Paramètre | Description
NAME : STRING; | Nom du programme
LANGUAGE : STRING; | Langage (voir notes)
OK : BOOL; | TRUE si réussi

Description

Cette fonction crée un sous-programme.

Voici les valeurs possibles pour le paramètre LANGUAGE:

Valeur | Description
_LG_FBD | Function Block Diagram.
_LG_LD | Ladder Diagram.
_LG_ST | Structured Text.
_LG_IL | Instruction List.

Example Example

// Crée un dossize
paCreateProgramFolder ('SubPrograms') then
// Crée un sous-programme en LD
if paCreateSubProgram ('SP1', _LG_LD) then
// met le programme dans le dossier
paSendProgramToFolder ('SP1', 'SubPrograms');
end_if;

seealso See also

paCreateProgram - Crée un programme principal.
paCreateUDFB - Crée un UDFB.
paCreateSfcChildProgram - Crée un programme fils SFC.
paCopyProgram - Duplique un programme.
paSetProgramComment - Définit le commentaire d'un programme.

paEnumProgram - Enumère les programmes.
paGetProgramDesc - Rend la description d'un programme.
paDeleteProgram - Supprime un programme.

paCreateProgramFolder - Crée un dossier.
paSendProgramToFolder - Déplace un programme dans un dossier.
paEnumProgramFolder - Enumère les dossiers.
paDeleteProgramFolder - Supprime un dossier.


paCreateUDFB

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des programmes -> paCreateUDFB

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateUDFB - Crée un UDFB

OK := paCreateUDFB (NAME, LANGUAGE)

Paramètres | Description
NAME : STRING; | Nom de l'UDFB
LANGUAGE : STRING; | Langage (voir notes)
OK : BOOL; | TRUE si réussi

Description

Cette fonction crée un bloc fonctionnel (UDFB).

Voici les valeurs possibles pour le paramètre LANGUAGE:

Valeur | Description
_LG_FBD | Function Block Diagram.
_LG_LD | Ladder Diagram.
_LG_ST | Structured Text.
_LG_IL | Instruction List.

Example Example

// Crée un dossize
paCreateProgramFolder ('UDFBs') then
// Crée un UDFB en LD
if paCreateUDFB ('FB1', _LG_LD) then
// met l'UDFB dans le dossier
paSendProgramToFolder ('F1', 'UDFBs');
end_if;

seealso See also

paCreateProgram - Crée un programme principal.
paCreateSubProgram - Crée un sous-programme.
paCreateSfcChildProgram - Crée un programme fils SFC.
paCopyProgram - Duplique un programme.
paSetProgramComment - Définit le commentaire d'un programme.

paEnumProgram - Enumère les programmes.
paGetProgramDesc - Rend la description d'un programme.
paDeleteProgram - Supprime un programme.

paCreateProgramFolder - Crée un dossier.
paSendProgramToFolder - Déplace un programme dans un dossier.
paEnumProgramFolder - Enumère les dossiers.
paDeleteProgramFolder - Supprime un dossier.


paCreateSfcChildProgram

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des programmes -> paCreateSfcChildProgram

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateSfcChildProgram - Crée un programme fils SFC

OK := paCreateUDFB (NAME, PARENT)

Paramètres | Description
NAME : STRING; | Nom du programme
PARENT : STRING; | Nom du programme SFC père
OK : BOOL; | TRUE si réussi

Description

Cette fonction crèe une programme SFC comme fils du programme spécifié par PARENT. Le programme père doit exister.

Example Example

// crée le programme père
paCreateProgram ('MAIN', _LG_SFC);
// crée le programme fils
paCreateSfcChildProgram ('Child1', 'MAIN');

seealso See also

paCreateProgram - Crée un programme principal.
paCreateSubProgram - Crée un sous-programme.
paCreateUDFB - Crée un UDFB.
paCopyProgram - Duplique un programme.
paSetProgramComment - Définit le commentaire d'un programme.

paEnumProgram - Enumère les programmes.
paGetProgramDesc - Rend la description d'un programme.
paDeleteProgram - Supprime un programme.

paCreateProgramFolder - Crée un dossier.
paSendProgramToFolder - Déplace un programme dans un dossier.
paEnumProgramFolder - Enumère les dossiers.
paDeleteProgramFolder - Supprime un dossier.


paCopyProgram

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des programmes -> paCopyProgram

Previous chapter Next chapter Show all Show all Hide all Hide all

paCopyProgram - Duplique un programme

OK := paCopyProgram (SRC, DST)

Paramètre | Description
SRC : STRING; | Nom du programme source.
DST : STRING; | Nom du programme de destination.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction copie le programme SRC dans DST. Cette fonction crée le programme DST et ne doit pas être utilisée pour écraser un programme existant.

seealso See also

paCreateProgram - Crée un programme principal.
paCreateSubProgram - Crée un sous-programme.
paCreateUDFB - Crée un UDFB.
paCreateSfcChildProgram - Crée un programme fils SFC.
paSetProgramComment - Définit le commentaire d'un programme.

paEnumProgram - Enumère les programmes.
paGetProgramDesc - Rend la description d'un programme.
paDeleteProgram - Supprime un programme.

paCreateProgramFolder - Crée un dossier.
paSendProgramToFolder - Déplace un programme dans un dossier.
paEnumProgramFolder - Enumère les dossiers.
paDeleteProgramFolder - Supprime un dossier.


paSetProgramComment

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des programmes -> paSetProgramComment

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetProgramComment - Définit le commentaire d'un programme

OK := paSetProgramComment (NAME, COMM)

Paramètres | Description
NAME : STRING; | Nom du programme
COMM : STRING; | Commentaire
OK : BOOL; | TRUE si réussi

Description

Cette fonction affecte un commentaire au programme, sous-programme ou UDFB spécifié.

Example Example

// crée un programme
paCreateProgram ('PROG1', _LG_ST);
// commentaire
paSetProgramComment ('PROG1', 'This is PROG1 description');

seealso See also

paCreateProgram - Crée un programme principal.
paCreateSubProgram - Crée un sous-programme.
paCreateUDFB - Crée un UDFB.
paCreateSfcChildProgram - Crée un programme fils SFC.
paCopyProgram - Duplique un programme.

paEnumProgram - Enumère les programmes.
paGetProgramDesc - Rend la description d'un programme.
paDeleteProgram - Supprime un programme.

paCreateProgramFolder - Crée un dossier.
paSendProgramToFolder - Déplace un programme dans un dossier.
paEnumProgramFolder - Enumère les dossiers.
paDeleteProgramFolder - Supprime un dossier.


paEnumProgram

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des programmes -> paEnumProgram

Previous chapter Next chapter Show all Show all Hide all Hide all

paEnumProgram - Enumère les programmes du projet cible

bloc fonctionnel: Inst_paEnumProgram (LOAD, CHECK, ITEM, FILTER)

Entrée | Description
CHECK : BOOL; | Si TRUE, ouvre une boîte de sélection.
ITEM : DINT; | Index de l'item voulu en sortie (commence à 1).
FILTER : STRING; | Masque de filtrage pour le chargement.

Sortie | Description
NB : DINT; | Nombre de programme.
Q : STRING; | Nom du programme sélectionné par l'entrée ITEM.

Description

Ce bloc fonctionnel vous permet d'énumérer les programmes, sous-programmes et UDFB du projet cible. Vous devez d'abord l'appeler avec l'entrée LOAD à TRUE pour charger la liste. Vous obtenez alors le nombre de POUs dans la sortie NB. Vous pouvez ensuite appeler le bloc avec LOAD à FALSE en spéficiant l'index de l'élément voulu dans l'entrée ITEM pour obtenir son nom dans la sortie Q. La numérotation des items commence à 1.

Après le chargement, vous pouvez faire un appel avec CHECK à TRUE pour ouvrir une boîte de dialogue dans laquelle l'utilisateur peut sélectionner les éléments retenus. Après validation, seuls les éléments retenus sont conservés dans la liste.

Lors du chargement (LOAD à TRUE), vous pouvez spécifier une chaîne de filtre contenant des caractères jokers '*' ou '?'.

Example Example

// "ENU" est une instance déclarée du bloc paEnumProgram
// charger tous les POUs
ENU (TRUE, FALSE, 0, '*');
// ouvre une boîte de dialogue pour la sélection des items
ENU (FALSE, TRUE, 0, '');
// enumère les items retenus
for i := 1 to ENU.NB do
// sélectionne l'item "i"
ENU (FALSE, FALSE, i, '');
// nom du POU spécifié par l'item "i"
sProgName := ENU.Q;
end_for;

seealso See also

paCreateProgram - Crée un programme principal.
paCreateSubProgram - Crée un sous-programme.
paCreateUDFB - Crée un UDFB.
paCreateSfcChildProgram - Crée un programme fils SFC.
paCopyProgram - Duplique un programme.
paSetProgramComment - Définit le commentaire d'un programme.

paGetProgramDesc - Rend la description d'un programme.
paDeleteProgram - Supprime un programme.

paCreateProgramFolder - Crée un dossier.
paSendProgramToFolder - Déplace un programme dans un dossier.
paEnumProgramFolder - Enumère les dossiers.
paDeleteProgramFolder - Supprime un dossier.


paGetProgramDesc

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des programmes -> paGetProgramDesc

Previous chapter Next chapter Show all Show all Hide all Hide all

paGetProgramDesc - Rend des informations sur un programme

bloc fonctionnel: Inst_paGetProgramDesc (NAME)

Entrée | Description
NAME : STRING; | Nom du programme

Sortie | Description
OK : BOOL; | TRUE si réussi
KIND : STRING; | Type de POU
LANGUAGE : STRING; | Langage
PARENT : STRING; | Programme père SFC ou chaine vide
COMMENT : STRING; | Commentaire

Description

Ce bloc fonctionnel rend la description d'un programme, sous-programme ou UDFB.

Voici les valeurs possibles pour la sortie LANGUAGE:

Valeur | Description
_LG_SFC | Sequential Function Chart
_LG_FBD | Function Block Diagram
_LG_LD | Ladder Diagram
_LG_ST | Structured Text
_LG_IL | Instruction List

Voici les valeurs possibles pour la sortie KIND:

Valeur | Description
_POU_MAIN | programme principal
_POU_SP | sous-programme
_POU_UDFB | UDFB
_POU_CHILDOF | programme fils SFC (dans ce cas le nom du père est dans la sortie PARENT)

seealso See also

paCreateProgram - Crée un programme principal.
paCreateSubProgram - Crée un sous-programme.
paCreateUDFB - Crée un UDFB.
paCreateSfcChildProgram - Crée un programme fils SFC.
paCopyProgram - Duplique un programme.
paSetProgramComment - Définit le commentaire d'un programme.

paEnumProgram - Enumère les programmes.
paDeleteProgram - Supprime un programme.

paCreateProgramFolder - Crée un dossier.
paSendProgramToFolder - Déplace un programme dans un dossier.
paEnumProgramFolder - Enumère les dossiers.
paDeleteProgramFolder - Supprime un dossier.


paDeleteProgram

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des programmes -> paDeleteProgram

Previous chapter Next chapter Show all Show all Hide all Hide all

paDeleteProgram - Supprime un programme

OK := paDeleteProgram (NAME)

Paramètres | Description
NAME : STRING; | Nom du programme (voir notes)
OK : BOOL; | TRUE si réussi

Description

Cette fonction supprime le programme spécifié. Il peut être utilisé pour les programmes, sous-programmes et UDFBS. Le paramètre NAME peut contenir des jokers '?' ou '*'. Par exemple, paDeleteProgram ('*') supprime tous les POUs du projet. Si le programme spécifié est un programme SFC père, ses fils sont détruits avec lui.

seealso See also

paCreateProgram - Crée un programme principal.
paCreateSubProgram - Crée un sous-programme.
paCreateUDFB - Crée un UDFB.
paCreateSfcChildProgram - Crée un programme fils SFC.
paCopyProgram - Duplique un programme.
paSetProgramComment - Définit le commentaire d'un programme.

paEnumProgram - Enumère les programmes.
paGetProgramDesc - Rend la description d'un programme.

paCreateProgramFolder - Crée un dossier.
paSendProgramToFolder - Déplace un programme dans un dossier.
paEnumProgramFolder - Enumère les dossiers.
paDeleteProgramFolder - Supprime un dossier.


paCreateProgramFolder

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des programmes -> paCreateProgramFolder

Previous chapter Next chapter Show all Show all Hide all Hide all

obsolete


paSendProgramToFolder

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des programmes -> paSendProgramToFolder

Previous chapter Next chapter Show all Show all Hide all Hide all

obsolete


paEnumProgramFolder

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des programmes -> paEnumProgramFolder

Previous chapter Next chapter Show all Show all Hide all Hide all

obsolete


paDeleteProgramFolder

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des programmes -> paDeleteProgramFolder

Previous chapter Next chapter Show all Show all Hide all Hide all

obsolete


Déclaration des structures

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des structures

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les services de manipulation des types de données (structures).

Déclaration

paCreateStruct - Crée une structure.
paSetStructComment - Définit le commentaire d'une structure.

Manipulation des structures

paEnumStruct - Enumère les structures.
paGetStructDesc - Rend la description d'une structure.
paDeleteStruct - Supprime une structure.

Dans cette section

paCreateStruct

paSetStructComment

paEnumStruct

paGetStructDesc

paDeleteStruct


paCreateStruct

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des structures -> paCreateStruct

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateStruct - Crée structure

OK := paCreateStruct (NAME)

Paramétres | Description
NAME : STRING; | Nom de la structure.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction crèe une nouvelle structure vide.

seealso See also

paSetStructComment - Définit le commentaire d'une structure.

paEnumStruct - Enumère les structures.
paGetStructDesc - Rend la description d'une structure.
paDeleteStruct - Supprime une structure.


paSetStructComment

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des structures -> paSetStructComment

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetStructComment - Définit le commentaire d'une structure

OK := paSetStructComment (NAME, COMM)

Paramétres | Description
NAME : STRING; | Nom de la structure.
COMM : STRING; | Commentaire.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction définit le commentaire d'une structure.

seealso See also

paCreateStruct - Crée une structure.

paEnumStruct - Enumère les structures.
paGetStructDesc - Rend la description d'une structure.
paDeleteStruct - Supprime une structure.


paEnumStruct

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des structures -> paEnumStruct

Previous chapter Next chapter Show all Show all Hide all Hide all

paEnumStruct - Enumère les structures du projet cible

bloc fonctionnel: Inst_paEnumStruct (LOAD, CHECK, ITEM, FILTER)

Entrée | Description
LOAD : TRUE; | Si TRUE, charge la liste des structures.
CHECK : BOOL; | If TRUE, ouvre une boîte de sélection.
ITEM : DINT; | Index de l'item désiré en sortie (commence à 1).
FILTER : STRING; | Masque de chargement.

Sortie | Description
NB : DINT; | Nombre de structures.
Q : STRING; | Nom de l'item sélectionné par l'entrée ITEM.

Description

Ce bloc fonctionnel vous permet d'énumérer les structures du projet cible. Vous devez d'abord l'appeler avec l'entrée LOAD à TRUE pour charger la liste. Vous obtenez alors le nombre de structures dans la sortie NB. Vous pouvez ensuite appeler le bloc avec LOAD à FALSE en spéficiant l'index de l'élément voulu dans l'entrée ITEM pour obtenir son nom dans la sortie Q. La numérotation des items commence à 1.

Après le chargement, vous pouvez faire un appel avec CHECK à TRUE pour ouvrir une boîte de dialogue dans laquelle l'utilisateur peut sélectionner les éléments retenus. Après validation, seuls les éléments retenus sont conservés dans la liste.

Lors du chargement (LOAD à TRUE), vous pouvez spécifier une chaîne de filtre contenant des caractères jokers '*' ou '?'.

Example Example

// "ENU" est une instance déclarée du bloc paEnumStruct
// charge toutes les structures
ENU (TRUE, FALSE, 0, '*');
// ouvre une boîte de sélection
ENU (FALSE, TRUE, FALSE, 0, '');
// enumére les items retenus
for i := 1 to ENU.NB do
// sélectionne l'item "i"
ENU (FALSE, FALSE, i, '');
// nom de l'item spécifié par "i"
sProgName := ENU.Q;
end_for;

seealso See also

paCreateStruct - Crée une structure.
paSetStructComment - Définit le commentaire d'une structure.

paGetStructDesc - Rend la description d'une structure.
paDeleteStruct - Supprime une structure.


paGetStructDesc

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des structures -> paGetStructDesc

Previous chapter Next chapter Show all Show all Hide all Hide all

paGetStructDesc - Rend la description d'une structure

bloc fonctionnel: Inst_paGetStructDesc (NAME)

Entrée | Description
NAME : STRING; | Nom de la structure.

Sortie | Description
OK : BOOL; | TRUE si réussi.
COMMENT : STRING; | Commentaire.

Description

Ce bloc fonctionnel rend la description d'une structure.

seealso See also

paCreateStruct - Crée une structure.
paSetStructComment - Définit le commentaire d'une structure.

paEnumStruct - Enumère les structures.
paDeleteStruct - Supprime une structure.


paDeleteStruct

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des structures -> paDeleteStruct

Previous chapter Next chapter Show all Show all Hide all Hide all

paDeleteStruct - Supprime une structure

OK := paDeleteStruct (NAME)

Entrée | Description
NAME : STRING; | Nom de la structure (voir notes).
OK : BOOL; | TRUE si réussi.

Description

Cette fonction supprime la structure spéficiée. Le paramètre NAME peut contenir des jokers '?' ou '*'. Par exemple, paDeleteStruct ('*') supprime toutes les structures du projet.

seealso See also

paCreateStruct - Crée une structure.
paSetStructComment - Définit le commentaire d'une structure.

paEnumStruct - Enumère les structures.
paGetStructDesc - Rend la description d'une structure.


Déclaration des variables

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des variables

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les services de manipulation des variables.

Déclaration

paCreateVar - Crée une variable.
paCreateInputParam - Crée un paramètre d'entrée de sous-programme ou UDFB.
paCreateOutputParam - Crée unen output parameter d'une sous-programme ou UDFB.
paSetVarXDim(s) - Définit la dimension(s) d'une variable.
paSetVarInitValue - Définit la valeur initiale d'une variable.
paSetVarComment - Définit les commentaires d'une variable.
paEmbedVarSymbol - Spécifie si le symbole d'une variable doit être embarqué.
paProfileVar - Définit le profil et les propriétés d'une variable.

Manipulation des variables

paEnumVar - Enumère les variables.
paGetVarDesc - Rend la descripiton d'une variable.
paDeleteVar - Supprime une variable.

Conventions

Dans chaque fonction où vous devez spécifier une variable par son som, vous devez indiquer le groupe contenant la variable. Une variable peut être Globale ou I/O, Retain, Locale à un POU ou être un élément de structure.

La convention pour ces fonctions est de préfixer le nom de la variable par le nom du groupe suivi du séparateur '.'. Si aucun groupe n'est spécifié, la variable est considérée comme Golbale.

Example Example

Déclaration | Description
VarName | Une variable globale.
RETAIN.VarName | Une variable RETAIN.
%IX1.0 | Une voie de carte d'IO.
ProgName.LocVarName | Une variable locale à un programme.
UDFBName.ParamName | Un paramètre d'UDFB.
StructName.Item | Un élément de structure.

Dans cette section

paCreateVar

paCreateInputParam

paCreateOutputParam

paSetVarDim

paSetVarInitValue

paSetVarComment

paEmbedVarSymbol

paProfileVar

paEnumVar

paGetVarDesc

paDeleteVar


paCreateVar

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des variables -> paCreateVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateVar - Crée une variable

OK := paCreateVar (SNAME, STYPE)

Paramètre | Description
SNAME : STRING; | Nom de la variable et spéficication de son groupe (voir conventions).
STYPE : STRING; | Type de donnée.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction déclare une variable dans le groupe spécifié. Le paramètre STYPE indique le type de donnée. Il peut s'agir d'un type de bloc fonctionnelpour la déclaration d'une instance. Pour une variable STRING, la taille doit être indiquée entre parenthèses. ex 'STRING(255)'

La même fonction est utilisée pour créer un élément de structure.

Example Example

// variable globale et instance de bloc
paCreateVar ('Global1', 'BOOL');
paCreateVar ('Timer1', 'TON');
// variable RETAIN
paCreateVar ('RETAIN.RetVar1', 'STRING(20)');
// variable locale à un programme
paCreateVar ('Prog1.Local1', 'DINT');
// item de structure
paCreateVar ('Struct1.Item1', 'REAL');

seealso See also

paCreateInputParam - Crée un paramètre d'entrée de sous-programme ou UDFB.
paCreateOutputParam - Crée unen output parameter d'une sous-programme ou UDFB.
paSetVarXDim(s) - Définit la dimension(s) d'une variable.
paSetVarInitValue - Définit la valeur initiale d'une variable.
paSetVarComment - Définit les commentaires d'une variable.
paEmbedVarSymbol - Spécifie si le symbole d'une variable doit être embarqué.
paProfileVar - Définit le profil et les propriétés d'une variable.

paEnumVar - Enumère les variables.
paGetVarDesc - Rend la descripiton d'une variable.
paDeleteVar - Supprime une variable.


paCreateInputParam

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des variables -> paCreateInputParam

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateInputParam - Crée unparamètre d'entrée de POU

OK := paCreateInputParam (SNAME, STYPE)

Paramétre | Description
SNAME : STRING; | Nom de la variable sous la forme 'POUName.VarName' (voir conventions).
STYPE : STRING; | Type de donnée.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction déclare un paramètre d'entrée dans le groupe spécifié. Le paramètre STYPE indique le type de donnée. Pour une variable STRING, la taille doit être indiquée entre parenthèses. ex 'STRING(255)'

Example Example

// Crée un sous-programme
paCreateSubProgram ('SP', _LG_LD);
// Déclare ses paramètres
paCreateInputParam ('SP.IN1', 'BOOL');
paCreateInputParam ('SP.IN2', 'DINT');
paCreateOutputParam ('SP.Q', 'BOOL');

seealso See also

paCreateVar - Crée une variable.
paCreateOutputParam - Crée unen output parameter d'une sous-programme ou UDFB.
paSetVarXDim(s) - Définit la dimension(s) d'une variable.
paSetVarInitValue - Définit la valeur initiale d'une variable.
paSetVarComment - Définit les commentaires d'une variable.
paEmbedVarSymbol - Spécifie si le symbole d'une variable doit être embarqué.
paProfileVar - Définit le profil et les propriétés d'une variable.

paEnumVar - Enumère les variables.
paGetVarDesc - Rend la descripiton d'une variable.
paDeleteVar - Supprime une variable.


paCreateOutputParam

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des variables -> paCreateOutputParam

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateOutputParam - Crée un paramètre de sortie POU

OK := paCreateOutputParam (SNAME, STYPE)

Paramétre | Description
SNAME : STRING; | Nom de la variable sous la forme 'POUName.VarName' (voir conventions).
STYPE : STRING; | Type de donnée.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction déclare un paramètre de sortie dans le groupe spécifié. Le paramètre STYPE indique le type de donnée. Pour une variable STRING, la taille doit être indiquée entre parenthèses. ex 'STRING(255)'

Example Example

// Crée un sous-programme
paCreateSubProgram ('SP', _LG_LD);
// Déclare ses paramètres
paCreateInputParam ('SP.IN1', 'BOOL');
paCreateInputParam ('SP.IN2', 'DINT');
paCreateOutputParam ('SP.Q', 'BOOL');

seealso See also

paCreateVar - Crée une variable.
paCreateInputParam - Crée un paramètre d'entrée de sous-programme ou UDFB.
paSetVarXDim(s) - Définit la dimension(s) d'une variable.
paSetVarInitValue - Définit la valeur initiale d'une variable.
paSetVarComment - Définit les commentaires d'une variable.
paEmbedVarSymbol - Spécifie si le symbole d'une variable doit être embarqué.
paProfileVar - Définit le profil et les propriétés d'une variable.

paEnumVar - Enumère les variables.
paGetVarDesc - Rend la descripiton d'une variable.
paDeleteVar - Supprime une variable.


paSetVarDim

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des variables -> paSetVarDim

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetVar1Dim / paSetVar2Dims / paSetVar3Dims - Définit la dimension(s) d'une variable (tableau)

OK := paSetVarDim (NAME, DIM) // tableau à 1 dimension
OK := paSetVar2Dims (NAME, DIMHIGH, DIMLOW) // tableau à 2 dimensions
OK := paSetVar3Dims (NAME, DIMHIGH, DIMMEDIUM, DIMLOW) // tableau à 3 dimensions

Paramétre | Description
NAME : STRING; | Nom de la variable et spécification de son groupe (voir conventions).
DIMxxx : DINT; | Dimension(s) du tableau.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction définit la ou les dimensions d'une variable déclarée, pour en faire un tableau. La même fonction peut être utilisées pour un élément de structure.

Example Example

// déclare Array1 : array [0..9] of BOOL
paCreateVar ('Array1', 'BOOL');
paSetVarDim ('Array1', 10);
// déclare Array2 : array [0..9,0..4] of BOOL
paCreateVar ('Array2', 'BOOL');
paSetVar2Dims ('Array2', 10, 5);
// déclare Array2 : array [0..9,0..4,0..19] of BOOL
paCreateVar ('Array3', 'BOOL');
paSetVar3Dims ('Array3', 10, 5, 20);

seealso See also

paCreateVar - Crée une variable.
paCreateInputParam - Crée un paramètre d'entrée de sous-programme ou UDFB.
paCreateOutputParam - Crée unen output parameter d'une sous-programme ou UDFB.
paSetVarInitValue - Définit la valeur initiale d'une variable.
paSetVarComment - Définit les commentaires d'une variable.
paEmbedVarSymbol - Spécifie si le symbole d'une variable doit être embarqué.
paProfileVar - Définit le profil et les propriétés d'une variable.

paEnumVar - Enumère les variables.
paGetVarDesc - Rend la descripiton d'une variable.
paDeleteVar - Supprime une variable.


paSetVarInitValue

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des variables -> paSetVarInitValue

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetVarInitValue - Définit la valeur initiale d'une variable

OK := paSetVarInitValue (NAME, VALUE)

Paramétre | Description
NAME : STRING; | Nom de la variable et spécification de son groupe (voir conventions).
VALUE : STRING; | Valeur initiale - syntaxe IEC 61131-3.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction définit la valeur intiale d'une variable déclarée. La même fonction peut être utilisées pour un élément de structure.

Example Example

// déclare Integer1 : DINT := 1234;
paCreateVar ('Integer1', 'BOOL');
paSetVarInitValue ('Integer1', '1234');
// déclare Array1 : array [0..3] of BOOL := 1, 2, 3, 4;
paCreateVar ('Array1', 'BOOL');
paSetVarDim ('Array1', 4);
paSetVarInitValue ('Integer1', '1,2,3,4');

seealso See also

paCreateVar - Crée une variable.
paCreateInputParam - Crée un paramètre d'entrée de sous-programme ou UDFB.
paCreateOutputParam - Crée unen output parameter d'une sous-programme ou UDFB.
paSetVarXDim(s) - Définit la dimension(s) d'une variable.
paSetVarComment - Définit les commentaires d'une variable.
paEmbedVarSymbol - Spécifie si le symbole d'une variable doit être embarqué.
paProfileVar - Définit le profil et les propriétés d'une variable.

paEnumVar - Enumère les variables.
paGetVarDesc - Rend la descripiton d'une variable.
paDeleteVar - Supprime une variable.


paSetVarComment

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des variables -> paSetVarComment

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetVarComment - Définit les commentaires d'une variable

OK := paSetVarComment (NAME, COMM, TAG)

Paramétre | Description
NAME : STRING; | Nom de la variable et spécification de son groupe (voir conventions).
COMM : STRING; | Description.
TAG : STRING; | Repère.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction définit les commentaires d'une variable déclarée. The same function can be for an item in a data structure.

seealso See also

paCreateVar - Crée une variable.
paCreateInputParam - Crée un paramètre d'entrée de sous-programme ou UDFB.
paCreateOutputParam - Crée unen output parameter d'une sous-programme ou UDFB.
paSetVarXDim(s) - Définit la dimension(s) d'une variable.
paSetVarInitValue - Définit la valeur initiale d'une variable.
paEmbedVarSymbol - Spécifie si le symbole d'une variable doit être embarqué.
paProfileVar - Définit le profil et les propriétés d'une variable.

paEnumVar - Enumère les variables.
paGetVarDesc - Rend la descripiton d'une variable.
paDeleteVar - Supprime une variable.


paEmbedVarSymbol

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des variables -> paEmbedVarSymbol

Previous chapter Next chapter Show all Show all Hide all Hide all

paEmbedVarSymbol - Spécifie si le symbole d'une variable doit être embarqué

OK := paEmbedVarSymbol (NAME, SYB)

Paramétre | Description
NAME : STRING; | Nom de la variable et spécification de son groupe (voir conventions).
SYB : BOOL; | TRUE si le symbole doit être embarqué.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction spécifie si le symbole d'une variable déclarée doit être embarqué.

seealso See also

paCreateVar - Crée une variable.
paCreateInputParam - Crée un paramètre d'entrée de sous-programme ou UDFB.
paCreateOutputParam - Crée unen output parameter d'une sous-programme ou UDFB.
paSetVarXDim(s) - Définit la dimension(s) d'une variable.
paSetVarInitValue - Définit la valeur initiale d'une variable.
paSetVarComment - Définit les commentaires d'une variable.
paProfileVar - Définit le profil et les propriétés d'une variable.

paEnumVar - Enumère les variables.
paGetVarDesc - Rend la descripiton d'une variable.
paDeleteVar - Supprime une variable.


paProfileVar

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des variables -> paProfileVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paProfileVar - Définit le profil et les propriétés d'une variable

OK := paProfileVar (NAME, PROFILE, PROPERTIES)

Paramétre | Description
NAME : STRING; | Nom de la variable et spécification de son groupe (voir conventions).
PROFILE : STRING; | Nom de profil.
PROPERTIES : STRING; | Propriétés attachées au profil.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction définit le profil d'une variable et ses propriétés. Les propriétés sont spécifiées sous la forme:

prop=valeur,prop=valeur,...

Example Example

// déclare une variable
paCreateVar ('F1', 'BOOL');
// profil et propriétés
paProfileVar ('F1', 'FKey', 'Key=1');

seealso See also

paCreateVar - Crée une variable.
paCreateInputParam - Crée un paramètre d'entrée de sous-programme ou UDFB.
paCreateOutputParam - Crée unen output parameter d'une sous-programme ou UDFB.
paSetVarXDim(s) - Définit la dimension(s) d'une variable.
paSetVarInitValue - Définit la valeur initiale d'une variable.
paSetVarComment - Définit les commentaires d'une variable.
paEmbedVarSymbol - Spécifie si le symbole d'une variable doit être embarqué.

paEnumVar - Enumère les variables.
paGetVarDesc - Rend la descripiton d'une variable.
paDeleteVar - Supprime une variable.


paEnumVar

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des variables -> paEnumVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paEnumVar - Enumère les variables d'un groupe

bloc fonctionnel: Inst_paEnumVar (LOAD, CHECK, ITEM, FILTER)

Entrée | Description
CHECK : BOOL; | Si TRUE, ouvre une boîte de sélection.
ITEM : DINT; | Index de l'item désiré en sortie (commence à 1).
FILTER : STRING; | Spécification du groupe et masque de chargement.

Sortie | Description
NB : DINT; | Nombre de variables.
Q : STRING; | Nom de l'item sélectionné par l'entrée "ITEM".

Description

Ce bloc fonctionnel vous permet d'énumérer les variables d'un. Vous devez d'abord l'appeler avec l'entrée LOAD à TRUE pour charger la liste. Vous obtenez alors le nombre de structures dans la sortie NB. Vous pouvez ensuite appeler le bloc avec LOAD à FALSE en spéficiant l'index de l'élément voulu dans l'entrée ITEM pour obtenir son nom dans la sortie Q. La numérotation des items commence à 1.

Après le chargement, vous pouvez faire un appel avec CHECK à TRUE pour ouvrir une boîte de dialogue dans laquelle l'utilisateur peut sélectionner les éléments retenus. Après validation, seuls les éléments retenus sont conservés dans la liste.

Lors du chargement (LOAD à TRUE), vous devez spécifier le nom du groupe dans FILTER, possiblement suivi par "." et une chaîne de filtre contenant des caractères jokers '*' ou '?'.

Example Example

// "ENU" est une instance déclarée du bloc paEnumVar
// charge toutes les variables RETAIN
ENU (TRUE, FALSE, 0, 'RETAIN.*');
// ouvre une boîte de sélection
ENU (FALSE, TRUE, FALSE, 0, '');
// enumére les items retenus
for i := 1 to ENU.NB do
// sélectionne l'item "i"
ENU (FALSE, FALSE, i, '');
// nom de l'item spécifié par "i"
sVarName := ENU.Q;
end_for;

seealso See also

paCreateVar - Crée une variable.
paCreateInputParam - Crée un paramètre d'entrée de sous-programme ou UDFB.
paCreateOutputParam - Crée unen output parameter d'une sous-programme ou UDFB.
paSetVarXDim(s) - Définit la dimension(s) d'une variable.
paSetVarInitValue - Définit la valeur initiale d'une variable.
paSetVarComment - Définit les commentaires d'une variable.
paEmbedVarSymbol - Spécifie si le symbole d'une variable doit être embarqué.
paProfileVar - Définit le profil et les propriétés d'une variable.

paGetVarDesc - Rend la descripiton d'une variable.
paDeleteVar - Supprime une variable.


paGetVarDesc

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des variables -> paGetVarDesc

Previous chapter Next chapter Show all Show all Hide all Hide all

paGetVarDesc - Rend la description d'une variable

bloc fonctionnel: Inst_paGetVarDesc (NAME)

Entrée | Description
NAME : STRING; | Nom de la variable et spécification de son groupe (voir conventions)

Sortie | Description
OK : BOOL; | TRUE si réussi.
INPARAM : BOOL; | TRUE = paramètre d'entrée.
OUTPARAM : BOOL; | TRUE = paramètre de sortie.
DATATYPE : STRING; | Type de donnée.
DIMTOTAL : DINT; | Nombre total d'éléments pour un tableau.
DIMHIGH : DINT; | Dimension haute (0 pour tableaux à 1 ou 2 dimensions).
DIMMEDIUM : DINT; | Dimension médiane (0 pour tableaux à 1 dimension).
DIMLOW : DINT; | Dimension basse.
INIT : STRING; | Valeur initiale - syntaxe IEC.
SYB : BOOL; | TRUE = le symbole doit être embarqué.
PROFILE : STRING; | Profil.
PROPS : STRING; | Propriétés attachées au profil.
COMMENT : STRING; | Description.
TAG : STRING; | Repère.

Description

Cette fonction rend la description d'une variable, ou d'un élément de structure.

seealso See also

paCreateVar - Crée une variable.
paCreateInputParam - Crée un paramètre d'entrée de sous-programme ou UDFB.
paCreateOutputParam - Crée unen output parameter d'une sous-programme ou UDFB.
paSetVarXDim(s) - Définit la dimension(s) d'une variable.
paSetVarInitValue - Définit la valeur initiale d'une variable.
paSetVarComment - Définit les commentaires d'une variable.
paEmbedVarSymbol - Spécifie si le symbole d'une variable doit être embarqué.
paProfileVar - Définit le profil et les propriétés d'une variable.

paEnumVar - Enumère les variables.
paDeleteVar - Supprime une variable.


paDeleteVar

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclaration des variables -> paDeleteVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paDeleteVar - Supprime une variable

OK := paDeleteVar (NAME)

Paramètre | Description
NAME : STRING; | Nom de la variable et spécification de son groupe (voir conventions).
OK : BOOL; | TRUE si réussi.

Description

Cette fonction supprime une variable. La même fonction peut être utilisées pour un élément de structure.

Le paramètre NAME peut contenir des jokers '?' ou '*', mais le groupe doit être intégralement spécifié. Par exemple, paDeleteVar ('RETAIN.*') supprime toutes les variables RETAIN.

seealso See also

paCreateVar - Crée une variable.
paCreateInputParam - Crée un paramètre d'entrée de sous-programme ou UDFB.
paCreateOutputParam - Crée unen output parameter d'une sous-programme ou UDFB.
paSetVarXDim(s) - Définit la dimension(s) d'une variable.
paSetVarInitValue - Définit la valeur initiale d'une variable.
paSetVarComment - Définit les commentaires d'une variable.
paEmbedVarSymbol - Spécifie si le symbole d'une variable doit être embarqué.
paProfileVar - Définit le profil et les propriétés d'une variable.

paEnumVar - Enumère les variables.
paGetVarDesc - Rend la descripiton d'une variable.


Déclarer des cartes d'E/S

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclarer des cartes d'E/S

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les fonctions pour la déclaration des cartes d'E/S du projet cible.

Declaration

paCreateIOBoard - Crée une instance d'un équipement d'E/S.
paSetIOBoardComment - Donne un texte de description pour un équipement d'E/S.
paSetIOBoardParam - Définit un paramètre d'une carte d'E/S.
paSetIOAlias - Définit un alias pour une voie d'E/S.

Manuipuler les cartes d'E/S existantes

paEnumIOBoards - Enumère les cartes d'E/S.
paGetIOBoardDesc - Rend la description d'une carte d'E/S.
paDeleteIOBoard - Supprime une instance d'un équipement d'E/S.
paDeleteAllIOBoards - Supprime tous les équipement d'E/S.

Dans cette section

paCreateIOBoard

paSetIOBoardComment

paSetIOBoardParam

paSetIOAlias

paEnumIOBoards

paGetIOBoardDesc

paDeleteIOBoard

paDeleteAllIOBoards


paCreateIOBoard

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclarer des cartes d'E/S -> paCreateIOBoard

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateIOBoard - Crée une instance de an équipement d'E/S

OK := paCreateIOBoard (SLOT, DEVTYPE)

Paramètres | Description
SLOT : DINT; | Numéro de slot (0..255).
DEVTYPE : STRING; | Nom du type d'équipement d'E/S.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction crée une instance de l'équipement d'E/S spécifié au numéro de slot spécifié.

seealso See also

paSetIOBoardComment - Donne un texte de description pour un équipement d'E/S.
paSetIOBoardParam - Définit un paramètre d'une carte d'E/S.
paSetIOAlias - Définit un alias pour une voie d'E/S.

paEnumIOBoards - Enumère les cartes d'E/S.
paGetIOBoardDesc - Rend la description d'une carte d'E/S.
paDeleteIOBoard - Supprime une instance d'un équipement d'E/S.
paDeleteAllIOBoards - Supprime tous les équipement d'E/S.


paSetIOBoardComment

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclarer des cartes d'E/S -> paSetIOBoardComment

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetIOBoardComment - Donne un texte de description à un équipement d'E/S

OK := paSetIOBoardComment (SLOT, COMM)

Paramètres | Description
SLOT : DINT; | Numéro de slot (0..255).
COMM : STRING; | Description.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction définit le commentaire de l'instance d'équipement d'E/S spécifié.

seealso See also

paCreateIOBoard - Crée une instance d'un équipement d'E/S.
paSetIOBoardParam - Définit un paramètre d'une carte d'E/S.
paSetIOAlias - Définit un alias pour une voie d'E/S.

paEnumIOBoards - Enumère les cartes d'E/S.
paGetIOBoardDesc - Rend la description d'une carte d'E/S.
paDeleteIOBoard - Supprime une instance d'un équipement d'E/S.
paDeleteAllIOBoards - Supprime tous les équipement d'E/S.


paSetIOBoardParam

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclarer des cartes d'E/S -> paSetIOBoardParam

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetIOBoardParam - Définit un paramètre d'un équipement d'E/S

OK := paSetIOBoardComment (SLOT, COMM)

Paramètres | Description
BOARD : STRING; | Nom de la carte (ex. '%QX0').
PARAM : STRING; | Nom du paramètre.
VALUE : STRING; | Valeur du paramètre.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction définit la valeur d'un paramètre d'une carte d'E/S. Référez-vous aux instructions du constructeurs pour la description des paramètres.

seealso See also

paCreateIOBoard - Crée une instance d'un équipement d'E/S.
paSetIOBoardComment - Donne un texte de description pour un équipement d'E/S.
paSetIOAlias - Définit un alias pour une voie d'E/S.

paEnumIOBoards - Enumère les cartes d'E/S.
paGetIOBoardDesc - Rend la description d'une carte d'E/S.
paDeleteIOBoard - Supprime une instance d'un équipement d'E/S.
paDeleteAllIOBoards - Supprime tous les équipement d'E/S.


paSetIOAlias

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclarer des cartes d'E/S -> paSetIOAlias

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetIOAlias - Définit un alias pour une voie d'E/S

OK := paSetIOBoardComment (SLOT, COMM)

Paramètres | Description
VOIE : STRING; | Nom de la voie (ex. '%QX0.1').
ALIAS : STRING; | Nom à utiliser comme alias.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction définit un alias pur la voie spécifiée. Cet alias peut ensuite être utilisé dans les programmes pour remplacer le nom "%" de la variable d'E/S.

seealso See also

paCreateIOBoard - Crée une instance d'un équipement d'E/S.
paSetIOBoardComment - Donne un texte de description pour un équipement d'E/S.
paSetIOBoardParam - Définit un paramètre d'une carte d'E/S.
paEnumIOBoards - Enumère les cartes d'E/S.
paGetIOBoardDesc - Rend la description d'une carte d'E/S.
paDeleteIOBoard - Supprime une instance d'un équipement d'E/S.
paDeleteAllIOBoards - Supprime tous les équipement d'E/S.


paEnumIOBoards

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclarer des cartes d'E/S -> paEnumIOBoards

Previous chapter Next chapter Show all Show all Hide all Hide all

paEnumIOBoards - Enumère les cartes d'E/S du projet

bloc fonctionnel: Inst_paEnumIOBoard (LOAD, CHECK, ITEM, FILTER)

Entrées | Description
LOAD : TRUE; | Si TRUE, charge la liste des cartes.
CHECK : BOOL; | Si TRUE, ouvre une boîte de sélection des cartes.
ITEM : DINT; | Index de l'item voulu en sortie (commence à 1).

Sorties | Description
NB : DINT; | Nombre de cartes.
Q : STRING; | Nom de la carte sélectionné par "ITEM".

Description

Ce bloc fonctionnel vous permet d'énumérer les cartes du projet cible. Vous devez d'abord l'appeler avec l'entrée LOAD à TRUE pour charger la liste. Vous obtenez alors le nombre de cartes dans la sortie NB. Vous pouvez ensuite appeler le bloc avec LOAD à FALSE en spéficiant l'index de la carte voulue dans l'entrée ITEM pour obtenir son nom dans la sortie Q. La numérotation des items commence à 1.

Pour les équipements complexes, seules les cartes "filles" sont listées.

Après le chargement, vous pouvez faire un appel avec CHECK à TRUE pour ouvrir une boîte de dialogue dans laquelle l'utilisateur peut sélectionner les éléments retenus. Après validation, seuls les éléments retenus sont conservés dans la liste.

Example Example

// "ENU" est une instance déclarée du bloc paEnumIOBoard
// charge toutes les cartes
ENU (TRUE, FALSE, 0);
// ouvre une boîte pour la sélection des items
ENU (FALSE, TRUE, FALSE, 0);
// énumère les items retenus
for i := 1 to ENU.NB do
// sélectionne l'item "i"
ENU (FALSE, FALSE, i);
// trouve le nom de l'item spécifié par "i"
sBoardName := ENU.Q;
end_for;

seealso See also

paCreateIOBoard - Crée une instance d'un équipement d'E/S.
paSetIOBoardComment - Donne un texte de description pour un équipement d'E/S.
paSetIOBoardParam - Définit un paramètre d'une carte d'E/S.
paSetIOAlias - Définit un alias pour une voie d'E/S.

paGetIOBoardDesc - Rend la description d'une carte d'E/S.
paDeleteIOBoard - Supprime une instance d'un équipement d'E/S.
paDeleteAllIOBoards - Supprime tous les équipement d'E/S.


paGetIOBoardDesc

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclarer des cartes d'E/S -> paGetIOBoardDesc

Previous chapter Next chapter Show all Show all Hide all Hide all

paGetIOBoardDesc - Rend la description d'une carte d'E/S

bloc fonctionnel: Inst_paGetIOBoardDesc (NAME)

Entrées | Description
NAME : STRING; | Nom de la carte (ex. '%QX0').

Sorties | Description
OK : BOOL; | TRUE si réussi.
NBVOIE : DINT; | Nombre de voies.
DEVNAME : STRING; | Nom de l'équipement d'E/S.
DEVGROUP : STRING; | En cas d'un équipement complexe, nom du groupe au sein de l'équipement.
COMMENT : STRING | Commentaire associé.

Description

Ce bloc fonctionnel rend la description complète d'un équipement d'E/S déclaré.

seealso See also

paCreateIOBoard - Crée une instance d'un équipement d'E/S.
paSetIOBoardComment - Donne un texte de description pour un équipement d'E/S.
paSetIOBoardParam - Définit un paramètre d'une carte d'E/S.
paSetIOAlias - Définit un alias pour une voie d'E/S.

paEnumIOBoards - Enumère les cartes d'E/S.
paDeleteIOBoard - Supprime une instance d'un équipement d'E/S.
paDeleteAllIOBoards - Supprime tous les équipement d'E/S.


paDeleteIOBoard

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclarer des cartes d'E/S -> paDeleteIOBoard

Previous chapter Next chapter Show all Show all Hide all Hide all

paDeleteIOBoard - Supprime une instance d'équipement d'E/S

OK := paDeleteIOBoard (SLOT)

Paramètres | Description
SLOT : DINT; | Numéro de slot (0..255).
OK : BOOL; | TRUE si réussi.

Description

Cette fonction supprime l'instance spécifiée. En cas d'un équipement complexe, l'équipement complet (avec tous ses groupes) est supprimé.

seealso See also

paCreateIOBoard - Crée une instance d'un équipement d'E/S.
paSetIOBoardComment - Donne un texte de description pour un équipement d'E/S.
paSetIOBoardParam - Définit un paramètre d'une carte d'E/S.
paSetIOAlias - Définit un alias pour une voie d'E/S.

paEnumIOBoards - Enumère les cartes d'E/S.
paGetIOBoardDesc - Rend la description d'une carte d'E/S.
paDeleteAllIOBoards - Supprime tous les équipement d'E/S.


paDeleteAllIOBoards

Automation de projets -> Librairie d'automation - Référence -> Déclaration des objets -> Déclarer des cartes d'E/S -> paDeleteAllIOBoards

Previous chapter Next chapter Show all Show all Hide all Hide all

paDeleteAllIOBoards - Supprime toutes les instances d'équipement d'E/Ss

OK := paDeleteAllIOBoards ()

Paramètres | Description
OK : BOOL; | TRUE si réussi.

Description

Cette fonction supprime toutes les instances d'équipements d'E/S déclarées.

seealso See also

paCreateIOBoard - Crée une instance d'un équipement d'E/S.
paSetIOBoardComment - Donne un texte de description pour un équipement d'E/S.
paSetIOBoardParam - Définit un paramètre d'une carte d'E/S.
paSetIOAlias - Définit un alias pour une voie d'E/S.

paEnumIOBoards - Enumère les cartes d'E/S.
paGetIOBoardDesc - Rend la description d'une carte d'E/S.
paDeleteIOBoard - Supprime une instance d'un équipement d'E/S.


Génération de documents

Automation de projets -> Librairie d'automation - Référence -> Génération de documents

Previous chapter Next chapter Show all Show all Hide all Hide all

Dans cette section

Fichiers - services communs

Services d'écriture des fichiers de texte

Services d'écriture des fichiers sources IEC

Réseaux et bus de terrains - services d'écriture de fichier

Services d'écriture des fichiers de mise au point

Services d'écriture des fichiers de ressources


Fichiers - services communs

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Fichiers - services communs

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les fonctions communes pour l'écriture des fichiers dans le projet cible.

Déclaration

paFileOpenWrite - Ouvre un fichier quelconque en écriture.
paFileOpenWriteProgramSrc - Ouvre le fichier de code source d'un POU en écriture.
paFileOpenWriteProgramDef - Ouvre le fichier de définitions d'un POU en écriture.
paFileClose - Ferme un fichier ouvert.

Dans cette section

paFileOpenWrite

paFileOpenWriteProgramSrc

paFileOpenWriteProgramDef

paFileClose


paFileOpenWrite

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Fichiers - services communs -> paFileOpenWrite

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWrite - Ouvre un fichier quelconque en écriture

FID := paFileOpenWrite (PREFIX, SUFFIX)

Paramètres | Description
PREFIX : STRING; | Préfixe du fichier.
SUFFIX : STRING; | Suffixe du fichier.
FID : DINT; | Identificateur du fichier ou 0 si échec.

Description

Cette fonction ouvre a target project file en écriture. It should normally not be used as dedicated file open functions are available for most of possible project documents.

Cette fonction détruit le contenu du fichier s'il existe déjà.

Quand le fichier est écrit, vous devez appelr la fonction paFileClose pour le refermer.

seealso See also

paFileOpenWriteProgramSrc - Ouvre le fichier de code source d'un POU en écriture.
paFileOpenWriteProgramDef - Ouvre le fichier de définitions d'un POU en écriture.
paFileClose - Ferme un fichier ouvert.


paFileOpenWriteProgramSrc

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Fichiers - services communs -> paFileOpenWriteProgramSrc

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteProgramSrc - Ouvre le fichier de code source d'un POU en écriture

FID := paFileOpenWriteProgramSrc (NAME)

Paramètres | Description
NAME : STRING; | Program name.
FID : DINT; | Identificateur du fichier ou 0 si échec.

Description

Cette fonction ouvre en écriture le fichier contenant le code source d'un programme, sous-programme ou UDFB. Vous devez ensuite utiliser les fonctions appropriées en fonction du langage de programmation déclaré pour le POU.

Cette fonction détruit le contenu du fichier s'il existe déjà.

Quand le fichier est écrit, vous devez appelr la fonction paFileClose pour le refermer.

seealso See also

paFileOpenWrite - Ouvre un fichier quelconque en écriture.
paFileOpenWriteProgramDef - Ouvre le fichier de définitions d'un POU en écriture.
paFileClose - Ferme un fichier ouvert.


paFileOpenWriteProgramDef

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Fichiers - services communs -> paFileOpenWriteProgramDef

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteProgramDef - Ouvre le fichier des définitions locales d'un POU en écriture

FID := paFileOpenWriteProgramDef (NAME)

Paramètres | Description
NAME : STRING; | Program name.
FID : DINT; | Identificateur du fichier ou 0 si échec.

Description

Cette fonction ouvre en écriture le fichier contenant les définitions locales d'un programme, sous-programme ou UDFB. Utilisez ensuite les fonctions d'écriture dans les fichiers de texte.

Cette fonction détruit le contenu du fichier s'il existe déjà.

Quand le fichier est écrit, vous devez appelr la fonction paFileClose pour le refermer.

seealso See also

paFileOpenWrite - Ouvre un fichier quelconque en écriture.
paFileOpenWriteProgramSrc - Ouvre le fichier de code source d'un POU en écriture.
paFileClose - Ferme un fichier ouvert.


paFileClose

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Fichiers - services communs -> paFileClose

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileClose - Ferme un fichier

OK := paFileClose (FID)

Paramètres | Description
FID : DINT; | Identificateur du fichier retourné par une fonction d'ouverture de fichier.

Description

Cette fonction referme un fichier ouvert par toute fonction d'ouverture de fichier.

seealso See also

paFileOpenWrite - Ouvre un fichier quelconque en écriture.
paFileOpenWriteProgramSrc - Ouvre le fichier de code source d'un POU en écriture.
paFileOpenWriteProgramDef - Ouvre le fichier de définitions d'un POU en écriture.


Services d'écriture des fichiers de texte

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de texte

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les fonctions d'écriture dans les fichiers de texte.

paFTextEol - Ajoute des caractères de fin de ligne.
paFTextLine - Ajoute une ligne de texte.
paFTextString - Ajoute un texte.

Dans cette section

paFTextEol

paFTextLine

paFTextString


paFTextEol

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de texte -> paFTextEol

Previous chapter Next chapter Show all Show all Hide all Hide all

paFTextEol - Ajoute des caractères de fin de ligne à un fichier de texte

OK := paFTextEol (FID)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par la fonction d'ouverture.

Description

This function ajoute des caractères de fin de ligne '$R$N' à un fichier de texte.

seealso See also

paFTextLine - Ajoute une ligne de texte.
paFTextString - Ajoute un texte.


paFTextLine

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de texte -> paFTextLine

Previous chapter Next chapter Show all Show all Hide all Hide all

paFTextLine - Ajoute une ligne à un fichier

OK := paFTextLine (FID, TEXT)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par la fonction d'ouverture.
TEXT : STRING; | Texte à écrire.

Description

This function ajoute la chaîne TEXT suivi des caractères de fin de ligne '$R$N' à un fichier de texte.

seealso See also

paFTextEol - Ajoute des caractères de fin de ligne.
paFTextString - Ajoute un texte.


paFTextString

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de texte -> paFTextString

Previous chapter Next chapter Show all Show all Hide all Hide all

paFTextString - Ajoute une ligne à un fichier

OK := paFTextEol (FID, TEXT)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par la fonction d'ouverture.
TEXT : STRING; | Texte à écrire.

Description

This function ajoute la chaîne TEXT à un fichier de texte.

seealso See also

paFTextEol - Ajoute des caractères de fin de ligne.
paFTextLine - Ajoute une ligne de texte.


Services d'écriture des fichiers sources IEC

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les services pour la création du source des programmes en langage IEC. Les fichiers sont ouverts à l'aide de la fonction paFileOpenWriteSrc. Quand ils sont complets, ils doivent être refermés par un appel à la fonction paFileClose.

Il y a plusieurs catégories de fonctions dépendantes du langages cible:

  • Structured Text et Instruction list:

    Fonctions d'écriture dans les fichiers de texte

  • Function Block Diagram:

    Ecriture séquentielle dans un fichier FBD

  • Ladder Diagram:

    Ecriture séquentielle dans un fichier LD

  • Sequential Function Chart:

    Ecriture dans les fichiers SFC

Dans cette section

Texte ST / IL

FBD - Ecriture séquentielle

LD - fonctions d'écriture de fichier

SFC - services d'écriture des fichiers


Texte ST / IL

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> Texte ST / IL

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les fonctions d'écriture dans les fichiers de texte.

paFTextEol - Ajoute des caractères de fin de ligne.
paFTextLine - Ajoute une ligne de texte.
paFTextString - Ajoute un texte.

Dans cette section

paFTextEol

paFTextLine

paFTextString


paFTextEol

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> Texte ST / IL -> paFTextEol

Previous chapter Next chapter Show all Show all Hide all Hide all

paFTextEol - Ajoute des caractères de fin de ligne à un fichier de texte

OK := paFTextEol (FID)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par la fonction d'ouverture.

Description

This function ajoute des caractères de fin de ligne '$R$N' à un fichier de texte.

seealso See also

paFTextLine - Ajoute une ligne de texte.
paFTextString - Ajoute un texte.


paFTextLine

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> Texte ST / IL -> paFTextLine

Previous chapter Next chapter Show all Show all Hide all Hide all

paFTextLine - Ajoute une ligne à un fichier

OK := paFTextLine (FID, TEXT)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par la fonction d'ouverture.
TEXT : STRING; | Texte à écrire.

Description

This function ajoute la chaîne TEXT suivi des caractères de fin de ligne '$R$N' à un fichier de texte.

seealso See also

paFTextEol - Ajoute des caractères de fin de ligne.
paFTextString - Ajoute un texte.


paFTextString

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> Texte ST / IL -> paFTextString

Previous chapter Next chapter Show all Show all Hide all Hide all

paFTextString - Ajoute une ligne à un fichier

OK := paFTextEol (FID, TEXT)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par la fonction d'ouverture.
TEXT : STRING; | Texte à écrire.

Description

This function ajoute la chaîne TEXT à un fichier de texte.

seealso See also

paFTextEol - Ajoute des caractères de fin de ligne.
paFTextLine - Ajoute une ligne de texte.


FBD - Ecriture séquentielle

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> FBD - Ecriture séquentielle

Previous chapter Next chapter Show all Show all Hide all Hide all

Ces fonctions vous permette d'écrire séquentiellement (du haut vers le bas) le contenu d'un programme FBD dans un fichier. Les fonctionnalités en sont limitées (impossible de relier directement 2 blocs) mais procurent un moyen très simple de génération de diagramme car vous n'avez pas à vous préoccuper du placement des objets dans le diagramme. Les fichiers sont ouverts à l'aide de la fonction paFileOpenWriteSrc. Quand ils sont complets, ils doivent être refermés par un appel à la fonction paFileClose.

Utilisez ces fonctions pour ajouter des objets au diagramme:

paFbdsBreak - Insère un séparateur de réseau.
paFbdsComment - Insère un bloc de commentaires multi-lignes.
paFbdsLabel - Insère une étiquette.
paFbdsJump - Insère un saut inconditionnel.
paFbdsReturn - Insère un saut <RETURN> inconditionnel.
paFbdsBlock - Insère un bloc.

Après l'insertion d'un bloc, vous pouvez connecter ses entrées et sorties:

paFbdsInputVar - Connecter une variable en entrée du dernier bloc inséré.
paFbdsOutputVar - Connecter une variable en sortie du dernier bloc inséré.
paFbdsOutputJump - Connecter un saut en sortie du dernier bloc inséré.
paFbdsOutputReturn - Connecter un saut <RETURN> en sortie du dernier bloc inséré.

Voir un exemple.

Dans cette section

paFbdsBreak

paFbdsComment

paFbdsLabel

paFbdsJump

paFbdsReturn

paFbdsBlock

paFbdsInputVar

paFbdsOutputVar

paFbdsOutputJump

paFbdsOutputReturn

Exemple


paFbdsBreak

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> FBD - Ecriture séquentielle -> paFbdsBreak

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsBreak - ajoute un séparateur de réseau

OK := paFbdsBreak (FID, TEXT)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
TEXT : STRING; | Texte affiché sur le séparateur de réseau.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un séparateur de réseau après le dernier élément ajouté au diagramme.

seealso See also

paFbdsComment - Insère un bloc de commentaires multi-lignes.
paFbdsLabel - Insère une étiquette.
paFbdsJump - Insère un saut inconditionnel.
paFbdsReturn - Insère un saut <RETURN> inconditionnel.
paFbdsBlock - Insère un bloc.

paFbdsInputVar - Connecter une variable en entrée du dernier bloc inséré.
paFbdsOutputVar - Connecter une variable en sortie du dernier bloc inséré.
paFbdsOutputJump - Connecter un saut en sortie du dernier bloc inséré.
paFbdsOutputReturn - Connecter un saut <RETURN> en sortie du dernier bloc inséré.

Voir un exemple.


paFbdsComment

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> FBD - Ecriture séquentielle -> paFbdsComment

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsComment - ajoute un bloc de commentaire

OK := paFbdsComment (FID, TEXT, HEIGHT)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
TEXT : STRING; | Texte du commentaire.
HEIGHT ; DINT; | Hauteur du bloc (en unités de grille du diagramme).
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un bloc de texte multi-ligne après le dernier élément ajouté au diagramme. Vous pouvez utiliser la séquence '$N' pour indiquer une fin de ligne.

seealso See also

paFbdsBreak - Insère un séparateur de réseau.
paFbdsLabel - Insère une étiquette.
paFbdsJump - Insère un saut inconditionnel.
paFbdsReturn - Insère un saut <RETURN> inconditionnel.
paFbdsBlock - Insère un bloc.

paFbdsInputVar - Connecter une variable en entrée du dernier bloc inséré.
paFbdsOutputVar - Connecter une variable en sortie du dernier bloc inséré.
paFbdsOutputJump - Connecter un saut en sortie du dernier bloc inséré.
paFbdsOutputReturn - Connecter un saut <RETURN> en sortie du dernier bloc inséré.

Voir un exemple.


paFbdsLabel

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> FBD - Ecriture séquentielle -> paFbdsLabel

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsLabel - ajoute une étiquette

OK := paFbdsLabel (FID, LABEL)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
LABEL : STRING; | Nom de l'étiquette.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une étiquette après le dernier élément ajouté au diagramme. L'étiquette est placée sur le bord gauche du diagramme.

seealso See also

paFbdsBreak - Insère un séparateur de réseau.
paFbdsComment - Insère un bloc de commentaires multi-lignes.
paFbdsJump - Insère un saut inconditionnel.
paFbdsReturn - Insère un saut <RETURN> inconditionnel.
paFbdsBlock - Insère un bloc.

paFbdsInputVar - Connecter une variable en entrée du dernier bloc inséré.
paFbdsOutputVar - Connecter une variable en sortie du dernier bloc inséré.
paFbdsOutputJump - Connecter un saut en sortie du dernier bloc inséré.
paFbdsOutputReturn - Connecter un saut <RETURN> en sortie du dernier bloc inséré.

Voir un exemple.


paFbdsJump

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> FBD - Ecriture séquentielle -> paFbdsJump

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsJump - ajoute un saut inconditionnel

OK := paFbdsLabel (FID, LABEL)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
LABEL : STRING; | Nom de l'étiquette cible.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un saut inconditionnel après le dernier élément ajouté au diagramme. Le symbole de saut est placé sur le bord gauche du diagramme, connecté à une barre d'alimentation LD (toujours true):

seealso See also

paFbdsBreak - Insère un séparateur de réseau.
paFbdsComment - Insère un bloc de commentaires multi-lignes.
paFbdsLabel - Insère une étiquette.
paFbdsReturn - Insère un saut <RETURN> inconditionnel.
paFbdsBlock - Insère un bloc.

paFbdsInputVar - Connecter une variable en entrée du dernier bloc inséré.
paFbdsOutputVar - Connecter une variable en sortie du dernier bloc inséré.
paFbdsOutputJump - Connecter un saut en sortie du dernier bloc inséré.
paFbdsOutputReturn - Connecter un saut <RETURN> en sortie du dernier bloc inséré.

Voir un exemple.


paFbdsReturn

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> FBD - Ecriture séquentielle -> paFbdsReturn

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsReturn - ajoute un saut inconditionnel <return>

OK := paFbdsReturn (FID)

Paramètre | Descripton
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un saut inconditionnel <RETURN> après le dernier élément ajouté au diagramme. Le symbole de saut est placé sur le bord gauche du diagramme, connecté à une barre d'alimentation LD (toujours true):

seealso See also

paFbdsBreak - Insère un séparateur de réseau.
paFbdsComment - Insère un bloc de commentaires multi-lignes.
paFbdsLabel - Insère une étiquette.
paFbdsJump - Insère un saut inconditionnel.
paFbdsBlock - Insère un bloc.

paFbdsInputVar - Connecter une variable en entrée du dernier bloc inséré.
paFbdsOutputVar - Connecter une variable en sortie du dernier bloc inséré.
paFbdsOutputJump - Connecter un saut en sortie du dernier bloc inséré.
paFbdsOutputReturn - Connecter un saut <RETURN> en sortie du dernier bloc inséré.

Voir un exemple.


paFbdsBlock

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> FBD - Ecriture séquentielle -> paFbdsBlock

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsBlock - ajoute un bloc

OK := paFbdsBlock (FID, NAME, INSTANCE)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
NAME : STRING; | Nom du bloc.
INSTANCE : STRING; | Nom de l'instance pour un bloc fonctionnel.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un bloc après le dernier élément ajouté au diagramme. Il peut s'agir un opérateur de base, d'une fonction ou d'un bloc fonctionnel. Le nom de l'instance doit être spécifié pour un bloc fonctionnel.

Immédiatement après cette fonction, utilisez les fonctions FbdsInput... et FbdsOutput... pour connecter les entrées et les sorties du bloc.

seealso See also

paFbdsBreak - Insère un séparateur de réseau.
paFbdsComment - Insère un bloc de commentaires multi-lignes.
paFbdsLabel - Insère une étiquette.
paFbdsJump - Insère un saut inconditionnel.
paFbdsReturn - Insère un saut <RETURN> inconditionnel.

paFbdsInputVar - Connecter une variable en entrée du dernier bloc inséré.
paFbdsOutputVar - Connecter une variable en sortie du dernier bloc inséré.
paFbdsOutputJump - Connecter un saut en sortie du dernier bloc inséré.
paFbdsOutputReturn - Connecter un saut <RETURN> en sortie du dernier bloc inséré.

Voir un exemple.


paFbdsInputVar

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> FBD - Ecriture séquentielle -> paFbdsInputVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsInputVar - connecte une entrée du dernier bloc ajouté

OK := paFbdsInputVar (FID, NAME, PIN, NEGATE)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
NAME : STRING; | Symbole de variable ou expression constante.
PIN : DINT; | Index de l'entrée du bloc (la première entrée est 1).
NEGATE : BOOL; | Si TRUE, la connection est terminée par un symbole de négation booléenne.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction connecte une variable en entrée du dernier bloc ajouté par paFbdsBlock, et doit être appelée immédiatement après l'ajout du bloc.

seealso See also

paFbdsBreak - Insère un séparateur de réseau.
paFbdsComment - Insère un bloc de commentaires multi-lignes.
paFbdsLabel - Insère une étiquette.
paFbdsJump - Insère un saut inconditionnel.
paFbdsReturn - Insère un saut <RETURN> inconditionnel.
paFbdsBlock - Insère un bloc.

paFbdsOutputVar - Connecter une variable en sortie du dernier bloc inséré.
paFbdsOutputJump - Connecter un saut en sortie du dernier bloc inséré.
paFbdsOutputReturn - Connecter un saut <RETURN> en sortie du dernier bloc inséré.

Voir un exemple.


paFbdsOutputVar

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> FBD - Ecriture séquentielle -> paFbdsOutputVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsOutputVar - connecte une sortie du dernier bloc ajouté

OK := paFbdsOutputVar (FID, NAME, PIN, NEGATE)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
NAME : STRING; | Symbole de variable.
PIN : DINT; | Index de la sortie sur le bloc (la première sortie est 1).
NEGATE : BOOL; | Si TRUE, la connection est terminée par un symbole de négation booléenne.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction connecte une variable en sortie dernier bloc ajouté par paFbdsBlock, et doit être appelée immédiatement après l'ajout du bloc.

seealso See also

paFbdsBreak - Insère un séparateur de réseau.
paFbdsComment - Insère un bloc de commentaires multi-lignes.
paFbdsLabel - Insère une étiquette.
paFbdsJump - Insère un saut inconditionnel.
paFbdsReturn - Insère un saut <RETURN> inconditionnel.
paFbdsBlock - Insère un bloc.

paFbdsInputVar - Connecter une variable en entrée du dernier bloc inséré.
paFbdsOutputJump - Connecter un saut en sortie du dernier bloc inséré.
paFbdsOutputReturn - Connecter un saut <RETURN> en sortie du dernier bloc inséré.

Voir un exemple.


paFbdsOutputJump

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> FBD - Ecriture séquentielle -> paFbdsOutputJump

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsOutputJump - connecte un symbole de saut en sortie du dernier bloc ajouté

OK := paFbdsOutputJump (FID, LABEL, PIN, NEGATE)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
LABEL : STRING; | Nom de l'étiquette cible.
PIN : DINT; | Index de la sortie sur le bloc (la première sortie est 1).
NEGATE : BOOL; | Si TRUE, la connection est terminée par un symbole de négation booléenne.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction connecte un symbole de saut en sortie dernier bloc ajouté par paFbdsBlock, et doit être appelée immédiatement après l'ajout du bloc.

seealso See also

paFbdsBreak - Insère un séparateur de réseau.
paFbdsComment - Insère un bloc de commentaires multi-lignes.
paFbdsLabel - Insère une étiquette.
paFbdsJump - Insère un saut inconditionnel.
paFbdsReturn - Insère un saut <RETURN> inconditionnel.
paFbdsBlock - Insère un bloc.

paFbdsInputVar - Connecter une variable en entrée du dernier bloc inséré.
paFbdsOutputVar - Connecter une variable en sortie du dernier bloc inséré.
paFbdsOutputReturn - Connecter un saut <RETURN> en sortie du dernier bloc inséré.

Voir un exemple.


paFbdsOutputReturn

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> FBD - Ecriture séquentielle -> paFbdsOutputReturn

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsOutputReturn - connecte un symbole de saut <return> en sortie du dernier bloc ajouté

OK := paFbdsOutputReturn (FID, PIN, NEGATE)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
PIN : DINT; | Index de la sortie sur le bloc (la première sortie est 1).
NEGATE : BOOL; | Si TRUE, la connection est terminée par un symbole de négation booléenne.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction connecte un symbole de saut <RETURN> en sortie dernier bloc ajouté par paFbdsBlock, et doit être appelée immédiatement après l'ajout du bloc.

seealso See also

paFbdsBreak - Insère un séparateur de réseau.
paFbdsComment - Insère un bloc de commentaires multi-lignes.
paFbdsLabel - Insère une étiquette.
paFbdsJump - Insère un saut inconditionnel.
paFbdsReturn - Insère un saut <RETURN> inconditionnel.
paFbdsBlock - Insère un bloc.

paFbdsInputVar - Connecter une variable en entrée du dernier bloc inséré.
paFbdsOutputVar - Connecter une variable en sortie du dernier bloc inséré.
paFbdsOutputJump - Connecter un saut en sortie du dernier bloc inséré.

Voir un exemple.


Exemple

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> FBD - Ecriture séquentielle -> Exemple

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici un exemple de script qui génère le source d'un programme FBD:

// code FBD - écriture séquentielle
f := paFileOpenWriteProgramSrc ('ProgFBD');
if f <> 0 then
// ajoute un commentaire (2 lignes)
paFbdsComment (f, 'FBD program$Ngenerated by script', 2);
// ajoute un bloc et ses entrées/sorties
paFbdsBreak (f, 'function block');
paFbdsBlock (f, 'Blink', 'Blinker');
paFbdsInputVar (f, 'TRUE', 1, FALSE);
paFbdsInputVar (f, 't#1s', 2, FALSE);
paFbdsOutputJump (f, 'TheEnd', 1, FALSE);
// ajoute une fonction et ses entrées/sorties
paFbdsBreak (f, 'simple addition');
paFbdsBlock (f, '+', '');
paFbdsInputVar (f, 'i1', 1, FALSE);
paFbdsInputVar (f, 'i2', 2, FALSE);
paFbdsOutputVar (f, 'q', 1, FALSE);
// ajoute une étiquette et un symbole <return>
paFbdsBreak (f, 'the end');
paFbdsLabel (f, 'TheEnd');
paFbdsReturn (f);
// ajoute un séparateur de réseau
paFbdsBreak (f, 'eof');
// ferme le fichier
paFileClose (f);
end_if;

Voici le diagramme FBD généré par le script:


LD - fonctions d'écriture de fichier

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> LD - fonctions d'écriture de fichier

Previous chapter Next chapter Show all Show all Hide all Hide all

Ces fonctions vous permette d'écrire séquentiellement (du haut vers le bas) le contenu d'un programme LD dans un fichier. Le programme est écrit échelle après échelle. Les items sont ajoutés séquentiellement sur une échelle de la gauche vers la droite. Les fichiers sont ouverts à l'aide de la fonction paFileOpenWriteSrc. Quand ils sont complets, ils doivent être refermés par un appel à la fonction paFileClose.

Utilisez les fonctions suivantes pour insérer des échelles dans le diagramme:

paFLdCommentLine - Ajoute un séparateur de réseau.
paFLdStartRung - Commence une nouvelle échelle.
paFLdEndRung - Termine une échelle.
paFLdDivergence - Commence une divergence (OR) sur l'échelle courante.
paFLdConvergence - Termine un divergence sur (OR) l'échelle courante.
paFLdNextBranch - Ajoute une branche parallèle sur la divergence courante.

Utilisez les fonctions suivantes pour ajouter des éléments sur l'échelle courante:

paFLdContact - Ajoute un contact.
paFLdCoil - Ajoute une bobine de relais.
paFLdJump - Ajoute une instruction de saut.
paFLdReturn - Ajoute une instruction de saut <return>.
paFLdBlock - Ajoute un bloc.
paFLdHorzSegment - Ajoute un segment de ligne horizontal.

Voir un exemple.

Dans cette section

paFLdCommentLine

paFLdStartRung

paFLdEndRung

paFLdDivergence

paFLdConvergence

paFLdNextBranch

paFLdContact

paFLdCoil

paFLdJump

paFLdReturn

paFLdBlock

paFLdHorzSegment

Exemple


paFLdCommentLine

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> LD - fonctions d'écriture de fichier -> paFLdCommentLine

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdCommentLine - ajoute un séparateur de réseau

OK := paFLdCommentLine (FID, TEXT)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
TEXT : STRING; | Texte inscrit sur le séparateur (commentaire).
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une ligne de commentaire (séparateur de réseau) à la fin du diagralle.

seealso See also

paFLdStartRung - Start a new rung.
paFLdEndRung - Terminate the rung.
paFLdDivergence - Start an OR divergence on the current rung.
paFLdConvergence - Terminate an OR divergence on the current rung.
paFLdNextBranch - Add a parallel branch to the current divergence.

paFLdContact - Add a contact.
paFLdCoil - Add a coil.
paFLdJump - Add a jump instruction.
paFLdReturn - Add a <return> jump instruction.
paFLdBlock - Add a block.
paFLdHorzSegment - Add a horizontal segment line.

See an example.


paFLdStartRung

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> LD - fonctions d'écriture de fichier -> paFLdStartRung

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdStartRung - commence une nouvelle échelle

OK := paFLdStartRung (FID, LABEL)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
LABEL : STRING; | Nom d'étiquette de l'échelle (ou chaine vide si pas d'étiquette définie).
OK : BOOL; | TRUE si réussi.

Description

Cette fonction commence une nouvelle échelle. Après l'appel à cette fonction, vous pouvez appeler les autres fonctions pour ajouter des éléments de la gauche vers la droite. Quand l'échelle est terminée, vous devez appeler paFLdEndRung pour la terminer.

seealso See also

paFLdCommentLine - Ajoute un séparateur de réseau.
paFLdEndRung - Termine une échelle.
paFLdDivergence - Commence une divergence (OR) sur l'échelle courante.
paFLdConvergence - Termine un divergence sur (OR) l'échelle courante.
paFLdNextBranch - Ajoute une branche parallèle sur la divergence courante.

paFLdContact - Ajoute un contact.
paFLdCoil - Ajoute une bobine de relais.
paFLdJump - Ajoute une instruction de saut.
paFLdReturn - Ajoute une instruction de saut <return>.
paFLdBlock - Ajoute un bloc.
paFLdHorzSegment - Ajoute un segment de ligne horizontal.

Voir un exemple.


paFLdEndRung

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> LD - fonctions d'écriture de fichier -> paFLdEndRung

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdEndRung - termine une échelle

OK := paFLdEndRung (FID)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction termine l'échelle en cours. Vous devez l'appeler avant de commencer une autre échelle ou d'ajouter un séparateur de réseau.

seealso See also

paFLdCommentLine - Ajoute un séparateur de réseau.
paFLdStartRung - Commence une nouvelle échelle.
paFLdDivergence - Commence une divergence (OR) sur l'échelle courante.
paFLdConvergence - Termine un divergence sur (OR) l'échelle courante.
paFLdNextBranch - Ajoute une branche parallèle sur la divergence courante.

paFLdContact - Ajoute un contact.
paFLdCoil - Ajoute une bobine de relais.
paFLdJump - Ajoute une instruction de saut.
paFLdReturn - Ajoute une instruction de saut <return>.
paFLdBlock - Ajoute un bloc.
paFLdHorzSegment - Ajoute un segment de ligne horizontal.

Voir un exemple.


paFLdDivergence

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> LD - fonctions d'écriture de fichier -> paFLdDivergence

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdDivergence - commence une divergence

OK := paFLdDivergence (FID)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction démarre un divergence (OR) sur l'échelle courante. Après ceci, les éléments sont ajoutés de gauche à droite sur la première branche (en haut). D'autres branches peuvent être ajoutées en appelant paFLdNextBranch. Quand la divergence est terminée, vous devez appeler paFLdConvergence pour la refermer.

seealso See also

paFLdCommentLine - Ajoute un séparateur de réseau.
paFLdStartRung - Commence une nouvelle échelle.
paFLdEndRung - Termine une échelle.
paFLdConvergence - Termine un divergence sur (OR) l'échelle courante.
paFLdNextBranch - Ajoute une branche parallèle sur la divergence courante.

paFLdContact - Ajoute un contact.
paFLdCoil - Ajoute une bobine de relais.
paFLdJump - Ajoute une instruction de saut.
paFLdReturn - Ajoute une instruction de saut <return>.
paFLdBlock - Ajoute un bloc.
paFLdHorzSegment - Ajoute un segment de ligne horizontal.

Voir un exemple.


paFLdConvergence

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> LD - fonctions d'écriture de fichier -> paFLdConvergence

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdConvergence - termine une divergence

OK := paFLdConvergence (FID)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction termine la divergence (OR) en cours. Après ceci, les éléments seront ajoutés sur la droite de la divergence.

seealso See also

paFLdCommentLine - Ajoute un séparateur de réseau.
paFLdStartRung - Commence une nouvelle échelle.
paFLdEndRung - Termine une échelle.
paFLdDivergence - Commence une divergence (OR) sur l'échelle courante.
paFLdNextBranch - Ajoute une branche parallèle sur la divergence courante.

paFLdContact - Ajoute un contact.
paFLdCoil - Ajoute une bobine de relais.
paFLdJump - Ajoute une instruction de saut.
paFLdReturn - Ajoute une instruction de saut <return>.
paFLdBlock - Ajoute un bloc.
paFLdHorzSegment - Ajoute un segment de ligne horizontal.

Voir un exemple.


paFLdNextBranch

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> LD - fonctions d'écriture de fichier -> paFLdNextBranch

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdNextBranch - ajoute une branche à une divergence

OK := paFLdNextBranch (FID)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction commence une nouvelle branche parallèle dans la divergence (OR) en cours. Après ceci, les éléments sont ajoutés de gauche à droite sur la nouvelle branche.

seealso See also

paFLdCommentLine - Ajoute un séparateur de réseau.
paFLdStartRung - Commence une nouvelle échelle.
paFLdEndRung - Termine une échelle.
paFLdDivergence - Commence une divergence (OR) sur l'échelle courante.
paFLdConvergence - Termine un divergence sur (OR) l'échelle courante.
paFLdContact - Ajoute un contact.
paFLdCoil - Ajoute une bobine de relais.
paFLdJump - Ajoute une instruction de saut.
paFLdReturn - Ajoute une instruction de saut <return>.
paFLdBlock - Ajoute un bloc.
paFLdHorzSegment - Ajoute un segment de ligne horizontal.

Voir un exemple.


paFLdContact

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> LD - fonctions d'écriture de fichier -> paFLdContact

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdContact - ajoute un contact

OK := paFLdContact (FID, TYP, NAME)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
TYP : STRING; | Type de contact (voir notes).
NAME : STRING; | Nom de la variable associée au contact.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un contact sur l'échelle courante. Voici les valeurs possibles pour TYP:

Paramètre | Description
_LD_DIR | Contact simple.
_LD_INV | Contact inversé.
_LD_P | Contact à détection de front montant.
_LD_N | Contact à détection de front descendant.

seealso See also

paFLdCommentLine - Ajoute un séparateur de réseau.
paFLdStartRung - Commence une nouvelle échelle.
paFLdEndRung - Termine une échelle.
paFLdDivergence - Commence une divergence (OR) sur l'échelle courante.
paFLdConvergence - Termine un divergence sur (OR) l'échelle courante.
paFLdNextBranch - Ajoute une branche parallèle sur la divergence courante.

paFLdCoil - Ajoute une bobine de relais.
paFLdJump - Ajoute une instruction de saut.
paFLdReturn - Ajoute une instruction de saut <return>.
paFLdBlock - Ajoute un bloc.
paFLdHorzSegment - Ajoute un segment de ligne horizontal.

Voir un exemple.


paFLdCoil

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> LD - fonctions d'écriture de fichier -> paFLdCoil

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdCoil - ajoute un coil

OK := paFLdCoil (FID, TYP, NAME)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
TYP : STRING; | Type de bobine (voir notes).
NAME : STRING; | Nom de la variable associée à la bobine.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une bobine de relais sur l'échelle courante. Voici les valeurs possibles pour TYP:

Paramètre | Description
_LD_DIR | Bobine simple.
_LD_INV | Bobine inversée.
_LD_P | Bobine à détection de front montant.
_LD_N | Bobine à détection de front descendant.
_LD_SET | Bobine "Set".
_LD_RESET | Bobine "Reset coil".

seealso See also

paFLdCommentLine - Add a comment line (network break).
paFLdStartRung - Start a new rung.
paFLdEndRung - Terminate the rung.
paFLdDivergence - Start an OR divergence on the current rung.
paFLdConvergence - Terminate an OR divergence on the current rung.
paFLdNextBranch - Add a parallel branch to the current divergence.

paFLdContact - Add a contact.
paFLdJump - Add a jump instruction.
paFLdReturn - Add a <return> jump instruction.
paFLdBlock - Add a block.
paFLdHorzSegment - Add a horizontal segment line.

See an example.


paFLdJump

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> LD - fonctions d'écriture de fichier -> paFLdJump

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdJump - ajoute un symbole de saut

OK := paFLdJump (FID, LABEL)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
LABEL : STRING; | Nom de l'étiquette cible.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une instruction de saut sur l'échelle courante.

seealso See also

paFLdCommentLine - Ajoute un séparateur de réseau.
paFLdStartRung - Commence une nouvelle échelle.
paFLdEndRung - Termine une échelle.
paFLdDivergence - Commence une divergence (OR) sur l'échelle courante.
paFLdConvergence - Termine un divergence sur (OR) l'échelle courante.
paFLdNextBranch - Ajoute une branche parallèle sur la divergence courante.

paFLdContact - Ajoute un contact.
paFLdCoil - Ajoute une bobine de relais.
paFLdReturn - Ajoute une instruction de saut <return>.
paFLdBlock - Ajoute un bloc.
paFLdHorzSegment - Ajoute un segment de ligne horizontal.

Voir un exemple.


paFLdReturn

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> LD - fonctions d'écriture de fichier -> paFLdReturn

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdReturn - ajoute un symbole de saut <return>

OK := paFLdReturn (FID)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une instruction de saut <RETURN> sur l'échelle courante.

seealso See also

paFLdCommentLine - Ajoute un séparateur de réseau.
paFLdStartRung - Commence une nouvelle échelle.
paFLdEndRung - Termine une échelle.
paFLdDivergence - Commence une divergence (OR) sur l'échelle courante.
paFLdConvergence - Termine un divergence sur (OR) l'échelle courante.
paFLdNextBranch - Ajoute une branche parallèle sur la divergence courante.

paFLdContact - Ajoute un contact.
paFLdCoil - Ajoute une bobine de relais.
paFLdJump - Ajoute une instruction de saut.
paFLdBlock - Ajoute un bloc.
paFLdHorzSegment - Ajoute un segment de ligne horizontal.

Voir un exemple.


paFLdBlock

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> LD - fonctions d'écriture de fichier -> paFLdBlock

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdBlock - ajoute un bloc

OK := paFLdBlock (FID, NAME, INSTANCE, INPUTS, OUTPUTS)

Paramétre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
NAME : STRING; | Type de bloc.
INSTANCE : STRING; | Nom de l'instance pour un bloc fonctionnel.
INPUTS : STRING; | Liste des entrées (voir notes).
OUTPUTS : STRING; | Liste des sorties (voir notes).
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un bloc sur l'échelle courante. Pour un bloc fonctionnel, vous devez spécofoer une instance. Les blocs sont connectés à l'échelle par leur première entrée et sortie. Le nom des entrées et sorties additionelles sont passsées dans des chaines de caractères, séparés par des virgules. Voici l'exemple d'un bloc "addition" avec deux entrées nommées 'i1' et 'i2' et une sortie 'q':

Example Example

paFLdStartRung (f, '');
paFldBlock (f, '+', '', 'i1,i2', 'q');
paFldCoil (f, _LD_DIR, '');

paFLdEndRung (f);

seealso See also

paFLdCommentLine - Add a comment line (network break).
paFLdStartRung - Start a new rung.
paFLdEndRung - Terminate the rung.
paFLdDivergence - Start an OR divergence on the current rung.
paFLdConvergence - Terminate an OR divergence on the current rung.
paFLdNextBranch - Add a parallel branch to the current divergence.

paFLdContact - Add a contact.
paFLdCoil - Add a coil.
paFLdJump - Add a jump instruction.
paFLdReturn - Add a <return> jump instruction.
paFLdHorzSegment - Add a horizontal segment line.

See an example.


paFLdHorzSegment

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> LD - fonctions d'écriture de fichier -> paFLdHorzSegment

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdHorzSegment - ajoute un segment horizontal

OK := paFLdHorzSegment (FID)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un segment de ligne horizontal sur l'échelle courante. Ceci peut être utilisé pour aligner verticalement les éléments des échelles.

seealso See also

paFLdCommentLine - Ajoute un séparateur de réseau.
paFLdStartRung - Commence une nouvelle échelle.
paFLdEndRung - Termine une échelle.
paFLdDivergence - Commence une divergence (OR) sur l'échelle courante.
paFLdConvergence - Termine un divergence sur (OR) l'échelle courante.
paFLdNextBranch - Ajoute une branche parallèle sur la divergence courante.

paFLdContact - Ajoute un contact.
paFLdCoil - Ajoute une bobine de relais.
paFLdJump - Ajoute une instruction de saut.
paFLdReturn - Ajoute une instruction de saut <return>.
paFLdBlock - Ajoute un bloc.
Voir un exemple.


Exemple

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> LD - fonctions d'écriture de fichier -> Exemple

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici un exemple de script qui génère le source d'un programme LD dans le projet cible:

// génère le code LD
f := paFileOpenWriteProgramSrc ('ProgLD');
if f <> 0 then
// ligne de commentaire
paFLdCommentLine (f, 'Generated by script');
// une échelle simple terminée par un saut
paFLdStartRung (f, '');
paFldContact (f, _LD_DIR, 'Cond');
paFldJump (f, 'TheEnd');
paFLdEndRung (f);
// une échelle avec des contacts et une bobine
paFLdStartRung (f, '');
paFldContact (f, _LD_DIR, 'V1');
paFLdDivergence (f);
paFldContact (f, _LD_DIR, 'V2');
paFLdNextBranch (f);
paFldContact (f, _LD_DIR, 'V3');
paFLdConvergence (f);
paFldCoil (f, _LD_INV, 'V');
paFLdEndRung (f);
// une échelle avec un bloc
paFLdStartRung (f, '');
paFldBlock (f, '+', '', 'i1,i2', 'q');
paFldBlock (f, 'Blink', 'Blinker', 't#1s', '');
paFldCoil (f, _LD_DIR, '');
paFLdEndRung (f);
// une échelle avec une étiquette et un RETURN
paFLdStartRung (f, 'TheEnd');
paFldReturn (f);
paFLdEndRung (f);
// ferme le fichier
paFileClose (f);
end_if;

Voici le diagramme LD généré par le script:


SFC - services d'écriture des fichiers

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> SFC - services d'écriture des fichiers

Previous chapter Next chapter Show all Show all Hide all Hide all

Ces fonctions vous permettent de générer séquentiellement (du haut vers le bas) le code source d'un programme SFC. Le schéma est décrit séquentiellement, et branche par branche dans le cas de divergences. Les fichiers sont ouverts par la fonction paFileOpenWriteSrc et doivent être refermés par un appel ) paFileClose.

Utilisez les fonctions suivantes pour générer un graphe SFC:

paSfcIStep - Ajoute une étape initiale.
paSfcStep - Ajoute une étape.
paSfcTrans - Ajoute une transition.
paSfcJump - Ajoute un saut à une étape.
paSfcDiv - Commence une divergence.
paSfcBranch - Commence une nouvelle branche dans une divergence.
paSfcConv - Ferme une divergence.
paSfcAddLv2String - Ajoute un texte au programme du niveau 2.
paSfcAddLv2Line - Ajoute une ligne au programme du niveau 2.
paSfcAddLv2Eol - Ajoute des caractères de fin de ligne au programme du niveau 2.

Voir exemple.

info Info

Les macro-étapes ne sont pas supportées.

Dans cette section

paSfcIStep

paSfcStep

paSfcTrans

paSfcJump

paSfcDiv

paSfcBranch

paSfcConv

paSfcAddLv2String

paSfcAddLv2Line

paSfcAddLv2Eol

Exemple


paSfcIStep

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> SFC - services d'écriture des fichiers -> paSfcIStep

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcIStep - Ajoute une étape initiale

OK := paSfcIStep (FID, REF)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
REF : DINT; | Numéro de l'étape.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une étape initiale à la fin de la branche en cours.

seealso See also

paSfcStep - Ajoute une étape.
paSfcTrans - Ajoute une transition.
paSfcJump - Ajoute un saut à une étape.
paSfcDiv - Commence une divergence.
paSfcBranch - Commence une nouvelle branche dans une divergence.
paSfcConv - Ferme une divergence.
paSfcAddLv2String - Ajoute un texte au programme du niveau 2.
paSfcAddLv2Line - Ajoute une ligne au programme du niveau 2.
paSfcAddLv2Eol - Ajoute des caractères de fin de ligne au programme du niveau 2.

Voir exemple.


paSfcStep

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> SFC - services d'écriture des fichiers -> paSfcStep

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcStep - Ajoute une étape

OK := paSfcStep (FID, REF)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
REF : DINT; | Numéro de l'étape.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une étape à la fin de la branche en cours.

seealso See also

paSfcIStep - Ajoute une étape initiale.
paSfcTrans - Ajoute une transition.
paSfcJump - Ajoute un saut à une étape.
paSfcDiv - Commence une divergence.
paSfcBranch - Commence une nouvelle branche dans une divergence.
paSfcConv - Ferme une divergence.
paSfcAddLv2String - Ajoute un texte au programme du niveau 2.
paSfcAddLv2Line - Ajoute une ligne au programme du niveau 2.
paSfcAddLv2Eol - Ajoute des caractères de fin de ligne au programme du niveau 2.

Voir exemple.


paSfcTrans

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> SFC - services d'écriture des fichiers -> paSfcTrans

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcTrans - Ajoute une transition

OK := paSfcTrans (FID, REF)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
REF : DINT; | Numéro de la transition.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une transition à la fin de la branche en cours.

seealso See also

paSfcIStep - Ajoute une étape initiale.
paSfcStep - Ajoute une étape.
paSfcJump - Ajoute un saut à une étape.
paSfcDiv - Commence une divergence.
paSfcBranch - Commence une nouvelle branche dans une divergence.
paSfcConv - Ferme une divergence.
paSfcAddLv2String - Ajoute un texte au programme du niveau 2.
paSfcAddLv2Line - Ajoute une ligne au programme du niveau 2.
paSfcAddLv2Eol - Ajoute des caractères de fin de ligne au programme du niveau 2.

Voir exemple.


paSfcJump

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> SFC - services d'écriture des fichiers -> paSfcJump

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcJump - Ajoute un saut à une étape

OK := paSfcJump (FID, REF)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
REF : DINT; | Numéro de l'étape cible.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un saut à une étape à la fin de la branche en cours.

seealso See also

paSfcIStep - Ajoute une étape initiale.
paSfcStep - Ajoute une étape.
paSfcTrans - Ajoute une transition.
paSfcDiv - Commence une divergence.
paSfcBranch - Commence une nouvelle branche dans une divergence.
paSfcConv - Ferme une divergence.
paSfcAddLv2String - Ajoute un texte au programme du niveau 2.
paSfcAddLv2Line - Ajoute une ligne au programme du niveau 2.
paSfcAddLv2Eol - Ajoute des caractères de fin de ligne au programme du niveau 2.

Voir exemple.


paSfcDiv

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> SFC - services d'écriture des fichiers -> paSfcDiv

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcDiv - commence une divergence

OK := paSfcDiv (FID)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction commence une divergence à la fin de la branche en cours. Elle commence aussitôt la première branche (à gauche) où vous pouvez ajouter des éléments. La divergence devra être refermée par une a convergence, même si ses branches finissent par un saut à une étape. Les divergences peuvent être imbriquées.

seealso See also

paSfcIStep - Ajoute une étape initiale.
paSfcStep - Ajoute une étape.
paSfcTrans - Ajoute une transition.
paSfcJump - Ajoute un saut à une étape.
paSfcBranch - Commence une nouvelle branche dans une divergence.
paSfcConv - Ferme une divergence.
paSfcAddLv2String - Ajoute un texte au programme du niveau 2.
paSfcAddLv2Line - Ajoute une ligne au programme du niveau 2.
paSfcAddLv2Eol - Ajoute des caractères de fin de ligne au programme du niveau 2.

Voir exemple.


paSfcBranch

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> SFC - services d'écriture des fichiers -> paSfcBranch

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcBranch - Ajoute une branche à la divergence en cours

OK := paSfcBranch (FID)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une branche à droite de la divergence créée par le dernier appel à paSfcDiv(). Il n'est pas nécessaire d'appeler cette fonction pour la première branche (à gauche) d'une divergence.

seealso See also

paSfcIStep - Ajoute une étape initiale.
paSfcStep - Ajoute une étape.
paSfcTrans - Ajoute une transition.
paSfcJump - Ajoute un saut à une étape.
paSfcDiv - Commence une divergence.
paSfcConv - Ferme une divergence.
paSfcAddLv2String - Ajoute un texte au programme du niveau 2.
paSfcAddLv2Line - Ajoute une ligne au programme du niveau 2.
paSfcAddLv2Eol - Ajoute des caractères de fin de ligne au programme du niveau 2.

Voir exemple.


paSfcConv

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> SFC - services d'écriture des fichiers -> paSfcConv

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcConv - Termine une divergence

OK := paSfcConv (FID)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ferme la divergence créée par le dernier appel ) paSfcDiv().La divergence doit se terminer par une convergence, même si ses branches finissent par des sauts à des étapes. Les divergences peuvent être imbriquées.

seealso See also

paSfcIStep - Ajoute une étape initiale.
paSfcStep - Ajoute une étape.
paSfcTrans - Ajoute une transition.
paSfcJump - Ajoute un saut à une étape.
paSfcDiv - Commence une divergence.
paSfcBranch - Commence une nouvelle branche dans une divergence.
paSfcAddLv2String - Ajoute un texte au programme du niveau 2.
paSfcAddLv2Line - Ajoute une ligne au programme du niveau 2.
paSfcAddLv2Eol - Ajoute des caractères de fin de ligne au programme du niveau 2.

Voir exemple.


paSfcAddLv2String

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> SFC - services d'écriture des fichiers -> paSfcAddLv2String

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcAddLv2String - ajoute un texte au programme de niveau 2

OK := paSfcAddLv2String (FID, KIND, TEXT)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
KIND : STRING; | Type de niveau 2 - voir notes.
TEXT : STRING; | Texte à ajouter.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un texte à la programmation de niveau 2 spécifiée, pour la dernière étape ou transition créée. Cette fonction doit être appelée juste après la création de l'étape ou transition. Le paramètre KIND indique le type de niveau 2, et peut prendre les valeurs suivantes:

Paramètre | Description
_LV2_NOTE | Texte de description (notes).
_LV2_COND | Condition (pour une transition).
_LV2_ACTION | Volet d'actions SFC pour une étape.
_LV2_P1 | Actions P1 pour une étape.
_LV2_N | Actions N pour une étape.
_LV2_P0 | Actions P0 pour une étape.

La génération de programmes de niveau 2 en LD ou FBD n'est pas supportée.

seealso See also

paSfcIStep - Ajoute une étape initiale.
paSfcStep - Ajoute une étape.
paSfcTrans - Ajoute une transition.
paSfcJump - Ajoute un saut à une étape.
paSfcDiv - Commence une divergence.
paSfcBranch - Commence une nouvelle branche dans une divergence.
paSfcConv - Ferme une divergence.
paSfcAddLv2Line - Ajoute une ligne au programme du niveau 2.
paSfcAddLv2Eol - Ajoute des caractères de fin de ligne au programme du niveau 2.

Voir exemple.


paSfcAddLv2Line

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> SFC - services d'écriture des fichiers -> paSfcAddLv2Line

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcAddLv2Line - ajoute une ligne de texte au programme de niveau 2

OK := paSfcAddLv2Line (FID, KIND, TEXT)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
KIND : STRING; | Type de niveau 2 - voir notes.
TEXT : STRING; | Texte à ajouter.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un texte suivi de caractères de fin de ligne ('$R$N') à la programmation de niveau 2 spécifiée, pour la dernière étape ou transition créée. Cette fonction doit être appelée juste après la création de l'étape ou transition. Le paramètre KIND indique le type de niveau 2, et peut prendre les valeurs suivantes:

Paramètre | Description
_LV2_NOTE | Texte de description (notes).
_LV2_COND | Condition (pour une transition).
_LV2_ACTION | Volet d'actions SFC pour une étape.
_LV2_P1 | Actions P1 pour une étape.
_LV2_N | Actions N pour une étape.
_LV2_P0 | Actions P0 pour une étape.

La génération de programmes de niveau 2 en LD ou FBD n'est pas supportée.

seealso See also

paSfcIStep - Ajoute une étape initiale.
paSfcStep - Ajoute une étape.
paSfcTrans - Ajoute une transition.
paSfcJump - Ajoute un saut à une étape.
paSfcDiv - Commence une divergence.
paSfcBranch - Commence une nouvelle branche dans une divergence.
paSfcConv - Ferme une divergence.
paSfcAddLv2String - Ajoute un texte au programme du niveau 2.
paSfcAddLv2Eol - Ajoute des caractères de fin de ligne au programme du niveau 2.

Voir exemple.


paSfcAddLv2Eol

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> SFC - services d'écriture des fichiers -> paSfcAddLv2Eol

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcAddLv2Eol - ajoute les caractères de fin de ligne au programme de niveau 2

OK := paSfcAddLv2Eol (FID, KIND)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteSrc.
KIND : STRING; | Type de niveau 2 - voir notes.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute les caractères de fin de ligne ('$R$N') à la programmation de niveau 2 spécifiée, pour la dernière étape ou transition créée. Cette fonction doit être appelée juste après la création de l'étape ou transition. Le paramètre KIND indique le type de niveau 2, et peut prendre les valeurs suivantes:

Paramètre | Description
_LV2_NOTE | Texte de description (notes).
_LV2_COND | Condition (pour une transition).
_LV2_ACTION | Volet d'actions SFC pour une étape.
_LV2_P1 | Actions P1 pour une étape.
_LV2_N | Actions N pour une étape.
_LV2_P0 | Actions P0 pour une étape.

La génération de programmes de niveau 2 en LD ou FBD n'est pas supportée.

seealso See also

paSfcIStep - Ajoute une étape initiale.
paSfcStep - Ajoute une étape.
paSfcTrans - Ajoute une transition.
paSfcJump - Ajoute un saut à une étape.
paSfcDiv - Commence une divergence.
paSfcBranch - Commence une nouvelle branche dans une divergence.
paSfcConv - Ferme une divergence.
paSfcAddLv2String - Ajoute un texte au programme du niveau 2.
paSfcAddLv2Line - Ajoute une ligne au programme du niveau 2.

Voir exemple.


Exemple

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers sources IEC -> SFC - services d'écriture des fichiers -> Exemple

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici un exemple de script générant un graphe SFC dans le projet cible:

// code source SFC
f := paFileOpenWriteProgramSrc ('ProgSFC');
if f <> 0 then

// étape initiale
paSfcIStep (f, 1);
paSfcAddLv2String (f, _LV2_NOTE, 'Thats S1');
paSfcAddLv2Line (f, _LV2_ACTION, 'VarXX (N);');

// divergence 'OU'
paSfcDiv (f);

paSfcTrans (f, 1);
paSfcAddLv2String (f, _LV2_NOTE, 'Thats T1');
paSfcAddLv2Line (f, _LV2_COND, 'condition');

// seconde branche
paSfcBranch (f);

paSfcTrans (f, 101);
paSfcStep (f, 101);
paSfcTrans (f, 102);

// converge
paSfcCnv (f);

// saut à l'étape initiale
paSfcJump (f, 1);

// ferme le fichier
paFileClose (f);
end_if;

Voici le programme SFC généré par le script:


Réseaux et bus de terrains - services d'écriture de fichier

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les services d'écriture dans les fichiers de configuration des réseaux et bus de terrain. Les fichiers sont ouverts avec les fonctions appropriées et doivent être refermés à l'aide de la fonction paFileClose.

  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).

Dans cette section

paFileOpenWriteModbus

paFModbusSlave

paFModbusMaster

paFModbusRequestSlave

paFModbusRequestMaster

paFModbusVariable

paFileOpenWriteASi

paFAsiApplyConfig

paFAsiMaster

paFAsiMasterDiag

paFAsiSlave

paFAsiSlaveDiag

paFAsiInput

paFAsiOutput

paFileOpenWriteFieldbus

paFfbCreateMaster

paFfbCreateSlave

paFfbCreateVar

paFfbSetProperty

paFfbSelectRoot

paFfbSelectMaster

paFfbSelectSlave

paFfbSelectVar

paFileOpenWriteBinding

paFbindPublicVar

paFbindExternPort

paFbindCnxStatus

paFbindExternVar

paFbindVarStatus

paFbindVarDateStamp

paFbindVarTimeStamp


paFileOpenWriteModbus

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFileOpenWriteModbus

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteModbus - Ouvre la configuration MODBUS en écriture

FID := paFileOpenWriteModbus ()

Paramètres | Description
FID : DINT; | Identificateur de fichier ou 0 si erreur.

Description

Cette fonction ouvre la configuration MODBUS en écriture. Cette fonction supprime la configuration existante. Quand le fichier est complet, il doit être refermé par un appel à la fonction paFileClose.

seealso See also
  • Configuration MODBUS:

paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFModbusSlave

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFModbusSlave

Previous chapter Next chapter Show all Show all Hide all Hide all

paFModbusSlave - Définit la configuration MODBUS esclave

OK := paFModbusSlave (FID, SLAVENO)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteModbus.
SLAVENO : DINT; | Numéro d'esclave pour le serveur MODBUS.
OK : BOOL; | TRUE si réussi.

Description

Définit le numéro d'esclave utilisé par le serveur MODBUS esclave.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFModbusMaster

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFModbusMaster

Previous chapter Next chapter Show all Show all Hide all Hide all

paFModbusMaster - Ajoute un port MODBUS maître

OK := paFModbusMaster (FID, OPENMODBUS, ADDRESS, PORT, RECONNECT)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteModbus.
OPENMODBUS : BOOL; | TRUE = protocole Open Modbus / FALSE = protocole RTU.
ADDRESS : STRING; | Configuration du port ou adresse IP.
PORT : DINT; | Port IP en cas de MODBUS sur ETHERNET.
RECONNECT : BOOL; | Option: tente une reconnexion après erreur.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un port maître MODBUS à la configuration. Vous pouvez définir les requêtes configurées sur le port juste après l'appel à cette fonction.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFModbusRequestSlave

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFModbusRequestSlave

Previous chapter Next chapter Show all Show all Hide all Hide all

paFModbusRequestSlave - Ajoute une requête MODBUS esclave

OK := paFModbusRequestSlave (FID, REQUEST, ADDRESS, NBITEM, NAME)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteModbus.
REQUEST : STRING; | Type de requête (voir notes).
ADDRESS : DINT; | Adresse de base MODBUS.
NBITEM : DINT; | Nombre d'éléments (bits ou words).
NAME : STRING; | Texte de description optionnel.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une nouvelle requête MODBUS esclave. Vous pouvez définir les variables configurées juste après l'appel à cette fonction.

attention Attention

Cette fonction ne tient pas compte des offsets définis pour l'adressage MODBUS. La première adresse valide est toujours 0.

Voici les valeurs possibles pour le paramètre REQUEST:

Valeur | Description
_MB_I_REG | Registres d'entrée.
_MB_H_REG | Registres de sorties.
_MB_I_BIT | Bits d'entrées.
_MB_C_BIT | Bits de sortie.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFModbusRequestMaster

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFModbusRequestMaster

Previous chapter Next chapter Show all Show all Hide all Hide all

paFModbusRequestMaster - Ajoute une requête MODBUS maître

OK := paFModbusRequestMaster (FID, MODE, REQUEST, SLAVENO, ADDRESS, NBITEM,
PERIOD, TIMEOUT, TRIALS, NAME)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteModbus.
MODE : STRING; | Mode d'activation mode (voir notes).
REQUEST : STRING; | Type de requête (voir notes).
SLAVENO : DINT; | Numéro d'esclave.
ADDRESS : DINT; | Adresse de base MODBUS.
NBITEM : DINT; | Nombre d'éléments (bits ou words).
PERIOD : TIME; | Période d'activation (requêtes périodiques).
TIMEOUT : TIME; | Timeout d'échange.
TRIALS : DINT; | Nombre d'essais.
NAME : STRING; | Texte de description optionnel.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une requête MODBUS maître. Vous pouvez définir les variables configurées juste après l'appel à cette fonction.

attention Attention

Cette fonction ne tient pas compte des offsets définis pour l'adressage MODBUS. La première adresse valide est toujours 0.

Voici les valeurs possibles pour le paramètre MODE:

Valeur | Description
_MB_PERIODIC | Requête périodique.
_MB_ONCALL | Requête activée sur commande.
_MB_ONCHANGE | Request activée sur changement d'état (en écriture).

Voici les valeurs possibles pour le paramètre REQUEST:

Valeur | Description
_MB_READ_I_REG | Lecture registres d'entrée.
_MB_READ_H_REG | Lecture registres de sorties.
_MB_WRITE_H_REG | Ecriture registres de sorties.
_MB_READ_I_BIT | Lecture bits d'entrée.
_MB_READ_C_BIT | Lecture bits d'entrée.
_MB_WRITE_C_BIT | Ecriture bits de sortie.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFModbusVariable

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFModbusVariable

Previous chapter Next chapter Show all Show all Hide all Hide all

paFModbusVariable - Ajoute une variable MODBUS

OK := paFModbusVariable (FID, MODE, OFFSET, MASK, TWOWORDS, SYMBOL)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteModbus.
MODE : STRING; | Mode d'échange (voir notes).
OFFSET : DINT; | Offset dans la requête.
MASK : DINT; | Masque.
TWOWORDS : BOOL; | TRUE si donnée stockée sur 2 mots consécutifs.
SYMBOL : STRING; | Symbole de la variable.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction connecte une variable sur la dernière requête définie par un appel à paFileModbusRequestSlave ou paFileModbusRequestMaster.

Voici les valeurs possibles pour le paramètre MODE:

Valeur | Description
_MB_DATA | Echange de données.
_MB_STATUS | Etat de la connexion.
_MB_COMMAND | Activation de la requête.
_MB_TRIAL | Rapport du dombre d'essais courant.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFileOpenWriteASi

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFileOpenWriteASi

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteASi - Ouvre la configuration AS-i en écriture

FID := paFileOpenWriteASi ()

Paramètres | Description
FID : DINT; | Identificateur de fichier ou 0 si erreur.

Description

Cette fonction ouvre la configuration AS-i en écriture. Cette fonction supprime la configuration existante. Quand le fichier est complet, il doit être refermé par un appel à la fonction paFileClose.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFAsiApplyConfig

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFAsiApplyConfig

Previous chapter Next chapter Show all Show all Hide all Hide all

paFAsiApplyConfig - Définit les options générales pour AS-i

OK := paFAsiApplyConfig (FID, APPLY)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteASi.
APPLY : BOOL; | Si TRUE, la configuration AS-i est appliquée quans l'application démarre.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction définit si la configuration AS-i doit être appliquée au maître lors du démarrage de l'application.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFAsiMaster

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFAsiMaster

Previous chapter Next chapter Show all Show all Hide all Hide all

vpaFAsiMaster - Ajoute maître AS-i

OK := paFAsiMaster (FID, NAME, SETTINGS)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteASi.
NAME : STRING; | Texte de description.
SETTINGS : STRING; | Configuration du maître AS-i.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un maître AS-à la i configuration. Les esclaves et variables de diagnostic AS-i pour ce maître doivent être ajoutés juste après l'appel à cette fonfction.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFAsiMasterDiag

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFAsiMasterDiag

Previous chapter Next chapter Show all Show all Hide all Hide all

paFAsiMasterDiag - Ajoute une variable de diagnostic à un maître AS-i

OK := paFAsiMasterDiag (FID, NAME, DIAG)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteASi.
NAME : STRING; | Symbole de la variable.
DIAG : DINT; | Information désirée.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute ue variable de diagnostic au dernier maître AS-i déclaré.

Voici les valeur possibles pour le paramètre DIAG:

Valeur | Description
_ASI_M_CONFOK | Configuration OK.
_ASI_M_SLV0 | Esclave détecté à l'adresse 0.
_ASI_M_AUTOACT | Auto-adressage actif.
_ASI_M_AUTOAV | Auto-adressage disponible.
_ASI_M_CNFACT | Configuration active.
_ASI_M_NORMAL | Mode normal.
_ASI_M_PWFAIL | Hors-tension.
_ASI_M_OFFLINE | Mode hors-ligne.
_ASI_M_PERIPHOK | Périphérie OK.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFAsiSlave

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFAsiSlave

Previous chapter Next chapter Show all Show all Hide all Hide all

paFAsiSlave - Ajoute unn AS-i slave

OK := paFAsiSlave (FID, NAME, ADDRESS, PROFILE)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteASi.
NAME : STRING; | Texte de description.
ADDRESS : DINT; | Adresse de l'esclave AS-i.
PROFILE : STRING; | Profil de l'esclave AS-i selon la convention: 'H.H.H.H' (hexadécimal).
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un esclave au dernier maître AS-i déclaré. Les variables pour cet esclave doivent être définies juste après l'appel à cette fonction.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFAsiSlaveDiag

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFAsiSlaveDiag

Previous chapter Next chapter Show all Show all Hide all Hide all

paFAsiSlaveDiag - Ajoute une variable de diagnostic à un esclave AS-i

OK := paFAsiSlaveDiag (FID, NAME, DIAG)

Paramètres | Description
NAME : STRING; | Symbole de la variable.
DIAG : DINT; | Information désirée.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une variable de daignostic au dernier esclave AS-i déclaré.

Voici les valeur possibles pour le paramètre DIAG:

Valeur | Description
_ASI_S_ACT | Esclave actif.
_ASI_S_DET | Esclave détecté.
_ASI_S_PRJ | Esclave projeté.
_ASI_S_COR | Esclave corrompu.
_ASI_S_FLT | Faute de périphérie.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFAsiInput

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFAsiInput

Previous chapter Next chapter Show all Show all Hide all Hide all

paFAsiInput - Ajoute une variable d'entrée AS-i

OK := paFAsiInput (FID, NAME, OFFSET)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteASi.
NAME : STRING; | Symbole de la variable.
OFFSET : DINT; | Numéro d'entrée (1 à 4) ou 0 pour toutes les entrées sur un octet.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une variable d'entrée au dernier esclave AS-i déclaré.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFAsiOutput

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFAsiOutput

Previous chapter Next chapter Show all Show all Hide all Hide all

paFAsiOutput - Ajoute unvariable de sortie AS-i

OK := paFAsiOutput (FID, NAME, OFFSET)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteASi.
NAME : STRING; | Symbole de la variable.
OFFSET : DINT; | Numéro de sortie (1 à 4) ou 0 pour toutes les sorties sur un octet.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une variable de sortie au dernier esclave AS-i déclaré.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFileOpenWriteFieldbus

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFileOpenWriteFieldbus

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteFieldbus - Ouvre une configuration de bus de terrain en écriture

FID := paFileOpenWriteFieldbus (CONFIG)

Paramètres | Description
CONFIG : STRING | Type de bus - voir notes.
FID : DINT; | Identificateur de fichier ou 0 si erreur.

Description

Cette fonction ouvre la configuration spécifiée en écriture. Cette fonction supprime la configuration existante. Quand le fichier est complet, il doit être refermé par un appel à la fonction paFileClose.

Le paramètre CONFIG est le préfixe de la DLL utilisée pour la configuration. Les DLLs sont stockées dans le répertoire \IOD où l'atelier est installé. Vous pouvez connaître la liste des configurations disponibles depuis la fenêtre Console de l'atelier. Pour ceci, entrez la commande ?FB.

Example Example

>?FB
Fieldbus configuration wizards:
K5BusAppIO: ApplicomIO configuration
K5BusCAN: CAN bus
K5BusHMS: Anybus configuration
K5BusINTERBUS: Interbus-S
K5BusIOTools: Brodersen IOTOOLS
K5BusProfDP: Hilscher CIF Profibus
K5BusProfNetIO: PROFINET IO
K5BusShm: Win32 Shared memory
K5BusSoftNet: SoftNet ProfibusDP
K5BusSycon: Hilscher SYCON configuration
K5BusXFLOW: XFlow
K5ThinkIO: ThinkIO/IOSystem 758
K5ZenOnRT: runtime to zenon RT connection

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFfbCreateMaster

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFfbCreateMaster

Previous chapter Next chapter Show all Show all Hide all Hide all

paFfbCreateMaster - Ajoute un noeud maître

OK := paFfbCreateMaster (FID)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteFieldbus.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un noeud maître à la configuration.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFfbCreateSlave

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFfbCreateSlave

Previous chapter Next chapter Show all Show all Hide all Hide all

paFfbCreateSlave - Ajoute un noeud esclave

OK := paFfbCreateSlave (FID)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteFieldbus.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un noeud esclave à la configuration. Le noeud est créé comme fils du dernier noeud maître créé.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFfbCreateVar

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFfbCreateVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paFfbCreateVar - Ajoute un noeud variable

OK := paFfbCreateVar (FID)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteFieldbus.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un noeud variable à la configuration. Le noeud est créé comme fils du dernier noeud esclave créé.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFfbSetProperty

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFfbSetProperty

Previous chapter Next chapter Show all Show all Hide all Hide all

paFfbSetProperty - Définit une propriété

OK := paFfbSetProperty (FID, PROP, VALUE)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteFieldbus.
PROP : STRING | Nom interne de la propriété - voir notes.
VALUE : STRING | Valeur de la propriété en format neutre - voir notes.
OK : BOOL; | TRUE si réussi.

Description

Le nom de la propriété doit être passé en format "neutre", indépendant de la langue choisie pour l'atelier. De même, pour un champ booléen ou une liste de choix, vous devez spécifier une valeur en format neutre, et non tel qu'affiché dans l'outil de configuration. Pour connaître la correspondance entre les formats neutres et visibles, utilisez la fenêtre Console et entrez la commande ?FB suivie du nom de la configuration. Cette commande liste toutes les propriétés et indique leurs noms neutre et visible, ainsi que les possibles valeurs neutres pour les choix énumérés.

Example Example

>?FB K5BusCan

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFfbSelectRoot

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFfbSelectRoot

Previous chapter Next chapter Show all Show all Hide all Hide all

paFfbSelectRoot - Sélectionne la racine de l'arbre

OK := paFfbSelectRoot (FID)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteFieldbus.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction sélectionne la racine de l'arbre de configuration. La racine est automatiquement sélectionné quand le fichier de configuration est ouvert. Sélectionner un noeud dans l'arbre est requis pour définir ses noeuds fils.. Il n'est pas nécessaire de sélectionner un noeud juste après sa création.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFfbSelectMaster

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFfbSelectMaster

Previous chapter Next chapter Show all Show all Hide all Hide all

paFfbSelectMaster - Sélectionne un noeud maître

OK := paFfbSelectMaster (FID, MASTER)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteFieldbus.
MASTER : DINT | Index (base 1) dans la liste des noeuds maîtres.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction sélectionne un noeud maître de l'arbre de configuration. Sélectionner un noeud dans l'arbre est requis pour définir ses noeuds fils.. Il n'est pas nécessaire de sélectionner un noeud juste après sa création.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFfbSelectSlave

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFfbSelectSlave

Previous chapter Next chapter Show all Show all Hide all Hide all

paFfbSelectSlave - Sélectionne un noeud esclave

OK := paFfbSelectSlave (FID, MASTER, SLAVE)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteFieldbus.
MASTER : DINT | Index (base 1) dans la liste des noeuds maîtres.
SLAVE : DINT | Index (base 1) dans la liste des noeuds esclaves pour ce maître.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction sélectionne un esclave dans l'arbre de configuration. Sélectionner un noeud dans l'arbre est requis pour définir ses noeuds fils. Il n'est pas nécessaire de sélectionner un noeud juste après sa création.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFfbSelectVar

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFfbSelectVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paFfbSelectVar - Sélectionne un noeud Variable

OK := paFfbSelectVar (FID, MASTER, SLAVE, VARIABLE)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteFieldbus.
MASTER : DINT | Index (base 1) dans la liste des noeuds maîtres.
SLAVE : DINT | Index (base 1) dans la liste des noeuds esclaves pour ce maître.
VARIABLE : DINT | Index (base 1) dans la liste des noeuds variables pour cet esclave.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction sélectionne une variable dans l'arbre de configuration. Sélectionner un noeud dans l'arbre est requis pour définir ses noeuds fils.. Il n'est pas nécessaire de sélectionner un noeud juste après sa création.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFileOpenWriteBinding

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFileOpenWriteBinding

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteBinding - Ouvre la configuration des liens

FID := paFileOpenWriteBinding ()

Paramètres | Description
FID : DINT; | Identificateur de fichier ou 0 si erreur.

Description

Cette fonction ouvre la configuration des liens en écriture. Cette fonction supprime la configuration existante. Quand le fichier est complet, il doit être refermé par un appel à la fonction paFileClose.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFbindPublicVar

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFbindPublicVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbindPublicVar - Ajoute une variable publique à la configuration des liens

FID := paFbindPubilcVar (FID, ID, NAME, HYSTP, HYSTN)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteBinding.
ID : DINT; | Identificateur du lien.
NAME : STRING; | Symbole de la variable.
HYSTP : STRING; | Hystérésis positif (syntaxe IEC ou chaîne vide).
HYSTN : STRING; | Hystérésis négatif (syntaxe IEC ou chaîne vide).
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une variable publique à la configuration.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFbindExternPort

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFbindExternPort

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbindExternPort - Ajoute un port externe à la configuration des liens

FID := paFbindExternPort (FID, ADDR, PORT, NAME)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteBinding.
ADDR : STRING; | Adresse IP.
PORT : DINT; | Port IP.
NAME : STRING | Texte de description.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un port externe à la configuration des liens. Immédiatement après, vous pouvez définir les variables externes de ce port.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFbindCnxStatus

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFbindCnxStatus

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbindCnxStatus - Lie une variable d'état de la connexion

FID := paFbindCnxStatus (FID, NAME)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteBinding.
NAME : STRING; | Symbole de la variable.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction lie une variable à l'état d'une connexion. La variable est ajoutée au dernier port créé par paFbindExternPort.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFbindExternVar

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFbindExternVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbindExternVar - Lie une variable au dernier port déclaré

FID := paFbindExternVar (FID, ID, NAME)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteBinding.
ID : DINT; | Identificateur du lien.
NAME : STRING; | Symbole de la variable.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction lie une variable (échange de données) d'une connexion. La variable est ajoutée au dernier port créé par paFbindExternPort.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFbindVarStatus

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFbindVarStatus

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbindVarStatus - Lie une variable d'état au dernier port déclaré

FID := paFbindVarStatus (FID, ID, NAME)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteBinding.
ID : DINT; | Identificateur du lien.
NAME : STRING; | Symbole de la variable.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction lie une variable à l'état d'une variable. La variable est ajoutée au dernier port créé par paFbindExternPort.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFbindVarDateStamp

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFbindVarDateStamp

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbindVarDateStamp - Lie une variable au dernier port déclaré

FID := paFbindVarDateStamp (FID, ID, NAME)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteBinding.
ID : DINT; | Identificateur du lien.
NAME : STRING; | Symbole de la variable.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction lie une variable à la date de production d'une variable. La variable est ajoutée au dernier port créé par paFbindExternPort.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarTimeStamp - Ajoute une variable d'horodatage (heure).


paFbindVarTimeStamp

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Réseaux et bus de terrains - services d'écriture de fichier -> paFbindVarTimeStamp

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbindVarTimeStamp - Lie une variable d'horodatage au (heure) dernier port déclaré

FID := paFbindVarTimeStamp (FID, ID, NAME)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenWriteBinding.
ID : DINT; | Identificateur du lien.
NAME : STRING; | Symbole de la variable.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction lie une variable à l'heure de production d'une variable. La variable est ajoutée au dernier port créé par paFbindExternPort.

seealso See also
  • Configuration MODBUS:

paFileOpenWriteModbus - Ouvre le fichier de configuration MODBUS en écriture.
paFModbusSlave - Configure la connexion esclave MODBUS.
paFModbusMaster - Ajoute une connexion maître MODBUS.
paFModbusRequestSlave - Ajoute une requête à la connexion MODBUS esclave.
paFModbusRequestMaster - Ajoute une requête à une connexion MODBUS maître.
paFModbusVariable - Ajoute une variable sur la dernière requête MODBUS configurée.

  • Configuration AS-i:

paFileOpenWriteASi - Ouvre le fichier de configuration AS-i en écriture.
paFAsiApplyConfig - Définit un flag (niveau principal).
paFAsiMaster - Ajoute un organe maître.
paFAsiMasterDiag - Ajoute une variable de diagnostic au maître.
paFAsiSlave - Ajoute un esclave.
paFAsiSlaveDiag - Ajoute une variable de diagnostic au dernier esclave déclaré.
paFAsiInput - Ajoute une variable d'entrée au dernier esclave déclaré.
paFAsiOutput - Ajoute une variable de sortie au dernier esclave déclaré.

  • Autres bus de terrain:

paFileOpenWriteFieldbus - Ouvre un fichier de configuration en écriture.
paFfbCreateMaster - Ajoute un noeud maître.
paFfbCreateSlave - Ajoute un noeud esclave.
paFfbCreateVar - Ajoute un noeud variable.
paFfbSetProperty - Définit la valeur d'une propriété.
paFfbSelectRoot - Sélectionne la racine de l'arcbre.
paFfbSelectMaster - Sélectionne un noeud maître.
paFfbSelectSlave - Sélectionne un noeud esclave.
paFfbSelectVar - Sélectionne un noeud variable.

  • Configuration des liens:

paFileOpenWriteBinding - Ouvre la configuration des liens en écriture.
paFbindPublicVar - Ajoute une variable publique.
paFbindExternPort - Ajoute un port externe.
paFbindCnxStatus - Ajoute une variable d'état de la connexion.
paFbindExternVar - Ajoute une variable externe.
paFbindVarStatus - Ajoute une variable d'état.
paFbindVarDateStamp - Ajoute une variable d'horodatage (date).


Services d'écriture des fichiers de mise au point

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de mise au point

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les services pour l'écriture des fichiers de mise au point. Les fichiers sont ouverts à l'aide des fonctions appropriées, et doivent être refermés par la fonction paFileClose.

  • Listes espions:

    paFileOpenWriteSpyList - Ouvre une liste espion en écriture.
    paFSpyAddVariable - Ajoute une variable à une liste.

  • Recettes:

    paFileOpenWriteRecipe - Ouvre une recette en écriture.
    paFrcpAddColumn - Ajoute une colonne à une recette.
    paFrcpAddVariable - Ajoute une variable à une recette.
    paFrcpAddValue - Ajoute une valeur à une recette.

  • Documents graphiques:

    Non disponible.

Dans cette section

paFileOpenWriteSpyList

paFSpyAddVariable

paFileOpenWriteRecipe

paFrcpAddColumn

paFrcpAddVariable

paFrcpAddValue


paFileOpenWriteSpyList

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de mise au point -> paFileOpenWriteSpyList

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteSpyList - Ouvre une liste espio en écriture

FID := paFileOpenWriteSpyList (NAME)

Paramètre | Description
NAME : STRING; | Nom de la liste (pas de suffixe !).
FID : DINT; | Identificateur de fichier ou 0 si erreur.

Description

Cette fonction ouvre une liste espion en écriture. Le contenu de la liste est supprimé si elle existe déjà. Quand il est complet, le document doit être fermé par un appel à paFileClose.

seealso See also
  • Listes espions:

    paFSpyAddVariable - Ajoute une variable à une liste.

  • Recettes:

    paFileOpenWriteRecipe - Ouvre une recette en écriture.
    paFrcpAddColumn - Ajoute une colonne à une recette.
    paFrcpAddVariable - Ajoute une variable à une recette.
    paFrcpAddValue - Ajoute une valeur à une recette.

  • Documents graphiques:

Non disponible.


paFSpyAddVariable

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de mise au point -> paFSpyAddVariable

Previous chapter Next chapter Show all Show all Hide all Hide all

paFSpyAddVariable - Ajoute une variable à une liste

OK := paFSpyAddVariable (FID, NAME)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenSpyList.
NAME : STRING; | Symbole de la variable.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une variable à une liste espion.

seealso See also
  • Listes espions:

    paFileOpenWriteSpyList - Ouvre une liste espion en écriture.

  • Recettes:

    paFileOpenWriteRecipe - Ouvre une recette en écriture.
    paFrcpAddColumn - Ajoute une colonne à une recette.
    paFrcpAddVariable - Ajoute une variable à une recette.
    paFrcpAddValue - Ajoute une valeur à une recette.

  • Documents graphiques:

Non disponible.


paFileOpenWriteRecipe

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de mise au point -> paFileOpenWriteRecipe

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteRecipe - Ouvre une recette en écriture

FID := paFileOpenRecipe (NAME)

Paramètre | Description
NAME : STRING; | Nom de la recette (pas de suffixe !).
FID : DINT; | Identificateur de fichier ou 0 si erreur.

Description

Cette fonction ouvre une recette en écriture. Le contenu de la recette est supprimé si elle existe déjà. Quand il est complet, le document doit être fermé par un appel à paFileClose.

seealso See also
  • Listes espions:

    paFileOpenWriteSpyList - Ouvre une liste espion en écriture.
    paFSpyAddVariable - Ajoute une variable à une liste.

  • Recettes:

    paFrcpAddColumn - Ajoute une colonne à une recette.
    paFrcpAddVariable - Ajoute une variable à une recette.
    paFrcpAddValue - Ajoute une valeur à une recette.

  • Documents graphiques:

Non disponible.


paFrcpAddColumn

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de mise au point -> paFrcpAddColumn

Previous chapter Next chapter Show all Show all Hide all Hide all

paFrcpAddColumn - Ajoute une colonne à une recette

OK := paFrcpAddColumn (FID, COL, NAME)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenRecipe.
COL : DINT; | Index de la colonne (commence à 0).
NAME : STRING; | Nom de la colonne.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une colonne à une recette. L'index de la première colonne est 0.Les colonnes sont déclarées de la gauche vers la droite. Les colonnes doivent être définie avant l'ajout de variables.

seealso See also
  • Listes espions:

    paFileOpenWriteSpyList - Ouvre une liste espion en écriture.
    paFSpyAddVariable - Ajoute une variable à une liste.

  • Recettes:

    paFileOpenWriteRecipe - Ouvre une recette en écriture.
    paFrcpAddVariable - Ajoute une variable à une recette.
    paFrcpAddValue - Ajoute une valeur à une recette.

  • Documents graphiques:

Non disponible.


paFrcpAddVariable

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de mise au point -> paFrcpAddVariable

Previous chapter Next chapter Show all Show all Hide all Hide all

paFrcpAddVariable - Ajoute une variable à une recette

OK := paFrcpAddVariable (FID, NAME)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenRecipe.
NAME : STRING; | Symbole de la variable.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une variable (ligne) à une recette. Les variables doivent être définies l'ajout de valeurs.

seealso See also
  • Listes espions:

    paFileOpenWriteSpyList - Ouvre une liste espion en écriture.

    paFSpyAddVariable - Ajoute une variable à une liste.

  • Recettes:

    paFileOpenWriteRecipe - Ouvre une recette en écriture.

    paFrcpAddColumn - Ajoute une colonne à une recette.

    paFrcpAddVariable - Ajoute une variable à une recette.

    paFrcpAddValue - Ajoute une valeur à une recette.

  • Documents graphiques:

Non disponible.


paFrcpAddValue

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de mise au point -> paFrcpAddValue

Previous chapter Next chapter Show all Show all Hide all Hide all

paFrcpAddValue - Ajoute une valeur à une recette

OK := paFrcpAddValue (FID, NAME, COL, VALUE)

Paramètre | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenRecipe function.
NAME : STRING; | Symbole de la variable.
COL : DINT; | Index de la colonne (commence à 0).
NAME : STRING; | Valeur - syntaxe IEC.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une valeur (cellule) à une recette. La variable (line) et la colonne correspondante doivent être définies.

seealso See also
  • Listes espions:

    paFileOpenWriteSpyList - Ouvre une liste espion en écriture.
    paFSpyAddVariable - Ajoute une variable à une liste.

  • Recettes:

    paFileOpenWriteRecipe - Ouvre une recette en écriture.
    paFrcpAddColumn - Ajoute une colonne à une recette.
    paFrcpAddVariable - Ajoute une variable à une recette.

  • Documents graphiques:

Non disponible.


Services d'écriture des fichiers de ressources

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de ressources

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici les services pour l'écriture des fichiers de ressources. Les fichiers sont ouverts avec les fonctions appropriées et doivent être refermés par la fonction paFileClose.

  • Générer les tables de messages:

    paFileOpenWriteStringTable - Ouvre une table de messages en écriture.
    paFstbAddColumn - Ajoute une colonne à une table de messages.
    paFstbAddString - Ajoute un message à une table.

  • Génération des ressources "signaux analogiques":

    paFileOpenWriteSignal - Ouvre un document signal en écriture.
    paFSignalAddColumn - Ajoute une colonne dans une signal.
    paFSignalAddPoint - Ajoute un point à un signal.

Dans cette section

paFileOpenWriteStringTable

paFstbAddColumn

paFstbAddString

paFileOpenWriteSignal

paFSignalAddColumn

paFSignalAddPoint


paFileOpenWriteStringTable

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de ressources -> paFileOpenWriteStringTable

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteStringTable - Ouvre une "table de messages" en écriture

FID := paFileOpenStringTable (NAME)

Paramètres | Description
NAME : STRING; | Nom de la table (pas de suffixe !).
FID : DINT; | Identificateur de fichier ou 0 si erreur.

Description

Cette fonction ouvre une ressource "table de messages" en écriture. Cette fonction supprime le contenu de la table si elle existe déjà. Quand la ressource est complte le fichier doit être refermé par un appel à paFileClose.

seealso See also
  • Générer les tables de messages:

    paFileOpenWriteStringTable - Ouvre une table de messages en écriture.
    paFstbAddColumn - Ajoute une colonne à une table de messages.
    paFstbAddString - Ajoute un message à une table.

  • Génération des ressources "signaux analogiques":

    paFileOpenWriteSignal - Ouvre un document signal en écriture.
    paFSignalAddColumn - Ajoute une colonne dans une signal.
    paFSignalAddPoint - Ajoute un point à un signal.


paFstbAddColumn

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de ressources -> paFstbAddColumn

Previous chapter Next chapter Show all Show all Hide all Hide all

paFstbAddColumn - Ajoute une colonne à une table de messages

OK := paFstbAddColumn (FID, NAME)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenStringTable.
COL : DINT; | Index de la colonne (commence à 0).
NAME : STRING; | Nom de la colonne.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une colonne à une table de messages. L'index de la première colonne est 0. Les colonnes sont déclarées de la gauche vers la droite. Les colonnes doivent êtr définies avant la déclaration des messages.

seealso See also
  • Générer les tables de messages:

    paFileOpenWriteStringTable - Ouvre une table de messages en écriture.
    paFstbAddColumn - Ajoute une colonne à une table de messages.
    paFstbAddString - Ajoute un message à une table.

  • Génération des ressources "signaux analogiques":

    paFileOpenWriteSignal - Ouvre un document signal en écriture.
    paFSignalAddColumn - Ajoute une colonne dans une signal.
    paFSignalAddPoint - Ajoute un point à un signal.


paFstbAddString

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de ressources -> paFstbAddString

Previous chapter Next chapter Show all Show all Hide all Hide all

paFstbAddString - Ajoute un message à une table de messages

OK := paFstbAddString (FID, NAME, COL, VALUE)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenStringTable.
NAME : STRING; | Identificateur du message.
COL : DINT; | Index de la colonne (commence à 0).
VALUE : STRING; | Texte du message.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un message à une ressource "table de message". La colonne spécifiée doit être déclarée.

seealso See also
  • Générer les tables de messages:

    paFileOpenWriteStringTable - Ouvre une table de messages en écriture.
    paFstbAddColumn - Ajoute une colonne à une table de messages.
    paFstbAddString - Ajoute un message à une table.

  • Génération des ressources "signaux analogiques":

    paFileOpenWriteSignal - Ouvre un document signal en écriture.
    paFSignalAddColumn - Ajoute une colonne dans une signal.
    paFSignalAddPoint - Ajoute un point à un signal.


paFileOpenWriteSignal

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de ressources -> paFileOpenWriteSignal

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteSignal - Ouvre une ressource "signal" en écriture

FID := paFileOpenSignal (NAME)

Paramètres | Description
NAME : STRING; | Nom du signal (pas de suffixe !).
FID : DINT; | Identificateur de fichier ou 0 si erreur.

Description

Cette fonction ouvre une ressource "signal analogique" en écriture. Cette fonction supprime le contenu du signal si elle existe déjà. Quand la ressource est complte le fichier doit être refermé par un appel à paFileClose.

seealso See also
  • Générer les tables de messages:

    paFileOpenWriteStringTable - Ouvre une table de messages en écriture.
    paFstbAddColumn - Ajoute une colonne à une table de messages.
    paFstbAddString - Ajoute un message à une table.

  • Génération des ressources "signaux analogiques":

    paFileOpenWriteSignal - Ouvre un document signal en écriture.
    paFSignalAddColumn - Ajoute une colonne dans une signal.
    paFSignalAddPoint - Ajoute un point à un signal.


paFSignalAddColumn

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de ressources -> paFSignalAddColumn

Previous chapter Next chapter Show all Show all Hide all Hide all

paFSignalAddColumn - Ajoute une colonne à un signal

OK := paFSignalAddColumn (FID, NAME)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenSignal.
COL : DINT; | Index de la colonne (commence à 0).
NAME : STRING; | Nom de la colonne.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute une colonne à une resssource "signal analogique". L'index de la première colonne est 0. Les colonnes sont déclarées de la gauche vers la droite. Les colonnes doivent êtr définies avant la déclaration des points.

seealso See also
  • Générer les tables de messages:

    paFileOpenWriteStringTable - Ouvre une table de messages en écriture.
    paFstbAddColumn - Ajoute une colonne à une table de messages.
    paFstbAddString - Ajoute un message à une table.

  • Génération des ressources "signaux analogiques":

    paFileOpenWriteSignal - Ouvre un document signal en écriture.
    paFSignalAddColumn - Ajoute une colonne dans une signal.
    paFSignalAddPoint - Ajoute un point à un signal.


paFSignalAddPoint

Automation de projets -> Librairie d'automation - Référence -> Génération de documents -> Services d'écriture des fichiers de ressources -> paFSignalAddPoint

Previous chapter Next chapter Show all Show all Hide all Hide all

paFSignalAddPoint - Ajoute un point à un signal

OK := paFSignalAddPoint (FID, TM, COL, VALUE)

Paramètres | Description
FID : DINT; | Identificateur de fichier retourné par paFileOpenSignal.
TM : TIME; | Coordonnée X (temps) du point.
COL : DINT; | Index de la colonne (commence à 0).
VALUE : REAL; | Coordonnée Y (valeur) du point.
OK : BOOL; | TRUE si réussi.

Description

Cette fonction ajoute un point à une ressource "signal analogique". La colonne spécifiée doit être déclarée.

seealso See also
  • Générer les tables de messages:

    paFileOpenWriteStringTable - Ouvre une table de messages en écriture.
    paFstbAddColumn - Ajoute une colonne à une table de messages.
    paFstbAddString - Ajoute un message à une table.

  • Génération des ressources "signaux analogiques":

    paFileOpenWriteSignal - Ouvre un document signal en écriture.
    paFSignalAddColumn - Ajoute une colonne dans une signal.
    paFSignalAddPoint - Ajoute un point à un signal.


Modèles

Automation de projets -> Librairie d'automation - Référence -> Modèles

Previous chapter Next chapter Show all Show all Hide all Hide all

Dans cette section

Mots variables pour la copie des modèles

Modèles de programmes


Mots variables pour la copie des modèles

Automation de projets -> Librairie d'automation - Référence -> Modèles -> Mots variables pour la copie des modèles

Previous chapter Next chapter Show all Show all Hide all Hide all

Votre scripts peut contenir des modèles de documents (tels que des programmes) à copier dans le projet cible. Lors de la copie, certains mots "variables" peuvent être remplacés par une valeur donnée par le script.

Utilisez la syntaxe suivante pour indiquer un mot variable au sein des documents de modèle:

$(keyname)

Et utilisez les fonctions suivantes dans votre script:

paSetKey - Définit la valeur d'un mot variable.
paRemoveKeys - Annule la définition des mots variables.

Dans cette section

paSetKey

paRemoveKeys


paSetKey

Automation de projets -> Librairie d'automation - Référence -> Modèles -> Mots variables pour la copie des modèles -> paSetKey

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetKey - Définit la valeur d'un mot variable pour la copie des modèles

OK := paSetKey (NAME, VALUE)

Paramètre | Description
NAME : STRING; | Nom du mot variable.
VALUE : STRING; | Valeur de remplacement pour le mot variable.
OK | TRUE si réussi.

Description

Cette fonction définit la valeur de remplacement pour un mot variable lors de la copie de modèles.

Example Example

Modèle de programme ST:

if ALARM_$(ALM) then
bMainAlarm := TRUE;
end_if;

Script:

paSetKey ('ALM', 'Engine2')
paTplCopySource ('TargetProgram', 'TemplateName');

Programme ST généré dans le projet cible:

if ALARM_Engine2 then
bMainAlarm := TRUE;
end_if;

seealso See also

paRemoveKeys - Annule la définition des mots variables.


paRemoveKeys

Automation de projets -> Librairie d'automation - Référence -> Modèles -> Mots variables pour la copie des modèles -> paRemoveKeys

Previous chapter Next chapter Show all Show all Hide all Hide all

paRemoveKeys - Annule toutes les définitions de mots variables

OK := paRemoveKeys ()

Paramètre | Description
OK | TRUE si réussi.

Description

Cette fonction annule toutes les définitions de valeurs pour les mots variables utilisés pour la copie des modèles.

seealso See also

paSetKey - Définit la valeur d'un mot variable.


Modèles de programmes

Automation de projets -> Librairie d'automation - Référence -> Modèles -> Modèles de programmes

Previous chapter Next chapter Show all Show all Hide all Hide all

Votre scripts peut contenir des modèles de documents à copier dans le projet cible. Vous pouvez ainsi instancier des modèles de programmes, sous-programmes et UDFBs.

Utilisez les fonctions suivantes pour copier un modèle:

paTplCopySource - Copie le code source.
paTplCopyVars - Copie les variables locales.
paTplCopyDefinitions - Copie les définitions locales.
paTplCopyAll - Copy tous les éléments d'un modèle de POU.

Vous pouvez également définir des mots variables à remplacer lors de la copie.

Dans cette section

paTplCopySource

paTplCopyVars

paTplCopyDefinitions

paTplCopyAll


paTplCopySource

Automation de projets -> Librairie d'automation - Référence -> Modèles -> Modèles de programmes -> paTplCopySource

Previous chapter Next chapter Show all Show all Hide all Hide all

paTplCopySource - Copie le code source d'un modèle de POU

OK := paTplCopySource (DSTPROG, TEMPLATE)

Paramètre | Description
DSTPROG : STRING; | Nom du programme de destination dans le projet cible (doit exister).
TEMPLATE : STRING; | Nom du modèle dans le projet du script.
OK | TRUE si réussi.

Description

Cette fonction copie le code source du modèle spécifié dans le projet de destination. Le programme de destination doit être déclaré avant la copie.

seealso See also

paTplCopyVars - Copie les variables locales.
paTplCopyDefinitions - Copie les définitions locales.
paTplCopyAll - Copy tous les éléments d'un modèle de POU.

Vous pouvez également définir des mots variables à remplacer lors de la copie.


paTplCopyVars

Automation de projets -> Librairie d'automation - Référence -> Modèles -> Modèles de programmes -> paTplCopyVars

Previous chapter Next chapter Show all Show all Hide all Hide all

paTplCopyVars - Copie les variables locales d'un modèle de POU

OK := paTplCopyVars (DSTPROG, TEMPLATE)

Paramètre | Description
DSTPROG : STRING; | Nom du programme de destination dans le projet cible (doit exister).
TEMPLATE : STRING; | Nom du modèle dans le projet du script.
OK | TRUE si réussi.

Description

Cette fonction copie les variables locales du modèle spécifié dans le projet de destination. Le programme de destination doit être déclaré avant la copie.

seealso See also

paTplCopySource - Copie le code source.
paTplCopyDefinitions - Copie les définitions locales.
paTplCopyAll - Copy tous les éléments d'un modèle de POU.

Vous pouvez également définir des mots variables à remplacer lors de la copie.


paTplCopyDefinitions

Automation de projets -> Librairie d'automation - Référence -> Modèles -> Modèles de programmes -> paTplCopyDefinitions

Previous chapter Next chapter Show all Show all Hide all Hide all

paTplCopyDefinitions - Copie les définitions locales d'un modèle de POU

OK := paTplCopyDefinitions (DSTPROG, TEMPLATE)

Paramètre | Description
DSTPROG : STRING; | Nom du programme de destination dans le projet cible (doit exister).
TEMPLATE : STRING; | Nom du modèle dans le projet du script.
OK | TRUE si réussi.

Description

Cette fonction copie les définitions locales du modèle spécifié dans le projet de destination. Le programme de destination doit être déclaré avant la copie.

seealso See also

paTplCopySource - Copie le code source.
paTplCopyVars - Copie les variables locales.
paTplCopyAll - Copy tous les éléments d'un modèle de POU.

Vous pouvez également définir des mots variables à remplacer lors de la copie.


paTplCopyAll

Automation de projets -> Librairie d'automation - Référence -> Modèles -> Modèles de programmes -> paTplCopyAll

Previous chapter Next chapter Show all Show all Hide all Hide all

paTplCopyAll - Copie un modèle de POU (tous les composants)

OK := paTplCopyAll (DSTPROG, TEMPLATE)

Paramètre | Description
DSTPROG : STRING; | Nom du programme de destination dans le projet cible (doit exister).
TEMPLATE : STRING; | Nom du modèle dans le projet du script.
OK | TRUE si réussi.

Description

Cette fonction copie le code source, les variables locales et les définitions locales du modèle spécifié dans le projet de destination. Le programme de doit être déclaré avant la copie.

seealso See also

paTplCopySource - Copie le code source.
paTplCopyVars - Copie les variables locales.
paTplCopyDefinitions - Copie les définitions locales.
Vous pouvez également définir des mots variables à remplacer lors de la copie.


Paramètres de scripts

Automation de projets -> Librairie d'automation - Référence -> Paramètres de scripts

Previous chapter Next chapter Show all Show all Hide all Hide all

Votre script d'automation peut contenir des paramètres entrés par l'utilisateur quand le script est exécuté.

Principe

Les paramètres sont des variables globales de votre project de script. Vous devez de plus créer une liste de variable regroupant les variables correspondant aux paramètres. Enfi, dans votre script, appelez la fonction paEditParameterList, qui ouvrira une boîte de dialogue dans laquelle l'utilisateur entrera les valeurs des paramètres. Les variables "paramètres" peuvent alors être utilisées par votre script.

Un paramètre doit être une variable déclarée avec un type simple (ni tableau ni structure). Tous les types de base sont supportés. Quand la boîte de saisie des paramètres est ouverte, leur valeur courante est proposée par défaut à l'utilisateur.

Pour un paramètre de type STRING, il est possible de définir une liste de choix. Pour ceci, affectez à la variable la liste des choix séparés par le caractère '|'. Par exemple: 'Choix1|Choix2'.

Fonctions

paSetParameterDesc - Définit le commentaire à associer à un paramètre.
paEditParameterList - Ouvre la boîte de saisie des paramètres.

Voir un exemple.

Dans cette section

paSetParameterDesc

paEditParameterList

Exemple


paSetParameterDesc

Automation de projets -> Librairie d'automation - Référence -> Paramètres de scripts -> paSetParameterDesc

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetParameterDesc - Définit le commentaire à associer à un paramètre

OK := paSetParameterDesc (NAME, DESC)

Paramètre | Description
NAME : STRING; | Nom du paramètre, tel que déclaré dans votre projet de script.
DESC : STRING; | Description à afficher lors de la saisie.
OK : BOOL | TRUE si réussi.

Description

Cette fonction définit le texte de commentaire à afficher en face d'un paramètre dans la boîte de saisie.

seealso See also

paEditParameterList - Ouvre la boîte de saisie des paramètres.

Voir un exemple.


paEditParameterList

Automation de projets -> Librairie d'automation - Référence -> Paramètres de scripts -> paEditParameterList

Previous chapter Next chapter Show all Show all Hide all Hide all

paEditParameterList - Ouvre la boîte de saisie des paramètres

OK := paEditParameterList (LISTID, TITLE)

Paramètre | Description
LISTID : DINT; | ID de la liste de paramètres (utilisez la fonction VLID).
TITLE : STRING; | Titre de la boîte de saisie.
OK : BOOL; | TRUE si l'utilisateur a validé par OK.

Description

Cete fonction ouvre une boîte dans laquelle les paramètres sont saisis par l'utilisateur.

seealso See also

paSetParameterDesc - Set the description text to be shown with a parameter.
See an example.


Exemple

Automation de projets -> Librairie d'automation - Référence -> Paramètres de scripts -> Exemple

Previous chapter Next chapter Show all Show all Hide all Hide all

Cet exemple montre les étapes pour la gestion de paramètres dans un script:

  • Déclarez les paramètres comme variables globalesdans le project de script:

  • Créez une liste de variables avec les paramètres:

  • Script ST:

// définit le commentaire de chaque paramètre
paSetParameterDesc ('Param1', 'This is parameter 1');
paSetParameterDesc ('Param2', 'This is parameter 2');
paSetParameterDesc ('Param3', 'This is parameter 3');
// ouvre la boîte de saisie
paEditParameterList (VLID ('Parameters'), 'Enter parameters now');

Quand le script est exécuté, la boîte suivante s'affiche:

Le paramètre Param1 est une case à cocher car déclaré avec le type BOOL. Le paramètre Param3 est montré comme une liste de choix car la valeur de Param3 (sa valeur initiale dans ce cas) est une liste de mots séparés par le caractère '|'.


Autres fonctions

Automation de projets -> Librairie d'automation - Référence -> Autres fonctions

Previous chapter Next chapter Show all Show all Hide all Hide all

Voici d'autres fonctions pour l'écriture dess scripts d'automation:

paGetLanguage - Retourne le langage sélectionné pour l'atelier.
paTRACE... - Affiche un message.

Dans cette section

paGetLanguage

paTRACEx


paGetLanguage

Automation de projets -> Librairie d'automation - Référence -> Autres fonctions -> paGetLanguage

Previous chapter Next chapter Show all Show all Hide all Hide all

paGetLanguage - Retourne le langage sélectionné

LGE := paGetLanguage ()

Paramètre | Description
LGE : DINT; | Langage actif (voir notes).

Description

Cette fonctionretourne le langage sélectionné pour l'atelier. Possible returned values are:

Valeur | Description
_WB_USA | Anglais
_WB_GER | Allemand
_WB_FRA | Français
_WB_ITA | Italien
_WB_SPA | Espagnol
_MW_KOR | Koréen

seealso See also

paTRACE... - Affiche un message.


paTRACEx

Automation de projets -> Librairie d'automation - Référence -> Autres fonctions -> paTRACEx

Previous chapter Next chapter Show all Show all Hide all Hide all

paTRACE... - Affiche un message dans la fenêtre de rapport

paTRACE0 (TEXT)
paTRACE1 (TEXT, ARG1)
paTRACE2 (TEXT, ARG1, ARG2)
paTRACE3 (TEXT, ARG1, ARG2, ARG3)
paTRACE4 (TEXT, ARG1, ARG2, ARG3, ARG3)

Paramètre | Description
TEXT : STRING; | Texte à afficher.
ARG1..4 : DINT; | Arguments.

Description

Le message spécifié par l'argument TEXT est affiché dans la fenêtre de rapport quand le script est exécuté. Le message peut contenir jusqu'à 4 arguments entiers, spécifiés dans la chaine TEXT par les séquences de caractères suivantes:

%ld valeur décimale signée.
%lu valeur décimale non signée.
%lx valeur hexadécimale.

seealso See also

paGetLanguage - Retourne le langage sélectionné pour l'atelier.


Workbench COM Interface

Workbench COM Interface

The Workbench offers a COM interface (K5COM.dll) which sets up on the program automation interface. As the referring object model is developed continuously this description could not be up to date.

The COM interfac can be use for e.g.:

  • declaring variables via a VBA wizard.
  • browsing programs or the variable lists.
  • automatic programming.
  • ...

This page describes the object model only. All the rest of the information can be looked up in the object library of the used programming environments (e.g. VBA).

Here you find the object model represented as a tree:

- StratonCom
- Project
- GlobalVariables
- Variables
- Variable
- VarProps
- VarProperty
- RetainVariables
- Variables
- Variable
- VarProps
- VarProperty
- Programs
- Variables
- Variable
- VarProps
- VarProperty
- ProgramContent
- ProgramObjects
- GraphicalObject
- ProgramLines
- LineObject

You can use all program automation commands through the shell of the used programming language (e.g. VBA).


Copyright

Copyright

Les informations contenues dans ces pages peuvent être modifiées sans notification et ne représentent pas un engagament de COPA-DATA France. Aucune partie de ces pages ne peut être reproduite sous quelque forme que ce soit ou par tout moyen électronique ou mécanique, pour tout objet, sans l'autorisation expresse de COPA-DATA France.

© 2015 COPA-DATA France. Tous droits réservés.

Les noms de produits et de sociétés inclus dans ces pages sont des marques de leurs propriétaires respectifs.

COPA-DATA France


SAMA Blocks

This section details the basic function blocks available for SAMA programming.

Dans cette section

SAMA - AND

SAMA - Averaging

SAMA - Bias

SAMA - Derivative

SAMA - Difference

SAMA - Dividing

SAMA - Exponetial

SAMA - High Limiting

SAMA - High/Low Limiting

SAMA - High Selecting

SAMA - Integral

SAMA - Logical Variable Signal Generator

SAMA - Low Limiting

SAMA - Low Selecting

SAMA - Manual Transfer

SAMA - Memory (R dominant)

SAMA - Memory (S dominant)

SAMA - Multiplying

SAMA - Non Linear Function

SAMA - NOT

SAMA - OR

SAMA - PI Controller with Feed Forward

SAMA - Proportional

SAMA - Pulse Duration

SAMA - Qualified Logical OR (>n)

SAMA - Qualified Logical OR (<n)

SAMA - Qualified Logical OR (=n)

SAMA - Reverse Proportional

SAMA - Root Extraction

SAMA - Summing

SAMA - Three State Signal Monitor

SAMA - Two State Signal Monitor (lower limit)

SAMA - Two State Signal Monitor (upper limit)

SAMA - Time Delay of Initiation

SAMA - Time Delay of Termination

SAMA - Transfer

SAMA - Variable Signal Generator

SAMA - Velocity Limiter


Boolean Operations

Fonction ou bloc fonctionnel non documenté

Ce bloc est réservé pour le diagnostic de certaines cibles et ne doit pas être utilisé dans les applications.


Fonctions PID par JS Automation

JS_DeadTime - Retard analogique

Appel

Entrée : Signal d'entrée.
N : Nombre d'échantillons (200 max).
DeadTime : Retard (secondes).

Retour

OUT : Signal de sortie.

info Info

Permet de retarder un signal analogique.

attention Attention

Le Temps mort divisé par le nombre d'échantillons doit être trés supérieur au temps de cycle.
Si N = 0 la fonction prend 1
Si N > 200 la fonction prend 200

JS_LeadLag - Avance Retard

Apple

Input : Signal d'entrée.
Lead : Avance.
Lag : Retard.
Ts : Temps d'échantillonage.

Retour

Out : Signal de sortie.

Fonction

Qn = Qn-1 + Ts/Ti.(Mn-1 - Qn-1) + Td/Ti.(Mn - Mn-1)

Qn : Sortie à l'instant t
Qn-1 : Sortie à l'instant t-1
Mn : Entrée à l'instant t
Mn-1 : Entrée à l'instant t-1
Ts : Temps d'échantillonage
Ti : Retard (Lag)
Td : Avance (Lead)

info Info

Si Lag = 0 la fonction n'est pas calculée.
Le temps d'échantillonage Ts doit être très supérieur au temps de cycle.

JS_PID - PID

Appel

LSL : Echelle de boucle basse (Loop Scale Low)
LSH : Echelle de boucle haute (Loop Scale High)
Auto : Mode automatique ou manuel
Pv : Valeur de sortie du procédé (Process value)
Sp : Valeur de consigne (Set point)
Ramp : Consigne de Rampe (en unité par minute)
Balance : Consigne de balance Auto/Manu
Action : Action de sortie Directe ou Inverse
Mixt : PID Interactif ou Non-Interactif
Deriv : Action Derivée
Feedback : Retour externe de PID pour les manipulations de sortie
X0 : Valeur d'adjustement : En mode manuel, la sortie du PID est égale à X0
Vous devez obligatoirement connecter une variable (pas une constante et pas de calcul sur cette variable)
Kp : Constante proportionelle
Ti : Constante de temps d'intégration en minutes
Td : Constante de temps de dérivée en minutes
Ts : Période d'échantillonnage
Xmin : Limite minimum de la valeur de sortie
Xmax : Limite maximum de la valeur de sortie

Retour

SPcur : Consigne courante (Current SetPoint)
Xout : Commande

info Info

Le mode automatique soit être mis à false lors de l'initialisation.
Balance =0 pas de consigne de balance ; =1 Balance
Xout est limitée par la plage de valeurs Xmin, Xmax.
Xmax doit être plus grand que Xmin.
Le terme d'intégrale est maintenu quand Xout atteint les limites.
Le paramètre Ts doit être plus grand que le temps de cycle.
Action :

  • Directe (0) la sortie croît si PV-SP est positif et décroît si PV-SP est négatif.
  • Inverse (1) la sortie décroît si PV-SP est positif et croît si PV-SP est négatif.

Mixt :

  • PID Interactif (0) : Les paramètres I et D sont multipliés par KP.
  • Non-Interactive (1) : Les paramètres P,I,D sont indépendants.

Feedback :

  • La plage de valeurs doit être entre 0 et 100.
  • Feeback=0 : retour interne.

JS_Ramp - Limite la vitesse de variation de l'entrée

Appel

  • INPUT : Signal d'entrée.
  • Rampe : Vitesse maximum de variation (Unité/mn).
  • Cycle : Temps de cycle de l'application.

Retour

OUT : Signal de sortie.

info Info
  • La vitesse de variation est exprimée en unités par minute
  • L'entrée Cycle doit être le temps de cycle de l'application

    Utiliser l'appel à la fonction GetSysInfo (_SYSINFO_CYCLETIME_MS)


Task management

The following functions enable the control of tasks ina multitask runtime:

SysStartTask start a task
SysStopTask stop a task
SysCfgTask configure the running task

attention Attention
  • Multitasking is available on some runtimes only. Please refer to your OEM in order to know which task model is supported.

SysStartTask: start a task

OK := SysStartTask (Task, Warm);

Task: DINT number of the task (1 based).
Warm : BOOL If TRUE then RETAIN variables of the task are loaded.
OK : BOOL TRUE if successful

SysStopTask: kill a task

OK := SysStopTask (Task);

Task: DINT number of the task (1 based).
OK : BOOL TRUE if successful

SysCfgTask: configures the task where this function is called

OK := SysCfgTask(Prio, Options);

Prio : DINT task priority - refer to OEM for priority conventions
Opts : STRING task options - refer to OEM


RedSwitch

Function - Triggers a redundancy switch.

 | Data type | Description
Inputs |  |
SWITCH | BOOL | Input to trigger the redundancy switch
Outputs |  |
ERROR | BOOL | TRUE in case of error. E.g. no passive Runtime connected.

Remarks

This function causes a redundancy switch of the Runtime when the input SWITCH becomes TRUE.

ST Language

ERROR := RedSwitch (SWITCH);

FBD Language

This function is available in FBD language.

LD Language

This function is available in LD language.

IL Language

Op1: LD SWITCH
RedSwitch
ST ERROR


ROLb / ROL_SINT / ROL_USINT / ROL_BYTE

Fonction - Rotation à gauche d'un registre de 8 bits.

Entrées

IN : SINT Registre de 8 bits.
NBR : SINT Nombre de of rotations (chaque rotation est de 1 bit).

Sorties

Q : SINT Registre décalé.

Diagramme

Remarques

En LD, le flux d'entrée conditionne l'opération, et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Le second paramètre est l'argument de la fonction.

Langage ST

Q := ROLb (IN, NBR);

Langage FBD

Langage LD

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
ROLb NBR
ST Q

seealso See also

SHL SHR ROL ROR SHLb SHRb RORb SHLw SHRw ROLw RORw


ROLw / ROL_INT / ROL_UINT / ROL_WORD

Fonction - Rotation à gauche d'un registre de 16 bits.

Entrées

IN : INT Registre de 16 bits.
NBR : INT Nombre de of rotations (chaque rotation est de 1 bit).

Sorties

Q : INT Registre décalé.

Diagramme

Remarques

En LD, le flux d'entrée conditionne l'opération, et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Le second paramètre est l'argument de la fonction.

Langage ST

Q := ROLw (IN, NBR);

Langage FBD

Langage LD

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
ROLw NBR
ST Q

seealso See also

SHL SHR ROL ROR SHLb SHRb RORb SHLw SHRw ROLb RORw


ApplyRecipeColumn RTK_IsBugCheck

Fonction - Teste une défaillance "Blue screen" de MS Windows XP.

par COPA-DATA GmbH

Entrées

---

Sorties

Q : BOOL TRUE en cas de Blue screen.

Remarks

Pour les cibles COPA-DATA's RTK (temps réel) pour Windows XP seulement.

info Info

Après un Blue de MS Windows XP Windows, certaines fonctions ne peuvent plus être exécutées: Opérations sur fichiers, Fonctions TCP, Interface sérielle, pilotes d'I/O non temps réel, horloge système, variables RETAIN, messages de trace,...

En LD language, le flux d'entrée conditionne l'opération. Le flux est inchangé en sortie.

Langage ST

Q := RTK_IsBugCheck ();

Langage FBD

Langage LD

La fonction est appelée si EN = TRUE.

Langage IL

Non disponible.


Options d'exécution

Les options d'exécution sont éditées depuis le menu Générer de la fenêtre d'édition. Les options d'exécution doivent être définis AVANT la compilation de l'application.

Temps de cycle

Vous devez spécifier comment les cycles seront cadencés à l'exécution:

  • Pas de cadencement: la cible enchaine les cycles sans attente. La cible tourne aussi vite que possible.
  • Cadencement: vous devez sépcifier la durée des cycles, exprimée comme un nombre de micro secondes. Référez-vous aux instructions du constructeur pour connaître la précision autorisée pour le cadencement des cycles sur la cible.

Cadencement des programmes

L'atelier vous permet de définir différentes périodes pour l'exécution de chaque programme de l'application. La période par défaut est 1: le programme est exécuté à chaque cycle. Spécifier une période plus lente pour certains programmes est un moyen simple de doner une priorité plus importante aux autres programmes.

Pour changer le cadencement de certains programmes, sélectionnez-les dans la liste de gauche et pressez le bouton >, ou glissez-les dans la grille où vous pouvez régler pour chaque programme sélectionné:

  • Sa période (nombre cycles entre deux exécutions du programme).
  • Sa phase (un offset qui vous permet de distribuer l'exécution des programmes lents dans le temps).

Le diagramme du haut montre la charge de la cible d'un cycle à l'autre. Pour chaque échantillon, le diagramme montre le nombre de programmes exécutés. Vous pouvez également surligner un programme dans le diagramme en le cochant dans la grille.

L'exemple suivant illustre l'exécution d'une application de trois programmes. Afin de donner une priorité plus haute au programme P3, une période de 2 est affectée à P1 et P2. P2 a une phase de 1, pour spécifier qu'il ne doit pas être exécuté en même temps que P1:

Example Example

 | Période | Phase
P1 | 2 | 0
P2 | 2 | 1
P3 | 1 | 0

Le diagramme ci-dessous illustre quels programmes sont exécutés d'un cycle à l'autre dans cette configuration:

P1 | P2 | P1 | P2 | P1 | P2 | P1 | P2 | P1
P3 | P3 | P3 | P3 | P3 | P3 | P3 | P3 | P3
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ...


SAMA - AND

Boolean AND. The block accepts from 2 to 16 inputs. Resize the block vertically to get more or less inputs.

Inputs

IN1 .. IN16 : BOOL

Boolean inputs

Outputs

Q : BOOL

TRUE if all inputs are TRUE


SAMA - Averaging

Calculate the average of inputs. The block accepts from 2 to 16 inputs. Resize the block horizontally to get more or less inputs.

Inputs

IN1 .. IN16 : REAL

Analog inputs

Outputs

OUT : REAL

Average of all inputs


SAMA - Bias

Holds the Bias point of the output.

Inputs

IN : REAL

Analog input

Parameters

BIAS : REAL

Bias point

Outputs

OUT : REAL

IN + BIAS


SAMA - Derivative

Derivates the input signal. The output is limited by PMIN and PMAX parameters.

Inputs

IN : REAL

Analog signal

Parameters

TD : TIME | Differential time
PMIN : REAL | Minimum output value
PMAX : REAL | Maximum output value

Outputs

OUT : REAL

Derivated signal limited to [PMIN .. PMAX]


SAMA - Difference

Calculate the difference between inputs.

Inputs

IN1 : REAL | Analog input
IN2 : REAL | Analog input

Outputs

OUT : REAL

IN1 - IN2


SAMA - Dividing

Calculate the division between inputs.

Inputs

IN1 : REAL | Analog input
IN2 : REAL | Analog input

Outputs

OUT : REAL

IN1 / IN2


SAMA - Exponetial

Calculate the exponential of the input.

Inputs

IN : REAL

Analog input

Parameters

N : DINT

Exponent

Outputs

OUT : REAL

IN exp N


SAMA - High Limiting

Limits the maximum value of the input.

Inputs

IN : REAL

Analog input

Parameters

PMAX : REAL

Maximum value for the output

Outputs

OUT : REAL

= IN if IN <= PMAX

= PMAX if IN > PMAX


SAMA - High Selecting

Select the maximum of two inputs. The block accepts from 2 to 16 inputs. Resize the block horizontally to get more or less inputs.

Inputs

IN1 .. IN16 : REAL

Analog inputs

Outputs

OUT : REAL

Maximum value of all inputs


SAMA - High/Low Limiting

Limits the mimimum and maximum value of the input.

Inputs

IN : REAL

Analog input

Parameters

PMIN : REAL | Minimum value for the output
PMAX : REAL | Maximum value for the output

Outputs

OUT : REAL

= IN if PMIN <= IN <= PMAX

= PMIN if IN < PMIN

= PMAX if IN > PMAX


SAMA - Integral

Integrates the input signal. The output is limited by PMIN and PMAX parameters.

Inputs

IN : REAL

Analog signal

Parameters

TI : TIME | Integration time
PMIN : REAL | Minimum output value
PMAX : REAL | Maximum output value

Outputs

OUT : REAL

Integral signal limited to [PMIN .. PMAX]


SAMA - Logical Variable Signal Generator

Toggles the output on every change from 0 to 1 of the TOG parameter.

Parameters

TOG : UDINT

Toggle command

Outputs

Q : BOOL | Toggled when TOG changes from 0 to 1
STATUS : BOOL | equals to Q


SAMA - Two State Signal Monitor (lower limit)

Return TRUE if the input is greater than the specified minimum value.

Inputs

IN : REAL

Analog input

Parameters

PMIN : REAL

Minimum value

Outputs

OUT : BOOL

FALSE if IN > PMIN

TRUE otherwise


SAMA - Low Limiting

Limits the mimimum value of the input.

Inputs

IN : REAL

Analog input

Parameters

PMIN : REAL

Minimum value for the output

Outputs

OUT : REAL

= IN if IN >= PMIN

= PMIN if IN < PMIN


SAMA - Low Selecting

Select the minimum of two inputs. The block accepts from 2 to 16 inputs. Resize the block horizontally to get more or less inputs.

Inputs

IN1 .. IN16 : REAL

Analog inputs

Outputs

OUT : REAL

Minimum value of all inputs


SAMA - Manual Transfer

Select one of two inputs. Change is performed when the command "S" changes from FALSE to TRUE. The change rate is limited by the "RATE" parameter.

Inputs

IN1 .. IN2 : REAL

Analog inputs

Parameters

RATE : REAL | Maximum number of transitions per second
S : BOOL | Transition command

Outputs

OUT : REAL | IN1 or IN2. Change on every rising edge of S
STATUS : BOOL | TRUE when IN2 is selected


SAMA - Multiplying

Calculate the multiplication of inputs. The block accepts from 2 to 16 inputs. Resize the block horizontally to get more or less inputs.

Inputs

IN1 .. IN16 : REAL

Analog inputs

Outputs

OUT : REAL

Multiplication of all inputs


SAMA - Non Linear Function

Calculate linear interpolation within a list of points. Points must be sorted in the increasing order of their X coordinate. You can define from 2 to 8 points for interpolation.

Inputs

IN : REAL

Input - according to X axis

Parameters

X1 .. X8 : REAL | X coordinate of interpolation points
Y1 .. Y8 : REAL | Y coordinate of interpolation points

Outputs

OUT : REAL

Y interpolation of IN

Diagram


SAMA - NOT

Boolean negation.

Inputs

IN1 : BOOL

Boolean input

Outputs

Q : BOOL

TRUE if IN is FALSE / FALSE if IN is TRUE


SAMA - Time Delay of Termination

Off-Delay Timer. The timer starts on a falling pulse of IN input. It stops when the elapsed time is equal to the programmed time. A rising pulse of IN input resets the timer to 0. The output signal is set to TRUE on when the IN input rises to TRUE, reset to FALSE when programmed time is elapsed.

Inputs

IN : BOOL

Input trigger

Parameters

T : TIME | Duration
RST : BOOL | Reset command

Outputs

Q : BOOL

Output signal

Time diagram


SAMA - Time Delay of Initiation

On-Delay Timer. The timer starts on a rising pulse of IN input. It stops when the elapsed time is equal to the programmed time. A falling pulse of IN input resets the timer to 0. The output signal is set to TRUE when programmed time is elapsed, and reset to FALSE when the input command falls.

Inputs

IN : BOOL

Input trigger

Parameters

T : TIME | Duration
RST : BOOL | Reset command

Outputs

Q : BOOL

Output signal

Time diagram


SAMA - OR

Boolean OR. The block accepts from 2 to 16 inputs. Resize the block vertically to get more or less inputs.

Inputs

IN1 .. IN16 : BOOL

Boolean inputs

Outputs

Q : BOOL

TRUE if at least one of the inputs is TRUE


SAMA - PI Controller with Feed Forward

Perform a Proportional / Integral transfer function or the difference between the SP set point and PV process value. The Feed Forward value is added to the output signal. The final output is limited by PMIN and PMAX parameters.

Inputs

SP : REAL | Set point
PV : REAL | Process value
FF : REAL | Feed Forward

Parameters

KP : REAL | Proportional gain
TN : TIME | Reset time
PMIN : REAL | Minimum output value
PMAX : REAL | Maximum output value

Outputs

OUT : REAL

Controller output


SAMA - Proportional

Multiply the input and the P gain.

Inputs

IN1 : REAL

Analog input

Parameters

P : REAL

Gain

Outputs

OUT : REAL

IN1 * P


SAMA - Pulse Duration

Pulse Timer. The timer starts on a rising pulse of IN input. It stops when the elapsed time is equal to the programmed time. A falling pulse of IN input resets the timer to 0, only if the programmed time is elapsed. All pulses of IN while the timer is running are ignored. The output signal is set to TRUE while the timer is running.

Inputs

IN : BOOL

Input trigger

Parameters

T : TIME | Duration
RST : BOOL | Reset command

Outputs

Q : BOOL

Output signal

Time diagram


SAMA - Qualified Logical OR (=n)

Returns TRUE if exactly N inputs are TRUE. The block accepts from 3 to 16 inputs. Resize the block vertically to get more or less inputs.

Inputs

IN1 .. IN16 : BOOL

Boolean inputs

Parameters

N : DINT

Expected number of inputs

Outputs

Q : BOOL

TRUE if at exactly N inputs are TRUE


SAMA - Qualified Logical OR (>n)

Returns TRUE if at least N+1 inputs are TRUE. The block accepts from 3 to 16 inputs. Resize the block vertically to get more or less inputs.

Inputs

IN1 .. IN16 : BOOL

Boolean inputs

Parameters

N : DINT

Expected number of inputs

Outputs

Q : BOOL

TRUE if at least N+1 inputs are TRUE


SAMA - Qualified Logical OR (<n)

Returns TRUE if at most N-1 inputs are TRUE. The block accepts from 3 to 16 inputs. Resize the block vertically to get more or less inputs.

Inputs

IN1 .. IN16 : BOOL

Boolean inputs

Parameters

N : DINT

Expected number of inputs

Outputs

Q : BOOL

TRUE if at most N-1 inputs are TRUE


SAMA - Reverse Proportional

Multiply the input and the opposite of the P gain.

Inputs

IN : REAL

Analog input

Parameters

P : REAL

Gain

Outputs

OUT : REAL

IN * ( - P )


SAMA - Root Extraction

Calculate the Nth root of of the input.

Inputs

IN : REAL

Analog input

Parameters

N : DINT

Exponent

Outputs

OUT : REAL

Nth root of IN


SAMA - Memory (R dominant)

Reset dominant bistable.

Inputs

S : BOOL | SET command
R : BOOL | RESET command (dominant)

Outputs

Q : BOOL | Memory state
QN : BOOL | equals to NOT Q

Truth table

S | R | Q | Q
0 | 0 | unchanged | unchanged
0 | 1 | 0 | 1
1 | 0 | 1 | 0
1 | 1 | 0 | 1


SAMA - Memory (S dominant)

Set dominant bistable.

Inputs

S : BOOL | SET command (dominant)
R : BOOL | RESET command

Outputs

Q : BOOL | Memory state
QN : BOOL | equals to NOT Q

Truth table

S | R | Q | Q
0 | 0 | unchanged | unchanged
0 | 1 | 0 | 1
1 | 0 | 1 | 0
1 | 1 | 1 | 0


SAMA - Summing

Calculate the sum of inputs. The block accepts from 2 to 16 inputs. Resize the block horizontally to get more or less inputs.

Inputs

IN1 .. IN16 : REAL

Analog inputs

Outputs

OUT : REAL

Sum of all inputs


SAMA - Transfer

Select one of two inputs. The change rate is limited by the "RATE" parameter.

Inputs

IN1 .. IN2 : REAL | Analog inputs
S : BOOL | Selection bit

Parameters

RATE : REAL

Maximum number of transitions per second

Outputs

OUT : REAL

IN1 if S is FALSE

IN2 if S is TRUE


SAMA - Three State Signal Monitor

Return TRUE if the input is in outisde the specified minimum and maximum values.

Inputs

IN : REAL

Analog input

Parameters

PMIN : REAL | Minimum value
PMAX : REAL | Maximum value

Outputs

OUT : BOOL

FALSE if PMIN < IN < PMAX

TRUE otherwise


SAMA - Two State Signal Monitor (upper limit)

Return TRUE if the input is less than the specified maximum value.

Inputs

IN : REAL

Analog input

Parameters

PMAX : REAL

Maximum value

Outputs

OUT : BOOL

FALSE if IN < PMAX

TRUE otherwise


SAMA - Variable Signal Generator

Generate an analog signal according to UP/DN commands. The output value is limited by specified minimum and maximum values. Its change rate is also limited.

Parameters

PMIN : REAL | Minimum value
PMAX : REAL | Maximum value
RATE : REAL | Maximum number of changes per second
UP : BOOL | Increasing command
DN : BOOL | Decreasing command

Outputs

OUT : REAL | IN1 if S is FALSE IN2 if S is TRUE
STATUS : UDINT | Bitfield (see notes below)

The following bits of STATUS are available on output:

Bit 0 (LSB) - Value is increasing

Bit 1 - Value is decreasing

Bit 2 - Value is over-ranging the PMIN / PMAX range


SAMA - Velocity Limiter

Limit the rate of changes for an analog input.

Inputs

IN : REAL

Analog input

Parameters

RATE : REAL

Maximum number of changes per second

Outputs

OUT : REAL

Follows IN with the specified rate for changes


SET_DAY_TIME

Function - Sets the system time of Windows operating systems.

 | Data type | Description
Inputs |  |
TM | STRING | Input string for date and time. Format: 'DD.MM.YYYY HH:MM:SS'
SEL | BOOL | Sends the value of TM to the operating system with rising edge of this input.
Outputs |  |
Q | BOOL | TRUE if successful

Remarks

Setting the system time with this function can influence the cycle time heavily.

Set back the SEL input variable to FALSE right after the function call in order to avoid problems with the operating system.

The time on Input TM must be GMT/UTC time. The target system will calculate the local time via its time zone settings.

ST Language

Q := SET_DAY_TIME (TM, SEL);

FBD Language

LD Language

The function is executed only if EN is TRUE.
The output rung is the result of the function.
The output rung is FALSE if the EN is FALSE.

IL Language

Op1: LD TM
SET_DAY_TIME SEL
ST Q


SHLb / SHL_SINT / SHL_USINT / SHL_BYTE

Fonction - Décalage à gauche d'un registre de 8 bits.

Entrées

IN : SINT Registre de 8 bits.
NBR : SINT Nombre de of décalages (chaque décalage est de 1 bit).

Sorties

Q : SINT Registre décalé.

Diagramme

Remarques

En LD, le flux d'entrée conditionne l'opération, et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Le second paramètre est l'argument de la fonction.

Langage ST

Q := SHLb (IN, NBS);

Langage FBD

Langage LD

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
SHLb NBS
ST Q

seealso See also

SHL SHR ROL ROR SHRb ROLb RORb SHLw SHRw ROLw RORw


SHLw / SHL_INT / SHL_UINT / SHL_WORD

Fonction - Décalage à gauche d'un registre de 16 bits.

Entrées

IN : INT Registre de 16 bits.
NBR : INT Nombre de of décalages (chaque décalage est de 1 bit).

Sorties

Q : INT Registre décalé.

Diagramme

Remarques

En LD, le flux d'entrée conditionne l'opération, et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Le second paramètre est l'argument de la fonction.

Langage ST

Q := SHLw (IN, NBS);

Langage FBD

Langage LD

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
SHLw NBS
ST Q

seealso See also

SHL SHR ROL ROR SHLb SHRb ROLb RORb SHRw ROLw RORw


SHRb / SHR_SINT / SHR_USINT / SHR_BYTE

Fonction - Décalage à droite d'un registre de 8 bits.

Entrées

IN : SINT Registre de 8 bits.
NBR : SINT Nombre de of décalages (chaque décalage est de 1 bit).

Sorties

Q : SINT Registre décalé.

Diagramme

Remarques

En LD, le flux d'entrée conditionne l'opération, et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Le second paramètre est l'argument de la fonction.

Langage ST

Q := SHRb (IN, NBS);

Langage FBD

Langage LD

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
SHRb NBS
ST Q

seealso See also

SHL SHR ROL ROR SHLb ROLb RORb SHLw SHRw ROLw RORw


SHRw / SHR_INT / SHR_UINT / SHR_WORD

Fonction - Décalage à droite d'un registre de 16 bits.

Entrées

IN : INT Registre de 16 bits.
NBR : INT Nombre de of décalages (chaque décalage est de 1 bit).

Sorties

Q : INT Registre décalé.

Diagramme

Remarques

En LD, le flux d'entrée conditionne l'opération, et le flux est inchangé en sortie. En IL, le premier paramètre doit être chargé dans le résultat courant avant l'appel de la fonction. Le second paramètre est l'argument de la fonction.

Langage ST

Q := SHRw (IN, NBS);

Langage FBD

Langage LD

L'opération est exécutée si EN = TRUE.
ENO est égal à EN.

Langage IL

Op1: LD IN
SHRw NBS
ST Q

seealso See also

SHL SHR ROL ROR SHLb SHRb ROLb RORb SHLw ROLw RORw


Stop

Function - Stops the Runtime

 | Data type | Description
Inputs |  |
I | BOOL | Input to stop the Runtime
Outputs |  |
Q | BOOL | TRUE if successful.

Remarks

This function causes a stop of the Runtime.

ST Language

Q := Stop(I);

FBD Language

This function is available in FBD language.

LD Language

This function is available in LD language.

IL Language

Op1: LD I
Stop
ST Q


Terminate

Function - Terminates the Runtime

 | Data type | Description
Inputs |  |
I | BOOL | Input to terminate (close) the Runtime
Outputs |  |
Q | BOOL | TRUE if successful.

Remarks

This function causes a termination of the Runtime.

ST Language

Q := Terminate(I);

FBD Language

This function is available in FBD language.

LD Language

This function is available in LD language.

IL Language

Op1: LD I
Terminate
ST Q