Aller au contenu

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 :

  1. Fonctions exportées : DevIOArchivesDBOpen() appelée par DevIO
  2. Fichier XML de configuration : DevIOIEDLLThingworx.xml
  3. 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

  1. Configurer l'archivage dans DevIO Studio
  2. Sélectionner la DLL : DevIOIEDLLThingworx.dll
  3. Placer le fichier XML dans le répertoire DevIO
  4. 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

  1. DevIO génère des fichiers de données dans le répertoire Spool
  2. La DLL détecte automatiquement les nouveaux fichiers
  3. Encodage Base64 des données pour transmission
  4. Envoi HTTP/JSON vers ThingWorx avec authentification par AppKey
  5. 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