07-18-2017, 01:12 AM
(07-17-2017, 10:22 PM)Makso Wrote: Stigoh i ja da se javim, puno postova iznad...
Probaću nešto nacrtati za početak samo da krenem s mjesta, mislim na šemu, pa ćemo onda gledati šta dalje.
Već sam gore napisao, ići ću na neki osnovni plc za početak, da imam neku osnovu za dalje, klasični digitalni izlazi i ulazi, tako isto i sa analognim pinovima, i samo ću ostaviti konektor da mogu priključiti lcd, definitivno to je sve što hoću za početak.
E sad ono što me malo buni je to šta se sve treba kasnije dodatno pisati i prepravljati u samom kodu kada se koristi MAX i MCP?
A do tada neka neko prebaci ove postove u novu temu.
Makso,
Koncepcija nekog PLC ne može biti toliko univerzalna ukoliko nemaš gomilu raznih hw modula i snažan MCU sa adress-data bus-om koji se proteže kroz sve prikačene module.
Gde nisu potrebni neki posebno brzi događaji, koriste se razne kraće dometne ili dalje dometne komunikacije sa manje žica, poput: MODBUS, CAN, CAN open i td, i td...
Onaj moj mini PLC, koga si uzeo kao prvobitni uzor, prvenstveno je bio korišćen za manje brizgaljke za plastiku, gde je uglavnom bilo potrebno nešto digitalnih IN-OUT, sa visokom imunošću na " elektronsko đubre" od smetnji, i eventualno do dva pwm za pokretanje dva servo ili proporcionalna hidr. ventila. (pokreće već bar 18-19 godina nešto oko koju stotinu nekih mašina)
Kapacitet mu je bio 24 dig IN-OUT tipično.
Za neke masivnije potrebe je rađen bitno veći model sa gomilom ADC, DAC, IN-OUT i slično, prema potrebama.
Za neke prelazne varijante od 24-48 IN-OUT, malom miniju sam "na sprat" stavljao ekspandersku pcb sa npr. dva MCP23S17. Tako je "minić" mogao da se rastegne do nekih 50-tak IN-OUT, a ranije su bila 4 PCF8574A (8 bit I2C exp.).
-----------------------------------------
Osnovna stvar je da odrediš ciljnu grupu sprava koje će pokretati neki PLC.
Apsolutna univerzalnost ne postoji a dovoljno dobru možeš dobiti pomoću skupih PLC renomiranih proizvođača, gde dodatni specijalizovani moduli obično koštaju daleko više nego sam master PLC...
Kada iskristališeš šta to želiš kontrolisati, lako gradiš neki PLC.
A ako gradiš modularno sa na primer nečim kao što je blue-pill ili neki arduino manjeg kapaciteta, onda ostavi jedan USART, jedan I2C, jedan SPI, jedan ADC, 4 pwm i na to kači module po potrebi. Kada sve to rezervišeš od pinova, malo toga će ti ostati slobodno na master MCU...
Pojavom ovih novih i ultrajevtinih MCU, poput blue-pill ili arduino mini i sl. dobija se mogućnost multi procesorske saradnje sa više komada takvih, pomoću na primer jako "tvrdog" MODBUS (hardverski lejer je RS485 koji se može vući do 1200 metara sa 9K6 brzinom, a na koju desetinu metara će raditi lagodno sa 115k200).
Međutim, to kao i sve na ovom svetu ima jednu nezgodnu manu: mora se pisati više softvera, uskladiti međusobna saradnja modula po svim pitanjima, a pogotovo po pitanjima kada s dogodi neka greška bilo gde. To pak povlači gomilu koda i veoma mnogo vremena za test pouzdanosti.
Privatno, daleko više volim jedan MCU koji je brži i sa mnogo više pinova, jer se sve drži u "jednoj kutiji" i lakše se vlada tim.
Naravno i neuporedivo brže radi.
Sada već postoji gomilčina 32 bit MCU, sa dve tone pinova na sebi i gomilom MHZ takta, sa hw FPU i još ko zna kakvih čuda poput Texas "Sitara" i slično.
Na žalost, tu je situacija kao kod ovih novih "pametnih" telefona: nudi ti kameru, internet, fotoaparat, igrice, a do samog telefona jedva dođeš kroz meni, i to kad ti najviše treba to baguje po malo :-)
Ti besovi su napravljeni kao da se čitav život nameravaš baviti jednim od njih i traže da se masivno zagreje stolica (ne ona retka :-) ako misliš da im priđeš na niskom nivou koji je najefikasniji.
Zato se nemoj razočarati kada neki besan ARM Cortex (sa visokim sw pristupom) neku savim jednostavnu stvar izvrši sporije od običnog malog 8 bit arduinčeta, pogotovo kod nekih jednobitnih akcija.
Zbog visokog pristupa, koji je lakši i nudi veću kompatibilnost među modelima, onaj moćni na 180MHz "pojede" 50 instrukcija za istu stvar koja se kod onih malih 8 bit, u asm odradi sa jednom instrukcijom. Kada mu se priđe na vrlo niskom nivou, onda je to "zver".
Ne treba pucati topom na komarca, i ako sad top jevtino košta, jer sve ima svoju dimenziju, posebno zbog besprekidne promene i pojavljivanja novih modela mesečno.
Si Labs je na primer firma koja mnogo radi za vojsku. Imali su još 2005. garituru 8 bit MCU na 100MHz sa na primer 24 bit ADC... Sigurno to nisu slučajno pravili. Sve ima svoju upotrebnu svrhu.
Mene matorog već boli glava jer ponovo grejem stolicu da na vrlo niskom nivou ukrotim raznorazne Cortex Mx.
Od onih HAL biblioteka se ježim, a ništa bolje ne mislim o celom Arduino konceptu.
Ako tačno znaš šta želiš raditi sa tim PLC kog želiš kreirati, daćemo ti ovde jezgrovit i dobar savet u roku od pola sata, da ti sve radi na keca, što se hardvera tiče.
Ali najteže je dogovoriti se sa samim sobom i kad se to dogodi ostalo je samo rutina.
Pozz