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

Python Discussion :

Actualisation variable de sortie impossible


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2022
    Messages : 4
    Par défaut Actualisation variable de sortie impossible
    Bonjour,

    Je débute en Python. Quelque chose doit m'échapper. Je travaille sur Visual studio 2022.

    Ma variable de sortie ne se met pas à jour et je ne comprend pas pourquoi.
    Il s'agit d'un bout de programme pour piloter un servomoteur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          if    motor_on= Flase and alarm=False:
                         outputdata[1]= 2  # cela revient à démarrer le servomoteur   (ok)
          elif  motor_on==True and motor_ref==False and alarm==False:
                         outputdata[1]= 18 #cela revient à faire un référencement 0 du servomoteur
          else: print("Error")
    Le blocage se situe sur la ligne 4, le servomoteur ne réagit pas à cette ligne. il est censé bouger et rien ne se passe.

    En vous remerciant d'avance de votre aide

    Alex

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par Alex2022 Voir le message
    Le blocage se situe sur la ligne 4, le servomoteur ne réagit pas à cette ligne. il est censé bouger et rien ne se passe.
    Côté Python, on ne peut que s'assurer que la ligne est bien exécutée et que le tableau est mis à jour avec un "print". Et si c'est correct, peut être que le moteur n'est pas alimenté.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Bonjour,

    y a déjà des trucs qui vont pas en ligne 1, avec Flase et non False et l'emploi du signe d'assignation = au lieu de ==.

    SVP, mettez votre code entre balises [CODE] en rééditant votre premier message. Ca rendra votre bloc de code plus clair parce que là...

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Que donne ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if not motor_on and not alarm:
        outputdata[1] = 2 # cela revient à démarrer le servomoteur (ok)
    elif motor_on and not motor_ref and not alarm:
        outputdata[1] = 18 #cela revient à faire un référencement 0 du servomoteur
    else:
        print(f"Error :")
        for var in (motor_on, alarm, motor_ref):
            print(var)

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2022
    Messages : 4
    Par défaut
    Bonjour,

    Merci pour vos réponses.
    Voici la partie du code réactualisée sans les fautes de frappe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     if motor_on== False and alarm==False:
                     outputdata[1]= 2 # cela revient à démarrer le servomoteur (ok)
     if motor_on==True and motor_ref==False and alarm==False:
                     outputdata[1]= 18 #cela revient à faire un référencement 0 du servomoteur (not ok)
    Le moteur se met bien en route mais la valeur 18 n'est pas transmise à l'octet outputdata[1].

    @ Arioch : l'operateur not n'est pas reconnu dans VS.


    Merci à vous.

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Alex2022 Voir le message
    Je débute en Python. Je travaille sur Visual studio 2022.
    ...
    l'operateur not n'est pas reconnu dans VS.
    Et si tu travaillais sur Python juste pour voir si Python sait lire du python mieux que ne le fait VS???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2022
    Messages : 4
    Par défaut
    Lorsque j'arrête l'exécution puis je la redémarre, la ligne en question s'exécute correctement et le moteur bouge!!

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Citation Envoyé par Alex2022 Voir le message
    Le moteur se met bien en route mais la valeur 18 n'est pas transmise à l'octet outputdata[1]
    L'instruction outputdata[1] = 18 assigne 18 en position 1 d'outputdata.
    S'il y avait un bug de ce genre côté Python, ça se saurait...

    Et si vous aviez pris le temps de vous familiariser avec le langage avant de vous lancer dans de petits projets, vous seriez bien plus confiant sur ce qu'il fait ou pas.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2022
    Messages : 4
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    L'instruction outputdata[1] = 18 assigne 18 en position 1 d'outputdata.
    S'il y avait un bug de ce genre côté Python, ça se saurait...

    Et si vous aviez pris le temps de vous familiariser avec le langage avant de vous lancer dans de petits projets, vous seriez bien plus confiant sur ce qu'il fait ou pas.

    - W


    Le même programme marche en c#...

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/10/2007, 17h13
  2. Transmettre une variable depuis php impossible
    Par omdafer dans le forum Flash
    Réponses: 4
    Dernier message: 28/08/2007, 18h45
  3. Variable de sortie de la fonction Imcontour
    Par emilieGre dans le forum Images
    Réponses: 3
    Dernier message: 18/07/2007, 12h49
  4. Problème de variables entrée/sortie de fonctions
    Par cococococococo dans le forum Interfaces Graphiques
    Réponses: 11
    Dernier message: 13/06/2007, 12h22
  5. Réponses: 1
    Dernier message: 02/06/2006, 21h18

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