TP1200 copie d'un dossier de la carte SD à une clé usb
TP1200 copie d'un dossier de la carte SD à une clé usb
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.
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.
- itasoft
- 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
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;
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
itasoft@free.fr
Re: TP1200 copie d'un dossier de la carte SD à une clé usb
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.
20010 : Error ActiveX component can't create object: 'FileSystemObject' in script <SDCopy> in line 13.
- itasoft
- 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
slts,
Dim fso As Object
c'est l'instruction CreateObject qui plante
Dim fso As Object
c'est l'instruction CreateObject qui plante
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: TP1200 copie d'un dossier de la carte SD à une clé usb
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
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
- itasoft
- 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
ç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
itasoft@free.fr
-
philou77
- 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
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! 
- djé
- 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
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 !
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 ...
Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Re: TP1200 copie d'un dossier de la carte SD à une clé usb
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
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

- 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
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
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 ! 
