exporter les valeurs d'une table d'animation

Forum traitant des automates industriels de marque Schneider - Telemecanique
Répondre
rmoreno
Code sa première boucle
Code sa première boucle
Messages : 11
Enregistré le : 23 mai 2022, 09:10

exporter les valeurs d'une table d'animation

Message par rmoreno »

Bonjour à tous J'utilise la licence étudiant d'EcoStruxture Control Expert,

Dans mon cours de BUT sur l'analyse des signaux, je dois créer une génération de fonction sinusoïdale (je l'ai déjà fait en langage ST) pour appliquer les filtres natifs de control expert et analyser les résultats,

Avec un simple FOR je stocke toutes les valeurs de mon signal de sortie (signal filtré) dans un tableau quelque chose comme ceci :

For i := 0 to SAMPLE :
filteredsignal { i } = Out.Filtre ;

à la fin de ma simulation j'ai toutes les valeurs que je veux dans le tableau filteredsignal, cependant j'ai besoin d'exporter ces valeurs pour faire un traitement de données dans Excel, j'ai essayé d'exporter le tableau de valeurs simplement en faisant un clic droit sur le tableau et exporter cela génère un fichier XTB mais les valeurs du tableau ne sont pas là.

Il faut noter que je fais tout cela avec PLCSIM et non avec un vrai automate.

Est-ce que quelqu'un sait comment je peux exporter ces données pour les traiter en dehors de control expert ?

Merci et bonne journée pour tous :D
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1573
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: exporter les valeurs d'une table d'animation

Message par MiGaNuTs »

Bonjour,

A mon avis c'est plus simple de passer par des fichiers .xsy. Il permettent de définir une valeur par défaut pour tes variables, et c'est du XML.
Ça se génère pas trop mal avec des macro excel.

Cadeau, quelques bouts de mes macros perso qui devraient faire une bonne partie du travail.
Il faudra les adapter un peu, mais y'a déjà 90% du boulot de fait.

Code : Tout sélectionner

Private Sub EcritureVariableXML(mnemo As String, adr As String, t As String, description As String, Optional valeur As String = "", Optional save As String)
' sous fonction nécéssaire pour <GenerationUnity>
' Prends comme parametres obligatoires le mnémonique, l'adresse, le type, le commentaire
' en parametres optionnels on a la valeur par défaut et sa rémanence

	Print #1, "<variables name=" + Chr(34) + mnemo + Chr(34) + " typeName=" + Chr(34) + t + Chr(34) + " topologicalAddress=" + Chr(34) + adr + Chr(34) + ">"
	Print #1, "       <comment>" + Replace(description, Chr(34), "") + "</comment>"
	If save = "1" Then
	Print #1, "       <attribute name=" + Chr(34) + "Save" + Chr(34) + " value=" + Chr(34) + "-1" + Chr(34) + "></attribute>"
	End If
	Print #1, "       <attribute name=" + Chr(34) + "TimeStampSource" + Chr(34) + " value=" + Chr(34) + "3" + Chr(34) + "></attribute>"
	If valeur <> "" Then
	Print #1, "       <variableInit value=" + Chr(34) + valeur + Chr(34) + "></variableInit>"
	End If
	Print #1, "</variables>"
End Sub


Sub GenerationUnity(NomOnglet As String, NomFichier As String)
' Génère un fichier .scy au format Unity Pro/Control Expert à partir d'une feuille Excel.
'
' Récupère les données des colonnes suivantes :
'   A : Mnémonique de la variable.
'   D : Type de la variable.
'   K : Adresse topologique.
'   M : Commentaire.
'   N : Valeur par défaut (si renseignée).
'   O : Rémanence (1 = sauvegardé, 0 = non sauvegardé).
'
' /!\ Parcourt les lignes de 10 à 5000 !

    Dim i, sauvegarde As Integer
    Open NomFichier For Output As 1
    Print #1, "<?xml version=" + Chr(34) + "1.0" + Chr(34) + " encoding=" + Chr(34) + "ISO-8859-1" + Chr(34) + " standalone=" + Chr(34) + "yes" + Chr(34) + "?>"
    Print #1, "<VariablesExchangeFile>"
    Print #1, "<fileHeader company=" + Chr(34) + "Schneider Automation" + Chr(34) + " product=" + Chr(34) + "Unity Pro XL V8.1 - 141023H" + Chr(34)
	Print #1, " dateTime=" + Chr(34) + "date_and_time#2015-9-24-16:26:5" + Chr(34) + " content=" + Chr(34) + "Fichier source variables" + Chr(34) + " DTDVersion=" + Chr(34) + "41" + Chr(34) + "></fileHeader>"
    Print #1, "<contentHeader name=" + Chr(34) + "Projet" + Chr(34) + " version=" + Chr(34) + "0.0.560" + Chr(34) + " dateTime=" + Chr(34) + "date_and_time#2015-9-22-16:31:5" + Chr(34) + "></contentHeader>"
    Print #1, "<dataBlock>"
    
    For i = 10 To 5000
        If (Worksheets(NomOnglet).Range("A" + CStr(i)).Value <> "") Then
            sauvegarde = 0
            If Trim(Worksheets(NomOnglet).Range("O" + CStr(i)).Value) = "1" Then
                sauvegarde = 1
            End If
            
            If Trim(Worksheets(NomOnglet).Range("N" + CStr(i)).Value) <> "" Then
                EcritureVariableXML Worksheets(NomOnglet).Range("A" + CStr(i)).Value, _
                                    Worksheets(NomOnglet).Range("K" + CStr(i)).Value, _
                                    Worksheets(NomOnglet).Range("D" + CStr(i)).Value, _
                                    Chr(34) + Worksheets(NomOnglet).Range("M" + CStr(i)).Value + Chr(34), _
                                    Worksheets(NomOnglet).Range("N" + CStr(i)).Value, _
                                    CStr(sauvegarde)
            Else
                EcritureVariableXML Worksheets(NomOnglet).Range("A" + CStr(i)).Value, _
                                    Worksheets(NomOnglet).Range("K" + CStr(i)).Value, _
                                    Worksheets(NomOnglet).Range("D" + CStr(i)).Value, _
                                    Chr(34) + Worksheets(NomOnglet).Range("M" + CStr(i)).Value + Chr(34), _
                                    "", _
                                    CStr(sauvegarde)
            End If
        Else
            Exit For
        End If
    Next i
    
    Print #1, "</dataBlock>"
    Print #1, "</VariablesExchangeFile>"
    Close 1
End Sub
Répondre