Archives par mot-clé : Python

A4A : Trends avec Bokeh

Bonjour,

Introduction

Comme je le disais ce tantôt, j’ai entrepris cette année une formation en Data Science chez DataScientest et j’apprends plein de choses intéressantes en découvrant moult bibliothèques dont Bokeh.

Bokeh dispose d’un serveur web qui permet donc de servir des documents générés par des applications en Python.

Dans ces documents, on peut faire figurer toutes sortes de graphiques et notamment des courbes représentant des séries de données temporelles, des time series.

Les données peuvent être des données enregistrées, et on affiche alors un historique, ou des données instantanées, en streaming, et on affiche alors une courbe de tendance.

Application 1

Tout le monde se rappelle de cette fameuse application née en 2012.

Au départ, elle ne disposait que d’une interface Modbus TCP Serveur pour y connecter une supervision.

Elle dispose depuis d’une interface Web comme tout un chacun peut le constater. Cependant, le serveur Modbus TCP est toujours là, prêt à servir des données, par exemple via le Modbus-ToolKit dont il a déjà été question dans ces colonnes.

Application OMB-App1

L’idée étant de visualiser la tendance de la courbe du niveau de la cuve, nous aurions pu tout aussi bien faire comme dans la démonstration qui met en œuvre la communication S7 et Chart.js.

Mais, étudiant Bokeh, j’ai opté pour une application Client Modbus TCP qui récupère donc les données de l’application 1 et génère une courbe de tendance.

Il y a une démonstration bien sûr dans mon petit nuage :
https://omb-app1.demo.ada4automation.org/OMB-App1

Le code source est comme de bien entendu ouvert et disponible ici pour vos propres expérimentations.

Intégration

Bien sûr, c’est mieux si l’IHM web de l’application 1 intègre cette courbe de tendance.

J’ai donc rajouté une vue avec une simple balise <iframe> et le tour est joué !

Et après ?

Bien sûr, ce même principe, une application Client Modbus TCP pour visualiser des données de tendance, peut présenter un intérêt dans bien d’autres contextes.

On peut tout aussi bien imaginer par ailleurs d’utiliser le binding cifX en lieu et place de Modbus TCP et ainsi visualiser des données obtenues depuis tous les bus de terrain supportés, classiques ou Ethernet Temps-Réel.

Et pourquoi se limiter à de la visualisation ? 😉

Il faudra quand même que je trouve le temps de jouer avec Panel

Cordialement,
Stéphane