Aller au contenu

La programmation D.L.S

Les modules portant l'intelligence sont nommés Module D.L.S. Ils permettent, via un langage de programmation inspiré des automates, de définir quel doit être l'état de sortie d'un objet en fonction d'un ensemble d'états d'entrés.

Note

Dans l'interface web, vous pouvez lister et éditer ces modules D.L.S en utilisant le menu Configuration->Modules D.L.S.


Mémoire d'informations

L'ensemble des différents modules D.L.S partagent la même mémoire d'informations. Toutes les informations sont accessibles en lecture et écriture par tous les plugins D.L.S.

Chaque élément est caractérisé

  • par sa classe : une entrée, une sortie, un message, un compteur, ...
  • par son tech_id, représentant le module D.L.S auquel il est rattaché
  • par son acronyme, représentant son nom dans la mémoire d'information

Par exemple: le bit GARAGE:OUVERTURE peut représenter une entrée correspondant à l'état d'OUVERTURE ou de fermeture de l'ouvrant GARAGE.

Ou encore, le bit PORTAIL:NBR_OUVERTURE peut représenter un compteur associé au nombre d'ouverture du PORTAIL.

Deux bits de deux modules différents peuvent porter le même acronyme, dans la mesure ou leurs tech_id seront différents. Exemple : JARDIN:TEMPERATURE et CUISINE:TEMPERATURE

Note

Par construction, dans un code source D.L.S, si un bit interne ne spécifie pas son tech_id, celui du module D.L.S d'appartenance est utilisé.


Architecture d'un module D.L.S

Un module D.L.S présentera plusieurs zones de code :

  • la zone de définition des Acronymes
  • la zone de définition des Liens
  • la zone de description du fonctionnement portant la logique et les calculs

Les classes de zone mémoire

Les différentes classes proposées sont les suivantes:

  • _DI est une entrée TOR. L'entrée peut avoir 2 valeurs: 0 ou 1 et représente l'état physique d'un capteur.
  • _AI est une entrée analogique est représentée par la classe . Une entrée Analogique représente une valeur d'un capteur analogique. Celle-ci dispose d'options permettant au systeme de savoir comment interpréter les informations fournies par les capteurs (4/20mA, 0-10V, ...)
  • _DO est une sortie TOR est représentée par la classe . Une sortie TOR peut avoir 2 valeurs : 0 ou 1, et représente l'état souhaité d'un actionneur.
  • _AO est une sortie analogique est représentée par la classe . Une sortie Analogique represente la valeur souhaitée d'un actionneur analogique. Elle dispose d'options permettant au systeme de traduire une valeur reelle en valeurcompréhensible par les actionneurs.
  • _B est un bistable. Bit dont la valeur est 0 ou 1, maintenu dans le temps. Il faut explicitement coder la mise à zero du bit pour que celui-ci soit effectivement remis à 0.
  • _M est un monostable. Les monostables sont des bits furtifs, non maintenus dans le temps. Si la condition initiale qui imposait le maintien du bit n'est plus vraie,ce bit va alors tomber de lui-meme à 0.
  • _CI est un compteur d'impulsions. Incrémenté à chaque front montant de sa condition de pilotage.
  • _CH est un compteur Horaire. Temps seconde représentant la durée effective de maintien de sa condition de pilotage.
  • _T est une temporisation. Les temporisations permettent de décaler, maintenir ou limiter dans le temps un evenement particulier.
  • _REGISTRE est un registre. Les registres permettent de manipuler des points de consignes, de seuil,et permettent de réaliser des calculs.
  • _HORLOGE est une horloge. Les horloges sont des éléments binaires positionnées en fonction d'une heure bien précise de la journée.
  • _WATCHDOG est un watchdog. Les comptes a rebours permettent de decompter le temps à partir d'un evenementet de réagir si cet evenement n'est pas revenu au bout d'une consigne précise.
  • _MSG est un message. Les messages permettent de notifier les utilisateurs. Ils sont diffusés dans l'interface, par SMS ou par messagerie instantanée ou par mail.
  • _VISUEL est un visuel. Les visuels représentent des images associés aux objets, sous différentes formes et couleurs.

Les commentaires

Il est possible d'intégrer des commentaires dans un code D.L.S. Utiles pour augmenter le niveau de lisibilité du code, ils permettent aussi d'accélérer la compréhension du mode de fonctionnement.

Un commentaire commence par la chaine « /* » et se finit par la chaine « */ » Exemple de syntaxe:

 - a . b → c;                /* Ceci est un commentaire */

Exemple

/* Zone de définition des acronymes */
#define POS_CAPTEUR  <-> _E(libelle="Position du capteur d'ouverture");
#define MON_COMPTEUR <-> _CI(libelle="Nombre d'ouvertures de la porte");

/* Zone de définition des liens */
#link EDF:VISUEL_ECLAIR; /* Lien vers le visuels de l'éclair du module D.L.S EDF. Celui-ci apparaitra sur la page syntoptique de ce module */

/* Zone de logique et de calcul */
- POS_CAPTEUR -> MON_COMPTEUR; /* Si la porte est ouverte, on augmente de 1 la valeur de compteur */

Bits locaux

Par construction, certains bits internes sont créés automatiquement. Ces bits sont présentés ci dessous.

Nom du bit Classe Positionné par Défaut Description
MEMSA_COMM Activité Module TRUE TRUE si la communication est OK, sinon FALSE.
MEMSA_DEFAUT Activité Module FALSE TRUE si le module est en défaut
MEMSA_DEFAUT_FIXE Activité Module FALSE TRUE si le module est en défaut fixe
MEMSA_ALARME Activité Module FALSE TRUE si le module est en alarme
MEMSA_ALARME_FIXE Activité Module FALSE TRUE si le module est en alarme fixe
MEMSA_OK Activité Système TRUE Bit de synthèse de l'activité. Calculé par rapport aux 5 bits précédents
MEMSSB_VEILLE Sécurité des Biens Module FALSE TRUE si le module est en veille
MEMSSB_ALERTE Sécurité des Biens Module FALSE TRUE si le module est en alerte
MEMSSB_ALERTE_FUGITIVE Sécurité des Biens Module FALSE TRUE si le module est en alerte fugitive
MEMSSB_ALERTE_FIXE Sécurité des Biens Module FALSE TRUE si le module est en alerte fixe
MEMSSP_DERANGEMENT Sécurité des Personnes Module FALSE TRUE si le module est en dérangement
MEMSSP_DERANGEMENT_FIXE Sécurité des Personnes Module FALSE TRUE si le module est en dérangement fixe
MEMSSP_DANGER Sécurité des Personnes Module FALSE TRUE si le module remonte un danger imminent
MEMSSP_DANGER_FIXE Sécurité des Personnes Module FALSE TRUE si le module remonte un danger imminent (fixe).
MEMSSP_OK Sécurité des Personnes Système TRUE Bit de synthèse de la sécurité des personnes. Calculé par rapport aux 4 bits précédents.
OSYN_ACQUIT Acquit Système FALSE Bit positionné par le système lors d'une demande d'acquit synoptique