Tomasz Knebel prof. J.Figwer
Celem pracy jest stworzenie zestawu aplikacji uruchomionych na serwerze bazodanowym, służącym do zbierania, przechowywania i wyświetlania danych pochodzących z urządzeń firmy S.A.: s górniczej lampy nahełmnej ELM-01 urządzenia mikroprocesorowego MUS-04
MONITOROWANE URZĄDZENIE PORT SZEREGOWY ŁĄCZE SZEREGOWE IP-Server SERWER BAZODANOWY (komputer) INTERFEJS SIECIOWY PORT SZEREGOWY PORT SZEREGOWY INTERFEJS SIECIOWY URZĄDZENIE DOSTĘPOWE (komputer) INTERFEJS SIECIOWY APLIKACJA DO ZBIERANIA DANYCH ( ) BAZA DANYCH ( ) SERWER WWW ( ) ZESTAW SKRYPTÓW ( )
obsługa demona obsługującego IP-serwer (program dostarczony przez producenta) aplikacja (w Borland C++ Builder v6.0) pośrednicząca pomiędzy bazą danych a wirtualnym portem szeregowym (IP-serv) baza danych zgodna z SQL-92 (mysql) serwer WWW (Apache) obsługujący SSL, połączony z interpreterem PHP w wersji 5
istnieje od 1948 roku (od 1996 jako S.A.) posiada certyfikaty IQNet-u oraz PCBC dot. Zintegrowanego Systemu Zarządzania realizuje projekty w kraju oraz za granicą działa w branży automatyzacji górnictwa, oświetlenia przemysłowego, reduktorów ciśnienia gazu oraz świadczenia usług
Górnicza lampa nahełmna przeznaczona jest do indywidualnego oświetlenia miejsca pracy (1500 luxów z odległości 1 m). Wykonanie iskrobezpieczne kategorii ia oraz stopień ochronny obudowy IP65 pozwala na stosowanie lampy w pomieszczeniach o dowolnej koncentracji metanu.
trwałość źródła światła wynosi 100 000 godzin przejrzysty system informowania o stanie akumulatora i możliwość transmisji danych z lampy do systemu wizualizacji i nadzoru pracy lampowni niska emisja cieplna źródła światła - dzięki zastosowaniu superjasnych 1-watowych diod LED światło białe; nie ulega zmianie przy rozładowaniu suchy, bezobsługowy akumulator mała masa zaledwie 1,3 kg
Mikroprocesorowe urządzenie sterujące MUS-04 jest w pełni programowalnym urządzeniem umożliwiającym sterowanie wybranymi urządzeniami lub procesami technologicznymi. Jest urządzeniem iskrobezpiecznym i może być stosowane w pomieszczeniach o koncentracji metanu : dowolnej (przy zasilaniu lokalnym) określonej przepisami (przy korzystaniu z sieciowego z zasilacza iskrobezpiecznego)
kontrola 8 obwodów wejściowych typu: styk, styk szeregowo z diodą lub klucz elektroniczny sterowanie 8 obwodami wyjściowymi sygnalizacja stanu wejść na diodach LED generowanie komunikatów na wyświetlaczu LCD programowanie bezpośrednio z klawiatury wyposażenie w interfejs RS 485, umożliwiający wizualizację procesów i wpisywanie parametrów
kontrola stanu pracy i zaistniałych alarmów przygotowanie pakietu o stanie urządzenia (nawiązanie komunikacji) i nadanie pakietu przyjęcie komend sterujących i wykonanie poleceń przeprogramowanie (opcjonalnie) odmierzenie czasu do kolejnego pakietu (zwykle nadawane są z odstępem 500ms)
wizualizacja parametrów procesu ciągłego wolnozmienne stany analogowe konieczność potwierdzania transmisji (zmian) obsługa formatu ramek ASCII Modbus szybkozmienne stany cyfrowe
umożliwia podłączenie urządzenia wykorzystującego port szeregowy standardu RS232; pozwala na komunikację z dowolnym komputerem (wyposażonym w firmowego demona) znajdującym się w zasięgu lokalnej sieci Ethernet (standardowo długość kabla ograniczona do 15m) pozwala na wygodne podłączenie urządzenia do IP-Servera lub bezpośrednio do komputera (automatycznie dokonuje konwersji pomiędzy różnymi standardami transmisji sparametryzowanymi przez: prędkość transmisji, ilość bajtów danych, ilość żył sygnałowych)
jako standard ISO/ANSI istnieje od 1986 roku aktualnie obowiązuje SQL92 (wchodzi SQL2003) niezależny od sprzętu i fizycznej struktury danych składnia podobna do uproszczonej mowy ludzkiej nie jest językiem programowania (nie umożliwia pisania kompletnych uruchamialnych programów)
CREATE DROP ALTER INSERT UPDATE DELETE
Składnia najprostszego zapytania: tabela Rozbudowana wersja zapytania: tabela warunek Zapytanie niepewne (użycie wildcards ): tabela kolumna wzór Zapytanie z sortowaniem wyników: tabela kolumna
Przyspieszają wyszukiwanie danych (nawet w niewielkich zbiorach) przegląd indeksu zamiast całej zawartości tabeli Zakłada się je dla pól, dla których operacja wyszukiwania jest najczęstsza Indeks zakładamy poleceniem: tabela indeks kolumna
WADY: duża objętość ZALETY: wpisy zawsze aktualne efektywne szukanie (tylko przeglądanie) WADY: możliwa nieaktualność bardzo wolne szukanie (rekonstrukcja wpisów) ZALETY: mała objętość
Język skryptowy, działa po stronie serwera Stworzony w 1994 przez Rasmusa Lerforda 17 milionów witryn na PHP (sierpień 2004) Open source ( wolne źródla do wglądu, zmian i redystrybucji - wszystko bezpłatnie) Aktualnie wprowadzana jest wersja 5 (wciąż w użyciu wersja 4 dobrze przetestowana)
Łatwość nauki (bardzo podobny do C++) Wysoka wydajność Język interpretowany Wygoda stosowania (brak deklaracji typów) Integracja z bazami danych (bezpośrednia lub przy pomocy mechanizmu ODBC) Biblioteki rozwiązań popularnych problemów
J. INTERPRETOWANY J. KOMPILOWANY zawsze jako instrukcje przetwarzany on-line bez optymalizacji wolniejszy w działaniu zmieniony w binaria proces kompilacji optymalizacja kodu szybki w działaniu
Wspiera obsługę standardu SQL-92 Ułatwia kontrolę dostępu do danych Wspiera proces logowania i kontrolę sesji Umożliwia pisanie obiektowe lub proceduralne Nie wymaga deklarowania typów (dowolność) Umożliwia generowanie grafiki Pozwala wykorzystać jeden szablon strony
Sposoby obsługi portu szeregowego - opis zlecamy zapis/odczyt i czekamy na obsłużenie naszego żądania (wszystkie inne procesy są w tym czasie zablokowane) zlecamy zapis/odczyt, odczekujemy pewien czas i dopiero pobieramy wyniki (pozostałe procesy działają w tym czasie normalnie)
Sposoby obsługi portu szeregowego - schemat synchronicznie asynchronicznie
Synchroniczna obsługa portu szeregowego (1)
Synchroniczna obsługa portu szeregowego (2) handle = ( // pointer to name of the file ( ) // access (read-write) mode (, ) // share mode ( ) // pointer to security attributes ( ) // how to create ( ) // file attributes ( ) // handle to file with attributes to copy ( ) ) ) ( // handle to file to write to ( )
Synchroniczna obsługa portu szeregowego (3) ) ( // handle to file to write to ( ) // pointer to data to write to file ( ) // number of bytes to write ( ) // pointer to number of bytes written ( ) // pointer to structure needed for overlapped I/O ( )
Synchroniczna obsługa portu szeregowego (4) ) ( // handle of file to read ( ) // address of buffer that receives data ( ) // number of bytes to read ( ) // address of number of bytes read ( ) // address of structure for data ( )
Mechanizm limitów czasowych - opis Przy wykorzystaniu synchronicznej obsługi portu szeregowego zalecane jest stosowanie mechanizmu limitów czasowych (ang. time out). Deklarowane w strukturze DCB (Data Control Byte) pozwalają uniknąć zawieszenia programu oczekującego na nadejście danych, w sytuacji gdy nic nie jest nadawane. Rozróżniamy limit dotyczący poszczególnych znaków oraz limit przeznaczony na całość transmisji.
Mechanizm limitów czasowych - schemat
Lampa nahełmna
Urządzenie sterujące
Ekran logowania (stara wersja)
Wybór zadania (stara wersja)
Wizualizacja stanu lampy oraz sterowanie (stara wersja)