Ovládací panel pro EMC přes USB

Odpovědět
fupe
Příspěvky: 638
Registrován: 27. 5. 2008, 9:10
Bydliště: Praha

2. 8. 2022, 9:29

Meki píše: 1. 8. 2022, 10:15
fupe píše: 1. 8. 2022, 9:53 JInak projektu pro externi panel je hromada. Arduino, teensy (hidcomp), stm32, usb pres userhid atd atd. staci si vybrat.
Martin
arduino je hračka, na teensy jsem zde nečetl chválu, a různé verze HID nevypadají jako výhra oproti MODBUSu.
To STM32 zní zajímavě, přes co by komunikovalo s PC a linuxCNC?
To zalezi na tobe. Umi se chovat jako usb klavesnice, nebo pres seriak rs232, popripade pro sserial je to rs422. Moznosti je fakt hromada.
fupe
Příspěvky: 638
Registrován: 27. 5. 2008, 9:10
Bydliště: Praha

2. 8. 2022, 9:30

Meki píše: 1. 8. 2022, 10:15
fupe píše: 1. 8. 2022, 9:53 JInak projektu pro externi panel je hromada. Arduino, teensy (hidcomp), stm32, usb pres userhid atd atd. staci si vybrat.
Martin
arduino je hračka, na teensy jsem zde nečetl chválu, a různé verze HID nevypadají jako výhra oproti MODBUSu.
To STM32 zní zajímavě, přes co by komunikovalo s PC a linuxCNC?
To zalezi na tobe. Umi se chovat jako usb klavesnice, nebo pres seriak rs232, popripade pro sserial je to rs422. Moznosti je fakt hromada.
Uživatelský avatar
Meki
Příspěvky: 460
Registrován: 20. 4. 2020, 11:37

5. 11. 2022, 10:49

Tak s ModBusem pro FeedOverride a RapidOverride jsem moc nepochodil (dlouhá odezva). Použil jsem tedy enkodér zapojený přímo na vstupy mesy a chodí to celkem slušně. Ještě to ale musím testnout v terénu. Pokud někomu pomůže kod:

Kód: Vybrat vše

# v halu:

# rotary encoder for feed override control
loadrt encoder num_chan=1
loadrt conv_float_s32 count=1
loadrt scale count=1

addf encoder.capture-position   servo-thread
addf encoder.update-counters    servo-thread
addf conv-float-s32.0           servo-thread
addf scale.0                    servo-thread

setp halui.feed-override.scale 0.0125
setp halui.rapid-override.scale 0.01
setp halui.rapid-override.direct-value true
setp scale.0.gain 100

net feedcount halui.feed-override.counts <= encoder.0.counts
net feedup encoder.0.phase-A <= hm2_7i96s.0.gpio.001.in
net feeddown encoder.0.phase-B <= hm2_7i96s.0.gpio.000.in

net hodnota_korekce_posuvu scale.0.in <= halui.feed-override.value
net hodnota_korekce_posuvu_uprava conv-float-s32.0.in <= scale.0.out
net hodnota_korekce_rychloposuvu halui.rapid-override.counts <= conv-float-s32.0.out


# v postgui:
net feedreset hm2_7i96s.0.gpio.002.in => gmoccapy.feed.reset-feed-override
Problém nastává když chci mít dva enkodéry, jeden pro Feed a druhý pro Rapid. Potřebuju aby se stroj zastavil když sáhnu jen po jednom z těch dvou enkodéru. Příklad: pokud stáhnu enkodér pro G1 na 0% ale program zrovna vykonává G0 tak smůla, stroj jede rychloposuvem vesele dál.
Zdá se mi že v LinuxCNC chybí jeden docela důležitý kolík který by to vyřešil: halui.feed-hold

a nebo něco přehlížím? FeedHold je uprofi CNC jeden ze základních tlačítek/přepínačů na panelu, nevěřím že v LinuxCNC chybí tato možnost.
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22371
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

5. 11. 2022, 11:16

To vis ze tam je
Lip hledej.
V hlave tohle nemam ale vim ze jsem to resil.
Vsechna prava na chyby vyhrazena (E)
Uživatelský avatar
Meki
Příspěvky: 460
Registrován: 20. 4. 2020, 11:37

21. 2. 2023, 7:36

robokop píše: 5. 11. 2022, 11:16 To vis ze tam je
Lip hledej.
V hlave tohle nemam ale vim ze jsem to resil.
neměl by jsi nějakou nápovědu/nasměrování kde hledat ten FeedHold ? Asi něco přehlížím.
Odpovědět

Zpět na „LinuxCNC - drive pod nazvem EMC2“