Ebenso wie ein geringer Speicherplatzbedarf ist es wichtig, dass der OPC-UA-Server die CPU des Produkts nicht überlastet, da sonst Fehlfunktionen auftreten können oder das Gerät nicht reagiert. Die klassische CPU eines elektronischen Industriegeräts wickelt weit mehr ab als nur Kommunikationsaufgaben. Das Ziel bei einer Neuentwicklung ist meist eine Minimierung der Stücklistenkosten (BOMs), während das alte Design nur eine feste CPU-Bandbreite für die Kommunikation zur Verfügung hat. Ähnlich wie beim Speicherplatz ist die Lösung dann so ressourcen-zehrend, dass sie nicht genutzt werden kann.
Passende SDKs verfügen über eine besonders effiziente interne Architektur, die so konzipiert ist, dass die CPU-Auslastung möglichst gering bleibt. Gängige Anwendungen und Implementierungen benötigen bei einem marktüblichen ARM-Mikrocontroller in der Regel weniger als zehn Prozent der CPU-Bandbreite. Die SDK-Leistung steigt in vorhersehbarem Maße je nach Anzahl der zu überwachenden Tags und der Tag-Sample-Rate (Tabelle 2).
Test | Conditions | Hardware | CPU Auslastung (%)* |
---|---|---|---|
100 kontinuierlich wechselnde Tags | Sampling & Reporting alle 100 ms | »STM32F407« von STMicroelectronics (ARM Cortex-M4F) bei 168 MHz | 12,50 |
1000 kontinuierlich wechselnde Tags | Sampling & Reporting alle 100 ms | »AM3359« von Texas Instruments (ARM Cortex-A8) bei 1 GHz | 31,00 |
Tabelle 2: Typische Serverleistung (*Kennzahlen erhoben für Verwendung von GCC-O3)
Wie bereits erwähnt, ist OPC UA ein umfangreicher und komplexer Standard. Wenn Unternehmen modernste Techniken in ihr Produkt integrieren möchten, müssen sie sich mehrere Fragen stellen:
Eine gute Lösung nimmt dem Anwendungsentwickler die komplexesten Aufgaben ab und fügt sich nahtlos in die bestehende Software-Umgebung ein, ganz gleich, wie anspruchsvoll sie gestaltet ist. Das OPC UA Embedded Server SDK von MatrikonOPC ist eine Single-Threaded-Implementierung, die in einem einzelnen RTOS-Task oder in einer Bare-Metal-Umgebung läuft. Die Integration erfordert nur geringe Veränderungen, sodass Anwender nicht unnötig Zeit für Software-Anpassungen aufwenden müssen.
Qualität ist eintscheidend
Ob Anwender bei der Entwicklung eines eingebetteten Systems die Software von Grund auf entsprechend programmieren oder auf geistiges Eigentum von Drittanbietern zurückgreifen – Qualität ist in jedem Fall entscheidend. Ein unzuverlässiges und/oder unterdurchschnittliches Produkt kann das Firmenimage schädigen und Marktanteile kosten. Nachträgliche Korrekturen sind zwar über Firmware-Upgrades möglich, aber umständlich und kostenintensiv. Verlässlichkeit ist nicht nur das Ergebnis guter Arbeit, es ist auch eine Frage der richtigen Entscheidungen, beispielsweise beim Speichermanagement: In einer PC-basierten Umgebung ist es durchaus üblich, dass Software-Entwickler Datenstrukturen in den freien Speicher legen, dynamische Allokation genannt. Während dieser Ansatz für Desktop-PCs ideal ist, lässt er sich in ressourcen-beschränkten Umgebungen weniger gut umsetzen. Wenn der Gerätespeicher begrenzt ist und die Software mit Heap-basierter Allokation arbeitet, kann es zu unangenehmen Nebenerscheinungen kommen. Das offensichtlichste Problem ist dabei die vollständige Heap-Auslastung: Das Programm hat während des normalen Betriebs keinen Speicherplatz mehr zur Verfügung.
Ein weniger bekanntes Problem ist die Heap-Fragmentierung. Dabei ist genug Speicherplatz vorhanden, dieser wird aber mit der Zeit so stark fragmentiert, dass kein ausreichend großer Speicherblock mehr vorhanden ist, um eine bestimmte Speicherallokation durchzuführen. In beiden Fällen kann die Anwendung ihren intendierten Zweck nicht mehr erfüllen.
Ein entsprechend programmiertes OPC UA Embedded Server SDK (Bild) verwendet ein spezielles Speichermodell, das eine vollständige Heap-Auslastung und -Fragmentierung vermeidet, ganz gleich, wie viele Jahre das Gerät in Betrieb ist. Angesichts der Beschaffenheit von Industrieprozessen und der Notwendigkeit einer verlässlichen Verfügbarkeit von Systemen ist das eine Grundvoraussetzung, welche die OPC-UA-Bibliothek, die ein Unternehmen in seine Produkte integrieren möchten, erfüllen muss.
Mit dem Einsatz eines von der OPC Foundation unabhängig zertifizierten OPC UA Embedded Server SDKs sind Anwender in Sachen Qualität auf der sicheren Seite.