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 :

STEP 7 : adressage indirect sur une plage de données


Sujet :

Automation

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Automatologue
    Inscrit en
    Mai 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Automatologue

    Informations forums :
    Inscription : Mai 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut STEP 7 : adressage indirect sur une plage de données
    Bonjour,

    Dans la même veine

    qu'ici : http://www.developpez.net/forums/d63...s/#post3713990

    j'aimerais savoir s'il est possible de faire de l'adressage indirect sur une plage de donnée.

    Concrètement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          CALL  "BLKMOV"
           SRCBLK :=P#DBX 24.0 BYTE 10
           RET_VAL:=#poub
           DSTBLK :=#Reception
    le DBX 24.0 j'aurais aimé le rendre paramétrable dynamiquement sous cette forme P#DBX [MD2] BYTE 10 mais le compiler refuse

    Y aurait-il un moyen détourné d'y arriver ?

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Voila un petit exemple, à toi de l'adapter à tes besoins (exemple repris d'un TIA):

    // Création du paramètre Any source:
    // ~~~~~~~~~~~~~~~~~~~~~
    LAR1 P##Any_src // Temporaire du fc ou fb

    L 16#1002 // xx02 pour type byte, faire attention au P#x.0 (dépend de l'adresse du Temp)
    T LW [ AR1 , P#0.0 ]

    L 10 // Nombre de byte à transférer (Int)
    T LW [ AR1 , P#2.0 ]

    L 2 // Numéro du db ou sont stockées les données à transférer (Int)
    T LW [ AR1 , P#4.0 ]

    L P#DBX0.0
    L 24 // Adresse du premier byte à transférer (Int)
    SLD 3
    +D
    T LD [ AR1 , P#6.0 ] // Any_src = P#DB2.DBX24.0 BYTE 10

    // Transfert:
    // ~~~~~~~~~~
    CALL BLKMOV
    blk_type:=Any
    SRCBLK :=#Any_src
    RET_VAL :=#Poubelle
    DSTBLK :=P#DB22.DBX24.0 BYTE 10

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Automatologue
    Inscrit en
    Mai 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Automatologue

    Informations forums :
    Inscription : Mai 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour la réponse, ça rejoint ce que j'ai pu lire sur de la documentation.

    C'est tout de même assez complexe, Siemens pourrait un peu travailler la convivialité de son environnement de programmation

  4. #4
    Expert éminent sénior

    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 : 56
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Avec le langage SCL c'est beaucoup plus simple d'indexer.
    C'est une option sous Step V5 mais c'est maintenant en standard sous TIA Portal.
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Août 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Août 2016
    Messages : 29
    Points : 22
    Points
    22
    Par défaut Indexe dans db
    Citation Envoyé par Nono40 Voir le message
    Avec le langage SCL c'est beaucoup plus simple d'indexer.
    C'est une option sous Step V5 mais c'est maintenant en standard sous TIA Portal.
    Bonjour auriez vous une idée pour mon projet, je m'explique :
    J'ai un DB tout en bool et j'aimerais lire à certaine adrresse venant d'une variable dynamic si le "bool" =0/1
    en ce moment j'ai ceci :
    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
    L     #DB_Number //parametre INT
    T     #DB_NO_TEMP //int temp
    L     P##ADDRESS_BIT // pointeur
    LAR1
    L D [ AR1 , P#2.0 ]        // charger ligne DB
    
    LAR1
    OPN DB [ #DB_NO_TEMP]      // ouvrir DB
    
    A DBX [ AR1 , P#0.0 ]      // get bit value
    
    
    
     =     #DB_BIT              // output valeur
    
    
    BE
    Cela fonctionne mais je vois pas comment faire bouger mon adresse input noter
    par ex : P#DB103.DBX1.3

    j'aimerai la faire bougée comme :
    p#DB103.DBX1.2
    p#DB103.DBX1.5
    ....

    Merci

  6. #6
    Membre régulier
    Homme Profil pro
    Automaticien
    Inscrit en
    Septembre 2015
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2015
    Messages : 86
    Points : 108
    Points
    108
    Par défaut
    Salut,

    tu ne peux pas écrire p#DB103.DBX1.2
    il faut modifier le pointeur qui pour ton cas est dans le registre AR1

  7. #7
    Membre à l'essai
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Août 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Août 2016
    Messages : 29
    Points : 22
    Points
    22
    Par défaut problème trouver
    Citation Envoyé par revok Voir le message
    Salut,

    tu ne peux pas écrire p#DB103.DBX1.2
    il faut modifier le pointeur qui pour ton cas est dans le registre AR1
    bonjour j'ai trouver la solution

    au départ je devais écrire des valeurs comme p#20.3 , P#20.6 ...
    J'ai réalisé un tableau avec le bit de poids fort et faible , pour avoir un adressage dynamique ...


    merci

Discussions similaires

  1. generaliser une macro sur une plage de données
    Par Eausport dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/07/2011, 10h49
  2. Decode sur une plage de données
    Par gubule dans le forum SQL
    Réponses: 2
    Dernier message: 25/01/2011, 10h44
  3. Condition sur une plage de donnes pas tjs renseignée
    Par stof dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/06/2010, 16h13
  4. Réponses: 1
    Dernier message: 23/09/2009, 03h23
  5. centrer l'affichage sur une plage de données
    Par lapa-jh dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/06/2007, 05h29

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