TIA Zug/Druck Pruefung mit S7-1200 & TIA Portal

Zuviel Werbung?
-> Hier kostenlos registrieren
Gibt es auch die Moeglichkeit nur die PLC zu migrieren ohne der HMI? Da wuerde man sich die Sache mit WinCC sparen oder? (Vermutlich geht es eh nicht, aber ich frage dennoch :rolleyes:)

Habe ich noch nicht probiert ... aber ich könnte mir vorstellen, dass es funktioniert - der ProTool-Teil wird wahrscheinlich (ggf. mit meckern) ignoriert ...

Gruß
Larry
 
Hallo,

melde mich wieder.

Wir haben nochmal über unsere Fuehrungsgroeße nachgedacht und uns ist wieder folgender Gedanke bei der Messdurchführung gekommen.

1) analog Eingänge und Ausgaenge in 1ms abfragen -> im OB32:
wenn ich das richtig Verstanden habe, dann hat der OB32 eine höhere Prioritaet als der OB1 und man kann ihn so programmieren, dass er alle 1ms den OB1 "unterbricht" und sein eigenes Programm abarbeitet.

2) Proportionalventil nach Vorgabe einstellen -> Vorgabe = 1000N -> Sicherheitshalber 1010N anpeilen: Proportionalventil mit dem analog-Ausgang auf die mA stellen, dass es die gewissen bar durchlaesst. Somit kommen am Zyinder xxx bar an und dieser erzeugt dann die 1010N.

3) Wenn du Messung startet, soll das Schnellschaltventil so lange auf HIGH geschalten sein, bis die Kraftmessdose einen Wert zwischen 1000..1050N zurueckliefert.

4) Wenn die 1000..1050N erreicht sind, soll der Zylinder einige MS in der Stellung verharen bevor er wieder nach oben fährt.


Jetzt stell sich hier nur die Frage, die Larry schon angesprochen hat: erzeugt das schnelle Ausfahren des Zylinders einen Impuls an der KMZ, die das Ergebnis verfälscht? :confused:


LG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
zu 1.) die Analog-Eingänge solltest du nur dann so schnell abfragen wenn deine Analog-Karte das auch hergibt (Wandlungszeit - manche können so schnell, die meißten nicht) - für den Kraftsensor aber u.U. sinnvoll ...

zu 2.) Prop-Ventil dann eher auf 1100 N als auf 1010 N einstellen ...

zu 3.) entweder so, wie von dir beschrieben ... oder der Weg ist zu groß - also Timeout ... Werden die 1 kN erreicht dann schauen, ob die Biegung innerhalb der von dir angedachten Toleranz liegt

noch einmal zu 1.) wenn du wirklich den OB32 (z.B.) anpeilst mit einem schnellen Intervall dann solltest du hier nur messen und ggf. den Messwert speichern. Auf gar keinen Fall einen größeren Programm-Ablauf. In jedem Fall aber eine performante CPU für diesen Zweck auswählen ... wo stehst du da aktuell bei deiner Planung ...?

Zum Impuls : den hast du auf jeden Fall - das ist aber kein Problem, wenn du das mit berücksichtigst bei der Auswahl deines Kraftsensors und bei deinem Prüf-Ablauf. GGf. zeichnest du hier eine Profilkurve auf und wertest die dann anschließend aus ...

Gruß
Larry
 
Warum willst du den Analogeingang schneller abfragen als du ihn später im zyklischen Programm verarbeitest? Die normalen Analogkarten (bei S7-300, ich weiß gerade nicht wie es bei 1200 und 1500 ist) haben aber schon eine Wandlungszeit zwischen 15 und 50 ms. Es gibt aber High-Speed Analogkarten.
 
zu 1.) die Analog-Eingänge solltest du nur dann so schnell abfragen wenn deine Analog-Karte das auch hergibt (Wandlungszeit - manche können so schnell, die meißten nicht) - für den Kraftsensor aber u.U. sinnvoll ...

zu 2.) Prop-Ventil dann eher auf 1100 N als auf 1010 N einstellen ...

zu 3.) entweder so, wie von dir beschrieben ... oder der Weg ist zu groß - also Timeout ... Werden die 1 kN erreicht dann schauen, ob die Biegung innerhalb der von dir angedachten Toleranz liegt

noch einmal zu 1.) wenn du wirklich den OB32 (z.B.) anpeilst mit einem schnellen Intervall dann solltest du hier nur messen und ggf. den Messwert speichern. Auf gar keinen Fall einen größeren Programm-Ablauf. In jedem Fall aber eine performante CPU für diesen Zweck auswählen ... wo stehst du da aktuell bei deiner Planung ...?

Zum Impuls : den hast du auf jeden Fall - das ist aber kein Problem, wenn du das mit berücksichtigst bei der Auswahl deines Kraftsensors und bei deinem Prüf-Ablauf. GGf. zeichnest du hier eine Profilkurve auf und wertest die dann anschließend aus ...

Gruß
Larry

1) gut zu wissen. muss ich mich noch schlau machen wies da aussieht.

der Gedanke mit 1ms ist vom alten Programm übernommen, da der OB32 dort "Zyklus 1MS" heißt und darin alle Analogwerte eingelesen und ausgegeben werden .

2) ja war nur mal so grob gesagt, auf genaue Werte kann ich mich noch nicht festlegen

3) mein Gedanke wäre hald den reinen Prüfweg der Zylinder über die Kraft zu steuern -> also so lange ausfahren bis Kraft erreicht ist.
Um einen Bruch festzustellen bzw. die Messung nach einem Bruch zu stoppen werden Endschalter beim Zylinder verwendet -> wenn Endschalter erreicht -> Bruch/Abbruch
Das Wegmesssystem wird dann hauptsächlich verwendet um die Biegung der Rohre festzuhalten bzw. dass man später bei der Auswertung der Daten erkennen kann, wann es zu einem Microriss gekommen ist (= Bei Microrissen soll der Messdurchlauf nicht abgebrochen werden, sondern fertig durchgeführt werden!)

Zur CPU:
wie wählt man am besten eine CPU aus?
ich weiß ja im Vornherein nicht genau wie groß mein Programm wird bzw. was für einen Speicher ich benötige? (habe das alte Programm an dem ich mich halbwegs orientieren könnte)
Von der 1200er CPU sind wir schon abgekommen. Also entweder eine 300er oder 1500er, wie geht man da weiter vor?

unsere Anforderungen:
24 digital Outputs
24 digital Inputs
4 analog Input
4 analog Output

EDIT:

Habe gerade aus dem alten Programm herausgelesen:
Ladespeicher: 125656 Byte
Arbeitsspeicher: 70338 Byte
Remanenzspeicher: 42792 Byte

kann man sich an diesen Werten orientieren? Das Programm soll in der Funktion ähnlich sein (muss weniger können), aber es wird hald im neuen TIA Portal verfasst anstatt im alten Simatic Manager.



zum Impuls:
Die frage ist nur inwiefern der Impuls die Messung "verfaelscht". Weil theoretisch liegen da beim ersten Impact die 1000N an und die flachen dann ab. ABER der Impact von 1000N war da und es ist keine richtige "Belastungszeit" gefordert, die sagt, dass die 1000N fuer eine gewisse Zeit anliegen muessen :confused:





Warum willst du den Analogeingang schneller abfragen als du ihn später im zyklischen Programm verarbeitest? Die normalen Analogkarten (bei S7-300, ich weiß gerade nicht wie es bei 1200 und 1500 ist) haben aber schon eine Wandlungszeit zwischen 15 und 50 ms. Es gibt aber High-Speed Analogkarten.

Wie oben geschrieben die Idee von 1ms Zyklus kam vom alten Programm. Wie weiß ich in welchem Zyklus der OB32 wirklich aufgerufen wird? (das habe ich leider noch nicht herausgefunden).

Wie schnell sind dann diese High-Speed Analokarten?

LG
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie weiß ich in welchem Zyklus der OB32 wirklich aufgerufen wird? (das habe ich leider noch nicht herausgefunden).
Das siehst Du in HW Konfig der CPU, welche Ausführungszeit da für den OB32 projektiert ist.
Und der OB32 meldet das auch ans Anwenderprogramm: Hilfe zum OB32 > Lokaldaten > in der Variable OB32_EXC_FREQ (LW 10) steht das Aufrufintervall in ms (oder in µs, falls in OB32_STRT_INF (LB 1) = B#16#3A).

Harald
 
Das siehst Du in HW Konfig der CPU, welche Ausführungszeit da für den OB32 projektiert ist.
Und der OB32 meldet das auch ans Anwenderprogramm: Hilfe zum OB32 > Lokaldaten > in der Variable OB32_EXC_FREQ (LW 10) steht das Aufrufintervall in ms (oder in µs, falls in OB32_STRT_INF (LB 1) = B#16#3A).

Harald

Danke dir. hab nachgesehen

OB32
Priorität: 9
Ausführung: 1000
Einheit: MS

das bedeutet, dass er dann doch nur jede Sekunde aufgerufen wird und nicht alle 1ms? :confused:

EDIT:

Sorry nehme meine Aussage zurück! Das Programm wurde migriert und es wurde eine andere CPU ausgewählt.

habe gerade im Step7 Program nachgeschaut, da steht doch 1ms für den OB32.

LG
 
Zuletzt bearbeitet:
zur Messung :
Ich würde für die Dauer des Prüfablaufs eine Profilkurve aufzeichnen - also mit z.B. der Abtastrate von 1 ms die Kraft- und die Wegwerte in ein entsprechend groß dimensioniertes Array schreiben.
Anschließend eine Auswertung darüber laufen lassen. Dann kannst du am Besten eine Aussage darüber treffen, wie das Ganze wirklich aussieht und wonach du suchst / deine eigentliche Prüfung sein muss.

zur CPU :
Mein Favorit wäre eine 317 oder eine 1516 - quasi anlog zu der von dir genannten VIPA-CPU.
Es gibt sowohl für die CPU direkt so schnelle Karten, die haben dann aber immer gleiche mehrere Eingänge on Board. Bei der ET200 (S oder Sp) gibt es solche Karten auch als Einzeleingang - ist in dem Fall durchaus zu überlegen. Eine Wandlungszeit von 1 ms kann bei der entsprechenden Karte ohne Weiteres unterschritten werden.
Schau dich einfach mal shclau ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gibt es auch die Moeglichkeit nur die PLC zu migrieren ohne der HMI? Da wuerde man sich die Sache mit WinCC sparen oder? (Vermutlich geht es eh nicht, aber ich frage dennoch

Der Pro Tool Teil macht Probleme.Es geht aber dennoch:
In Step 7 ein neues Projekt anlegen. Eine neue HW anlegen .Beide Projekte öffnen und die Bausteine in das neue Projekt kopieren. Dieses Projekt lässt sich dann in Tia migrieren ohne mucken.
 
zur Messung :
Ich würde für die Dauer des Prüfablaufs eine Profilkurve aufzeichnen - also mit z.B. der Abtastrate von 1 ms die Kraft- und die Wegwerte in ein entsprechend groß dimensioniertes Array schreiben.
Anschließend eine Auswertung darüber laufen lassen. Dann kannst du am Besten eine Aussage darüber treffen, wie das Ganze wirklich aussieht und wonach du suchst / deine eigentliche Prüfung sein muss.

zur CPU :
Mein Favorit wäre eine 317 oder eine 1516 - quasi anlog zu der von dir genannten VIPA-CPU.
Es gibt sowohl für die CPU direkt so schnelle Karten, die haben dann aber immer gleiche mehrere Eingänge on Board. Bei der ET200 (S oder Sp) gibt es solche Karten auch als Einzeleingang - ist in dem Fall durchaus zu überlegen. Eine Wandlungszeit von 1 ms kann bei der entsprechenden Karte ohne Weiteres unterschritten werden.
Schau dich einfach mal shclau ...

Gruß
Larry

wie meinst du das mit der Profilkurve? in einem Testlauf mal die Werte speichern oder in der Simulation?

Gibt es auch die Moeglichkeit nur die PLC zu migrieren ohne der HMI? Da wuerde man sich die Sache mit WinCC sparen oder? (Vermutlich geht es eh nicht, aber ich frage dennoch

Der Pro Tool Teil macht Probleme.Es geht aber dennoch:
In Step 7 ein neues Projekt anlegen. Eine neue HW anlegen .Beide Projekte öffnen und die Bausteine in das neue Projekt kopieren. Dieses Projekt lässt sich dann in Tia migrieren ohne mucken.

Danke :)



Anderer Frage: mein OB32, der die Analogwerte einliest und ausgibt wird alle 1ms aufgerufen. ABER die Funktion FC, die die IST-Werte berechnet wird ja nur jeden Zyklus aufgerufen. was hat das dann für einen Sinn, wenn ich die Analogwerte jede Millisekunde abfrage, aber nur jeden Zyklus berechne?


LG
 
Ich beschreibe es mal so :
Ich hatte mal die Aufagbe eine Federkraft-Kurve aufzuzeichnen (ist ja ein bißchen vergleichbar mit deinem Vorhaben). Hier habe ich im zyklischen Programm ein Start Messen gegeben. Dies war zum Einen der Befehl für die Servo-Achse zu fahren und damit Druck (Belasten und Entlasten) auf den Prüfling zu geben und zum Anderen der Startschuß, im Zeit-OB die Werte in ein Array zu schreiben (hier interessierte Kraft bezogen auf den Weg). War ein Prüfzyklus beendet habe ich dann das Array (also die Profilkurve) ausgewertet (und aber auch angezeigt).

Da ich annehme, dass du noch nicht so ganz genau weißt, wie deine Messwerte später aussehen werden (um damit eine IO-NIO-Aussage treffen zu können) empfehle ich dir diese Vorgehensweise - zumindestens erstmal für den Start um sehen zu können, wo du stehst. Danach kannst du das dann ggf. wieder de-aktivieren.
In jedem Fall ermöglicht dir eine aufgezeichnete Kurve eventuell ganz andere Aussagen zu deinem Prüfling treffen zu können ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist aufjedenfall mal eine Idee, die gemacht wird sobald die Hardware Komponenten letztendlich bestimmt sind und sie da sind.


andere Themen:

TAKTMERKER:
ich habe gerade die Funktion der CPU von Taktmerkern entdeckt. Wie funktionieren die genau? bin da noch nicht so schlau daraus geworden.

Wenn ich meinen 1Hz Taktmerker verwende, wird der dann JEDE Sekunde FÜR diese Sekunde auf true/false gesetzt?

also z.B: 1 Sekunde true -> 1 Sekunde false -> 1s Sekunde true -> usw. ?

das würde dann bedeuten, dass ich den Takt, den der Zylinder fahren soll, mit diesen bestimmen kann.

also: wenn Taktmerker = true -> Zylinder soll nach unten fahren (Druecken)
wenn Taktmerker = false -> Zylinder soll nach oben fahren (Ziehen)

FC <-> FB

Inwiefern unterscheiden sich die zwei Funktionen? Mir ist bewusst, dass die FB Bausteine einen eigenen Datenbaustein besitzen, auf den nur die selbst Zugriff haben. Aber inwiefern ist das sinnvoll bzw. wann braucht man so etwas? schränkt man sich da nicht irgendwie selbst ein?
Wenn ich eine FC Funktion erstelle, kann ich die gebrauchten Daten dann auch in einen eigenen globalen DB speichern und kann auf diesen DB dann aus jeder anderen FC bzw. FB zugreifen oder?


LG
 
PLUS:

eine allgemeine Programmiefrage:

ANZAHL BAUSTEINE


Sollte man eine gewisse Anzahl an Programmbausteinen (FC, DB, FB,...) nicht überschreiten? oder ist es egal wie viele Funktionen ich schreibe?

Hätte mir Übersichtshalber mehrere Funktionen erstellt, die ich dann in anderen Funktionen aufrufen kann.

UEBERGABEPARAMETER

Geplant ist, dass die CPU statt mit einem HMI mit dem Laptop kommuniziert/gesteuert wird. Also dass die HMI quasi am Laptop dargestellt wird und man dort einige Parameter wie Kraft, Schwingspiele und auch Frequenz eingeben kann und diese der CPU übergibt, dass diese damit weiterarbeitet.

Die Frage ist nur wie uebertragt man die Parameter in die CPU bzw. wie werden die abgespeichert? werden die Parameter dann in einen Datenbaustein gespeichert oder als PLC Variable als Merker?

LG
 
Zuletzt bearbeitet:
Ha-Puh ...

- Taktmerker - würde ich für deine Funktion (gerade wegen der Erfassung und Auswertung) nicht nehmen. Dein Ablauf ist eine Schrittkette und so würde ich das auch machen. Für irgendwelche Intervalle würde ich Timer in den Ablauf einbauen.

- FC ./. FB - das ist ein philosophisches Thema. Ich persönlich würde hier auf alle Fälle einen FB erstellen und die zugehörigen "Merker" sowie alle anderen Variablen in dessen Instanz unterbringen. Das würde auch für Zeiten gelten (Stichwort : IEC-Timer).

- Anzahl Bausteine - hier gibt es, je nach verwendeter CPU, Beschränkungen. Ich kann mir aber nicht vorstellen, dass du die erreichst/überschreitest.

- HMI - du mußt nicht ein Standard-Bediengerät verwenden. Es gibt auch eine PC-Runtime - hier läuft deine Visu dann auf einem Standard-PC. Du kannst mit der Visu dann auf alle von dir gewünschten (projektierten) Variablen der SPS zugreifen (Lesen wie auch Beschreiben).

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ha-Puh ...

- Taktmerker - würde ich für deine Funktion (gerade wegen der Erfassung und Auswertung) nicht nehmen. Dein Ablauf ist eine Schrittkette und so würde ich das auch machen. Für irgendwelche Intervalle würde ich Timer in den Ablauf einbauen.

- FC ./. FB - das ist ein philosophisches Thema. Ich persönlich würde hier auf alle Fälle einen FB erstellen und die zugehörigen "Merker" sowie alle anderen Variablen in dessen Instanz unterbringen. Das würde auch für Zeiten gelten (Stichwort : IEC-Timer).

- Anzahl Bausteine - hier gibt es, je nach verwendeter CPU, Beschränkungen. Ich kann mir aber nicht vorstellen, dass du die erreichst/überschreitest.

- HMI - du mußt nicht ein Standard-Bediengerät verwenden. Es gibt auch eine PC-Runtime - hier läuft deine Visu dann auf einem Standard-PC. Du kannst mit der Visu dann auf alle von dir gewünschten (projektierten) Variablen der SPS zugreifen (Lesen wie auch Beschreiben).

Gruß
Larry

Hab mir das gerade als Schrittkette durchgedacht und das scheint logisch. Mal meine Grundüberlegung
Schritt 1: Daten von HMI an CPU übergeben (Messdatenvorgabe)
Trans1: alle Daten übergeben
Schritt 2: Allgemeine Funktion (prüfen, ob alle Not-Aus nicht geschaltet, usw.)
Trans 2: wenn alle Not aus nicht geschalten UND Start gedrueckt
Schritt 3: IST-Werte der Sensoren ermitteln und kalibrieren
Trans 3: alle Werte ermittelt
Schritt 4: Initiallauf starten (Proportionalventil so einstellen, dass es die bar liefert um die Zylinderkraft zu erzeugen)
Trans 4: Initiallauf beendet -> Kraftmessdose liefert Werte aus der Messdatenvorgabe
Schritt 5: Phase 1 der Messung (Zylinder 1 drueckt, Zylinder 2 zieht ODER Zylinder 1 und 2 druecken -> wird über einen Parameter der HMI gesteuert)
Trans 5: Zeit abgelaufen UND Druckwerte im Toleranzbereich
Schritt 6: Daten speichern
Trans 6: Daten abgespeichert
Schritt 7: Phase 2 der Messung (Zylinder 1 zieht, Zylinder 2 drueckt ODER Zylinder 1 und 2 ziehen)
Trans 7: Zeit abgelaufen und Druckwerte im Tolernazbereich
Schritt 8: Daten speichern
Trans 8: Daten abgespeichert ---> Springt zu Trans 4 und wiederholt Schritt 5-8 100.000mal
Schritt 9: Ende

Wir haben uns jetzt mal festgelegt, dass die Fuehrungsgroesse nicht verwendet werden kann, da die Streuung doch recht gross ist. -> wird nur zur Messdatenermittlung verwenden.

Fuehrungsgroese ist in unserem Fall jetzt das PropVentil, dass so eingestellt wird, dass es die gewuenschten Newton liefert. Der Zylinder drueckt dann so lange bis das Pruefstueck die Gegenkraft aufbringt -> so wird der weg "begrenzt".

noch eine frage zur HMI:
Wie genau funktioniert das mit der PC-Runtime? hab da nicht wirklich viel dazu gefunden. Brauch ich dazu das WinCC advanced oder kann ich im Tia Portal ein PC System einfuegen?
Das heisst, dass man die HMI Variablen, die ich setzte, dann auch in eine PLC Variable der CPU speicher? kann ich die auch in einen Datenbaustein (DB_Messwertvorgabe) speichern und diesen DB dann weiterverwenden?

LG
 
Für die PC-Runtime brauchst du WinCC - wegen der Version kann ich gerade nichts sagen (ich meine aber auch Advanced). Die Projektierung läuft ganz normal wie bei jedem anderen Bediengerät. Du hast hier nur schön komfortabel die Möglichkeit, irgendwelche Daten aus einer Datei zu laden (i.d.R. verwendet mal hier eine CSV- oder TXT-Datei) bzw. auch in eine (zurück) zu speichern.
Es gibt zu dem Scripte-Thema (darum geht es dabei im Wesentlichen) hier im Forum jede Menge zu lesen. Hast du dich generell schon mal mit WinCC unter TIA beschäftigt ?

Zu deiner Schrittkette :
Das sieht erstmal ganz gut aus. Lediglich würde ich die Initialisierungs-SK und die Ablauf-SK trennen. Vielleicht möchte ja mal jemand den Ablauf unterbrechen und später weiter machen (warum auch immer).

Gruß
Larry
 
Für die PC-Runtime brauchst du WinCC - wegen der Version kann ich gerade nichts sagen (ich meine aber auch Advanced). Die Projektierung läuft ganz normal wie bei jedem anderen Bediengerät. Du hast hier nur schön komfortabel die Möglichkeit, irgendwelche Daten aus einer Datei zu laden (i.d.R. verwendet mal hier eine CSV- oder TXT-Datei) bzw. auch in eine (zurück) zu speichern.
Es gibt zu dem Scripte-Thema (darum geht es dabei im Wesentlichen) hier im Forum jede Menge zu lesen. Hast du dich generell schon mal mit WinCC unter TIA beschäftigt ?

Zu deiner Schrittkette :
Das sieht erstmal ganz gut aus. Lediglich würde ich die Initialisierungs-SK und die Ablauf-SK trennen. Vielleicht möchte ja mal jemand den Ablauf unterbrechen und später weiter machen (warum auch immer).

Gruß
Larry

habe mich mit WinCC noch nicht beschaeftigt, da ich nicht genau wusste wie man das umsetzt. werde ich jetzt aber mal machen. Danke dir!


okay werde ich eventuell trennen. Prinzipiell soll der Pruefvorgang nicht unterbrochen werden (außer es bricht hald etwas und laueft Gefahr den pruefstand zu beschaedigen)

LG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
SO jetzt habe ich nochmal eine Frage zu den Weckalarmen.

im alten Porgramm ist ein OB32 programmiert, der die Anlogsignale vom Weg und Druck liest und in einen Merker (int) abspeichert und das alle 1MS.

Was ich jetzt nicht ganz verstehe ist, dass die IST-Wert berechnung in einem FC Baustein dann stattfindet. Das heißt, die CPU unterbricht jede Millisekunde den OB1 um die Anlogwerte abzufragen, ABER berechnet sie dann nur bei jedem Zyklusdurchlauf. oder habe ich da etwas falsch verstanden?

Da waere es doch sinnvoller die IST-Wert berechnung gleich im OB32 durchzufuehren, dass man immer die aktuellen Werte hat oder?

LG
 
Da waere es doch sinnvoller die IST-Wert berechnung gleich im OB32 durchzufuehren, dass man immer die aktuellen Werte hat oder?
Na klar ... das würde ich so machen.
Du mußt aber schauen, dass die Bearbeitung deines Zeit-OB nicht länger dauert als sein Aufruf-Intervall - das wäre aber durch Normieren noch nicht gegeben ...

Gruß
Larry
 
Zurück
Oben