TP1200 copie d'un dossier de la carte SD à une clé usb

Partie du forum pour tout ce qui concerne les interfaces homme machine ou IHM. Forum, conseil, astuce et entraide sur les interface homme machine ou IHM tels que les magelis, KEP, proface, XBT, .
Hyro
Code sa première boucle
Code sa première boucle
Messages : 16
Enregistré le : 03 sept. 2021, 14:44

TP1200 copie d'un dossier de la carte SD à une clé usb

Message par Hyro »

Bonjour

Je programme une machine ou à chaque fin de cycle je crée des csv que je sauvegarde sur la carte SD de mon IHM.
J'aimerai que l'opérateur puisse mettre une clé USB de temps en temps et sur l'appui d'un bouton le dossier de CSV se copie sur la clé.
Pour se faire j'ai crée un script:

Dim fso

Set fso = CreateObject ("Scripting.FileSystemObject")

fso.CopyFolder "\Storage Card SD\TICKET", "\Storage Card USB\Stock", True
Copy_Done = false;

Donc un code tout bête en VBA.
J'utilise le bit Copy_done pour lancer le script et je le remet à false pour voir si la commande se fait.
Quand j'appuie sur mon bouton le bit passe à un mais ne retombe pas. Donc soit mon script ne se lance pas soit j'ai fait une faute dans le FSO.
J'ai essayé de lancer directement le script dans les évènements du bouton mais même résultat.
J'ai aussi ajouté une navigation pour vérifier que l'ihm voit bien la clé.

Mes deux chemins sont bon donc je comprend pas trop.

Merci d'avance.
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7803
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: TP1200 copie d'un dossier de la carte SD à une clé usb

Message par itasoft »

Slts,
Pour le VBA soit le script ne s’éxecute pas soit c’est l’instruction qui plante le VBA, mettre des compteurs pour le voir ou faire du pas à pas
Exemple :

Compteur1=Compteur1+1
fso.CopyFolder "\Storage Card SD\TICKET", "\Storage Card USB\Stock", True
Compteur2=Compteur2+1
Copy_Done = false;
Automaticien privé (de tout)
itasoft@free.fr
Hyro
Code sa première boucle
Code sa première boucle
Messages : 16
Enregistré le : 03 sept. 2021, 14:44

Re: TP1200 copie d'un dossier de la carte SD à une clé usb

Message par Hyro »

Update dans les alarmes systèmes de l'ihm j'obtiens se message:

20010 : Error ActiveX component can't create object: 'FileSystemObject' in script <SDCopy> in line 13.
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7803
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: TP1200 copie d'un dossier de la carte SD à une clé usb

Message par itasoft »

slts,
Dim fso As Object

c'est l'instruction CreateObject qui plante
Automaticien privé (de tout)
itasoft@free.fr
Hyro
Code sa première boucle
Code sa première boucle
Messages : 16
Enregistré le : 03 sept. 2021, 14:44

Re: TP1200 copie d'un dossier de la carte SD à une clé usb

Message par Hyro »

Ouai j'ai vu sa j'ai modifié le code.
Siemens a son propre VBA et je peux pas écrire comme pour windows ou excel.

Dim fso

Set fso = CreateObject ("FileCtl.filesystem")
C1 = C1 + 1
fso.FileCopy "\Storage Card SD\TICKET", "\Storage Card USB\Stock"
C2 = C2 + 2
Copy_Done = True

Je suis parti la dessus et j'ai plus cette erreur.
Maintenant il me met juste Error Acces is denied in Script <SDCopy> in line 14.

Mon premier compteur augmente quand je lance le script mais pas le second
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7803
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: TP1200 copie d'un dossier de la carte SD à une clé usb

Message par itasoft »

ça prouve déjà que c'est fso.FileCopy "\Storage Card SD\TICKET", "\Storage Card USB\Stock" qui plante
Automaticien privé (de tout)
itasoft@free.fr
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2142
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: TP1200 copie d'un dossier de la carte SD à une clé usb

Message par philou77 »

Salut !

cela peut t'aider .; peut être..

https://www.automation-sense.com/forum/ ... e-usb.html
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 864
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes
Contact :

Re: TP1200 copie d'un dossier de la carte SD à une clé usb

Message par djé »

Salut,
Attention! vérifie bien si ton IHM est en Windows CE: si c'est le cas la gestion de SystemFIleObject n'est pas gérée. il faut passer par un autre ActiveX.
EN simul les script avec FSO peuvent fonctionner par la machine Hôte est un Windows classic par contre en RUntime il faut tout refaire!

edit :Oops j'avais pas tout lu, apparment tu utilise le bon activeX !
Modifié en dernier par djé le 24 nov. 2022, 11:56, modifié 1 fois.
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Hyro
Code sa première boucle
Code sa première boucle
Messages : 16
Enregistré le : 03 sept. 2021, 14:44

Re: TP1200 copie d'un dossier de la carte SD à une clé usb

Message par Hyro »

Dim Path1, arrayPath, arraySize,Path2
Dim fso

Path1 = SDcopyfilepath

arrayPath = Split(Path1, "\")
arraySize = UBound(arrayPath)
Path2 = "\Storage Card USB\Stock" & arrayPath(arraySize)


Set fso = CreateObject ("FileCtl.filesystem")
C1 = C1 + 1
fso.FileCopy Path1,Path2
C2 = C2 + 2
Copy_Done = True


J'arrive à copier un csv avec ce code sur la clé usb. Je peut pas pointer de dossier directement donc l'opérateur est obligé de le faire un par un à la main. je trouve ça vraiment pas fou.
Ou alors il faut que je trouve un moyen de compiler tout les CSV pour envoyer un seul
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2142
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: TP1200 copie d'un dossier de la carte SD à une clé usb

Message par philou77 »

Re

Le code copie un fichier.
C’était une inspiration.
Cherche si il existe une commande pour un répertoire.

Sinon faut faire une boucle..

Autre astuce.
Renommer le dossier et recréer l’ancien.
Aucune copie a faire
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Répondre