DevIOIEDLLThingworx
Introduction
DevIOIEDLLThingworx est une DLL d'archives DevIO permettant l'envoi automatique de données vers la plateforme ThingWorx de PTC. Contrairement aux interfaces d'équipements classiques, cette DLL fonctionne comme un module d'archivage qui traite les fichiers de données DevIO et les transmet au serveur ThingWorx via des requêtes HTTP/JSON.
Cas d'usage typiques : - Archivage automatique des données DevIO vers ThingWorx - Intégration avec des plateformes IoT industrielles PTC - Transfert de fichiers de données vers le cloud ThingWorx - Synchronisation de données historiques avec ThingWorx
Compatibilité et prérequis
- Versions supportées : DevIO v6.0 et supérieures
- Environnements : Windows (toutes versions compatibles DevIO)
- Dépendances :
- Plateforme ThingWorx accessible via HTTP/HTTPS
- Clé d'application (appKey) ThingWorx valide
- Accès réseau sortant vers le serveur ThingWorx
- Bibliothèques cURL et JSON Spirit
Fonctionnalités supportées
- Archivage automatique : Traitement automatique des fichiers de données DevIO
- Format JSON : Conversion et envoi des données au format JSON
- Encodage Base64 : Encodage des fichiers pour transmission sécurisée
- Gestion des erreurs : Retry automatique et archivage des échecs
- Logs détaillés : Traçabilité complète des opérations d'archivage
- Configuration XML : Paramétrage via fichier XML externe
Configuration de la DLL
Architecture de fonctionnement
La DLL DevIOIEDLLThingworx ne fonctionne pas comme une interface d'équipement classique avec des paramètres de ligne de commande. Elle utilise :
- Fonctions exportées :
DevIOArchivesDBOpen()appelée par DevIO - Fichier XML de configuration :
DevIOIEDLLThingworx.xml - Répertoires de travail : Spool, archives, échecs
Fichier de configuration XML
Le fichier DevIOIEDLLThingworx.xml doit être placé dans le répertoire DevIO et contient trois sections principales :
Section LocalSetup
<LocalSetup>
<LogDirectory>C:\DevIO\Logs</LogDirectory>
<LogLines>1000</LogLines>
<TimeInterval>5000</TimeInterval>
</LocalSetup>
Section FilesOptions
<FilesOptions>
<KeepSentFiles>true</KeepSentFiles>
<SpoolDirectory>C:\DevIO\Spool</SpoolDirectory>
<SentDirectory>C:\DevIO\Sent</SentDirectory>
<FailDirectory>C:\DevIO\Failed</FailDirectory>
<EncodingType>base64</EncodingType>
</FilesOptions>
Section ThingWorxOptions
<ThingWorxOptions>
<URL>https://your-thingworx-server.com/Thingworx/Things/YourThing/Services/YourService</URL>
<AppKey>your-application-key-here</AppKey>
<Timeout>30000</Timeout>
</ThingWorxOptions>
Configuration dans DevIO Studio
Activation de l'archivage ThingWorx
- Configurer l'archivage dans DevIO Studio
- Sélectionner la DLL : DevIOIEDLLThingworx.dll
- Placer le fichier XML dans le répertoire DevIO
- Créer les répertoires de travail (Spool, Sent, Failed)
Paramètres de configuration
| Paramètre | Description | Exemple |
|---|---|---|
| URL | URL du service ThingWorx | https://server.com/Thingworx/Things/MyThing/Services/DataService |
| AppKey | Clé d'application ThingWorx | 12345678-1234-1234-1234-123456789abc |
| SpoolDirectory | Répertoire des fichiers en attente | C:\DevIO\Spool |
| SentDirectory | Répertoire des fichiers envoyés | C:\DevIO\Sent |
| FailDirectory | Répertoire des fichiers en échec | C:\DevIO\Failed |
| KeepSentFiles | Conserver les fichiers envoyés | true/false |
| LogLines | Nombre de lignes de log | 1000 |
| TimeInterval | Intervalle de traitement (ms) | 5000 |
Utilisation et supervision
Fonctionnement automatique
- DevIO génère des fichiers de données dans le répertoire Spool
- La DLL détecte automatiquement les nouveaux fichiers
- Encodage Base64 des données pour transmission
- Envoi HTTP/JSON vers ThingWorx avec authentification par AppKey
- Archivage des fichiers selon la configuration (conservés ou supprimés)
Surveillance des opérations
- Logs : Fichier de log détaillé des opérations
- Répertoires : Surveillance des répertoires Spool, Sent, Failed
- Statut des envois : Vérification des succès/échecs via les logs
Structure des données JSON
Les données sont envoyées au format JSON avec structure :
{
"filename": "data_20231201_120000.csv",
"data": "base64_encoded_file_content",
"timestamp": "1701432000000"
}
FAQ et dépannage
Problèmes courants
Q : Les fichiers ne sont pas envoyés vers ThingWorx - Vérifier la configuration XML (URL, AppKey) - Contrôler la connectivité réseau vers ThingWorx - Vérifier les logs pour les erreurs d'authentification
Q : Erreurs d'authentification ThingWorx - Vérifier la validité de l'AppKey - Contrôler les droits de l'application sur ThingWorx - Tester l'URL du service ThingWorx
Q : Fichiers bloqués dans le répertoire Spool - Vérifier les permissions sur les répertoires - Contrôler les logs pour les erreurs de traitement - Redémarrer le service DevIO si nécessaire
Diagnostic
- Logs détaillés : Consulter le fichier de log généré par la DLL
- Répertoires Failed : Analyser les fichiers en échec
- Test manuel : Tester l'URL ThingWorx avec un client HTTP
Annexes et références utiles
- Documentation ThingWorx PTC
- API REST ThingWorx
- DevIO Studio - Configuration des archives
- Format JSON et Base64
- Support technique Technilog pour configuration avancée