Comment faire j'ai une requête de données brutes à partir d'un Proficy Historien?
Comment puis-je récupérer des premières séries chronologiques de données à partir d'un Proficy Historian/iHistorian?
Idéalement, je voudrais demander des données pour une balise particulière entre deux dates.
OriginalL'auteur Michael Haren | 2008-11-20
Vous devez vous connecter pour publier un commentaire.
Il existe différents modes d'échantillonnage, vous pouvez expérimenter avec.
Ces modes sont disponibles à l'aide de toutes les Api suivantes.
De ces la tendance de la mode d'échantillonnage est probablement ce que vous voulez, car il est spécialement conçu pour la cartographie/analyse des tendances. Si, d'un laboratoire et d'interpolation peut être utile.
Lire le livre électronique pour plus d'informations sur chaque mode d'échantillonnage. Sur ma machine, il est stocké en tant que
C:\Program Files\GE Fanuc\Proficy Historian\Docs\iHistorian.chm
et j'ai la version 3.5 est installé. Accorder une attention particulière aux sections suivantes.Voici comment vous pouvez construire un OLEDB pour faire tendance échantillonnage.
Montrant les méthodes équivalentes à l'aide de l'Utilisateur de l'API et SDK sont complexes (d'autant plus avec l'Utilisateur de l'API), car ils demandent beaucoup de plomberie dans le code pour obtenir le programme d'installation. Le Client d'Accès de l'API est plus récente et utilise WCF derrière les coulisses.
Par le façon, il ya quelques limitations avec OLEDB méthode.
Je n'ai pas le temps de tester ce droit maintenant, mais c'est exactement ce que je cherchais quand j'ai commencé. Merci! Pouvez-vous, par hasard, ajoutez une note sur l'endroit où l'ebook est généralement situé?
Toutes les idées sur la façon d'utiliser le construit en historien des fonctions comme PreviousValue de cette façon? Peut oledb faire cela? quelque chose le long des lignes de sélectionner "timestamp, PreviousValue(Temps, tagname) à partir de ..."
Je ne le pense pas, mais poster une autre question, et décrire clairement ce que vous voulez et je pourrais être en mesure de vous aider.
Jetez un oeil à ma réponse Brian
OriginalL'auteur Brian Gideon
Un collègue de la mine de mettre cela ensemble:
Dans le web.config:
Dans la couche de données:
Mise à jour:
Cela a bien fonctionné, mais nous nous sommes heurtés à un problème avec les balises qui ne sont pas mis à jour très souvent. Si la balise n'a pas de mise à jour près du début ou de la fin de la demande de startDate et endDate, la tendance serait moche. Pire, toujours été les cas où il n'y avait pas explicite points au cours de la fenêtre demandé-nous obtiendrions pas de données.
J'ai résolu ce problème en faisant trois requêtes:
C'est potentiellement un moyen inefficace de le faire, mais Il Fonctionne:
Et oui, je sais, ces requêtes doivent être paramétrées.
Concernant aucun des échantillons que vous pouvez faire "ReadSamplesByCount" au lieu de l'heure, de cette façon, vous obtenez au moins 1 échantillon en arrière. Si il n'y a pas beaucoup d'échantillons de l'échantillon, cependant, peut-être des années après la période de temps que vous souhaitez afficher.
OriginalL'auteur Michael Haren
Michael--dans IP21 il y a un "Interpolé", ainsi que le "réel" point de données de la table. Ne Proficy ont aussi?
J'ai couru dans la même chose il y a quelques années avec un système PI, donc je ne ressens votre douleur!
OriginalL'auteur reallyJim
Nous avons écrit un wrapper DLL qui ressemblait à ça comme ceci:
Certaines notes sont que iFIX va vérifier si la DLL est chargée au démarrage de sorte que vous besoin de faire des choses comme dynamiquement charger/décharger la DLL ainsi que d'autres applications ne tombe pas en panne. Nous l'avons fait en supprimer/ajouter des clés de registre à la volée.
Une autre est de savoir si vous sondage de 10 000 échantillons, et 1 des échantillons sont corrompus, il fera tomber tous les 10 000 échantillons. Vous avez besoin de mettre en œuvre un mauvais gestionnaire de données qui permettra de mettre à côté des données de mauvaise qualité et d'un incrément dans les étapes pour obtenir toutes les données de chaque côté de la mauvaise échantillon.
Il y a plusieurs fichiers d'en-tête qui contient tous les codes d'erreur et la tête de la fonction de la DLL.
OriginalL'auteur rolls