M221 et hmi5st lire et comparé un code ascii aléatoire

Forum traitant des automates industriels de marque Schneider - Telemecanique
Répondre
Fubukichan
Apprend le binaire
Apprend le binaire
Messages : 7
Enregistré le : 03 sept. 2019, 11:06

M221 et hmi5st lire et comparé un code ascii aléatoire

Message par Fubukichan »

Bonjour,
J'essaye depuis un petit moment de crée un code en ascii sous cette forme: Valeur1/Valeur2 (de A à Z ou de 0 à 9 pour chaque valeurs) se qui donne par exemple: A9.

J'essaye de généré se code depuis la date et l'heure au moment ou mon procès est finit, pour éviter que l'opérateur truande :twisted: en lui demandant de validé la fin du cycle en rentrant se code. Donc il faut donc comparé le code rentré par l'opérateur sur l'hmi (hmistu855w) et celui généré par l'automate (un tm221ce40t) et la arrive mon problème, je ne sais pas comment le comparé et encore moins le générer en lui donnant une limite :?
donc si il y a possibilité que quelqu’un m'aide il me sauverais la vie :D
“Deviens ce que tu es” Nietzsche
“La raison est la seule chose qui nous rend hommes” Descarte
“La volonté est tellement libre de sa nature qu’elle ne peut jamais être contrainte” Descarte
Fubukichan
Apprend le binaire
Apprend le binaire
Messages : 7
Enregistré le : 03 sept. 2019, 11:06

Re: M221 et hmi5st lire et comparé un code ascii aléatoire

Message par Fubukichan »

J'ai trouvé je vous donne la solution quand j'aurais finit de le programmer merci quand même de votre aide c:
“Deviens ce que tu es” Nietzsche
“La raison est la seule chose qui nous rend hommes” Descarte
“La volonté est tellement libre de sa nature qu’elle ne peut jamais être contrainte” Descarte
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7804
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: M221 et hmi5st lire et comparé un code ascii aléatoire

Message par itasoft »

slts,
pourquoi le traiter en ASCII ???

Après ce que je comprends, l’opérateur doit entrer dans le mot ex :%MW1 une valeur décimale identique à la valeur résultante
de la fin du procès

(*Mémorisation de la valeur résultante en fin du process à comparer avec %MW1 *)
%MW0 :=%SW51
Automaticien privé (de tout)
itasoft@free.fr
Fubukichan
Apprend le binaire
Apprend le binaire
Messages : 7
Enregistré le : 03 sept. 2019, 11:06

Re: M221 et hmi5st lire et comparé un code ascii aléatoire

Message par Fubukichan »

Car le code cycle demander par l'opérateur et générer à base de l'heure et de la date ainsi que de la référence du produit(qui peut êtres alpha/numérique, j'ai oublier de le préciser celui-ci my bad :/).

Je dois remontée cette "clef de fin cycle" dans une chaîne sur l'écran pour que l'opérateur rentre la même chose pour validé l’exécution du cycle et que ce cycle sois lier avec mon article et enregistré dans une journalisation de donnée.
J'ai réussi à comparé la valeur rentrée et celle générée en prenant la valeur binaire des deux chaines grâce à ton conseil mais j'arrive pas à afficher le bon "code cycle" dans l'encadré de l'écran qui doit être de nature alpha numérique et posséder deux valeur :cry: .
“Deviens ce que tu es” Nietzsche
“La raison est la seule chose qui nous rend hommes” Descarte
“La volonté est tellement libre de sa nature qu’elle ne peut jamais être contrainte” Descarte
Avatar du membre
pfe
Code sa première boucle
Code sa première boucle
Messages : 13
Enregistré le : 14 nov. 2015, 10:31

Re: M221 et hmi5st lire et comparé un code ascii aléatoire

Message par pfe »

c'est pas simple de connaitre tout le problème, il faut en dire plus sur tes code produit et autres...
et il le connait comment ce code d'abord ?

mais à la base, tu peux essayer ça, juste pour générer ton code alpha-num aléatoire :

Code : Tout sélectionner

if Fin_De_Cycle then
    graine_1 := shr(%sw50,4) or %sw51;(* heure et seconde -> 1 int aleatoires *)
    graine_2 := shr(%sw50,8) or %sw51;(* heure et seconde -> 1 second int aleatoire différent *)
    code_1 := MOD (IN1 := graine_1, IN2 := 25) + 1; (* modulo 25 +1  : A..Z *)
    code_2 := MOD (IN1 := graine_1, IN2 := 9); (* modulo 9 : 0..9 *)
    
    (* brutalement en ascii dans le bon sens : 1er caract=A-Z poids faible ; 2nd caract=0-9 poids fort ; *)
    (* code doit être localisé en %mw si le superviseur doit afficher une String de 2 caracteres *)
    code := code_1 + 16#40 OR shl(code_2+ 16#30, 8); 
end_if;

(* code_ecrit doit être localisé en %mw , le superviseur doit écrire une String de 2 caracteres *)
OK := code = code_ecrit
Fubukichan
Apprend le binaire
Apprend le binaire
Messages : 7
Enregistré le : 03 sept. 2019, 11:06

Re: M221 et hmi5st lire et comparé un code ascii aléatoire

Message par Fubukichan »

J'utilise somachine, et le code article est un vulgaire numéros de série ou un code barre, je ne peux pas mettre de douchette donc l'utilisateur le rentre à la main, actuellement je génère le code cette façons vue que la date et l'heure son "unique" je me suis dit que mon code le serrais aussi, j'ai réussit à dissuader mon client de laisser tomber le coter alphanumérique pour le code cycle:
code cycle.PNG
Je les compare actuellement de cette façons:
capture comp code.PNG
et je bloque mon code et le remonte sur l'hmi de cette façons par la variable %mw400:
remontée code.PNG
remontée code.PNG (8.83 Kio) Vu 3049 fois
il me reste plus que à comparer les deux à la fin du cycle et de les sauvegarder pour avoir un historique des nettoyage ^^
“Deviens ce que tu es” Nietzsche
“La raison est la seule chose qui nous rend hommes” Descarte
“La volonté est tellement libre de sa nature qu’elle ne peut jamais être contrainte” Descarte
Répondre