Universelle
Maschinensteuerung
ROBOT
Allgemeines


Inhaltsverzeichnis:

Inhaltsverzeichnis
Einführung
Grundlagen
Treeprogrammierung
Ablaufprogramme
EINA-Signale
Module
Stationen
Visualisierung
Bereinigen
interne Informationen
Elektrische Verbindungen
bekannte Probleme


Einführung: zum Inhalt

Die universelle Maschinensteuerung ROBOT dient zur schnellen Inbetriebnahme
von neu entwickelten Maschinen. Der Konstrukteur, der Elektriker und der Soft-
wareentwickler können hiermit schnell und unkompliziert auf Verfahrens-, Mecha-
nik- und elektrische Veränderungen reagieren.

Basis der Maschinensteuerung ist ein PC unter einem Windows 32Bit Betriebs-
system. An diesem wird die benötigte Hardwareschnittstelle zur Maschine ange-
schlossen.

Die benötigten Abläufe können graphisch und weitestgehend online programmiert
werden, das Ergebnis ist direkt sichtbar.

Die Leistungsfähigkeit der Maschinensteuerung wird nur die eingesetzte Rechner-
leistung und durch die eingesetzte Peripherie begrenzt. Auf einem AMD K6-400 II
mit 64 MByte Hauptspeicher und PC104 Interfacekarten sind etwa 100 parallele
Abläufe mit Zykluszeiten bis hinunter zu 1 ms möglich.

Die erstellten Maschinendaten werden in einer SQL fähigen Datenbank verwaltet,
aus der beliebige Dokumentationen erstellt werden können.

Bei Bedarf können diese Maschinendaten auch mit einer verfügbaren Software-
bibliothek in eigene PC-Steuerungen integriert werden, z.B. bei rechenintensiven
und Internetbasierenden Anwendungen.

Diese Lösung vereint die Flexibilität von C/C++ mit Windowsgraphikfähigkeiten,
die Komfortablität eines Kommandointerpreters mit der Portabilität einer
relationalen SQL-Datenbank.


Grundlagen: zum Inhalt

Jede Maschine besteht aus einer Steuerung (SPS). Diese SPS kann über eine
beliebige Anzahl von angeschlossenen Hardwarekomponenten (HARDWARE,
PROFIBUS), eine beliebige Anzahl von Stationen und eine beliebige Anzahl von
parallel laufenden Abläufen (ABLAUF) verfügen. Jeder Ablauf wiederum verfügt
über eine beliebige Anzahl von Einzelschritten (STEP) mit einer definierten
Befehlsliste.

Der Zugriff auf veränderbare Werte (VARIABLE) erfolgt nach Definition vollstän-
dig transparent. Eine Variable kann z.B. ein Eingang eines induktiven Näherungs-
schalters, ein schaltbares Ventil, ein gesteuerter Motor, ein selbstdefinierter Ab-
laufzähler (diese Funktion x-mal durchführen) oder auch eine Reihe von vordefi-
nierten Steuerungselementen sein. Jedes dieser Bestandteile ist vollkommen objekt-
orientiert aufgebaut und bietet standardmäßig vordefinierte Funktionalitäten, wie
z.B. Einzelschrittbetrieb, Visualisierungsfenster, Simulationsbetrieb, Bearbeitung.


Treeprogrammierung: zum Inhalt

Für die Programmierung einer Maschine hat sich die Tree-Ansicht als die schnell-
ste Möglichkeit herausgestellt. Alle Elemente der Maschine werden mit dem Tree-
View-Control von MicroSoft Windows dargestellt. Bei der Anwahl eines Elementes
mit der linken Maustaste werden im Informationsfenster alle benötigten Daten die-
ses Elementes dargestellt:

Ist ein Element markiert, kann durch die angegebene Taste oder durch die rechte
Maustaste eine Bearbeitungsfunktion aufgerufen werden. Diese Funktionen sind je
nach Element unterschiedlich, nicht jedes Element kann jede Funktion verarbeiten.
Die für das jeweilige Element nicht erlaubten Funktion sind grau gezeichnet, bzw.
werden im Popupmenu (aufgerufen mit der rechten Maustaste) nicht angezeigt.

Die verfügbaren Bearbeitungsfunktionen sind unter
Bearbeitungsfuntionen
dokumentiert.


Ablaufprogramme: zum Inhalt

Maschinenaktionen werden in Schrittabläufen programmiert. Es können beliebig
viele (nur abhängig von Speicherausrüstung und CPU Leistungsfähigkeit) Abläufe
parallel aktiv sein.

Abläufe können sich gegenseitig aufrufen und anhalten, Variable abfragen und
verändern und auch Sonderfunktionen ausführen.

Abläufe werden als BASIC ähnliche Programmzeilen geschrieben, die Bearbeitung
erfolgt per Maus weitestgehend online, Compiling und Renumbering sind auto-
matisch implementiert.

Beispiel:
100: REM Beispielsablauf (Blinken einer Lampe)
110: ON Lampe
120: DELAY 300
130: OFF Lampe
140: DELAY 300
150: GOTO 110

Zur Programmierung dieser Abläufe steht ein Befehlssatz zur Verfügung, der unter

Ablaufbefehlssatz

beschrieben ist.


EINA-Signale: zum Inhalt

Um das Rücksetzen von Variablen und Abläufen zu vereinfachen, besitzen
Elemente eine Standardreaktion auf die Signale EXIT, INIT und NOTOFF. Diese
Signale können von einem beliebigen Ablauf mit den Befehlen SIGNAL INIT,
SIGNAL EXIT, SIGNAL NOTOFF ausgelöst werden.

Je nach ausgewählter Option können hierbei Variablen automatisch zurückgesetzt
werden (RESET) oder Abläufe automatisch gestoppt werden (STOP).

Anstatt nun eine endlose Kette von OFF und STOP Befehlen zu programmieren
OFF Var1
OFF Var2
OFF Var3
...
STOP Ablauf1
STOP Ablauf2
...
werden bei diesen Variablen die Option OFF bei EXIT eingeschaltet und bei diesen
Abläufen die Option STOP bei EXIT und diese Befehlsliste durch
SIGNAL EXIT
ersetzt.

Diese Signale werden üblicherweise nicht automatisch generiert, sondern können
nur vom Ablaufprogrammierer erzeugt werden. Eine Ausnahme bieten hier Feld-
busfehler (erzeugen bei Fehlfunktionen automatisch das Signal NOTAUS),
spezielle Module (wie z.B. NotAuskreis erzeugt Signal NOTAUS) oder kunden-
spezifische Treiber.


Module: zum Inhalt

Für die Lösung von Standardaufgaben gibt es vorimplementierte Module. Diese
Module haben eine variable Anzahl von Parametern (z.B. einen Heizungsausgang)
und stellen auch selbst eine variable Anzahl von Variablen für die Modulsteuerung
zur Verfügung (z.B. Heizung aktiv schalten).

Module werden automatisch in den Ablaufzyklus mit eingebunden und sind immer
automatisch aktiviert.

Beim Einbinden eines Modules müßen die Modulparameter gesetzt werden, die
zusätzlich erzeugten Variable können in der Ablaufprogrammierung beliebig ange-
sprochen werden.

Die Liste der aktuell vorhandenen Module und deren Beschreibung sind in

aktuelle Module

verzeichnet.


Stationen: zum Inhalt

Eine komplexere Verarbeitungsmaschine teilt sich üblicherweise in verschiedene
Stationen auf. Jede Station kann eigenständig in Betrieb genommen, getestet, mit
Daten versorgt und hinzu- bzw. abgeschaltet werden.

Eine Station ist also ein mehr oder weniger eigenständiger Maschinenteil, der mit
anderen Stationen kommunizieren kann.

Jede Station kann beliebig viele eigene Abläufe, Variable, Module oder Visualisie-
rungen aufnehmen. Durch diese objektorientierte Sichtweise von komplexeren
Maschinen kann die Maschineninbetriebnahme, Wartung, Update und Ablaufpro-
grammierung deutlich einfacher und übersichtlicher gestaltet werden.

Nähere Informationen sind unter
Stationen
verzeichnet.


Visualisierung: zum Inhalt

Das Visualisierungselement wechselt seine Farben (Hintergrund- und Textfarbe)
abhängig von der ausgewählten Aktivvariable.

Beim Auswahl dieses Elementes wird die ausgewählte Funktion ausgeführt. Die
verfügbaren Funktionen stehen unter

Visufunktionen


Bereinigen: zum Inhalt

Während der Programmierung und dem Maschinentest werden häufig Abläufe ge-
ändert, Warteschleifen und NOP Befehle hinzugefügt, die nach erfolgreicher
Inbetriebnahme nicht mehr nötig sind. Um die Datenbank aufzuräumen, gibt es die
Bereinigungsfunktion. Die eigentliche Programmablaufgeschwindigkeit wird
hierdurch nur unwesentlich erhöht, aber die Ladezeit aus der Datenbank kann hier-
mit deutlich verbessert werden. Hinzu kommt eine bessere Lesbarkeit und eine
"sauberere" Ablaufprogrammierung.

Die Bereinigungsfunktion führt zur Zeit folgende Schritte aus:

  • Eleminierung von NOP Befehlen

  • Verwerfen von nicht mehr benötigten Parametern



  • interne Informationen: zum Inhalt

    Zur Zeit können nicht alle ROBOT Funktionen direkt im Programm ausgewählt
    und bearbeitet werden. Einige verfügbare Komponenten benötigen auch Handarbeit
    zur Konfiguration. Teilweise sind interne Funktionen nur in der Tiefe des
    Systemes so richtig auf die gewünschte Funktionalität anpaßbar.

    Das Herz von ROBOT ist eine SQL Datenbank, in der alle Funktionen bearbeitet
    werden können

    Aus diesem Grund existiert unter

    interne technische Dokumentation

    eine komplette Dokumentation aller internen Werte, der aktuell unterstützten
    Hardware und sonstiger systemabhängiger Werte.


    Elektrische Verbindungen: zum Inhalt

    Um den logischen Schaltplan einer Maschine automatisch generieren zu können,
    bietet ROBOT die ELCON (Electrical Connections) Elemente.

    Jedes elektrische Signal wird am Ursprungsort auf eine Klemmverbindung gesetzt.
    Diese Klemmverbindung ist mit einer zu definierten Kabelverbindung an die Soft-
    warevariablen angeschlossen. Durch die eindeutige Definition der Klemme, der
    benutzten Kabelverbindung, des Kabelpins und deren Farbe kann jede Hardware-
    variable über die benutzten Verbindungen zum Ursprungsort zurückverfolgt wer-
    den.

    Beispiel:
    Ein induktiver Näherungsschalter mit dem Namen S31a wird auf den Pin 4 einer
    StandardI/OKlemme mit dem Namen X02 gelegt, die mit einem 9pol DIN-Farb-
    codekabel mit der Wagoklemme A13 auf dem digitalen Eingang 12 verbunden ist.

    4 gelb X02 (BCD-Klemme FKB) S31a FKB_BeleimenBIstUnten A13-DI12

    Durch die enge Verquickung ist der Ablaufprogrammier mehr oder weniger ge-
    zwungen, bei Änderungen an der Maschine auch den Schaltplan mit nachzuziehen.
    Damit steht an der Maschine in der SQL Datenbank immer der logisch
    aktuelle Schaltplan zur Verfügung, unabhängig der evtl. vorhandenen mehr oder
    weniger aktualisierten schriftlichen Unterlagen.

    weiteres Beispiel:
    X81 (Simodrive) - Simodrive Verdrahtung
    4 gelb StartRef X451/I0.A SimodriveReferenzieren
    5 grau Satz A Auswahl X422/I8 SimodriveSatzAuswahlA
    6 rosa Satz B Auswahl X422/I9 SimodriveSatzAuswahlB
    7 blau FahrauftragAktiv X451/I3.A SimodriveStart
    8 rot Reglerfreigabe X451/65.A SimodriveReglerfreigabe
    9 schwarz StörungLöschen X451/I2.A SimodriveStörungLöschen
    16 gelbbraun Betriebsbereit X461/O0.A SimodriveBetriebsbereit
    17 weißgrau Synchronschalter X451/I1.A SimodriveSynchSchalter
    18 graubraun PositionErreicht X461/O2.A SimodrivePosErreicht
    19 weißrosa Referenziert X461/O3.A SimodriveReferenziert
    20 rosabraun Endschalter- X422/I.6 SimodriveEndschalter-
    21 weißblau Endschalter+ X422/I.7 SimodriveEndschalter+
    23 weißrot P0=24V X431/P24
    24 braunrot N0=Masse X431/M24
    25 weißschwarz P2=Freigabe X131/64
    26 --- X431/9 - X431/663 24V auf Impulsfreigabe
    27 --- X131/9 - X131/63 24V auf Impulsfreigabe


    bekannte Probleme: zum Inhalt

    Probleme mit der Datenbank:

  • Die Datenbankgeschwindigkeit ist recht langsam. Bei großen Projekten

  • kann die Ladezeit bis zu 2 Minuten dauern.

    Eine SQL Datenbank ist immer langsamer, als ein EPROM, allerdings bietet SQL
    deutlich mehr Eingriffsmöglichkeiten. Je schneller der eingesetzte Rechner und je
    schneller die eingesetzte Datenbank ist, desto mehr reduziert sich dieses Problem.
    Längerfristige Speicherungen müssen noch in den Hintergrund gelegt werden,
    beziehungsweise intelligenter gelöst werden.

    Probleme mit der Benutzeroberfläche:

  • Nicht alle Funktionen sind schon online änderbar.


  • Nicht alle Datenbankfunktionen haben schon eine entsprechende Funktion

  • in der Benutzeroberfläche (zB. Neues Modul einfügen).

  • Im Maschinenkern wird aus Stabilitätsgründen rigoros jeder Fehler

  • asserted. Teilweise läßt die Benutzeroberfläche noch Eingaben zu, die der
    Maschinenkern als Fehler interpretiert (zB. unverträgliche Variablentypen).

    Die Maschinenoberfläche ist der jüngste Teil der universellen Maschinensteuerung,
    der Kernel ist schon über 10 Jahre alt. Die Benutzeroberfläche wird kontinunierlich
    weiterentwickelt, wobei der Schwerpunkt jedoch auf dem stabilen Maschinen-
    steuerungskernel liegt.

    Probleme mit der Visualisierung:

  • Die Visualisierung ist zu "primitiv".


  • Die integrierte Visualisierung ist nicht als Konkurrenz zu existierenden professio-
    nellen Visualisierungen, sondern als schnell verfügbare und einfach gestaltbare
    Hilfe für Inbetriebnahme und Wartungsdienst gedacht. Hier sind keine weiteren
    Entwicklungen geplant.

    Probleme mit der Schaltplanerstellung:

  • Schaltpläne können nicht normgerecht erstellt werden


  • ROBOT erzeugt zur Zeit nur Schaltelementelisten, keinerlei graphische Zeichnun-
    gen. Eine Programmerweiterung hier ist erst für fernere Zukunft geplant. Es sollte
    jedoch möglich sein, die Schaltplan-Datenbankelemente in geeigneter Form zu
    exportieren, und in "moderne" Schaltplaneditoren zu importieren.

    Probleme mit Teibern:

  • Für viele Hardware sind keine Treiber für ROBOT verfügbar


  • Das ist der Nachteil jedes neuen Systemes, Treiber müssen selbst programmiert
    werden.

    Probleme mit dem Konzept:

  • IT-Fachleute sind Mangelware, warum wird unbedingt ein Hochsprachen-

  • fachmann für die Entwicklung benötigt.

    ROBOT ist ein Hilfsmittel für Systemprogrammierer, die sich nebenbei noch um
    die Elektrik und Ablaufprogrammierung der zu erstellenden Maschine kümmern
    müssen. Maschinenanpassungen können auch von fachlich versierten Kunden er-
    ledigt werden, gängige Interfaceprobleme existieren nicht mehr, die Software ist
    aus einem Guß und damit wart- und updatebar.

    Für einfachere Maschinen bieten sich gängige SPS-Lösungen an, für mittlere
    Komplexitäten wäre der große Bruder von ROBOT
    MPC-Solution
    überlegenswert.