Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Contrôleur logique ABA S/1.2.1 : partage de blocs fonctions
#1
Hello tout le monde,

J'ai finalement fait l'acquisition d'un ABA S/1.2.1 pour la logique dans mon installation (j'utilisais auparavant un Miniserveur Loxone, plus de détail dans le sujet à propos de mon installation ici) et le module est vraiment sympa et pointu par certains aspects, mais il manque à mon sens des fonctions avancées comparé au Loxone.

Heureusement grâce à la création de ses propres blocs fonctions on peut essayer de recréer certaines fonctions sois même. Du coup je me suis dit que ce serait intéressant de faire un sujet unique pour partager nos blocs fonctions qui pourraient être ré-utilisés par d'autres (donc des choses génériques transposables dans différents projets).

Dans les posts suivants, quelques blocs que j'utilise dans mon projet (il y a peut être encore moyen de les améliorer)

N'hésitez pas à poster les vôtres !
Répondre
#2
Temporisation au basculement vers ON (ou OFF)

Le but est de temporiser le basculement de OFF (0) vers ON (1). Idem de ON vers OFF avec l'autre bloc ci-dessous.

Exemple (temporisation vers OFF) :
On active le mode été si la demande de chauffage a été nulle (OFF) pendant 5 jours consécutifs, mais se désactive immédiatement si le chauffage se remet en route (ON)

Fonctionnement (temporisation vers OFF) : 
1) Le premier ON ou OFF reçu à l'initialisation ne subit pas de temporisation et va directement à la sortie.
2) Si la sortie est sur OFF, lorsqu'un ON est envoyé à l'entrée celui-ci est immédiatement placé à la sortie.
3) Si la sortie est sur ON, lorsqu'un OFF est envoyé à l'entrée celui-ci est retardé pendant une durée paramétrable en secondes. 
4) Si un nouveau OFF est envoyé à l'entrée avant la fin du délais, celui-ci continue (pas de reset).
5) Si un ON est envoyé à l'entrée avant la fin du délais, celui-ci est interrompu et la sortie reste sur ON.
6) Si le délais arrive à son terme, alors la sortie passe sur OFF.

Schéma :

Tempo vers ON
   
PS: le filtre bloque les OFF (0)

Tempo vers OFF
   
PS: le filtre bloque les OFF (0)

Download :

.zip   Tempo ON.zip (Taille : 2,18 Ko / Téléchargements : 1)

.zip   Tempo OFF.zip (Taille : 2,31 Ko / Téléchargements : 0)
Répondre
#3
Sélecteur 6 entrées

Le but du bloc est d'avoir en sortie un nombre (1 byte unsigned) qui correspond à l'entrée 1bit qui est sur True (1). Le bloc fonctionne même si certaines entrées ne sont pas connectées.

Exemple :
On désire calculer une valeur numérique pour définir le mode de fonctionnement d'une chaudière en fonction de différents paramètres.

Fonctionnement : 
1) Les entrées 1bits désirées sont connectées au sélecteur. On peut connecter seulement certaines entrées et il n'est pas nécessaire de commencer par la 1ère, on peut par exemple connecter uniquement les entrées 2 et 4 (le sélecteur retournera 0, 2 ou 4).
2) Si aucune entrée n'est sur True, le sélecteur retourne 0 et la sortie d'erreur est mise sur False
3) Si une seule entrée est sur True, le sélecteur retourne le numéro sur lequel cette entrée est connectée et la sortie d'erreur est mise sur False
4) Si plusieurs entrées sont sur True en même temps, le sélecteur retourne 0 et la sortie d'erreur est mise sur True

Schéma :
   
PS: attention pour les MUX il faut cocher la case "Send Trigger"

Download :

.zip   Sélecteur - 6 Entrées.zip (Taille : 8,41 Ko / Téléchargements : 0)
Répondre
#4
Compteur d'entrées

Le but du bloc est d'avoir en sortie un nombre (1 byte unsigned) qui correspond au nombre d'entrées 1bit qui sont sur True (1). Le bloc fonctionne même si certaines entrées ne sont pas connectées.

Exemple :
On désire calculer combien de fenêtres sont ouvertes.

Fonctionnement : 
1) Les entrées 1bits désirées sont connectées au sélecteur. On peut connecter seulement certaines entrées et il n'est pas nécessaire de commencer par la 1ère, on peut par exemple connecter uniquement les entrées 2 et 4 (le sélecteur retournera 0, 1 ou 2).
2) Si aucune entrée n'est sur True, le sélecteur retourne 0
3) Si une seule entrée est sur True, le sélecteur retourne 1
4) Si plusieurs entrées sont sur True en même temps, le sélecteur retourne le nombre d'entrées qui sont sur True

Schéma :
   
PS: attention pour les MUX il faut cocher la case "Send Trigger"

Download :

.zip   Compteur - 6 Entrées.zip (Taille : 3,86 Ko / Téléchargements : 1)
Répondre
#5
Moyenne x entrées

Le but du bloc est de calculer la moyenne des nombres en entrée. Il est facile d'adapter ce bloc à tout type de datapoints (1 byte unsigned, 2 byte float, etc.) et à un plus grand nombre d'entrées.

Exemple :
On désire calculer la moyenne de température d'une pièce qui comporte plusieurs capteurs

Fonctionnement : 
1) Adapter les entrées et la sortie du bloc fonction au type de datapoint souhaité (2 byte float pour une température dans l'exemple)
2) Ajouter plus d'entrées si nécessaire, il suffit de modifier la constante par le nombre d'entrées, de copier/coller le N-CONV et le DIV pour chaque nouvelle entrée, et d'ajouter au bloc ADD le résultat des nouveaux blocs DIV.
3) Créer le nouveau bloc fonction après ces modifications, et connecter simplement les valeurs aux entrées pour avoir la moyenne en sortie.
4) Attention chaque entrée doit être utilisée sans quoi la moyenne ne sera pas correcte.

Schéma :
   
PS: la conversion des entrées en 4 byte float avant les calculs est pour garder le résultat dans la limite des valeurs du datapoint, sinon le ABB retourne 0 (pas vraiment le cas avec les t°, mais avec des 1 byte 0-255 par exemples ça arrive).

Download :

.zip   Moyenne Température - 2 Entrées.zip (Taille : 2,9 Ko / Téléchargements : 0)
Répondre
#6
CALENDAR_S avec heures du jour au lendemain

Le bloc permet de mettre la sortie à ON le soir et à OFF le lendemain (l'objet CALENDAR_S initial fonctionne la journée avec une heure de mise à OFF de la sortie située obligatoirement après l'heure de mise à ON).

Exemple : on active une sortie à 22 h le jour j et on la désactive à 6 h le jour j+1.

Fonctionnement :
1) Ajouter deux entrées de type "heure" (format 24 bits) avec l'heure de début qui doit être supérieure à l'heure de fin.
2) Ajouter une sortie de type 1 bit

Note : Le bloc ne fonctionne pas en simulation ; j'ai remonté ce bug chez ABB ; ils ont pu le reproduire mais sans le corriger pour l'instant !

Schéma :
   

Download

.zip   Calendar-S_JourNuit.zip (Taille : 2,4 Ko / Téléchargements : 0)
Répondre
#7
Clignotant 3s

Le bloc génère une sortie clignotante lorsque l'entrée est active.

Exemple :
Piloter la LED d'état d'un bouton.

Fonctionnement :
1) Ajouter une entrée de validation de type 1 bit
2) Ajouter une sortie de type 1 bit
3) L'alternance est de de 3 secondes. Il est possible de changer la valeur dans les objets STAIRC LIGHT (il faut cocher la case "Réinitialiser")

Schéma :
   

Download :

.zip   Clignotant-3s.zip (Taille : 1,94 Ko / Téléchargements : 0)
Répondre
#8
Sortie incrémentée de 1 chaque minute

Le bloc génère une sortie dont la valeur s'incrémente de 1 chaque minute lorsque l'entrée est active.

Exemple :
Afficher le temps d’exécution en cours d'une procédure.

Fonctionnement :
1) Ajouter une entrée de validation de type 1 bit
2) Ajouter une sortie de type 4 octets signés (32 bits)

Schéma
   

Download :

.zip   FB_Incrementation_1_par_min.zip (Taille : 1,83 Ko / Téléchargements : 1)
Répondre


Atteindre :


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