emc2 +linistepper i "enable" low/high power

Dyskusje dotyczące działania obsługi programu LinuxCNC

Autor tematu
zaqaq
Czytelnik forum poziom 3 (min. 30)
Czytelnik forum poziom 3 (min. 30)
Posty w temacie: 4
Posty: 33
Rejestracja: 24 lis 2008, 23:32
Lokalizacja: 3city

emc2 +linistepper i "enable" low/high power

#1

Post napisał: zaqaq » 29 mar 2010, 18:16

Witam,

zlutowałem sobie sterowniki linistepper i chciałbym skonfigurować "enable" dla linistepper w emc2?

Po pobieżnym przeczytaniu dokumentacji sądziłem, że ustawienie w hal "amplifier enable" osobno dla każdego sterownika (osobne piny lpt) załatwi sprawę, tj. enable=1 będę miał w momencie, kiedy sterownik kręci silnikiem, enable=0 kiedy silnik "stoi"

przykładowe wpisy w hal:
net xenable => parport.0.pin-1-out
net xenable axis.0.amp-enable-out => stepgen.0.enable

i podobnie dla pozostałych osi

Sprawdziłem jak działa - enable=1 mam po naciśnięciu F2 (włączenie maszyny) na stałe.

Czy jest jakiś sposób, aby zmusić emc2 do nieco innego działania - tj. tak aby enable działało tak jak powinno być dla linistepper (gdzie enable faktycznie jest to high power/low power)

tj. włączało "high power"= (enable=1) tylko na czas posuwu danej osi?


Kurcze, sądziłem, że da się wszystko zrobić w emc2 ale utknąłem, a google też nie chce pomóc :cry:



Tagi:


Leoo
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 4017
Rejestracja: 15 lis 2006, 22:01
Lokalizacja: Tarnobrzeg

#2

Post napisał: Leoo » 29 mar 2010, 21:48

zaqaq pisze:enable=0 kiedy silnik "stoi"
Podczas pracy maszyny wszystkie silniki muszą być aktywne, nawet jeśli nie obracają się.


Autor tematu
zaqaq
Czytelnik forum poziom 3 (min. 30)
Czytelnik forum poziom 3 (min. 30)
Posty w temacie: 4
Posty: 33
Rejestracja: 24 lis 2008, 23:32
Lokalizacja: 3city

#3

Post napisał: zaqaq » 29 mar 2010, 22:56

zgadza się, bo przecież muszą "trzymać",
ale ... w linistepper to "enable" przełącza między trybamem o zredukowanym prądzie (low power) a trybem z pełnym prądem (high power), przecież kiedy nie ma posuwu cała moc nie jest potrzebna aby "trzymać" oś

aby korzystanie z tej funkcji miało sens to trzeba to przełączać albo przez oprogramowanie, albo przerobić linistepper aby robił to samodzielnie po jakimś tam czasie bezczynności


Leoo
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 4017
Rejestracja: 15 lis 2006, 22:01
Lokalizacja: Tarnobrzeg

#4

Post napisał: Leoo » 30 mar 2010, 08:05



Autor tematu
zaqaq
Czytelnik forum poziom 3 (min. 30)
Czytelnik forum poziom 3 (min. 30)
Posty w temacie: 4
Posty: 33
Rejestracja: 24 lis 2008, 23:32
Lokalizacja: 3city

#5

Post napisał: zaqaq » 30 mar 2010, 09:07

rozumiem, że tu chodzi o tą część układu z timerem, mógłbym prosić o jakieś wskazówki [nie jestem elektronikiem i jest mi trudniej ;-) ]

rozumiem, że kluczowe są tu piny 2 i 3 (555) - 2 ma info o pracy silnika, potem odliczanie czasu i odpowiednie wyjście na pinie 3 (dobrze kombinuję?) - a może istotne są tu/też piny 6,7?

teraz pytanie - czy na pinie 3 otrzymuję 0 lub 5V (0/1) no i co powinienem zostawić, a czego spokojnie mogę się pozbyć z tego układu:
zostaje wszystko przy pinach 1,5,8, przy pinie 2 też bez zmian?

Może prościej będzie na rysunku zamiast pisać - mógłby kolega zaznaczyć na dołączonym fragmencie schematu, co potrzebne i co powinienem podłączyć pod moje specyficzne "enable" w linistepperze?
Załączniki
lm555.jpg
lm555.jpg (18.72 KiB) Przejrzano 2772 razy


Leoo
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 4017
Rejestracja: 15 lis 2006, 22:01
Lokalizacja: Tarnobrzeg

#6

Post napisał: Leoo » 30 mar 2010, 12:06

Wszystkie elementy wokół U2 są niezbędne. Wyjściem jest pin 3, wejściem impulsów STEP - R12. Zwierając pin 2 do GND blokujemy działanie timera i silnik otrzymuje 100% przez cały czas.


Autor tematu
zaqaq
Czytelnik forum poziom 3 (min. 30)
Czytelnik forum poziom 3 (min. 30)
Posty w temacie: 4
Posty: 33
Rejestracja: 24 lis 2008, 23:32
Lokalizacja: 3city

#7

Post napisał: zaqaq » 30 mar 2010, 13:40

To jeszcze się tylko dopytam, czy Q1 może być BC547 a Q3 BC557?
Jeśli tak, to czy wartości R16 i R1 bez zmian?


Leoo
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 4017
Rejestracja: 15 lis 2006, 22:01
Lokalizacja: Tarnobrzeg

#8

Post napisał: Leoo » 30 mar 2010, 14:24

zaqaq pisze:czy Q1 może być BC547 a Q3 BC557?
Tak.
R16 zostaje, R1 i C2 odpowiadają za opóźnienie włączenia ograniczenia, które dla podanych wartości wynosi około 6s.


GumiRobot
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 1
Posty: 689
Rejestracja: 21 mar 2005, 18:51
Lokalizacja: Trójmiasto

#9

Post napisał: GumiRobot » 30 mar 2010, 17:18

Aby zmusić EMC2 do obsługi pinu low/high power w Liniatepper-ze musisz zdefiniować swój własny "HAL component" , który będzie przechwytywał sygnały sterujące step, dir, enable poszczególnych osi i na podstawie ich aktywności będzie wystawiał swoje sygnały sterujące pinami portu równoległego, aby tego dokonać musisz się wgryźć w ten dokument a w szczególności w "Chapter 6. comp: a tool for creating HAL modules"


micges
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 1
Posty: 292
Rejestracja: 08 sty 2010, 02:04
Lokalizacja: Toruń

#10

Post napisał: micges » 30 mar 2010, 21:44

Witam

W emc dla każdej osi zdefiniowany jest pin 'inpos' ktory moze byc uzyty do tego celu.
Jednak musisz sprawdzic czy driver jest wystarczająco szybki aby zmienic tryb zasilania w czasie trwania jednego kroku (minimalny przewidywany czas od wyłączenia inpos do rozpoczęcia generowania krokow).
Przyjmuję oczywiscie ze generujesz step/dir softwarowo i podajesz to na parport.

[edit]
Jesli masz statyczne obciazenie osi to mimo ze masz maly prad to jest mozliwy przeskok pol w silniku, zwłaszcza jesli masz mikrokroki.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”