Oh wahnsinn! Vielen Dank! Ich hab den Fehler gefunden. Ich wollte gerade ausführlich den Fehler beschreiben, wollte nochmal was überprüfen und hab ihn jetzt gefunden...
Für alle die Zukünftig auf dieses Problem stoßen, hier die Erklärung
Das Problem:
Ich konnte über AXIS Die Spindel über die Manuelle Steuerung ansteuern. Also über die UI-Elemente in der Gruppe "Spindle" und über die Spindelübersteuerung. Was nicht funktioniert hat, bzw wo die Spindel auf maximaler Drehzahl gelaufen ist, sind die MDI-Befehle also z.B. S3000 M3 mit der die Spindel mit 3000Rpm im Rechtslauf drehen sollte, bei lief sie mit ca 20000Rpm im Rechtslauf. Auch der Schieberegler S in Probebasic hatte hier keinen Einfluss, bzw bei 0% stoppt die Spindel, aber der Rest verändert die Drehzahl nicht.
Die Ursache
des Problems besteht wohl darin, dass die S Befehle direkt an den spindle-output bzw in meinem Fall den spindle-vel-cmd-abs gehen ohne davor wie bei der AXIS Manuellen Steuerung über einen Multiplikator zu laufen. die Mesakarte interpretiert jeden Wert größergleich 1 als Vollauschlag des Spindelpotis. Also sobald man ein S größer als 1 abschickt, geht die Spindel in ihre Maximale Drehzahl.
Die Lösung:
m HAL legen wir einen Multiplikator an, den wir dann zwischen das spindle-output Signal und dem hm2_7i76e.0.7i76.0.0.spinout schalten. Das sieht dann so aus:
Step 1:
Laden der Scale-Komponente:
Code:
loadrt scale count=1
# wenn diese Zeile bereits existiert muss hier der count um 1 erhöht werden.
Step 2:
die Scale-Komponente an den Servo-Thread anhängen:
Code:
addf scale.0 servo-thread
Step 3:
den Multiplikator anlegen, in diesem Fall kleiner 1 da wir das Signal ja Dämpfen wollen. Hier als Beispiel bei einer 20000Rpm Spindel:
Code:
setp scale.0.gain 0.00005
Step 4:
den Spindle-out mit dem Eingang des Scale-Elemtents verbinden:
Code:
net spindle-vel-cmd-rpm-abs => scale.0.in
# hier kann alternativ auch das spindle-output Signal verwendet werden, das kann dann aber negativ sein, was in meinem Fall keinen Sinn gemacht hat.
Step 5:
den Augang des Scale-Elements mit spinout verbinden:
Code:
net scaled-spindle-speed scale.0.out => hm2_7i76e.0.7i76.0.0.spinout