Lire, écrire, appeler
Les trois verbes qui font l'essentiel du travail, et le DataValue autour duquel ils tournent tous. Ce cours couvre les attributs, le typage Variant, la lecture du code de statut renvoyé plutôt que son ignorance, l'écriture sans provoquer d'incompatibilité de type, et l'appel de méthodes.
| Leçons | 9 |
|---|---|
| Time | environ 66 minutes |
| Prérequis | A2 |
| Coût | Gratuit: leçons écrites ouvertes, vidéo et labs sur compte gratuit |
Ce que vous saurez faire
- Vous savez lire n'importe quel attribut de n'importe quel nœud, pas seulement sa Value.
- Vous savez expliquer ce que porte un DataValue en plus du nombre.
- Vous savez écrire une valeur sans déclencher d'échec de type ou de niveau d'accès.
- Vous savez appeler une méthode serveur et traiter ses arguments de sortie.
Programme
-
1
Lire plus que l'attribut Value8 min
DataType, ValueRank, AccessLevel, EURange, EngineeringUnits. Les attributs qui vous disent comment traiter la valeur que vous vous apprêtez à lire.
Ressource Un vidage complet des attributs d'une variable analogique d'un serveur réel
-
2
Décortiquer un DataValue8 min
Value, StatusCode, SourceTimestamp, ServerTimestamp. Quatre champs, dont trois systématiquement jetés par du code client qui ne sait ensuite plus expliquer ses propres données.
Ressource Une sortie DataValue brute montrant les quatre champs, dont un avec un statut non-Good
-
3
Lire le code de statut au lieu de l'ignorer7 min
Good, Uncertain et Bad sont un contrat. Que faire d'UncertainLastUsableValue avant qu'il n'empoisonne silencieusement une moyenne.
Ressource Une lecture renvoyant UncertainLastUsableValue, et la moyenne erronée qu'elle produit si on l'ignore
-
4
Choisir l'horodatage auquel vous vous fiez7 min
SourceTimestamp contre ServerTimestamp, TimestampsToReturn, et que faire quand un PLC n'en renseigne qu'un seul.
Ressource Le même abonnement avec les deux horodatages enregistrés, montrant la dérive entre eux
-
5
Écrire une valeur sans erreur de type7 min
Int16 n'est pas Int32, un scalaire n'est pas un tableau à un élément, et le ValueRank compte. Pourquoi la plupart des premières écritures échouent et comment faire marcher la deuxième.
Livrable Quatre écritures en échec avec le code de statut exact produit par chacune, puis les appels corrigés
-
6
Respecter l'AccessLevel avant d'écrire6 min
Nœuds en lecture seule, nœuds en écriture seule, et serveurs qui acceptent une écriture puis la jettent: ce que le serveur d'exemple umati fait délibérément.
Ressource Une écriture sur le serveur umati qui renvoie Good et ne change rien, avec la relecture qui le prouve
-
7
Lire et écrire des tableaux et des plages de tableaux7 min
IndexRange, écritures partielles de tableaux, et le décalage d'un cran qui fait passer une plage d'indices pour un bug serveur.
Ressource Une lecture de tableau avec trois expressions IndexRange différentes et leurs résultats
-
8
Appeler une méthode8 min
Arguments d'entrée et de sortie, l'attribut Executable, et en quoi l'échec d'une méthode diffère de l'échec d'un appel.
Ressource Un appel de méthode sur le serveur de démonstration Milo, avec ses arguments d'entrée et de sortie affichés
-
9
Opérations groupées sans atteindre de limite8 min
Les lectures et les écritures prennent des tableaux. Les limites du serveur sur le nombre d'opérations par appel, et pourquoi une grosse requête vaut mieux que mille petites: jusqu'au moment où ce n'est plus vrai.
Livrable Une lecture groupée de 500 nœuds face à 500 lectures unitaires, avec les deux temps et la limite du serveur
Lab
Compte gratuit requis
Démarrez un serveur local en une commande, écrivez-y une valeur, relisez-la, puis provoquez volontairement une incompatibilité de type et un échec de non-inscriptibilité pour reconnaître les deux.
Débloquer le lab →Dernière vérification le 7 septembre 2026 par rapport à OPC UA 1.05.07. OPC UA Connect est une ressource pédagogique et n'est pas affiliée à l'OPC Foundation.