DE102008043530A1 - Maschinensteuerung und elektrische Maschine, insbesondere Industrieroboter - Google Patents

Maschinensteuerung und elektrische Maschine, insbesondere Industrieroboter Download PDF

Info

Publication number
DE102008043530A1
DE102008043530A1 DE200810043530 DE102008043530A DE102008043530A1 DE 102008043530 A1 DE102008043530 A1 DE 102008043530A1 DE 200810043530 DE200810043530 DE 200810043530 DE 102008043530 A DE102008043530 A DE 102008043530A DE 102008043530 A1 DE102008043530 A1 DE 102008043530A1
Authority
DE
Germany
Prior art keywords
machine
control
program
ram
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE200810043530
Other languages
English (en)
Other versions
DE102008043530B4 (de
Inventor
Heinrich Munz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KUKA Deutschland GmbH
Original Assignee
KUKA Roboter GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KUKA Roboter GmbH filed Critical KUKA Roboter GmbH
Priority to DE102008043530.9A priority Critical patent/DE102008043530B4/de
Publication of DE102008043530A1 publication Critical patent/DE102008043530A1/de
Application granted granted Critical
Publication of DE102008043530B4 publication Critical patent/DE102008043530B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/22Pc multi processor system
    • G05B2219/2205Multicore
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34482Redundancy, processors watch each other for correctness

Abstract

Die Erfindung betrifft eine Maschinensteuerung (9) und eine elektrische Maschine, insbesondere einen Industrieroboter (1) mit einer Maschinensteuerung (9). Die Maschinensteuerung (9) basiert auf einem PC-Computersystem, das ein erstes RAM (14), eine zweites RAM (15) und einen Mehrkernprozessor (10) mit einem ersten Prozessorkern (11) und einem zweiten Prozessorkern (12) aufweist. Das Computersystem ist mit einer einem einen ersten Programmteil und einen zweiten Programmteil aufweisenden Sicherheitssteuerprogramm zum Überwachen der Maschine bzw. des Industrieroboters (1) konfiguriert, dessen erster Programmteil nur dem ersten Prozessorkern (11) und dem ersten RAM (14) un dessen zweiter Programmteil nur dem zweiten Prozessorkern (12) und dem zweiten RAM (15) zugeordnet ist.

Description

  • Die Erfindung betrifft eine Maschinensteuerung und eine elektrische Maschine, insbesondere einen Industrieroboter.
  • Aus Kostengründen ist es erstrebenswert, möglicht keine Speziallösungen, sondern allgemein verfügbare Produkte oder Lösungen zu verwenden. Aus diesem Grund existiert bereits seit Mitte der 1990er Jahre die Tendenz, in der industriellen Maschinensteuerung Produkte aus der Büroumgebung, wie z. B. PCs (PC basierende Computersysteme) für die Steuerung und Ethernet als Kommunikationstechnologie, zu verwenden.
  • Bei einem Einsatz von Software in Büroumgebungen kommt es jedoch hauptsächlich auf die korrekte Funktion der Software und nicht so sehr auf einen genauen zeitlichen Aspekt an. Die Software sollte ihre Aufgabe lediglich in einem für menschliche Verhältnisse angemessenen Rahmen, also im einstelligen Sekundenbereich oder knapp darunter, erledigen. Da bei einer Maschinensteuerung die Software die Bewegung der Maschine vorgibt, muss sie zeitlich relativ genau und synchron zur Maschinenbewegung arbeiten. Je schneller und genauer sich die Maschine bewegen soll, um so zeitlich genauer muss die Software sein. Bei modernen, relativ hochgenauen Maschinen ist es nicht unüblich, dass Motoren der Maschinen in einer Sekunde 8.000 Mal (entspricht 125 Mikrosekunden Zykluszeit) oder auch öfters von der Software nachgeregelt werden müssen. Hier ist es also nicht nur wichtig, dass eine Software ihre Aufgabe relativ korrekt erfüllt, sondern muss dies auch möglichst schnell tun. Man spricht in diesem Zusammenhang von der Echtzeitfähigkeit der Software. Je strikter diese Echtzeitfähigkeit ist, umso schneller und genauer kann sich die Maschine bewegen.
  • Außerdem weisen Maschinesteuerungen Sicherheitssteuerungen auf, die einen sicheren Zustand der Maschine überwachen und z. B. gegebenenfalls eine Bewegung der Maschine stoppen oder eine Bewegung der Maschine verhindern.
  • Die Aufgabe der vorliegenden Erfindung ist es daher, eine Maschinensteuerung mit einer Sicherheitssteuerung basierend auf einem PC-Computersystem anzugeben.
  • Die Aufgabe der Erfindung wird gelöst durch eine Maschinensteuerung basierend auf einem PC-Computersystem, aufweisend ein erstes RAM, ein zweiten RAM und einen Mehrkernprozessor mit einem ersten Prozessorkern und einem zweiten Prozessorkern, wobei das Computersystem mit einer einem einen ersten Programmteil und einen zweiten Programmteil aufweisenden Sicherheitssteuerprogramm zum Überwachen einer Maschine konfiguriert ist, dessen erster Programmteil nur dem ersten Prozessorkern und dem ersten RAM und dessen zweiter Programmteil nur dem zweiten Prozessorkern und dem zweiten RAM zugeordnet ist.
  • Ein weiterer Aspekt der Erfindung ist eine elektrische Maschine, insbesondere ein Industrieroboter, aufweisend die erfindungsgemäße Maschinensteuerung.
  • Die erfindungsgemäße Maschinensteuerung basiert demnach auf einem PC-Computersystem, also auf einem Standard-PC mit einem Mehrkernprozessor. Damit das Sicherheitssteuerprogramm (Sicherheitssteuerung) zuverlässig arbeitet, ist dies auf die beiden Prozessorkerne verteilt. Um z. B. einen Hardware-Fehler des RAMS, z. B. einen Common Cross Fehler des RAMs zu vermeiden, umfasst die erfindungsgemäße Motorsteuerung die zwei separaten RAMs und ist derart konfiguriert, so dass ein Teil des Sicherheitssteuerprogramms dem ersten Prozessorkern und dem ersten RAM und der andere Teil dem zweiten Prozessorkern und dem zweiten RAM zugeordnet ist.
  • Das erste bzw. zweite RAM kann ein erstes bzw. zweites dynamisches RAM (DRAM) sein. Das erste bzw. zweite RAM kann auch ein erster bzw. zweiter Speicherriegel sein. Ein Speicherriegel umfasst mehrere individuelle RAM-Bausteine.
  • Gemäß einer Variante der erfindungsgemäßen Maschinensteuerung sind dem ersten Programmteil zugeordnete erste Daten und erste Programmcodes nur im ersten RAM und dem zweiten Programmteil zugeordnete zweite Daten und zweite Programmcodes nur im zweiten RAM gespeichert.
  • Nach einer Ausführungsform der erfindungsgemäßen Maschinensteuerung ist das Sicherheitssteuerprogramm eingerichtet, mittels jeweils des ersten und des zweiten Programmteils die Maschine zu überwachen und nur dann eine Bewegung der Maschine zu erlauben und/oder die Maschine automatisch zu stoppen, wenn sowohl eine erste Berechnung basierend auf dem ersten Programmteil als auch eine zweite Berechnung basierend auf dem zweiten Programmteil eine sichere Bewegung der Maschine ergeben. Gemäß dieser Variante überwachen beide Programmteile der Sicherheitssteuerung unabhängig voneinander die Maschine und erlauben nur dann eine Bewegung der Maschine, wenn beide Programmteile, die z. B. identisch sein können, auf einen sicheren Betriebszustand der Maschine schließen.
  • Der erste Prozessorkern kann nach einer Variante der erfindungsgemäßen Motorsteuerung den ersten Programmteil und der zweite Prozessorkern den zweiten Programmteil in Echtzeit ausführen. Dadurch wird sicher gestellt, dass ein unsicherer Zustand der Maschine in Echtzeit erkannt und gegebenenfalls die Maschine gestoppt wird.
  • In der Informatik wird zwischen den Begriffen ”Echtzeit” und ”Modellzeit” unterschieden. Echtzeit bezieht sich auf die Zeit, die Abläufe in der ”realen Welt” verbrauchen. Modellzeit hingegen bezieht sich dagegen auf die von einem Rechenprogramm selbstverwaltete Laufzeit.
  • Unter einem echtzeitfähigen System kann man ein System verstehen, das auf ein Ereignis innerhalb eines vorgegebenen Zeitrahmens reagieren muss. Der vorgegebene Zeitrahmen hängt von der jeweiligen Aufgabe ab, die mit Echtzeit verarbeitet werden soll, und kann beispielsweise im Mikrosekundenbereich z. B. für schnelle digitale Steuerungs- und/oder Regelungsaufgaben oder auch im Sekundenbe reich z. B. für Temperaturregelungen oder Füllstandsüberwachungen liegen.
  • Bisweilen unterscheidet man zwischen weicher und harter Echtzeit. Bei der so genannten harten Echtzeit bedeutet ein Überschreiten des vorgegebenen Zeitrahmens einen Fehler. Bei der sogenannten weichen Echtzeit arbeitet dagegen das System die relevanten Eingaben in der Regel innerhalb des vorgegebenen Zeitrahmens ab, wobei grundsätzlich ein vereinzeltes Überschreiten des vorgegebenen Zeitrahmens möglich ist und zu keinem Fehler führt.
  • Gemäß einer Ausführungsform der erfindungsgemäßen Maschinensteuerung ist diese mit einem insbesondere in Echtzeit ausgeführtes Steuerungs- und/oder Regelungsprogramm konfiguriert, das eingerichtet ist, eine Bewegung der Maschine zu steuern und/oder zu regeln. Das Steuerungs- und/oder Regelungsprogramm kann auf beiden Prozessorkernen laufen und kann auf beide RAMs zurückgreifen.
  • Nach einer Variante der erfindungsgemäßen Maschinensteuerung weist das Steuerungs- und/oder Regelungsprogramm einen Steuerungsprogrammteil zum Steuern der Maschine und einen Regelungsprogrammteil zum Regeln der Bewegung der Maschine auf, wobei der Steuerungsprogrammteil nur auf einem der beiden Prozessorkerne und der Regelungsprogrammteil auf dem anderen der beiden Prozessorkerne läuft. Hier ist es möglich, dass ein bestimmtes der beiden RAMs dem Steuerungsprogrammteil und das andere RAM dem Regelungsprogrammteil zugeordnet ist.
  • Die Maschinensteuerung ist nach einer weiteren Ausführungsform mit einem so genanntes ”General-Purpose” Betriebssystem konfiguriert, das nur entweder dem ersten Prozessorkern oder nur dem zweiten Prozessorkern zugeordnet ist. Ein ”General-Purpose” Betriebssystem wird auch als Standard-Betriebssystem bezeichnet und ist ein Betriebssystem, das nicht für eine spezielle Anwendung und insbesondere nicht speziell zum Steuern einer Maschine, z. B. eines Industrieroboters, vorgesehen ist. Beispiele von ”General-Purpose” Betriebssystemen sind die Windows® Betriebssysteme der Microsoft Corporation. Die Begriffe ”Windows” und ”Microsoft” sind markenrechtlich geschützte Begriffe der Microsoft Corporation.
  • Insbesondere eine Benutzeroberfläche des Sicherheitssteuerprogramms und/oder des Steuerungs- und/oder Regelungsprogramms kann auf dem ”General-Purpose” Betriebssystem laufen.
  • Ein Ausführungsbeispiel der Erfindung ist exemplarisch in den beigefügten schematischen Zeichnungen dargestellt, deren einzige Figur einen Industrieroboter mit einem Steuerrechner zeigt.
  • Die Figur zeigt einen Industrieroboter 1 mit einer Kinematik für Bewegungen in beispielsweise sechs Freiheitsgraden als Beispiel einer elektrischen Maschine. Der Industrieroboter 1 weist in allgemein bekannter Weise einen Roboterarm 2 mit sechs Bewegungsachsen, Gelenken, Hebeln 4, 5 und einem Flansch 6 auf. In der Figur ist nur eine der Bewegungsachsen mit dem Bezugszeichen 7 versehen und der Roboterarm 2 ist auf einem Sockel 8 befestigt.
  • Jede der Bewegungsachsen 7 wird von einem nicht näher dargestellten Antrieb bewegt. Die Antriebe umfassen beispielsweise jeweils einen elektrischen Motor und Getriebe, wie es dem Fachmann allgemein bekannt ist.
  • Der Industrieroboter 1 weist ferner einen Steuerrechner (Robotersteuerung) 9 auf, der mit den Antrieben des Industrieroboters 1 in nicht dargestellter Weise verbunden ist und diese mittels eines auf dem Steuerrechner 9 laufenden Rechenprogramms steuert bzw. regelt, so dass der Flansch 6 des Industrieroboters 1 eine vorgegebene Bewegung durchführt.
  • Der Steuerrechner 9 weist im Falle des vorliegenden Ausführungsbeispiels einen Mehrkernprozessor 10 auf. Der Mehrkernprozessor 10 ist auf einem Motherboard 13 befestigt und weist einen ersten Prozessorkern 11 und einen zweiten Prozessorkern 12 innerhalb seines Gehäuses auf. Die beiden Prozessorkerne 11, 12 sind eigenständige Recheneinheiten.
  • Der Steuerrechner 9 weist im Falle des vorliegenden Ausführungsbeispiels ferner einen ersten DRAM Speicherriegel 14 und einen vom ersten DRAM Speicherriegel 14 physikalisch unabhängigen zweiten DRAM Speicherriegel 15 auf. Jeder der Speicherriegel 14, 15 weist mehrere einzelne DRAM Bausteine 14a bzw. 15a auf.
  • Im Falle des vorliegenden Ausführungsbeispiels handelt es sich bei dem Steuerrechner 9 im Wesentlichen um einen PC mit einem Standard- und einem Echtzeit-Betriebsystem als zentrale Steuerungselemente. Ein Standard Betriebssystem wird auch als ”General Purpose” Betriebssystem bezeichnet. Ein ”General-Purpose” Betriebssystem ist ein Betriebssystem, das nicht für eine spezielle Anwendung und insbesondere nicht speziell zum Steuern einer Maschine vorgesehen ist. Im Falle des vorliegenden Ausführungsbeispiels ist der Steuerrechner 9 mit einem Windows® Betriebssysteme der Microsoft Corporation als ”General-Purpose” Betriebssystemen konfiguriert. Als Echtzeitbetriebssystem wird das von Wind River entwickelte ”VxWorks” Echtzeitbetriebssystem verwendet. Die beiden Prozessorkerne 11, 12 werden zusätzlich zur Steuerung und Regelung des Industrieroboters 1 als je ein Kanal einer zweikanaligen Sicherheitsteuerung eingesetzt. Jeder der Kanäle der Sicherheitssteuerung berechnet unabhängig voneinander, ob zur Zeit eine sichere Bewegung des Industrieroboters 1 möglich ist und erlaubt die Bewegung nur dann, wenn beide Berechnungen auf eine sichere Bewegung schließen, gegebenenfalls wird eine Bewegung des Industrieroboters 1 gestoppt.
  • Die beiden Prozessorkerne 11, 12 sind im Falle des vorliegenden Ausführungsbeispiels wie folgt konfiguriert:
    Der erste Prozessorkern 11 wird als System Core verwendet. Auf ihm läuft das Standardbetriebssystem und ein erster Teil des Symmetric MultiProcessing(SMP)-fähigen Echtzeitbetriebssystems. Der erste Prozessorkern 11 stellt dem Echtzeitbetriebssystem vorrangig bezüglich dem Standardbetriebssystem Rechenzeit, wenn benötigt, zur Verfügung. Auf dem Standardbetriebssystem läuft die Benutzerober fläche der Robotersteuerung und der Echtzeitteil der Robotersteuerung, ein erster Teil (erste Kanal) der Sicherheitssteuerung (SafeOS) des Industrieroboters 1 als geschützter ”Real Time Process” (Echtzeitprozess) und der sogenannte File- und Communication Helper für die Sicherheitssteuerung.
  • Der zweite Prozessorkern 12 wird als Controller Core verwendet. Der zweite Prozessorkern 12 wird im Falle des vorliegenden Ausführungsbeispiels ausschließlich von einem zweiten Teil des SMP-fähigen Echtzeitbetriebssystems verwendet, nämlich der Regler für die Robotersteuerung und der zweite Kanal der Sicherheitssteuerung als geschützter ”Real Time Process” (Echtzeitprozess).
  • Im Falle des vorliegenden Ausführungsbeispiels ist das BIOS des Steuerrechners 9 derart konfiguriert, dass es seinen nicht näher dargestellten Speicher-Controller so initialisiert, dass die beiden separaten DRAM Speicherriegel 14, 15 zu zwei unterschiedlichen Adressräumen beitragen. Dadurch wird ermöglicht, dass der dem ersten Prozessorkern 11 zugeordnete erste Teil der Sicherheitssteuerung im Bereich des ersten DRAM Speicherriegels 14 und der dem zweiten Prozessorkern 12 zugeordnete zweite Teil der Sicherheitssteuerung im Adressraum des zweiten DRAM Speicherriegel 15 abgelegt und ausgeführt wird. Dadurch ist sichergestellt, dass sich ein Hardware Fehler in einem Speicherbaustein 14a, 15a, welcher meist die Veränderung derselben Bits innerhalb eines Bytes zur Folge hat, nicht als so genannter ”Common Cross” Fehler in beiden Kanälen auswirkt.
  • Um dies zu erreichen, werden im Falle des vorliegenden Ausführungsbeispiels folgende Maßnahmen ergriffen:
    Im Echtzeitbetriebssystem ”VxWin” in der aktuellen Version wird der Start-Code vom Standardbetriebssystem durch entsprechende Konfiguration derart festgelegt, dass ein Speicherbereich mit frei wählbarer Startadresse und Größe reserviert wird. Nachdem das Standardbetriebssystem hochgefahren ist, kennt es den auf diese Weise reservierten Speicher nicht mehr und dieser steht somit der Verwendung unter dem Echtzeitbetriebssystem ”VxWin” zur Verfügung.
  • Im Falle des vorliegenden Ausführungsbeispiels wird die Startadresse auf ”0×1000000” (16 MB) gewählt. Dies ist dahingehend zu ändern, dass die Startadresse und Größe des Speicherbereiches so unterhalb der relevanten Riegelgrenze gewählt wird, dass der Speicherbereich die Riegelgrenze um die für den zweiten Teil der Sicherheitssteuerung notwendige Speichergröße ab der Riegelgrenze beginnend überlappt.
  • Wenn z. B., wie es im Falle des vorliegenden Ausführungsbeispiels der Fall ist, der zweite Teil der Sicherheitssteuerung 2 MB Speicher benötigt und für die restlichen Echtzeitbetriebssystem-Module z. B. 128 MB zur Verfügung stehen sollen, ergeben sich eine Startadresse von 512 MB – 128 MB = 384 MB (0×18000000) und eine Gesamtgröße des zu reservierenden Speicherbereichs von 128 MB + 2 MB = 130 MB.
  • Die Speicherverwaltung des Echtzeitbetriebssystems VxWorks ist im Falle des vorliegenden Ausführungsbeispiels so angepasst, dass der Speicherbereich im zweiten DRAM Speicherriegel 15 ausschließlich vom zweiten Teil der Sicherheitssteuerung genutzt wird.
  • Der Lademechanismus für den relevanten Echtzeitprozess ist so angepasst, dass der Echtzeitprozess des dem zweiten Teil der Sicherheitssteuerung auf die Startadresse des zweiten DRAM Speicherriegels 15, oder kurz darüber, geladen wird.
  • Bei der Initialisierung der beiden Teile der Sicherheitssteuerung überprüfen beide, ob sie im richtigen Adressbereich liegen.
  • Im Falle des vorliegenden Ausführungsbeispiels erfolgt eine Überwachung der beiden DRAM Speicherriegel 14, 15, weshalb im vorliegenden Ausführungsbeispiels DRAM Speicherriegel 14, 15 mit integrierter ECC (”Error Correction Code”) Überwachung verwendet werden. Diese ist im BIOS entsprechend initialisiert. Sollte ein ECC-Fehler im Code-, Daten- oder Stack-Bereich eines der beiden Teile der Sicherheitssteuerung auftreten, dann nimmt die sichere Steuerung den sicheren Zustand ein.
  • Im Falle des vorliegenden Ausführungsbeispiels ist eine Spannungsüberwachung realisiert. Die diversen Betriebsspannungen auf dem Motherboard 13 werden durch entsprechende, nicht näher dargestellte Überwachungsbausteine überwacht. Sollten die Spannungen außerhalb des zulässigen Wertebereichs geraten, lösen die Überwachungsbausteine einen Reset am System aus, worauf die Steuerung neu startet und die externen sicheren Teilnehmer den sicheren Zustand einnehmen.
  • Dies erfolgt ohne jegliches Zutun von Software.
  • Im Falle des vorliegenden Ausführungsbeispiels ist eine Temperaturüberwachung realisiert. Die Temperaturdaten des Mehrkernprozessors 10 und des Motherboards 13 werden von einem separaten Mikrocontroller 16 überwacht. Der Mikrocontroller 16 agiert dazu als Master auf einem nicht näher dargestellten SMBus und liest darüber einen nicht näher dargestellten Temperatursensor des Mehrkernprozessors 10 und gegebenenfalls weitere nicht dargestellte Temperatursensoren, z. B. des Motherboards 13, aus. Sollte die Temperatur außerhalb des zulässigen Wertebereichs geraten, löst der Mikrocontroller 16 einen Reset am System aus, worauf die externen sicheren Teilnehmer den sicheren Zustand einnehmen.
  • Im Falle des vorliegenden Ausführungsbeispiels ist eine Zeitüberwachung durch einen externen Watchdog realisiert. Im Mikrocontroller 16 ist ein Watchdog realisiert. Dieser generiert einen Reset am Steuerrechner 9, falls die zu überwachende Software nicht in gewissen Zeitabständen im Millisekundenbereich den Watchdog zurücksetzt. Dabei löst der Watchdog auch einen Reset aus, wenn der Watchdog von der Software zu früh zurückgesetzt wird (Zeitfenster Funktion). Die Zeitfensterfunktion erlaubt es, nicht nur eine zu langsame bzw. gar nicht mehr reagierende Software zu überwachen, sondern auch eine zu schnell laufende Software (mehrfache harmonische des Prozessortaktgebers).
  • Im Falle des vorliegenden Ausführungsbeispiels erfolgt eine Zeitüberwachung durch die zwei Kanäle selbst mittels diversitärer nicht näher dargestellter Zeitgeber. Seide redundanten Kanäle, d. h. die beiden Teile der Sicherheitssteuerung, weisen zwei unabhängige Zeitbasen auf. Die beiden Kanäle vergleichen die beiden Uhrzeitwerte der Zeitbasen und gehen bei zu starker Abweichung in den sicheren Zustand über. Damit diese wirklich unabhängig sind, werden sie nicht von demselben Zeitgeber (Quarz) gespeist werden. Auf einer Standard PC Architektur existieren in der Regel mehrere Timer-Bausteine, welche von unterschiedlichen Quarzen gespeist werden und somit für die Zeitüberwachung der beiden Kanäle verwendet werden kann. Gegebenenfalls können auch externe Zeitbasen verwendet werden. Der Hauptaktzeitgeber eines PC wird üblicherweise von einem 14.31818 MHz Quarz gespeist. Von diesem werden die Takte des Mehrkernprozessors 10, eines nicht näher dargestellten Front Side Busses, einer nicht näher dargestellten South Bridge, etc. abgeleitet. Da diese Geräte somit alle dieselbe Zeitbasis haben, darf nur eines dieser Geräte die Zeitbasis für einen der beiden Kanäle beisteuern. Dies kann z. B. ein High Performance Event Timer (HPET) sein (sitzt in der Southbridge).
  • Ein weiterer nicht näher dargestellter Taktzeitgeber, welcher von einem anderen Quarz gespeist wird, ist die ebenfalls auf jedem PC vorhandene batterie- oder akkugepufferte CMOS-Uhr. Von diesem Zeitgeber kann die Zeit nur mit einer Auflösung von min. 1 Sekunde ausgelesen werden, was für die Zeitüberwachung der beiden Kanäle zu lange ist.
  • Die CMOS-Uhr kann jedoch Interrupts mit programmierbarer Periodendauer ab 122.070 μs generieren (oder 2-er Potenzen davon). Diese Interrupts müssen von einem Kanal initialisiert und bedient werden. Dadurch ein Kanal feststellen, wie viel Zeit seit dem letzten IRQ vergangen ist.
  • Eine weitere Möglichkeit ist die Verwendung eines oft in Ethernet Controllern vorhandenen frei laufenden Zählers. Dieser wird von der Ethernet-Zeitbasis getaktet und kann von der Software ausgelesen werden.
  • Noch eine andere Möglichkeit ist die Verwendung eines Zählers in einem externen Gerät, wie z. B. dem EtherCAT Clock Master. Dieser befindet sich üblicherweise im ersten EtherCAT Teilnehmer und wird durch einen eigenen Quarz getaktet. Wenn dessen Zählerwert aktuell durch Auslesen über den EtherCAT-Bus zur Verfügung steht, kann der eine Kanal damit seine Zeitüberwachung durchführen.

Claims (10)

  1. Maschinensteuerung basierend auf einem PC-Computersystem, aufweisend ein erstes RAM (14), ein zweites RAM (15) und einen Mehrkernprozessor (10) mit einem ersten Prozessorkern (11) und einem zweiten Prozessorkern (12), wobei das Computersystem mit einer einem einen ersten Programmteil und einen zweiten Programmteil aufweisenden Sicherheitssteuerprogramm zum Überwachen einer Maschine (1) konfiguriert ist, dessen erster Programmteil nur dem ersten Prozessorkern (11) und dem ersten RAM (14) und dessen zweiter Programmteil nur dem zweiten Prozessorkern (12) und dem zweiten RAM (15) zugeordnet ist.
  2. Maschinensteuerung nach Anspruch 1, bei der das erste RAM ein erstes dynamisches RAM und/oder ein erster Speicherriegel (14) ist, und/oder bei der das zweite RAM ein zweites dynamisches RAM und/oder ein zweiter Speicherriegel (15).
  3. Maschinensteuerung nach Anspruch 1 oder 2, bei der dem ersten Programmteil zugeordnete erste Daten und erste Programmcodes nur im ersten RAM (14) und dem zweiten Programmteil zugeordnete zweite Daten und zweite Programmcodes nur im zweiten RAM (15) gespeichert sind.
  4. Maschinensteuerung nach einem der Ansprüche 1 bis 3, bei der das Sicherheitssteuerprogramm eingerichtet ist, mittels jeweils des ersten und des zweiten Programmteils die Maschine (1) zu überwachen und nur dann eine Bewegung der Maschine (1) zu erlauben und/oder die Maschine (1) automatisch zu stoppen, wenn sowohl eine erste Berechnung basierend auf dem ersten Programmteil und eine zweite Berechnung basierend auf dem zweiten Programmteil eine sichere Bewegung der Maschine (1) ergeben.
  5. Maschinensteuerung nach einem der Ansprüche 1 bis 4, bei der der erste Prozessorkern (11) den ersten Programmteil und der zweiten Prozessorkern (12) den zweiten Programmteil in Echtzeit ausgeführt.
  6. Maschinensteuerung nach einem der Ansprüche 1 bis 5, die mit einem insbesondere in Echtzeit ausgeführtes Steuerungs- und/oder Regelungsprogramm konfiguriert ist, das eingerichtet ist, eine Bewegung der Maschine (1) zu steuern und/oder zu regeln.
  7. Maschinensteuerung nach Anspruch 6, bei der das Steuerungs- und/oder Regelungsprogramm einen Steuerungsprogrammteil zum Steuern der Maschine (1) und einen Regelungsprogrammteil zum Regeln der Bewegung der Maschine (1) aufweist, wobei der Steuerungsprogrammteil nur auf einem der beiden Prozessorkerne (11) und der Regelungsprogrammteil auf dem anderen der beiden Prozessorkerne (12) läuft.
  8. Maschinensteuerung nach einem der Ansprüche 1 bis 7, die mit einem so genanntes ”General-Purpose” Betriebssystem konfiguriert ist, das nur entweder dem ersten Prozessorkern (11) oder dem zweiten Prozessorkern (12) zugeordnet ist.
  9. Maschinensteuerung nach Anspruch 8, bei dem eine Benutzeroberfläche des Sicherheitssteuerprogramms und/oder des Steuerungs- und/oder Regelungsprogramms auf dem ”General-Purpose” Betriebssystem läuft.
  10. Elektrische Maschine, insbesondere Industrieroboter, aufweisend eine Maschinensteuerung (9) nach einem der Ansprüche 1 bis 9.
DE102008043530.9A 2008-11-06 2008-11-06 Maschinensteuerung und elektrische Maschine, insbesondere Industrieroboter Expired - Fee Related DE102008043530B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102008043530.9A DE102008043530B4 (de) 2008-11-06 2008-11-06 Maschinensteuerung und elektrische Maschine, insbesondere Industrieroboter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102008043530.9A DE102008043530B4 (de) 2008-11-06 2008-11-06 Maschinensteuerung und elektrische Maschine, insbesondere Industrieroboter

Publications (2)

Publication Number Publication Date
DE102008043530A1 true DE102008043530A1 (de) 2010-05-20
DE102008043530B4 DE102008043530B4 (de) 2016-03-10

Family

ID=42104765

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008043530.9A Expired - Fee Related DE102008043530B4 (de) 2008-11-06 2008-11-06 Maschinensteuerung und elektrische Maschine, insbesondere Industrieroboter

Country Status (1)

Country Link
DE (1) DE102008043530B4 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102853831A (zh) * 2012-09-07 2013-01-02 中南大学 基于双核处理技术的足式机器人状态感知系统
CN103358309A (zh) * 2013-07-12 2013-10-23 杭州金人自动控制设备有限公司 一种基于以太网的机械手运动控制系统
DE102013211422A1 (de) * 2013-06-18 2014-12-18 Kuka Laboratories Gmbh Steuervorrichtung einer Maschine und Maschine mit einer Steuervorrichtung
CN104786221A (zh) * 2015-04-13 2015-07-22 浙江工业大学 一种基于以太网的开放式机械手控制方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10332700A1 (de) * 2003-06-24 2005-01-13 Robert Bosch Gmbh Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit sowie entsprechende Prozessoreinheit
DE102006012042A1 (de) * 2006-03-16 2007-09-20 Kuka Roboter Gmbh Steuervorrichtung zur fehlersicheren Steuerung einer Maschine

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10332700A1 (de) * 2003-06-24 2005-01-13 Robert Bosch Gmbh Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit sowie entsprechende Prozessoreinheit
DE102006012042A1 (de) * 2006-03-16 2007-09-20 Kuka Roboter Gmbh Steuervorrichtung zur fehlersicheren Steuerung einer Maschine

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
VxWin - Add Windows R XP fundtionality to VxWork R on single or multicore CPUs, KUKA Roboter GmbH, Gersthofen, April 2008, S.1-11 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102853831A (zh) * 2012-09-07 2013-01-02 中南大学 基于双核处理技术的足式机器人状态感知系统
CN102853831B (zh) * 2012-09-07 2015-04-15 中南大学 基于双核处理技术的足式机器人状态感知系统
DE102013211422A1 (de) * 2013-06-18 2014-12-18 Kuka Laboratories Gmbh Steuervorrichtung einer Maschine und Maschine mit einer Steuervorrichtung
EP3011397B1 (de) * 2013-06-18 2020-05-27 KUKA Deutschland GmbH Steuervorrichtung einer maschine und maschine mit einer steuervorrichtung
CN103358309A (zh) * 2013-07-12 2013-10-23 杭州金人自动控制设备有限公司 一种基于以太网的机械手运动控制系统
CN103358309B (zh) * 2013-07-12 2016-06-08 杭州金人自动控制设备有限公司 一种基于以太网的机械手运动控制系统
CN104786221A (zh) * 2015-04-13 2015-07-22 浙江工业大学 一种基于以太网的开放式机械手控制方法

Also Published As

Publication number Publication date
DE102008043530B4 (de) 2016-03-10

Similar Documents

Publication Publication Date Title
EP2504739B1 (de) Steuerungssystem zum steuern von sicherheitskritischen und nichtsicherheitskritischen prozessen
EP2513796B1 (de) Verfahren zum betreiben einer recheneinheit
EP0057756A2 (de) Anordnung zum Datenaustausch in parallel arbeitenden Multi-Mikrorechnersystemen
DE102016108666A1 (de) Zeitgeber für Peripheriefunktionswächter
DE10231938A1 (de) Computersystem mit mehreren Sicherungs-Verwaltungsprozessoren zur Handhabung eines Ausfalls eines eingebetteten Prozessors
DE102008043530B4 (de) Maschinensteuerung und elektrische Maschine, insbesondere Industrieroboter
DE102006052757B4 (de) Verfahren zum Betrieb eines Automatisierungsgerätes mit einer Verarbeitungseinheit mit mehreren Verarbeitungskernen
WO2004034261A1 (de) Verfahren zur ereignissynchronisation, insbesondere für prozessoren fehlertoleranter systeme
EP2648100B1 (de) Automatisierungsgerät mit Vorrichtungen zur Prozessorüberwachung
DE102006012042A1 (de) Steuervorrichtung zur fehlersicheren Steuerung einer Maschine
DE102019103408A1 (de) Systeme, verfahren und vorrichtungen zum bekämpfen von direkt-speicherzugriffsattacken
DE10232919A1 (de) Computersystem mit Sicherungsverwaltung zur Handhabung eines eingebetteten Prozessorausfalls
EP1807760A2 (de) Datenverarbeitungssystem mit variabler taktrate
EP2228723B1 (de) Verfahren zur Fehlerbehandlung eines Rechnersystems
DE102011007467A1 (de) Mehrkernige integrierte Mikroprozessorschaltung mit Prüfeinrichtung, Prüfverfahren und Verwendung
DE102017219195B4 (de) Verfahren zum gewährleisten eines betriebs eines rechners
EP2287742B1 (de) Programmgesteuerte Einheit
DE102004051991A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
EP3433682B1 (de) Sicherheitssteuerung und verfahren zum betreiben einer sicherheitssteuerung
EP2806316B1 (de) Verfahren zum Betreiben eines Automatisierungssystems
WO2004034172A2 (de) Verfahren zur ereignissynchronisation, damit synchronisierte prozessoren und fehlertoleranter systeme mit derartigen prozessoren
DE102020116959A1 (de) Watchdog-schaltung, schaltung, system-auf-chip, verfahren zum betrieb einer watchdog-schaltung, verfahren zum betrieb einer schaltung und verfahren zum betrieb eines systems-auf-chip
EP2338111B1 (de) Verfahren und vorrichtung zum testen eines rechnerkerns in einer mindestens zwei rechnerkerne aufweisenden recheneinheit
WO2008128710A1 (de) Steuervorrichtung für fahrzeuge
EP3011397B1 (de) Steuervorrichtung einer maschine und maschine mit einer steuervorrichtung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: KUKA LABORATORIES GMBH, 86165 AUGSBURG, DE

R081 Change of applicant/patentee

Owner name: KUKA LABORATORIES GMBH, DE

Free format text: FORMER OWNER: KUKA ROBOTER GMBH, 86165 AUGSBURG, DE

Effective date: 20110304

Owner name: KUKA ROBOTER GMBH, DE

Free format text: FORMER OWNER: KUKA ROBOTER GMBH, 86165 AUGSBURG, DE

Effective date: 20110304

R081 Change of applicant/patentee

Owner name: KUKA ROBOTER GMBH, DE

Free format text: FORMER OWNER: KUKA LABORATORIES GMBH, 86165 AUGSBURG, DE

R082 Change of representative

Representative=s name: EGE LEE & PARTNER PATENTANWAELTE PARTGMBB, DE

Representative=s name: FUNK & BOESS GBR, DE

R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative

Representative=s name: EGE LEE & PARTNER PATENTANWAELTE PARTGMBB, DE

Representative=s name: BOESS, DIETER ALEXANDER, DIPL.-ING. (UNIV.), DE

R081 Change of applicant/patentee

Owner name: KUKA DEUTSCHLAND GMBH, DE

Free format text: FORMER OWNER: KUKA ROBOTER GMBH, 86165 AUGSBURG, DE

R082 Change of representative

Representative=s name: BOESS, DIETER ALEXANDER, DIPL.-ING. (UNIV.), DE

Representative=s name: EGE LEE & PARTNER PATENTANWAELTE PARTGMBB, DE

R082 Change of representative

Representative=s name: BOESS, DIETER ALEXANDER, DIPL.-ING. (UNIV.), DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee