Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

24h/24h précaution ?

Bonjour,

 

Y a t il des précautions à prendre sur les programmes qui tournent 24h/24

 

j'ai une tache de fond (.exe ) lancée par le planificateur de tache de windows au démarrage

qui dialogue avec l'ihm.exe par l'intermédiaire de variables partagées sur les sessions utilisateurs

 

j'ai eu comme un arret partiel du fonctionnement d'une vaiable partagée

puis en arrétant et redémarrant la tache windows un "double état " de la variable, instable à l'affichage clignotement entre 2 valeurs Smiley surpris

 

Merci

0 Compliments
Message 1 sur 30
5 429 Visites

par exemple que ce passe t il quand le I d'une boucle arrive à 2147483648 ?

 

0 Compliments
Message 2 sur 30
5 422 Visites

@ thib_fr : Par exemple que ce passe-t- il quand le " I " d'une boucle arrive à 2147483648 ?

 

Pour un soft qui tourne en continu ... la question est intéressante !

 

je viens de tester :

 

à 2.147.483.64 ... le VI est toujours en exécution

 

je veux dire par là que la boucle continue de tourner (une Led avec un inverseur sur un shift-registre continue de clignoter)

 

mais .... le terminal d'itération arrête son incrémentation.

 

Le " I " n'affichera jamais 2.147.483.648 ... (normal c'est un I32) ... il stoppe à 2.147.483.647

 

Si la valeur du terminal d'itération est utilisée dans le code ... il est vrai que cela peut poser problème.

 

Qu'en pensent les pros de Labview ??

 

 

Message 3 sur 30
5 421 Visites

thib_fr a écrit :

par exemple que ce passe t il quand le I d'une boucle arrive à 2147483648 ?

 


Tu utilises le terminal d'itération ?

0 Compliments
Message 4 sur 30
5 407 Visites

non

mais j'ai un pb ( bug Smiley fou?)

la tache de fond ne fonctionne plus correctement après un certain nombre d'heures...Smiley frustré

 

0 Compliments
Message 5 sur 30
5 402 Visites

bon j'ai déjà trouvé une boucle while qui pouvait rester bloquée en cas d'erreur!

  sur la sortie son par exemple

0 Compliments
Message 6 sur 30
5 383 Visites

Le terminal d'itération d'une boucle est un I32.

 

Ce serait "pas mal" de pouvoir choisir entre un I32 et un I64

 

avant dépassement, avec un temps de boucle de 1µs :

 

terminal d'itération = I32 = 33 minutes

 

terminal d'itération = I64 = 126.000 ans

 

Je pense q'un I64 serait une solution au dépassement.

 

 

0 Compliments
Message 7 sur 30
5 376 Visites

Hello,

 

@ouadji, il n'y a pas de roll-over, c'est-à-dire de remise à zéro d'un terminal d'itération, dans les boucles For et While. (à moins de le faire à la main bien sûr 🙂 )

Par contre, je ne suis pas certain d'être d'accord avec le calcul (mais comme il se fait tard, je ne suis pas affirmatif ).

 

On peut toujours changer le format du terminal d'itération mais il y aura toujours une application pour laquelle ça ne suffit pas (ou des boucles qui tournent plus vite, sur FPGA par exemple ^^)

 

Ce que je retiens de tous ça en réalité, c'est que dans une While, si je dois faire quelque chose tous les n tours de boucle, je me créer un petit compteur.

 

 

Flo

Message 8 sur 30
5 360 Visites

Bonjour Florent,

 

Le terminal d'itération d'une while stoppe à "un peu plus" de 2E+9 (après ce sont les nombres négatifs)

 

J'ai testé ... effectivement, il stoppe précisément à 2.147.483.647 (la while "tourne toujours", mais le " I " stoppe)

 

petite erreur ...  effectivement, il y une erreur concernant le I64, je corrige :

 

Dans les 2 cas, je considère un temps d'itération de 1micro sec (1µs)

 

pour un I32 ... le terminal d'itération stoppe à 0x7FFFFFFF (soit 2147483647)

 

tu as : 2147483647(itérations) / 1e+6(itérations/sec) = 35,8 min

 

pour un I64 ... le terminal d'itération stopperait à 0x7FFFFFFFFFFFFFFFF (soit 9223372036854775807)

 

tu  aurais : 9223372036854775807(itérations) / 1e+6(itérations/sec) = 292.471,208 ans

 

voilou. (désolé pour cette erreur)

 

il y aura toujours une application pour laquelle ça ne suffit pas (FPGA)

 

bof ... soyons réaliste ... même avec un temps de boucle de 1nano sec .... !!!!

 

PS: même en FPGA, code une boucle While avec 3portes logiques qui tourne en moins de 1nano sec ... (je suis septique)

 

Ceci dit, même avec un temps de boucle (totalement illusoire à mon sens) de 1 nano ... avec un I64, tu en aurais quand même pour 290 années avant dépassement.

 

donc : je maintiens qu'un I64 serait une solution au dépassement.

 

si je dois faire quelque chose tous les n tours de boucle, je me créer un petit compteur.

 

Oui, bien entendu, nous somme d'accord (il y a toujours un "contournement" à toute chose)

 

Cela n'empèche pas de "rêver" de pouvoir choisir entre un I32 et un I64 pour le terminal d'itération.

 

Dis moi qu'une boucle While en FPGA pour boucler en moins de 100 pico sec ... et je dirais directement ... ok, j'ai tord.

 

(avec 100 pico sec de boucle; tu en as quand même pour 30 ans)

 

 

 

 

 

Message 9 sur 30
5 355 Visites

Je rêve de processeur photonique (http://www.techniques-ingenieur.fr/actualite/high-tech-thematique_193/le-processeur-photonique-devie... voilà tout 🙂

 

(oui en FPGA, on n'y est pas sur un I64, on a vraiment de la marge ^^)

 

Bonne soirée

Flo

0 Compliments
Message 10 sur 30
5 338 Visites