×
Siemens Industry Online Support
Siemens AG
Type de contribution : FAQ ID de la contribution : 59604194, Date de la contribution : 02/09/2015
(17)
Évaluer

Comment écrire ou lire des données dans un fichier au moyen d'un script sur un Comfort Panel avec SIMATIC WinCC (TIA Portal) ?

  • Contribution
  • Concerne le/les produits(s)
Les scripts VB permettent d'enregistrer sur un support USB n'importe quelles données disponibles sur le pupitre opérateur. Ce FAQ explique la programmation de ce genre de scripts.

Description
Cet article décrit comment écrire ou lire des données dans un fichier au moyen d'un script sur un Comfort Panel avec SIMATIC WinCC (TIA Portal). VBScript (Visual Basic Scripting) est utilisé pour implémenter ces fonctions. Pour enregistrer ou lire des informations dans fichier texte, il doit être possible d'accéder au système de fichiers de Windows CE. Cet accès est réalisé au moyen de "FileSystemObject".
Ce FAQ est valable pour SIMATIC WinCC (TIA Portal) dans les éditions Comfort, Advanced et Professional pour les pupitres suivants : Comfort Panels et pupitres des séries 277 et plus.

Notes

  • N'utilisez des scripts pour l'enregistrement de données que si les mécanismes standard de WinCC (enregistrement d'archives de données, etc.) ne sont pas suffisants pour votre application !
  • Le mécanisme présenté dépend du système d'exploitation de votre pupitre et du logiciel de configuration utilisé. Veuillez consulter les notes complémentaires à la fin de cet article pour la gestion d'autres configurations.

Documentation sur les commandes VBScript dans WinCC (TIA Portal)
Des informations concernant les commandes de VBScript sont disponibles dans le système d'aide de WinCC (TIA Portal) dans l'onglet "Contenu" ainsi que dans le manuel WinCC Advanced (article ID : 109091876), sous "Visualisation de processus > Travailler avec des fonctions système et Script Runtime".


Figure 01

Contenu de l'article

  • Exemple pour enregistrer des informations dans un fichier texte ou dans un fichier csv
  • Exemple pour lire des informations depuis un fichier texte ou depuis un fichier csv
  • Projet-exemple

Guide
Le tableau ci-dessous décrit la configuration de l'enregistrement dans un fichier et de la lecture depuis un fichier, dans WinCC (TIA Portal).
Les formats de fichier ci-dessous sont utilisés :

  • csv
  • txt

Note
Seules des variables internes sont utilisées dans cet exemple. Vous pouvez, bien sûr, utiliser des variables en liaison avec un automate.
Dans cet exemple, nous 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.

Procédure
1 Créer des variables
  • Ouvrez l'éditeur de variables via "Navigateur du projet > HMI_1 > Variables IHM > Afficher toutes les variables".
  • Ajoutez quatre variables internes avec les désignations suivantes :
Variable

Type de données

bExtension Bool
szMaterial WString
nPressure Int
nTemperature Int


Figure 02
2 Insérer les objets
  • Insérez une nouvelle vue avec le nom "ImportExportData" sous "Navigateur du projet > Vues".
  • Insérez deux rectangles dans la vue.
  • Insérez un champ E/S symbolique et trois champs d'E/S conventionnels.
  • Insérez un bouton et neuf champs de texte.
  • Positionnez tous les objets et entrez les textes suivants :
    • "Valeur de proces"
    • "Pression"
    • "Température"
    • "Matériau"
    • "Fichier texte"
    • "mbar"
    • "°C"
    • "Paramètres"
    • "Extension"
  • Créez une liste de texte avec le nom "Extension" de type "Valeur/plage"
  • Insérez les entrées suivantes :
    • 0 => ".txt"
    • 1 => ".csv"

Figure 03
3 Relier les scripts, liste de textes et variables
  • Créez un script intitulé "Write_data". Pour cela, dans le navigateur du projet, cliquez "Scripts > Scripts VB > Ajouter une nouvelle fonction VB".
  • Reliez le script "Write_Data" avec le bouton "Save data" sous "Propriétés > Evénements > Clic".
  • Reliez la liste de textes "Extension" avec le champ d'E/S symbolique "Extension".
  • Reliez les variables suivantes aux objets correspondants :
    Variable/Script Type d'objet Objet pour...
    iPressure Champ d'E/S Pression
    iTemperature Champ d'E/S Température
    szMaterial Champ d'E/S Matériau
    bExtension Champ d'E/S symbolique Extension


Figure 04
4 Créer le script - Partie 1
  • Modifiez le script "Write_data" avec l'exemple de code (cf. figure 05).

    Note
    Des informations complémentaires sur les instructions VB Script sont disponibles dans le manuel de WinCC (TIA Portal) et à la fin de cet article sous "Informations complémentaires".

Description du code source

  • <lignes 10 - 15> Déclaration des variables locales (ne sont valables qu'à l'intérieur du script).
  • <ligne 18> La variable "mode" est initialisée pour l'ouverture du fichier (8 = Append).
  • <ligne 21-29> La variable "bExtension" est une variable globale qui peut être utilisée dans tous le projet WinCC (TIA Portal). Avec cette variable, l'extension du fichier peut être sélectionnée via le champ d'E/S symbolique.
    Note
    La variable "delimiter" sert de séparateur et doit être adaptée selon les pays !
  • <ligne 32> L'instruction "On Error Resume Next" est nécessaire en cas d'erreur d'exécution du script. Dès qu'une erreur survient, la ligne qui suit dans la routine d'erreur est exécutée.
    Note
    Si cette instruction est absente et qu'une erreur survient, le script est terminé.
  • <ligne 35> La fonction "CreateObject("FileCtl.File")" crée un objet qui accède au système de fichier de Windows CE.
  • <ligne 38-42> Le code source suivant contient la routine d'erreur en cas d'erreur d'exécution. Lorsqu'une erreur d'exécution survient, un message d'erreur est affiché dans une fenêtre de messages et le script est ensuite terminé.
    Note
    L'utilisation de "FileCtl.File" ne permet d'accéder qu'au système de fichiers de Windows CE. Si ce script est démarré sur un PC avec un autre système d'exploitation, cela provoque une erreur d'exécution du script et le script est interrompu.


Figure 05
5 Créer le script - Partie 2
  • <ligne 45> L'utilisation de la méthode "Open" de l'objet "fo" ouvre le fichier spécifié via le paramètre "path" (Nom du chemin) et "mode".

file.Open Path name, Mode, [access], [lock], [reclength]

  • <ligne 48-52> Routine d'erreur qui est exécutée si le fichier correspondant, ou le nom du chemin, n'existe pas.
  • <ligne 55-57> Dans cette section, le script vérifie s'il s'agit d'un nouveau fichier ou d'un fichier déjà existant. Si c'est un nouveau fichier, un entête est inséré.
  • <ligne 60> La méthode "LinePrint" de l'objet "fo" permet d'écrire la chaîne de caractères indiquée dans le fichier ouvert. Il est également possible d'écrire des valeurs de variables ou des valeurs de retour de méthode dans le fichier.
    Avec la fonction "Now", un horodatage est inscrit dans le fichier.
  • <ligne 63> Le fichier est fermé avec la méthode "Close".
  • <ligne 66> L'instruction "Nothing" est nécessaire pour séparer les variables qui ont été affectées aux objets avec l'instruction "Set".
  • <ligne 68> Transfère un message système utilisateur au système de messagerie IHM.


Figure 06
6 Démarrer le Runtime"
  • Chargez le projet WinCC (TIA Portal) dans le pupitre et démarrez le Runtime.
    Note
    En raison des systèmes de fichiers différents entre l'ordinateur de développement et le pupitre, le script ne peut pas être testé (déboggué).
  • Saisissez une pression, une température et un matériau.
  • Validez ensuite avec le bouton "Save data".
  • Dans le champ d'E/S symbolique, sélectionnez ".csv" et cliquez de nouveau sur le bouton.
  • Terminez le Runtime du pupitre.


Figure 07
7 Ouvrir le fichier texte
Si vous enregistrez les deux fichiers texte sur une carte mémoire, vous pouvez les voir sur un PC via un lecteur de cartes et les ouvrir avec le programme correspondant.
  • Ouvrez le fichier texte avec l'extension ".txt".
  • Vous pouvez ensuite fermer le fichier.


Figure 08
  • Ouvrez le fichier avec l'extension ".csv" avec Excel par exemple.
  • Fermez l'application Excel.


Figure 09
Tableau 01

Exemple pour lire des informations depuis un fichier texte ou un fichier csv
Le tableau suivant décrit comment vous pouvez lire des informations depuis un fichier texte ou csv pour les représenter dans WinCC (TIA Portal). Des champs d'E/S sont utilisés pour l'affichage. Pour cette raison, seule la dernière entrée est retournée.

Note
Comme cet exemple recherche la dernière entrée, le temps d'exécution du script augmente avec la taille du fichier. En général, la configuration ne dépend pas de l'exemple décrit auparavant. Néanmoins, des composants de celui-ci sont utilisés.

Procédure
1 Relier des variables
  • Ouvrez l'éditeur de variables via "Navigateur du projet > HMI_1 > Variables IHM > Afficher toutes les variables".
  • Ajoutez trois variables internes avec les désignations suivantes :
    Variable

    Type de données

    szdate WString
    szString_1 WString
    iValue_1 Int
    iValue_2 Int


Note

Si vous ne pouvez pas utiliser l'exemple précédent, ajoutez aussi la variable "bExtension" du type Bool.


Figure 10
2 Insérer les objets
  • Passez dans la vue "ImportExportData".
  • Insérez un rectangle dans la vue.
  • Reliez - si ce n'est pas déjà fait - un champ d'E/S symbolique et trois champs d'E/S conventionnels.
  • Insérez un bouton et cinq champs de texte.
  • Positionnez tous les objets comme le montre la figure 11 et entrez les textes suivants :
    • "Date"
    • "Valeur_1"
    • "Valeur_2"
    • "Chaîne_1"
    • "Fichier texte"
    • "Paramètres" (si ce n'est pas déjà fait)
    • "Extension" (si ce n'est pas déjà fait)
  • Si ce n'est pas déjà fait, créez une liste de textes intitulée "Extension" avec les entrées suivantes :
    • 0 => ".txt"
    • 1 => ".csv"


Figure 11
3 Relier les scripts, liste de textes et variables
  • Copiez le script "Write_data" et modifiez le nom en "Read_data" (les modifications dans le script sont réalisées à l'étape 5)
  • Reliez le script "Read_Data" avec le bouton "Read data" sous "Propriétés > Evénements > Clic".
  • Si ce n'est pas déjà fait, reliez la liste de textes "Extension" avec le champ d'E/S symbolique "Extension".
  • Reliez les variables suivantes 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 Adapter le script
  • Modifiez le script "Read_data" comme ci-dessous.

Description du code source

  • <ligne 10-15> Modifiez le nom des variables locales (cf. figure 13).
  • <ligne 18> Modifiez l'initialisation de la variable "mode" de 8 (Append) en 1 (Input).
  • <ligne 21-29> Supprimez la variable "gap" inutile.


Figure 13
5 Adapter le script
  • <ligne 54-60> Supprimez la section dans laquelle se tenait l'écriture dans le fichier.
  • <ligne 54-60> Insérez la lecture depuis un fichier (cf. figure 14)


Figure 14
6 Démarrer le Runtime"
  • Chargez le projet WinCC (TIA Portal) dans le pupitre et démarrez le Runtime.

    Note
    En raison des systèmes de fichiers différents entre l'ordinateur de développement et le pupitre, le script ne peut pas être testé (déboggué).
  • Validez ensuite avec le bouton "Read data".
  • Dans le champ d'E/S symbolique, sélectionnez ".csv". Validez à nouveau ensuite avec le bouton.
  • Terminez le Runtime du pupitre.


Figure 15
Tableau 02

Téléchargement
Le fichier téléchargeable en annexe contient l'exemple de projet décrit.

Annexe Example_Project.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.

Informations complémentaires
Vous trouverez des informations complémentaires sur l'enregistrement de fichiers texte avec des scripts dans les articles suivants :

  • Avec WinCC flexible et des pupitres sur base Windows: Article ID 26107211 ("Comment, sur un pupitre sur base Windows avec WinCC flexible, utiliser un script pour sauvegarder et lire des informations dans un fichier texte ?")
  • Avec WinCC flexible et PC: Beitrags-ID 26106418("Comment, sur un PC avec WinCC flexible, utiliser un script pour sauvegarder et lire des informations dans un fichier texte ?")
  • Avec WinCC (TIA Portal) et PC : article ID 106501825("Comment, avec WinCC (TIA Portal), utiliser un script pour enregistrer des informations dans un fichier ?")
  • Quelles sont les informations VBS et les aides de programmation VBS qui sont disponibles dans WinCC (TIA Portal) ?
    Article ID: 59885894
  • Comment ouvrir un document Word, Excel ou PDF avec un pupitre Comfort ?
    Article ID: 51723931
  • Comment exporter et réimporter des données Runtime de WinCC ?
    Article ID: 850338
  • Comment utiliser un script pour déterminer si un support de stockage amovible (clé USB, carte SD/MMC) est disponible en écriture sur un équipement IHM ?
    Article ID: 89855157

 

Notes relatives à la sécurité
La protection des installations, systèmes, machines et réseaux contre les cyber-menaces nécessite la réalisation (et le maintien continu) d'un concept global de sécurité IT à la pointe de la technique. Les produits et solutions Siemens ne constituent qu'un élément d'un tel concept. Pour plus d’informations sur la cyber-sécurité, rendez-vous sur
https://www.siemens.com/cybersecurity#Ouraspiration.
Aide pour la statistique
Cette fonction permet de délivrer les identifiants des résultats de la recherche selon la quantité souhaitée (format .txt).

Générer une liste
Copier l'URL
Afficher cette page dans le nouveau design
Poste de commande mySupport