Nyt on CNC-foorumin tukeminen helppoa!
Maksu onnistuu PayPalin kautta myös kortilla
Konemies kiittää

PLC:n ohjelmointi OSA 1

Aloittaja Jonne, 03.11.13 - klo:00:18

« edellinen - seuraava »

0 Jäsenet ja 1 Vieras katselee tätä aihetta.

Jonne

PLC:n ohjelmointi OSA 1

Tällä foorumilla ei hirveämmin ole ollut logiikkaohjelmoinnista juttua, eikä itseasiassa koko netistäkään taida löytyä aivan kiusaksi asti opetusmateriaalia aiheesta. Joten tässä nyt kaikille foorumilaisille kädestä pitäen logiikat, HMI:t ja muu niihin liittyvä ohjelmaesimerkkeineen. Viimeisessä osassa (jonka numero on tässä kohtaan avoin) sitten tehdään täydellinen sorvin sähköinen syöttövaihteisto.

Esimerkit ovat tehty Fatekin logiikoille WinProladder-ohjelmistolla (...ihan jäävi en sitten ole Fatekin maahantuojana ;) ...Seppo [Konemies] siirtää nämä HowTo-aloitukset sinne mihin kuuluu), mutta kaikki esimerkit ovat sinällään kaikkien muidenkin logiikkavalmistajien tuotteille käännettävissä.


PLC

PLC:n (Programmable Logic Controller), ohjelmointavan logiikan tarina alkaa suurinpiirtein sähkön keksimisen ajalta releiden muodossa. Ensimmäiset modernit digitaaliset logiikat ovat saapuneet markkinoille 60-luvulla korvaamaan releillä tehtyjä. Samasta syystä symbolinen kuvaus muistuttaa hyvin paljon kytkentäkuvaa keloineen ja kärkineen.


Tässä se ensimmäinen 1968 (lähde: http://gozarian.net/)


...ja tässä samalta aikakaudelta matkamalli (ilmeisesti kuorma-autolla matkailuun?) (lähde: http://gozarian.net/)


Moni varmaan kysyy miksi kukaan enää käyttäisi jotain kivikautista releremputtimen digitaalista vastinetta, etenkään kun vuosi 2013 ja kaupasta saa Über-ARM-Linux-Arduiro-FGPA-hypertietokoneita, joissa on enemmän paukkua kuin kaikissa edellisessä Playstationeissa yhteensä? Syy on melko yksinkertainen, missään "normaalissa" koneessa et tule tarvitsemaan 1000MIPSin laskentatehoa, etkä sen enempää Facebook statuksen päivitysmahdollisuutta :D

Toinen huomionarvoinen pointti PLC:n ja mikrokontrollerin välillä on, ettei sinun tarvitse ymmärtää ohjelmoinnista juuri mitään. Sinun ei tarvitse tietää mitä kirjastoa tarvii käyttää, että saat jonkin portin pinnin ylös tai haluat lukea enkoderia. Koneen rakentamisessa PLC:llä tekee saman asian tunnissa, mihin menee C:llä päivä. Tietysti PLC:llä ei tietenkään voi tehdä samoja asioita kuin ohjelmointikielillä, sillä se on nimenomaa IO:n käsittelyä varten.


Fatekin FBs-sarjalainen logiikka

Etuna PLC:ssä nähden mikrokontrolleriin on kunnolliset lähdöt ja tulot. Voit ohjata suoraan venttiilejä, keloja, muita härpäkkeitä suoraan logiikasta. Laajennusmoduuleilla voit lisätä IO:n (sisään-/ulostulojen) määrää ja tyyppia, digitaalista tai analogista. Sisääntuloiksi voi valita NPN/PNP (kansaomaisemmin tulkitaanko 0V vai 24V "päällä"-tilana).


Kaikkea rompoolia saa liitettyä logiikoihin, servo-ohjauksesta langattomaan ZigBeehen


Tikapuu


Pieni pätkä kokeellista ohjelmaa liittyen syöttövaihteistoon


PLC:n ohjelmaa kutsutaan tikapuuksi sattuneesta syytä, se näyttää siltä. Kahden riman väliin rakennetaan ohjelma symbolisessa muodossa. Tikapuu yksinkertaistettuna koostuu kärjistä, keloista sekä funktioista (näistä myöhemmin lisää). Signaali kulkee askelmalla aina vasemmalta oikealla. Kärjen ja kelan käyttö vastaan abstraktiotasolla releen toimintaa.

PLC ajaa tikapuuta sykleissä (Scan Time). Sykli tarkoittaa että PLC ensin lukee tulojen tilat yhtäaikaa ja tallentaa ne välimuistiin. Tämän jälkeen PLC suorittaa (vasemmalta oikealla, ylhäältä alas) tikapuun niillä tulojen arvoilla, jotka on välimuistissa. Kun tikapuu (ja sen kaikki aliohjelmat) ovat suoritettu päivittää PLC lähdöt yhtäaikaa. PLC on siis eräällä lailla moniajava. Poikkeuksena rekisterin käsittely tikapuussa tapahtuu välittömästi kyseisellä askelmalla (...sekä nopeat tulot ja lähdöt kooderin lukua tai liikeohjausta varten, mutta niistä ei kannata vielä päätä vaivata ;) )

Lähdetään perusasiosta liikkeelle, ensimmäisenä PLC:n bitit, eli kärjet ja kelat, joilla voi olla tila "0" tai "1". Suluissa voiko bitti esiintyä kärkenä, kelana vai molempina tikapuussa:

X = fyysinen tulo logiikassa (kärki)
Y = fyysinen lähtö logiikassa (kärki tai kela)
M = apubitti, pelkästään logiikan sisällä (kärki tai kela)
T = ajastinbitti, ilmaisee että ajastin on saavuttanut sille osoitetun arvon (kärki)
C = laskuribitti, ilmaisee että laskuri on saavuttanut sille osoitetun arvon (kärki)

S = steppi-bitti  (tästä ei tarvitse välittää toistaiseksi)
TR = väliaikainen bitti (...eikä kyllä tästäkään)

Jos ihmettelet miksi X:ää ei voi käyttää kelana tikapuussa, johtuu se ihan siitä, ettet voi vetää tuloa päälle. Sama koskee ajastimia ja laskureita. Simple as that ;)

Näiden kaikkien bittien kärjille voidaan antaa määre, miten ne käsitellään tikapuussa; onko tulo sulkeutuva (A), avautuva(B), tulon nousevalla (TU) vai laskevalla reunalla (TD)? Koska diagrammi kertoo enemmän kuin tuhat sanaa, katsotaan ensin mahdolliset kärjet:



Kuten kuvasta näkyy, ylimmäisenä on X0-tulo, joka on nousee "päälle". "t" tarkoittaa sykliä.

Miten tikapuussa tuo "päällä" käsitetään riippuu valitusta kärkimääreestä:

A (normaali, sulkeutuva) : X0 on "päällä" = tikapuussa X0 "päällä"
B (käänteine, avautuva) :  X0 on "päällä" = tikapuussa X0 "pois"
TU (nousevalla reunalla) : X0 muuttuu tilaan "päällä" = tikapuussa X0 on "päällä" yhden PLC:n syklin ajan (siis antaa yhden pulssin tikapuuhun)
TD (nousevalla reunalla) : X0 muuttuu tilaan "pois" = tikapuussa X0 on "päällä" yhden PLC:n syklin ajan (siis antaa yhden pulssin tikapuuhun)

Todennäköisesti kukaan ei saanut mitään tolkkua koko asiasta, joten siirrytään tyhjentävään esimerkkiin. Emme ole vielä käsitelleet keloja, mutta eiköhän ne samalla tässä selviä:




Kuten hitaampikin voi huomata siinä on pirusti nappulaa ja valoa. X0:aa pitää painaa, että valo Y0 palaa. X1:stä kun painaa, Y1 sammuu. Y2-valon sytyttäminen vaatii X4:n painamista, mutta voidaan sammuttaa yhtäaikaa painamalla X2:sta ja se taas voidaan ohittaa painamalla X3:sta. (EDIT: pikkuvirhe tulojen kanssa)

Ja tässä sen käännös logiikalle.





Jos otetaan vähän haastevampaa seuraavaksi:




Kyseessä tyypillinen moottorin start/stop-kytkentä pitoreleellä. Tikapuulla homma käy seuraavasti:




Kuten huomataan, Y0 kelalla on myös kärki. Kun X5:nen nousee, se kytkee Y0:n päälle. Koska PLC kirjoittaa kaikki lähdöt syklin lopuksi, on Y0 päällä uuden syklin alkaessa. X6 katkaisee pitopiirin, jolloin Y0 putoaa pois.

Nyt varmaan selvisi kelojen merkitys. Keloilla voi myös olla määreitä kuten kärjillä. Tässäpä lista:




-( )- kela Y0 kytkee, kun se saa signaalin
-(/)- kela Y0 kytkeen, kun se ei saa signaalia
-(S)- kela Y0 jää vetämään, kun se saa signaalin
-(R)- kela Y0 vapauttaa, kun se saa signaalin

Normaalista kahta ensimmäisen tyypin kelaa ei käytetä kuin kerran tikapuussa, sillä eihän releissäkään ole kuin yksi kela. Mikä keloja on useampi, viimeinen tikapuussa esiintynyt on vaikuttava. R- ja S-tyypin keloja voi tikapuu olla puolillaan, niissäkin viimeinen määrää lopputuloksen.

Nyt varmasti joku keksi, että edellä olleen moottorinkytkennän voi tehdä R- ja S-tyypin keloilla. Tässäpä se, toimii täysin samoin kuin yllä oleva:




Seuraavassa osassa sitten funktiosta ja rekistereistä!



Ps. WinProladderin voi käydä lataamassa täältä:
http://www.fatek.com/en/download.php?f=data/ftp/PLC/WinProladder/software/WProlad321-16001-ENU.zip

...ja ohjekirjat:
http://www.thelentech.com/Fatek/FBs%20Part%20I%20Hardware.pdf
http://www.thelentech.com/Fatek/FBs%20Part%20I%20Instruction.pdf
http://www.thelentech.com/Fatek/FBs%20Part%20II%20Advanced%20Application.pdf

Delta Electronics -tuotteet www.thelentech.fi - Blogi ennenmikrotietokoneita.blogspot.fi

mpr

HIENOA, JONNE

onko deltan logiikat jääny pois valikoimasta?

Konemies

Kiitokset Jonne hienosta koulutusmateriaalista! Kuten eilen juttelimme, niin katson jossakin välissä, että perustanko foorumille oman alueen näille. Jos niin teen, niin siirrän tämä jutun ja muut vastaavat sinne.

Lisää vaan tällaisia teiltä muiltakin! Jonne olikin tuon nimennyt Osa ykköseksi, joten jatkoa varmasti seuraa. 
www.cnc-tekniikka.com on maailman suurin suomenkielinen cnc-tekniikan harrastajien keskustelufoorumi

Jonne

Lainaus käyttäjältä: mpr - 03.11.13 - klo:10:22
HIENOA, JONNE

onko deltan logiikat jääny pois valikoimasta?

Kiitos!

Ei suinkaan, muta tuo Fatek osuu paremmin ehkä harrastajalle, editorisofta on 10 kertaa yksinkertaisempi kuin Deltalla ilman turhia härpäkkäitä ja logiikat ovat jonkin verran halvempia.


Lainaa
Kiitokset Jonne hienosta koulutusmateriaalista! Kuten eilen juttelimme, niin katson jossakin välissä, että perustanko foorumille oman alueen näille. Jos niin teen, niin siirrän tämä jutun ja muut vastaavat sinne.

Lisää vaan tällaisia teiltä muiltakin! Jonne olikin tuon nimennyt Osa ykköseksi, joten jatkoa varmasti seuraa.

Jatkoa seuraa, mutta en ole varma millä aikajänteellä. Tänään ainakin rekisterit & funktiot.


Ohjelmaesimerkkejä saa ehdottaa, työjakaluvaihtajat ovat varmaan lukijoiden mieleen? Ehkä automaattisahan logiikka?
Delta Electronics -tuotteet www.thelentech.fi - Blogi ennenmikrotietokoneita.blogspot.fi

TeacDance

Lainaus käyttäjältä: Jonne - 03.11.13 - klo:00:18




Y2-valon sytyttäminen vaatii X4:n painamista, mutta voidaan sammuttaa painamalla X3:sta ja se taas voidaan ohittaa painamalla X5:sta.

Miksi tuo sammuu jos painetaan x3? x5 nappia en huomannut vai onko se joku yleinen hätä nappi mistä sammuu kaikki
_________________
Tero Koskela
Ylivieska

YouTube

Jonne

Lainaus käyttäjältä: TeacDance - 03.11.13 - klo:15:58
Miksi tuo sammuu jos painetaan x3? x5 nappia en huomannut vai onko se joku yleinen hätä nappi mistä sammuu kaikki

Ei ole, mutta jos lisäämme jokaisen valon eteen esim. kärjen X7 käänteisenä, sammuvat kaikki valot sitä painetteessa.

Kas näin:

--[ ]-----------------[/]----------( )--
  X0                     X7            Y0 

--[ ]-----------------[/]----------( )---
   X1                    X7            Y1

--[/]--------[ ]------[/]----------( )--
   X2     |   X4       X7            Y2
            |
--[  ]----|
   X3
Delta Electronics -tuotteet www.thelentech.fi - Blogi ennenmikrotietokoneita.blogspot.fi

Jonne

Lainaus käyttäjältä: Jonne - 03.11.13 - klo:16:22
Ei ole, mutta jos lisäämme jokaisen valon eteen esim. kärjen X7 käänteisenä, sammuvat kaikki valot sitä painetteessa.

Kas näin:

--[ ]-----------------[/]----------( )--
  X0                     X7            Y0 

--[ ]-----------------[/]----------( )---
   X1                    X7            Y1

--[/]--------[ ]------[/]----------( )--
   X2     |   X4       X7            Y2
            |
--[  ]----|
   X3


Tai näin...

--[/]------[ ]---------------------------( )--
   X7   |  X0                                  Y0 
          |
          |--[ ]---------------------------( )--
          |  X1                                  Y1
          |
          |--[/]--------[ ]----------------( )--
          |   X2      |   X4                   Y2
          |             |
          |--[  ]-----|
              X3
Delta Electronics -tuotteet www.thelentech.fi - Blogi ennenmikrotietokoneita.blogspot.fi

TeacDance

Juuh silloin se on selvää tietenkin...

No entä tuo jos x3 painaa niin miksi silloin lamppu sammuu jos x4 on painettuna kans?
_________________
Tero Koskela
Ylivieska

YouTube

Jonne

Lainaus käyttäjältä: TeacDance - 03.11.13 - klo:17:36
Juuh silloin se on selvää tietenkin...

No entä tuo jos x3 painaa niin miksi silloin lamppu sammuu jos x4 on painettuna kans?


Ooops, pikkuinen virhe. Hyvä kun huomasit!

LainaaX1:stä kun painaa, Y1 sammuu. Y2-valon sytyttäminen vaatii X4:n painamista, mutta voidaan sammuttaa yhtäaikaa painamalla X2:sta ja se taas voidaan ohittaa painamalla X3:sta. (EDIT: pikkuvirhe tulojen kanssa)

Delta Electronics -tuotteet www.thelentech.fi - Blogi ennenmikrotietokoneita.blogspot.fi

Hirez

Moi Jonne, kiitos hienosta tutorialista. Voisitko käydä aktivoimassa Photobucket-tilin uudestaan, niin saisi nuo kuvat näkyviin.

Kiitti!

Powered by EzPortal
SMF spam blocked by CleanTalk