Bonjour à tous,
Voici quelques jours que je parcours les forums à la recherche d'une solution à mon problème, sans réel succès.
J’ai pas mal développé sur du VBA/VBS.
Aujourd’hui, je développe une fonction de sauvegarde des données de production pour un client.
Une fonction similaire est déjà active sur une ancienne ligne de production chez ce client, mais elle a été développée il y a quelques années par un sous-traitant externe.
Cela se passe en deux étapes ; pour information nous travaillons avec des IHM (Interface Homme-Machine) Siemens, ces derniers permettent l’utilisation du VBS pour exécuter des fonctions spécifiques, ils tournent avec un Windows CE.
- Premier step : Extraction et Sauvegarde des données utiles de production dans plusieurs fichiers .csv sur la carte mémoire MMC de l’IHM, qui contient une arborescence de dossiers.
J’ai terminé l’écriture des scripts qui remplissent correctement ces premières fonctions.
- Deuxième step : Copie des dossiers qui contiennent les fichiers .csv sauvegardés, depuis la carte MMC vers le serveur NAS du client.
Mon problème est le suivant :
Comment mapper l’emplacement réseau sur le NAS en utilisant du VBS sous Windows CE ? En résumé comment se connecter au NAS pour pouvoir ensuite y copier mes dossiers?
Je ne trouve rien là-dessus sur les forums. Impossible pour moi d’utiliser WScript qui n’est apparemment pas géré par CE (error ActiveX).
J’ai récupéré la ligne de commande utilisée sur l’ancienne ligne de production du client, et développée par le sous-traitant externe, la voici :
Pour moi c’est une ligne de commande qui permettrait de mapper un lecteur réseau, une function net use.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 'Connection to the NAS Call StartProgram ("\windows\net.exe", "USE Archive " & Directory & " /User:Display /Password:Test", hmiShowNormal, hmiNo)
Mais à quoi pourrait correspondre ce « USE Archive » ? Je ne trouve aucune information là dessus. Nom de lecteur? Je ne pense pas. Aucun fichier de ce nom dans l'explorateur Windows des anciens IHM.
Pourtant sur l'ancienne ligne cette commande fonctionne. Mais je ne comprends pas comment.
Pour information (aide de Siemens sur la function StartProgram):
Use in user-defined functions
StartProgram (Program_name, Program_parameters, Display_mode, Wait_for_program_to_end)
Can be used if the configured device supports user-defined functions. For additional information, refer to "Device dependency".
Directory est le chemin d’accès au répertoire NAS sur lequel il faut aller copier les données.
Je vous mets le code que je vais tenter de tester prochainement sur la nouvelle ligne (pour test) :
Des idées ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Sub Data_Transfert_NAS() Dim Directory, objFSO Set objFSO = CreateObject ("Scripting.FileSystemObject") 'NAS Path declared into the HMI 'Directory=SmartTags("Save_data_MP.DB_VAR") Directory="\\172.16.225.99\01 - Main_line_HV3" 'Connection to the NAS Call StartProgram ("\windows\net.exe", "USE Archive " & Directory & " /User:Display /Password:Test", hmiShowNormal, hmiNo) If objFSO.FolderExists(Directory) Then ShowSystemAlarm "NAS connected" SmartTags("NASnotConnected")= 0 Else ShowSystemAlarm "NAS not connected" SmartTags("NASnotConnected")= 1 End If End Sub
Pour information j’ai tenté un net use depuis ma commande DOS et pas de problème d’accès je mappe le lecteur correctement.
Je continue de faire des tests de mon côté.
A bientôt !
Partager