IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Langages Discussion :

Ecriture asynchrone sur serveur OCP


Sujet :

Langages

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 52
    Points
    52
    Par défaut Ecriture asynchrone sur serveur OCP
    Bonjour

    Je développe une application pilotant un serveur OPC.
    J’ai des soucis de performances lors de l’écriture des variables car je suis en synchrone (à chaque cycle d’écriture, il faut attendre le retour du serveur).

    Voici mon code actuel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Shared WithEvents groupWrite As Opc.Da.ISubscription
    ... création des items non détaillés ici...
     
      Public Shared Sub Write_Direct_OPC_Item(ByVal index_a_ecrire As Integer, ByVal valeur_a_ecrire_item As Integer)
                Dim item As Opc.Da.ItemValue() = New Opc.Da.ItemValue(0) {} 'créé un tableau d item contenant une seule valeur
                item(0) = New Opc.Da.ItemValue ' créé l item à écrire
                item(0).ServerHandle = index_a_ecrire 
                item(0).Value = valeur_a_ecrire_item 
                groupWrite.Write(item) 'on écrit et on récupere le resultat si on le veux ==> SYNCRHONE
            End Sub
    J’ai lu dans la documentation OPC qu’on pouvait faire de l’asynchrone.
    J’ai trouvé des threads en parlant mais uniquement sur les anciennes DLL dépréciées aujourd’hui. Les méthodes ne sont plus bonnes.

    Auriez-vous des exemples de code d’écriture asynchrone (VB ou tout langage .NET)

    Merci pour votre aide

    Dan

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 52
    Points
    52
    Par défaut
    Bonjour,

    J'ai trouvé la solution.

    il suffit de remplacer la commande
    par la même mais avec des paramétres supplémentaires :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     If _TransactionID < 32767 Then ' chaque transaction aura un id différent
                    _TransactionID += 1
                Else
                    _TransactionID = 0
                End If
    
                Dim _request As Opc.IRequest = Nothing ' pour gérer la réponse du serveur
    
                groupWrite.Write(item, _TransactionID, New Opc.Da.WriteCompleteEventHandler(AddressOf WriteCompleteCallback), _request) 'on écrit en mode asynchrone
    Pensez à rajouter le handler pour gérer le retour du serveur OPC
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Private Shared Sub WriteCompleteCallback(clientHandle As Object, results As Opc.IdentifiedResult())
               For Each writeResult As Opc.IdentifiedResult In results
                    msgbox(writeResult.ItemName.ToString & " value " & writeResult.ResultID.ToString)
                Next
            End Sub
    PS : mettre tout ça dans un thread pour ne pas monopoliser l'interface

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 27/10/2009, 23h25
  2. [débutant] Ecriture fichier sur serveur web
    Par SPACHFR dans le forum Applets
    Réponses: 8
    Dernier message: 19/02/2009, 13h07
  3. Lecture / Ecriture sur serveur
    Par cstan dans le forum C++Builder
    Réponses: 16
    Dernier message: 27/01/2007, 22h48
  4. Erreur de connexion à ma base sur serveur Debian - Apache
    Par GLDavid dans le forum Installation
    Réponses: 4
    Dernier message: 24/09/2003, 11h29
  5. jsp sur serveur distant
    Par petitelulu dans le forum JBuilder
    Réponses: 5
    Dernier message: 11/09/2003, 12h50

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