Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 60

Sous Access déclencher une relais 5V USB



  1. #1
    anthonydu62

    Sous Access déclencher une relais 5V USB


    ------

    Bonjour à toutes et tous (si erreur de lieu de post, j'autorise l'admin à rediriger et me fouetter )

    Donc voula ma question:
    Y a t'il une solution "simple" de dire à ACCESS de commander un relais via un port USB?

    Merci d'avance pour votre aide.

    -----

  2. Publicité
  3. #2
    vande545

    Re : Sous Access déclancher une relais 5V USB

    Bonjour
    Je ne crois pas que ce soit simple. Néanmoins, ça doit être possible de programmer ça en langage macro.
    Quand je me suis intéressé à cela il y a une vingtaine d'années, il fallait au préalable installer un composant (activeX) et cela n'était possible que depuis un langage de programmation Micro$oft dûment payé !
    En résumé, ce n'est ni simple, ni gratuit !

  4. #3
    umfred

    Re : Sous Access déclancher une relais 5V USB

    Maintenant, ça doit être faisable avec la dll ou composant fourni avec ton relais commandé via USB (il doit y avoir un logiciel fourni avec et donc une explication de la façon dont le relais peut-être commandé); ça pourrait être simplement via une communication série (donc "juste" l'ajout d'un composant MSComm32.ocx, ou équivalent (peut-être pas si simple depuis la disparation des ports séries)).
    Si c'est par communication série, regarde ce forum => https://www.mrexcel.com/board/thread...-64bit.876232/ qui donne un module de communication série sans le composant MSComm32 (je ne l'ai pas testé, mais ça devrait fonctionner)

  5. #4
    anthonydu62

    Re : Sous Access déclencher une relais 5V USB

    Bonjour, merci pour vos réponse.
    Je pensais utiliser ceci:
    https://www.amazon.fr/dp/B07Z63J9J9/...FRg&th=1&psc=1

    Par contre, je ne comprend pas comment le faire basculer avec ACCESS.
    Il est marqué que l'on commande ce relais par:
    0xAA, le relais continue à s’ouvrir;Envoyer 0xBB, le relais continue à se fermer;Envoyez 0xCC, le relais fonctionne pendant 1 seconde, puis arrêtez (Jog)

    Qui pourrais m'expliquer?
    Merci

  6. A voir en vidéo sur Futura
  7. #5
    vande545

    Re : Sous Access déclencher une relais 5V USB

    Ce sont les instructions que ton programme (à écrire) doit envoyer sur le port USB pour commander le périphérique

  8. #6
    umfred

    Re : Sous Access déclencher une relais 5V USB

    Comme je l'ai supposé, c'est une communication série, donc utiliser la méthode décrite dans le lien que j'ai indiqué dans mon précédent post, ou importer directement le fichier modCom.bas du zip téléchargeable sur http://www.thescarms.com/vbasic/commio.aspx (a priori, ils sont identiques).
    Dans ton cas, tu n'as qu'un octet à envoyer, qu'il faudra transformer en chaine avant de l'envoyer (puisqu'on t'indique une valeur hexa pour la commande)
    CommWrite(PortID, Chr(&hAA)) pour envoyer 0xAA (ouverture continue du relais) au relais sur le port identifié par PortID (voir le fichier Sample.txt du zio du lien de ce post)

  9. Publicité
  10. #7
    vande545

    Re : Sous Access déclencher une relais 5V USB

    importer directement le fichier modCom.bas
    A ce stade, rien ne dit que anthonydu62 sait programmer alors pourquoi ne pas lui dire clairement qu'il devra compiler le code suggéré et donc disposer de l'outil commercial payant ?
    (un programmeur pourrait probablement adapter le code à VBA qui est gratuit mais il faut aussi connaître ce langage)

  11. #8
    umfred

    Re : Sous Access déclencher une relais 5V USB

    Le module doit pouvoir s'importer directement dans le VBA et être utilisé sans besoin de compiler ou de modifier (juste à ajouter le code des commandes utilisant les fonctions de ce module), puisque ce code est utilisé dans Excel (cf mon lien en #3).
    Ceci-dit, c'est vrai qu'on ne sait pas si il sait programmer en vba (langage des macros office).
    Edit: quoique en regardant ces précédents Post, on sait qu'il connait un peu le vba
    Dernière modification par umfred ; 04/11/2020 à 16h35.

  12. #9
    anthonydu62

    Re : Sous Access déclencher une relais 5V USB

    Bonjour à tous.
    Merci pour votre implication.
    En effet, je ne connais pas trop le VBA, on va dire que je tâtonne avec des haut et des bas (Surtout des bas).

    Donc, si j'ai bien compris, il suffit (par exemple):
    Créer un bouton sous ACCESS, et
    Lui mettre le "bon" VBA qui va.
    Le problème c'est que là je deviens une grosse bille car j'ai beau chercher dans ce que vous m'avez donné, je comprend rien!
    Je crois que je suis arrivé au bout de mes compétences et qu'il me faut un gros coup de main

    A voir le relais que je vous ai fait voir devrai fonctionner, donc dans un premier lieu, je le commande et dès réception, je reviens vers vous.
    Cordialement
    et bonne journée

  13. #10
    umfred

    Re : Sous Access déclencher une relais 5V USB

    ok, dans le lien que j'ai donné en #6, tu télécharges le fichier zip proposé par la page en cliquant sur "download source code".
    tu décompresses le ficher dans un dossier sur le bureau par exemple.
    Dans l'éditeur VBA d'Access, sur la gauche où tu as la structure du fichier et du code VBA, tu fais un clic droit puis "importer un fichier", tu vas chercher le fichier CommIO.bas dans le dossier sur ton bureau. Ainsi tu as importé le module contenant les fonctions de communication série.
    Ensuite, dans Access, il doit te falloir 2 ou 3 boutons (1 pour ouvrir le relais (commande 0xAA), 1 pour le fermer (commande 0xBB), et le 3ème (optionnel si tu n'as pas besoin de cette fonction) pour fermer le relais pendant 1s avant de l'ouvrir (commande 0xCC)).
    Dans chacun des boutons tu va appeler une fonction CommandeRelais avec en paramètre la valeur de la commande nécessaire.
    Et ensuite, on va créer cette fonction, qui ouvrira le port série et enverra la donnée passée en paramètre et fermera le port série; en se basant sur le fichier Sample.txt contenu dans le zip téléchargé.
    Ça donne avec un bouton (type ActiveX) appelé CommandButton1 (le nom peut être modifié) qui
    Code:
    Private Sub CommandButton1_Click()
        Call CommandeRelais(&HAA)
    End Sub
    
    Private Sub CommandeRelais(cmd As Byte)
        Dim intPortID As Integer ' Ex. 1, 2, 3, 4 for COM1 - COM4
        Dim lngStatus As Long
        Dim strError  As String
        Dim strData   As String
        Dim lngSize As Long
        
        ' Numéro du port série du module (voir dans Gestionnaire des périphériques le port associé)
        intPortID = 1
        'on formate la donnée sous forme de chaine
        strData = Chr(cmd)
        
        
        ' Initialize Communications (conformément
        lngStatus = CommOpen(intPortID, "COM" & CStr(intPortID), "baud=9600 parity=N data=8 stop=1")
        
        If lngStatus <> 0 Then
        ' Handle error.
            lngStatus = CommGetError(strError)
            MsgBox "COM Error: " & strError
            Exit Sub
        End If
    
        ' Set modem control lines. (lignes suivantes mises en commentaires, pas utiles je pense)
        'lngStatus = CommSetLine(intPortID, LINE_RTS, True)
        'lngStatus = CommSetLine(intPortID, LINE_DTR, True)
    
        ' Write data to serial port.
        lngSize = Len(strData)
        lngStatus = CommWrite(intPortID, strData)
        If lngStatus <> lngSize Then
        ' Handle error.
            lngStatus = CommGetError(strError)
            MsgBox "COM Error: " & strError
            'Exit Sub
        End If
    
        ' Dans notre cas, pas de lecture du port série
        ' Read maximum of 64 bytes from serial port.
        'lngStatus = CommRead(intPortID, strData, 64)
        'If lngStatus > 0 Then
        '    ' Process data.
        'ElseIf lngStatus < 0 Then
        '    ' Handle error.
        'End If
    
        ' Reset modem control lines. (lignes suivantes mises en commentaires, pas utiles je pense)
        'lngStatus = CommSetLine(intPortID, LINE_RTS, False)
        'lngStatus = CommSetLine(intPortID, LINE_DTR, False)
    
        ' Close communications.
        Call CommClose(intPortID)
    
    End Sub

  14. #11
    anthonydu62

    Re : Sous Access déclencher une relais 5V USB

    Unfred merci pour ton aide.
    Là j'ai commandé le relais, livraison ... bien à voir sa vient de chine (même avec Amaz..)
    Dès que je le reçois, je te tiens au courant.
    Encore merci à vous pour votre aide.

  15. #12
    anthonydu62

    Re : Sous Access déclencher une relais 5V USB

    Bonjour à tous, bonjour Unfred.
    Donc voila j'ai reçu le relais.
    J'ai donc fait ce que tu as dis.

    Rien ne se passe, même pas de message d'erreur
    Dernière modification par anthonydu62 ; 20/11/2020 à 13h50.

  16. Publicité
  17. #13
    umfred

    Re : Sous Access déclencher une relais 5V USB

    du coup, c'est peut-être lié au problème que tu exposes dans la partie matériel/hard du forum (pb de pilote)

  18. #14
    anthonydu62

    Re : Sous Access déclencher une relais 5V USB

    Donc, voila j'ai résolu le problème d'installation du pilote. (il ne faut pas me demander comment j'ai fait, moi même je me pose encore des questions)
    Mais là rien ne se passe.
    J'ai même changé le numéro du port pour voir. Quand je lui mets un mauvais numéro, sa mets bien un message d'erreur.
    Quand je mets le on numéro, pas de message d'erreur.
    J'ai test pour voir un peut un truc, j'ai mis un "MsgBox" pour voir un peut le "signal" envoyé donc quand on mets:

    &HAA, il envoi en Msgbox: 170
    &HBB, il envoi en Msgbox: 187
    &HCC, il envoi en Msgbox: 204

    J'ai du mal à comprendre car a voir il faut lui envoyer comme signal : envoyer 0xAA, le relais continue à s’ouvrir;Envoyer 0xBB, le relais continue à se fermer;Envoyez 0xCC, le relais fonctionne pendant 1 seconde, puis arrêtez (Jog)
    Si je met: 0XAA la ça plente.
    Dernière modification par anthonydu62 ; 21/11/2020 à 12h34.

  19. #15
    anthonydu62

    Re : Sous Access déclencher une relais 5V USB

    Rebonjour.
    J'ai essayé de suivre cela:https://forums.futura-sciences.com/e...-dun-pc-2.html
    Ce qui me permettrait de tester le relais.

    Donc j'ai installé Lazarus, mais là je suis une quiche, je comprend pas grand chose!!!

    Donc j'ai besoin d'aide

  20. #16
    anthonydu62

    Re : Sous Access déclencher une relais 5V USB

    Donc, je n'avais pas tout lu, a la fin, Adipie, donne un petit "logiciel" (Merci à lui) qui m'a permis de tester le relais.
    Le relais fonctionne bien.
    Donc là c'est la commande dans Access qui à un problème mais le quel???

  21. #17
    anthonydu62

    Re : Sous Access déclencher une relais 5V USB

    Adipie (son programme) envoi: "LazSerial1.WriteData(#160 + #1 + #1 + #162)" pour activer le relais, c'est en langage Typon (si j'ai bien compris).
    Mais en VBA, c'est quoi?

  22. #18
    anthonydu62

    Re : Sous Access déclencher une relais 5V USB

    Bon, j'ai supprimer et réinstallé tout ce que Unfred a donné car j'ai fait des modif et je ne suis plus.
    Le problème maintenant c'est que j'ai une erreur:
    Nom : erreur.JPG
Affichages : 61
Taille : 16,1 Ko
    Qui a la solution?

  23. Publicité
  24. #19
    anthonydu62

    Re : Sous Access déclencher une relais 5V USB

    Bon, j'ai réussis à retirer l'erreur.
    Mais le relais ne s'active toujours pas.

  25. #20
    Ikhar84
    Animateur Informatique

    Re : Sous Access déclencher une relais 5V USB

    Bonjour,

    Access est indispensable ?
    À quoi au juste ?

    On peut avoir une vue plus globale de la problématique ?
    J'ai glissé Chef !

  26. #21
    anthonydu62

    Re : Sous Access déclencher une relais 5V USB

    Ikhar84 Bonjour,

    Pour te répondre, oui, Access est obligatoire, puisque c'est une base de donnée déjà utilisée pour la gestion de passage de personne cette base de donnée fonctionne très bien.

    A cette base, je veux ajouter un bouton qui me fait commandé un relais branché sur un port usb du PC.

    Le problème, c'est que j'ai installé le VBA fourni par Unfred, mais rien ne se passe, le relais ne réagit pas. (Relais que j'ai testé et fonctionne)
    Et il n'y a pas de message d'erreur.

  27. #22
    vande545

    Re : Sous Access déclencher une relais 5V USB

    Qu'est-ce que tu envoie au relai comme instructions, sous quelle forme ?
    Donne-nous aussi la doc du relai, partie relative à ses commandes.

  28. #23
    anthonydu62

    Re : Sous Access déclencher une relais 5V USB

    vande545 Bonjour,

    Toutes les informations sur le relais sont au Post #4
    Et les lignes de commande au Post #10 (donnée par Unfred)
    Dernière modification par anthonydu62 ; 22/11/2020 à 14h57.

  29. #24
    adipie

    Re : Sous Access déclencher une relais 5V USB

    Bonjour,
    N'étend pas familier avec Access je suppose qu'il faut créer du code VBA pour:
    Ouvrir un port COM disponible sur le PC.
    Dans l'évènement OnClick du bouton il faut écrire :
    0xAA sur ce port pour activer le relais.
    0xBB pour désactiver le relais.
    0xCC pour une impulsion de 1 seconde.

    Pour tester le relais, télécharge l'outil RealTerm et envoi 0xAA sur le port COM afin de vérifier que le relais se ferme.
    Quel spécialiste de Access peut nous donnner un exemple du code à créer coté Access ?

  30. Publicité
  31. #25
    vande545

    Re : Sous Access déclencher une relais 5V USB

    Quel spécialiste de Access peut nous donnner un exemple du code à créer coté Access ?
    J'ai écrit ça il y a environ 20 ans pour un port série :

  32. #26
    anthonydu62

    Re : Sous Access déclencher une relais 5V USB

    Bonsoir à vous.

    Adipie, je viens de télécharger "RealTerm", mais pour moi, c'est du chinois. Y a t'il un lien pour comprendre comment il fonctionne. Ou peut tu me dire comment le paramétrer?

    Vande545, je viens de tester ton lien, il m'annonce une erreur: Erreur d' exécution Objet requis '424' Objet requis. Sur la ligne : MSComm1.InBufferCount = 0

    En tout cas merci de vous investir pour moi.

  33. #27
    vande545

    Re : Sous Access déclencher une relais 5V USB

    Vande545, je viens de tester ton lien, il m'annonce une erreur: Erreur d' exécution Objet requis '424' Objet requis. Sur la ligne : MSComm1.InBufferCount = 0
    MSComm à l'époque, c'était un control indispensable, un driver en quelque sorte, pour communiquer avec le port série. C'était un objet à déposer sur la grille du userform.

    Je pense que chez toi il faut remplacer par intPortID mais je ne comprends pas que ça puisse marcher ainsi ?

  34. #28
    anthonydu62

    Re : Sous Access déclencher une relais 5V USB

    vande545 merci ton pour implication
    J'ai testé en remplaçant MSComm par intPortID
    L'erreur est la même.
    Snifff

  35. #29
    adipie

    Re : Sous Access déclencher une relais 5V USB

    Bonjour à tous,
    Ne pas tenir compte de mon Post #24.
    Je viens de constater que ce relais est commandé par :
    0xA0 0x1 0x1 0xA2 pour la fermeture et 0xA0 0x1 0x0 0xA1 pour l'ouverture.
    Il reste maintenant à trouver comment envoyer ces trames de Access vers un port COM virtuel du PC.
    Antonydu62, peux tu faire un test avec RealTerm pour vérifier que tu as le même relais ?
    Avec :
    Display sur Ascii
    Port Baud 9600
    Port ton port sur lequel est branché le relais.
    Validation par le bouton "Change"
    Send Tapper 0xA0 0x1 0x1 0xA2 dans la fenêtre puis le bouton send number, le relais doit se fermer.
    Dernière modification par adipie ; 23/11/2020 à 10h52.

  36. #30
    umfred

    Re : Sous Access déclencher une relais 5V USB

    pour ta compréhension quand on parle de 0xAA ça veut la valeur hexadécimale AA (0x indique qu'on parle d'une valeur hexadécimale); en VBA, on l'écrit &hAA, ce qui correspond à 170 en décimal
    la suite 160 +1 +1 +162 ça fonctionne pour le relais sélectionné par adipie et que ne se commande a priori pas comme le tiens (https://www.amazon.fr/dp/B075F6J6WL/...740131_TE_item)
    pour l'utilisation de realterm, dans l'onglet display, choisi Hex dans la liste "display as"; ensuite, va dans l'onglet "Port" choisi le numéro du port série, la vitesse (baud) à 9600, clic sur open; ensuite, va dans l'onglet send, tapes 160 (ou 0xAA), puis clic le bouton "send number" et ton relais devrait s'ouvrir

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Commande SQL sous ACCESS 2007
    Par jmduchesne dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 03/10/2011, 11h50
  2. Requête sous ACCESS 2003
    Par julau dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 04/06/2010, 14h49
  3. Impulsion 12v de 5sec, déclencher un relais pendant 2sec
    Par Yom85 dans le forum Électronique
    Réponses: 20
    Dernier message: 12/09/2009, 04h38
  4. Problème sous access Help Please
    Par smysted dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 23/12/2006, 20h16
  5. Ouvrir une application sous access ?
    Par smysted dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 15/04/2006, 19h03