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
- Initialisation : Lecture du fichier
DevioArchivesFluks.ini - Collecte : Réception des données DevIO avec parsing du format
Équipement:Bloc:Donnée - Structuration : Organisation selon la hiérarchie Fluks
- Archivage : Écriture dans
mesures.csvavec horodatage - Planification : Vérification des créneaux d'envoi programmés
- 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_Mesures→Mesures - Préfixes de données :
B_Temp_Eau→Temp_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 :
- Heure courante correspond à un créneau programmé (±15 minutes)
- Délai écoulé depuis le dernier envoi > 15 minutes
- 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éesSTRING: Chaînes de caractèresSTRUCTURE: 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
- Ouvrir le projet avec DevIO Studio
- Aller dans Configuration → Archives
- Ajouter une nouvelle archive de type Fluks
- 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 :
- Surveille les créneaux horaires programmés
- Vérifie les nouvelles données depuis le dernier envoi
- Déclenche la génération des fichiers Fluks
- Met à jour le fichier
TimeLastSent - 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 :
- site.csv → Configuration du site de supervision
- installations.csv → Définition des zones fonctionnelles
- equipements.csv → Catalogue des équipements et leurs paramètres
- 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.csvmis à 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
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
Fréquence faible (quotidienne)
DATE_TIME=08:00;20:00
Limites techniques
- Thread unique : Un seul thread de supervision
- Format fixe : Nommage
Équipement:Bloc:Donnéeobligatoire - 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