Instructions: Si vous devez utiliser fréquemment des blocs fonctionnels dans votre programmation structurée, vous avez besoin d'un bloc de données d'instance particulier pour chaque appel de FB. Avec de très petits FBs, les DBs d'instance se composent souvent de quelques mots. Par l'appel très fréquent de ces petits FBs et les blocs de données d'instance ainsi généré, il peut arriver que votre programme soit très confus ou que le nombre de DBs possible pour votre CPU soit atteint. Comme un DB d'instance peut être plus grand que ce qui est nécessaire pour un FB, il existe la possibilité de regrouper plusieurs DBs d'instance dans une multiinstance. Une condition est cependant, que tous les appels à regrouper dans un FB soient programmés dans un FB. En outre le FB, que vous utilisez possède la fonctionnalité multiinstance. Cette contribution contient les deux notices d'instructions suivantes: - Tableau 1: Programmation de multiinstances et actualisation de l'appel des instances modifiées
- Tableau 2: Déclaration ultérieure de la fonctionnalité de multiinstance ou de non multiinstance des FBs existants.
Dans le tableau 1 est décrit la procédure pour programmer une multiinstance et de pouvoir actualiser l'appel en cas de modification: | Nr. | Procédure: | | 1 | Générez dans SIMATIC Manager le FB, dans lequel vous voulez installer votre multiinstance et ouvrez le. Indiquez un nom pour votre instance dans la partie statique de l'interface, avec lequel vous appellerez ultérieurement l' instance dans le programme. Indiquez comme type de données le FB ou le SFB, que vous souhaitez appeler.   Image 01
L' image 01 montre un exemple pour la déclaration de l'instance dans l'interface du FB. | | 2 | Appelez l'instance dans votre programme. Vous pouvez choisir l'instance soit à partir du catalogue sous "multiinstances" et le copiez par Drag&Drop dans votre réseau programme ou appeler l'instance avec une instruction CALL.   Image 02
Note sur STEP 7 V5.4 SP2 : Si dans l'éditeur CONT/LOG, les multiinstances n'apparaissent pas dans le catalogue, nous vous recommandons d'insérer un bloc fonctionnel (en tant que provisoire) dans la partie déclarative des variables statiques puis de l'effacer. Les multiinstances pourront ensuite être sélectionnées.
| | 3 | Paramétrez maintenant les entrées et les sorties du bloc et enregistrez le FB. Maintenant vous pouvez appeler le FB avec sa multiinstance dans le programme (par ex. dans l'OB1). Un bloc de données d'instance sera créé que vous pouvez aussi visualiser. Note: Veuillez faire attention, lors de la création de la multiinstance, que le FB - qui est appelé en multiinstance- soit toujours créé en premier et alors appelé en multiinstance. Si cette procédure n'est pas respectée, alors il peut arriver une inconsistance dans le programme. Cette inconsistance apparaît aussi, lorsqu'une multiinstance est modifiée. | | 4 | Si vous avez réalisé des modifications dans une instance, alors ouvrez ensuite le bloc appelant. Pendant l'ouverture du bloc appelant vous obtiendrez les messages qui indiquent que l'interface d'un UDT ou qu'une déclaration de variables locales ont été modifiées et qu'un conflit d'horodatage existe pour au moins un bloc. Validez les messages avec OK. L'instance appelée qui a été modifiée est marquée en rouge dans l'éditeur CONT/LOG/LIST. Pour actualiser l'appel du bloc, cliquez avec un clic droit de souris sur le bloc et sélectionnez ensuite dans le menu contextuel qui s'est ouvert, la fonction "Actualiser l'appel...".   Image 03
| | 5 | Exécutez dans le dialogue suivant la comparaison d'interface, en validant par OK.   Image 04
Note pour STEP 7 V5.3: Lors de l'actualisation de l'appel d'un bloc avec la fonction "Fichier > Vérifier et actualiser les accès" STEP 7 V5.3 peut ne trouver aucune affectation univoque entre les variables et l'appel reste en rouge. Une correction par l'actualisation de l'appel par "Edition > Appel > Actualiser" n'est alors plus possible. L'unique possibilité de réactualiser l'appel consiste à effacer l'appel, d'actualiser l'interface dans la déclaration et d'appeler à nouveau le bloc en multiinstance. Dans le cas ou vous avez effacé des variables dans l'interface d'un FB, vous devez corriger tous les appels multiinstance par la fonction "Edition > Appel > Actualiser", sans appliquer avant la fonction "Vérifier et actualiser les accès". Après avoir actualisé cet appel multiinstance, vous pouvez utiliser comme d'habitude la fonction "Vérifier et actualiser les accès". | | 6 | Nous vous recommandons, après l'actualisation de l'appel d'exécuter le contrôle de la cohérence des blocs. Marquez dans SIMATIC Manager, le dossier des blocs dans le programme S7 et sélectionnez par un clic droit de souris la fonction "Vérifier la cohérence des blocs...". Il vous sera présenté maintenant la structure de votre programme S7. Compilez le programme par la fonction "Programme > Compiler tout" ou par le deuxième bouton dans la barre des taches. Après la compilation, votre programme STEP 7 est cohérent.   Image 05
|
Si vous générez à nouveau un bloc fonctionnel, la fonctionnalité multiinstance (Image 06) est réglée par défaut dans les propriétés du bloc, que vous pouvez aussi modifier.  Image 06
Après la génération du bloc, une modification ultérieure de la fonctionnalité multiinstance est seulement possible de façon détournée, car vous ne pouvez plus le faire dans les propriétés du bloc. Vous pouvez seulement voir ici si votre bloc est multiinstance ou non. Dans le tableau 2 est décrit la procédure pour pouvoir déclarer si les FBs existants ont la possibilité de multiinstance ou pas
| Nr. | Procédure: | | 1 | Pour déclarer ultérieurement un bloc fonctionnel en multiinstance ou non multiinstance, ouvrez le bloc correspondant dans l'éditeur CONT/LOG/LIST et générer une source pour le FB par la fonction "Fichier > Générer source...". Sélectionnez votre projet dans le dialogue suivant et enregistrez la source dans votre dossier Sources, qui se trouve dans votre programme S7. | | 2 | Dans le dialogue "Générer source " (Image 07), sélectionnez le bloc dans la liste de gauche, que vous voulez mettre en multiinstance ou en non multiinstance et insérez le avec la flèche dans la liste de droite. Fermez la fenêtre du dialogue avec "OK".   Image 07
| | 3 | Fermez l'éditeur CONT/LOG/LIST et ouvrez dans SIMATIC Manager à partir du dossier Source de votre projet, la source que vous avez précédemment créée. La fonctionnalité multiinstance est dépendante de l'entrée d'un attribut la ligne "Version : 0.1".   Image 08
- Lorsque vous voulez déclarer votre FB en multiinstance, effacer l'attribut "CODE_VERSION1"
- Lorsque vous voulez déclarer votre FB en non multiinstance, entrez comme dans l'image 08 l'attribut "CODE_VERSION1".
Enregistrez et compilez la source. Votre bloc est maintenant déclaré en multiinstance ou en non multiinstance. | | 4 | Vous devez maintenant compiler à nouveau tous les blocs modifiés, que vous appelez en multiinstance ou en non multiinstance. Nous vous recommandons ici d'exécuter la fonction "Vérifier la cohérence des blocs...". (décrite au tableau 1, nr. 6). |
Téléchargement: Le téléchargement joint contient les trois fonctions fonctionnels système SFB3 "TP",qui sont appelés en multiinstance dans le FB1. L'appel du FB1 avec son DB multiinstance est fait dans l'OB1. Copiez le fichier "Multiins.exe" dans un répertoire séparé sur votre disque dur et démarrez le fichier par un double clic. Le projet STEP 7 V5.4 sera automatiquement décompacté avec tous ses sous-répertoires. Ensuite vous pouvez ouvrir et traiter le projet décompacté avec SIMATIC Manager. Multiins.exe ( 96 KB )
Exécutabilité et environnement de test: L'exemple est utilisable sur toutes les variantes de CPU SIMATIC S7-300, S7-400, C7 et WinAC. Vous trouverez dans le tableau suivant les composants qui ont servis pour la création et la vérification du fonctionnement de cette contribution :
| Environnement de test: | Versions | | Platte-forme PC | Intel(R) Pentium(R) M processor 1,73GHz | | Système d'exploitation du PC | Windows XP | | STEP 7 | V5.4 | | Paquets optionnels S7-PLCSIM | V5.3 |
|
Commentaires
Enregistrer un commentaire