afficher la liste des articles
WinCC flexible ES -- Création d'un projet HMI -- Création de scripts
Avec un Runtime-PC WinCC flexible, comment peut-on rediriger les impressions sur des imprimantes différentes ?
Comment peut-on archiver des variables STRING avec WinCC flexible?
Comment accéder à une base de données SQL via un script dans WinCC flexible ?
Trucs et astuces pour la création de scripts
Comment réaliser une fonction d'attente (temporisation) dans un script ?
Comment sur un PC avec WinCC flexible utiliser un script pour sauver et lire des informations dans un fichier texte de sortie ?
Comment sur un pupitre avec Windows CE peut utiliser un script pour sauver et lire des informations dans un fichier texte ?
Comment démarrer un fichier son par un script dans un PC WinCC flexible Runtime ?
Comment faire pour dynamiser des objets avec des scripts dans WinCC flexible ?
Quelles sont les Informations VBS et d'aide de programmation présente dans WinCC flexible?
Comment sur un PC avec WinCC flexible utiliser un script pour sauver et lire des informations dans un fichier texte de sortie ?
Nº de référence:

Instructions:
Tout d'abord, pour sauver ou lire des informations dans fichier texte, il doit être possible d'accéder au fichier système de Windows. L'accès s'effectue via un objet assigné à une variable.

Note:
Le code source utilisé dans le script ne peut pas être utilisé sur un pupitre opérateur sousWindows CE car il n'est pas possible d'accéder au fichier système de Windows CE avec ce code source.

Des renseignements sur l'accès au fichier sur un pupitre opérateur utilisant Windows est disponible à l'entrée ID: 26107211.

Contenu de la description :

Documentation des commandes VBScript dans WinCC flexible
Des renseignements sur les commandes VBScript sont disponibles dans le système d'aide de WinCC flexible dans l'onglet "Sommaire" sous "... > Travailler avec WinCC flexible > Référence".

 
Fig. 01

Exemple de sauvegarde d'informations dans un fichier texte ou dans un fichier csv
Le tableau suivant explique comment sauver des informations depuis WinCC flexible dans un fichier texte ou un fichier csv.
 
No. Procédure
1

Créez un nouveau projet

  • Créez un nouveau projet en cliquant sur "Projet > Nouveau..." et sélectionnez "PC > WinCC flexible Runtime" comme type de pupitre.


Fig. 02

2

Créez des variables

  • Ouvrez l'Editeur de variables via "Project > Pupitre_opérateur_1 > Communication > Variables".
  • Ajoutez quatre variables interne avec les désignations suivantes :
     

    No.

    Variable

    Type de donnée

    1 bExtension Boolean
    2 szMaterial String
    3 nPressure Int
    4 nTemperature Int
    Tableau 01 - Variables


Fig. 03

Note:
Seules des variables internes sont utilisées dans cet exemple. Vous pouvez bien sur utiliser des variables en liaison avec un automate.

3 Ajouter des objets
  • Ajoutez deux rectangles - voir Fig. 04.
  • Insérez un champs E/S symbolique et trois champs d'E/S conventionnels.
  • Enrichissez la vue WinCC Flexible en ajoutant un bouton et neuf Champs de texte.
  • Positionnez tous les objets comme le montre Fig. 04 et entrez les textes suivants :
    "Valeurs process"
    "Pression:"
    "Température:"
    "Matériel:"
    "Fichier texte:"
    "mbar"
    "°C"
    "Propriétés"
    "Extension:"
  • Créez une liste de texte nommée "Extension" avec les entrées suivantes:
    0 =>  ".txt"
    1 =>  ".csv"


Fig. 04

4 Incorporer un script, une liste de texte
  • Créez un script avec comme désignation "Write_data". Pour cela cliquez sur "Scripts > Ajouter script" dans l'arborescence du projet. 
  • Liez les variables suivantes les nouveaux scripts crées aux objets appropriés.
     
    Variable/Script Objet Objet pour...
    nPressure Champs E/S Pressure
    nTemperature Champs E/S Temperature
    szString_1 Champs E/S Material
    bExtension Champs E/S symbolique Extension
    Write_data Bouton Save file
    Tableau 02 - Liens aux divers objets
     
  • Connectez la liste de texte "Extension" avec le champs E/S symbolique


Fig. 05

5 Créez le script - Part 1
  • Ajoutez le code exemple décrit le script "Write_data".

    Note:
    Pour plus d'information sur les différents commandes VBScript se reporter à l'Aide de WinCC Flexible.

Description du code source:
Les variables qui sont déclarées en <Line 10> sont uniquement valables à l'intérieur du script. La variable "bExtension" en <Line 13> est une variable globale qui peut être utilisée dans tous le projet WinCC flexible. Avec cette variable, le chemin incluant le nom de fichier et l'extension peuvent être sélectionnés via le champs E/S symbolique.

 La commande "On Error Resume next" est requis en cas d'erreur de runtime dans le script. Dès qu'une erreur survient la ligne suivante contenant l'erreur est exécutée

La commande de <Line 23> crée l'objet qui accède au système de fichiers de Windows à transférer à la variable "fso". Le code source suivant inclus la routine d'erreur en cas d'erreur runtime. Si une erreur runtime survient, un message d'erreur apparaît dans le fenêtre d'erreur et le script est ensuite interrompu. 

Note:
Si vous utilisez "Scripting.FileSystemObject", vous ne pouvez pas accéder au fichier système de Windows CE. Si ce script est démarré sur un pupitre opérateur avec Windows CE, une erreur de runtime surviendra dans le script.

S'il n'existe pas déjà , un fichier texte sera crée en <Line 32>.


Fig. 06

6 Créer le script - Part 2
L'utilisation de la méthode "GetFile" avec l'objet "fso" crée le fichier spécifié qui est retourné via le paramètre "path" (filespec). Ensuite la routine d'erreur déjà mentionnée est exécutée si le fichier associé n'existe pas.
  • GetFile(filespec)

En <Line 44> la méthode "OpenAsTextStream" est utilisée pour ouvrir le fichier en lecture ou en écriture. Les 2 paramètres de cette méthode sont optionnels, le premier paramètre spécifie le mode entrée/sortie et le second le format dans lequel le fichie est ouvert.

  • OpenAsTextStream([IO Mode[,Format]])

Si le fichier ne peut être ouvert, la routine d'erreur déjà décrite est exécutée pour terminer correctement le script.

La commande "WriteLine" effectue l'écriture du texte et des valeurs depuis la variable dans le fichier associé. Ensuite le fichier est clos par la méthode "Close".

  • WriteLine([Line sequence])

La clé de commande "Nothing" est requise pour séparer les variables objets qui sont assignées aux objets avec la commande "Set".

La dernière commande transfère un message système utilisateur défini au système de messagerie HMI.


Fig. 07

7 Démarrez le runtime
  • Démarrez le runtime PC de WinCC Flexible

    Note:
    Démarrez le runtime WinCC flexible avec le Script Debugger pour déboguer le script.
     
  • Renseignez les différents variables et entrez une désignation matérielle de son choix.
  • Ensuite cliquez sur le bouton "Sauver".
  • Dans le champs E/S symbolique, sélectionnez "csv" et cliquez de nouveau sur le bouton.
  • Terminez le runtime WinCC flexible.


Fig. 08

8 Ouvrez le fichier texte
  • Ouvrez le fichier texte avec l'extension ".txt"
  • Ensuite fermez le fichier


Fig. 09

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


Fig. 10

Exemple de lecture d'information dans un fichier texte ou csv.
Le tableau suivant explique comment lire des informations depuis un fichier texte ou csv et les afficher dans WinCC Flexible.

Cet exemple est basé sur l'exemple précédent. La configuration de l'exemple précédent n'est pas absolument nécessaire dans cet exemple. Néanmoins, des composants de celui-ci sont utilisés.
 
No. Procédure
1 Créez un nouveau projet (optionnel)
Si vous le pouvez vous pouvez utiliser le projet précédent au passer au No 2.
  • Créez un nouveau projet en cliquant sur "Projet > Nouveau..." et sélectionnez "PC > WinCC flexible Runtime" comme type de pupitre.
2 Connecter des variables
  • Ouvrez l'Editeur de variables via "Project > Pupitre_opérateur_1 > Communication > Variables".
  • Ajoutez trois variables interne avec les désignations suivantes :

     

    No.

    Tag

    Data type

    1 szString_1 String
    2 nValue_1 Int
    3 nValue_2 Int
    Tableau 03 - Variables

    Note:
    Si vous ne pouvez pas utiliser le projet précédent, ajoutez aussi la variable "bExtension" du type Bool.


Fig. 11

3 Ajouter des objets
  • Ajouter un rectangle - voir Fig. 12.
  • S'ils ne sont pas déjà présents, ajoutez un champs E/S symbolique et trois champs E/S conventionnels.
  • Enrichissez la vue WinCC Flexible en ajoutant un bouton et quatre Champs de texte.
  • Positionnez les objets comme il est proposé dans Fig.12 et entrez les textes suivants:
    "Value_1:"
    "Value_2:"
    "String_1:"
    "Text file:"
    "Propriétés" (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 texte nommée :"Extension" avec les entrées suivantes:
    0 =>  ".txt"
    1 =>  ".csv"


Fig. 12

4 Incorporez un script, une liste de texte et des variables
  • Créez un script nommé "Read_data". Pour cela, cliquer sur "Scripts>Ajouter un script" dans l'arborescence du projet.
  • Liez les différentes variables et le nouveau script crée avec les objets associés:
     
    Variable/Script Objet Objet pour...
    nValue_1 Champs E/S Value_1
    nValue_2 Champs E/S Value_2
    szString_1 Champs E/S String_1
    bExtension*) Champs E/S symbolique Extension
    Read_data Bouton Read data
    Tableau 04 - Liaison aux différents objets
    *)Les liens sont uniquement nécessaires s'il n'y a pas de configuration à sauver dans un fichier.
     
  • Si ce n'est pas déjà fait, liez la liste de texte "Extension" avec le champs E/E symbolique. (voir Fig. 05).


Fig. 13

5 Créez le script - Part 1
  • Ajoutez le code exemple décrit dans le script "Read_data".

    Note
    :
    Pour plus d'information sur les différents commandes VBScript se reporter à l'Aide de WinCC Flexible.

Description du code source :
 

Toutes les variables qui sont déclarées sont uniquement valables à l'intérieur du script.Via le champs E/S symbolique, le chemin incluant le nom de fichier et l'extension sont sélectionnables par le biais de la variable "bExtension" dans le script en <Line 17>.

 La commande "On Error Resume next" est requis en cas d'erreur de runtime dans le script. Dès qu'une erreur survient la ligne suivante contenant l'erreur est exécutée

La commande de <Line 27> crée l'objet qui accède au système de fichiers de Windows à transférer à la variable "fso". Le code source suivant inclus la routine d'erreur en cas d'erreur runtime. Si une erreur runtime survient, un message d'erreur apparaît dans le fenêtre d'erreur et le script est ensuite interrompu. 

Note:
Si vous utilisez "Scripting.FileSystemObject", vous ne pouvez pas accéder au fichier système de Windows CE. Si ce script est démarré sur un pupitre opérateur avec Windows CE, une erreur de runtime surviendra dans le script.


Fig. 14

6 Créer un script - Part 2
 En utilisant le méthode "OpenTextFile" ,le fichier qui est défini dans la variable du script "Path" est ouvert. Tous les autres paramètres de cette méthode sont optionnels. Le premier paramètre spécifie le mode d'E/S. Le second paramètre définie si un nouveau fichier est à créer ou s'il existe un fichier valable. le dernier paramètre spécifie dans quel format doit être ouvert le fichier.
  • OpenTextFile(filename[,iomode[,Create[,Format]]])

Si le fichier ne peut être ouvert, la routine d'erreur déjà décrite est exécutée pour terminer correctement le script.

Avec la commande "Do-While-Loop", le fichier texte est lu ligne par ligne par la variable objet "f" avec la méthode "Readline" tant que la boucle est exécutée. La fonction"Split" sépare les lignes de texte (expression) lu dans le fichier après le délimiteur qui peut être spécifié optionnellement comme deuxième argument. Les contenus ainsi séparés sont dans un champs de données une dimension. Les deux derniers arguments ne sont pas utilisés dans cet exemple.

  • Split(Expression[,delimiter[,Number[,Compare]]])

 Avant de sauver, les chaînes vides doivent être aussi incluses (voi Fig 09 par exemple), elles doivent être enlevées avec la fonction " Replace". Pour cela, les trois premiers paramètres doivent être renseignés. Le premier argument doit inclure la chaîne de caractères expression) dans laquelle le recherche (SearchCS)  doit être effectuée pour le caractère qui doit être remplacé par l'argument "ReplaceWith". 

  • Replace(Expression, find, replace with [,Start[,Number[,Compare]]])


Fig. 15

7 Créez un script - Part 3
Dans le but de mémoriser la structure des données, toutes les données sont transférées dans un tableau à 2 dimension (array) "HiField". Tant que toutes les données ne sont requises, seules les données associées de ce tableau sont transférées dans les variables globales WinCC flexible.

Example - Structure et contenu de HiField (a, b):

Array

b
0 1 2
a 0 "matériel" "steel" ""
1 "pression" "12" "mbar"
2 "température" "56" "°C"
Tableau 05 -Exemple de contenu du tableau à 2 dimensions

Le fichier ouvert est clos en <Line 62>. La commande clé "Nothing" est requise pour séparer les variables objets qui sont associées aux objets avec la command "Set".

La dernière commande transfère un message système utilisateur défini au système de messagerie HMI.


Fig. 16

8 Démarrer le runtime
  • Démarrez le runtime de WinCC flexible.

    Note:
    Démarrez le runtime de WinCC flexible avec le Script Debugger pour déboguer le script.
     
  • Ensuite cliquez sur le bouton "Read_data".
  • Dans le champs E/S symbolique, sélectionnez ".csv" et cliquer de nouveau sur le bouton.
  • Terminez le Runtime WinCC flexible.


Fig. 17

Téléchargement des codes source et des exemples:
Le téléchargement Attachment_1 contient les deux exemples de code source du projet exemple au format de fichier PDF.

Attachment_1: WinCC_flexible_Quellcodes_PC.zip ( 18 KB )

Attachment 2 contient le projet exemple décrit ci-dessus qui sauve et lit des données dans un fichier texte.

Attachment_2: Read_Write_data_from_or_into_a_file_PC.zip ( 1793 KB )

Conditions d'exécution et environnement de test:
Le tableau suivant liste les composants utilisés pour élaborer cette description et vérifier les fonctions
 
Components Product and version designation
PC operating system Microsoft Windows XP SP2
Standard tools -
Engineering tool -
Logiciel HMI WinCC flexible 2005 SP1 HF7
Système HMI WinCC flexible PC Runtime

Mots clés:
Sauver, Charger, Ecrire, fichier CSV, fichier TXT

 ID contribution:26106418   Date:2007-08-31 
Cette contribution...m´a aidéne m´a pas aidé                                 
mySupport
My Documentation Manager 
Lettre d'information 
CAx-Download-Manager 
Demande d'assistance technique
A propos de cet article
Imprimer
Créer PDF 
Envoyer l'article
QuickLinks
Outil de compatibilité 
Aide
Aide en ligne
Guided Tour