[RESOLU][S7-1200] Génération d'un code barre

Forum traitant des automates industriels de marque Siemens.
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 864
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes
Contact :

Re: [S7-1200] Génération d'un code barre

Message par djé »

Effectivement sur les Afficheur Basic, il n'y a pas de script possible.
Il faudrait simplement que tu connaisses la longueur de ta chaine numérique pour pouvoir l'extraire ensuite avec l'instruction RIGHT.
Pour connaitre la longueur de la valeur numérique dedépart (DINT soit au maximum la valeur 2147483647):
tu boucles avec un compteur (commence à 9 ) en divisant la valeur numérique en partant de 10^compteur (= 10^9):
si le résultat (entier) est =0 c'est que que le rang (compteur) est trop haut, tu enlèves 1 au compteur et ainsi de suite jusqu' à obtenir un entier positif. A ce moment le compteur (+ 1) est égal au nombre de caractère. :roll:

Ex: 245846 lorsque tu le divises par 10^5 tu obtiens 2 donc il y a 5+1=6 caractères
Modifié en dernier par djé le 13 mars 2019, 05:49, modifié 2 fois.
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Avatar du membre
Brebiou
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1013
Enregistré le : 21 oct. 2015, 08:38

Re: [S7-1200] Génération d'un code barre

Message par Brebiou »

Pas bête ta technique djé, je la garde sous le coude

Après avoir galéré avec les bloc FIND/REPLACE/DELETE, j'ai fini par faire une petite fonction qui extrait chaque caractère de la chaine, qui teste si le caractère contient un chiffre.
Dans la positive, concaténation dans une chaine et boucle sur les suivants.

Ensuite je met ce string au format Code 39 et j'affiche
Le KTP, du coup, met à disposition un code barre exploitable.
code_barre.png
Deux douchette sur les trois utilisés sur site fonctionne, je pense que celle qui ne capte pas a un faisceau trop fin.

Merci à tous pour vos contributions.
Répondre