UPDATE 10/2005: Romanovi Pokornému se tahle strandička moc líbila a vrhli jste se na zdokonalení. Aktuální verze řídí motor posuvu materiálu, odpadávací šoupátko, dávkuje olej na nože, měří teplotu obrobku a upravuje sílu na nože. Místo PICe je zde použit Atmel MEGA-8, čili taktéž 8-bit, ale firmware je už v C, protože jsem s ASM nechtěl ztratit polovinu života :-)
UPDATE 3/2007: Tak jsme konečně dobastlili i control-panel ze 486-ky notesu a propojení 6-ti soustruhů do sítě (RS-485) a následně do PC v kanceláři. Moc se mi to líbilo koukat na monitor a sledovat, jak lidičky makaj :-) Každopádně to všechno přišlo asi na 30000,-Kč, což jsou drobné oproti nějaké profi automatizaci. Nicméně funguje to, celkem efektivně :-)
Tohle je první verze - opravdu jen to prvotní primitivní počitadlo:
Tak mi jednou spolužák po ránu (okolo půl 12-té) napsal na ICQ:
Kavon: Ahoj
Kavon: Mam dotaz
Walda: povidej
Kavon: Potrebujem u sefa
vypnout masinu po xtém počtu kusů
Kavon: Slo by na co veco vymyslet
Kavon: Nejakeho svaba size="2">
Walda: A jaky mas vstup a co je vystup?
Kavon: Jako vstup by byla
hodnota ze spinace size="2">
Walda: A vystup?
Kavon: Vzdycky kdyz by ten
stroj dojel na urcite misto byl by tam spinac a ten by sepnul a
tim by se to odecetlo ze zadane hodnoty
Kavon: Vystup elektricky signal ktery rele vypnul
Kavon: Proste by se masine prerusilo napajeni
Walda: Ok, to neni problem udelat..
K čemu to tedy je?
V podstatě jde o to, že existuje nějaká
zámečnická dílna, kde mají nějaký starý poloautomatický
soustruh, kde se z jedné strany vloží materiál a z druhé
strany vypadávají obrobky do té doby, než dojde materiál.
Pak tento stroj jede naprázdno, což je plýtvání elektrickou
energií. Než si tohoto stavu všimne nějaký zaměstnanec,
který musí doplňovat materiál, výroba stojí a stroj žere a
žere :-) Ve stroji je vačková hřídel, která ovládá
jednotlivé nože obrábějící vstupní materál. Tedy
principielně jednoduchý systém, kde platí, že jedna otáčka
této vačkové hřídele se rovná jednomu obrobku. Čili
snímání počtu obrobků je vlastně měření počtu otáček
vačkové hřídele. Navrhované zařízení by pak mělo tyto
otáčky vyhodnocovat a na základě předem nastaveného počtu
obrobků, které je možné ze vstupního materiálu vyrobit,
stroj vypnout. Ještě je nutné podotknout, že zmíněná
vačková hřídel se točí docela pomalu.
Jak snímat otáčky vačkové hřídele?
Jsou v podstatě dvě možnosti. Kontaktní a bezkontaktní.
Bezkontatkní možnost by přicházela v úvahu pouze při
použití hallovy sondy, protože přerušování optického
paprsku by bylo v prostředí dílny spolehlivé snad jen do
prvního zapnutí soustruhu. Bohužel se mi však nepodařilo
žádnou hallovu sondu v rozumné ceně sehnat a tak jsme to
vyřešili přidáním další vačky, která bude spínat
mikrospínač.
Elektronika
Vlastní elektronika je poměrně primitivní. Nejvíce prostoru
zabírá bižuterie jako například obvody napájecího zdroje,
filtrace apod. Srdcem celkého zapojení je ovšem jediný
integrovaný obvod PIC16F628. Jedné se o 8-bitový jednočip s
integrovaným krystalem o kmitočtu 4MHz, takže pro jeho funkci
stačí jen připojit napájení napětí a napsat příslušný
program. Jako zobrazovací část celého zařízení slouží 3
segmisegmentovky se společnou anodou a pracující v
multiplexním režimu. Při hledání vhodného typu
segmisegmentovky jsem čistou náhodou objevil v brněnském GESu
kromě standartních dvojčísic i trojčíslice a
čtyřčíslice, což me příjemně potěšilo, protože mi
poté odpadla práce s pájením číslovek tak, aby byly rovně.
Nicméně další výhodou zvoleného typu byl fakt, že daná
číslovka má již interně spojené katody jednotlivých
segmentů, čili není nutné se zabývat šílenou tahanicí,
která vzníká na jednostranném plošném spoji v případě,
že má každá číslicovka katody vyvedeny zvášť.
Multiplexní režim pracuje tak, že PIC nastaví na log 1 na
pinu, který ovládá tranzistor spínající kladné napětí na
anodu příslušné číslicovky a poté na portu A uzemní (nastaví
log. 0) ty katody, které mají svítit. Následně jednočip
sepne další číslicovku (tu předešlou samozřejmě vypne),
nastaví jinou kombinaci log. 0 na portu A a tímto způsobem
vytváří obraz všech tří současně svítících
číslicovek, ač to tedy není pravda, protože v čase t
svítí pouze a jenom jedna. Lidské oko má ale určitou
setrvačnost a tak vidí svítit všechny tři.
K ovládání počitadla slouží 3 tlačítka. PIC obsahuje
interní pull-up odpory a není tedy nutné je přidávat
externě. Na vstupních pinech je tedy jednička ať se děje, co
se děje, tedy až do doby, kdy dojde ke stisku nějakého
tlačítka nebo sepnutí mikrospínače vačkou a následného
sepnutí tranzistoru v optočlenu. Výstup je řešen pomocí
relé a tranzistoru, který jej spíná. Dioda připojená
paralerně k cívce relé má za úkol eliminovat napěťové
špičky vyskytující se v indukčnosti během přechodových
stavů - sepnutí / rozepnutí tranzistoru.
Ovládání
Vypínač zapíná a vypíná :-) Tlačítko s názvem VYNULOVAT
smaže čítač na nulu. Tlačítkem NAHORU / ODEČET lze v
režimu běžného čítání přepínat mezi přičítáním
jedničky od nuly nahoru nebo odečtem jedničky od nastavené
hodnoty směrem k nule. V prvním případě se na displeji
zobrazuje počet vyrobených obrobků, v druhém případě
počet, který se má ještě vyrobit něž dojde k vypnutí
stroje. V případě odečtu se na displeji zobrazuje taktéž
znaménko mínus, pokud se tam vleze, tedy pokud je zbytek
menší jak 99. Tlačítko NASTAVIT slouží k nastavení
konečné hodnoty počitadla, kdy se má stroj vypnout. Pomocí
tohoto tlačítka se přípíná po řádech (100,10,1) a
tlačítkem NAHORU / ODEČET se cyklicky mění hodnota v daném
řádu. Stisk tlačítka NAHORU / ODEČET po nastavení řádu
jednotek způsobí uložení nové konečné hodnoty do EEPROM a
následné vynulování čítače.
Po dosažení požadovaného počtu se na displeji objěví
nápis End, sepne a rozepne se relé a následně začne blikat
konečná hodnota. Obsluha tak ví, proč se stroj zastavil a po
kolika obrobcích. Stiskem tlačítka VYNULOVAT se počitadlo
uvede do výchozího stavu.
Software
Celý program je napsán jednoduchým stylem v asembleru.
Jednoduchým proto, že jsem se vůbec nesnažil o nějakou
optimalizaci velikosti, protože funkce zařízení je
jednoduchá, ale mou shanou byla hlavně přehlednost a
čitelnost kódu. V paměti PICu zabírá asi 26%. Multiplexn
řízení displeje je řešeno pomocí přerušení od časovače
TMR2, což je 16-ti bitový čítač plněný od interních hodin.
K přerušení dochází každých 10ms. Hodnota počtu impulzů
se ukládá do 2 registrů cnthi a cntlo. Konečná hodnota je
uložena ve stophi a stoplo. V registrech d100, d10, d1 je
uložena informace, která se posílá na port A pro rozsvícení
těch správných segmentů. Ostatní registry jsou určeny pro
různé výpočty, jako je třebas převod binárního čísla na
BCD kód (binární cnthi, cntlo na displej apod..) nebo převod
BCD na binární tvar (nastavovaní nového konečného čísla)..
Jelikož požadavkem bylo i to, že se musí uchovat počet
vyrobených obrobků i po vypnutí napájení, je po každém
sepnutí mikrospínače na vačkovém hřídeli uložena
aktuální hodnota cnthi a cntlo do EEPROM. Tato paměť má ale
omezenou životnost a proto jsem do programu implementoval tzv.
cestování po EEPROM. Spočívá v tom, že se na adrese 02h
EEPROM ukládá adresa, kde se v EEPROM nalézá uložený obsah
registru cnthi. Cntlo má adresu vždy o jednu vyšší. Funkce
je taková, že si PIC nejprve přečte obsah EEPROM na adrese 02h.
Tento obsah je adresa, kde je cnthi a na tuto adresu po sepnutí
mikrospínače uloží aktuální obsah cnthi. Cntlo je pak o
jedničku výše. Pokud v pak dojde k vypnutí počitadla, po
startu programu si PIC tyto hodnoty z EEPROM přečte a nastavi
podle nich cnthi a cntlo, na displeji se tak objeví číslo,
jaké na něm bylo před vypnutím. Pozice uložení těchto
průběžných hodnot se mění po každém stisku tlačítka
VYNULOVAT, resp. po vykonání instrukcí spojených s
vymazáním čísla. Registry cnthi a cntlo tak cestují do
kolečka po celé EEPROM ve snaze zvýšit životnost, která by
asi nebyla taková, kdyby se stále zapisovalo na stejné místo.
Hodnoty konečné hodnoty počitadla, kdy dojde k vypnutí stroje,
se ukládají do EEPROM hned na začátek bez zbytečných
šaškáren, pač se tak často němění.
Hardware
Počitadlo je ve vodotěsné a robustní plastové krabici a
rozděleno na 2 DPS. Ta větší obsahuje silové prvky, relé,
konektory a druhá PIC, displej a tlačítka. Obě tyto části
se dají oddělit pro případ nějaké údržby atd.. Více už
na obrázcích. Foceno foťákem Nikon CoolPix 8700 a strašně
se mi líbilo makro :-)
Soubory se stažení
Schéma zapojení
Bylo to za prachy, takže tentokrát open source veřejně
nemůžu, ale napište mi a není problém to poslat..