Lizenz zum Steuern erteilt - neue
Transcription
Lizenz zum Steuern erteilt - neue
ANTRIEBSTECHNIK ANTRIEBSREGELUNG UNTER REAL-TIME LINUX Lizenz zum Steuern erteilt Vorbei die Zeiten, in denen man sich in ein proprietäres RT-OS einarbeiten musste und von einem Hersteller abhängig war. In der Anlage läuft nun das gleiche stabile Betriebssystem wie auf dem Rechner, der im Büro unterm Schreibtisch steht – Linux mit RT-Erweiterung. „Besonders die in der SuSE-Distribution vorhandenen Internet Features wie E-Mail, WebServer und FTP machen das System für die neue Steuerungsgeneration fit“, weiß Wolfgang Gertzen von Micromatik. Er hat das System auf Herz und Nieren geprüft – will er doch damit hochdynamische Antriebssteuerungen realisieren. Die Regelung der 330 A-Pulswechselrichter von Micromatic erfolgt unter RT-Linux I m Rahmen eines Entwicklungsprojekts der Firma Micromatik sollte geklärt werden, ob sich Linux bzw. RT-Linux für die Steuerung und Regelung von elektrischen Antrieben eignet. Eingesetzt wurde hierbei eine SuSE 7.0-Distribution, auf der RT-Linux V2.3 installiert wurde. SuSE 7.0 bietet neben dem eigentlichen Linux-Basis-System auch ein gutes Installations- und Administrationswerkzeug. Weiterhin enthält diese Distribution ein extrem umfangreiches Paket an kostenloser Software – vom simplen Editor über SQL-Datenbanken und Web-Server bis hin zum kompletten Office Paket ist alles dabei. Und mit dem KDEProjekt ist eine grafische Benut- zeroberfläche entstanden, die den Vergleich mit Windows nicht scheuen muss. Mittlerweile gibt es viele KDE-konforme Programme, die wie unter Windows ein einheitliches Erscheinungsbild bzw. Benutzerinterface haben. Real-Time-Linux ist eine Echtzeit Erweiterung für einen Standard-Linux-Kernel, entwickelt von Victor Yokaiden von FSMLabs. Yokaiden hat mittlerweile ein Patent für RT-Linux angemeldet, was für Unmut in der Open-Source-Gemeinde gesorgt hat (s. a. IEE 6/2001, S. 40). Der Ansatz von RT-Linux basiert darauf, einen Echtzeit-Kernel dem eigentlichen Betriebssystem zu unterlagern. Der RT-Kernel verwaltet das Inter- Beim VMEbus muss ein Interrupt über die VME-PCI-Bridge, die schnellere CPU des Gamma7-Boards kompensiert allerdings diese zusätzliche Verzögerung 54 rupt-Handling und lässt als sog. IdleTask das eigentliche Linux-System laufen. Vom normalen Linux aus wird nun nicht mehr direkt auf den PIC (Programmable Interrupt Controller) zugegriffen, da das IRQHandling nun komplett im RTKernel erfolgt. Allerdings wird der Linux-Kernel selbst nicht echtzeitfähig – Echtzeitfähig sind nur die Tasks/Threads parallel zum Linux Kernel. Linux-Prozesse und RT-Tasks kommunizieren über FIFOs (bei serieller Kommunikation) und/oder feste Speicherbereiche (bei Datenblöcken). Strom-, Drehzahl- und Lageregler unter RT-Linux Hat man den RT-Linux Kernel gebootet, steht ein echtzeitfähiges System zur Verfügung. Unter midas.psi.ch/ rtlinux ist ein Programm (LPT-Demo) verfügbar, mit dem man direkt über die parallele PC-Schnittstelle die Interrupt-Latenzzeit messen kann. Als Steuerungsplattform wurde der VMEbus-Rechner Gamma7 von Rotec verwendet. Bei ihr wurde die Latenz-Zeit eines Interrupts am VMEBus betrachtet. Dazu löste eine VME-Baugruppe einen Interrupt aus, der dann mit einem Schreib- iee 46. Jahrgang 2001, Nr. 8 zugriff in der Interrupt-Service-Routine wieder zurückgenommen wurde. Gemessen wurde die Zeit zwischen fallender und steigender Flanke des IRQ-Signals. Hier gilt es zu beachten, dass im Gegensatz zum LPT-Demo der Interrupt nicht direkt am Interrupt Controller ausgelöst wird, sondern das die VME-PCI Bridge dazwischen liegt. Es ist eine Ebene mehr zu durchlaufen als beim LPT-Demo. Generell kann die Latenzzeit eines Betriebssystems aber nur so gut sein, wie es die HardwarePlattform überhaupt zulässt. Der Einsatz eines Standard-Betriebssystems mit Echtzeitverhalten bietet viele Vorteile und neue Möglichkeiten, z. B. entfällt das Cross-Compiling. Man kann die Entwicklungsumgebung sogar auf dem Zielsystem selbst installieren. So steht immer das passende Werkzeug bereit. Wird bei der Softwareentwicklung darauf geachtet, die Zugriffe auf spezielle Hardware zu kapseln, und lässt sich die Hardware sogar simulieren, dann können Entwicklung und Test sogar größtenteils auf einem Stan- iee 46. Jahrgang 2001, Nr. 8 dard-Desktop stattfinden. Die Software für dieses Entwicklungsprojekt war teilweise schon fertig, bevor überhaupt das CPU-Board zur Verfügung stand. Auch später wurden immer wieder Tests und Simulationen der Regelungssoftware auf einem Büro-PC durchgeführt. Das CPU-Board ist in das bestehende Micromatik-Steuerungssystem eingebaut worden. Dieses besteht aus einem VME-System mit eigenentwickelten Baugruppen und der ebenfalls selbst entwickelten Leistungselektronik. Die Gamma7 liest einen Inkrementalgeber zur Erfassung der Ist-Werte des Antriebs ein und gibt gemäß der Regelungssoftware die neuen Stellwerte an dem Pulswechselrichter, der einen 122 KW Motor speist. Zykluszeiten unter 250 µsec kein Problem für RT-Linux Die Regelung muss hochdynamisch erfolgen – dies spiegelt sich in Zykluszeiten von 250 bis 500 µsec wider. Die Regelung ist als Echtzeit Task Dipl.-Ing. Wolfgang Gertzen, Entwickler bei der Micromatik GmbH realisiert und benötigt maximal 60 µs Rechenzeit pro Durchlauf. Der Regelungstask konnte entweder mit einem Hardware-IRQ oder einem RTLinux Timer periodisch angestoßen werden. Auch bei Abtast-Intervallen von 250 µs, d. h. ca. 25% der CPU- 55 ANTRIEBSTECHNIK ANTRIEBSREGELUNG UNTER REAL-TIME LINUX Die hochdynamische Regelung verlangt Zykluszeiten von 250 µsec für die Ausgabe der Stellgrößen für Drehzahl- und Stromregler Funktionalitäten wie Web-Server oder E-Mail dürfen in heutigen Steuerungskonzepten nicht mehr fehlen Leistung entfielen auf die Regelung, war ein flüssiges Arbeiten mit dem Linux-System (Visualisierung, Datenanalyse, Web-Server etc.) möglich. Die Interruptlast führte während der 5-wöchigen Entwicklung und Versuchsphase im Labor nie zu Störungen des eigentlichen Linux-Systems. Wichtige Steuerungseigenschaften frei Haus Die Regelungssoftware arbeitet nur auf einem Shared Memory, die Zugriffe auf die eigene Spezialhardware erfolgen in einem separaten Modul. Diese Aufteilung ermöglichte die Vorentwicklung und Simulation auf einem Desktop Linux PC. Über den Shared-Memory kommunizierte die Regelung mit der Visualisierungssoftware, die als KDEApplikation in C++ erstellt wurde. Um Zugriffe über das Internet mit einem Browser zu ermöglichen, wurde der lizenzfreie Web-Server Apache als weitere Visualisierung eingesetzt. Dazu wurden CGI-Skripte erstellt, die lesend auf den Shared-Memory zugreifen und die 56 Daten mittels HTML-Code darstellen. Ein weiteres Internet-Feature – das Versenden des Anlagenstati via Email – wurde über das Programm sendmail realisiert. Beim Test und der Optimierung der Regelung waren zwei Werkzeuge von entscheidender Bedeutung: Das Programm ’gnuplot‘ wurde verwendet, um mathematische Funktionen und Messwert-Reihen grafisch darzustellen. Für den Entwurf und Test der Regelung kam das frei verfügbare Programm ’Octave‘ zum Einsatz, ein mit Mathlab vergleichbares Hochsprachen-Werkzeug zur numerischen Berechnung und Darstellung mathematischer Funktionen. Mit der Kombination von RT-Linux und der Gamma7 steht ein System zur Verfügung, das die Vorteile eines äußerst stabilen Desktop-Betriebssystems nutzt und gleichzeitig die Echtzeitanforderungen der Automatisierung erfüllt. Die von Micromatik gestellten Anforderungen sind zur vollen Zufriedenheit gelöst worden. RT-Linux hat gezeigt, dass es sich für den Einsatz in der Automatisierung eignet. iee 46. Jahrgang 2001, Nr. 8 Hardware-Plattform für den Antriebsregler Die HardwarePlattform für das Linux System ist ein VME-PC Gamma7 von Rotec Industrieautomation, die seit letzten Herbst zu Kontron gehören (Geschäftseinheit Automation). Der VME-Bus bietet die zur komplexen Antriebsregelung erforderlichen Eigenschaften wie Deterministik durch entsprechende Interrupt-Struktur, lineare Adressierung, Master/ Slave-Zugriffe, elektrische abgeschlossene Bussignals usw. Der Gamma7 ist ein kompletter PC mit VME-Bus Master/Slave Interface mit: Prozessor: Intel Pentium III Embedded Module, 500 MHz Taktfrequenz, L1/L2-Cache Max. 256MB RAM Intel 82440BX AGPset: 82443BX Host Bridge Controller und 82371EB PCI ISA IDE Controller (PIIX4E) Super-VGA mit PCI-Interface, Lynx 3DM mit 4/8MB Grafikspeicher CRT/ LCD direkt anschließbar Ultra DMA/33 Schnittstelle für 2 IDE-Drives Massenspeicher mit IDE-HDD oder IDE-Flash Disc VME-to-PCI Bus Bridge (PCI 2.1 und VME64 compliant) Ethernet mit 10Base-T und 100 Base-Tx nach IEEE802.3, NE2100 kompatibel, allen Standard-PC-Schnittstellen I/O-Erweiterungen über ISAbus oder PC/104 Watchdog-Timer NMI-Timer für Echtzeitbetrieb Shared nonvolatile SRAM Gamma7 CPU-Board iee 46. Jahrgang 2001, Nr. 8 761 57