Description :
Dans la table de déclaration d'un bloc de données, vous configurez le nom des variables, leur type, un commentaire et une valeur initiale. Cette valeur initiale est un dimensionnement à la configuration qui est reprise en tant que valeur en cours à la création d'un bloc de données depuis un UDT (type de données utilisateur) ou lors d'une nouvelle déclaration de variable dans un bloc de données global. Les valeurs en cours sont visibles via le menu "Affichage > Vue des données".

La configuration des valeurs initiales n'est réalisée qu'une seule fois pour un bloc de données ou pour une nouvelle variable d'un bloc de données. Si la variable existe déjà, la modification de la valeur initiale n'a aucune incidence sur la valeur en cours. Pour la CPU, la valeur utile est celle qui se trouve dans la colonne "valeur en cours". Même si la valeur initiale est chargée dans la CPU et que l'on peut l'observer en mode en ligne, cette valeur n'est pas utilisée par la CPU.

Si votre CPU doit démarrer avec une nouvelle valeur, vous avez deux possibilités :

  1. Passer dans la vue des données et indiquez une nouvelle valeur dans la colonne "valeur en cours".
  2. Dans la vue des déclaration, donnez une nouvelle valeur dans la colonne "valeur initiale". Passez ensuite dans la vue des données. Via le menu "Editer > initialiser le bloc de données", toutes les valeurs de la colonne "valeur initiale" sont copiées dans la colonne "valeur en cours".

Chargez ensuite le bloc de données dans la CPU.

Les valeurs initiales n'étant plus utilisées par la CPU, la procédure inverse ou le chargement des valeurs depuis la colonne "valeur en cours" dans la colonne "valeur initiale" n'est pas nécessaire. Le STEP 7 ne propose pas la fonction. Le guide suivant sert aux quelques cas de configuration où les valeurs en cours doivent être sauvegardées sous forme de valeurs initiales. Vous pouvez l'utiliser soit directement à l'intérieur d'une source LIST soit en sauvegardant les valeurs avec Excel.

Enregistrement des valeurs en cours d'un bloc de données en tant que valeurs initiales directement dans une source LIST
Après la création de la source LIST, vous pouvez copier ligne par ligne les valeurs en cours dans les lignes de déclaration.
 

Procédure
1 Dans SIMATIC Manager, choisissez la vue en ligne via "Affichage > en ligne" et, dans cette vue, ouvrez le bloc de données. Enregistrez le bloc de données soit par l'icône avec la disquette ou via "Fichier > Enregistrer".
2 Générez une source pour le bloc de données via la fonction "Fichier > Générer source...".
3 Ouvrez la source générée dans le répertoire des sources du SIMATIC Manager.
4 Dans la source LIST, copiez les valeurs en cours ligne par ligne qui se trouvent entre "BEGIN" et "END_DATA_BLOCK" et collez-les dans les lignes de déclaration (valeurs initiales) correspondantes derrière les types de données correspondants.

Comme vous pouvez le voir sur la figure 01, vous devez copier chaque fois les valeurs en cours avec l'instruction ":=" dans la ligne de déclaration de la valeur initiale, pour que la ligne de déclaration ressemble à l'exemple suivant :

  • Daten_1 : BYTE := B#16#AA;
5 Enregistrez et compilez la source LIST via
  • Fichier > Enregistrer
  • Fichier > Compiler

Les valeurs en cours sont reprises alors en tant que valeurs initiales.

Enregistrer les valeurs en cours d'un bloc de données en tant que valeurs initiales avec Excel (méthode confortable)
Vous pouvez également enregistrer les valeurs en cours d'un bloc de données en tant que valeurs initiales avec Excel. Cette méthode est particulièrement conseillée dans le cas de grands blocs de données, car dans ce cas, les données sont copiées en bloc dans les lignes de déclaration et non pas ligne par ligne. Le tableau suivant explique la procédure que vous devez suivre pour importer et exporter une source LIST et lors de l'enregistrement dans Excel.
 

Procédure
1 Dans SIMATIC Manager, choisissez la vue en ligne via "Affichage > en ligne" et, dans cette vue, ouvrez le bloc de données. Enregistrez le bloc de données soit par l'icône avec la disquette ou via "Fichier > Enregistrer".
2 Générez une source pour le bloc de données via la fonction "Fichier > Générer source...".
3 Dans le répertoire des sources du SIMATIC Manager, sélectionnez la source générée et cliquez sur le bouton droit de la souris. Choisissez alors le menu "Exporter source...".
4 Dans la fenêtre "Exporter une source", choisissez le type de fichier "source LIST (*.awl)" et le répertoire dans lequel vous voulez exporter la source. L'extension de fichier ".AWL" doit être présente pour le nom du fichier, par exemple "source_DB2.AWL". Cliquez ensuite sur le bouton "enregistrer".

5 Démarrer Microsoft Excel et ouvrez la source LIST exportée via "Fichier > Ouvrir...". L'Assistant "Importation de texte" apparaît.

Note :
Pour que les sources LIST soient visibles dans la boîte de dialogue "Ouvrir", vous devez sélectionner comme type de fichiers "tous les fichiers (*.*)".

6 Dans la première étape de l'assistant importation de texte, activez l'option "Délimité".

Cliquez ensuite sur le bouton "suivant".

7 Dans l'étape suivante de l'assistant importation de texte, sélectionnez "Tabulation" et "Espace" comme séparateurs.

Cliquez ensuite sur le bouton "suivant".

8 Dans la troisième étape de l'assistant importation de texte, choisissez "Standard" pour le format des données en colonnes.

Cliquez ensuite sur le bouton "Terminer". La source LIST convertie est alors ouverte dans Excel.

9 Sélectionnez toutes les cellules appartenant à la source LIST et cliquez avec le bouton droit de la souris. Choisissez le menu "Format de cellule...".

10 Dans l'onglet "Alignement" de la boîte de dialogue "Format de cellule", choisissez un alignement horizontal "Droite" ou "Droite (retrait)" et validez avec OK.

11 Sélectionnez alors les valeurs en cours entre "BEGIN" et "END_DATA_BLOCK" y compris l'instruction ":=" et copiez les données comme illustré dans la figure 09 dans les lignes de déclaration entre "STRUCT" et "END_STRUCT" derrière les types de données correspondants.

12 Vérifiez, ensuite, si la syntaxe après la copie des valeurs en cours dans les lignes pour les valeurs initiales correspondent. Exemple :
STRUCT
  Daten_1 : BYTE := B#16#AA;
  ...
END_STRUCT;

13 Enregistrez le fichier dans Excel via "Fichier > Enregistrer sous..." et choisissez le type de fichier :
  • Texte formaté (séparateur : espace)(*.prn)

Note :
Si vous avez enregistré le fichier comme décrit ci-dessus, vous obtiendrez le fichier par exemple "Quelle_DB2.AWL". Si toutefois vous enregistrez le fichier sous un autre nom, par exemple "Quelle_DB20.AWL", alors il est possible que vous obteniez le fichier "Quelle_DB20.AWL.PRN". Il faut alors renommer ce fichier de "Quelle_DB20.AWL.PRN" en "Quelle_DB20.AWL" (effacez l'extension PRN). L'extension "PRN" est ajoutée par le système lorsque le nom du fichier à sauvegarder avec l'extension "AWL" est indiqué une fois de plus.

14 Dans SIMATIC Manager, importez la source LIST modifiée avec Excel via "Insertion > Source externe..." dans le répertoire des sources de votre projet STEP 7.
15 Dans le répertoire des sources, sélectionnez la source LIST importée et cliquez sur le bouton droit de la souris. Choisissez ensuite le menu "Compiler". Après la compilation, la valeurs en cours sont enregistrées en tant que valeurs initiales.

Note :
Si vous utilisez des UDT dans votre bloc de données, il existe une limitation. Vous ne pouvez pas associer les valeurs en cours aux valeurs initiales. Bien qu'il soit possible d'exporter, une modification des valeurs initiales de l'UDT se reporte sur tous les lieux d'utilisation de l'UDT. Il n'est pas possible de distinguer chacun de ces lieux d'utilisation.

Mots-clefs :
Aide à la programmation, initialisation, valeurs initiales, comportement du système

Comment peut-on installer une protection de bloc pour des blocs créés par les utilisateurs?au début
Afficher le numéro de commande

Instructions:
STEP 7 propose la fonction KNOW_HOW_PROTECT pour protéger les programmes. Si vous ouvrez un bloc protégé par cette fonction, vous ne pouvez que visualiser l'interface du bloc (paramètres IN-, OUT- et IN/OUT) et le commentaire du bloc. Le code du programme, les variables temporaires et statiques, les commentaires réseaux ne sont pas affichés. Il n'est pas possible de changer le bloc protégé.

Le tableau ci-dessous décrit la procédure à suivre pour implanter la fonction KNOW_HOW_PROTECT dans vos blocs (FBs, FCs et DBs):
 

No. Procédure
1 Ouvrez le bloc de fonction à éditer. Dans l'éditeur du bloc, vous générez le code source sous "Fichier>Générer le code source"
2 Dans la boite de dialogue qui s'ouvre, vous renseignez un nom de fichier exemple "Protect_FB".
3 La boite de dialogue "Générer code source <Nom>" s'ouvre. Ici, vous sélectionnez le bloc pour lequel le code source doit être généré. Vous utilisez le bouton "->" pour déplacer ce bloc dans la fenêtre de droite. Validez avec OK pour générer le code source et refermez l'éditeur de bloc.

4 Ouvrez la source dans le répertoire "Source" de votre programme S7.
5 Insérez une ligne avec la commande "KNOW_HOW_PROTECT" dans la section de déclaration du bloc source sous la ligne "TITRE".

6 Sauvegardez et compilez la source STL, sous "Fichier > Enregistrer" et "Fichier > Compiler". le bloc est maintenant protégé.

Remarque :
La protection de bloc ne peut être désactivée que via le code source LIST. Si les sources en LIST avec la fonction  "KNOW_HOW_PROTECT" ne figurent plus dans le programme ou dans le projet, la protection des blocs ne peut plus être désactivée.

Le tableau ci-dessous décrit la procédure pour désactiver la fonction KNOW_HOW_PROTECT de vos programmes (FBs, FCs et DBs) :
 

No. Procédure
1 Ouvrez vote code source.
2 Enlevez l'entrée "KNOW_HOW_PROTECT" ou placez la en commentaire avec deux slash.
3 Sauvegardez et compilez la source STL, sous "Fichier > Enregistrer" et "Fichier > Compiler".
4 La protection du bloc est maintenant désactivée.

Informations sur le sujet "Edition de sources"au début
Afficher le numéro de commande

Guide :
Vous trouverez des informations sur le sujet "Editer des sources" dans le manuel et chapitre suivant.