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

Forum traitant des automates industriels de marque Siemens.
Avatar de l’utilisateur
Brebiou
Dieu du process
Dieu du process
Messages : 929
Inscription : 21 oct. 2015, 08:38

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

Message par Brebiou »

Bonjour à tous,

On m'a demandé de généré un code barre d'une sortie compteur, afin que les opérateurs puisse scanner directement l'écran du KTP plutôt que d'écrire sur un post it et de traverser l'atelier.

Sur le fond, rien de bien compliqué, j'ai trouvé ceci sur le site de Siemens, mais manque de pot, les librairies sont pour TIA v15 et j'utilise TIA v13.
J'ai tout de même récupéré la police d'écriture.

Pour générer un code barre en Code 39, il faut mettre la valeur souhaité entre deux étoiles, genre *BREBIOU*. C'est la que je cale:
string_pb.PNG
Le bloc S_CONV m'ajoute des espace en début de chaîne, ce qui correspond avec ma valeur à la longueur du DINT en entier.
A l'affichage, c'est moins jojo:
20190311_170722.jpg
J'ai essayé le bloc VAL_STRG en premier puisqu'il est fait pour ça mais j'ai le même constat.

Je ne vois pas comment "effacer" ces espaces correctement, il y a bien le bloc DELETE, mais quand je passerai de 9999 à 10 000 ça risque d'être moins drôle pour les opérateurs de déclarer 0 pièces au lieu de 10 000.

Merci d'avance pour vos lumières.
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7037
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

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

Message par itasoft »

slts,
j'ai pas tout compris mais ya pas une instruction qui remplacerait ces espaces par des 0 et le caractère "+" par un 0 ??
Automaticien privé (de tout)
itasoft@free.fr
Avatar de l’utilisateur
ProfnovA
Créateur de langage
Créateur de langage
Messages : 525
Inscription : 21 oct. 2015, 08:21

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

Message par ProfnovA »

Marche pas bien les douchettes sur les écrans, si?

Comment sont déclarées tes chaines de caractère?
Avatar de l’utilisateur
Brebiou
Dieu du process
Dieu du process
Messages : 929
Inscription : 21 oct. 2015, 08:38

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

Message par Brebiou »

itasoft a écrit : 11 mars 2019, 21:13 slts,
j'ai pas tout compris mais ya pas une instruction qui remplacerait ces espaces par des 0 et le caractère "+" par un 0 ??
A tenter.
Je ne sais pas comment va réagir le système qui reçoit le code avec autant de zéro, c'est un logiciel qui a au bas mot 20 ans.
ProfnovA a écrit : 12 mars 2019, 08:30 Marche pas bien les douchettes sur les écrans, si?

Comment sont déclarées tes chaines de caractère?
Tant que le contraste entre le blanc du fond et le noir du code est bien marqué, pas de souci apparent (ça dépend quand même beaucoup de la résolution de la dalle)

Voici la déclaration:
declaration.PNG
Avatar de l’utilisateur
djé
Dieu du process
Dieu du process
Messages : 776
Inscription : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes

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

Message par djé »

Salut,

Ne peux tu pas faire le traitement de la variable directement dans l'afficheur?
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 de l’utilisateur
Brebiou
Dieu du process
Dieu du process
Messages : 929
Inscription : 21 oct. 2015, 08:38

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

Message par Brebiou »

djé a écrit : 12 mars 2019, 09:41 Salut,

Ne peux tu pas faire le traitement de la variable directement dans l'afficheur?
Je t'avoue que je n'ai pas forcement réfléchi à cette option. Je ne sais pas si c'est possible sur un KTP700 Basic.
Avatar de l’utilisateur
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1903
Inscription : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

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

Message par JC87 »

Sur les basic il me semble que tu ne peut pas faire de script donc ça me parait compromis de ce coté. Après je ne maitrise pas assez TIA pour t'aider sur la partie automate, je ne pensais même pas possible de lire un code barre sur un panel. Tu a essayé de faire un essai de lecture déjà ? parce que un panel basic ça n'a pas une résolution extraordinaire.

JC
"On veut faire du zéro défaut mais on a zéro bonhomme et zéro budget, et bien à la fin on a zéro résultat..."
Avatar de l’utilisateur
ProfnovA
Créateur de langage
Créateur de langage
Messages : 525
Inscription : 21 oct. 2015, 08:21

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

Message par ProfnovA »

La seule solution que je voie a ton problème est de faire une boucle en commençant par la fin après ton S_CONV pour supprimer le caractère espace
Avatar de l’utilisateur
Brebiou
Dieu du process
Dieu du process
Messages : 929
Inscription : 21 oct. 2015, 08:38

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

Message par Brebiou »

JC87 a écrit : 12 mars 2019, 11:33 Sur les basic il me semble que tu ne peut pas faire de script donc ça me parait compromis de ce coté. Après je ne maitrise pas assez TIA pour t'aider sur la partie automate, je ne pensais même pas possible de lire un code barre sur un panel. Tu a essayé de faire un essai de lecture déjà ? parce que un panel basic ça n'a pas une résolution extraordinaire.

JC
J'ai testé avec une application avec mon smartphone en premier lieu sur le KTP
Ensuite j'ai pris une douchette en prod pour tester sur mon écran d'ordi, parce qu'elle n'est pas sans fil et que le KTP est loin.
Tout était bon.

Je devrais recevoir une douchette sans fil d'ici peu.
Avatar de l’utilisateur
Brebiou
Dieu du process
Dieu du process
Messages : 929
Inscription : 21 oct. 2015, 08:38

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

Message par Brebiou »

ProfnovA a écrit : 12 mars 2019, 11:58 La seule solution que je voie a ton problème est de faire une boucle en commençant par la fin après ton S_CONV pour supprimer le caractère espace
Je vais tenter cela, je viens d'essayer le DELETE, mais j'ai comme l'impression qu'il supprime le contenu des deux premiers bytes de mon string, a savoir la longueur totale et la longueur actuelle de ce dernier.
Répondre