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 :

[PL7] équivalent de SCMWR dans PL7 Pro ?


Sujet :

Automation

  1. #1
    Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Mai 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Mai 2011
    Messages : 68
    Points : 64
    Points
    64
    Par défaut [PL7] équivalent de SCMWR dans PL7 Pro ?
    Bonjour,

    je remplace un vieux TSX 7 par un TSX 57 sous PL7 Pro,

    je dois envoyer une trame ASCII par liaison série à une machine dont je n'ai pas la doc,

    Dans le programme existant sous PL7_3, un bloc SCMWR est utilisé avec les paramètres suivants:
    COM: 1
    Format: "SN:0" I20 "000,00" I20 "00" %0d%
    P0: W870
    P1: W871

    J'ai bien déchiffré le fonctionnement du bloc SCMWR, mais ma question est:
    Quelle fonction utiliser en remplacement sous PL7 Pro?

    (J'ai pensé au WRITE_VAR mais je ne vois pas trop comment le mettre en œuvre dans ce cas de figure.)

    Merci et bonne journée,
    Mikael

  2. #2
    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
    Bonsoir,

    Et que fait le bloc SCMWR ?
    Ca ne me dit rien du tout comme fonction sur un TSX47.

    Si c'est des lecture/écriture de chaine de caractère c'est :
    INPUT_CHAR (réception)
    PRINT_CHAR (Emission)
    IN_OUT_CHAR (Emission/réception)
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  3. #3
    Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Mai 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Mai 2011
    Messages : 68
    Points : 64
    Points
    64
    Par défaut
    Bonjour et merci de ton aide,

    Le bloc SCMWR est un OFB optionnel de PL7-3. Il permet l’émission et et la réception de chaines de caractères par liaison série.
    Son intérêt est qu'il sait convertir une valeur numérique contenue dans un MW en chaine ASCII et également de concaténer plusieurs chaines.

    Dans mon cas, deux consignes (W870 et W871) sont mises en forme et incluses dans la chaine de caractères transmise à la machine.


    J'ai regardé les fonctions que tu me cite, sauf erreur de ma part je ne peux pas y inclure une variable.

  4. #4
    Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Mai 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Mai 2011
    Messages : 68
    Points : 64
    Points
    64
    Par défaut
    Je crois que je n'ai pas la choix, je vais me faire mon DFB.

    J'ai fais le tour des fonctions dont j'ai besoin:

    INT_TO_STRING : convertit ma variable en chaine sur 7 caractères
    RIGHT : extraits les n derniers caractères d'une chaine
    CONCAT : Concatène 2 chaines
    PRINT_CHAR : Envoi de la chaine


    Je verrai ça la semaine prochaine...
    Bon week-end!

  5. #5
    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
    Citation Envoyé par LePingouin Voir le message
    J'ai regardé les fonctions que tu me cite, sauf erreur de ma part je ne peux pas y inclure une variable.
    Effectivement, c'est l'envoi d'une chaine simple déjà formatée.

    Je ne suis pas sûr que l'équivalent existe, il faudra effectivement le faire toi-même.

    @+
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  6. #6
    Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Mai 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Mai 2011
    Messages : 68
    Points : 64
    Points
    64
    Par défaut
    Bon ça marche, du moins j'arrive à générer ma chaine de caractères et à l'envoyer sur la TSXSCP111, mais j'ai pas ce qu'il faut sous la main pour contrôler que j'envoie bien ce qu'il faut. C'est un détail, je verrai ça plus tard.

    Voici mon code, si ça peut être utile à quelqu'un:


    Je dois envoyer une trame sous ce format:
    SN:AAAAAA,AABBBB$R

    'SN:' constante
    'AAAAAA,AA' Consigne en Volt
    'BBBB' Consigne en mA/100
    '$R' Retour Chariot

    %MW1 est une consigne en kV
    %MW2 est une consigne en mA

    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
    (* Définition des chaines constantes *)
    %MB80:3 := 'SN:'
    %MB84:6 := '000,00'
    %MB90:3 := '00$R'		
    
    (* Transformer un entier en chaine *)
    %MB100:7:=INT_TO_STRING(%MW1);
    %MB110:7:=INT_TO_STRING(%MW2);
    
    (* Extraire les x derniers chiffres de la chaine *)
    %MB150:3:=RIGHT(%MB100:7,3); (* 3 caractères de %MW1 *)
    %MB160:2:=RIGHT(%MB110:7,2); (* 2 caractères de %MW2 *)
    
    (* Concaténer les 5 parties de la chaine finale *)
    %MB500:6:=CONCAT(%MB80:3,%MB150:3);
    %MB500:12:=CONCAT(%MB500:6,%MB84:6);
    %MB500:14:=CONCAT(%MB500:12,%MB160:2);
    %MB500:17:=CONCAT(%MB500:14,%MB90:3);
    
    (* Envoi de la chaine sur le port com *)
    IF Dde_envoi THEN
    PRINT_CHAR(ADR#{1.2}0.1.SYS,%MB500:17,%MW10:4);
    END_IF;


    Merci encore!

  7. #7
    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
    Si c'est une SCP111 c'est du RS232; donc tu peux utiliser un cordon croisé et mettre un autre PC au bout avec HyperTerminal.
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  8. #8
    Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Mai 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Mai 2011
    Messages : 68
    Points : 64
    Points
    64
    Par défaut
    Oui bien sure, c'est simplement qu'au bout de la SCP111 dont je me sers pour les essais il y a un connecteur DB25 mâle que je ne veux pas couper et je n'ai pas le bon connecteur à mettre au bout. Quand j'aurai 10 minutes je me fabriquerai un adaptateur...

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

Discussions similaires

  1. [AS][LOGICIEL] AppleScript dans FileMaker Pro 7
    Par kOrt3x dans le forum AppleScript
    Réponses: 2
    Dernier message: 09/04/2009, 03h11
  2. [VirtualBox] configurer réseau Ubuntu 8.04(invité) dans Vista pro
    Par marveljojo75 dans le forum Virtualisation
    Réponses: 2
    Dernier message: 02/09/2008, 12h11
  3. Réponses: 3
    Dernier message: 21/02/2008, 22h41
  4. Équivalent de ValueChanged dans DatagridView
    Par roshy dans le forum VB.NET
    Réponses: 1
    Dernier message: 08/11/2007, 20h40
  5. Réponses: 6
    Dernier message: 13/11/2006, 13h48

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