|
Description Cet article décrit comment écrire ou lire des données dans un fichier sur un Comfort Panel avec SIMATIC WinCC Runtine (TIA Portal). VBScript (Visual Basic Scripting) est utilisé pour implémenter ces fonctions. Afin d'enregistrer ou de lire des informations dans un fichier texte, il doit être possible d'accéder au système de fichiers de Microsoft Windows CE. Cet accès est réalisé au moyen de "FileSystemObject".
Documentation sur les commandes VBScript Des informations concernant les commandes de VBScript sont disponibles dans le système d'aide de WinCC (TIA Portal) dans l'onglet "Contenu" sous " Visualisation de procédés > Travailler avec les fonctions système et les scripts Runtime". ("Content" sous " Visualizing processes > Working with system functions and Runtime scripting")
  Figure 01
Contenu de cet article
Instructions
Le tableau ci-dessous décrit la configuration de l'enregistrement dans un fichier ainsi que de la lecture dans un fichier dans WinCC (TIA Portal).
Les formats de fichier ci-dessous sont utilisés :
Note
Seules les variables internes sont utilisées dans cet exemple. Il est également possible d'utiliser les variables en liaison avec un contrôleur.
Dans cet exemple nous démontrons l'écriture et la lecture dans des fichiers sur une carte mémoire. En cas d'utilisation d'un média de stockage différent, une modification doit être réalisée en conséquence dans le script.
| No. |
Procédure |
| 1 |
Création de variables
- Ouvrir l'éditeur de variables au moyen de "Navigation de projet > HMI_1 > variables HMI > Montrer toutes les variables".
- Ajouter les quatre variables internes avec les désignations suivantes :
| Variable |
Type de données |
| bExtension |
Bool |
| szMaterial |
WString |
| nPressure |
Int |
| nTemperature |
Int |
  Figure 02 |
| 2 |
Ajout d'objets
- Ajouter une nouvelle vue nommée "ImportExportData" sous "Navigation de projet > Vues".
- Insérer deux rectangles dans la vue.
- Ajouter un champ d'E/S symbolique et trois champs d'E/S conventionnels.
- Ajouter un bouton et neuf champs texte.
- Positionner tous les objets et saisir les textes ci-dessous (voir Fig. 04).
- "Process values"
- "Pressure"
- "Temperature"
- "Material"
- "Text file"
- "mbar"
- "°C"
- "Settings"
- "Extension"
- Créer une liste de textes nommée "Extension" et de type "Value/Range".
- Ajouter les entrées suivantes:
  Figure 03 |
| 3 |
Insertion de script, de liste de textes et de variables
- Créer un script avec la désignation "Write_data". Pour cela, aller dans navigation de projet et cliquer sur "Scripts > VBScripts > Ajouter nouvelles fonctions VB".
- Lier le script "Write_data" au bouton "Save file" sous "Propriétés > Evènement > Clic".
- Lier la liste de textes "Extension" au Champ d'E/S symbolique "Extension".
- Lier les variables ci-dessous aux objets correspondants.
| Variable/Script |
Type d'objet |
Objet pour ... |
| iPressure |
Champ d'E/S |
Pressure |
| iTemperature |
Champ d'E/S |
Temperature |
| szMaterial |
Champ d'E/S |
Material |
| bExtension |
Champ d'E/S symbolique |
Extension |
  Figure 04
|
| 4 |
Créer script - Partie 1
- Ajouter le code exemple au script "Write_data" (voir Fig. 05).
Note
Davantage d'informations sur les commandes VBScript sont disponibles dans le système Help de WinCC (TIA Portal).
Description du code source
- <Lignes 10 - 15> Déclaration variables locales (uniquement valide dans le script).
- <Ligne 18> La variable "mode" est initialisée pour ouverture du fichier (8 = Ajouter).
- <Lignes 21-29> La variable "bExtension" est une variable globale qui peut être utilisée dans le projet WinCC (TIA Portal) entier. Cette variable est utilisée pour choisir l'extension de fichier au moyen du Champ d'E/S symbolique.
Note La variable "delimiter" sert de séparateur et doit être modifiée en fonction du pays où il s'applique !
- <Ligne 32> L'instruction "On Error Resume Next" est nécessaire dans le cas où des erreurs Runtime apparaissent dans le script. Dès qu'un telle erreur apparait la ligne suivante contenant la routine d'erreur est exécutée automatiquement.
Note Si cette instruction manque et qu'une erreur apparait, le script se termine.
- <Ligne 35> La fonction "CreateObject("FileCtl.File")" crée un objet qui accède au système de fichiers de Windows CE.
- <Lignes 38-42> Le code source contient la routine d'erreur pour une erreur Runtime. Si une erreur Runtime apparait, un message d'erreur est généré dans la fenêtre de messages et le script se termine alors.
Note Si "FileCtl.File" est utilisé, il n'est possible d'accéder qu'au système de fichiers de Windows CE. Si ce script est lancé sur un PC avec un système d'exploitation différent, une erreur Runtime apparait dans le script qui est abandonné.
  Figure 05
|
| 5 |
Créer script - Partie 2
- <Ligne 45> En utilisant la méthode "Open" de l'objet "fo" créé, le fichier spécifié est ouvert au moyen du nom de chemin "path" et des paramètres "mode".
file.Open Path name, Mode, [access], [lock], [reclength]
- <Lignes 48-52> La routine d'erreur est lancée si le fichier ou le nom de chemin correspondant n'existe pas.
- <Lignes 55-57> Dans cette section, il est vérifié si le fichier est nouveau ou déjà existant. Si le fichier est nouveau, une en-tête est ajoutée.
- <Ligne 60> La méthode "LignePrint" de l'objet "fo" écrit le texte spécifié dans le fichier ouvert. Des valeurs de variable values ou de valeurs de retour peuvent aussi être écrites dans le fichier.
La fonction "Now" écrit l'horodatage dans le fichier.
- <Ligne 63> La méthode "Close" ferme le fichier.
- <Ligne 66> La chaine de caractères "Nothing" est nécessaire pour séparer les variables d'objet qui sont assignées aux objets avec la commande "Set".
- <Ligne 68> Transfert d'un message système, défini par l'utilisateur, au système de messages de l'IHM.
  Figure 06
|
| 6 |
Lancement du Runtime
- Transférer du projet WinCC (TIA Portal) au pupitre opérateur et lancer le Runtime.
Note Le script ne peut pas être "débuggé" entre l'ordinateur de configuration et le pupitre en raison des systèmes de fichiers différents.
- Saisir une pression, température et Matière.
- Confirmer avec le bouton "Save data".
- Dans le Champ d'E/S symbolique, sélectionner ".csv" et cliquer sur le bouton à nouveau.
- Fermer le Runtime du pupitre opérateur.
  Figure 07
|
| 7 |
Ouverture du fichier texte
Si les deux fichiers ont été enregistrés sur la carte mémoire, ils sont alors visualisables sur le PC au moyen d'un lecteur de carte et ouvrables avec un programme approprié.
- Ouvrir le fichier avec l'extension ".txt".
- Fermer ensuite le fichier.
  Figure 08
- Ouvrir le fichier avec l'extension ".csv" avec Excel, par exemple.
- Fermer ensuite l'application Excel .
  Figure 09
|
Tableau 01
Exemple de lecture d'informations d'un fichier .txt ou .csv Le tableau ci-dessous explique comment lire des informations depuis un fichier .txt ou .csv et comment les afficher dans WinCC (TIA Portal). Des champs d'E/S sont utilisés pour l'affichage. Pour cette raison, seule la dernière saisie est émise.
Note Etant donné que seule la dernière saisie est vue dans cet exemple, le script runtime augmente avec la taille du fichier. Généralement la configuration de dépend pas de l'exemple décrit précédemment. Toutefois, ses composants sont utilisés.
| No. |
Procédure |
| 1 |
Création de variables
- Ouvrir l'éditeur de variables au moyen de "Navigation de projet > HMI_1 > variables HMI > Montrer toutes les variables".
- Ajouter les trois variables internes avec les désignations suivantes :
| Variable |
Type de donnée |
| szdate |
WString |
| szString_1 |
WString |
| iValue_1 |
Int |
| iValue_2 |
Int |
Note
If le projet précédant ne peut être utilisé, ajouter alors la variable "bExtension" de type "Bool".
  Figure 10
|
| 2 |
Ajouter d'objets
- Aller sur la vue "ImportExportData".
- Insérer un rectangle dans la vue.
- S'ils ne sont pas déjà présents, ajouter un champ d'E/S symbolique et quatre champs d'E/S conventionnels.
- Ajouter un bouton et cinq champs texte.
- Positionner tous les objets tels que montrés dans la Fig. 11 et et saisir les textes ci-dessous:
- "Date"
- "Value_1"
- "Value_2"
- "String_1"
- "Text file"
- "Settings" (si n'existe pas déjà)
- "Extension" (si n'existe pas déjà)
- S'ils ne sont pas déjà présents, créer une liste de textes nommée "Extension" avec les saisies ci-dessous:
  Figure 11
|
| 3 |
Insertion de script, de liste de textes et de variables
- Copier le script "Write_data" et modifier le nom en "Read_data" (les modifications dans le script sont gérées avec le point 5).
- Lier le script "Read_data" au bouton "Read file" sous "Propriétés > Evènement > Clic".
- Si cela n'a pas déjà été fait, lier la liste de textes "Extension" au Champ d'E/S symbolique "Extension".
- Lier les variables ci-dessous aux objets correspondants.
| Variable/Script |
Objet |
Objet pour... |
| szDate |
Champ d'E/S |
Date |
| iValue_1 |
Champ d'E/S |
Value_1 |
| iValue_2 |
Champ d'E/S |
Value_2 |
| szString_1 |
Champ d'E/S |
String_1 |
  Figure 12
|
| 4 |
Modification du script
- Modifier le script "Read_data" comme décrit ci-dessous.
Description du code source
- <Lignes 10-15> Modification des noms des variables (voir Fig. 13).
- <Ligne 18> Modification de l'initialisation de la variable "mode" de 8 (Ajouter) à 1 (Entrée).
- <Lignes 21-29> Suppression de la variable "gap" qui n'est plus nécessaire.
  Figure 13
|
| 5 |
Modification du script
- <Lignes 54-60> Suppression de la section dans laquelle se tenait l'écriture dans le fichier.
- <Lignes 54-60> Ajout de lecture depuis le fichier (voir Fig. 14).
  Figure 14
|
| 6 |
Lancement du Runtime
- Transférer du projet WinCC (TIA Portal) au pupitre opérateur et lancer le Runtime.
Note
Lancer la simulation avec Script Debugger pour "débugger" le script.
- Cliquer sur le bouton "Read data".
- Dans le Champ d'E/S symbolique, sélectionner ".csv" et cliquer sur le bouton à nouveau.
- Fermer le Runtime du pupitre opérateur.
  Figure 15
|
Tableau 02
Téléchargement Le fichier téléchargeable fourni en annexe contient le projet exemple décrit.
Annexe : Example_Projet.zip ( 1183 KB )
Note
Le code source utilisé dans le script ne peut être utilisé que sur des pupitres opérateur avec Microsoft Windows CE, parce qu'il n'est pas possible d'accéder au système de fichiers d'autres systèmes d'exploitation avec ce code source.
|