Hallo miteinander,
mein Test Encoder ist an Joint 2 angeschlossen.
E6B2-CWZ1X => Mesakarte
[Bleck] A <-> Mesa QA2 [TB1 - 16]
[Bleck / Red] -A <-> Mesa /QA2 [TB1 - 17]
[White] B <-> Mesa QB2 [TB1 - 19]
[White / Red] -B <-> Mesa /QB2 [TB1 - 20]
[Orange] Z <-> Mesa IDX2 [TB1 - 22]
[Orange / Red] -Z <-> Mesa /IDX2 [TB1 - 23]
Dann habe ich meine INI erwidert mit der ziele:
Code:
[JOINT_2]
...
ENCODER_SCALE = 256
# Encoder hat 1024P/R Spindel Steigung 4mm = 1024/4= 256
Dann habe ich mein HAL erweitert
Code:
...
loadrt encoder num_chan=5
# Benötige insgesamt 5 Encoder
...
# --- Encoder feedback signals/setup ---
setp [HMOT](CARD0).encoder.02.counter-mode 0
setp [HMOT](CARD0).encoder.02.filter 1
setp [HMOT](CARD0).encoder.02.index-invert 0
setp [HMOT](CARD0).encoder.02.index-mask 0
setp [HMOT](CARD0).encoder.02.index-mask-invert 0
setp [HMOT](CARD0).encoder.02.scale [JOINT_2]ENCODER_SCALE
Ich glaube, dass ich die Encoder auch in den "Servo-Thread" einbinden muss und dass mir irgendwo noch etwas fehlt, denn ich bekomme folgende Fehlermeldung:
Code:
Debug file information:
Note: Using POSIX realtime
./7i95-2023-Demo.hal:154: parameter or pin 'hm2_7i95.0.encoder.02.counter-mode' not found
12978
Stopping realtime threads
Unloading hal components
Note: Using POSIX realtime
Leider habe ich noch nichts gefunden, was mich weiterbringt
Im Anhang meine aktuelle HAL und INI.
Was mache ich falsch, was habe ich nicht verstanden?
Gruß Mucke