Aller au contenu

OPC UA

Exposez les simulations Miravo via un serveur OPC UA navigable avec des ObjectTypes typés, des unités d'ingénierie, des plages EU et des méthodes exécutables.

L’adaptateur OPC UA de Miravo projette le graphe d’actifs dans un espace d’adresses OPC UA typé. OPC UA est optionnel — activez-le avec --opcua.

Fenêtre de terminal
miravo start --template smart-factory --opcua

Connectez n’importe quel client OPC UA (UaExpert, Prosys, Kepware) à :

opc.tcp://localhost:4840/miravo

La hiérarchie de chemin de navigation se mappe directement aux nœuds OPC UA :

Root/Objects/
MiravoWorks (FolderType)
smart-factory (FolderType)
production (FolderType)
line-1 (FolderType)
centrifugal-pump-001 (Object, typeDefinition: centrifugal-pump)
rpm (Variable, Double, AccessLevel: CurrentRead)
speed_command (Variable, Double, AccessLevel: CurrentRead|CurrentWrite)
serial_number (Property, String, AccessLevel: CurrentRead)
Start (Method)
Stop (Method)
Concept modèleMapping OPC UA
Segments de cheminNœuds FolderType
Instance d’actifObject avec HasTypeDefinition
Membre variableVariable (componentOf instance)
Membre propertyProperty (propertyOf instance, lecture seule)
MéthodeNœud Method avec arguments typés
Type de données MiravoDataType OPC UA
DoubleDataType.Double
FloatDataType.Float
Int32DataType.Int32
UInt16DataType.UInt16
UInt32DataType.UInt32
BooleanDataType.Boolean
StringDataType.String
Accès modèleAccessLevel OPC UA
readCurrentRead
readwriteCurrentRead + CurrentWrite
writeCurrentWrite

Les propriétés sont toujours en lecture seule quel que soit l’accès déclaré.

Les membres avec métadonnées unit reçoivent des nœuds EUInformation OPC UA. Les membres avec eu_range reçoivent des nœuds EURange. Cela permet aux clients OPC UA d’afficher les unités et la mise à l’échelle correctes.

Les méthodes de modèle avec métadonnées runtime sont exécutables depuis les clients OPC UA. Les arguments d’entrée et de sortie sont typés et suivent l’ordre de déclaration dans le modèle.

Utilisez n’importe quel client OPC UA (UaExpert, Prosys, ou opcua-commander) pour appeler une méthode :

  1. Naviguez jusqu’au nœud de l’instance (ex. centrifugal-pump-001)
  2. Sélectionnez la méthode (ex. SetSpeed)
  3. Fournissez les arguments d’entrée dans l’ordre de déclaration (ex. speed_rpm: 900)
  4. Exécutez — le moteur applique la méthode et retourne les arguments de sortie

Les méthodes sans bloc runtime apparaissent dans l’espace d’adresses pour la navigation mais retournent une erreur si appelées.

OptionVariable d’envDéfautDescription
--opcuaDésactivéActiver le serveur OPC UA
--opcua-portMIRAVO_OPCUA_PORT4840Port du serveur
--opcua-hostMIRAVO_OPCUA_HOST0.0.0.0Hôte d’écoute du serveur

Réglage avancé :

Variable d’envDéfautDescription
MIRAVO_OPCUA_WRITE_BUDGET8192Écritures max dans l’espace d’adresses par cycle de drain (512-65536)

MQTT et OPC UA peuvent s’exécuter simultanément depuis la même simulation, et des protocoles supplémentaires (Modbus TCP, Sparkplug B) sont sur la feuille de route :

Fenêtre de terminal
miravo start --template smart-factory --opcua

Cela démarre MQTT sur le port 1883 et OPC UA sur le port 4840. Tous les adaptateurs lisent depuis le même graphe d’actifs à chaque tick. Les données sont cohérentes entre les protocoles.

Activez ou désactivez OPC UA pendant que la simulation est en cours :

Activer OPC UA :

Fenêtre de terminal
miravo adapter enable opcua --port 4840

Désactiver OPC UA :

Fenêtre de terminal
miravo adapter disable opcua