Roboterforum Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?
08. Februar 2012, 23:25:02
Übersicht Hilfe Suche Kalender Einloggen Registrieren
News: English and international Robotsupport now on Robot Forum. Also Supported by the Moderators of the roboterforum.de

Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  ABB Roboter (Moderatoren: burlibua, Sven Weyer, rmac)  |  Thema: Interrupts, Flankenwechsel, Multitasking 0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Interrupts, Flankenwechsel, Multitasking  (Gelesen 1754 mal)
Markus Schroepfer
Gast
« am: 15. Februar 2006, 17:41:17 »

Ich habe das Problem, dass die Interrupts nur auf den Flankenwechsel des beobachteten Signals reagieren und es somit nicht mitbekommen wenn das Programm gestoppt wurde.
Wenn zum Beispiel das Signal "Fahrfreigabe" über einen Interrupt überwacht wird und ich stoppe das Programm, bekommet der Roboter den Flankenwechsel nicht mit und fährt weiter wenn ich das Programm wieder starte. Die Beschreibung der Multitaskingfunktion in meiner Dokumentation hilft mir leider nicht richtig weiter. Was muss ich tun damit der Roboter den Flankenwechsel auch bei gestopptem Programm mitbekommt.
Gespeichert
burlibua
Moderator
Junior Member
*****
Offline Offline

Beiträge: 110


« Antworten #1 am: 15. Februar 2006, 19:25:03 »

Bei diversen Problemen ist es immer wicht den Robotertyp und die Version M97A oder M98....
mitzuschreiben.

Normalerweise wird "Fahrfreigebe" über die Systemsignale realisiert "Programmstop" wenn du jedoch die Signale wirklich bei stehendem Programm mitbekommen möchtest wirst du Multitasking benötigen..... Dies kann unter Umständen nicht am Rob installiert sein

Überprüfung --- Andere Fenster -- Service -- Task wechseln

Wenn der Menüpunkt "Task wechseln" nicht vorhanden ist dann mußt du einen zusätzlichen Key ordern.

mfG Burlibua
Gespeichert
Sven Weyer
Moderator
Elite Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 900



WWW
« Antworten #2 am: 16. Februar 2006, 06:56:10 »

Hallo Leute,
da Multitasking leider eine zusätzliche Option ist haben wir dies auch ab und zu nicht zur Verfügung.
Wir benutzen daher die Ereignisroutinen um einen geänderten Zustand zu bemerken. Ereignis wäre Programm Start. Somit hätten wir vor der eigentlichen Programmausführung die Möglichkeit in Abhängigkeit des Anlagenzustandes die Fehlerbehandlung anzusprechen bzw. "StopMove" auszuführen.

Somit kommt man eigentlich auch ohne Multitask aus was die Freigabesignale betrifft.  biggrins

robotic74
Gespeichert

Wer nichts macht macht keine Fehler!
Wer keine Fehler macht kann nichts daraus lernen!
Wer nichts lernen kann kann sich nicht weiterentwickeln!
Wer sich nicht entwickelt geht unter!
rmac
Global Moderator
Special Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 282


« Antworten #3 am: 16. Februar 2006, 10:53:56 »

(Fast) Mahlzeit,

also wenn ich das richtig verstehe, ist dafür eine Kombination aus System-Signal und System-Ereignis notwendig, da ja die Freigabe über einen dig. Eingang/Flanke komplett asynchron zum (ggfls. stehenden) Roboter-Programm erfolgen soll. Eine Ereignis-Routine alleine kann ja nicht auf die Flanke reagieren (oder ?)

1. System-Signal definieren
Unter "Systemparameter | Typen | System Eingänge" dem gewünschten Flankensignal die Aktion "Interrupt" zuordnen und als Argument den Namen einer Routine angeben, die einen internen Merker setzt. Ich habs zwar nicht probiert, aber sollte eigentlich so funzen, auch asynchron ohne Multitasking...

2. System-Ereignis definieren
Für das System-Ereignis "RESTART" (und ggfls "START") eine Routine einsetzen, die den internen Merker (s.o.) abfragt und das (Wieder-)Anfahren abbricht falls der Merker nicht gesetzt wurde, d.h. die Freigabe nicht zwischenzeitlich/asynchron erteilt wurde.

WICHTIG: den Merker nach erfolgreicher Anfahrt sofort wieder rücksetzen oder den Merker spätestens in einer Ereignis-Routine für "STOP/QSTOP" rücksetzen (hängt von den Erfordernissen ab), damit das nächste Anfahren erst wieder nach erneuter Freigabe möglich ist.

Ist erstmal nur "graue Theorie", hab ich noch nie so probiert,   waffen100
könnte aber funzen (?)

Bis dahin
Rainer
Gespeichert
Sven Weyer
Moderator
Elite Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 900



WWW
« Antworten #4 am: 16. Februar 2006, 11:02:10 »

Hallöchen,
bei uns funktioniert dies mit Ereignisroutinen recht gut.
Beim betreten eines Arbeitsbereiches setzen wir ein Merker auf "TRUE". Sollte dann bei einem erneuten Start des Programmes dieser Merker auf "TRUE" sein und das Ausserhalbsignal des Roboters auf "low" und das Freigabesignal für den Arbeitsbereich auf "low" dann wird "StopMove" ausgeführt und eine Fehlermeldung ausgegeben.

So machen wir das eigentlich und es geht recht gut als Absicherung.

robotic74
Gespeichert

Wer nichts macht macht keine Fehler!
Wer keine Fehler macht kann nichts daraus lernen!
Wer nichts lernen kann kann sich nicht weiterentwickeln!
Wer sich nicht entwickelt geht unter!
rmac
Global Moderator
Special Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 282


« Antworten #5 am: 16. Februar 2006, 11:15:04 »

Hi robotic74,

das ist mit Sicherheit die bessere/einfachere Variante wenn die Freigabe statisch auf "high/low" ist während der Rob anläuft, aber wenn ich Markus richtig verstehe, will er detektieren ob eine Freigabe-Flanke/Pulse zwischenzeitlich gekommen ist (während der Roboter stand), d.h. das Signal war mal irgendwann "high", ist möglicherweise aber schon wieder "low" wenn der Rob startet. (So hab ich das zumindest verstanden)
Halte ich zwar für ein bedenkliches Verfahren, aber wer's braucht....  pfeif

Gruß
Rainer
Gespeichert
Sven Weyer
Moderator
Elite Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 900



WWW
« Antworten #6 am: 16. Februar 2006, 11:20:42 »

Hi rmac,
muss Dir da zustimmen.  kopfkratz Habe an soetwas verwegenes garnich gedacht. Bin davon einfach mal ausgegangen das er dies benötigt um nicht einen Crash zu fahren. So ging es uns jedenfalls.  uglyhammer_2

robotic74
Gespeichert

Wer nichts macht macht keine Fehler!
Wer keine Fehler macht kann nichts daraus lernen!
Wer nichts lernen kann kann sich nicht weiterentwickeln!
Wer sich nicht entwickelt geht unter!
Markus Schroepfer
Gast
« Antworten #7 am: 16. Februar 2006, 12:36:19 »

Hallo zusammen,

ich danke euch allen recht herzlich, für die guten und prompten Ratschläge. Die Sache mit den Ereignisroutinen sollte eigentlich funktonieren.
Jetzt ist es aber so das der Roboter Multitaskingfähig ist, und ich würde das auch gerne mal nutzten. Weiss irdend wer wie das funktioniert?

Vielen Dank schon mal!

Markus
Gespeichert
Sven Weyer
Moderator
Elite Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 900



WWW
« Antworten #8 am: 16. Februar 2006, 12:41:51 »

Hallo Markus,
die Hintergrundmodule werden mit der gleichen Sprache programmiert nur solltest Du es vermeiden Warteanweisungen zu verwenden. Probiere dies änlich zu programmieren wie bei einer SPS.
Ansonsten sollte alles in der Doku stehen wie Du dies einrichtest.

robotic74
Gespeichert

Wer nichts macht macht keine Fehler!
Wer keine Fehler macht kann nichts daraus lernen!
Wer nichts lernen kann kann sich nicht weiterentwickeln!
Wer sich nicht entwickelt geht unter!
burlibua
Moderator
Junior Member
*****
Offline Offline

Beiträge: 110


« Antworten #9 am: 17. Februar 2006, 13:37:38 »

Multitasking bauen:
Mach mal erst ein Backup

Systemparameter --- Task --- Neu
Namen eingeben und auf Kontinuierlich und Systemsignale --- keine Reaktion
stellen

Improgramm keine Schleifen programmieren und als letzte Anweisung Waittime 0.1s
Denn wenn der Task zu wenig zu tun hat gibts Probleme.

Service --- Neustart --0258 drucken dann kommt neben dem OK ein P-Start Symbol

P-Start drücken  und hochlaufen lassen

Wenn Rob wieder ok dann  Service Task wechseln --- auswählen -- Programmfenster
Neu und Programm

Im Task darf kein Referenzfehler sein sonst schmeißt er das Prog immer wieder raus.

Wenn Progamm im Kasten dann Prgramm mit gehaltener Zusimmtaste start

Bei Änderungen nur auf Programmstop und editieren.


das wärs

Ich hoffe du bekommst das mit der Dok hin

Tschü  Burlibua
Gespeichert
robiman
Global Moderator
Junior Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 185


robi for ever


« Antworten #10 am: 20. Februar 2006, 08:37:18 »

Kleine Anmerkung zum P-Start

Vorher Backup nicht vergessen.
Nach dem P Start sind erst mal alle Programm module weg.
Gespeichert
burlibua
Moderator
Junior Member
*****
Offline Offline

Beiträge: 110


« Antworten #11 am: 21. Februar 2006, 10:43:06 »

Backup machen steht darum ganz oben --- ist ja sowieso nicht schlecht mal wieder up to date zu sein

mfG Burlibua
Gespeichert
Seiten: [1] Nach oben Drucken 
Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  ABB Roboter (Moderatoren: burlibua, Sven Weyer, rmac)  |  Thema: Interrupts, Flankenwechsel, Multitasking « vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS