Servus ersteinmal an alle...
Habe hier 2 Robis denen ich bald den Hals umdrehe und ich sage euch ich schaffe das.
Worum es geht:
Die Roboter fahren horizontal auf einer Ebene mit der Höhe Z =0 Lin und Circ bewegungen.
Alles mit aufgeschaltetem Funktionsgenerator welcher ein Korrektur in Richtung Z bewerkstelligen soll.
Nun kommt irgenwann ein Eingang.
Wenn dieser Eingang kommt soll der Roboter an dieser Stelle stehen bleiben und Via Digin1 und Funktiongenerator
die Höhe korrigieren.
Sobald die Höhe erreicht ist, soll er die letzte Bewegung mit der neuen Z-Höhe fortführen.
Nun hatte ich ein kleines Programm geschrieben, welches Via Interrupt gestartet wird und in dem
sich eine Linbewegung mit $OV_Pro=0 befindet.
Welche wiederum durch einen Interrupt bei erreichen der Höhe beendet wird.
Nachdem ich es getestet hatte, stellte sich herraus das nichts passiert. Sprich der Funktiongenerator steuert nicht nach.
Dann habe ich das Programm mal manuell sprich ohne Interrupt aus einem anderen Programm aufgerufen.
Dort arbeitet der Funktionsgenerator wie gewünscht.
Nach Absprache mit dem Support kam herraus das der Funktionsgenerator während der Abarbeitung von Interruptprogrammen nicht funktioniert.
Warum ist mir schleierhaft...
Naja die Lösung für diesen Fall war recht einfach.
2 Interruptprogramme, eines setzt $Ov_pro auf 0 ,dass andere wieder auf den alten Wert..
Die Lin bewegung dazwischen bei OV_PRO=0 übernimmt somit die aktuelle Bewegung...
Nun kann es jedoch auch sein, dass eine Höhenkorrektur verlangt wird wenn überhaupt keine Bewegung stattfindet.
Und genau an diesem Punkt bräuchte ich mal ein paar Denkanstösse...
Vielleicht ist die Lösung ja ganz einfach...
Vielen Dank soweit...