Co ovlivňuje minimální rychlost pohybů X,Y,Z?

Co ovlivňuje minimální rychlost pohybů X,Y,Z?

Příspěvekod smejch » 01.08.2020 16:44

Takový mimotiskový dotaz - je v Marlinu něčím nastavená/ovlivňovaná minimální rychlost tisku, resp. pohybu os?
Použil jsem Marlina k ovládání "přístroje" jehož součástí je lineární dávkovač - 7 injekčních stříkaček, které jsou naráz stlačovány pohybem osy Z a dávkují tak tekutinu v objemu řádově ml/min.

Takže bych potřeboval hýbat Zkem rychlostí cca 1,5 mm/min aby to dávkovalo 1 ml/min - řádek G kodu tedy vypadá následovně:

G1 Z1.4852 F1.4852

Problém je, že se Z hýbe rychlostí cca 5 mm/min ať nastavím jakoukoliv hodnotu F pod 5. Zkoušel jsem do kodu přidat úpravu feedrate přes M220, ale žádná změna nenastala....

Co jsem našel v konfiguraci tak akorát řádek:
#define DEFAULT_MINIMUMFEEDRATE 0.0
ale ten je defaultně na 0.0, takže by neměl ničemu bránit

Zkoušel jsem bugfix Marlinu 1.1.x a 2.0.x ale výsledek veškerý stejný.
  • 0

smejch
 
Příspěvky: 66
Registrován: 20.02.2017 17:12
Reputation: 0

Re: Co ovlivňuje minimální rychlost pohybů X,Y,Z?

Příspěvekod Klaudius » 02.08.2020 11:46

A nebude to dané možnosťami Z-skrutky a jej krokového motora? Pri danom stúpaní a počte krokov(mikrokrokov)motora za minútu tých 1,5 mm možno nedáš ani teoreticky. Skús si to prepočítať, možno to chce skôr hardvérovú úpravu ako nejaké nastavovanie v Marline.
  • 0

Klaudius
 
Příspěvky: 177
Registrován: 15.02.2016 12:15
Bydliště: Bratislava - okolie
Reputation: 5
Jen tak dál :)

Re: Co ovlivňuje minimální rychlost pohybů X,Y,Z?

Příspěvekod smejch » 02.08.2020 15:43

Mám 400 kroků/mm (1/16 step a 8mm trapéz), takže při té rychlosti +- 600 kroků na minutu...tady bych nehledal problém.
Včera mne napadlo ještě před pohyb Z nahodit M92 se změnou hodnoty steps/mm na nějakou imbecilně nízkou hodnotu a pak nahodit G1 s "posunem" a feedratem, který by za minutu poslal do stepperu ten správný počet kroku (+- 600) a pak M92 vrátit . Asi takto:

M92 Z9.9013

G1 Z60 F60

M92 Z400

Uvidíme po víkendu
  • 0

smejch
 
Příspěvky: 66
Registrován: 20.02.2017 17:12
Reputation: 0

Re: Co ovlivňuje minimální rychlost pohybů X,Y,Z?

Příspěvekod zemciko » 03.08.2020 17:57

Nejsem si jistý jak osa z ale osy xy mají v marninovi totok:
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
a jinde
#ifdef XY_FREQUENCY_LIMIT
#define MAX_FREQ_TIME (1000000.0/XY_FREQUENCY_LIMIT)
// Used for the frequency limit
static unsigned char old_direction_bits = 0; // Old direction bits. Used for speed calculations
static long x_segment_time[3]={MAX_FREQ_TIME + 1,0,0}; // Segment times (in us). Used for speed calculations
static long y_segment_time[3]={MAX_FREQ_TIME + 1,0,0};
#endif
dlaší věc je nějaképříadně omezení ve funci co počítá kroky motoru a jak to ještě ovlivní akcelerace...
  • 0

zemciko
 
Příspěvky: 1487
Images: 9
Registrován: 09.05.2015 13:43
Reputation: 0

Re: Co ovlivňuje minimální rychlost pohybů X,Y,Z?

Příspěvekod smejch » 03.08.2020 21:10

Plán s M92 nefunguje, takže pomalu projíždím Marlina v nastaveních stepperu, povětšinou se řeší maximální frekvence krom krátkého úseku v stepper.h

constexpr uint32_t min_step_rate = F_CPU / 500000U;
NOLESS(step_rate, min_step_rate);
step_rate -= min_step_rate; // Correct for minimal speed
if (step_rate >= (8 * 256)) { // higher step rate
const uint8_t tmp_step_rate = (step_rate & 0x00FF);
const uint16_t table_address = (uint16_t)&speed_lookuptable_fast[(uint8_t)(step_rate >> 8)][0],
gain = (uint16_t)pgm_read_word_near(table_address + 2);
timer = MultiU16X8toH16(tmp_step_rate, gain);
timer = (uint16_t)pgm_read_word_near(table_address) - timer;
}
else { // lower step rates
uint16_t table_address = (uint16_t)&speed_lookuptable_slow[0][0];
table_address += ((step_rate) >> 1) & 0xFFFC;
timer = (uint16_t)pgm_read_word_near(table_address)
- (((uint16_t)pgm_read_word_near(table_address + 2) * (uint8_t)(step_rate & 0x0007)) >> 3);
}

to bude ještě na delší studium :-D
  • 0

smejch
 
Příspěvky: 66
Registrován: 20.02.2017 17:12
Reputation: 0

Re: Co ovlivňuje minimální rychlost pohybů X,Y,Z?

Příspěvekod walker.cz » 05.08.2020 08:05

a co zkusit GRBL? Chápu, neřeší to problém s Marlinem, ale možná by to bylo vhodnější.
  • 0

Rebel II, Rebelix MK2, Poseidon Duo, W-sCubeXY, Delta Sculptur, Wallta (moje delta :D ),
walker.cz
 
Příspěvky: 75
Registrován: 10.01.2017 23:08
Bydliště: Cheb
Reputation: 0

Re: Co ovlivňuje minimální rychlost pohybů X,Y,Z?

Příspěvekod smejch » 05.08.2020 09:09

Jo změna FW mě napadla :mrgreen:
Nicméně po procházení všech věcí v Marlinu, které ovlivňují minimální rychlost jsem dospěl k závěru, že se všechno odvíjí od minimální step_rate, ale na takovou komplexní úpravu jsem ještě malý programátorský pán.
Takže jsem problém vyřešil sprostou hardwarovou výměnou driveru za LV8729 na 1/128mikrokroků, což při tak mrňavý rychlosti dává čip stále s prstem v nose a světe div se, dávkuju 1 ml/min naprosto bez problému :roll:
Každopádně díky všem za rady :-)
  • 0

smejch
 
Příspěvky: 66
Registrován: 20.02.2017 17:12
Reputation: 0


Zpět na OSTATNÍ PROBLEMATIKA HW/SW

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 5 návštevníků