Ban2020 1

TIA Portal concaténation

Pascaljt
Pascaljt
Modérateur
Automaticien habitué

24 messages
Inscrit le 11/09/2016

le 10/11/2017 à 20:49 Citer ce message

Bonsoir,
J'ai un problème de conversion de variables sur des tableaux. Je travaille sur un bloc fonction IO Link, la DB crée pour les requêtes de lecture / écriture un tableau octets. Le problème est que mes valeurs se lisent sur un mot. Par exemple pour lire un nombre de commutation d'électro distributeur, je lis montableau.lecture[0] = 01, montableau.lecture[1] = 3B soit 1 et 59 en décimal. Mais mon nombre de commutation est 013B soit 315 (13B). Comment puis je lire mes 2 octets concaténé en 1 mot pour lire 01 et 3B en 13B ?
Impossible de trouver la conversion et la seule fonction de concaténation qu'il y a travaille sur des chaînes de caractères.(Je suis sur un S7 1200 et TIA portal V14)

Quelqu'un a t-il une solution ?

Merci d'avance.
automationsense
automationsense
Modérateur
Automaticien vétéran

483 messages
Inscrit le 28/04/2016

le 10/11/2017 à 22:01 Citer ce message

Bonjour Pascaljt,

Quel est l'adressage en absolu de tes deux octets ( ex : DBx.DBBx) ?
Cordialement,
Image

" Travailles pour tes propres rêves sinon quelqu'un d'autres t'embauchera pour réaliser les siens "
Pascaljt
Pascaljt
Modérateur
Automaticien habitué

24 messages
Inscrit le 11/09/2016

le 10/11/2017 à 23:18 Citer ce message

Bonjour automationsense,
La DB a été créée automatiquement avec la fonction IO LINK CALL mais je n'ai plus le détail en tête. je regarde lundi matin au travail et je te redis ça. C'est frustrant de bloquer là dessus, j'arrive à lire tous les diagnostiques et je bloque là, du coup je ne peux pas afficher les valeurs sur mon écran et mes messages d'erreurs.
Merci de ton aide :-)
automationsense
automationsense
Modérateur
Automaticien vétéran

483 messages
Inscrit le 28/04/2016

le 10/11/2017 à 23:42 Citer ce message

Sisi en effet c'est frustrant comme pas possible les petits détails qui bloquent dans l'avancée.

En effet si tu as la première valeur dans un byte et la deuxième dans un autre byte qui est consécutif au premier, tu peux récupérer la valeur globale en lisant le mot.

Exemple : 1ere valeur DB1.DBB1 = 01 et 2eme valeur DB1.DBB2 = 3B ; si tu pointe à l'adresse DB1.DBW1, tu obtiens 013B
Cordialement,
Image

" Travailles pour tes propres rêves sinon quelqu'un d'autres t'embauchera pour réaliser les siens "
Pascaljt
Pascaljt
Modérateur
Automaticien habitué

24 messages
Inscrit le 11/09/2016

le 17/11/2017 à 19:02 Citer ce message

Bonjour,
Cette semaine c'était Profinet mais je garde cette réponse, je n'oublie pas. Je devrais me remettre sur mon problème IO Link mercredi prochain. Je te tiens au courant.
automationsense
automationsense
Modérateur
Automaticien vétéran

483 messages
Inscrit le 28/04/2016

le 23/11/2017 à 21:01 Citer ce message

Ok.Bon courage
Cordialement,
Image

" Travailles pour tes propres rêves sinon quelqu'un d'autres t'embauchera pour réaliser les siens "
Pascaljt
Pascaljt
Modérateur
Automaticien habitué

24 messages
Inscrit le 11/09/2016

le 26/11/2017 à 01:41 Citer ce message

Hello,
ça marche !!! Pour l'instant je ne l'ai fait que sur PLC SIM mais je retrouve bien mon mot donc c'est cool. J'ai juste galéré pour retrouver les adresses absolues de la DB parce que si le bloc est optimisé ça ne fonctionne pas. Demain je prépare mon programme ( oui je sais c'est dimanche) et mardi je me fais le test en réel.

Un énorme merci pour ton aide, je crois que je n'aurais pas pu trouver ça simplement (peut être en lisant le manuel de 16000 pages du TIA (si si, 16000 pages !)).
Merci merci.
Pascal, un technicien heureux.

Répondre à ce message

7 choses à savoir si Tu débutes en automatisme...

7 choses que tu dois savoir si tu debutes en automatismeCliquez ici pour télécharger le guide PDF

Superv 3