Aller au contenu

DevioArchivesFluks

Introduction

DevioArchivesFluks est un module d'archive spécialisé qui permet l'intégration de DevIO avec le système Fluks. Ce module génère des fichiers CSV structurés selon le format attendu par Fluks, avec gestion automatique des sites, installations, équipements, et mesures. Il inclut un système de planification temporelle pour l'envoi programmé des données.

Le module est conçu pour l'industrie de l'eau et des fluides, où Fluks est utilisé pour la supervision et la gestion des installations de traitement et de distribution.

Architecture et fonctionnement

Composants principaux

  • Gestionnaire de sites : Organisation hiérarchique Site → Installation → Équipement
  • Collecteur de mesures : Fichier CSV des données temporelles
  • Planificateur temporel : Envoi programmé selon planning configurable
  • Thread de supervision : Surveillance et traitement automatique
  • Système de fichiers : Génération automatique des fichiers de configuration Fluks

Hiérarchie des données

Site (Station)
├── Installation 1
│   ├── Équipement A
│   │   ├── Bloc 1 → Données
│   │   └── Bloc 2 → Données
│   └── Équipement B
└── Installation 2
    └── Équipement C

Processus d'archivage

  1. Initialisation : Lecture du fichier DevioArchivesFluks.ini
  2. Collecte : Réception des données DevIO avec parsing du format Équipement:Bloc:Donnée
  3. Structuration : Organisation selon la hiérarchie Fluks
  4. Archivage : Écriture dans mesures.csv avec horodatage
  5. Planification : Vérification des créneaux d'envoi programmés
  6. Génération : Création des fichiers de métadonnées Fluks

Configuration

Fichier DevioArchivesFluks.ini

Le module utilise un fichier de configuration INI situé dans le répertoire DevIO.

Structure du fichier

DIR_CSV=C:\Fluks\CSV
DIR_MESURE=C:\Fluks\Mesures
DATE_TIME=08:00;12:00;16:00;20:00
SITE=Station_Traitement_Eau|STE001

Paramètres de configuration

Paramètre Description Exemple Obligatoire
DIR_CSV Répertoire des fichiers CSV Fluks C:\Fluks\CSV Oui
DIR_MESURE Répertoire des fichiers de mesures C:\Fluks\Mesures Oui
DATE_TIME Planning d'envoi (HH:MM séparés par ;) 08:00;12:00;16:00;20:00 Oui
SITE Nom et code du site (séparés par |) Station_Principale|SP001 Oui

Format des données DevIO

Les données DevIO doivent respecter le format : Équipement:Bloc:Donnée

Exemples de nommage

Pompe01:Mesures:Debit
Pompe01:Alarmes:Defaut_Moteur
Reservoir:Niveau:Hauteur_Eau
Chloration:Dosage:Concentration_Cl2

Transformation des noms

Le module applique des transformations automatiques :

  • Préfixes de blocs : B_MesuresMesures
  • Préfixes de données : B_Temp_EauTemp_Eau_B
  • Séparateurs : Conversion : vers format Fluks

Fichiers générés

1. mesures.csv

Fichier principal contenant toutes les mesures avec horodatage.

Format

Pompe01:Mesures:Debit;2024-12-01 14:30:00;125.67
Pompe01:Alarmes:Defaut_Moteur;2024-12-01 14:30:00;0
Reservoir:Niveau:Hauteur_Eau;2024-12-01 14:30:00;3.45
Chloration:Dosage:Concentration_Cl2;2024-12-01 14:30:00;0.8

Structure des colonnes

Colonne Description Exemple
Identifiant Équipement:Bloc:Donnée Pompe01:Mesures:Debit
Horodatage AAAA-MM-JJ HH:MM:SS 2024-12-01 14:30:00
Valeur Valeur numérique ou texte 125.67

2. site.csv

Fichier de définition du site Fluks.

id;name;description
STE001;Station_Traitement_Eau;Station principale de traitement des eaux

3. installations.csv

Fichier de définition des installations.

id;name;description;siteName
INST001;Installation_Pompage;Installation de pompage principal;Station_Traitement_Eau
INST002;Installation_Traitement;Installation de traitement chimique;Station_Traitement_Eau

4. equipements.csv

Fichier de définition des équipements avec leurs caractéristiques.

id;InstallationId;name;description;type;unit;valAlarm;levelAlarm;numDecimal;lowAlarm;highAlarm
POMPE01;INST001;Pompe principale;Pompe centrifuge 50m³/h;PUMP;m³/h;0;1;2;0;60
RESERVOIR;INST001;Réservoir stockage;Réservoir 1000m³;TANK;m;0;1;2;0;5
CHLORE;INST002;Dosage chlore;Système de chloration;DOSING;mg/L;0;1;1;0;2

5. TimeLastSent

Fichier de sauvegarde de la dernière date d'envoi.

2024-12-01 16:00:00

Planification temporelle

Configuration des créneaux

Le paramètre DATE_TIME définit les heures d'envoi programmé :

DATE_TIME=06:00;12:00;18:00;00:00

Logique de déclenchement

Le module déclenche l'envoi si :

  1. Heure courante correspond à un créneau programmé (±15 minutes)
  2. Délai écoulé depuis le dernier envoi > 15 minutes
  3. Nouvelles données disponibles depuis le dernier envoi

Gestion des retards

  • Tolérance : ±15 minutes autour de l'heure programmée
  • Rattrapage : Envoi automatique si créneau manqué
  • Sauvegarde : Mémorisation de la dernière date d'envoi

Types de données supportés

Types numériques DevIO

Type DevIO Format Fluks Exemple Précision
BOOL 0 ou 1 1 Entier
BYTE Entier 0-255 142 Entier
SHORT Entier 16 bits 1250 Entier
INT Entier 32 bits 125000 Entier
LONG Entier 64 bits 9876543210 Entier
FLOAT Réel simple 25.67 20 chiffres significatifs
DOUBLE Réel double 123.456789012345 20 chiffres significatifs

Types non supportés

  • ARRAY : Tableaux de données
  • STRING : Chaînes de caractères
  • STRUCTURE : Données structurées

Conversion des valeurs

Le module utilise la fonction DevIOValue2Text pour convertir tous les types DevIO vers le format texte Fluks avec une précision de 20 chiffres significatifs pour les réels.

Configuration via DevIO Studio

1. Activation du module

  1. Ouvrir le projet avec DevIO Studio
  2. Aller dans ConfigurationArchives
  3. Ajouter une nouvelle archive de type Fluks
  4. Configurer les paramètres de base

2. Paramètres de base

Nom de l'archive : Fluks_Export
Type : DevioArchivesFluks
Site : Station_Principale|SP001
Répertoire CSV : C:\Fluks\CSV
Répertoire Mesures : C:\Fluks\Mesures

3. Configuration du planning

Créneaux d'envoi : 08:00;12:00;16:00;20:00
Tolérance : ±15 minutes
Sauvegarde état : Automatique

4. Organisation des données

Configurer les variables DevIO selon la hiérarchie :

Équipement : Pompe01, Pompe02, Reservoir
Blocs : Mesures, Alarmes, Commandes
Données : Debit, Pression, Temperature, Defaut

Exemples de configuration

Configuration usine de traitement d'eau

DIR_CSV=C:\Fluks\StationEau\CSV
DIR_MESURE=C:\Fluks\StationEau\Mesures
DATE_TIME=06:00;10:00;14:00;18:00;22:00;02:00
SITE=Station_Traitement_Municipal|STM001

Configuration station de pompage

DIR_CSV=\\serveur\fluks\pompage\csv
DIR_MESURE=\\serveur\fluks\pompage\mesures
DATE_TIME=08:00;20:00
SITE=Station_Pompage_Nord|SPN001

Configuration installation industrielle

DIR_CSV=D:\Supervision\Fluks\CSV
DIR_MESURE=D:\Supervision\Fluks\Mesures
DATE_TIME=07:00;11:00;15:00;19:00;23:00;03:00
SITE=Usine_Chimique_A|UCA001

Structure des données d'exemple

Hiérarchie type usine de traitement

Station_Traitement_Eau (Site)
├── Installation_Captage
│   ├── Pompe_Captage_01
│   │   ├── Mesures → Debit, Pression, Puissance
│   │   └── Alarmes → Defaut_Moteur, Surcharge
│   └── Pompe_Captage_02
├── Installation_Traitement
│   ├── Floculateur
│   │   ├── Mesures → Vitesse_Agitation, pH
│   │   └── Commandes → Marche_Arret
│   ├── Decanteur
│   │   └── Mesures → Turbidite, Niveau_Boues
│   └── Filtre_Sable
│       └── Mesures → Perte_Charge, Debit
└── Installation_Distribution
    ├── Reservoir_Stockage
    │   └── Mesures → Niveau, Temperature
    └── Station_Chloration
        ├── Mesures → Concentration_Cl2, Debit_Dosage
        └── Alarmes → Niveau_Bas_Produit

Variables DevIO correspondantes

Pompe_Captage_01:Mesures:Debit
Pompe_Captage_01:Mesures:Pression
Pompe_Captage_01:Mesures:Puissance
Pompe_Captage_01:Alarmes:Defaut_Moteur
Pompe_Captage_01:Alarmes:Surcharge
Floculateur:Mesures:Vitesse_Agitation
Floculateur:Mesures:pH
Floculateur:Commandes:Marche_Arret
Decanteur:Mesures:Turbidite
Decanteur:Mesures:Niveau_Boues
Filtre_Sable:Mesures:Perte_Charge
Filtre_Sable:Mesures:Debit
Reservoir_Stockage:Mesures:Niveau
Reservoir_Stockage:Mesures:Temperature
Station_Chloration:Mesures:Concentration_Cl2
Station_Chloration:Mesures:Debit_Dosage
Station_Chloration:Alarmes:Niveau_Bas_Produit

Monitoring et journalisation

Fichiers de log

Le module génère des logs détaillés :

C:\DevIO\log\DevioArchivesFluks1733058672.log

Contenu des logs

01/12/2024-14:30:00    Log File Created
01/12/2024-14:30:01    File DevioArchivesFluks.ini Read Parameters : DIR_CSV=C:\Fluks\CSV DIR_MESURE=C:\Fluks\Mesures Name_Station=Station_Principale Code_Station=SP001
01/12/2024-14:30:02    Thread Timer Created
01/12/2024-14:30:05    Data : Pompe01:Mesures:Debit
01/12/2024-14:30:05    EnterCriticalSection DevIOArchivesDBRecord
01/12/2024-14:30:05    Values written in Mesures file
01/12/2024-14:30:05    LeaveCriticalSection DevIOArchivesDBRecord
01/12/2024-14:32:00    Send Now triggered - Schedule time reached
01/12/2024-14:32:01    Equipment files generated successfully
01/12/2024-14:32:02    Installation files generated successfully
01/12/2024-14:32:03    Site files generated successfully
01/12/2024-14:32:04    TimeLastSent updated : 01/12/2024-14:32:00

Messages d'erreur courants

Message Cause Solution
Read File DevioArchivesFluks.ini Failed Fichier INI manquant Créer le fichier de configuration
Bad data name format Format nom incorrect Utiliser Équipement:Bloc:Donnée
Failed to create Mesures file Droits d'accès insuffisants Vérifier permissions répertoire
No schedule found Planning mal configuré Vérifier format HH:MM;HH:MM
Bad data type Type non supporté Exclure ARRAY et STRING

Thread de supervision

Fonctionnement

Le module lance un thread DevIOThreadTimer qui :

  1. Surveille les créneaux horaires programmés
  2. Vérifie les nouvelles données depuis le dernier envoi
  3. Déclenche la génération des fichiers Fluks
  4. Met à jour le fichier TimeLastSent
  5. Gère les installations en attente

Cycle de traitement

Démarrage Thread
    ↓
Vérification Heure Courante
    ↓
Comparaison Planning
    ↓
Si Créneau Atteint
    ↓
Génération Fichiers CSV
    ↓
Mise à Jour TimeLastSent
    ↓
Attente Cycle Suivant

Intégration avec Fluks

Import des fichiers

Fluks utilise les fichiers générés pour :

  1. site.csv → Configuration du site de supervision
  2. installations.csv → Définition des zones fonctionnelles
  3. equipements.csv → Catalogue des équipements et leurs paramètres
  4. mesures.csv → Données historiques et temps réel

Format attendu par Fluks

Les fichiers respectent le format CSV standard Fluks avec : - Séparateur : Point-virgule (;) - Encodage : UTF-8 - En-têtes : Première ligne avec noms de colonnes - Horodatage : Format AAAA-MM-JJ HH:MM:SS

Synchronisation

  • Temps réel : Fichier mesures.csv mis à jour en continu
  • Métadonnées : Fichiers de structure générés à chaque envoi
  • État : Sauvegarde de la dernière synchronisation

Optimisation des performances

Paramètres recommandés

Haute fréquence (< 5 min)

DATE_TIME=00:05;00:10;00:15;00:20;00:25;00:30;00:35;00:40;00:45;00:50;00:55
- Envois très fréquents - Surveillance continue

Fréquence standard (horaire)

DATE_TIME=00:00;01:00;02:00;03:00;04:00;05:00;06:00;07:00;08:00;09:00;10:00;11:00;12:00;13:00;14:00;15:00;16:00;17:00;18:00;19:00;20:00;21:00;22:00;23:00
- Équilibre performance/données - Usage industriel standard

Fréquence faible (quotidienne)

DATE_TIME=08:00;20:00
- Applications de supervision générale - Archivage long terme

Limites techniques

  • Thread unique : Un seul thread de supervision
  • Format fixe : Nommage Équipement:Bloc:Donnée obligatoire
  • Types supportés : Numériques uniquement
  • Tolérance planning : ±15 minutes fixe
  • Synchronisation : Section critique pour accès fichiers

FAQ et dépannage

Q : Les fichiers Fluks ne sont pas générés ?

R : Vérifier : - Configuration du planning dans DATE_TIME - Droits d'écriture sur les répertoires DIR_CSV et DIR_MESURE - Format des noms de variables DevIO (Équipement:Bloc:Donnée) - Logs d'erreur dans le répertoire log\

Q : Les données ne remontent pas dans Fluks ?

R : Contrôler : - Format des fichiers CSV générés (séparateur ;) - Cohérence des identifiants entre fichiers - Horodatage au format AAAA-MM-JJ HH:MM:SS - Configuration d'import dans Fluks

Q : Le planning d'envoi ne fonctionne pas ?

R : Vérifier : - Format HH:MM dans DATE_TIME - Séparateurs ; entre les créneaux - Heure système du serveur DevIO - Tolérance de ±15 minutes

Q : Performance dégradée avec beaucoup d'équipements ?

R : Optimiser : - Réduire la fréquence d'envoi - Utiliser des répertoires sur disque rapide (SSD) - Limiter le nombre de variables archivées - Surveiller l'utilisation mémoire du thread

Q : Erreur "Bad data name format" ?

R : S'assurer que : - Le format est exactement Équipement:Bloc:Donnée - Les noms ne contiennent pas de caractères spéciaux - Il y a exactement deux séparateurs : - Aucun champ n'est vide

Annexes et références utiles

Documentation Fluks

  • Format CSV : Spécification des fichiers d'import Fluks
  • Hiérarchie : Organisation Site → Installation → Équipement
  • API d'import : Méthodes d'intégration des données

Outils de supervision

  • Fluks : Plateforme de supervision industrielle
  • SCADA : Systèmes de supervision et acquisition
  • Historian : Bases de données historiques

Industries compatibles

  • Traitement des eaux : Stations d'épuration, distribution
  • Industrie chimique : Processus continus, batch
  • Énergie : Centrales, réseaux de distribution
  • Agroalimentaire : Chaînes de production

Documentation technique