|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
king25 Član
Pridružen-a: Ned 18 Jul 2004 1:06 Prispevkov: 569 Aktiv.: 2.55 Kraj: Celje
|
Objavljeno: Čet Jul 20, 2017 2:45 pm Naslov sporočila: Delta PLC Ladder |
|
|
Pozdravljeni,
Imam vprašanje glede programiranja deltinih PLC-jev v ladder.
Pri programiranju sem naletel na eno težavo in sicer, da bi morala 2 programa delovati ločeno z izbirnim stikalom RESET/AUTOMATIK (0/1).
Delovati bi moralo tako:
Če imam izbirno stikalo X7=0 bi moral delovati program od Network 1 do 3.
Ko pa preklopim stikalo X7=1 pa bi moralo delovati od Network 4 do 7.
Sedaj ne deluje, ker ni nekako ločeno.
Če izbrišem drugi program potem dela prvi brez težav in obratno.
Prosim za nasvet kaj bi moral dodati, da bi delovalo oboje.
Opis: |
|
Download |
Ime datoteke: |
test_00.pdf |
Velikost datoteke: |
164.29 KB |
Downloadano: |
8 krat |
|
|
Nazaj na vrh |
|
|
igo Član
Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3638 Aktiv.: 17.05
|
Objavljeno: Čet Jul 20, 2017 3:49 pm Naslov sporočila: |
|
|
Teh PLC-jev še nisem programiral in ne poznam sladic, ki jih ponuja ta serija.
Program vedno teče po vrsti od zgoraj navzdol. Obstaja več načinov, da se nek del kode izvrši ali ne, glede na pogoje.
Da ne tlačiš povsod nekega X-- pogoja, raje preglej Programming Manual, če obstajajo JMP ukazi.
Pri obsežnejših kosih potem samo narediš:
----lX01l-------(JMP Label1 // če je X01 aktiven, skoči na lokacijo Label1
...
... del programa, ki se ne sme izvesti, če je X01 aktiven
...
Label1
-----l/X01l------(JMP Label2 // če X01 ni aktiven, skoči na lokacijo Label2
...
... del programa, ki se ne sme izvesti, če X01 ni aktiven
...
Label2
... nadaljevanje programa.
Dodano: Sem pogledal Programming Manual.
Uporabi ukaz CJ condition jump.
In ne skači nazaj, saj se med ciljno Labelo in ponovnim skokom nazaj vhodi in izhodi NE spremenijo, kar lahko zacikla program. Raje uporabi FOR-NEXT loop zanko, če moraš kaj ponoviti. CJ Skok nazaj ob neposrečenem pogoju ne vrne vedno opozorila ali napake pri programiranju, samo program obtiči v zanki in se ne odziva na vhode.
(Pre)Skok naprej je dosti varnejši.
_________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor |
|
Nazaj na vrh |
|
|
king25 Član
Pridružen-a: Ned 18 Jul 2004 1:06 Prispevkov: 569 Aktiv.: 2.55 Kraj: Celje
|
Objavljeno: Čet Jul 20, 2017 5:08 pm Naslov sporočila: |
|
|
Hvala za odgovor bom probal kar si napisal. Sem sicer zelen v tem ampak se moram enkrat naučiti
Prvič se srečujem s to vrsto da bi recimo uporabil manula in automatic način.
|
|
Nazaj na vrh |
|
|
igo Član
Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3638 Aktiv.: 17.05
|
Objavljeno: Čet Jul 20, 2017 6:22 pm Naslov sporočila: |
|
|
Tisti CJ boš mimogrede osvojil. V iskalnik po dokumentu vpiši "jump" in boš našel več primerov.
Ročno / Avtomatsko delovanje ni problem samo po sebi. Problem so lahko prehodi, ko preklopiš stikalo sredi avtomatskega cikla oziroma v poljubnem položaju vhodov in izhodov v ročnem položaju.
Včasih se nič ne more polomiti in je vseeno, kdaj preklopiš.
Včasih pa je potrebno vklapljati/izklapljati "varna področja", kjer se neka sprememba (ne) sme zgoditi.
Naprimer preveriš, ali so vsi izhodi 0 in vsi vhodi kot morajo/smejo biti. Če je vse na/v pravih položajih, aktiviraš nek Memory block recimo (SET M20).
Šele M20 in X07 vklopita avtomatski način.
..... prvi kup pogojev.... ---(SET M20 // dovoljenje za avtomatsko delovanje
---lM20l---lX07l----(SET M21 // zdaj je avtomatsko
------(RST M20 // takoj resetirati, da mora biti naslednjič spet prvi kup pogojev.
...... drugi kup pogojev .... ----(SET M22 // dovoljenje za ročno delovanje
---lM22l----l/X7l----(RST M21 // zdaj je ročno
----(RST M22 // takoj resetirati, da mora biti naslednjič spet drugi kup pogojev
----l/M21l----(CJ P1 // ce ni M21, skoci na ROCNO. Če je M21, je avtomatsko.
...
... avtomatski del
...
P1 // ROCNO
----lM21l----(CJ P2 // če je M21, preskoci ročno.
...
.... ročni del
....
P2
... nadaljevanje programa.
Na tak način zagotoviš, da morebiten preklop stikala česa ne polomi, saj se spremenjen položaj stikala upošteva šele, ko je vse v svojih izhodiščih. Tako se bo avtomatski cikel lepo dokončal, nov se ne bo začel, ampak bo vse obstalo v položajih iz katerih lahko posamezne izhode krmiliš ročno. Ko boš nehal rogoviliti, boš spet moral pospraviti izhode v stanja, v katerih se bo sploh preverjalo stanje X07 in ob izpolnjenem pogoju začelo nov avtomatski cikel.
_________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor |
|
Nazaj na vrh |
|
|
king25 Član
Pridružen-a: Ned 18 Jul 2004 1:06 Prispevkov: 569 Aktiv.: 2.55 Kraj: Celje
|
Objavljeno: Čet Jul 20, 2017 6:42 pm Naslov sporočila: |
|
|
Hvala ti za nazoren primer mi bo v veliko pomoč in že poizkušam kaj bo ratalo.
V mojem primeru se ne more nič zgoditi oz. polomiti.
Program mora biti tak, da gre v avtomatiki najprej en cilinder do konca, nato drugi do konca in na koncu oba nazaj v začetni položaj. Tako se vse skupaj ponovi od začetka dokler se ne prekine avtomatika.
Ko pa se avtomatika ugasne cilindra počakata v nekem položaju in bi nato v ročnem načinu držal recimo RESET gumb, da se cilindra pomakneta v začetni položaj in šele nato bi lahko spet dal avtomatski režim, da gre vse od začetka.
Po vsej verjetnosti pa bom imel 3 cilindre ampak delovanje je isto.
Sporočim če kaj uspe
|
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 69 dni
Powered by phpBB © 2001, 2005 phpBB Group
|