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

WinDev Discussion :

Windev 26 - OPC UA exemple PC Soft


Sujet :

WinDev

  1. #1
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut Windev 26 - OPC UA exemple PC Soft
    Bonjour,

    J'utilise l'exemple de PC-Soft pour me connecter à un automate par OPC UA.
    J'arrive très bien à me connecter et à récupérer les valeurs des variables présent sur mon automates.

    Dans l'exemple il y a le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myTypeInfo=myMonitoredItemNotification.Value.WrappedValue.TypeInfo.ToString()
    Ce code nous permet de connaitre le type de la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELON myTypeInfo	CAS "DateTime"
    	CAS "String"
    	CAS "String[]"
    	CAS "ByteString"
    	CAS "ExtensionObject"
    FIN
    pour type DateTime,String,string[],ByteString aucun problème.
    Mais dès que je suis sur le type ExtensionObject je n'arrive pas à m'en sortir.


    Si j'utilise le logiciel UAExpert, le logiciel me permet de visualiser de voir le datatype, ainsi que son nom si c'est un structure personnel défini dans l'automate.


    Struct_Fiche étant le nom interne de ma structure.

    Je voudrais pouvoir récupérer la désignation "struct_fiche".
    et une fois cela fait, je voudrais transférer les valeurs dans une structure windev.

    Je vous remercie pour toutes les pistes que vous pourriez m'apporter.
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  2. #2
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 777
    Points : 5 191
    Points
    5 191
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Tu devrais peut être regarder du côté des variables de type définition en ce qui concerne le nom.
    Qu'appelle tu structure Windev ? Une structure, c'est une structure ...
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  3. #3
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 162
    Points : 9 112
    Points
    9 112
    Par défaut
    Bonjour,

    J'avais l'intuition que ça devait être sérialisé, et apparement, c'est le cas. Et comme tu es censé récupérer un beau XML, tout doit être dedans : https://reference.opcfoundation.org/...rt6/v104/5.1.5
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  4. #4
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Bonjour Voroltinquo et Frenchsting

    Sur mon automate, j'ai ceci.
    Nom : 2023-06-05_17h08_51.png
Affichages : 339
Taille : 21,6 Ko



    Quand je récupère la valeur de myMonitoredItemNotification.Value.WrappedValue.TypeInfo.ToString() j'obtiens une variable du type : ExtensionObject

    Je voudrais pouvoir récupérer le nom du DataType , ici Struct_Fiche.
    Une fois identifier, je sais que je dois récupérer les valeurs : cote, fich, pose, typ, sens et adr_Charg.
    et mon but c'est de stocké ces informations dans une structure Windev

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    St_Struc_Fiche est une Structure
        cote est un entier sans signe sur 2 octets
        fic est un entier sans signe sur 1 octets
        pose est un booléen
        typ est un entier sans signe sur 1 octets
        sens est un entier sans signe sur 1 octets
        Adr_Charg est un entier sans signe sur 1 octets
    FIN
     
     
    Struct_Fiche est un St_Struc_Fiche
    Frenchsting, oui je suis censé, mais ce n'est pas le cas. Enfin je n'y arrive pas..
    ou je n'ai pas le bon code.

    mais oui c'est bien la piste que je cherche à exploiter.
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  5. #5
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 162
    Points : 9 112
    Points
    9 112
    Par défaut
    Bonjour,

    Je viens de regarder l'exemple concerné (en WD27). Il y est fait référence à myMonitoredItemNotification.Value.Value. Tu arrives à accéder à cette donnée ? Et si oui, tu arrives à la décoder ?

    Pas évident de t'aider (et de ne pas raconter d'énormités) car je n'ai pas d'automate sous la main. Le dernier que j'ai testé est un TSX47, il y a 30 ans. Autant dire l'âge de bronze...

    [EDIT] Je suis tombé sur ça. Ca me paraît se rapprocher de ce que tu recherches (du moins, le début du commencement de la genèse)
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  6. #6
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Salut,

    Oui je récupère bien la notion de myMonitoredItemNotification.Value
    Voici mon code :
    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
    24
    25
    26
    27
    28
    29
    30
    31
     
    myTypeInfo=myMonitoredItemNotification.Value.WrappedValue.TypeInfo.ToString()
     
     
        SELON myTypeInfo
            CAS "DateTime"
                dhMaDate est DateTime
                dhMaDate = myMonitoredItemNotification.Value.Value
                szValue=dhMaDate
     
            CAS "String"
                szValue=myMonitoredItemNotification.Value.Value    
     
            CAS "String[]"
                tabTabStr est tableau de chaînes UNICODE = myMonitoredItemNotification.Value.Value    
                szValue = TableauVersChaîne(tabTabStr,"|")
     
            CAS "ByteString"
                tabTabStr est tableau d'entier = myMonitoredItemNotification.Value.Value    
                szValue = TableauVersChaîne(tabTabStr,"|")
     
            CAS "ExtensionObject"
     
    		​	clExtensionObject est opc.ua.ExtensionObject <-myMonitoredItemNotification.Value.Value
    			bufVar est Buffer
    			bufVar = clExtensionObject.Body
     
            AUTRE CAS
     
                szValue=myMonitoredItemNotification.Value.Value
        FIN
    Ici je récupère des valeurs dans mon buffer
    Voici les valeurs du buffer au format texte :
    "à.<0><0><2><0><1><0><1><0>"
    et les valeurs par UAExpert


    Donc il y a du progrès.
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  7. #7
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CAS "ExtensionObject"
     
     
    			clExtensionObject est opc.ua.ExtensionObject <- myMonitoredItemNotification.Value.Value
    			szValue=  clExtensionObject.get_body().ToString()
     
    			szValue = Remplace(szValue,RC,"|")
    J'arrive à avoir mes valeurs.

    C'est déjà un grand pas.
    J'essaie de voir si j'arrive à trouver le nom de la "struture" et ainsi je pourrais faire mes identifications.

    En tout cas un grand merci pour l'aide
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  8. #8
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 162
    Points : 9 112
    Points
    9 112
    Par défaut
    Cool si tu arrives à avancer.

    Pour les exemples de code, tu peux essayer de t'appuyer sur du Delphi, du C# ou du java. Tu devrais retrouver des infos sur les membres et méthodes de l'objet.

    Par contre, n'espère pas faire de "temps réel" avec le code Windev. Je n'ai d'ailleurs pas trouvé de référence à ADA. Le langage est abandonné ?
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  9. #9
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Pourquoi dis tu que je ne dois pas faire de "temps réel"?
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  10. #10
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 162
    Points : 9 112
    Points
    9 112
    Par défaut
    Ben, pas sûr que Windev puis faire acquisition + traitement des infos en quelques millisecondes.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  11. #11
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Je comprend.
    Je vais juste faire le point avec notre automaticien pour qu'il stock les données tant que ce n'est pas traité par Windev.
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  12. #12
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    @ frenchsting:

    Je n'ai d'ailleurs pas trouvé de référence à ADA. Le langage est abandonné ?
    Sur le site ou je bosse, on utilise un système de DCS maison depuis 30 ans, écrit en ADA et qui continue a évoluer ... le langage est toujours bien vivant

  13. #13
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 162
    Points : 9 112
    Points
    9 112
    Par défaut
    Citation Envoyé par wd_newbie Voir le message
    Sur le site ou je bosse, on utilise un système de DCS maison depuis 30 ans, écrit en ADA et qui continue a évoluer ... le langage est toujours bien vivant
    Je n'en ai jamais fait mais je pense que ça m'aurait plu.

    Pour en revenir à la demande de mail.spam, vous faîtes de l'acquisition + traitement de données ou c'est "juste" de la gestion de processus en temps réel ?
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  14. #14
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Je continue à avancer.

    Maintenant je cherche à savoir si j'ai perdu le lien avec mon automate et si je l'ai retrouvé.
    Puis est-ce que je peux juste le reconnecter ou est-ce qu'il faut que je refasse ma connexion ainsi que mes Subscriptions
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  15. #15
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 162
    Points : 9 112
    Points
    9 112
    Par défaut
    Citation Envoyé par mail.spam Voir le message
    Je continue à avancer.

    Maintenant je cherche à savoir si j'ai perdu le lien avec mon automate et si je l'ai retrouvé.
    Puis est-ce que je peux juste le reconnecter ou est-ce qu'il faut que je refasse ma connexion ainsi que mes Subscriptions
    Un timer (ou thread) qui va lire une valeur "simple" sur l'automate et passe un booléen à faux si la connexion est tombée (échec de lecture).
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  16. #16
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Oui j'y ai pensé.
    Mais je me dis qu'il y a surement une méthode plus propre.
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  17. #17
    Nouveau membre du Club Avatar de chenevierebooks
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Décembre 2017
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 52
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeuse informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    Mais je me dis qu'il y a surement une méthode plus propre.
    Tu peux créer un bit de Watchdog :

    - tu passe un bit à 1 sur une DIN
    - tu dois le récupérer à 1 sur une DOT
    - tu le passe a 0 ...
    - tu dois le récupérer à 0 ...

    Si tu a une différence dans les x sec. --> le WDog est tombé

  18. #18
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    Zut pour la réponse ci-dessus ... pas vu que le PC était connecté avec le compte de ma collègue

  19. #19
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 162
    Points : 9 112
    Points
    9 112
    Par défaut
    Citation Envoyé par wd_newbie Voir le message
    Zut pour la réponse ci-dessus ... pas vu que le PC était connecté avec le compte de ma collègue
    Tiens... Ironman et la licorne, ça fait une super idée de scénario
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  20. #20
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    frenchstingJ'ai ajouté un "callback" sur ma session
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mySession.add_PublishError(DotNetDélégué("PublishError","PublishErrorEventHandler"))
    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
    24
    25
    26
    27
    28
    29
    30
    PROCÉDURE PublishError(LOCAL pclSrc est un Session <utile>, LOCAL pclArgs est un PublishErrorEventArgs <utile>)
     
     
    nBTentative est entier = 60
    bUAEndpointsValide est un booléen
     
     
    Trace(HeureVersChaîne(HeureSys,"HH:mm:SS"),dbgInfo(dbgTraitement),"Status.ToString=",pclArgs.Status.ToString())
    Trace(HeureVersChaîne(HeureSys,"HH:mm:SS"),dbgInfo(dbgTraitement),"Status.Code=",pclArgs.Status.Code)
    //Trace(HeureVersChaîne(HeureSys,"HH:mm:SS"),dbgInfo(dbgTraitement),"SubscriptionId=",pclArgs.SubscriptionId)
    //Trace(HeureVersChaîne(HeureSys,"HH:mm:SS"),dbgInfo(dbgTraitement),"get_Connected=",pclSrc.get_Connected())
     
     
    SELON pclArgs.Status.Code
    	CAS 2156265472
    		//	on tente une reconnexion si le serveur est joignable
    		POUR nTentative = 1 _À_ nBTentative
    			bUAEndpointsValide = GetUAEndpoints(gsOPCUrl)
    			Trace(HeureVersChaîne(HeureSys,"HH:mm:SS"),"nTentative",nTentative,"GetUAEndpoints",bUAEndpointsValide)
    			SI bUAEndpointsValide ALORS
    				Trace(HeureVersChaîne(HeureSys,"HH:mm:SS"),"mySession.Reconnect()")
    				mySession.Reconnect()
    //				ThreadPause(1000)
    				SORTIR
    			FIN
    			ThreadPause(1000)
    		FIN
     
    	AUTRE CAS
    FIN
    et si je n'ai plus la connexion j'ai un retour qui me permet de relancer la connexion à la session.

    pour l'instant ça fait le job.

    Merci IronLicorne..
    et Merci frenchsting
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Généralités] Pourquoi ne pas utiliser WinDev ou d'autres produits PC SOFT !
    Par Maurice Dupond dans le forum WinDev
    Réponses: 104
    Dernier message: 05/02/2019, 18h29
  2. Windev et OPC
    Par KCrevette dans le forum WinDev
    Réponses: 1
    Dernier message: 17/03/2009, 15h05
  3. [WinDev 9] Exemple planning
    Par Jeffboj dans le forum WinDev
    Réponses: 1
    Dernier message: 04/09/2006, 14h15

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