Windows für Echtzeit-Anwendungen
Moderne, leistungsfähige Windows Echtzeitlösung
Immer mehr Anwendungen, insbesondere im Markt für industrielle Automatisierung, der Medizintechnik, der Datenerfassung und Messtechnik, erfordern deterministisches Echtzeitverhalten. Mit der Windows Echtzeiterweiterung von acontis ist es möglich, unter Windows hart echtzeitfähige und deterministische Applikationen auszuführen. Für den Echtzeitteil stehen zahlreiche vorhandene Treiber zur Verfügung, z. B. für Feldbussteuerungen oder GigE-Kamerasysteme, Kommunikations-Stacks (z.B. EtherCAT, Profinet, OPC, OPC UA, TSN, ...) oder komplexe Softwarelösungen wie CNC-Steuerungen oder Software-SPS.
Standards statt propritärer Lösungen
Nicht alle Echtzeiterweiterungen oder Echtzeitlösungen für Windows, sogenannte Windows Real-time Extensions (Windows RTX), sind gleich implementiert, es gibt wichtige Vor- und Nachteile zu berücksichtigen. Auch wenn häufig ein solcher Eindruck beim Benutzer geweckt wird, Windows wird hierbei nicht selbst zu einem Echtzeitbetriebssystem (RTOS). Bestehende oder neu entwickelte Windows-Anwendungen verhalten sich, auch nach der Installation einer Echtzeiterweiterung, nicht wie Echtzeitanwendungen.
In der Regel implementieren Windows-Echtzeiterweiterungen für diesen Zweck ein proprietäres Echtzeitbetriebssystem (oder eine proprietäre Echtzeitumgebung) parallel zu Windows oder manchmal sogar in Windows eingebettet. Hier muss jede Anwendung mit Echtzeitanforderungen innerhalb dieses proprietären Kernels oder in dieser proprietären Echtzeitumgebung ausgeführt werden. Dies kann eine Herausforderung für Entwickler sein, da sie eine proprietäre Umgebung für die Entwicklung ihrer Echtzeitanwendungen lernen und verwenden müssen. Darüber hinaus müssen sie sich auf Funktionen verlassen, die vom Hersteller des Echtzeit-Kernels oder der Echtzeitumgebung implementiert wurden. Häufig fehlen solche Funktionen oder es nimmt einige Zeit in Anspruch bevor diese vollständig verfügbar sind.
Die Windows-Echtzeiterweiterung von acontis funktioniert anders als herkömmliche Windows-Echtzeiterweiterungen und bietet eine interessante Alternative, die Anwender und Implementierer von Echtzeitanwendungen in Betracht ziehen sollten. Zum einen verwendet acontis einen stark separierten Ansatz für die Echtzeitanwendungen und den (Nicht-Echtzeit-) Windows-Teil. Anstatt ein proprietäres RTOS oder eine Echtzeitumgebung zu verwenden, wird ein Standard-Echtzeitkernel oberhalb einer hart echtzeitfähigen Hypervisor Umgebung verwendet. Dieser Hypervisor ist der Schlüssel und gewährleistet eine viel bessere Isolierung von Windows im Vergleich zu herkömmlichen Echtzeiterweiterungen.
Microsoft Visual Studio-Unterstützung
Zentraler Teil bei der Entwicklung und beim Debugging von Echtzeitanwendungen ist die Unterstützung von Visual Studio. Mithilfe von Visual Studio Wizards können Kunden auf einfache Weise Echtzeitanwendungen erstellen – auf dieselbe Weise wie beim Erstellen von Windows-Anwendungen. Das Debuggen von Echtzeitapplikationen erfolgt hierbei wie gewohnt gleich wie das Debuggen normaler Windows-Anwendungen.
Die wichtigsten Funktionen auf einen Blick
- Verfügbar ab Windows 7 (32 Bit und 64 Bit)
- Support für Windows 10 IoT (Windows 10 IoT Core auf Anfrage)
- Schnelle Reaktionszeiten innerhalb von Mikrosekunden und vollständige Unabhängigkeit von Windows. Selbst nach einem Absturz von Windows funktioniert der Echtzeit-Teil weiter!
- Optimierte Nutzung von Multi-Core-Systemen (Nutzung von einem einzelnen oder auch mehrerer CPU-Kerne für den Echtzeit-Teil)
- Intuitive und standardisierte Echtzeit-API (Prozesse, Threads, Events, Sockets, POSIX-Unterstützung, ...)
- Unterstützung der Microsoft Development Tools (Visual Studio)
- Sehr komfortable Debugging-Umgebung für den Echtzeitbereich mit den Microsoft-Tools. Echtzeitanwendungen werden wie bei einer normalen Windows-Anwendung entwickelt und debuggt
Echtzeitlösung von acontis: hart echtzeitfähig und einfach zu bedienen!
Bedenken, dass man in die Einarbeitung in eine neue Echtzeit-Umgebung erheblichen Aufwand investieren muss sind unbegründet. Erstens muss sich der Entwickler nicht darum kümmern, wie die Echtzeit-Umgebung konfiguriert wird. Die acontis-Lösung wird mit einem gebrauchsfertigen, vorkonfigurierten und Echtzeit optimierten Kernel geliefert, der alles enthält, was zum Erstellen von Anwendungen erforderlich ist. Mittels dieser Umgebung können kurze Zykluszeiten von bis zu 50 Mikrosekunden erreicht werden.
Zweitens, das Entwickeln von Echtzeitanwendungen ist so einfach wie das Entwickeln nativer Windows-Anwendungen. Es stehen zahlreiche Beispiele zur Verfügung, darüber hinaus bietet der Support von acontis stets die richtige Antwort auf alle technischen Fragen. Da Standards für den Echtzeitbereich verwendet werden, gibt es keine vergleichbare Lösung am Markt, in der Kunden mittels einer globale Entwickler-Community Antworten erhalten können.
Leistungen
Neben dem Echtzeitkern selbst bringt die Verwendung eines Standards viele nützliche Vorteile mit sich. Anspruchsvolle Funktionen wie TCP/IP-Sockets, eine vollständige POSIX-API, Isolation von Benutzer- und Kernel-Bereich, Multitasking und Multiprocessing sind verfügbar. Für fast jede heute auf dem Markt erhältliche Hardware steht ein Treiber zur Verfügung. Dies bedeutet, dass Entwickler nicht darauf warten müssen, dass ein bestimmter Treiber vom Hersteller einer proprietären Echtzeit-Erweiterungsplattform implementiert und freigegeben wird. Schließlich gibt es eine Fülle von Softwarebibliotheken, Protokoll-Stacks und Middleware (sowohl Open Source- als auch Closed Source-Produkte): C ++ STL, Boost, Corba, OPC / UA, DDS, AVB / TSN, EtherCAT, PROFINET, Softwarebasierte SPS, Bewegungssteuerungsbibliotheken, CNC-Lösungen und vieles mehr.
Die Kernkomponenten des Echtzeit-Kernels können auch im Quellcode bereitgestellt werden, und Kunden können bei Bedarf sogar tief im Kernel debuggen. Dies wäre mit einer proprietären RTOS-Implementierung niemals möglich.
Last but not least müssen Entwickler, die die acontis-Lösung verwenden, ihre bevorzugte Microsoft-Entwicklungsumgebung nicht aufgeben. Die Softwareentwicklung und das Debuggen von Echtzeitanwendungen werden können vollständig mittels Microsoft Visual Studio erfolgen.