Blocaine logo
FR   EN   中文    
Blocaïne est une plateforme logicielle dédiée à
l'automatisation des procédés industriels.
Blocaïne achitecture générale

  • L'Éditeur de bloc permet de créer des programmes en assemblant des blocs fonctionnels.
  • L'Exécuteur, exécute les programmes créés avec l’Éditeur de bloc, pilotant ainsi l’équipement industriel via des entrées/sorties déportées.


voir aussi le Tuto d'installation (en moins de 3 minutes)

Caractéristiques
  • « Chargement à Chaud* » : une nouvelle version d'un programme peut être chargée sans arrêter l'installation
  • Programmation graphique sous forme de blocs fonctionnels chaînés
  • Chaque variable possède nativement un bit de validité
  • Blocaine étant basée sur Python:
    • Ecriture possible de blocs fonctionnels en Python
    • Typage dynamique des variables
  • Débogage:
    • Visualisation en temps réel des variables
    • Toutes les variables sont forçables
  • L’ordre d’exécution des blocs est généré automatiquement
  • La mise en page est automatique
  • Un serveur web affiche l'état des tâches en cours d'exécution dans le PC cible
  • Un serveur OPC UA fait l'interface avec un éventuel IHM/SCADA
  • Blocaïne est multiplaforme (Windows, Linux, macOS...)
  • Blocaïne est libre de droits et en sources ouvertes
Avantages
  • Philosophie « KISS » (Keep It Simple, Stupid)
  • Low cost
  • Minimise l'obsolesence grace à des standards pérennes (PC, Ethernet, Python)
  • Pas de licence
Limitations
  • Ressources CPU: Blocaïne n'est pas adapté au gros projets demandant beaucoup de temps CPU, le temps d'exécution d'un bloc est de l'ordre de 2µs sur Raspberry pi 5, soit un maximum d'un demi-million de blocs/s
  • Temps réel: Blocaïne n'étant pas basé sur un system temps réel "dur", il faut accepter une certaine latence qui reste cependant inférieur à 1µs sur Raspberry pi 5
  • Bibliothéques: comme le projet est récent vous risquez de ne pas trouver tous les blocs "system" que vous souhaitez (voir list ci-dessous)
Avancement du projet
Evaluation
L’évaluation de Blocaïne est grandement simplifiée, puisque la version téléchargeable est configurée pour que:
  • l'Éditeur de bloc et l'Exécuteur s'exécutent sur le même PC, ce qui élimine toute configuration réseau
  • Certaines fonctionnalités sont déactivées (OPC, GPIO, MudBus/TCP), ce qui élimine toute installation de modules Python spécifiques
Documentation
doc. générale :


blocs System :
  • add addition
  • and ET logique
  • append ajout un élément en fin de list
  • cablin ajoute un élément à une structure
  • cablout extrait un élément à une structure
  • clock horloge
  • comp comparaison
  • const.pi constante pi
  • delay retard à la montée ou à la descente
  • differencial différenciel
  • div division
  • dt temps de cycle de la tâche
  • edge détection de front montant et/ou descendant
  • filter_FO filtre du 1er ordre
  • geti retourne l'élément [n]
  • GPIO_DI lecture d'une entrée digitale GPIO
  • GPIO_DO écriture d'une sortie digitale GPIO
  • GPIO_PWM écriture d'une sortie MLI GPIO
  • hold fonction maintien
  • information retourne les infos d'une variable
  • input entrée d'un bloc
  • input_output accéde à une sortie d'un autre process
  • insert insert un élément dans une list
  • integrator intégrateur en fonction du temps
  • len retourne le nombre d'éléments
  • limit limitations haute et basse
  • memory mémoire (bascule RS)
  • minmax minimum et maximum
  • modbus_conn ModBus/TCP connexion
  • modbus_read ModBus/TCP lecture des entrées
  • modbus_write ModBus/TCP affectation des sorties
  • mult multiplication
  • not NON logique
  • OPC_node création d'un noeud OPC UA
  • OPC_read lecture d'une variable OPC UA
  • OPC_server configuration d'un serveur OPC UA
  • OPC_var création d'une variable OPC UA
  • OPC_write affectation d'une variable OPC UA
  • or OU logique
  • output sortie d'un bloc
  • pop suprime un élément d'une list
  • previous variable mémorisée
  • puti affecte un élément d'une list
  • range itération pour boucle
  • readbit lit un bit d'un entier
  • select selection (if/then/else)
  • sub soustraction
  • time lecture horloge system
  • type conversion de type
  • validRead lecture du bit de validité
  • validWrite écriture du bit de validité
  • writebit affecte un bit d'un entier


blocs User :
  • loop incrémentation
contact: contact@blocaine.org Mentions légales