Systém řízení dopravy výrobní linky 1 Obecná charakteristika Cílem je navrhnout databázový systém, který bude řídit dopravu výrobní linky. Linka je tvořena dvěma jednosměrnými rolnovými dráhami každá obsahuje 5 pozic a dvěma obousměrnými přesuvnami se 4 pozicemi (vždy dvě jsou společné s rolnovými dráhami pro přeložení z dráhy na přesuvnu a zpět). Dráha je samostatně řízena vlastním PLC (Programovatelný logický automat – Programmable Logic Controller), který umí přijímat jednoduché pokyny a vracet stavy na základě dotazu (vše pomocí bitové komunikace). Zde pro jednoduchost použijeme logickou mezivrstvu funkcí pro PLC – definována níže. Grafické schéma linky je uvedeno na následujícím obrázku: Po dráze se pohybují podložky po jednotlivých pozicích, na podložkách probíhá vlastní výroba. Pro výrobu jsou k dispozici údaje z výrobního systému v rozsahu (uvedeny nejnutnější potřebné atributy): · Seznam výrobků o id_vyrobku - jednoznačný klíč o kod_vyrobku o nazev_vyrobku · Seznam pracovišť o id_pracoviste - jednoznačný klíč o kod_pracoviste o nazev_pracoviste o pozice - pozice linky, kde je pracoviště uloženo (pracoviště jsou na pozicích 1, 3, 5, 8 a 10) · Seznam operací o id_operace - jednoznačný klíč o kod_operace o popis_operace · Výrobní příkaz (zadání výroby) o id_prikazu - jednoznačný klíč o id_vyrobku o poradi_vyroby · Operace výrobního příkazu o id_operace_prikazu - jednoznačný klíč o id_prikazu o id_operace o id_pracoviste o cas_vyroby Na pozici 1 je podložka spojena s výrobním příkazem – výběr ze seznamu dle pořadí výroby. Následně jsou na výrobku na podložce prováděny operace. Pokud je na podložka na pozici, kde je pracoviště s operací pro výrobní příkaz spojení s podložkou, čeká se na pokyn obsluhy, že operace byla provedeny (všechny výrobky nemusí mít všechny operace, pokud pro podložku na pracovišti u pozice operace není, podložka automaticky odjíždí dále, na pozici 5 nezajíždí, pokud není operace na pracovišti u pozice 5). Pokud obsluha oznámí provedení operace, podložka může odjíždět. Na pozici 10 se hotový výrobek z podložky snímá, zde současně může obsluha označit podložku jako poškozenou – ta pak odjíždí na pozici 14, kde je sejmuta a následně repasována. Na pozici 14 může být také vložena nová nebo repasovaná podložka na dráhu. Na pozici 13 je snímačem načítán kód podložky, který umí PLC vrátit (jen na této pozici). 2 Práce linky 2.1 Funkce PLC Pro komunikaci s PLC jsou k dispozici následující funkce: · posun_drahy o parametry § pozice_z pozice, ze které posun provést § delka počet pozic, o které se posouvá (lze 1 a 2) o popis: provede posun linky z dané pozice o 1 nebo dvě pozice, neprovádí žádné kontroly (musí se provést nezávisle) o výstup: 0 – provedeno, -1 – neprovedeno · posun_presuvny o parametry § id_presuvny § delka počet pozic, o které se přesuvna posune (lze -1 a 1) o popis: přesune vozík přesuvny z aktuální pozice o jednu pozici daným směrem o výstup: 0 – provedeno, -1 – neprovedeno · nalozeni_presuvny o parametry § id_presuvny o popis: naloží podložku na vozík přesuvny, lze použít na pozici 4, 5, 11, 14 o výstup: 0 – provedeno, -1 – neprovedeno · slozeni_presuvny o parametry § id_presuvny o popis: složí podložku z vozíku přesuvny, lze použít na pozicích 5, 7, 13, 14 o výstup: 0 – provedeno, -1 – neprovedeno · volna_pozice o parametry § pozice o popis: vrací 1 – pokud je pozice volná, jinak 0 · poloha_presuvny o parametry § id_presuvny 1 nebo 2 o popis: vrací číslo pozice, kde se přesuvna nalézá · volna_presuvna o parametry § id_presuvny 1 nebo 2 o popis: vrací 1 – pokud je vozík přesuvny prázdný, jinak 0 · vrat_id_podlozky o popis: vrací číslo podložky, která je na pozici 13(1), pokud je pozice 13(1) prázdná tak 0 2.2 Omezení linky – kontroly · Nelze rolnovou dráhou najet do pozice, která není volná · Nelze dát pokyn pro pohyb „za“ rolnovou dráhu · Na vozík přesuvny lze naložit pouze jednu podložku · S naloženým vozíkem přesuvny nelze najet na obsazenou pozici (s prázdným ano) · Nakládat na vozík přesuvny lze jen, pokud je prázdný vozík na pozici a současně podložka na pozici · Složit z přesuvny je možné pokud je vozík z podložkou na pozici · Pokud pokyn pro PLC nebyl proveden – vrátil -1, je nutné provést pokyn znovu. 3 Realizace 3.1 Datové objekty a datový model 3.1.1 Linka Objekty linky – Pozice (entita): · Id – gid_pozice PK · Kod_pozice (1 – 14) · Popis_pozice · Typ_pozice (dráha, přesuvna, křižovatka) · Stav_pozice (prázdná, obsazená, probíbá proces, … ) · Gid_podlozky cizí klíč, která podložka je na pozici – pokud prázdná pozice je prázdné · Id_presuvny Podložky: · Id – gid_podlozky PK · Cislo_podlozky číselný kód podložky – jednoznačný – je formou RFID čipu na podložce připojen a je možné jej na pozicích 1 a 13 načítat · Stav_podlozky (zda obsahuje výrobek nebo ne) · Id_prikazu cizí klíč do tabulky výrobních příkazů – výrobní příkaz, který se na podložce vyrábí, pokud je prázdná tak prázdné id 3.1.2 Povely pro obsluhy linky Definice možných povelů · Id – gid_povely · Povel · Popis_povelu · Parametr 1 · Parametr 2 Vydané povely: · Id – gid_vydane_povely · Gid_povely (jaký povel) · Datum_povelu datum a čas v ms · Hodnoty_parametru_1 · Hodnota_parametru_2 · Vracena_hodnota · Stav (probíhá, proveden_OK, proveden_NOK) 3.1.3 Chování Vydáme povel a co se má dít: posun_drahy(1 , 1) · Zapíše se do vydaných povelů jako probíhá – INSERT · Stav pozice 1 – změna na probíhá proces – UPDATE Povel skončí – vrací 0 (proběhl OK) · Stav pozice 1 – změna na prázdná – UPDATE · Stav pozice 2 – změna na obsazená – UPDATE · Gid_podlozky pozice 2 – změna na hodnotu Gid_podlozky pozice 1 · Gid_podlozky pozice 1 – změna na NULL – UPDATE · Stav povelu proveden OK Povel skončí – vrací 1 (neproběhl OK) · Stav pozice 1 – změna na obsazená – UPDATE · Stav povelu proveden NOK