Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Possibilité d'inverser les signes pour une action ?
#1
Bonjour, est il, ou serait il possible d'inverser les signes On a Off et Off à On dans les actions pour les relais ?
Je vous joint une photo pour expliquer. 
Merci d'avance de vos réponses 
Cordialement


Pièces jointes Miniature(s)
   
Répondre
#2
Les signes actuels sont les bons et certaines personnes utilisent ces modes en l'état.
Si cela ne fait pas ce que vous voulez, quelle logique voudriez vous obtenir en plus?

Voir le code ci-dessous;
ConditionsOk = true;
if (Temperature > -100.0) {
if (Tinf[i] < 1500 && Tsup[i] < 1500 && Tinf[i] < Tsup[i]) { // on applique un hystérésis dont les valeurs sont Tinf et Tsup
if (Tempx10 > Tinf[i] && Tempx10 > Tsup[i]) Tseuil = Tinf[i];
if (Tempx10 < Tinf[i] && Tempx10 < Tsup[i]) Tseuil = Tsup[i];
if (Tempx10 > Tseuil) { ConditionsOk = false; }
} else {
if (Tinf[i] <= 1000 && Tempx10 > Tinf[i]) { ConditionsOk = false; }
if (Tsup[i] <= 1000 && Tempx10 < Tsup[i]) { ConditionsOk = false; }
}
}
if (Ltarfbin > 0 && (Ltarfbin & Tarif[i]) == 0) ConditionsOk = false;
if (SelAct[i] != 255) { //On conditionne à une autre action
if (Hmin[i] != 0 && (Hmin[i] > ExtHequiv || ExtValide == 0)) ConditionsOk = false;
if (Hmax[i] != 0 && (Hmax[i] < ExtHequiv || ExtValide == 0)) ConditionsOk = false;
if (Ooff[i] != 0 && ((int(Ooff[i]) >= ExtOuvert && Retard != 100) || ExtValide == 0)) ConditionsOk = false; //Inferieur au seuil bas
if (O_on[i] != 0 && ((int(O_on[i]) > ExtOuvert && Retard == 100) || ExtValide == 0)) ConditionsOk = false; //Inferieur au seuil haut et pas encore ouvert
}
if (ConditionsOk) S = Type[i];

Quand un test est valide, ConditionsOk = false, cela désactive donc le routage (cela inverse la logique...).
Ooff, On à Off
O_on, Off à On
Retard == 100, le triac est fermé (%triac = 100-retard)
Retard != 100, le triac est ouvert (même pour 1%)
ExtOuvert, le % d'ouverture de l'action en référence
Si aucun test n'est valide, S = Type[i], la sortie s'active avec le mode de l'action en cours (sinon, c'est OFF par défaut si ConditionsOk==False)

if (int(Ooff[i]) >= ExtOuvert && Retard != 100) ConditionsOk = false;
si le %_référence est inférieur au seuil "on_à_off" ET que le triac est >= 1%, le routage est arrêté

if (int(O_on[i] > ExtOuvert && Retard == 100) ConditionsOk = false;
si le %_référence est inférieur au seuil "off_à_on" ET que le triac est à 0%, le routage est arrêté
on inverse la logique (non (A et B) = non A ou non B) => le routage est actif si %_référence >= au seuil "off_à_on" OU si le triac >= 1% (ie, il a commencé à s'ouvrir, on ne le ferme pas)
Répondre


Atteindre :


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