[M340] Registre Fifo
Re: [M340] Registre Fifo
J'ai trouvé une solution à mon problème, si quelqu'un rencontre le même problème n'hésitez pas à me demander !
Merci à tous
Merci à tous
- Béryl
- Mi homme - Mi automate

- Messages : 1953
- Enregistré le : 20 oct. 2015, 12:00
- Localisation : localhost
Re: [M340] Registre Fifo
Ce serait sympa de partager la soluce sans qu'on ait à demander 
Re: [M340] Registre Fifo
Bien-sûr avec plaisir c'est juste que il y en a peut-être des meilleurs ...
Re: [M340] Registre Fifo
j'ai juste une petite question concernant les retours, enft je reçois plusieurs retour sur ma variable , l'ordre est généralement aléatoire, en plus comme pendant le tempo ça tourne une fois que j'ai reçu toutes les chaines sur ma variable sa repart au début et sa me renvoie la première suivi de la deuxième ... jusqu'à la fin du tempo , comment je pourrais faire pour garder (ou si vous avez une autre solution) toutes chaines reçues et les comparer unes à unes ? j'ai déjà plusieurs bloc_fonction de fait pour comparer je veux juste savoir comment garder tous ce que je reçois ? pour comparer
-
philou77
- Mi homme - Mi automate

- Messages : 2142
- Enregistré le : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: [M340] Registre Fifo
post ce que tu as écris et explique un peu mieux ton problème...
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! 
Re: [M340] Registre Fifo
Je vous explique c'est vrai que j'ai pas été très clair je vais essayer d'être plus clair :
je fais une com RS232 , j'utilise un print et input_char , sur le RECP du input_char j'ai une variable que j'ai nommé RETOUR.
Il faut savoir que je fais la connection entre un automate et un appareil de lecture de température, sur cet appareil (tester au préalable sur teraterm) on peut envoyer "TEMP 1" avec un print_char et grace au input char on lit sauf qu'il retourne :
Requete : TEMP 1
TEMP 1
50 ( c un exemple de temperature ), je recois donc trois chaine de caractères les unes après les autres soit "requete : TEMP 1" puis "TEMP 1" et enfin "50" , et puis sa repart a "requete : TEMP 1 " tant que ma tempo n'est pas fini , j'ai fait une tempo pour mettre ma requete à 0 après 2s.
Mon problème c'est que j'ai fait des blocs fonction pour traiter er afficher la température exemple :
si > 50 afficher danger ect , mais il me faut récupérer que la chaine ou il y a le 50 , je sais pas si c'est plus clair .
Merci
je fais une com RS232 , j'utilise un print et input_char , sur le RECP du input_char j'ai une variable que j'ai nommé RETOUR.
Il faut savoir que je fais la connection entre un automate et un appareil de lecture de température, sur cet appareil (tester au préalable sur teraterm) on peut envoyer "TEMP 1" avec un print_char et grace au input char on lit sauf qu'il retourne :
Requete : TEMP 1
TEMP 1
50 ( c un exemple de temperature ), je recois donc trois chaine de caractères les unes après les autres soit "requete : TEMP 1" puis "TEMP 1" et enfin "50" , et puis sa repart a "requete : TEMP 1 " tant que ma tempo n'est pas fini , j'ai fait une tempo pour mettre ma requete à 0 après 2s.
Mon problème c'est que j'ai fait des blocs fonction pour traiter er afficher la température exemple :
si > 50 afficher danger ect , mais il me faut récupérer que la chaine ou il y a le 50 , je sais pas si c'est plus clair .
Merci
-
philou77
- Mi homme - Mi automate

- Messages : 2142
- Enregistré le : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: [M340] Registre Fifo
Re !
précise si ta variable RETOUR contient
"Requête : TEMP 1 TEMP 1 50"
ou bien alternativement (cas que je ne m'explique pas trop d'ailleurs)
"Requête : TEMP 1"
"TEMP 1"
"50"
on en revient encore à un autre de tes post...
tu ne précises pas avec quel appareil tu communiques, ni avec quel protocole !
et tu ne post pas ton code...
précise si ta variable RETOUR contient
"Requête : TEMP 1 TEMP 1 50"
ou bien alternativement (cas que je ne m'explique pas trop d'ailleurs)
"Requête : TEMP 1"
"TEMP 1"
"50"
on en revient encore à un autre de tes post...
tu ne précises pas avec quel appareil tu communiques, ni avec quel protocole !
et tu ne post pas ton code...
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! 
Re: [M340] Registre Fifo
je travail avec un M340 (je pensais qu'il suffisait de le préciser dans le sujet )philou77 a écrit : ↑02 déc. 2022, 11:11 Re !
précise si ta variable RETOUR contient
"Requête : TEMP 1 TEMP 1 50"
ou bien alternativement (cas que je ne m'explique pas trop d'ailleurs)
"Requête : TEMP 1"
"TEMP 1"
"50"
on en revient encore à un autre de tes post...
tu ne précises pas avec quel appareil tu communiques, ni avec quel protocole !
et tu ne post pas ton code...
je ne peux pas poster mon code je pense qu'il est trop long .
et la réponse se fait alternativement comme tu l'as si bien décris .
PS : je n'avais pas remarqué que tu avais répondu dsl pour le retard
Re: [M340] Registre Fifo
J'ai exactement le même problème , si vous avez la solution je suis preneur !
-
philou77
- Mi homme - Mi automate

- Messages : 2142
- Enregistré le : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: [M340] Registre Fifo
Salut !
Dans ce cas, il faut pas mettre une tempo pour faire cycler la communication mais un chenillard (ou solution analogue).
exemple avec %MW0
quand le chenillard est à la valeur :
1 (%MW0:X0=1) -> tu as l'information : "Requête : TEMP 1"
2 (%MW0:X1=1 -> tu as l'information : "TEMP 1"
4 (%MW0:X2=1) -> tu as l'information : "50"
Donc si ton chenillard est à 4 (ou bien %MW0:X2=1) alors tu as l'information de température
Ensuite remettre le chenillard au début et recommencer le cycle de lecture ad vitam eternam
et au passage, on sais toujours pas avec quel appareil tu communiques (pour l'automate oui j'avais bien vu) car pour communiquer faut au moins 2 appareils !!
Pour moi si, tu reçois 3 chaines de caractères bien distinctes, c'est que tu fais 3 inputs char.
Dans ce cas, il faut pas mettre une tempo pour faire cycler la communication mais un chenillard (ou solution analogue).
exemple avec %MW0
quand le chenillard est à la valeur :
1 (%MW0:X0=1) -> tu as l'information : "Requête : TEMP 1"
2 (%MW0:X1=1 -> tu as l'information : "TEMP 1"
4 (%MW0:X2=1) -> tu as l'information : "50"
Donc si ton chenillard est à 4 (ou bien %MW0:X2=1) alors tu as l'information de température
Ensuite remettre le chenillard au début et recommencer le cycle de lecture ad vitam eternam
et au passage, on sais toujours pas avec quel appareil tu communiques (pour l'automate oui j'avais bien vu) car pour communiquer faut au moins 2 appareils !!
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! 

