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

Automation Discussion :

Test autour du zéro sur S7 V5.5


Sujet :

Automation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 98
    Par défaut Test autour du zéro sur S7 V5.5
    Bonjour,
    Je cherche à programmer un test pour valider si une valeur PEW est comprise entre deux valeurs distinctes.
    Ces deux valeurs sont de part et d'autre du zéro. Soit - 100 et +100 (valeur décimale du process).
    Actuellement mon test ne fonctionne pas correctement car il est réalisé par deux comparaisons successives sur DINT.
    Valeur > "limite haute" et Valeur < "limite basse".
    Lorsque la valeur process oscille autour de zéro (-1, 0, 1) la valeur DINT passe de 65535 (-1) à 1 (1). Là est mon problème !!!
    car si la valeur est égale à 65535 (-1) elle est bien > à la limite haute et elle est bien inférieure à la limite basse. Sauf si lors du temps de traitement(tps cycle) du programme cette valeur est passée de 65535(-1) à 0 (0) !
    Je vous joint une image du test pour étayer mon explication qui j’admets n'est pas facile à comprendre.
    Merci pour vos lumières
    Images attachées Images attachées  

  2. #2
    Expert confirmé

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Par défaut
    Note déjà que ton test est faux : tu fais un ET alors qu'il faut un OU (les deux compares en parallèle), tu ne pouras jamais à la fois être trop bas et trop haut.

    C'est étrange que PEW soit considéré comme un Word(non signé) et on pas un Int(signé)
    Mais comme tu compares avec un DINT il se gourre sans doute dans la conversion.

    Essaye de la faire en list (au moins là on sait ce qu'il fait)
    (bascule en mode list, colle le code ci-dessous et rebascule en mode contact pour que le reste de ton code reste en contact)

    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
    UN  M95.5
    U(
    O(
    L   PEW754
    ITD  // Conversion entier simple, entier long
    L   L#16580
    <D
    )
    O(
    L   PEW754
    ITD
    L   L#65072
    >D
    )
    )
    S   M95.5
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 98
    Par défaut
    Bonjour Nono40,

    Mon test en ET me permet de valider si mon signal non conforme est supérieur à 25000 ET s'il est supérieur, est-il inférieur à 65000. Si oui alors mon signal est non conforme.
    Mais tu as raison le test en OU sur l'intervalle conforme avec une sortie NOT va me permettre de tester mon signal conforme.
    J'ai joint deux Gif pour documenter.

    Pour le PEW c'est bien un INT. Pourquoi j'ai fais mon test en DINT ? je regarde cela et je te répond
    Je teste aussi ton prog en List. C'est pas mon langage de prédilection. Je suis électricien formé sur le tas. le Cont me parle plus.

    A+
    Images attachées Images attachées   

  4. #4
    Expert confirmé

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Par défaut
    Ha, autant pour moi, je pensais que le bir m90.5 était un défaut et non pas un conforme. Alors effectivement c'est un ET qu'il fallait si le bit final est conforme.

    Tu ne pourras pas faire un test INT avec une valeur >=32768 car en INT 32768 c'est une valeur négative.

    Si j'ai bien compris tu as une valeur conrome entre -AAA et + BBB ? Cette valeur est au format INT ?
    PEW renvoi bien un INT mais en mise au point ou dans une table d'animation Siemens met tout au word Word non signé par défaut.

    Je pense que la valeur passe bien en négatif, essaye de mettre des compaison en >i et <I en mettant les valeurs positives et négatives voulues.
    Dans la mise au point change le format par défaut pour passer en Décimal.
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 98
    Par défaut
    Pourquoi faire simple quand on peut faire compliqué !
    En finalité j'ai bien un test en OU sur le signal non conforme au format INT.
    J'ai bien un signal négatif testé par rapport à un décimal négatif.
    Le test fonctionne correctement
    Sans un petit peu de recul, parfois je me lance dans des lignes complexes !
    La bonne compréhension des formats est toujours une difficulté pour moi, mais je me soigne

    Merci pour ton aide Nono40
    Images attachées Images attachées  

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

Discussions similaires

  1. [MySQL] Test de performance général sur une application PHP
    Par Invité dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/06/2006, 17h36
  2. test si on est sur un fichier ou un repertoire
    Par Krispy dans le forum Langage
    Réponses: 2
    Dernier message: 03/04/2006, 11h06
  3. Test si imprimante installée sur PC
    Par chourmo dans le forum Langage
    Réponses: 2
    Dernier message: 21/03/2006, 11h28
  4. Test des liens vide sur une base de données
    Par FLANQUART Marie dans le forum ASP
    Réponses: 1
    Dernier message: 10/11/2005, 14h35
  5. [CR8.5] Problème de division par zéro sur formule
    Par franck.cvitrans dans le forum Formules
    Réponses: 3
    Dernier message: 10/06/2004, 13h41

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