Hallo,
ich möchte bei eniem TMCM1060 im laufenden Betrieb eine Variable (globaler Parameter 20, Bank 2) auf 1 bzw. 0 setzen. Ich übergebe bereits diverse Variablen welche problemlos funktionieren.
Das Modul arbeitet im stand alone Betrieb und wird nur mit dem PC verbunden, um Werte (achsen- sowie globale Parameter) zu ändern.
Ich habe mehrere Motoren in meiner Anwendung und mit der Variable 20 will ich einfach einen bestimmten Motor nicht mehr fahren lassen.
Hier kurz die Anwendung:
Loop:
GGP 20, 2
COMP 0
JC NE, Sperren
Ja Loop
Das Programm befindet sich immer in dieser Schleife. Wird ein Signal an einem Eingang angelegt wird ein Programmteil ausgeführt (über Interrupt).
Z.B.:
Schliessen: // Signal auf IN_0
GGP 20, 2 // lade Parameter 20 (Motor sperren)
COMP 0 // Vergleich mit 0
JC NE, Loop // Wenn Wert ungleich 0 --> Loop
GGP 0, 2 // Lade Schließgeschindigkeit
AAP 4, 0 // Speichere Wert als max. Geschwindigkeit
.
.
.
Setze ich nun die globale Variable 20 auf 1 (SGP 20, 2, 1), so wird das Unterprogramm Sperren aufgerufen (funktioniert).
Sperren:
SIO 0, 2, 0
JA Loop
Setze ich nun die Variable wieder zurück wird der Part "Schließen" trotzdem nicht mehr ausgeführt (obwohl GP 20, 2 definitiv auf 0 gesetzt ist).
Erst wenn ich das Modul neu starte (Spannung AUS / EIN) funktioniert es wieder, wie es soll.
An was kann das liegen? Habe ich hier ein Problem, weil ich die Variable 20 ständig abfrage und dadurch eine Wertänderung nicht mitbekomme?
Gibt es vielleicht einen besseren Befehl für mein Vorhaben?
Bitte um Hilfe
Christoph
