IF récalcitrant !
#1
Bonjour à tous,

J'ai fais un automate qui renseigne 2 variables afin d'obtenir la température extérieure mini et maxi du jour. Malheureusement, le IF pour la température mini ne fonctionne pas et renvoie une erreur à chaque fois que la condition est vrai.

L'erreur qui s'affiche sur le journal d'évènement est : Valeur nulle sur l'équipement "Thermomètre Exterieur" Et ça c'est à chaque fois que la condition est VRAI.

Le IF est le suivant :
[Image: w8km.png]

Auriez vous une idée de ce qui cloche ?
Répondre
#2
Salut,
Si tu fais un If avec la "valeur du capteur thermostat ext" < "variable TempMini", cela ne fonctionnerait-il pas !!
C'est en cherchant que l'on trouve...
Al_Bla
Répondre
#3
Et non, j'ai déjà essayé et ça fait pareil; en fait si je fais une opération dont le résultat sera FAUX, il n'y a pas d'erreur, c'est uniquement quand le résultat est VRAI que je reçois l'erreur.

Et c'est d'autant plus étrange que derrière ce IF, quand il renvoi FAUX, je fais un autre IF, Identique au premier mais pour tester la température Maxi, et celui ci fonctionne très bien :
 
[Image: edfe.png]

[Image: qeur.png]
Répondre
#4
si la suggestion de al_bla ne fonctionne pas

la variable "Valeur du capteur" de l'équipement cave à vin est chargée comment (surtout quand ?) et est-elle de type string ?
la variable générale TempMini est-elle déjà avec une valeur ?


pour s'assurer que tout ce monde est correcte, peux-tu dans un premier temps faire un chargement de la variable "Valeur du capteur" de l'équipement "cave à vin" dans une variable globale temporaire (temp_valeur_capteur_num et temp_valeur_capteur_string) en numérique et chaine pour voir.
Puis ensuite jouer avec cela pour tester ce qui ne "marche pas"
Répondre
#5
(03-14-2020, 11:01 AM)sud-domotique-expert a écrit : si la suggestion de al_bla ne fonctionne pas

la variable "Valeur du capteur" de l'équipement cave à vin est chargée comment (surtout quand ?) et est-elle de type string ?
la variable générale TempMini est-elle déjà avec une valeur ?


pour s'assurer que tout ce monde est correcte, peux-tu dans un premier temps faire un chargement de la variable "Valeur du capteur" de l'équipement "cave à vin" dans une variable globale temporaire (temp_valeur_capteur_num et temp_valeur_capteur_string) en numérique et chaine pour voir.
Puis ensuite jouer avec cela pour tester ce qui ne "marche pas"

Je suis full KNX, donc le capteur est KNX. Le bus l'envoie régulièrement toute les 15 mnt, et j'ai un équipement LD type capteur/thermometre qui le récupère.
TempMini et TempMaxi font l'objet d'une mise à jour à minuit, avec la valeur de la température extérieure (afin d'avoir ces valeur sur la journée), donc les variables ont une valeur de température.
Mes variables sont logiquement en numérique. Ce qui est étonnant c'est que la logique pour TempMaxi fonctionne parfaitement.
Répondre
#6
Je viens d'essayer de changer le type de la variable, mais le IF n'accepte que numeric, pas de string...
Répondre
#7
Quand je regarde tes deux IF avec TempMini et TempMaxi, tu as pour
TempMini un : IF TempMini>Valeur Capteur
et pour TempMaxi un : IF Valeur Capteur >TempMaxi

Le problème ne vient pas de la position de la variable dans le comparateur >...
C'est en cherchant que l'on trouve...
Al_Bla
Répondre
#8
(03-14-2020, 11:22 AM)Al_Bla a écrit : Quand je regarde tes deux IF avec TempMini et TempMaxi, tu as pour
TempMini un : IF TempMini>Valeur Capteur
et pour TempMaxi un : IF Valeur Capteur >TempMaxi

Le problème ne vient pas de la position de la variable dans le comparateur >...

Non, j'ai testé dans tous les sens … d'ailleurs regarde :
[Image: z8bh.png]
Et cela ne change rien.

En fait je suis en train de me faire CHIER à faire un automate pour avoir la température ext mini/maxi, alors que ces informations existent dans LD du fait de l'historisation (je les affichent via les graphiques), mais elle ne sont pas accessibles pour afficher dans un painter ...
Répondre
#9
J'avais moi aussi été confronté à ce bug dans la LD et je l'avais contourné de la manière suivante :

Variable :  Temp Day Min définie en numérique
Equipement (mesure ... capteurs .... Thermomètre) : Température Extérieure instantanée définie en DPT 9.001 avec actualisation à la connexion et suivant le bus et sans historique


Maintenant l'automate :
   

Le déclencheur est à chaque changement de la température extérieure instantanée

Le test du IF
   

et enfin la fonction :
   

En attribuant la valeur d'un objet à une variable des fois ça ne fonctionne pas et on a un message d'erreur pour une raison que j'ignore. En échange si on remets la variable à zéro et qu'ensuite on additionne l'objet alors aucun problème ..... et l'addition d'un nombre négatif se comporte correctement.
Le perfectionnement de soi et l'accession à sa légende personnelle passe obligatoirement par le partage de son savoir et de son expérience avec les profanes en demande d'initiation. (R. Bach)
Répondre
#10
(03-14-2020, 01:04 PM)Pollux06 a écrit : J'avais moi aussi été confronté à ce bug dans la LD et je l'avais contourné de la manière suivante :

Variable :  Temp Day Min définie en numérique
Equipement (mesure ... capteurs .... Thermomètre) : Température Extérieure instantanée définie en DPT 9.001 avec actualisation à la connexion et suivant le bus et sans historique


Maintenant l'automate :


Le déclencheur est à chaque changement de la température extérieure instantanée

Le test du IF


et enfin la fonction :


En attribuant la valeur d'un objet à une variable des fois ça ne fonctionne pas et on a un message d'erreur pour une raison que j'ignore. En échange si on remets la variable à zéro et qu'ensuite on additionne l'objet alors aucun problème ..... et l'addition d'un nombre négatif se comporte correctement.

MERCI Philippe,

A ce niveau de BUG de la LD, c'est une calamité, ça ressemble à une mauvaise maitrise des types dans la prog, au prix de la box c'est bien triste, surtout qu'il n'y a plus de mise à jour, mais Deltadore ne se gène pas pour continuer à les vendre, même des box recyclées comme dans mon cas...
Répondre




Utilisateur(s) parcourant ce sujet : 1 visiteur(s)