Auswahl des passenden SDKs

Die Grafik zeigt die erhältlichen SDKs zur Entwicklung von OPC-UA-Produkten. Abhängig vom Zielsystem und den Anforderungen der Applikation kann zwischen verschiedenen SDKs gewählt werden.

Wann verwende ich das High Performance SDK?

Das High Performance SDK ist eine komplette Neuentwicklung, bei der insbesondere auf maximale Optimierung bezüglich Geschwindigkeit und möglichst wenig Speicherverbrauch geachtet wurde.Wenn Sie Embedded-Geräte entwicklen wollen und den maximal portablen Code benötigen, dann ist das High Performance SDK die richtige Wahl. Das High Performance SDK besitzt einen Interprozess Kommunikationsbus an den die einzelnen Komponenten eingehängt werden, weiterhin gibt es intern eigene Memorypools. Die neue interne Architektur macht es extrem flexibel um es auf andere platformen zu portieren. Der reine C99 Code läßt sich auf nahezu allen Betriebssystemen und CPU architekturen adaptieren. Das High Performance SDK ist lauffähig auf x86, ARM, MIPS unter Linux, vxWorks, QNX, Segger mbedOS und Windows. Aktiv unterstützt sind Linux und Windows on x86. Weitere Portierungen sind auf Anfrage erhältlich.

Beachten Sie: Durch die Spezialisierung auf embedded Geräte und maximale Flexibilität hat das High Performance SDK die geringsten Anforderungen an Codesize und CPU Power. Es ist komplett in AnsiC (C99) Code geschrieben und dadurch extrem flexibel bei der Portierung auf andere Betriebssysteme (oder Bare Metal). Es verwendet keine Speicherallokationen zur Laufzeit und ist dadurch sehr schnell, auch auf PC-basierten Plattformen.

Wann verwende ich das ANSI C SDK?

Wenn Sie ein Produkt für ein Embedded-Gerät entwickeln und ein hohes Maß an Portabilität in Ihrem Code sicherstellen wollen, dann können Sie das ANSI C SDK oder das High Performance SDK verwenden. Das ANSI C SDK arbeitet asynchron und single-threaded. Somit wird kein multi-threading benötigt. ANSI C Compiler sind für nahezu alle Betriebssysteme und CPU Architekturen verfügbar. Die ANSI C Variante des SDK läuft auf x86, ARM, MIPS (mit Linux), vxWorks, QNX, Euros, TenASys INtime, WinCE, Windows XP. Unified Automation unterstützt aktiv Linux und Windows auf x86. Andere Portierungen sind auf Anfrage verfügbar.

Beachten Sie: Das ANSI C SDK hat im Vergleich zum C++ SDK geringe Anforderungen bezüglich Codegröße, Größe des Arbeitsspeichers und CPU-Leistung, aber es profitiert nicht direkt von Multikern-CPUs, wie den neueren ARM-CPUs, solange es nur in einem Task/Thread läuft. Dies kann ein Nachteil sein, ist aber oft dennoch eine gewünschte Eigenschaft. Speziell auf Embedded-Geräten, auf denen OPC-UA-Kommunikation nur ein kleiner Teil einer viel größeren Applikation ist, kann das Gerät einen CPU-Kern explizit für den Main-Task (z. B. SPS-Programm) verwenden und auf den restlichen Kernen können andere Tasks, wie beispielsweise der OPC UA Server, laufen.

Wann verwende ich das C++ SDK?

Falls Sie unterschiedliche Betriebssysteme unterstützen wollen oder wenn Sie maximale Performance benötigen, ist das C++ SDK die richtige Wahl. Speziell wenn Sie C++-Entwickler haben, ist es meist nicht sinnvoll eine andere Technologie wie .NET oder Java einzusetzen, denn gerade C++-Entwickler implementieren schneller in C++ als mit jeder anderen Technologie. „Rapid Application Development“ ist eine Frage von guten Bibliotheken aber nicht eine Frage der verwendeten Programmiersprache. Das C++ SDK arbeitet multi-threaded um auch moderne Multi-Core-CPUs nutzen zu können und es kann für 32bit- und 64bit-CPUs übersetzt werden. Der SDK-Code läuft derzeit auf x86 und ARM, aber er kann einfach auf andere Architekturen portiert werden.

Beachten Sie: Selbst wenn Sie zunächst nur ein Betriebssystem (z. B. Windows) unterstützen wollen, können Sie später problemlos weitere Betriebssystem unterstützen. Die einzige Einschränkung ist, dass es einen C++-Compiler geben muss. Einige Embedded-Systeme erlauben kein multi-threading oder haben keinen C++-Compiler. In diesen Fällen ist die einzige Lösung das ANSI C SDK bzw. das High Performance SDK zu verwenden.

Wann verwende ich das .NET SDK?

Wenn Sie OPC UA in eine vorhandene Anwendung integrieren wollen, die in .NET C# geschrieben ist und die unter MS Windows läuft, dann ist unser .NET SDK die richtige Wahl. Eine Anwendung mit grafischer Nutzeroberfläche, die für PC-basierte Windows Plattformen entwickelt wird, insbesondere OPC UA Client Anwendung, eignen sich hervorragend für den Einsatz unseres .NET SDK. Visualisierung, HMI und SCADA Anwendungen für Desktop- oder Panel-PC implementieren typischerweise beides, UA Client um Daten zu beschaffen und UA Server um Informationen anzubieten, in einer Applikation.

Hinweis: Unser .NET SDK benötigt mindestens .Net Framework V3.5 SP1. Es enthält  auch Assemblies für .NET Framework 4.0 und 4.5 und 4.6.1. Diese können auch mit neueren .NET Framework z.B. 4.7 und 4.8 verwendet werden. Das SDK läuft nicht auf frühen .NET Frameworks < 3.5. Es läuft nicht auf dem .NET Compact Framework, welches mit WinCE ausgeliefert wurde, und es wird nicht auf .NET Mono getestet. Das neue Universal .NET Standard 2.0 Cross-Platform-Framework wird seit Mai 2019 (seit der v3.0.0) von unserem .NET SDK unterstützt.

 

Wann verwende ich das Java SDK?

Falls Sie mit Ihrer Applikation verschiedene Plattformen unterstützen wollen, inklusive "nativer" Entwicklung für Android,  kommt das Java SDK in die engere Wahl. Sie können schneller, oder besser gesagt komfortabler, in Sprachen wie Java oder .NET entwickeln, die für ihre High-Level Umgebung bekannt sind. Jedoch sollten Sie den Ressourcenverbrauch bezüglich Speicher und CPU-Geschwindigkeit Ihres Zielsystems berücksichtigen. Der größte Vorteil ist, dass Sie Ihre Applikation nicht für jede Plattform neu kompilieren müssen. Die Java Anwendung wird auf jeder Plattform laufen, die das entsprechende JRE (Java Runtime Environment) mitbringt, für das die Anwendung geschrieben wurde. Wir bieten ein Java SDK von unserem Entwicklungspartner ProsysOPC an.