Praxissemesterbericht
Transcrição
Praxissemesterbericht
Praxissemesterbericht für das 2.Praxissemester des Diplomstudiengangs Mechatronik der Hochschule Karlsruhe In Zusammenarbeit mit dem Institut Instituto de Astrofísica de Andalucía Departamento UDIT Granada, España Verfasser: Matrikelnummer: Praktikumzeitraum: Betreuer: Datum: Inés Seiler 19332 WS07/08, 03.09.07 – 31.01.08 José Luis Ramos, Luis Costillo 31.01.08 ( José Luis Ramos ) H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Vorwort Im Rahmen des Diplom-Studienganges Mechatronik der Hochschule Karlsruhe ist es vorgesehen ein (zweites) Praxissemester im Hauptstudium zu absolvieren. Für die rechtmäßige Anerkennung wird im Anschluss dieser Tätigkeit ein Bericht angefertigt und ein kurzer Vortrag im darauf folgenden Semester an der Hochschule gehalten. Mein Praxissemester im Ausland und zwar am Institut für Astrophysik in Andalusien (IAA) in Spanien zu absolvieren, erschien mir in zweifacher Hinsicht vorteilhaft. Zum Einen erhoffte ich mir kulturelle und sprachliche Herausforderungen und Erweiterung meiner Kenntnisse, zum Anderen Erfahrungen in einem für mich neuen Bereich der Technik und der naturwissenschaftlichen Disziplin der Astrophysik. Meine Erwartungen wurden nicht enttäuscht. Danksagung Ich danke vor allem dem Chef der Abteilung Luis Costillo (Doctor en Electrónica) und meinem Betreuer José Luis Ramos (Físico Electrónico) des IAA für die hervorragende Betreuung meiner Tätigkeiten während meines gesamten Aufenthalts. Sie ermöglichten es mir eigenständig zu arbeiten und unterstützten mich jederzeit soweit erforderlich. Die Einführung in die Abteilung UDIT und deren Tätigkeiten, verbunden mit der Rücksichtnahme auf anfängliche, sprachlich bedingte Kommunikationsprobleme waren eine wertvolle Hilfe. Mein besonderer Dank gilt ebenso den übrigen Mitarbeitern der Abteilung, für ihr freundliches Entgegenkommen und ihre Unterstützung bei der Arbeit, sowie bei privaten Angelegenheiten, beispielsweise bei der Wohnungssuche. Die Arbeitsatmosphäre war besonders freundlich und angenehm, und ich bin froh, dass ich in dieser Abteilung mein Praxissemester absolvieren konnte. Den Professoren Prof. Dr.-Ing. Edwin Hettesheimer und Prof. Dipl. Wirtsch.-Ing. Fritz. J. Neff der Hochschule Karlsruhe möchte ich für ihre Beratung und Unterstützung danken. Ein insgesamt außerordentlich positives Erlebnis! Vielen Dank an alle Beteiligten! Inés Seiler Inés Seiler 2. Praxissemesterbericht I H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Erklärung Zur Erstellung verwendet. dieses Dokumentes wurden folgende Hilfsmittel Software: • Microsoft® Office Word 2003 • Modbus Poll Ver. 4.3.2. (Trial Edition) • National Instruments LabView v7.1 und v8.5 Literatur und Dokumente: • siehe Literaturverzeichnis Ich erkläre darüber hinaus keine weiteren Hilfsmittel verwendet zu haben. Der vorgelegte Praxissemesterbericht wurde von mir ohne fremde Hilfe verfasst. Fremde Inhalte sind entsprechend gekennzeichnet, Quellen und (sofern bekannt) Autoren werden vollständig aufgeführt. Hervorhebungen im Text (Fettdruck) dienen hauptsächlich der verbesserten Lesbarkeit. Granada den 31. Januar 2008 ( Inés Seiler ) Inés Seiler 2. Praxissemesterbericht II H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Inhaltsverzeichnis Danksagung............................................................................... I 1.0 Instituto de Astrofísica de Andalucía ........................................1 1.1 Die Umgebung ...................................................................1 1.2 Das Institut .......................................................................1 2.0 Übersicht der Tätigkeiten .......................................................4 3.0 Das Observatorium OSN ........................................................5 3.1 Einleitung: Die Teleskope und das aktuelle System .................5 3.2 Das neue System ...............................................................7 3.3 Die Steuerung der Alpha-Achse ............................................9 3.4 Das Model „Modelo de Eje“ ................................................10 4.0 Quadrature Encoder ERN 1070 (3600) ...................................12 4.1 Einleitung ........................................................................12 4.2 Das Auslesen ...................................................................13 4.2.1 Die Hardware .............................................................13 4.2.2 Die Software ..............................................................14 4.2.3 Auslesen des Z-Signals ................................................16 4.3 Verwendung der Programme..............................................16 5.0 Serielle 232-485 Kommunikation mit dem MODBUS-Protokoll ...17 5.1 Einleitung ........................................................................17 5.1.1 Aufgabenstellung ........................................................17 5.2 Allgemeines und Konfigurationen........................................17 5.2.1 Die Hardware .............................................................17 5.2.2 Das MODBUS Protokoll ................................................18 5.2.3 Modbus Nachrichten ....................................................18 5.2.4 Konfiguration des N2300..............................................20 5.3 RS-485 zu RS-485 Übertragung .........................................20 5.3.1 Konfiguration der RS485-PCI-Karte ...............................20 5.3.2 Einstellung der Software „Modbus Poll“ ..........................20 5.4 RS-232 zu RS-485 Übertragung .........................................21 5.4.1 Konfiguration des Patton RS-232-485 Konverters, Model 2085 .................................................................................21 5.4.2 Einstellung der Software „Modbus Poll“ ..........................22 6.0 Steuerung der Kuppel des Teleskops .....................................23 6.1 Übersicht.........................................................................23 6.1.1 Aufgabenstellung ........................................................23 6.3 Die Programmstruktur ......................................................25 6.3.1 VI-Hierarchie..............................................................26 6.3 Grundlagen......................................................................27 6.3.1 CAN-Bus Basics ..........................................................27 6.3.2 Verwendung des CAN-Busses .......................................28 6.3.3 Übersicht der Kommandos ...........................................31 Inés Seiler 2. Praxissemesterbericht III H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 6.4 Programa Principal............................................................33 6.4.1 Abschnitt 1: Abfrage des User-Interfaces .......................33 6.4.2 Abschnitt 2: CAN-Nachrichten als RS232 weiterleiten ......35 6.4.3 Abschnitt 3: RS232-Nachrichten als CAN weiterleiten ......36 6.4.4 Abschnitt 4: Weitere Tasten und Funktionen ..................37 6.5 Ergebnisse.......................................................................37 7.0 Absolutwert-Encoder RCN 829 ..............................................38 7.1 Einleitung ........................................................................38 7.1.1 Vorgehensweise der Entwicklung ..................................39 7.2 Grundlagen und Hardware .................................................39 7.2.1 Übersicht des Aufbaus .................................................39 7.2.2 Der Encoder ...............................................................40 7.2.3 Das FPGA...................................................................40 7.2.4 Kommunikation über die parallele Schnittstelle ...............41 7.3 Das Spannungspegel-Problem ............................................41 7.3.1 Lösung: Buffer Triestado Externo ..................................42 7.4 Die Software....................................................................45 7.4.1 Kommunikationsbausteine ...........................................45 7.4.2 EnDat2.2: zu lesende/schreibende Register....................46 7.4.3 Hauptprogramm .........................................................47 7.5 Ergebnisse.......................................................................49 7.6 Weiteres Vorgehen ...........................................................50 8.0 Fazit ..................................................................................51 9.0 Anhang ..............................................................................52 9.1 Abkürzungsverzeichnis & Glossar........................................52 9.2 Abbildungsverzeichnis .......................................................52 9.3 Tabellenverzeichnis...........................................................54 9.4 Quell- und Literaturverzeichnis...........................................55 9.4.1 Bildquellen .................................................................55 9.4.2 Softwarequellen..........................................................56 Inés Seiler 2. Praxissemesterbericht IV H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 1.0 Instituto de Astrofísica de Andalucía 1.1 Die Umgebung Das Instituto de Astrofísica de Andalucía (IAA) liegt im Süden Spaniens in der autonomen Region Andalusien. Die Region ist weiterhin in 8 Provinzen unterteilt, darunter die Provinz Granada, in welcher sich in der gleichnamigen Hauptstadt das Institut nahe des Zentrums befindet. Bild 1: Granada in Spanien Die Stadt Granada ist aufgrund einiger Sehenswürdigkeiten ein beliebter Touristenort. Bekannt ist vor allem die aus maurischen Zeiten stammende Festung Alhambra, welche aus einer Ansammlung von Palästen aus dem 13. und 14. Jahrhundert besteht. Die Stadt liegt zudem nahe der Sierra Nevada, welches das größte Gebirge der iberischen Halbinsel ist - 1996 fand hier die alpine Skiweltmeisterschaft statt. Neben dem Skigebiet ist dort ebenso das Observatorio Sierra Nevada (OSN) vorhanden, welches vom IAA geführt und betrieben wird. 1.2 Das Institut Das Consejo Superior de Investigaciones Científicas (CSIC) ist die Spanien weit größte staatliche Forschungseinrichtung die in 8 technischnaturwissenschaftlichen Bereichen agiert. 148 CSIC beschäftigen sich mit Einrichtungen der Universitäten und anderen Instituten. Eines hiervon ist das IAA, dessen Aufgabe darin besteht sich mit der Feldforschung im Bereich Astrophysik sowie der Bild 2: CSIC Logo Entwicklung der Instrumentierung von Teleskopen und Raumflugkörpern auseinander zusetzen. Ziel ist es, naturwissenschaftliche Informationen über das Universum zu sammeln – vom kleinsten Partikel, über das Sonnensystem hinaus bis hin zu einer Skala, die das vollständige Universum abdeckt. Inés Seiler 2. Praxissemesterbericht 1 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Bild 3: Organigramm des IAA Dem Organigramm (Bild 3) ist zu entnehmen, dass sich der Hauptsitz (Sede Central) aus den Bereichen Forschung (Investigación) und Dienstleistung (Servicio) zusammensetzt. Insgesamt werden ungefähr 180 Personen an dem Institut beschäftigt. Die Dienstleistungen werden weiterhin unterteilt in allgemeine Dienstleistungen (wie beispielsweise die Bibliothek vor Ort), das Rechenzentrum (Centro de Cálculo) sowie die Entwicklungsabteilung (Unidad de Desarrollo Instrumental y Tecnológico - UDIT). In Letzterem werden Mitarbeiter beschäftigt die in den technischen Bereichen Optik, Elektronik, Mechanik und Informatik ausgebildet wurden, welche Passenderweise mit dem Inhalt des Mechatronik Diplom-Studiengangs der HS-Karlsruhe übereinstimmen. (Scherzhafterweise wurde vorgeschlagen, dass die Mitarbeiter dieser Abteilung in Urlaub gehen könnten, während ich als Mechatronikerin für alle gleichzeitig die Stellung halten könne.) Inés Seiler 2. Praxissemesterbericht 2 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Die Abteilung UDIT spaltet sich weiterhin auf in die Bereiche instrumentos para observación astrofísica en tierra e instrumentos para observación astrofísica en el espacio (Instrumente für Astrophysische Beobachtungen „auf der Erde“ und „im Weltraum“). Für die Entwicklung des Ersteren, d.h. für die Teleskope, ist Luis Pedro Costillo Iciarra verantwortlich. Zusammen mit meinem Betreuer, José Luis Ramos Más, beschäftigt er sich mit der damit in Verbindung stehenden Elektronik. Vor Ort besteht das Institut aus zwei Gebäuden (in naher Zukunft soll ein Drittes in Betrieb genommen werden), wobei eines davon ausschließlich die UDIT-Abteilung beinhaltet, während die restlichen Abteilungen im Hauptgebäude untergebracht sind. Bild 4: Observatorio Sierra Nevada (OSN) Bild 5: Logo OSN Sehr wichtig und nicht zu vergessen sind natürlich die beiden Observatorien Observatorio Sierra Nevada (OSN) und Observatorio Calar Alto. Letzteres befindet sich in dem Gebirge Sierra de los Filabres, nördlich von Almeria. Es wird vom IAA zusammen mit dem Max-Plack-Institut für Astronomie (MPIA, Heidelberg) betrieben. Insgesamt sind dort 4 Teleskope vorhanden, allerdings steht eines davon unter der Leitung des Observatorium Madrid. Das OSN hingegen verfügt über 2 optische Nasmyth-Teleskope von den Größen 150cm („T150“) und 90cm („T90“), sowie ein IR Ritchey-ChrétienTeleskop der Größe 60cm. Es liegt 2800m über dem Meeresspiegel. Bild 6: Prinzip des NasmythTeleskops Inés Seiler Bild 7: Prinzip des Ritchey-ChrétienTeleskops 2. Praxissemesterbericht 3 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 2.0 Übersicht der Tätigkeiten Folgende Tabelle enthält einen groben chronologischen Abriss der von mir im Zeitraum 03.09.2007 – 31.01.2008 durchgeführten Tätigkeiten. Einzelne kleinere Aufgaben sind in der Tabelle nicht enthalten. Im Anschluss an einige Tätigkeiten war es erforderlich die Ergebnisse in einer Dokumentation festzuhalten. Tätigkeiten - Kennen lernen des Instituts, Einarbeitung in die Thematik - Einarbeitung in das Programm LabView mit Erstellung verschiedener Programme zu Lernzwecken. - Erstellen eines LabView Programms zum Auslesen eines Quadratur Encoders (ERN 1070). - Kennen lernen der Kommunikation mittels CANBus anhand einer Testflachbaugruppe. - Gedanken zur Auswahl der Servomotoren für das Teleskop. - Kommunikation mit RS232 und RS485 zwischen einem PC und einem Temperaturregler. - LabView Programm zur Steuerung der Kuppel des Teleskops: Implementierung der Kommunikation über CAN-Bus bzw. RS-232. - LabView Programmierung zur Kommunikation zwischen einem PC über ein NI DAQ-Pad und dem EnDat2.2 Masterbaustein der Firma MAZeT. Ziel: Auslesen eines Absolutwert-Encoders. Tabelle 1: Chronologischer Tätigkeitsabriss Die nachfolgenden Kapitel werden nur die wichtigsten Tätigkeiten abhandeln, da es im Rahmen diesen Berichts nicht möglich ist auf alle Einzelheiten einzugehen. Die Reihenfolge der Kapitel ist chronologisch. Inés Seiler 2. Praxissemesterbericht 4 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 3.0 Das Observatorium OSN 3.1 Einleitung: Die Teleskope und das aktuelle System Die beiden Teleskope T150 und T90 des Observatoriums OSN sind abgesehen von der Größe weitgehend baugleich. Unterschiede sind lediglich in Details, wie beispielsweise der Anzahl der Lager zu finden. Sie befinden sich innerhalb eines gemeinsamen Gebäudes (siehe Bild 4), sind aber baulich vom Gebäude getrennt um zu vermeiden, dass Schwingungen auf die Teleskope übertragen werden. Bild 8: Das T150 innerhalb der Kuppel. Die Hauptachse ist parallel zum Äquator ausgerichtet (equatorial mount). Die Steuerung und Elektronik der Teleskope sind nahezu identisch, jedoch etwas veraltet. Momentan ist ein zentrales, für damals übliches, VME-Modul aus dem Jahre 1995 für jedes Teleskop installiert. Es gibt jedoch diverse Probleme. Beispielsweise werden Daten und Energie über ein Bündel Kabel am unteren Ende der Inés Seiler 2. Praxissemesterbericht 5 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Teleskope übertragen. Werden die Teleskope auf gewünschte Koordinaten gefahren, verursacht die Bewegung jedes Mal eine enorme mechanische Belastung der Kabel. Außerdem führen Wartungen oder Fehlerbehebungen der Elektronik sowie die harten Wetterbedingungen oft zu weiteren Defekten, was regelmäßige akribische Fehlersuchen nach fehlerhaften Kontakten notwendig macht. Wartungen werden somit teilweise sehr zeitaufwändig. Bild 9: Das aktuelle System Es erschien somit sinnvoll das System mit durch ein Neueres und Effizienteres zu ersetzen. Dies ermöglicht es auch, im Rahmen der Überarbeitung, neuere Technologien einzusetzen, welche zu erhöhter Genauigkeit und Präzision beitragen. Da parallel zu den technischen Weiterentwicklungen die Teleskope jedoch auch für Forschungszwecke genutzt werden, ist es nicht möglich die Systeme, wenn erforderlich, für einige Zeit einfach abzuschalten um Änderungen vorzunehmen. Der normale Betrieb der Teleskope wird nur einmal pro Monat für eine Woche unterbrochen um Reparaturen und dergleichen vorzunehmen. Außerdem kann nicht vor Ort mit der Trial-and-Error-Methode vorgegangen werden, da bei fehlerhaftem Verhalten eventuell sehr teuere Schäden entstehen könnten. Es kommen organisatorische und geographische Restriktionen hinzu, da die Entwicklungsabteilung sich in der Stadt, die Teleskope jedoch auf dem Berg befinden. Die Anfahrt erfordert ungefähr eine Inés Seiler 2. Praxissemesterbericht 6 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Stunde Fahrzeit sowie ein 4-Rad-betriebenes Fahrzeug um die letzten Höhenmeter einer Schotterpiste mitten im Skigebiet zu überwinden. Bei Schnee im Winter ist die Station nur mit Schnee-mobilen (Motorschlitten) zu erreichen und je nach Wetterlage von der Außenwelt sogar für einige Zeit physikalisch abgeschnitten. Das Observatorium verfügt daher über eine im Winter reichlich mit Lebensmitteln ausgestattete Vorratskammer. Es ist also notwendig anhand eines Models, welches dem Original sehr genau und maßstäblich entsprechen muss, das neue System ausgiebig zu entwickeln und zu testen um Fehler zu quasi hundert Prozent zu beseitigen bevor es im OSN eingesetzt wird. Da die Teleskope baugleich sind, reicht es für beide nur ein Model zu nutzen. Da die Präzisionsanforderungen an das T150 höher sind als an das T90 wird das neues System für das T150 entwickelt. Später soll dies dann lediglich für das kleinere Teleskop dupliziert werden. 3.2 Das neue System Jedes der beiden Teleskope soll mit einem dezentralen System gesteuert werden. Die einzelnen Knoten werden mit einem seriellen, verbunden. Gleichzeitig sollen jedoch alle linearen Bus Systemressourcen überall und jederzeit einer zentralen Einheit über das Internet zur Verfügung stehen. Die verschiedenen Aufgaben wurden eingeteilt in die folgenden Knotenpunkte: Steuerung der Alpha-Achse, Steuerung der Delta-Achse, die Kuppel, die Fokussierung, und eine zentrale Einheit als Schnittstelle für einen PC. Die Knoten für Alpha, Delta und die Kuppel werden mit FPGA’s realisiert um ein effizientes Einlesen und Verarbeiten der Encoder (Winkelmessgeräte) und der Steuerungsalgorithmen zu gewährleisten, sowie um die Ausgänge für die Motoren und die Servo’s zu generieren. Der Fokus wird über einen Mirkokontroller verfügen und das System wird einfach zu erweitern sein, falls mehr Knoten erforderlich werden sollten. Für die Kommunikation wurde der CAN-Bus aufgrund seiner Zuverlässigkeit und der Möglichkeit des Broadcastings (ein Sender, mehrere Empfänger) ausgewählt, so dass alle wichtigen Informationen auf dem Bus stets vorhanden sind, und jeder Knoten (Empfänger) jederzeit Zugriff auf diese Informationen hat. Das aktuelle System (Bild 9) verfügt über: • • • die Steuerung der Alpha und Delta Bewegungen, des sekundären und tertiären Spiegels, sowie die Steuerung des primären Spiegels. Inés Seiler 2. Praxissemesterbericht 7 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik • • Instituto Astrofísica de Andalucía Außerdem gibt es noch Sicherheitssysteme für das Teleskop, sowie solche die der Astrophysischen Beobachtungen dienen. Die Verteilung der Steuersysteme des neuen Systems (Bild 10) soll wie folgt aufgeteilt werden: Alpha-Achse: Die Ausrichtung und Führung müssen korrekt gesteuert werden. Absolute, relative und inkrementale Bewegungen müssen mit mindestens drei Geschwindigkeiten durchführbar sein. Ebenso muss die Winkelsicherheit gewährleistet sein (Vermeidung gefährlicher Winkel) und die Gegengewichte angepasst werden. Ein GPSEmpfänger ermöglicht den Betrieb im astronomischen Koordinaten-System. Delta-Achse: Absolute, relative und inkrementale Bewegungen mit drei verschiedenen Geschwindigkeiten und der Genauigkeit von einer Bogensekunde müssen möglich sein. Die Kuppel: Steuerung der positiven und negativen AsimuthBewegungen. Sekundärspiegel: Auslesen der Positionen und Limits, sowie Fokusbewegungen. Ein Hexapod der den Spiegel stützt muss ebenso gesteuert werden. Tertiärspiegel: Muss zwischen dem Ost- und West-Nasmyth-Fokus schalten können. Primäre Abdeckungen: Die Abdeckung des Primärspiegels muss geöffnet und geschlossen werden, und die Position ermittelt werden. Computer Instrument: Jedes Instrument des Teleskops braucht einen Computer für die Steuerung. Dieser ist mit dem globalen Kontrollsystem verbunden und steuert das Instrument mit entsprechenden Standardkommandos. Aus Bild 10 ist ersichtlich, dass alle Module von dem zentralen Modul kontrolliert werden. Die Kuppel, die Alpha- und Delta-Achsen können manuell oder automatisch gesteuert werden. Mit dem Modul „Others“ wird der Zugriff auf die Spiegel und den Fokus gewährleistet. Inés Seiler 2. Praxissemesterbericht 8 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Bild 10: Struktur des neuen dezentralen Systems Das Zentralmodul ist über Ethernet mit einem PC (Instruments Computer) verbunden und kann daher auch fernbedient (remotely controlled) werden. Der Benutzer kann also in drei verschiedenen Modi das Teleskop betreiben: manuell, automatisch und durch remote control über das Internet. 3.3 Die Steuerung der Alpha-Achse Die Alpha- und die Delta-Achsen sind ähnlich in ihrem physikalischen Aufbau. Jede Achse verfügt über zwei Motoren (Motor und Gegenmotor) und eine Notbremse. Im ersten PID-Regelkreis wird ein relativer Encoder (Winkelmessgerät) direkt mit dem Motor verwendet. Die Achsenstellung wird mit einem 10-Bit absolutem Encoder ausgelesen, bei einer Genauigkeit von 21 Bogenminuten, wobei die Bogensekundengenauigkeit von einem relativen Inductosyn® Encoder geliefert wird. Ein HCTL-Controller steuert die Bewegungen. Die siderische Bewegung wird mit einem Quarz entsprechender Frequenz gemessen. Neben weiteren Veränderungen sollen im neuen System die Motoren durch Neuere, und das Kodierungs-System durch einen 29Bit absoluten Encoder ersetzt werden. Inés Seiler 2. Praxissemesterbericht 9 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Dies ist eines der komplexesten Module des Systems, da viele Stellgrößen berücksichtigt werden müssen und ein bestimmtes Maß an Präzision gewährleistet sein muss. Zudem sollen beide Achsen (Alpha und Delta) durch ein einziges Modul gesteuert werden. Es sollen daher COTS (Commercial Off The Shelf) Produkte verwendet werden um den Aufbau und die Umsetzung zu vereinfachen und vor allen Dingen um die erforderliche Entwicklungszeit gering zu halten. Bild 11: Altes System der Achsen Bild 12: Neues System der Achsen Aus diesem Grund wurde entschieden das Reconfigurable Compact Embedded System (cRIO) von National Instruments (NI) zu verwenden. Mit dessen 200 MHz Prozessor sind zuverlässige RealTime Applikationen möglich, und 3M Gates stehen für die Handhabung der I/O’s zur Verfügung. Die FPGA’s können mit der höheren Programmiersprache LabView programmiert werden. Dieses Modul wird direkt an dem Teleskop angebracht da die kompakte Größe und der geringe Stromverbrauch dies zulassen. Somit wird die Anzahl der Kabel erheblich reduziert. 3.4 Das Model „Modelo de Eje“ Das Ziel ist es ein Modell bzw. eine Arbeitsvorlage zu entwickeln, welche sich in mechanischer und elektronischer Weise sowie bei der Datenverarbeitung den echten Teleskopen gleicht. Ein mechanisches Modell der Alpha-Achse besteht bereits, an welchem damals (1988) erste Versuche mit dem Mikrokontroller (HCTL 1000) zur Steuerung der Motoren durchgeführt wurden. Nach diesen ersten Proben am Modell wurden die Teleskope direkt weiterentwickelt. Folgende Punkte sollen dabei beachtet werden. Inés Seiler 2. Praxissemesterbericht 10 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik • • • Instituto Astrofísica de Andalucía Das bereits bestehende mechanische Modell soll verwendet und weiterentwickelt werden. Anders als zuvor, soll das neue Modell immer auf dem aktuellen Stand des Teleskops gehalten werden. Zukünftige Verbesserungen sollen zuerst am Modell vorgenommen werden, um die Arbeitszeit am Teleskop zu minimieren. Das zukünftige Modell soll nicht nur die Bewegungen des Teleskops simulieren, sondern das vollständige System abbilden. Alpha-Achse des Modells Positionen des Motors und Gegenmotors Bild 13: Mechanisches Modell des Teleskops Inés Seiler 2. Praxissemesterbericht 11 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 4.0 Quadrature Encoder ERN 1070 (3600) 4.1 Einleitung Ein relativer Quadrature Encoder wird im Zusammenhang mit dem ersten PID-Regelkreis der Motoren der Alpha-Achse verwendet um eine Rückmeldung der angefahrenen Position zu erhalten. Hierfür soll der ERN 1070 mit 36000 Perioden pro Umdrehung von Heidenhain verwendet werden. Ein Quadrature Encoder (Bild 14) verfügt über 3 Signale, die Informationen zur gemessenen Position liefern. Diese Signale werden intern optisch erzeugt. Signal B (oder Ua2) ist immer um 90º phasenversetzt zu Signal A (Ua1). Bei einer Drehung im Uhrzeigersinn folgt B dem Signal A (Bild 15); gegen den Uhrzeigersinn ist B dem Signal A um 90º voraus. Aus diesem Phasenversatz lässt sich somit die Drehrichtung bestimmen. Bild 14: ERN 1070 Diese Ausführung des Encoders liefert insgesamt 4x36000 = 144000 Flanken, da eine Umdrehung aus 36000 Perioden pro Signal besteht und jede Periode über eine Auf- und eine Abflanke verfügt. Somit ist eine Genauigkeit von 0,0025º = 9 Bogensekunden möglich sofern alle 4 Flanken pro Periode ausgelesen werden. Als dritte und zusätzliche Information ist das Signal Z (Ua0) vorhanden, welches nur einmal pro Umdrehung immer an der gleichen Position einen Impuls erzeugt. Bild 15: Signale eines relativen Quadrature Encoders (Uhrzeigersinn) Inés Seiler 2. Praxissemesterbericht 12 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Je nachdem ob man eine (X1), zwei (X2) oder vier (X4) Flanken ausliest erhält man verschiedene Positionsgenauigkeiten (Bild 16). Da für das Teleskop die höchstmögliche Genauigkeit erforderlich ist, wird die X4 Variante gewählt. 4.2 Das Auslesen Zum Auslesen des Encoders soll sowohl Hardware als auch Software des Bild 16: X1, X2 und X4 Encoder Herstellers National Instruments verwendet werden, da eine Auswahl dieser Produkte bereits im Institut vorhanden sind. Als Software wird das Programm LabView verwendet. Für die Auswahl der Hardware muss zunächst ein geeigneter Zähler gefunden werden. Zwei verbreitete Zähler von NI sind der DAQ-STC und der NI-TIO. 4.2.1 Die Hardware Da zunächst nur ein DAQ-6016 Board zur Verfügung stand wurde somit der STC-Zähler verwendet. Dieser unterstützt jedoch nicht direkt Quadrature Encoding. Für jede einzelne Flankenart die zu zählen ist, wird je ein Counter erforderlich. Das 6016 Board verfügt jedoch nur über 2 Counter, somit ist nur X1 oder X2 möglich. Das Auslesen des Z-Signals ist außerdem nicht gleichzeitig möglich und die Programmierung erwies sich insgesamt als etwas umständlich. Da dies ohnehin keine geeignete Lösung war und die erforderliche Genauigkeit nicht erreicht werden konnte, wird an dieser Stelle nicht weiter auf die erfolgte Ausarbeitung eingegangen. Nachdem ersichtlich wurde, dass ein NI-TIO Zähler für eine X4Messung notwendig und unumgänglich ist, war es mir möglich eine entsprechende NI-Karte im Institut aufzutreiben: eine PCI-6601 Karte. Dieser Zählertyp unterstützt sowohl X1-X4 Encoding, als auch das Z-Signal. Hierfür ist nur ein einziger Zähler erforderlich und die Art des Encodings wird per Software ausgewählt. Ein Zähler verfügt über mehrere Eingangspins. Sie werden wie folgt verbunden: • Signal A mit Eingang „Source“. Dies ist die eigentlich Quelle für den Zähler. Je nach Einstellung wird bei entsprechender Flanke (auf, ab, oder beide) der Zählerwert um den Wert „1“ verändert. Inés Seiler 2. Praxissemesterbericht 13 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik • • Instituto Astrofísica de Andalucía Signal B mit „Aux“ (oder „up/down“). Dieser Pin legt die Zählrichtung fest, also ob der Zählwert erhöht oder herabgesetzt wird. Wird beispielsweise bei einer Abflanke von A ein High von B gelesen wird hochgezählt, bei einem Low wird heruntergezählt (oder umgekehrt, je nach Softwareeinstellung). Das zusätzliche Signal Z wird mit dem „Gate“ des Zählers verbunden und führt bei Detektion einer Flanke zu einem Reset auf 0 des Zählers. Bild 17: Foto der Hardware 4.2.2 Die Software Das GUI der Software ist in Bild 18 zu sehen. Bevor das Programm gestartet wird muss zuerst das Gerät und der entsprechende Zähler des Geräts aus der Drop-Down-Liste ausgewählt werden. Erzeugt man nun Signale indem man den Encoder dreht wird die Bewegung numerisch und grafisch angezeigt. Bild 18: GUI des LabView Programms für ERN 1070 Abbildung 19 zeigt den dazugehörigen Quellcode. Die roten Markierungen gehören nicht zum Code, sondern zeigen die Struktur Inés Seiler 2. Praxissemesterbericht 14 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía auf: Initialisierung, Routine des Datenauslesens und die Beendigung des Programms. Initialisierung: Zuerst werden die Einstellungen für die Hardware festgelegt. Es wird der Zähler ausgewählt (Counter), der Startwinkel (Data) geladen, das Hardware-Offset zur Nullmarke geladen (Z Index Value), die Dekodierungsart festgelegt (X4), das Z-Signal verwendet (Enable = true), die Z-Index Phase festgelegt (A High B High, siehe Bild 15), und die Anzahl der Pulse pro Umdrehung (pro Kanal) auf 36000 gesetzt. Danach wird der Prozess zum Hardwareauslesen gestartet (DAQmx Start Task). Initialization Read Data End Task Bild 19: LabView Blockdiagram für ERN 1070 Daten Auslesen: Der eigentliche Kern des Programm läuft in einer While-Schleife ab. Diese wird beendet sobald ein Hardwarefehler auftritt oder der STOP-Knopf gedrückt wird. Mit einem DAQmx Read Piktogramm wird bei jeder Ausführung der Schleife der aktuelle Zählerstand ausgelesen. Dieser wird bereits in der Einheit „Grad“ geliefert, so dass keine weitere Umrechnung des Zählerwertes notwendig ist. Das Ergebnis wird direkt angezeigt (Data). Die Daten sind auch drehrichtungsabhängig, so dass sich eine Datenbandbreite von -360º bis +360º ergibt. Jede detektierte Flanke verändert den Zählerstand um ±0,0025º. Beenden: Der gestartete Hardwareprozess wird vor Schließung des Programms beendet (DAQmx Clear Task) und mit einer Fehlerbehandlungsroutine versehen. Mit diesem Programm ist es jedoch nur möglich die aktuelle Winkelposition zu ermitteln. Der Verlauf wird dabei jedoch nicht Inés Seiler 2. Praxissemesterbericht 15 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía überwacht, bzw. die Anzahl von Umdrehungen wird nicht gezählt. Um dies zu realisieren wird ein weiterer Zähler verwendet in Verbindung mit dem Z-Signal. 4.2.3 Auslesen des Z-Signals Zusätzlich zu den bereits verwendeten Signalen A, B und Z sind auch die invertierten Signale /A, /B und /Z vorhanden. Z steht nicht mehr zur Verfügung, also wird Kanal /Z mit dem Eingang „Source“ eines zweiten Zählers verbunden. Das Programm ähnelt dem Vorigen. Zur Initialisierung der Hardware wird festgelegt, dass fallende Flanken gezählt werden sollen (siehe Bild 15, Invertierung des Signals Ua0). „Count up“ legt fest, dass grundsätzlich hochgezählt wird, unabhängig von der Drehrichtung – dies muss später per Software ausgewertet werden, welche dieses Programm als Unterfunktion verwendet. „Initial Count“ wird auf einen Wert (in diesem Beispiel 0) gesetzt, welcher den Anfangszählwert festlegt. Initialization Read Data End Task Bild 20: LabVIEW Blockdiagram zum Auslesen des /Z-Kanals 4.3 Verwendung der Programme Ziel der Arbeit war es herauszufinden wie es möglich ist den Encoder ERN1070 mit der erforderlichen Präzision auszulesen. Die beiden VI’s (Virtual Instrument = Programmdatei von LabVIEW) können nun als Sub-VI’s in andere LabVIEW Programme eingebunden werden. Diese erscheinen als Piktogramme mit Ein- und Ausgängen. Eingänge sind diverse Einstellungen wie z.B. die Zählerauswahl, die Ausgänge sind die Zählerstände sowie Fehlermeldungen. Inés Seiler 2. Praxissemesterbericht 16 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 5.0 Serielle 232-485 Kommunikation mit dem MODBUS-Protokoll 5.1 Einleitung Neben Aufgaben, die direkt mit dem Projekt des Teleskops in Verbindung stehen, fielen auch kleinere Aufgaben an welche nur indirekt mit den Teleskopen zu tun haben. Als Beispiel einer dieser Aufgaben wird in diesem Abschnitt auf die Kommunikation zwischen einem PC und einem Temperaturregler eingegangen. Temperaturregler werden in den Laboren des IAA eingesetzt um bei Versuchen die Temperaturschwankungen zu minimieren. 5.1.1 Aufgabenstellung Das Ziel dieser Aufgabe ist es eine Kommunikationsmöglichkeit herzustellen zwischen einem Temperaturregler des Modells WEST N2300-1222 mit einer seriellen RS-485 (halb duplex) Schnittstelle und einem PC. Der PC verfügt über zwei verschiedene verwendbare Schnittstellen (Tabelle 2). Es soll das Protokoll MODBUS für die Kommunikation verwendet werden. Anschließend werden die Lösungsmöglichkeiten in einem Bericht dokumentiert. Beschreibung Schnittstellen: PC - N2300 RS485 - RS485 PCI-RS485 Karte notwendig RS232 - RS485 RS232-RS485 Umwandler notwendig Tabelle 2: Übersicht serieller Kommunikationsmöglichkeiten 5.2 Allgemeines und Konfigurationen 5.2.1 Die Hardware Die verwendete Hardware besteht aus der Karte UC-313 Universal Dual Velocity RS422/485 von der Firma Brainboxes Ltd. (PCI-Karte mit zwei RS485 COM Ports), dem Umwandler RS232 to RS485 Converter Model 2085 der Firma Patton Electronics, und dem Temperaturregler WEST N2300-Y1222 von West Instruments. Inés Seiler 2. Praxissemesterbericht 17 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Bild 21: UC-313 Instituto Astrofísica de Andalucía Bild 22: RS485 Converter Bild 23: WEST N2300 5.2.2 Das MODBUS Protokoll Für die Kommunikation verwendet der Temperaturregler das Protokoll Modbus. Dieses Protokoll kann mit jeder seriellen Verbindung genutzt werden, ob RS232 oder RS485. Allgemein gibt es zwei verschiedene Nachrichtenformate: ASCII und RTU. Der Temperaturregler verwendet das Modbus/RTU Format mit einer RS485 Schnittstelle. Bild 24: Eigenschaften von Modbus ASCII & RTU Es werden die Einstellungen nach Bild 24 mit „no parity“ und zwei Stop-Bits verwendet. Im Anschluss zu jeder Nachricht wird ein CRC-Check versandt um die Daten zu verifizieren. Im Rahmen dieser Arbeit wurde die kostenlose Trial-Version des Programms „Modbus Poll Ver. 4.3.2“ als Kommunikationssoftware des PCs verwendet. 5.2.3 Modbus Nachrichten Die Struktur von Modbus-Nachrichten ist sowohl für das ASCII als auch das RTU-Format gleich (Bild 25). Die darin enthaltenen Funktionscodes sind standardisiert (Bild 26). Inés Seiler 2. Praxissemesterbericht 18 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Bild 25: Modbus Nachrichtenstruktur Bild 26: Modbus Function Codes Eine Nachricht kann beispielsweise so aussehen (hexdezimal): Nachricht vom PC: Antwort des Sensors: 01 03 00 7A 00 01 A5 D3 01 03 02 08 FC BF C5 Tabelle 3: Modbus Nachrichtenbeispiel Wie aus Bild 27 ersichtlich lässt sich mit dem Parameter 122 die Gerätenummer des Sensors abfragen. Als Antwort erhält man 2300 (dezimal) bzw. 08FC (hexadezimal). Erläuterung der Nachrichten PC-Anfrage Sensorantwort 01 03 00,7A 00,01 A5,D3 Modbus Adresse des N2300 Modbus Funktionscode Adresse des ersten Wortes (high,low byte) = “122” (dezimal) Anzahl der Worte (high, low byte) CRC 01 03 02 Modbus Adresse des N2300 Modbus Funktionscode Anzahl der Bytes der Daten 08,FC Antwortdaten (“2300”) BF,C5 CRC Tabelle 4: Erläuterung Modbus Nachrichtenbeispiel Bild 27: Kommando-Codes des N2300 Inés Seiler 2. Praxissemesterbericht 19 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 5.2.4 Konfiguration des N2300 Der Regler wird in den Softwareeinstellungen so konfiguriert, dass die Kommunikation über die RS485-Schnittstelle möglich ist bei einer Baudrate von 9600. Als Gerätenummer erhält der Regler die Nummer „1“. 5.3 RS-485 zu RS-485 Übertragung 5.3.1 Konfiguration der RS485-PCI-Karte Der Temperaturregler unterstützt ausschließlich halb duplexe Übertragungen. Die PCI-Karte muss also entsprechend konfiguriert werden. Auf der Karte werden zwei Jumper gesetzt, welche die Tx+ mit Rx+ und Tx- mit Rx- Signale, entsprechend Bild 28, miteinander verbinden. Die Karte wird über einer der beiden COM-Anschlüsse der Karte mittels eines D9 pin-to-pin Kabels mit dem Regler verbunden (Tab. 5). Dieser Port wird in den Hardware-Settings entsprechend auf HalfDuplex konfiguriert. D9 Pins 5 1 2 Bild 28: Full- vs. Half-Duplex Communication N2300 Pins 6 - GND 11 - B 12 - A Tabelle 5: Pin Verbindungen RS485-RS485 5.3.2 Einstellung der Software „Modbus Poll“ Die Software-Einstellungen zur Kommunikation müssen mit denen des Reglers übereinstimmen (Bild 29). Anschließend kann mit dem „Test Center“ des Programms eine Verbindung hergestellt werden. Eine erfolgreiche Kommunikation zeigt Bild 30. Bild 29: Connection Setup Inés Seiler Bild 30: Beispiel der Kommunikation 2. Praxissemesterbericht 20 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 5.4 RS-232 zu RS-485 Übertragung 5.4.1 Konfiguration des Patton RS-232-485 Konverters, Model 2085 Um mittels des Standard COM Port1 (RS232) eines PCs mit dem Temperaturregler N2300 zu kommunizieren wird ein RS 232-485 Umsetzer benötigt, in diesem Fall den Patton 2085. Innerhalb des Gehäuses wird der Converter mittels einer Reihe von Schaltern entsprechend der Tabelle (Bild 31) konfiguriert. Die Art der Verbindung ist Point-To-Point (PC – Regler) und halb duplex (2 „wires“ statt 4). Der DCE/DTE-Schalter wird auf DCE gestellt (Bild 33). Bild 31: Converter DIP-Switch Settings Bild 32: Anschlüsse N2300 Bild 32 zeigt die Anschlüsse des Reglers für die DC Stromversorgung. Die RS485 Kommunikationsanschlüsse (A & B) des Reglers werden mit den Anschlüssen des Konverters wie folgt verbunden: Converter N2300 XMT+ B (Pin 11) XMTA (Pin 12) G Ground (Pin 6) Bild 33: Unter-/Oberseite des Konverters Inés Seiler Tabelle 6: Pin Verbindungen RS232RS485 2. Praxissemesterbericht 21 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 5.4.2 Einstellung der Software „Modbus Poll“ Die Softwareeinstellungen für die RS232-RS485 Verbindung sind nahezu identisch mit den Einstellungen für die direkte RS485 Kommunikation (Bild 29). Unterschiede bestehen nur in der Auswahl der zu verwendenden Schnittstelle (COM Port1) und in den „Advanced Settings“, in denen ein „RTS Toggle“ mit „8ms Bild 34: Kommunikationsbeispiel RS232RTS disable delay“ RS485 eingestellt wird. Die Antwort (Rx) des Reglers unterscheidet sich bei einer Kommunikation insofern, als dass vor der Antwort zuerst die Anfrage (Tx) wiedergegeben wird (Bild 34). Inés Seiler 2. Praxissemesterbericht 22 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 6.0 Steuerung der Kuppel des Teleskops 6.1 Übersicht Die Steuerung der Kuppel (Controlador de Cúpula) verfügt über zwei Kommunikationsschnittstellen. Über einen CAN-Bus wird eine Verbindung mit dem Computer „Ordenador de Control“ hergestellt. Dieser schickt Befehle und Anweisungen, woraufhin der „Controlador“ die angeforderten Informationen zurück sendet. Diese Kommunikation wird über die RS-232 Schnittstelle dupliziert, d.h. empfangende Anweisungen und gesendete Daten werden an den Computer „Ordenador Técnico“ weitergeleitet. Zudem gibt es noch erweiterte Kommandos die bei der seriellen Kommunikation verwendet werden, wie beispielsweise das Auslesen des EEPROMs. Die angestrebte Endlösung sieht vor, Bild 35: Steuerung der Kuppel dass der Computer („Ordenador“) TCS direkt mittels einem CAN-Bus mit dem Controlador kommuniziert. Vorerst wird jedoch eine provisorische Lösung nach Bild 35 eingeführt, da die Umstellung nur in kleinen Schritten erfolgen kann, ohne den normalen Betrieb des Teleskops dabei zu stören. Die „technische Schnittstelle“ zum „Ordenador Técnico“ wird ausschließlich für technische Angelegenheiten verwendet, d.h. in bestimmten Fällen wie Tests oder Ausfälle etc. Der provisorische „Ordenador de Control“ kann ebenso eigenständig (d.h. unabhängig vom TCS) die Kuppel steuern, und verfügt hierfür über einen Touch-Screen. 6.1.1 Aufgabenstellung Die bereits bestehende Programmierung der Steuerung der Kuppel wurde mit der Software LabView realisiert. Dieses Programm soll nun für den Ordenador de Control angepasst werden, so dass die Kommunikationsschnittstellen CAN und RS232 zur Verfügung stehen. Folgende Anforderungen müssen dabei beachtet werden: Inés Seiler 2. Praxissemesterbericht 23 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik • Instituto Astrofísica de Andalucía Verwendung und Anpassung des bestehenden Programms: o Verwendung des CAN-Busses einführen (wurde vorher o o o o o o nicht verwendet). Verwendung der RS-232 Schnittstelle. Anpassung des GUI (neue Befehlsoptionen einführen, veraltete löschen). Empfangene RS-232 Befehle in CAN-Nachricht übersetzen und weiterleiten. Empfangene CAN-Nachrichten in RS-232 Nachrichten übersetzen und weiterleiten. Empfang und Versandt von Nachrichten über GUI darstellen. Versandt von Nachrichten über GUI ermöglichen. Anmerkung: erste Schritte zur Anpassung wurden bereits vor meiner Übernahme der Aufgabe durchgeführt, wie beispielsweise das Einlesen einer Befehlsliste (Text-Datei) sowie die Grafik für das manuelle Versenden einer CAN-Nachricht (Bild 36, Abschnitt „ENVÍO MANUAL“). Die CAN- sowie RS232-Kommunikationsschnittstellen an sich wurden jedoch noch nicht implementiert. Bild 36: Screenshot des bereits bestehenden LabView Programms Inés Seiler 2. Praxissemesterbericht 24 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 6.3 Die Programmstruktur Folgendes Bild zeigt die vereinfachte Struktur des PROGRAMA TÉCNICO CÚPULA T150.vi. Auf der obersten Ebene befindet sich eine “stacked sequence structure” bestehend aus den Sequenzen: Initialisierung der Variablen, Initialisierung der Geräte, Hauptprogramm, und das Schließen der Verbindungen zu den Kommunikationsschnittstellen. PROGRAMA TÉCNICO CÚPULA T150.vi Inicialización de variables Definición de variables Valores iniciales Inicialización de dispositivos Inicialización RS232C Inicialización BUS CAN Lee fichero de los comandos activa los canales del CAN Programa principal se ha pulsado una tecla ? tecla 1 tecla 2 comando 1 tecla 3 comando 2 comando 3 tecla n tecla ... comando ... comando n envia comando por CAN recibe del CAN lo enviado por el módulo de control: Actúa y lo envía por RS232 al TCS comando 1 comando 2 caso 1: actúa comando 3 caso 2: actúa caso 3: actúa comando ... caso ... actúa comando n caso n: actúa envía comando por RS232 Recibe RS232C traduce RS232 -> CAN RS232 comando 1 CAN comando 1 RS232 comando 2 RS232 comando ... CAN comando 2 CAN comando... RS232 comando n CAN comando n envía comando por CAN otras teclas y funciónes se ha pulsado el botón "borrar" ? J borra el mensaje de error repite continuamente hasta ha pulsado "FIN DEL PROGRAMA" N Cierra conexiónes de CAN Bild 37: Vereinfachte Struktur des PROGRAMA TÉCNICO CÚPULA T150.vi Inés Seiler 2. Praxissemesterbericht 25 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Die einzelnen Programmteile beinhalten weitere „ProgrammStrukturen“ d.h. Sequence- oder Case-Structures, wie in Bild 37 angedeutet. 1. Inicialización de variables: keine nennenswerten Änderungen wurden vorgenommen. de dispositivos: die Initialisierung der 2. Inicialización Kommunikationsschnittstellen wurde ohne Änderungen übernommen. Das Einlesen der Kommando-Textdatei („lee fichero de comandos“) enthielt jedoch einen Fehler welcher behoben werden musste. Die Textdatei selbst wurde ebenso modifiziert (siehe unten). 3. Programa principal: dieser Teil des Programms besteht aus einer 4-teiligen Sequenzstruktur, welche in einer While-Schleife endlos wiederholt wird. Zum Ausstieg aus der Schleife (und zum Beenden des gesamten Programms) muss der Knopf „FIN DEL PROGRAMA“ des User-Interface gedrückt werden. Der Abschnitt 6.4 geht näher auf diese Sequenz ein, da die meisten Änderungen in diesem Programmteil vorgenommen wurden. 4. Cierra conexiónes: Dieser Abschnitt wurde neu eingeführt und wird vor Beendigung des Programms ausgeführt. Er sorgt für ein sachgerechtes Schließen der offenen Verbindungen. 6.3.1 VI-Hierarchie Die LabView-Programmierung ermöglicht es Unterprogramme (Sub-VI’s) in einem Hauptprogramm (VI) einzubinden. Diese erscheinen als Piktogramme. Sind Eingänge vorhanden, müssen diese ggf. mit entsprechenden Daten gefüttert werden. Sofern Ausgänge vorhanden sind können die gelieferten Daten im Hauptprogramm weiter verwendet werden. Sub-VI’s können ebenso weitere Sub-VI’s enthalten. Um einen Überblick über die gesamte VI-Struktur zu behalten, kann man sich mit LabView eine VI-Hierarchie anzeigen lassen. Die gelb und orange dargestellten Sub-VI’s in Bild 38 werden alle für die Kommunikationsschnittstelle des CAN-Busses verwendet. Das Hauptprogramm ist durch die rote Umrandung gut zu erkennen. Die weißen Symbole dienen, mit Ausnahme des linken, welches zum Einlesen einer Text-Datei verwendet wird, der Kommunikation mittels der RS232-Schnittstelle. Inés Seiler 2. Praxissemesterbericht 26 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Bild 38: VI-Hierachie des PROGRAMA TÉCNICO CÚPULA T150.vi 6.3 Grundlagen 6.3.1 CAN-Bus Basics Der CAN-Bus wurde ursprünglich von BOSCH für den Einsatz in Kraftfahrzeugen entwickelt. Aufgrund der hohen Zuverlässigkeit wird er heutzutage jedoch auch in vielen anderen Bereichen eingesetzt. Die Idee eines CAN-Busses ist es, nicht Geräte mit Nummern (bzw. Codes oder Identifiern) auszustatten, sondern stattdessen Nachrichten zu „nummerieren“. Dies ermöglicht, dass alle an den Bus angebundenen Geräte selbst entscheiden können ob eine Nachricht für sie relevant ist oder nicht (Bild 39). Umgekehrt ist es jedoch nicht möglich ein bestimmtes Gerät direkt anzusprechen. Stattdessen sind alle auf dem Bus vorhandenen Informationen für jedes angeschlossen Gerät uneingeschränkt zugänglich. Prioritäten der Nachrichten werden durch deren ID festgelegt: je niedriger die ID desto höher die Priorität. Dies funktioniert so, dass logisch 0 als dominant und logisch 1 als rezessiv eingestuft wird. Versuchen nun mehrere Sender zur selben Zeit eine Nachricht zu schicken, so wird die niedrigere ID gewinnen, da die entsprechenden Bits auf logisch 0 gezogen werden auch wenn andere Sender an der selben Stelle eine logische 1 senden möchten. Inés Seiler 2. Praxissemesterbericht 27 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Bild 39: CAN-Bus Broadcasting CAN-Nachrichten gibt es im Standard-Format mit einem 11-Bit Identifier oder im erweiterten Format mit 29-Bit. Im Rahmen dieses Projektes wird das Standard Format verwendet (Bild 40). Der ID folgt das RTR-Bit (Remote Transmission Request) welches, sofern gesetzt, die Nachricht als Anforderungsrahmen ohne Datenbytes kennzeichnet. Danach folgt ein Feld mit weiteren Informationen, z.B. ob das Standard- oder das erweiterte Format verwendet wird und wie viele Datenbytes die Nachricht enthält (bei RTR=1 ist die Datenlänge immer 0 Bytes). Das Datenfeld enthält bis zu 8 Bytes, gefolgt von einem „CRC-Field“. Das Ack-Bit (Acknowledgement) dient der Bestätigung des korrekten Empfangens durch den oder die Empfänger. Bild 40: CAN-Nachrichten im Standard Format 6.3.2 Verwendung des CAN-Busses Die LabView Software läuft auf einem PC, welcher über ein CAN-Bus Kabel mit einem weiteren PC zum testen der Kommunikation verbunden wurde. Dieser zweite PC steuert einen kleinen Motor, von welchem Informationen verwendet werden (Position, Verbrauch etc.). Dieses System simuliert die Steuerung der Kuppel des Teleskops und liefert authentische Daten. Inés Seiler 2. Praxissemesterbericht 28 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Bei erfolgreicher Programmierung ist es somit möglich, diesen Motor direkt per CANBus anzusprechen und zu steuern. Beispielsweise kann der Befehl „Stop“ den Motor anhalten, oder ein Befehl zum Anfahren einer Position den Motor wieder in Bewegung setzen. Bild 41: vorne links: angesteuerter Motor Für die Kommunikationsschnittstelle wird eine PCI-Karte benötigt. Hierfür esd wurde die CAN-PCI/331 von electronic system design GmbH verwendet. Sie verfügt über zwei CAN-SchnittBild 42: CAN-PCI/331 stellen von welcher eine verwendet wird. Zum Vorabtest einer korrekten Hardware-Verbindung wird das Programm CANscope der selben Firma zur Kommunikation mit dem zweiten PC verwendet (Bild 43). Bild 43: Screenshot des Programms CANscope Des Weiteren wurden, im Rahmen einer anderen Aufgabe, bereits vorher Kommunikationstest mit einer Testflachbaugruppe durchgeführt, um die CAN-Schnittstelle zu erproben. Bild 44 zeigt die Karte mit den Anschlüssen zur Spannungsversorgung rechts, links das CAN-Kabel welches mit dem PC verbunden wird, und oben eine Reihe von Schaltern mit welchen man den IC konfigurieren kann. Inés Seiler Bild 44: Testflachbaugruppe 2. Praxissemesterbericht 29 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Hardware der Firma National Instruments kann mittels der „Measurements & Automation“ Software sehr einfach in ein VI eingebunden werden. Da die eingesetzte PCI-Karte jedoch von einem anderen Hersteller ist, erscheint die Hardware nicht in diesem Programm und muss anderweitig angesprochen werden. Hierfür werden DLL’s des Herstellers verwendet, welche vorgefertigte Funktionen zum Ansprechen des CAN-Busses enthalten. Die einzelnen Funktionen der DLL werden mit den LabView Symbolen „Call Library Function Node“ aufgerufen (Bild 45). Mit dem „Configure...“ Menüpunkt kann die CAN.DLL und eine der darin enthaltenen Funktion (z.B. canOpen) für ein Symbol ausgewählt werden. Das Ergebnis ist in Abb. 45 und 47 zu sehen. Bild 45: Einige CAN-Funktionen Bild 46: CAN-Initialisierung Bild 46 zeigt die CAN-Initialisierungsroutine des Programms PROGRAMA TÉCNICO CÚPULA T150.vi. Es werden Sub-VI’s verwendet, wie z.B. das canOpen Symbol. Öffnet man den Inhalt dieses VI´s wird man den Quellcode aus Abb. 47 vorfinden. Bild 47: canOpen.vi Hiermit wird, wie oben beschrieben, auf die in einer DLL enthaltenen Funktion zugegriffen, und somit die CAN PCI-Karte angesprochen. Diese Funktionen können als Black-Boxen betrachtet werden, welche über Ein- und Ausgänge verfügen. Inés Seiler 2. Praxissemesterbericht 30 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 6.3.3 Übersicht der Kommandos Nachfolgende Liste führt alle gültigen Kommandos auf. Sie ist in der Datei COMANDOS.txt enthalten, welche vom LabView Programm eingelesen wird. COMANDOS DE LA CUPULA 44 número comandos 0000 0040 0041 0042 0042 0043 0044 0044 0050 0051 0052 0053 0054 0055 0056 0060 0061 0062 0063 0064 0065 0065 0067 0068 0069 006A 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 0070 0071 0072 0073 0080 0081 0090 STOP STOC AZABxxx AZR+xxx AZR-xxx PARK AZC+ AZCWREE SEGA FSEG AOFF A_AZ A_CO A_ZE ¿AZ? ¿CO? VER? PAR? PAE? ZER? ZEE? ZMR? ZME? INR? INE? ¡AZ!xxx ¡CO! VER! PAR!xxx PAE!xxx ZER!xxx ZEE!xxx ZMR!xxx ZME!xxx INR!xxx INE!xxx CPARxxx CZERxxx CZEMxxx CINExxx FIN!xxx ¡ZE!xxx ERR!xxx - stop TODOS stop CUPULA - STOP MOVIMIENTOS MOV. ABSOLUTO MOV. RELATIVO MOV. RELATIVO APARCAR MOVIMIENTO CONTINUO MOVIMIENTO CONTINUO GRABAR EEPROM COMANDOS SEGUIMIENTO AUTOMÁTICO FIN DE SEGUIMIENTO AUTOMÁTICO FIN ENVÍO AUTOMÁTICO TRAMAS ENVÍO AUTOMÁTICO ACIMUT ENVÍO AUTOMÁTICO CONSUMO ENVÍO AUTOMÁTICO PASO CERO RTR - ACIMUT ACTUAL PETICIONES RTR - PIDE CONSUMO RTR - PIDE VERSIÓN PROG RTR - ACIMUT DE APARCADO RAM RTR - ACIMUT DE APARCADO EEPROM RTR - ACIMUT DE PASO POR CERO RAM RTR - ACIMUT DE PASO POR CERO EEPROM RTR - MARGEN DE PASO POR CERO RAM RTR - MARGEN DE PASO POR CERO EEPROM RTR - CONSTANTE DE INERCIA RAM RTR - CONSTANTE DE INERCIA EEPROM ACIMUT ACTUAL ENVÍA CONSUMO: Exx.xx ENVÍA VERSIÓN PROG ENVIA POSICIÓN APARCADO RAM ENVIA POSICIÓN APARCADO EEPROM ENVIA POSICIÓN PASO CERO RAM ENVIA POSICIÓN PASO CERO EEPROM ENVÍA MARGEN PASO CERO RAM ENVÍA MARGEN PASO CERO EEPROM ENVÍA CONSTANTE DE INERCIA RAM ENVÍA CONSTANTE DE INERCIA EEPROM APARCADO ENVIO CONSTANTES PASO POR CERO MARGEN PASO CERO INERCIA FIN DEL MOVIMIENTO EJECUTADO HA PASADO POR CERO ERROR Tabelle 7: Comandos de la cúpula (COMANDOS.txt) Inés Seiler 2. Praxissemesterbericht 31 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Da ein Mitarbeiter gleichzeitig an anderer Stelle des Projekts tätig war (siehe z.B. Bild 41), war es notwendig im Laufe der Programmierarbeit die Befehlsliste ständig zu erweitern und zu überarbeiten. Die erste Spalte entspricht den CAN-Codes (hexadezimal), wobei die ersten 4 Zeichen der zweiten Spalte die entsprechenden Kommandos der seriellen Schnittstelle wiedergibt. Angehängte „xxx“ bedeuten dass dem Kommando ein Parameter folgt. Die dritte Spalte entspricht einem Kommentar. Von dem LabView Programm werden jedoch nur die ersten beiden Spalten (ohne „xxx“-Parameter) sowie die Anzahl der Kommandos (44) eingelesen. Auffällig ist, dass einige CAN-Kommandos (0060-006A) doppelt in der Liste auftauchen. Dies liegt daran, dass die entsprechenden seriellen Kommandos sich nur durch ein „!“ bzw. „?“ unterscheiden. Ein Ausrufezeichen bedeutet, dass Parameter übermittelt werden, wobei ein Fragezeichen eine Anfrage darstellt. Zur Unterscheidung wird bei den CAN-Kommandos bei Anfragen das RTR Bit bei der Übertragung gesetzt. Sobald dieses Bit gesetzt ist können per Definition keine Parameter übertragen werden (siehe oben). Bild 48: Routine zum Einlesen der COMANDOS.txt Bild 48 zeigt die vollständige Routine zum Einlesen der Textdatei. Die Liste der CAN-ID’s wird in der Array-Variablen „CAN Comandos“ gespeichert, die entsprechenden seriellen Befehle in „RS232 Comandos“. Da die beiden Arrays unterschiedliche Datenformate besitzen, ist es nicht möglich die Informationen als 2D- Inés Seiler 2. Praxissemesterbericht 32 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Array zu speichern. Die spätere Zuordnung von RS232 zu CANKomando ist nur durch die Reihenfolge der Elemente innerhalb der Arrays möglich, d.h. der Inhalt des Elements mit dem Index 0 des einen Arrays (STOP), entspricht dem Inhalt des Anderen (0000). Die eindeutige Zuordnung wird in den Programmteilen wichtig, in denen Nachrichten von einem Format ins Andere übersetzt werden sollen. 6.4 Programa Principal Das Hauptprogramm besteht aus vier sequenziellen Abschnitten (in einem sogenannten „Booklet“), welche in einer Endlos-While-Schleife wiederholt werden, bis das Programm durch drücken der „FIN DEL PROGRAMA“-Taste auf der Benutzeroberfläche beendet wird. In den folgenden Beschreibungen wird nur auf Programmteile eingegangen, welche durch mich neu erstellt oder an denen Änderungen von mir vorgenommen wurden. 6.4.1 Abschnitt 1: Abfrage des User-Interfaces Taste gedrückt? korrektes CAN-Kommando? Versand CAN-Nachricht Bild 49: Programa Principal: Abschnitt 1 Es wird überprüft, ob eine Taste auf dem GUI vom Benutzer gedrückt wurde. Ist dies nicht der Fall, geht das Programm direkt zum nächsten Abschnitt weiter. Andernfalls wird zunächst der der Taste zugewiesene Hex-Code mit der CAN-Comandos Tabelle verglichen um die Gültigkeit des Befehls zu überprüfen. Ebenso ist es möglich manuell eine Nachricht über der GUI zu erstellen; dieser Inés Seiler 2. Praxissemesterbericht 33 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Code wird selbstverständlich ebenso überprüft. Weiter wird eine CaseStruktur aufgerufen um zu überprüfen welche Taste gedrückt und welche Funktionen ausgeführt werden sollen (Bild 51). Danach wird der Befehl als CANNachricht über die Schnittstelle versandt. Das Drücken einer der ENVIAR Tasten oder die STOP CÚPULA Taste auf der Benutzeroberfläche ruft die in Bild 49 dargestellten Strukturen auf. Möchte der Bild 50: Benutzeroberfläche Benutzer beispielsweise Informationen der Kuppel erhalten, kann er diese über die CANSchnittstelle anfordern (PETICIÓN DE INFORMACIÓN) indem er den gewünschten Wert aus einer Drop-Down-Liste auswählt und den Befehl dann sendet (ENVIAR, Bild 50). Bild 51: Case-Struktur der Kommandos Die Case-Struktur (Bild 51) enthält eine für jedes CANKommando individuelle Funktion die es entsprechend auszuführen gilt. Die Case-Nummern entsprechen den CAN-Befehlen. Fall 41 (in hex) beispielsweise entspricht dem Senden des Befehls 0041 (siehe auch Tabelle 7) an den Motor der Kuppel zum Anfahren einer bestimmten absoluten Azimut (Winkel-)Position. Die Position wird als Parameter in der Nachricht versandt und einer Variablen der Benutzeroberfläche entnommen (Bild 50: ABSOLUTO: 0 → ENVIAR). Inés Seiler 2. Praxissemesterbericht 34 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Das Versenden des Befehls wird zur Bestätigung in einem Informationsfeld auf der Oberfläche angezeigt und durch das Sub-VI can Put Msg gesendet. 6.4.2 Abschnitt 2: CAN-Nachrichten als RS232 weiterleiten Folgende Darstellung zeigt einen Ausschnitt des Quellcodes zum Umwandeln einer erhaltenen CAN-Nachricht in eine Serielle. Sofern keine CAN-Nachricht empfangen wurde, wird dieser Schritt übergangen und der nächste Abschnitt behandelt. Bild 52: Programa Principal: Ausschnitt von Abschnitt 2 Wurde eine Nachricht erhalten, wird diese nach dem Einlesen (can Read Msg) auf ihre Gültigkeit überprüft und hierfür mit der Kommando-Liste verglichen. Bei erfolgreichem Vergleich, wird zunächst „gehandelt“ (-> actúa), d.h. die Informationen auf der Benutzeroberfläche dargestellt. Als zweiter Schritt einer StackedSequence-Structure wird der Befehl in ein serielles Kommando umgesetzt und über die RS232-Schnittstelle gesendet (in Bild 52 nicht zu sehen). Das Sub-VI canReadMsg.vi (Ausschnitt Bild 53) musste insofern modifiziert werden, als dass in der vorher bestehenden Version nur das erste Byte der eigentlich 11-Bit langen CAN-ID (d.h. Befehlsnummer) verwendet wurde. Dies limitiert die Anzahl der möglichen Befehle unnötig, und behindert u.U. eine spätere Weiterentwicklung des Systems. Die oben dargestellte Routine jedoch, liest die ersten 11-Bit der CAN-Nachricht aus und setzt sie in eine CAN-ID um. Des Weiteren wurde bisher das RTR-Bit nicht verwendet. Da dieses Bit jedoch für die Anforderung von Informationen notwendig ist, wurde ein Auslesen des Bits in dieser Version realisiert. Inés Seiler 2. Praxissemesterbericht 35 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Bild 53: canReadMsg.vi 6.4.3 Abschnitt 3: RS232-Nachrichten als CAN weiterleiten Das Prinzip in diesem Abschnitt ist das gleiche wie im Vorherigen, nur umgekehrt. Hier werden RS-232 Nachrichten eingelesen, auf der Benutzeroberfläche dargestellt und anschließend über die CANSchnittstelle weitergeleitet. Wurden keine Nachrichten erhalten, wird der Abschnitt übersprungen. Vorher wurden die doppelt auftauchenden CAN-Kommandos Bild 54: Programa Principal: bei der Umsetzung dadurch unterAbschnitt 3 schieden, dass der Status des RTR-Bit berücksichtigt wurde. Im Umgekehrten Fall nun, wird über die RS232-Comandos der entsprechende CAN-Befehl ermittelt. Die Befehle ¿AZ? Und ¡AZ! jedoch werden beide zu 0060 übersetzt. Zur Unterscheidung untersucht eine Routine, ob das letzte Zeichen ein „?“ (RTR=1, keine Daten) oder ein „!“ (RTR=0, Parameter vorhanden) ist, und passt die CAN-Nachricht entsprechend an. Inés Seiler 2. Praxissemesterbericht 36 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 6.4.4 Abschnitt 4: Weitere Tasten und Funktionen Dieser Abschnitt dient rein der der Benutzeroberfläche und erlaubt es beim Drücken einer LÖSCHEN-Taste, angezeigte Fehler wieder zurückzusetzen. Er wurde von mir jedoch weder erstellt noch bearbeitet. Kosmetik 6.5 Ergebnisse Bild 55: Abschnitt 4 Nachdem alle aufgetretenen Programmierfehler behoben waren, wurde am Ende der Ausarbeitung erfolgreich über den CAN-Bus als ORDENADOR DE CONTROL mit dem simulierten CONTROLADOR DE CÚPULA kommuniziert (siehe Bild 35). Gesendete Befehle wurden sofort umgesetzt und der Empfang der Daten verlief ebenso einwandfrei. Beispiel: wurde die Einstellung SEGUIMIENTO AUTOMATICO gesendet (aus der Drop-Down-Liste ENVÍO DE COMANDOS, CAN-ID: 0051) und der Motor danach in Bewegung gesetzt (z.B. durch kontinuierliche Bewegung in positive Richtung, CAN-ID: 0044), sendete der Controlador automatisch und kontinuierlich die aktuellen Positionsdaten zurück. In dem Feld POSICIÓN ACTUAL xxx grad der Benutzeroberfläche konnte somit live beobachtet werden, auf welcher Position sich der Motor gerade befindet. Zum Test der RS-232C Verbindung wurde an den PC (ORDENADOR DE CONTROL) über die serielle Schnittstelle ein Laptop angeschlossen (als ORDENADOR TCS). Auf diesem lief eine ältere Version der selben Software, welche bereits über eine Implementierung der seriellen Schnittstelle verfügt und mit den verwendeten Kommandos (siehe Tab. 7) kompatibel ist. Das Programm PROGRAMA TÉCNICO CÚPULA T150.vi leitete erfolgreich alle empfangene Daten weiter. Folglich konnte der TCS (bzw. Laptop) den Motor der Kuppel steuern, z.B. stoppen. Ebenso war es möglich die Daten des Motors zu empfangen, d.h. z.B. die Positionsdaten mit dem TCS zu erfassen. Inés Seiler 2. Praxissemesterbericht 37 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 7.0 Absolutwert-Encoder RCN 829 7.1 Einleitung Zur Steuerung der Alpha-Achse des Teleskops sollen insgesamt Encoder verwendet werden: ein Relativer in direkter Verbindung mit den Motoren (siehe Kapitel 4) und ein Absolutwert Encoder zum präzisen Auslesen der Winkelposition der Achse. Die beiden Encoder und weitere Komponenten sollen, wie in Abbildung 56 dargestellt, an der Alpha-Achse angebracht werden (vgl. hierzu Bild 13). zwei Encoder Relativo Motor sobre Reductora (1:360) Encoder Absoluto (10bits) sobre Reductora (1:1) (no usado) Motor Freno Inductosin (no usado) Bild 56: Configuración para el estudio de posicionado ALFA Auffällig ist in der Darstellung, dass zwei Komponenten (markiert durch blaue Schrift), ein Absolutwert-Encoder und der Inductosyn, zwar an der Achse angebracht sind jedoch nicht verwendet werden („no usado“). Dies sind Überreste der alten (bzw. aktuellen) Konfiguration und sollen nun durch den Encoder RCN829 des Herstellers Heidenhain ersetzt werden. Neu sind ebenso das FPGA und der cRIO, welche einen A/D-Buffer ersetzen. Mit Hilfe dieser Elektronik werden die Signale des RCN829 bearbeitet. Das bereits bestehende System bleibt deshalb vorerst parallel in Betrieb, um den laufenden Betrieb des Teleskops nicht zu stören. Inés Seiler 2. Praxissemesterbericht 38 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Real Time BusCAN In Digital HighSpeed In Analógica 24 Bits CompactRIO Ethernet Programación Bus CAN Técnico Vcc CompactRIO Display LED Pos.ABS PCB-FPGA Buffer/Opto FPGA Manguera Asterix Inductosin Buffer/Opto Manguera Asterix Absoluto e Incremental Transceiver EndDat2.0 Vcc Relativo Absoluto RCN 829 ROD 230 Bild 57: Verbindung zwischen dem RCN829, dem FPGA und cRIO Bild 57 zeigt eine schematische Übersicht der Verbindungen zwischen dem Absolutwert Encoders, dem FPGA, dem CompactRIO und den weiteren Anschlüssen. 7.1.1 Vorgehensweise der Entwicklung 1. Entwicklung der Systeme zum Auslesen der Encoder (→ dieses Kapitel; bzgl. des relativen Encoders siehe Kap. 4). 2. Anbringung und Test am mechanischen Achsenmodel (s. Bild 13). Hierbei auftauchende Schwierigkeiten sollen vor der eigentlichen Inbetriebnahme des Systems behoben werden. 3. Implementierung des neuen Systems am Teleskop. 7.2 Grundlagen und Hardware 7.2.1 Übersicht des Aufbaus Der Encoder RCN829 wird mit einem Digilab D2-SB System Board verbunden, welches über das Xilinx XC2S200E FPGA verfügt. Die Kommunikation erfolgt über ein EnDat Interface. Das Board wird über eine parallele Schnittstelle mit einem PC verbunden (hierfür Inés Seiler 2. Praxissemesterbericht 39 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía wird ein NI DAQ-Pad 6016 verwendet) auf welchem ein Anwenderprogramm läuft („Application“ in Bild 58, Programmierung mit LabVIEW, sie Kap. 7.4). Bild 58: Systemkonfiguration des Encoders & Folgeelektronik 7.2.2 Der Encoder Der Encoder sendet die Winkelpositionen gemäss EnDat 2.2 und verfügt über 29 Bit (d.h. 536870912 Positionen pro Umdrehung). Diese Informationen werden daraufhin von dem FPGA für den PC über die parallele Schnittstelle zur Verfügung gestellt. Bild 59: RCN829 7.2.3 Das FPGA Bild 60: Block Diagramm des Softmakro Inés Seiler 2. Praxissemesterbericht 40 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Auf den FPGA wird das EnDat2.2 Softmakro der Firma MAZeT GmbH geladen. Der Masterbaustein dieser Firma wurde vom EncoderHersteller Heidenhain geprüft und für den Vertrieb freigegeben. 7.2.4 Kommunikation über die parallele Schnittstelle Relevant für die Kommunikation mit dem DAQ-Pad sind die Adresse (6 Bit), der Datenbus (1 oder 2 Byte, je nach Einstellung) und die Linien Chip-Select (/CS), Write (/WR), Read (/RD) sowie /Ready, siehe Abbildung 62. Diese Linien werden während der Entwicklung mit Bild 61: HP Logic Analyzer aus den 1980’ern einem Logic Analyzer der Firma Hewlett Packard überprüft. Die Einstellung zum Datenbusmodus (Mode16) kann über einen Schalter auf dem Board, also per Hardware, gesetzt werden. Bild 62: Read & Write Cycle Abgesehen vom Datenbus, welcher bidirektional ist, haben die Signale eine vorgesehene Richtung, gemäss der nachfolgenden Tabelle. Data (8/16 Bit): Address (6 Bit): /CS: /RD: /READY: /WR: DAQ Ports 0 & 1 Pins 2.(0:5) Pin 3.0 Pin 3.1 Pin 3.4 Pin 3.3 FPGA D(0:15) A(0:5) /CS /RD /READY /WR Tabelle 8: Parallele Kommunikation 7.3 Das Spannungspegel-Problem Die vier digitalen Ports (0 bis 3) des DAQ (s. Bild 63) können als Ein- oder Ausgänge konfiguriert werden, wobei auch einzelne Pins eines Portes individuell konfigurierbar sind. Ein Problem hierbei ist jedoch, dass das DAQ-Pad mit TTL (5V) Spannungsniveaus arbeitet, während das Digilab Board LVTTL-Pegel (3,3V) verwendet. An für sich sind die beiden Standards zwar kompatibel, da jedoch eine theoretische Gefahr besteht die Eingänge des Boards zu zerstören, Inés Seiler 2. Praxissemesterbericht 41 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía sollten die Verbindungen des parallelen Busses aufeinander eingestellt werden. Bild 63: DAQ-6016 Pin-Anschlüsse Bei unidirektionalen Verbindungen ist dies relativ einfach: bei Eingängen des DAQ-Pad können die Pins direkt miteinander verbunden werden, da eine logische LVTTL-Eins auch als logische Eins im TTL-Format interpretiert wird. In umgekehrter Richtung kann ein Widerstand oder ein IC zur Konvertierung zwischengeschaltet werden. Problematisch jedoch wird es bei dem Datenbus, da dieser bidirektional verläuft. 7.3.1 Lösung: Buffer Triestado Externo Zur Problembehebung wurde entschieden, dass der 16 Bit Datenbus aufgeteilt werden soll in zweimal 8 Bit unidirektional. Auf der Seite des DAQ ist dies einfach: Port 0 wird als Ein- und Port 1 als Ausgang definiert. Das Digilab Board wird mit MODE16=0 auf einen 8-Bit bidirektionalen Datenbus eingestellt. (Eine Aufteilung mit 8 festen Ein- und 8 festen Ausgängen ist deshalb nicht möglich, da die interne Programmierung des FPGA als Blackbox zu betrachten ist und vom Anwender nicht geändert werden kann.) Die Umleitung dieses Busses auf Port 0 bzw. 1 des DAQ wird mit der Zwischenschaltung in Abb. 64 realisiert. Anmerkung: Der dargestellte Schaltplan enthält Fehler, welche jedoch auf dem Steckbrett korrigiert wurden. Der Plan wurde aus zeitlichen Gründen nicht aktualisiert, da diese Arbeit in den letzten Tagen meines Aufenthalts erfolgte. IC 74HCT240 74HCT10 74HCT04 Beschreibung Octal buffer/line driver; 3-state; inverting Triple 3-input NAND gate Hex Inverter Tabelle 9: Übersicht verwendeter ICs Inés Seiler 2. Praxissemesterbericht 42 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Bild 64: „Esquema: Conexión buffer triestado externo“ Inés Seiler 2. Praxissemesterbericht 43 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Beschreibung: Die 8-Datenpins auf Seiten des FPGA werden direkt mit Port 0 des DAQ (Eingangsbus) verbunden. Die selben 8 Pins werden über einen 74HC240 Buffer (Inverter) auf Port 1 (DAQ Datenausgang) umgeleitet. Da die Stromversorgung des ICs durch das Digilab Board erfolgt, werden somit die Signale des DAQ auf den LVTTL-Pegel herabgesetzt (und zusätzlich invertiert). Der IC verfügt über zwei (gleichgeschaltete) Enable-Eingänge, welche so beschaltet sind, dass nur im Falle eines Schreibvorgangs die Signale durchgestellt werden. Der Default-Zustand setzt also einen Lesevorgang zur Sicherheit der FPGA-Pins voraus. Nach dem dargestellten Schaltplan werden die Enable-Pins direkt mit dem /WR verbunden. Dies war nur eine vorübergehende Lösung und wurde durch eine „sauberere“, wie folgt, ersetzt (siehe „Atención“ in Bild 64): Enable =0 when else ChipSelect=0 and Read=1 and Write=0, Enable =1 Für diese Schaltung werden die ICs 74HC10 (NAND) und 74HC04 verwendet. (Anmerkung: Die Enable-Eingänge des 74HC240 sind low-active, daher wird ein NAND statt AND verwendet.) (Inverter) Bild 65: Foto des Hardwareaufbaus Bild 65 dokumentiert den Hardwareaufbau. Auf der linken Seite ist das DAQPad zu sehen, welches mit einem Stromkabel versorgt wird und über einen USB-Anschluss mit einem PC (auf welchem die Software läuft, siehe Kap. 7.4) verbunden ist. In der Mitte ist das Steckbrett mit der Schaltung zu sehen, an welchem zwei Datenbusse des Logic Analyzers angeschlossen sind. Rechts das Digilab Board mit FPGA und Kabel zur Stromversorgung. Inés Seiler 2. Praxissemesterbericht 44 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 7.4 Die Software Der Hardwareaufbau verlief parallel zur Softwareentwicklung, daher wurden einige Details im Nachhinein abgeändert. Beispielsweise wurde zunächst von einem 16 Bit Datenbus ausgegangen, der jedoch später auf zwei 8 Bit Busse aufgeteilt wurde. In den nachfolgenden Abschnitten wird der letzte Stand der Software beschrieben. Die Software wurde von Grund auf neu entwickelt; es gab keine bereits bestehenden Programmteile. Die Software ist nur als Zwischenschritt gedacht, um das Lesen des Encoders zu vereinfachen. Später, sobald die Kommunikation mit dem EnDat2.2 Standard bekannt ist und die Konfiguration des Encoders getestet wurde, wird für das Auslesen ein cRIO an Stelle des DAQ eingesetzt, wie in Abb. 57 dargestellt. Das Programm wird allerdings weiterhin, im Rahmen von Wartungsarbeiten, eingesetzt werden. 7.4.1 Kommunikationsbausteine Um die Ports oder Pins des DAQ zugänglich zu machen und um sie zu konfigurieren werden sogenannte Tasks mit der Measurement & Automation Software von NI erstellt. Insgesamt werden 5 Tasks nach folgender Tabelle konfiguriert. Controls enthält die Linien /CS, /RD und /WR, alle Anderen sind selbsterklärend. DAQTask Data in Data out Addr Controls Ready Port/Pin P0 P1 P2.[0:5] P3.[0;1;3] P3.4 Konfiguration invertiert invertiert Tabelle 10: Tasks Eingänge Task: Data in/out Task: Address Task: Controls Task: Ready Data: Dirección (Data: Data write) Ausgänge Data: Error read/write Data: Error out (Data: Data read) Tabelle 11: Ein- & Ausgänge der SubVI's Es wurden zwei VI’s erstellt, welche sich im Grunde im Aufbau gleichen. Eines liest Daten über die parallele Schnittstelle ein (liefert als Ausgang also die Daten), das Andere sendet sie (hat einen Dateneingang, s. Tab. 11). Diese Bausteine sollen später Bild 66: Front Panel des SubVI in einem Hauptprogramm als Parallel_Read_8bit.vi SubVI’s verwendet werden. Die Programmierung ist unten zu sehen. Beim Aufrufen eines VI werden zuerst die Tasks gestartet, d.h. die Hardware konfiguriert und reserviert. Danach wird in einer Sequence-Structure nacheinander auf die einzelnen Ports bzw. Pins zugegriffen. Die Reihenfolge entspricht dem Diagramm aus Bild 62. Die dort Inés Seiler 2. Praxissemesterbericht 45 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía eingezeichneten Minimalzeitspannen (im Nanosekundenbereich) werden auf keinen Fall unterschritten, da das Programm auf dem PC verhältnismäßig langsam abläuft. Danach werden die Tasks beendet (die Hardware wird freigegeben) und die eventuell aufgetretenen Fehler werden zu einer Fehlermeldung gebündelt, welche als Error Out ausgegeben wird. Bild 67: Block Diagramm des SubVI Parallel_Read_8bit.vi Sequenz 0. 1. 2. 3. Read VI Write VI Address-Bus = Registeradresse (dirección) Databus = Data Write /CS setzen /RD = setzen /WR = setzen /ready = gesetzt? Wenn nein Fehler-LED setzen Data Read = Databus /CS = /RD = /WR = löschen Tabelle 12: Reihenfolge der Kommunikationssequenzen 7.4.2 EnDat2.2: zu lesende/schreibende Register Für die Software stehen die Register nach Abb. 68 zum Lesen/Schreiben zur Verfügung (W/R=Write & read, RO=Read-only, WO=Write-only). Innerhalb der Register befinden sich verschiedene Konfigurationsvariablen. Das „Identification Daten und Register“ beispielsweise enthält Versions- und Protokollnummern und steht gemäss der Tabelle oben nur zum Lesen bereit. Beim Auslesen liefert es stets 0E22 E50F. Nachfolgend wird als Beispiel der Inhalt des Cofiguration Register 1 in Abb. 69 dargestellt. Inés Seiler 2. Praxissemesterbericht 46 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Bild 68: Register-Zugriff Bild 69: Configuration Register 1 7.4.3 Hauptprogramm Die Benutzeroberfläche stellt in einer Registerkartei nur die wichtigsten Register zur Verfügung. Des Weiteren gibt es ein Register zum Einstellen der Hardware (DAQ) und eines welches ein manuelles Lesen oder Schreiben eines Bytes auf einer bestimmten Adresse ermöglicht. Je nach Zugriffsrechte (Bild 68) können Register gelesen oder beschrieben werden. Die Konfigurationsregister erlauben beides. Die Inhalte der Register werden gemäss der Dokumentation (Bild 69) in ihre Inhalte aufgeteilt (Bild 70). Inés Seiler 2. Praxissemesterbericht 47 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Bild 70: Auszüge des Front Panel des Programms Das Einlesen der Konfigurationsregister 1 und 2 erfolgt in vier Schritten: 1. Überprüfen welche Taste gedrückt wurde. Wurde Retrieve Settings der Konfigurationsregister gewählt wird in der CaseStructure „Fall 5“ ausgeführt. 2. Es wird das Byte der Hex-Adresse 14 mit dem Parallel_Read_8bit.vi eingelesen sowie die nachfolgenden 7 Bytes. Diese 8 Bytes werden in einem Byte-Array zwischengespeichert. 3. Das Array wird wieder in einzelne Bytes aufgeteilt und diese so zusammengefügt dass die Konfigurationsregister 1 und 2 dabei entstehen. 4. Die Register werden in ihre einzelnen Inhalte zerlegt (Bild 69), in Variablen gespeichert und auf der Benutzeroberfläche angezeigt. Das speichern der Register erfolgt bei den Punkten 2-4 in umgekehrter Reihenfolge (Zusammensetzen der Inhalte zu Bytes, Bytes zusammenfügen zu Register, Byte-Array per Parallel_Write_8bit.vi senden). Inés Seiler 2. Praxissemesterbericht 48 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 1. 4. 2. 3. Bild 71: Block Diagramm des Programms 7.5 Ergebnisse Die Programmierung der Kommunikationsbausteine erwies sich als erfolgreich. Zwischenzeitlich traten zwar Kommunikationsfehler auf, diese waren jedoch auf ein fehlerhaftes Verhalten (aufgrund fehlerhafter Programmierung) des FPGAs zurückzuführen und nicht auf die erstellte Anwendersoftware, welche mit dem PC ausgeführt wurde. Bild 72: Foto des Logic Analyzers. Fehlerhaftes Verhalten: Daten stehen nur kurzzeitig zur Verfügung Inés Seiler 2. Praxissemesterbericht 49 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Beispiel: Der am häufigsten aufgetretene Fehler beim Lesevorgang entstand dadurch, dass die Daten auf dem Bus von dem FPGA nur kurzzeitig, nicht bis zum Ende des Vorgangs, zur Verfügung gestellt wurden. Zum Zeitpunkt der Datenerfassung durch das DAQPad jedoch waren die Daten manchmal entweder noch nicht, oder nicht mehr auf dem Bus vorhanden. Bei einigen Lesevorgängen wurden die Daten trotz des Fehlers korrekt erfasst. In dem Beispiel aus Bild 72 werden die Daten (Zeile D_READ) frühzeitig zurück gesetzt. Bei korrekter Übertragung erfolgt deren Rücksetzung erst nach Rücksetzung der CS, RD und READY Signale (vgl. Bild 62). Die Teilweise etwas unübersichtlichen Konvertierungsvorgänge im Hauptprogramm (z.B. um eingelesene Bytes in einzelne Informationsvariablen aufzuteilen) enthielten anfangs ein paar wenige Programmierfehler, welche jedoch nach einer Korrektur vollständig behoben wurden. Danach wurden sowohl Lese- als auch Schreibvorgänge getestet, mit erfolgreichen Ergebnissen. Aufgetretene Fehler waren, wie bereits beschrieben, auf das Verhalten des FPGAs zurück zu führen. Es lässt sich also zusammenfassen, dass – korrektes Verhalten des FPGAs vorausgesetzt – die Anwendersoftware erfolgreich eingesetzt werden kann um auf die Register des FPGAs bzw. die Daten des RCN-829 Encoders zuzugreifen. 7.6 Weiteres Vorgehen Als Nächstes soll nun die Übertragung der Daten des Encoders an den FPGA über die EnDat-Schnittstelle umgesetzt werden. Ist diese erfolgreich in Betrieb genommen, so wird mit der oben beschriebenen Software die Konfiguration des Encoders eingestellt. Die optimalen Einstellungen, der Konfigurationsvorgang, sowie der Auslesevorgang der Positionsdaten des Encoders sollen auf diese Art und Weise ermittelt und kennen gelernt werden. Daraufhin wird eine entsprechende Prototyp-Flachbaugruppe entworfen, welche das Digilab Board ersetzt. Größe und Anzahl der Anschlüsse dieses Prototyps sollen minimiert werden, um auch die Anzahl möglicher Fehlerquellen gering zu halten. Sind all diese Schritte abgeschlossen kann der nächste Entwicklungsschritt erfolgen: die Anbringung am Achsenmodel (siehe Abschnitt „7.1.1 Vorgehensweise der Entwicklung“). Inés Seiler 2. Praxissemesterbericht 50 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 8.0 Fazit Im Rahmen meiner Tätigkeiten während des Praxissemesters wurde es mir ermöglicht meine, durch mein Studium erworbenen, Kenntnisse anzuwenden und zu erweitern. Im Wesentlichen kam mein Informatik- und Elektronikwissen zum Einsatz. Ich habe mich mit verschiedenen digitalen Kommunikationsmöglichkeiten befasst und deren jeweilige Vor- und Nachteile kennen gelernt. Ebenso beschäftigte ich mich mit dem Auslesen und dem Kommunizieren mit Sensoren. In diesem Zusammenhang waren meine Kenntnisse der technischen Optik sehr hilfreich, da optische Winkelmessgeräte zum Einsatz kamen. Ebenso ergaben sich viele Gelegenheiten die grafische Programmiersprache des Programms LabView von National Instruments kennen zu lernen. In einem mehr allgemeinerem Rahmen war es mir möglich etwas über den Aufbau und die Funktionsweise von Teleskopen zu lernen, sowie über die praktischen Schwierigkeiten die bei der Anwendung auftreten können. Die sprachlichen und kulturellen Erkenntnisse, die mit meinem Aufenthalt von 5 Monaten in Spanien verbunden waren, sind selbstverständlich nicht zu vergessen. Alles in Allem eine sehr wertvolle Erfahrung. Inés Seiler 2. Praxissemesterbericht 51 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 9.0 Anhang 9.1 Abkürzungsverzeichnis & Glossar ASIC CAN CISC CMOS COTS CRC cRIO DAQ-STC Application Specific Integrated Circuit Controller Area Network Consejo Superior de Investigaciones Científicas Complementary Metal Oxide Semiconductor Commercial Off The Shelf Cyclic Redundancy Check Compact Reconfigurable Embedded System von NI Data Aquisition - System Timing Controller (DAQ: PC-TIO-10 User Manual) Dynamic Linking Library Kommunikationsstandard der Firma Heidenhain Field Programmable Gate Array (programmierbarer IC) Graphical User Interface ein CMOS IC der Firma Avago Technologies Instituto Astrofísica de Andalucía Integrated Circuit (integrierter Schaltkreis) Nachrichten-Identifier (bzw. CAN-Code) Inductosyn® Transducer von Farrand Controls, Ruhle Companies Inc. IR Infrarot LVTTL Low-Voltage-TTL MPIA Max-Plack-Institut für Astronomie NI National Instruments NI-TIO „a National Instruments timing and triggering controller ASIC. The TIO includes four general purpose counter/timers … The TIO also provides advanced digital I/O capabilities for time-stamping multiple I/O lines and controlling digital output lines.” (DAQ: PC-TIO-10 User Manual) OSN Observatorio Sierra Nevada PID Proportional-Integral-Differential (Regelungstechnik) RTR Remote Transmission Request T150 Teleskop 150cm T90 Teleskop 90cm TTL Transistor-Transitor-Logik UDIT Unidad de Desarrollo Instrumental y Tecnológico VI Virtual Instrument, Programmdatei von LabVIEW DLL EnDat2.2 FPGA GUI HCTL IAA IC ID 9.2 Abbildungsverzeichnis Bild 1: Granada in Spanien ..........................................................1 Bild 2: CSIC Logo .......................................................................1 Bild 3: Organigramm des IAA .......................................................2 Inés Seiler 2. Praxissemesterbericht 52 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía Bild Bild Bild Bild Bild 4: Observatorio Sierra Nevada (OSN)......................................3 5: Logo OSN ........................................................................3 6: Prinzip des Nasmyth-Teleskops ..........................................3 7: Prinzip des Ritchey-Chrétien-Teleskops ...............................3 8: Das T150 innerhalb der Kuppel. Die Hauptachse ist parallel zum Äquator ausgerichtet (equatorial mount). ..........................5 Bild 9: Das aktuelle System .........................................................6 Bild 10: Struktur des neuen dezentralen Systems ...........................9 Bild 11: Altes System der Achsen ...............................................10 Bild 12: Neues System der Achsen..............................................10 Bild 13: Mechanisches Modell des Teleskops.................................11 Bild 14: ERN 1070 ....................................................................12 Bild 15: Signale eines relativen Quadrature Encoders (Uhrzeigersinn) ........................................................................................12 Bild 16: X1, X2 und X4 Encoder..................................................13 Bild 17: Foto der Hardware ........................................................14 Bild 18: GUI des LabView Programms für ERN 1070 ......................14 Bild 19: LabView Blockdiagram für ERN 1070 ...............................15 Bild 20: LabVIEW Blockdiagram zum Auslesen des /Z-Kanals .........16 Bild 21: UC-313........................................................................18 Bild 22: RS485 Converter ..........................................................18 Bild 23: WEST N2300 ................................................................18 Bild 24: Eigenschaften von Modbus ASCII & RTU ..........................18 Bild 25: Modbus Nachrichtenstruktur...........................................19 Bild 26: Modbus Function Codes .................................................19 Bild 27: Kommando-Codes des N2300.........................................19 Bild 28: Full- vs. Half-Duplex Communication ...............................20 Bild 29: Connection Setup .........................................................20 Bild 30: Beispiel der Kommunikation ...........................................20 Bild 31: Converter DIP-Switch Settings .......................................21 Bild 32: Anschlüsse N2300.........................................................21 Bild 33: Unter-/Oberseite des Konverters.....................................21 Bild 34: Kommunikationsbeispiel RS232-RS485............................22 Bild 35: Steuerung der Kuppel....................................................23 Bild 36: Screenshot des bereits bestehenden LabView Programms ..24 Bild 37: Vereinfachte Struktur des PROGRAMA TÉCNICO CÚPULA T150.vi ..............................................................................25 Bild 38: VI-Hierachie des PROGRAMA TÉCNICO CÚPULA T150.vi.....27 Bild 39: CAN-Bus Broadcasting ...................................................28 Bild 40: CAN-Nachrichten im Standard Format .............................28 Bild 41: vorne links: angesteuerter Motor ....................................29 Bild 42: CAN-PCI/331................................................................29 Bild 43: Screenshot des Programms CANscope .............................29 Bild 44: Testflachbaugruppe.......................................................29 Bild 45: Einige CAN-Funktionen ..................................................30 Bild 46: CAN-Initialisierung ........................................................30 Bild 47: canOpen.vi...................................................................30 Inés Seiler 2. Praxissemesterbericht 53 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Bild Instituto Astrofísica de Andalucía 48: Routine zum Einlesen der COMANDOS.txt ........................32 49: Programa Principal: Abschnitt 1 ......................................33 50: Benutzeroberfläche .......................................................34 51: Case-Struktur der Kommandos.......................................34 52: Programa Principal: Ausschnitt von Abschnitt 2 ................35 53: canReadMsg.vi .............................................................36 54: Programa Principal: Abschnitt 3 ......................................36 55: Abschnitt 4 ..................................................................37 56: Configuración para el estudio de posicionado ALFA............38 57: Verbindung zwischen dem RCN829, dem FPGA und cRIO ...39 58: Systemkonfiguration des Encoders & Folgeelektronik.........40 59: RCN829 .......................................................................40 60: Block Diagramm des Softmakro ......................................40 61: HP Logic Analyzer aus den 1980’ern ................................41 62: Read & Write Cycle .......................................................41 63: DAQ-6016 Pin-Anschlüsse..............................................42 64: „Esquema: Conexión buffer triestado externo“..................43 65: Foto des Hardwareaufbaus .............................................44 66: Front Panel des SubVI Parallel_Read_8bit.vi ..............45 67: Block Diagramm des SubVI Parallel_Read_8bit.vi ........46 68: Register-Zugriff ............................................................47 69: Configuration Register 1 ................................................47 70: Auszüge des Front Panel des Programms .........................48 71: Block Diagramm des Programms ....................................49 72: Foto des Logic Analyzers. Fehlerhaftes Verhalten: Daten stehen nur kurzzeitig zur Verfügung ......................................49 9.3 Tabellenverzeichnis Tabelle Tabelle Tabelle Tabelle Tabelle Tabelle Tabelle Tabelle Tabelle Tabelle Tabelle Tabelle Inés Seiler 1: Chronologischer Tätigkeitsabriss ....................................4 2: Übersicht serieller Kommunikationsmöglichkeiten ..........17 3: Modbus Nachrichtenbeispiel ........................................19 4: Erläuterung Modbus Nachrichtenbeispiel .......................19 5: Pin Verbindungen RS485-RS485 ..................................20 6: Pin Verbindungen RS232-RS485 ..................................21 7: Comandos de la cúpula (COMANDOS.txt)......................31 8: Parallele Kommunikation ............................................41 9: Übersicht verwendeter ICs ..........................................42 10: Tasks .....................................................................45 11: Ein- & Ausgänge der SubVI's .....................................45 12: Reihenfolge der Kommunikationssequenzen ................46 2. Praxissemesterbericht 54 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Instituto Astrofísica de Andalucía 9.4 Quell- und Literaturverzeichnis • CAN: NI-CAN Hardware and Software Manual, May 2005, National Instruments. • Data Acquisition and Signal Conditioning (Course Manual), August 2003 Edition, National Instruments. • DAQ: PC-TIO-10 User Manual, April 1999 Edition, National Instruments. • Fundamental Astronomy, H. Karttunen et al, fourth edition, Springer Verlag. • HDL Chip Design, Douglas J. Smith, 1998 Doone Publications, Madison, AK, USA. • New Control System for the 1.5m and 0.9m Telescopes at Sierra Nevada Observatory, L. P. Costillo et al, Proceeding of SPIE Vol. 6274 62741I-12, IAA, Granada, Spain. • Proyecto Modelo de Telescopio (ServoMotores), J. L. Ramos Más, Versión 1, Oct. 2007. 9.4.1 Bildquellen Bild Bild Bild Bild Bild 1 2 3 4 5 Bild 6 Bild 7 Bild 8 Bilder 9 bis 12 Bild 13 Bild 14 Bild 15 Bild 16 Bilder 17 bis 20 Bild 21 Inés Seiler http://www.iaa.es/img/docs/plano-gr.gif [27.11.07] http://www.hisparob.es/images/logos/logo_csic.png [27.11.07] http://www.iaa.es/organigrama/organigrama.gif [27.11.07] http://www.osn.iaa.es/fotos/foto_portada.JPG [27.11.07] Proyecto Modelo de Telescopio.doc (Modelo de Telescopio, Propuesta de Proyecto de Desarrollo, José Luis Ramos Más) http://de.wikipedia.org/wiki/Bild:Nasmyth-Telescope.svg [27.11.07] http://de.wikipedia.org/wiki/Bild:Ritchey-Chretien-CassegrainTeleskop.svg [27.11.07] PROYECTO DE Controlador de la CÚPULA T150.doc (Nueva Consola, Control de Cúpula), IAA 2007. New Control System for the 1.5m and 0.9m Telescopes at Sierra Nevada Observatory, L. P. Costillo et al, Proceeding of SPIE Vol. 6274 62741I-12, IAA, Granada, Spain. IAA, 2004. Heidenhain, Preliminary Product Information, ERN 1000 Series, Generation 2, 03/2006. http://pdf.directindustry.com/pdf/heidenhain/rotary-encoders/155-88_32.html [25.10.07] DAQ PCI/PXI 6602 – User Manual, Pages 3-18, 3-19 Inés Seiler, 2007. http://www.serial-cards.co.uk/CategoryImages%5CUC313l.jpg [21.12.07] 2. Praxissemesterbericht 55 H Hoocchhsscchhuullee K Kaarrllssrruuhhee IIA AA A University of Applied Sciences Hochschule für Technik Bild 22 Bild 23 Bild 24 Bilder 25, 26 Bild 27 Bild 28 Bilder 29, 30, 34 Bilder 31, 33 Bild 32 Bild 35 Bilder 36 bis 38 Bilder 39, 40 Bild 42 Bilder 41, 43 bis 55 Bilder 56, 57, 60 Bilder 58, 60, 62, 68, 69 Bild 61 Bild 63 Bild 64 Bilder 65 bis 67, 70 bis 72 Instituto Astrofísica de Andalucía http://www.patton.com/manuals/2085.pdf [21.12.07] http://www.setra.com.cn/images/file_upload/img/ 20050707134355.JPG [21.12.07] http://www.lammertbies.nl/comm/info/modbus.html#tran [12.11.07] http://www.lammertbies.nl/comm/info/modbus.html#mess [12.11.07] http://www.easytherm.cz/download.php?id=410682,17,1 [12.11.07] http://ckp.made-it.com/pictures/rs485.gif [12.11.07] Inés Seiler, 2007. http://www.patton.com/manuals/2085.pdf [12.11.07] http://www.farnell.com/datasheets/51900.pdf [12.11.07] EL SOFTWARE DEL NUEVO CONTROLADOR.doc, IAA 2007. Inés Seiler, 2008. Bild 37 wurde mit dem Freewareprogramm husStruktogrammer erstellt. Controller Area Network – Ein serielles Bussystem nicht nur für Kraftfahrzeuge, ESG GmbH, Hannover, (www.esd-elecotronics.com). http://www.esd-electronics.de/photos/PCI31-21.jpg [22.01.08] Inés Seiler, 2008. Proyecto Actualización Posicionado Alfa.doc (Informe Técnico, J. L. Ramos Más, 2007.) Data Sheet: EnDat 2.2 Master Component, FPGA Softmakro for Position Encoder Systems with EnDat & SSI Interface. MAZeT GmbH, Jena, 2005. http://www.usedmeter.com/upimg/200412161172194623.jpg [23.01.08] Measurement & Automation Explorer, Vers. 4.3.0f0, National Instruments, 2007. NI-DAQmx Device Terminal Help > DAQ Devices > NI DAQPad-6016. J. L. Ramos Más, IAA, 2008. Inés Seiler, 2008. 9.4.2 Softwarequellen • • • • • Hus-Struktogrammer, V97.05 Delphi32 (Freeware), Steck Hans-Ulrich. Microsoft® Office Word 2003, Eigentum des IAA. Modbus Poll Version 4.3.2. (Trial Edition), www.modbustools.com. National Instruments LabView v7.1 und v8.5, Eigentum des IAA. National Instruments Measurement & Automation Explorer v. 4.3.0f0, Eigentum des IAA. Inés Seiler 2. Praxissemesterbericht 56