[TIA V17]

Forum traitant des automates industriels de marque Siemens.
Répondre
axel45
Apprend le binaire
Apprend le binaire
Messages : 1
Enregistré le : 24 mars 2023, 08:52

[TIA V17]

Message par axel45 »

Bonjour,
je rencontre un problème en VB script, actuellement sur tia V17 et un IHM tp 1500comfort je suis bloqué.
j'ai fait un script, la partie sur un pc (simulation par exemple) marche très bien, mais la partie sur l'ihm ne fonctionne pas a cause de WinCC qui n'accepte pas toutes les commandes. j'ai essayer plein de solution mais impossible. Le but final est de prendre le fichier csv (créer par l'ihm) sur la clé USB et rajouter à la première ligne "sep=," afin de pouvoir ouvrir dans excel directement sans faire de manipulation dans excel. Voici le code :

Code : Tout sélectionner

Sub FonctionVB_2()

'wait
SmartTags("test")=0
Do While (SmartTags("test")<10000)
	    SmartTags("test")= SmartTags("test")+ 1
Loop
                
' Déclaration des variables
Dim cheminFichier, fichier,fichier1,i,arrlines,strcontents,fichierCE


' Déclaration des constantes
Const Ecriture = 2
Const lecture = 1

' Chemin vers le fichier texte
cheminFichier = "\Storage Card USB\record.csv"

On Error Resume Next

' Création de l'objet (version PC)
Set fichier = CreateObject("Scripting.FileSystemObject")

' S'il la fonction n'a pas retournée d'erreur, alors on est sur le runtime PC (simulation)
If Err.Number = 0 Then
                'On efface l'erreur
                Err.Clear

				
                'Ouverture du fichier en mode lecture, on le créeet si le fichier n'existe pas, 
                Set fichier1 = fichier.OpenTextFile(cheminFichier, lecture, -2)
                
                ' En cas d'erreur lors de l'ouverture, on l'affiche l'erreur dans les messages système
                If Err.Number <> 0 Then
                               ShowSystemAlarm "Erreur lors de l'ouverture du fichier #" & CStr(Err.Number) & " " & Err.Description
                               Err.Clear
                End If
                
                'copier tout les fichiers dans strcontents
                strcontents = fichier1.ReadAll
                
                'fermeture du fichier
                fichier1.Close
                
                'enregistrer le nombre de ligne présent dans le fichier
                arrlines = Split(strcontents,vbCrLf)
                
                'ouverture en mode ecriture
                Set fichier1 = fichier.OpenTextFile(cheminFichier, Ecriture, -2)
                
                
                'Ecriture dans le fichier
                 fichier1.Write("sep=,")
                
                'boucle pour recopier le fichier
                For i=0 To UBound(arrlines)-1
					fichier1.WriteLine arrlines(i)
				Next
				
                'Fermeture du fichier
                fichier1.Close

' On est sur l'IHM
Else
                'Création de l'objet (version Windows CE)
                Set fichierCE = CreateObject("FileCtl.File")
                
                If Err.Number <> 0 Then
                    ShowSystemAlarm "Erreur lors de la creation object #" & CStr(Err.Number) & " " & Err.Description
                    Err.Clear
				End If 
								
                'Ouverture du fichier en mode lecture                            
                fichierCE.Open cheminFichier, lecture                  
                
                ' En cas d'erreur lors de l'ouverture, on l'affiche l'erreur dans les messages système
                If Err.Number <> 0 Then
                               ShowSystemAlarm "Erreur lors de l'ouverture du fichier #" & CStr(Err.Number) & " " & Err.Description
                               Err.Clear
                End If
                
                'copier tout les fichiers dans strcontents
                strcontents = fichierCE.ReadAll
                
                'fermeture du fichier
                fichierCE.Close
                
                'enregistrer le nombre de ligne présent dans le fichier
                arrlines = Split(strcontents,vbCrLf)
                                                 
                If Err.Number <> 0 Then
                    ShowSystemAlarm "Erreur lors de l'ouverture #" & CStr(Err.Number) & " " & Err.Description
                    Err.Clear
				End If    
				
				         
                'Ecriture dans le fichier
                 fichierCE.LinePrint("sep=,")
                
                'boucle pour recopier le fichier
                For i=0 To UBound(arrlines)-1
					fichierCE.LinePrint( arrlines(i))
				Next
				
                ' En cas d'erreur lors de l'écriture, on l'affiche l'erreur dans les messages système
                If Err.Number <> 0 Then
                               ShowSystemAlarm "Erreur lors de l'écriture #" & CStr(Err.Number) & " " & Err.Description
                               Err.Clear
				End If
				

                'Fermeture du fichier
                fichierCE.Close
                
End If


End Sub
La commande .ReadAll marche sur simulation mais sur l'ihm ne fonctionne pas (en rapport avec l'objet créer).
Répondre