upravljnje DC motorima ?

Rasprava o el. shemama, pitanja i diskusije. Ako ti treba neka shema, ovdje pitaj.

Moderators: pedja089, stojke369, [eDo], trax

sedin
Penjem se :)
Penjem se :)
Posts: 87
Joined: 28-07-2010, 17:01

Re: upravljnje DC motorima ?

Post by sedin »

pokusavam da skontam kroz pedja089 formu koda kako ovo treba da funkcionise , sta treba da dopunim da bi dobio cjelinu? Kako da definisem kad je TP<TZ odnosno TP>TZ? jeli i to radim kroz IF naredbe? i kako vrsim inicijalizaciju TZ?
User avatar
gurko
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 241
Joined: 18-03-2011, 19:28
Location: Srednja BiH

Re: upravljnje DC motorima ?

Post by gurko »

Pa to bi trebao da skontas sam ... kao vjezba u basicu!

TZ nastavis definisati ... za svaki slijedeci ulaz "1" u TZ se pomjera za jedno mjesto tako da ce ti na kraju biti 00010000.

Sto se tice vrtenja u jednu ili drugu stranu, u tom dijelu nemas IF-a vec samo postavljas odgovarajuce portove na odgovarajuca stanja tj. na 1.

Nadam se da ti je ovo pomoglo! :wink:
User avatar
VooDooX
Pocetnik na forumu
Pocetnik na forumu
Posts: 25
Joined: 09-10-2011, 19:57
Location: Slovenia

Re: upravljnje DC motorima ?

Post by VooDooX »

InTheStillOfTheNight wrote:Mislim @sedin ja ne kužim koja je tvoja životna nesreća :shock:
Ti kao da želiš zakomplicirati stvari koje ne mogu biti jednostavnije. Lijepo sam ti našao gotovu i isprobanu shemu koju samo trebaš precrtati i ne zamarati se sa nikakvim simulacijama i naponima... No kako vidim to je za tebe previše jednostavno... Još ti je masa ekipe napisala da se H most radi sa NPN i PNP parom tranzistora, no ti uopće ne čuješ što ti ljudi pričaju...
nisam jos pokusao sa bi-polar tranzistorima ali sa mosfet mozes bez problema imat 4 komada n-chan samo u tom primjeru trebaju gornja 2 imat vcc+5V na gate i nema problema.
sedin
Penjem se :)
Penjem se :)
Posts: 87
Joined: 28-07-2010, 17:01

Re: upravljnje DC motorima ?

Post by sedin »

kod sam nadopunio a vi me ispravite kolko sam pogrijesio:

SYMBOL T1=PORTA.0 'T1 do T4 polozaji grebenastog prekidac
SYMBOL T2=PORTA.1
SYMBOL T3=PORTA.2
SYMBOL T4=PORTA.3

SYMBOL T11=PORTB.2 'T11 do T14 tasteri
SYMBOL T12=PORTB.3
SYMBOL T13=PORTB.4
SYMBOL T14=PORTB.5

SYMBOL PLUS=PORTB.0
SYMBOL MINUS=PORTB.1

OUTPUT PLUS
OUTPUT MINUS

TP VAR BYTE '- trenutna pozicija
TZ VAR BYTE '- zadata pozicija


Start:
TP.0=T1
TP.1=T2
TP.2=T3
TP.3=T4

TP=~TP ' invertuj tako da 1 bude taster koji je stisnut ili TP.0=~T1

IF T11 =0 THEN
TZ=%00000001
ELSEIF T12=0 THEN
TZ=%00000010
ELSEIF T13=0 THEN
TZ=%00000100
ELSEIF T14=0 THEN
TZ=%00001000
ENDIF

IF TP<TZ THEN
TP=T11 AND TZ=T12 OR TZ=T13 OR TZ=T14
ELSEIF TP<TZ then
TP=T12 and TZ=T13 or TZ=T14
ELSEIF TP<TZ then
TP=T13 and TZ=T14
endif

if TP>TZ then
TP=T14 and TZ=T13 or TZ=T12 or TZ=T11
ELSEIF TP>TZ then
TP=T13 and tz=T12 or TZ=T11
ELSEIF TP>TZ then
TP=T12 and TZ=T11
endif

IF TP<TZ THEN
HIGH PLUS 'Vrti u jednu stranu

ELSEIF TP>TZ THEN
HIGH MINUS 'vrti u drugu stranu

ELSE
'zaustavi
ENDIF
PAUSE 100
GOTO Start
User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: upravljnje DC motorima ?

Post by niho »

Zaboga @sedin kad pises kod nekog programa onda upotrijebi opciju Code daleko je preglednije i lakse za pratiti.

Code: Select all

SYMBOL T1=PORTA.0 'T1 do T4 polozaji grebenastog prekidac
SYMBOL T2=PORTA.1
SYMBOL T3=PORTA.2
SYMBOL T4=PORTA.3

SYMBOL T11=PORTB.2 'T11 do T14 tasteri
SYMBOL T12=PORTB.3
SYMBOL T13=PORTB.4
SYMBOL T14=PORTB.5
...
sedin
Penjem se :)
Penjem se :)
Posts: 87
Joined: 28-07-2010, 17:01

Re: upravljnje DC motorima ?

Post by sedin »

ok, ubuduce koristim Code, iskreno nisam znao :D

Code: Select all

SYMBOL T1=PORTA.0 'T1 do T4 polozaji grebenastog prekidac
SYMBOL T2=PORTA.1
SYMBOL T3=PORTA.2
SYMBOL T4=PORTA.3

SYMBOL T11=PORTB.2 'T11 do T14 tasteri
SYMBOL T12=PORTB.3
SYMBOL T13=PORTB.4
SYMBOL T14=PORTB.5

SYMBOL PLUS=PORTB.0 
SYMBOL MINUS=PORTB.1

OUTPUT PLUS
OUTPUT MINUS

TP VAR BYTE '- trenutna pozicija
TZ VAR BYTE '- zadata pozicija


Start:
TP.0=T1
TP.1=T2 
TP.2=T3
TP.3=T4

TP=~TP ' invertuj tako da 1 bude taster koji je stisnut ili TP.0=~T1

IF T11 =0 THEN
TZ=%00000001
ELSEIF T12=0 THEN
TZ=%00000010
ELSEIF T13=0 THEN
TZ=%00000100
ELSEIF T14=0 THEN
TZ=%00001000
ENDIF

IF TP<TZ THEN
TP=T11 AND TZ=T12 OR TZ=T13 OR TZ=T14
ELSEIF TP<TZ then
TP=T12 and TZ=T13 or TZ=T14
ELSEIF TP<TZ then
TP=T13 and TZ=T14
endif

if TP>TZ then
TP=T14 and TZ=T13 or TZ=T12 or TZ=T11
ELSEIF TP>TZ then
TP=T13 and tz=T12 or TZ=T11
ELSEIF TP>TZ then
TP=T12 and TZ=T11
endif

IF TP<TZ THEN
HIGH PLUS 'Vrti u jednu stranu

ELSEIF TP>TZ THEN
HIGH MINUS 'vrti u drugu stranu

ELSE
'zaustavi
ENDIF
PAUSE 100
GOTO Start
User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: upravljnje DC motorima ?

Post by niho »

Pretjerao si sa ovim relacijama, procesor ne radi "ono sto ti zelis nego ono sto ti naredis".

Code: Select all

TP=T14 and TZ=T13 or TZ=T12 or TZ=T11
Bojim se da su moguci rezultati kod ovakvih opcija prakticno nepredvidivi. Jako je tesko pratiti sta si htio postici ovavim relacijama :? Pokusaj simulirati ovo na nacin da poredas 0 i 1 na portove kao da je stvaran slucaj pa da vidis sta se dobije po bulovoj algebri.
sedin
Penjem se :)
Penjem se :)
Posts: 87
Joined: 28-07-2010, 17:01

Re: upravljnje DC motorima ?

Post by sedin »

nisam znao kako bi (na koji nacin) definisao kada je TP<TZ odnosno TP>TZ, pa sam to gledao na nacin

Code: Select all

T11<T12<T13<T14
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7874
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: upravljnje DC motorima ?

Post by pedja089 »

Pa zar nije jednostavno onako kako sam ja napisao? Ako je jedno vece vrti u jednu stranu, ako je drugo vece vrti u drugu stranu, ako su isti stani.
sedin
Penjem se :)
Penjem se :)
Posts: 87
Joined: 28-07-2010, 17:01

Re: upravljnje DC motorima ?

Post by sedin »

definitivno mnogo lakse al nisam znao da je time vec definisan TP<>TZ, mislio sam da je potrebno odreditit u kojim polozjima je veci-manji :oops: ,zbunjuje me inicijalizacija TZ kako da joj dodijelim vrijednost koja se zatekne?
sedin
Penjem se :)
Penjem se :)
Posts: 87
Joined: 28-07-2010, 17:01

Re: upravljnje DC motorima ?

Post by sedin »

u sustini onako kako je pedj089 vec objavio kod je ustvari i gotovo kompletan ali je ispod naglaseno da treba inicijalizirati TZ, te je najbolje da mu se dodijeli trenutna vrijednost? kojom relacijom ?

Code: Select all

SYMBOL T1=PORTA.0 'T1 do T4 polozaji grebenastog prekidac
SYMBOL T2=PORTA.1
SYMBOL T3=PORTA.2
SYMBOL T4=PORTA.3

SYMBOL T11=PORTB.2 'T11 do T14 tasteri
SYMBOL T12=PORTB.3
SYMBOL T13=PORTB.4
SYMBOL T14=PORTB.5

SYMBOL PLUS=PORTB.0 
SYMBOL MINUS=PORTB.1

OUTPUT PLUS
OUTPUT MINUS

TP VAR BYTE '- trenutna pozicija
TZ VAR BYTE '- zadata pozicija


Start:
TP.0=T1
TP.1=T2 
TP.2=T3
TP.3=T4

TP=~TP ' invertuj tako da 1 bude taster koji je stisnut ili TP.0=~T1

IF T11 =0 THEN
TZ=%00000001
ELSEIF T12=0 THEN
TZ=%00000010
ELSEIF T13=0 THEN
TZ=%00000100
ELSEIF T14=0 THEN
TZ=%00001000
ENDIF

IF TP<TZ THEN
HIGH PLUS 'Vrti u jednu stranu

ELSEIF TP>TZ THEN
HIGH MINUS 'vrti u drugu stranu

ELSE
'zaustavi
ENDIF
PAUSE 100
GOTO Start
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7874
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: upravljnje DC motorima ?

Post by pedja089 »

Pa ajd razmisli malo...
Ako si tek upalio uredjaj, i ne znas koji je zadnji taster bio stisnut, imas nekoliko mogucnosti.
Da ostanes u istom polozaju, sto znaci Tz dodelis vrednost trenutnog polozaja, sto bi znacilo pre starta stavis ovo

Code: Select all

Tz.0=T1
Tz.1=T2
Tz.2=T3
Tz.3=T4
Tz=~Tz
Druga mogucnost je da pri ukljucenju vratis sve u pocetni polozaj tj Tz=1 ili bilo koji drugi polozaj. Treca varijanta bi bila da pamtis koji je taster stisnut. Sa prvom varijantom problem moze biti ukoliko je lose mehanicki reseno pa se osovina nadje u polozaju da nije stisnut ni jedan prekidac. Druga varijanta je ko zna koje ludilo to moze izazvati ako predje preko svih polozaja, i na kraju treca varijanta je najbolja, ali zahteva pamcenje pri svakom stisnutom tasteru, i citanje pri pokretanju...
sedin
Penjem se :)
Penjem se :)
Posts: 87
Joined: 28-07-2010, 17:01

Re: upravljnje DC motorima ?

Post by sedin »

fala pedja089
idem da izgradim sklop do kraja a onda cu da probam kod:

Code: Select all

SYMBOL T1=PORTA.0 'T1 do T4 polozaji grebenastog prekidaca
SYMBOL T2=PORTA.1
SYMBOL T3=PORTA.2
SYMBOL T4=PORTA.3

SYMBOL T11=PORTB.2 'T11 do T14 tasteri
SYMBOL T12=PORTB.3
SYMBOL T13=PORTB.4
SYMBOL T14=PORTB.5

SYMBOL PLUS=PORTB.0  
SYMBOL MINUS=PORTB.1

OUTPUT PLUS
OUTPUT MINUS

TP VAR BYTE '- trenutna pozicija
TZ VAR BYTE '- zadata pozicija

TZ.0=T1
TZ.1=T2
TZ.2=T3
TZ.3=T4
TZ=~TZ


Start:
TP.0=T1
TP.1=T2 
TP.2=T3
TP.3=T4

TP=~TP ' invertuj tako da 1 bude taster koji je stisnut ili TP.0=~T1

IF T11 =0 THEN
TZ=%00000001
ELSEIF T12=0 THEN
TZ=%00000010
ELSEIF T13=0 THEN
TZ=%00000100
ELSEIF T14=0 THEN
TZ=%00001000
ENDIF

IF TP<TZ THEN
HIGH PLUS               'Vrti u jednu stranu

ELSEIF TP>TZ THEN
HIGH MINUS             'vrti u drugu stranu

ELSE
'zaustavi
ENDIF
PAUSE 100
GOTO Start
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7874
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: upravljnje DC motorima ?

Post by pedja089 »

Postavi sve izlaze na poznata stanja odmah kad ih proglasis izlazom, da ne bi motor trzao na pocetku...
A i motor bi trebao da stane kad dodje u odgovarajucu poziciju.
Komentar Zaustavi ga nece zaustaviti, moras napisati komandu koja ce to da uradi...
sedin
Penjem se :)
Penjem se :)
Posts: 87
Joined: 28-07-2010, 17:01

Re: upravljnje DC motorima ?

Post by sedin »

jeli dovoljno samo ?

Code: Select all

ELSE
LOW PLUS
LOW MINUS
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7874
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: upravljnje DC motorima ?

Post by pedja089 »

Da...
sedin
Penjem se :)
Penjem se :)
Posts: 87
Joined: 28-07-2010, 17:01

Re: upravljnje DC motorima ?

Post by sedin »

fala na strpljenju
upravo probam da compajliram ali imam greske u labelama ELSEIF:

Code: Select all

ERROR Line 48: Syntax error. (DC upravljnje.pbp)
ERROR Line 51: Redefiniton of LABEL ELSEIF. (DC upravljnje.pbp)
ERROR Line 51: Syntax error. (DC upravljnje.pbp)
ERROR Line 54: Redefiniton of LABEL ELSEIF. (DC upravljnje.pbp)
ERROR Line 54: Syntax error. (DC upravljnje.pbp)
ERROR Line 64: Redefiniton of LABEL ELSEIF. (DC upravljnje.pbp)
ERROR Line 64: Syntax error. (DC upravljnje.pbp)
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7874
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: upravljnje DC motorima ?

Post by pedja089 »

Sad sam prekopirao kod sa foruma kompajlirao i nema nikakvih problema...
sedin
Penjem se :)
Penjem se :)
Posts: 87
Joined: 28-07-2010, 17:01

Re: upravljnje DC motorima ?

Post by sedin »

Mozda ja imam problem sa samim MCS pogledat cu da instaliram neku drugu verziju
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7874
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: upravljnje DC motorima ?

Post by pedja089 »

guglaj pbp 2.60 sonsivri...
Post Reply