Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino - tutorijali, pitanja, primjeri i projekti
(03-05-2018, 05:03 PM)ddanijel Wrote: Mozes i u toku rada da ga resetujes ali onda moras posle toga opet da uradis init mcp-a sa  mcp.begin(0x27); ....
Ja sam radio neki 12kanalni dc power switch sa mcp23017 i ono sto me je odusevilo , a i zasto sam bas njega i uzeo da koristim, sto ako dodje do reseta samog atmega na arduinu, to ne menja stanja na izlaznim pinovima MCP-a tako da sve od periferija sto se kontrolise iza mcp ostaje na svojim zadatim stanjima.

@ddanijel,

To inače važi za bilo koji in/out ekspander, od šift registra pa do ovih sa nekim tipom serijske komunikacije (UART, I2C, SPI...).
Svaki od njih će ostati "zaleđen" u poslednjem stanju tako da oduševljenju nema mesta.

Oduševljenje bi moglo jako da splasne ako se na primer resetuje MCU dok neka mašina sa potiskom od par stotina tona juri ka ruci radnika koji je udario po SVE-STOP pečurci, sa iskrenom verom da će je zaustaviti :-)
MCU se upravo resetovao iz Marfijevih razloga, a MCP drži taj ventil uporno kao terijer :-).

Nekoliko stvari koje su pravilo dobrog korišćenja tih stvarčica:

- Šanse da se MCU resetuje sam od sebe treba svesti na krajnji minimum. To se obezbđuje maksimalnom imunizacijom mikro okruženja gde "boravi" MCU. Obično se to radi sa što kraćim vezama oko MCU i niskokapacitativnim galvanskim rastavljanjem svega što odlazi daleko od MCU. Naravno, ima na stotine mera oko toga...
 
- Ako se ipak resetuje, mora da sa svojom "smrću" da obavezno obezbedi "smrt" svojih periferija i to na takav način da ostanu u najbezbednijim stanjima po ljudstvo, potom po mašineriju.

Neki od načina za izvođenje toga su:

1) Vrlo, vrlo pristojan stepen sigurnosti:

- Jedan od pinova MCU se prilikom inicijalizacije proglašava izlazom, stavlja se odmah u LOW stanje i ostaje tako do kraja postojanja "života" MCU.  Obezbeđuje mu se pull-up otpornik. Taj pin u tom LOW stanju drži aktivnim NAPAJANJE ekspandera, na primer preko nekog PNP tranzistora ili slično.
U slučaju reseta MCU, svi pinovi inicijalno postaju ulazi i imaju visoko impendansno stanje. Dotični pin takođe, i tim aktom isključuje napajanje ekspandera.

Tu naravno, kao i svuda uostalom, postoji moguća zamka.
Napajanje ekspandera se može održati u dovoljno opasnom stanju kroz komunikacione linije i njihove pull-up otpornike, ako postoje.
Tačnije, napajanje jezgra ekspandera, posebno onih koji ispravno rade od 2-5V, očuva se kroz interne klamp diode na samom ekspanderu, kuda uđe dovoljno struje da ga održi iznad 2V5, tj. u radnom stanju.
Prilikom konstrukcije takvog sistema se serijski na komunikacione linije stavljaju otpornici reda koju stotinu oma, koji osim željenog efekta inače jako lepo ispeglaju moguće gličeve u komunikaciji.
Potom se izvrši test tog reset sistema i ukoliko napajanje još uvek bude iznad 1V, onda se paralelno napajanju ekspandera dodaje i bleeder koji će zasigurno oboriti ispod 1V u tom sigurnosnom stanju.

2) Visok stepen sigurnosti:
- Hardverski retrigerabilni monostabilni multivibrator, sa AC spregom vezan za jedan od pinova MCU, iz kog mu na svakih x milisekundi (prema bezbedonosnoj potrebi) stiže watch-dog impuls koji monoflop drži u aktivnom stanju, obezbeđen u nekoj od time interrupt rutina u MCU.
Izostanak tog impulsa neopozivo resetuje monoflop koji drži napajanja svih periferija i izvršnih organa.

Postoje i još viši stepeni obezbeđenja ali za sada je dovoljno za upoznavanje sa tom temom.

Zlatna pravila su da se sve linije obezbeđenja drže N.C. (normally closed) konfiguracijom tastera, kontakata i ožičenja, tj. u slučaju kidanja linije sve odlazi u stop stanje.
Po mogućstvu treba "odseći" i power napajanje u svim sisemima koji ostaju u bezbednom stanju sa neaktivnim izvršnim organima.
-------------------------------------------
Na žalost, postoje i idioti od konstruktora mehanike, pneumatike i hidraulike na mašinama (naravno i elektrike, da mi ne kukaju mašinci :-), koji su se nekom volšebnom metodom "provukli" na tržište sa svojim "znanjem".

Oduvek su postojali, ma iz koje zemlje poticali, tj. nagledao sam se tih s*anja kod mnogih "Nemac, Japanac, Liliputanac to napravio" mašina.

Mnogo popi*dim kad mi neko pomene nešto u fazonu "Nemac to napravio", ili ma koji drugi predstavnik nekog naroda, mada najčešće čujem za tog "Nemca", kao da je jedan Nemac sve mašine napravio :-).

Nama je bio problem dok smo napravili prvog Nemca. Posle tog imamo daleko manje probleme sa tehnikom :-)
Dakle, za više od tri decenije rada, nagledao sam se budalaština sa svih kontinenata (a i sam sam ih pravio :-), te je zaključak da glupost nema geografskih ograničenja :-)
........................

Evo upravo se bavim remontom upravljanja mašine kod koje postoje dva hidraulična ventila koji u pasivnom, beznaponskom stanju održavaju visok pritisak na dve od ukupno četiri pumpe, potencijala 110KW!


.pdf    R6000_hidraulic.pdf (Size: 523,75 KB / Downloads: 12)

"Pametnjaković" od konstruktora, iz Italije (1988 godina, "Italijan napravio" :-) je smetnuo sa uma da će inercija dva elektromotora od po 55KW, koje prinudno isključim iz bilo kog razloga, produžiti kretanje alata sa potiskom od 1200 tona  bar još za 20 cm po njihovom isključenju.
Naravno da ću pri tom držati u aktvnom stanju ta dva kritična ventila, ali šta ako nestane napajanja??

U prevodu: u slučaju nesrećne koincindencije Marfijevskog tipa, da je "ljudski faktor" premostio inicijalnu hidrauličnu zaštitu, gurnuo ruku tamo gde ne treba, ukapirao svoje s*anje pa udario pečurku, ako baš u tom momentu nestane struje, neće mu se majka veseliti.

Tu ja nikakvim upravljanjem ne mogu ništa učiniti, bez obzira što sam sve učinio da ostane bezbedno ako postoji napajanje.
Ostaje da verujem da se takav splet okolnosti neće dogoditi, jer bi remont tog dela sistema na ono kako bi trebalo da izgleda koštalo koliko i mašina u trenutnom stanju, a nema spremnih da plate to...
----------------------

Šalu na stranu, pošto to nisu stvari za šalu.
Postoji određen broj mašina koje imaju opasne hodove u pasivnom beznaponskom stanju izvršnih elemenata i takve su velika opasnost po ljudstvo, zahvaljujući "pametnim" konstruktorima.

Na sve moguće načine prvo treba voditi računa o bezbednosti rukovaoca, potom svega ostalog, ako je ikako moguće to izvesti.

Nema veze da li je Arduino, PIC, STM32, relejna logika ili bilo koja druga platforma u pitanju. Potreba za čuvanjem rukovaoca je univerzalna.

Nadam se da će ovaj tekst biti od koristi, kako tebi tako i drugima...

Pozdrav drugar,
Macola
Reply


Messages In This Thread
RE: Arduino - tutorijali, pitanja, primjeri i projekti - by Macola - 03-05-2018, 11:12 PM

Forum Jump:


Users browsing this thread: 25 Guest(s)