Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Candidat au Club
    Homme Profil pro
    Automation Engineer
    Inscrit en
    juin 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Suisse

    Informations professionnelles :
    Activité : Automation Engineer
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : juin 2018
    Messages : 2
    Points : 2
    Points
    2

    Par défaut Accès à un lecteur réseau sous un Windows CE

    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 :

    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)
    Pour moi c’est une ligne de commande qui permettrait de mapper un lecteur réseau, une function net use.
    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) :

    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
    Des idées ?
    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 !

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    février 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2006
    Messages : 1 162
    Points : 3 078
    Points
    3 078

    Par défaut

    bonjour,

    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).
    si mais c'est normalement optionnel sous WinCE
    son installation ne permet pas d'ailleurs une utilisation directe puisque WSH est un environnement d'exécution pas un composant activex
    dans ton cas, c'est l'appli siemens qui fournit son contexte d'exécution mais cette installation devrait rendre disponible l'objet COM "Wscript.Network" pour mapper les disques du NAS

    sinon, en lisant l'aide en ligne de net.exe, je pense qu'"Archive" correspond, non pas à un nom de lecteur, mais à un nom de domaine
    ou d'utilisateur propre à ton réseau d'où l'absence de doc sur les forums...

    cette méthode devrait continuer à fonctionner si les bons paramètres sont fournis à l'utilitaire
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  3. #3
    Candidat au Club
    Homme Profil pro
    Automation Engineer
    Inscrit en
    juin 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Suisse

    Informations professionnelles :
    Activité : Automation Engineer
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : juin 2018
    Messages : 2
    Points : 2
    Points
    2

    Par défaut

    Hello,

    Merci pour ta réponse qui m'a orienté vers les bonnes recherches.
    J'ai réussi à comprendre cette fameuse ligne de code.
    Je poste la solution avant de clore le sujet, car j'ai remarqué que beaucoup de forums traitent de problèmes rencontrés lors de l'éxécution de commandes sous Windows CE.

    Finalement, en Windows CE il existe déjà deux differences notables par rapport à un Windows classique, au niveau de l'éxécution d'une commande net use (permet de mapper un emplacement réseau) :
    - Ne prendra pas en compte une lettre pour le nom du réseau local ; il faut utiliser un nom de réseau, par exemple "Archive".
    - Ne prendra pas en compte une adresse IP dans le chemin de l'emplacement à mapper sur le réseau partagé ; il faut utiliser le nom du dossier partagé.

    J'ai ouvert l'invité de commandes sous Windows CE pour réussir dans un premier temps à mapper mon emplacement réseau via la commande net use en direct.

    Celle qui a fonctionné est la suivante :

    \> net USE Archive \\DENBGNAS\HV3\ /user: Display /password: test

    Avec :

    - "Archive" > [nom du réseau local]
    - "\\DENBGNAS\HV3\" > [chemin de l'emplacement réseau à mapper]

    Nom : WinCE.jpg
Affichages : 35
Taille : 57,9 Ko

    Attention très important ! > La même commande ne fonctionnait pas lorsque mon HMI était configuré sous un masque de sous-réseau different de celui du NAS du client.
    Pourtant le ping était bien fonctionnel, ce qui m'induisait en erreur lors de mes essais. Le masque de sous-réseau doit correspondre de manière identique.

    Cette ligne de commande permet donc la creation d'un dossier nommé "Archive" mappé vers l'emplacement réseau "\\DENBGNAS\HV3\" du client, et donc un accès aux fichiers contenus à cet emplacement si le user et le password vous donnent les droits nécessaires (R/W/RW).

    Ensuite j'en reviens à ligne de commande utilisée dans mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Call StartProgram ("\windows\net.exe", "USE Archive " & Directory & " /User:Display /Password:test", hmiShowNormal, hmiNo)
    Le programme "\windows\net.exe" permet de mapper un lecteur réseau sous Windows CE.
    USE est un paramètre.
    Archive est le nom du lecteur à créer.
    Dans mon cas Directory contient "\\DENBGNAS\HV3\".
    Les paramètres suivants "hmiShowNormal" et "hmiNo" sont propres à la fonction "StartProgram".

    Et voilà, je vous remercie pour l'aide apportée.

    A bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Accès lent à base réseau sous windows 7
    Par lololebricoleur dans le forum Access
    Réponses: 7
    Dernier message: 20/03/2012, 13h18
  2. se connecter à un lecteur réseau via service windows
    Par Tiger44 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 27/01/2010, 20h41
  3. Réponses: 1
    Dernier message: 25/08/2009, 09h53
  4. Fonctionnement du "lecteur réseau" sous Windows
    Par MatMeuh dans le forum Windows
    Réponses: 3
    Dernier message: 08/11/2007, 17h28
  5. Accés impossible lecteur réseau
    Par chqde dans le forum 4D
    Réponses: 5
    Dernier message: 07/09/2007, 12h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo