Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino - tutorijali, pitanja, primjeri i projekti
Evo kao sto sam i obecao, ali sa malim zakasnjenjem sema uPLC-a. Odmah da napomenem da na semi ne kondenzatora za rasprezanje, dolaznog napajanja, optokaplera za ulaze i izlaze. Sve se manje vise svodi na digitalnu elektroniku, gde se posle mogu dovoditi moduli ulaza i izlaza.
PLC je projektovan tako da iskoristi maksimum od Arduino-nano-a, a opet da ima dovoljan (nadam se) se broj ulaza/izlaza i mogucnost prosirivanja.
Sa seme se moze videti da PLC ima 16 diskretnih izlaza (izlazi od HC595 oznaceni kao OUT_xx), 16 diskretnih ulaza (ulazi u HC165 oznaceni kao INPUT_xx), 8 galvanski izolovanih analognih ulaza (ulazi u MCP3208 oznaceni kao AIN_x). Sa seme se moze videti da su analogni ulazi samo dovedeni na ulaze u AD. Mrzelo me da crtam. Ovde je neophodno postaviti ESD i RC zastitu + prekidace (idealno jedan kod salter) za otpornicima prema GND_ISO (za izbor strujnog ili naponskog rezima rada). Predlozeni AD konvertor je onaj koji sam imao u biblioteci, pa je samo zato on izabran. Nema drugog razloga.
Sam aduino na sebi ima FT232 koji je povezan na PD0 i PD1 od ATMEGA-e. Ova dva pina sam iskoristio za RS485 komunikaciju na taj nacin sto sam ih odveo na bafere HC125. Pomocu pina RS485_EN se ukljucuje RS485 komunikacija. Na samom arduinu se nalaze otpornici od 1k na ovim linijama, tako da u principu mogu da se koriste jedna ili druga komunikacija. Sam RS485 je galvanski izolovan. Ono sto je izuzetno interesantno sa semi jeste upotreba iCoupler-a koji je namenski napravljen za  galvansku izolaciju RS485 i takodje u sebi sadrzi i drajver za komunikaciju. Drajver je uvek u stanju prijema, tako da pri implementaciji moze da se vrsi kontrola poslatog podatka, a i da se napravi malo robusniji protokol. Ja npr. kada pravim neki protokol na RS485, nikada ne koristim interapt od serijskog slanja, vec samo od prijema. Na taj nacin mi se uvek generise interapt prijema kada nesto posaljem. Podatak koji sam poslao, primio sam nazad. Ako su ta dva podatka ista, salje se dalje. Ako nisu, doslo je do sudara podataka na magistrali. Takodje moze da se vidi da je RS485 malo zesce zasticen od ESD-a i EMI-a. Polarizacija i terminacija se postavljaju po potrebi. Vrednosti koje su date u semi su PROFIBUS standard. Ja npr. nikada ne stavljam te komponente na PCB, vec kupujem DB9 konektore za PROFIBUS koji imaju u sebi i terminaciju i polarizaciju i prekidac za aktivaciju.
Takodje je ubacen i RTC koji je povezan na I2C. I2C port je preko drajvera izvucen na konektor za eventualno prosirenje uredjaja.
Nesto malo oko ulaza i izlaza. Svi ulazi i izlazi su postavljeni na SPI. Sto se tice diskretnih U/I, postoje 4 sift registra (IC1, IC2, U1 i U2). Kod ove situacije moj predlog je da se preko SPI salje 5 bajtova, pri cemu bi prvi bajt bio kontrolni, npr. 0xB1. Kada se prodje ceo SPI lanac, prvi poslat bajt mora da se vrati nazad. Ako se vrati nazad, to znaci da je SPI lanac OK. A ako se ne vrati, onda znaci da je lanac u prekidu. Izlaz iz poslednjeg sift registra je doveden na jedan bafer, posto sam registar nema stanje visoke impedanse, a da bi se lako izvrsila sprega sa AD-om, onda je neophodno da sve neaktivne periferije na SPI budu u stanju visoke impedanse (na izlaze mislim). Kada se na PD1 postavi "0", SPI je dodeljen diskretnim U/I, a kada "1" onda je dodeljen analognim.
Ideja obrade U/I je sledeca. Aktivira se jedan tajmer na svakih 1-10ms (zavisi od potrebe). Kada se generise interapt od TMR, inicira se SPI komunikacija. Prvo se prodje diskretni U/I, pa onda analogni ulazi i tako na svaku periodu TMR.
Izolacija AD-a je izvrsena isolovanjem SPI linije upotrebom iCoupler-a. Njih koristim vec 5 godina i mogu vam reci svima da je to po meni revolucija u digitalnoj izolaciji. Kola su jeftina i struja polarizacije im je nikakva, sto znaci da mogu lako da se sprezu sa druzim kolima, bez upotrebe dodatnih tranzistora kao kod opto kaplera.
Mislim da sam sve rekao. Mozda sam nesto i preskocio. Opet bih da ponovim da ovo nije detaljna elektricna sema, koja veoma lako moze da se razradi u detaljnu.
Ako bilo ko ima bilo kakav komentar, sugestiju, primedbu ili bilo sta, otvoren sam za sve vidove komunikacije.

P.S.Neiskorisceni pinovi na Arduino-u:
PD2 - INT0
PD3 - COMPARE OUT / INT1
PD5 - COMPARE OUT
PD6 - COMPARE OUT
PB0 - CAPTURE INPUT
PB1 - COMPARE OUT
PB2 - COMPARE OUT
Sve brzi U/I - sve ukupno 7 komada.

P.P.S. Ovo je moj predlog jednog malog PLC-a koji sam krstio kao uPLC. Predlagac ne mora da prihvati ovaj koncept, a moze i da ga prihvati.


Attached Files
.pdf   uPLC_V1.pdf (Size: 95,64 KB / Downloads: 41)
Reply


Messages In This Thread
RE: Arduino - tutorijali, pitanja, primjeri i projekti - by vojinilic - 07-24-2017, 10:57 PM

Forum Jump:


Users browsing this thread: 16 Guest(s)