Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Materiały dydaktyczne Systemy automatyki okrętowej Semestr VI Wykłady Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 1 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Temat: Przetworniki analogowe / cyfrowe Większość urządzeń pomiarowych lub rejestratorów sygnałów w systemach pomiarowych kontaktujących się bezpośrednio z obiektami badań reaguje na oddziaływania fizyczne (np. temperatura, napięcie elektryczne. itp.) zmieniające się w sposób ciągły (nazywane sygnałami analogowymi). Aby te informacje mogły być wykorzystane przez system komputerowy muszą być przetworzone w kodowane sygnały cyfrowe. Rolę tę spełniają przetworniki analogowo-cyfrowe (A/C lub A/D). Przetwornik analogowo / cyfrowy jest układ elektroniczny, który dokonuje konwersji wartości wielkości analogowej (ciągłej) na wartość cyfrową - w określonych momentach czasu (rys.1). Kwantowanie i kodowanie Rys. 1. Ilustracja operacji kwantowania i kodowania w przetworniku analogowo – cyfrowym: a - kwantowanie i kodowanie, b – zmiany błędu kwantowania. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 2 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Parametry przetworników cyfrowo/analogowych C/A rozdzielczość N przetwornika (długość słowa kodowego), zakres UFS przetwornika unipolarnego (wartość maksymalna), krok kwantowania q, q U FS 2N błąd kwantowania (wartość szczytowa szumu kwantowania, jego wartość średnia wynosi 0) q 2 Metody konwersji wartości analogowej na cyfrową stosowane w przetwornikach analogowo – cyfrowych Istnieją następujące metody: konwersji bezpośredniej (równoległa), prób i błędów (stochastyczne), całkowe, kolejnych przybliżeń (kompensacyjne). Metoda konwersji bezpośredniej polega na klasyfikacji napięcia wejściowego do jednego z 2N przedziałów napięć i przypisaniu każdemu przedziałowi słowa kodowego. Jest to przetwarzanie równoległe (równoczesne porównywanie sygnału wejściowego z odpowiednimi częściami napięcia odniesienia), bardzo trudne do technicznej realizacji, bo wymaga dużej liczby dokładnych komparatorów napięcia. Metoda ta jest stosowana w przetwornikach o małej rozdzielczości, cechuje się krótkim czas konwersji – rzędu kilkadziesiąt nanosekund, częstotliwość przetwarzania przekracza 5 MHz. Schemat układu przedstawia rys. 2. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 3 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Rys. 2. Przetwornik konwersji bezpośredniej (równoległego). Tabela 1. Konwersja analogowo - cyfrowa w przetworniku trzybitowym Uwe K7 K6 K5 K4 K3 K2 K1 K0 Binarny kod cyfrowy 1 0 U ref 8 0 0 0 0 0 0 0 0 000 1 2 U ref U ref 8 8 0 0 0 0 0 0 0 1 001 2 3 U ref U ref 8 8 0 0 0 0 0 0 1 1 010 3 4 U ref U ref 8 8 0 0 0 0 0 1 1 1 011 4 5 U ref U ref 8 8 0 0 0 0 1 1 1 1 100 5 6 U ref U ref 8 8 0 0 0 1 1 1 1 1 101 6 7 U ref U ref 8 8 0 0 1 1 1 1 1 1 110 7 8 U ref U ref 8 8 0 1 1 1 1 1 1 1 111 Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 4 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego W N – bitowym przetworniku równoległym przetwarzane napięcie Uwe porównywane jest jednocześnie za pomocą 2N – 1 komparatorów z częściami napięcia odniesienia Uref wytworzonymi przy pomocy drabinki oporowej. Sygnały z komparatorów przetwarzane są w konwerterze kodu na sygnał cyfrowy. Rys. 2. przedstawia zasadę pracy przetwornika równoległego trzybitowego. Tabela 1 prezentuje sposób przyporządkowania słów kodowych poszczególnym zakresom napięcia wejściowego. Przetworniki równoległe (bezpośrednie) są najszybsze z wszystkich przetworników A/C, wymagają jednak rozbudowanego układu. Metoda prób i błędów klasyfikacja napięcia wejściowego do jednego z 2N przedziałów napięć, porównanie metodą prób i błędów (np. napięcie zmienia się skokami o wartość Q od 0 V w kierunku wartości napięcia wejściowego), poziomy napięcia potrzebne do porównania z napięciem przetwarzanym wytwarzane są przez przetwornik C/A, czas konwersji zależy od wartości napięcia wejściowego, stosowana w przetwornikach o większej rozdzielczości, długi czas konwersji – od kilku do kilkudziesięciu mikrosekund. W przetworniku stochastycznym (rys.3) układ sterujący generuje losowo liczbę N – bitową, która jest w przetworniku C/A przetwarzana na napięcie, które jest porównywane w komparatorze K z napięciem przetwarzanym Uwe. Zależnie od wyniku porównania układ sterowania generuje kolejną liczbę N – bitową (napięcia różne) lub sygnalizuje zakończenie przetwarzania (napięcia równe). Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 5 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Rys. 3. Schemat blokowy N – bitowego stochastycznego przetwornika, działającego metodą prób i błędów. Metody całkowe - dwustopniowy proces konwersji - krok 1. – przetworzenie napięcia wejściowego na wartość pośrednią (czas lub częstotliwość) - krok 2. – pomiar wartości pośredniej za pomocą dokładnych metod cyfrowych (na zasadzie zliczania impulsów) - wynik zliczania reprezentuje słowo kodowe odpowiadające napięciu wejściowemu - długi czas konwersji – od kilku do kilkudziesięciu milisekund - bardzo duża dokładność. Metoda kolejnych przybliżeń (kompensacyjna) Metoda ta składa się z następujących kroków: porównanie napięcia przetwarzanego z N różnymi napięciami wzorcowymi z 2N możliwych), wybór kolejnego napięcia wzorcowego jest zależny od wyniku porównania w poprzednim kroku, w każdym kroku klasyfikacja sygnału przebiega z dwukrotnie wyższą dokładnością (najstarszy bit ustalany jest poprzez porównanie napięcia wejściowego z napięciem odpowiadającym połowie wartości przetwarzania), pełny cykl przetwarzania obejmuje N porównań (dla przetwornika N-bitowego), Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 6 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego czas konwersji wynosi od kilku do kilkudziesięciu mikrosekund. W przetwornikach kompensacyjnych napięcie przetwarzane Uwe porównywane jest w komparatorze K kolejno z szeregiem napięć wzorcowych, z których każde następne jest 2 razy mniejsze od poprzedniego. Jeżeli napięcie przetwarzane jest większe od wzorcowego, napięcie wzorcowe jest od niego odejmowane i generowany jest stan 1, jeżeli jest mniejsze – generowane jest 0. Z kolei porównanie następuje z napięciem wzorcowym dwukrotnie mniejszym i generowany jest następny bit. Ilość porównań równa jest ilości bitów przetwornika. Rys. 4 przedstawia 8 - bitowy schemat przetwornika kompensacyjnego A/C. Rys. 4. Przetwornik kompensacyjny. Metoda kolejnych przybliżeń (kompensacyjna) jest stosowana w przyrządach wymagających dużej dokładności przetwarzania. Podstawowa trudność w ich budowie to polega na generacji odpowiednio dokładnych napięć wzorcowych. Rzeczywisty przetwornik A/C Idealna charakterystyka przetworników A/C może być przedstawiona jako linia schodkowa przyporządkowująca poszczególnym przedziałom przetwarzanego napięcia wejściowego określony sygnał cyfrowy (słowo kodowe). Rzeczywiste przetworniki wykazują odstępstwa od charakterystyki idealnej. W rzeczywistych przetwornikach A/C mogą wystąpić następujące odstępstwa od charakterystyki idealnej (rys. 5): błąd zera - równoległe przesunięcie charakterystyki, błąd wzmocnienia – zmiana nachylenia charakterystyki, Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 7 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego błąd liniowości całkowitej – charakterystyka nie jest zbliżona do liniowej. Rys. 5. Ilustracja definicji: a - błędu zera, b - błędu wzmocnienia, c - błędu liniowości całkowitej. Przetworniki cyfrowo / analogowe C/A W układach automatyki często zachodzi konieczność zmiany sygnału cyfrowego na analogowy, np. w celu podania sygnału napięcia na element wykonawczy. Rolę tę spełniają przetworniki cyfrowo – analogowe (C/A lub D/A). Przetwornik cyfrowo / analogowy jest to układ elektroniczny, który na podstawie wejściowego słowa binarnego kodowego A i analogowego sygnału odniesienia R (w postaci napięcia odniesienia Uref lub prądu odniesienia Iref) wytwarza analogowy sygnał wyjściowy. Do podstawowych parametrów przetwornika C/A należą: rozdzielczość N przetwornika (długość słowa kodowego), Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 8 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego zakres UFS przetwornika unipolarnego (wartość maksymalna), krok kwantowania q (najmniejszy skok sygnału wyjściowego), liczba poziomów (2N ) kwantowania sygnału wyjściowego. Liczba bitów N Liczba poziomów kwantyzacji Max. błąd kwantyzacji [%] 8 256 0,2 10 1024 0,05 12 4096 0,01 16 65536 0,0005 Cechy idealnego przetwornika C/A (rys. 6, rys. 7) : - charakterystyka przejściowa jest funkcja nieciągłą - sygnał wyjściowy (napięcie lub prąd) zmienia się skokami - kształt idealnej charakterystyki przejściowej nie zależy od liczby bitów przetwornika - nie występuje błąd kwantowania. Rys. 6. Charakterystyka przejściowa unipolarnego przetwornika cyfrowo – analogowego. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 9 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Rys. 7. Charakterystyka przejściowa bipolarnego przetwornika cyfrowo – analogowego. Zasadę działania czterobitowego przetwornika cyfrowo-analogowego, działającego na zasadzie sumowania prądów, przedstawiono na rysunku 8. Poszczególnym bitom liczby zapisanej w rejestrze wejściowym (zawierającym słowo kodowe) są przyporządkowane prądy na wejściu wzmacniacza proporcjonalne do wagi bitu. Rys. 8. Przetwornik cyfrowo-analogowy: Uref – napięcie odniesienia, Uwy – analogowy sygnał wyjściowy, MSB – najbardziej znaczący bit słowa kodowego, LSB – najmniej znaczący bit słowa kodowego. Napięcia wyjściowe odpowiadające poszczególnym bitom są również proporcjonalne do wagi bitu. Klucze podłączające oporniki do źródła napięcia odniesienia sterowane są sygnałem cyfrowym. Napięcie wynikowe odpowiadające kombinacji bitów uzyskuje się w układzie sumatora analogowego; jest ono sumą napięć odpowiadających poszczególnym bitom. Przedstawiony przetwornik czterobitowy generuje 16 różnych poziomów napięcia o skoku A, Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 10 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego zależnym od doboru Uref, R, oraz RS. Tabela 2 prezentuje sposób przyporządkowania kolejnym słowom kodowym analogowej wartości wyjściowej. Tabela 2. Konwersja cyfrowo – analogowa w przetworniku czterobitowym. Wejście cyfrowe 0000 Wartość analogowego sygnału wyjściowego Uwy 0 0001 0010 0011 U ref RS ozn. A 8R U ref RS 2A 4R U ref RS ( ... 1 1 ) 3A 8R 4 R ... 1111 U ref RS ( 1 1 1 1 ) 15 A 8R 4 R 2 R R Sygnałem wyjściowym w przetwornikach cyfrowo-analogowych jest prąd lub napięcie. Przeciętne czasy działania przetwornika cyfrowo-analogowego wynoszą niecałą mikrosekundę. Rzeczywisty przetwornik C/A – odstępstwa od charakterystyki idealnej (rys.9). błąd przesunięcia zera (rys. 9a) błąd wzmocnienia (rys. 9b) błąd nieliniowości (rys. 9c). Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 11 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Rys. 9. Błędy rzeczywistego przetwornika analogowo – cyfrowego. Parametry przetworników A/D i D/A Parametry przetworników A/D i D/A, charakteryzują: Rozdzielczość: określa się ją jako liczbę bitów używaną przez przetwornik do reprezentacji sygnału analogowego. Przetwornik n-bitowy dzieli sygnał analogowy na poziomów. Najmniej znaczący bit przetwornika A/D n-bitowego na zakresie napięciowym [0, Umax] odpowiada zmianie napięcia q=Umax/2n. Często podaje się ją też w procentach: q 100% 2n q 100% 100% 12,5% 8 23 dla przetwornika 3-bitowego q 100% 100% 6, 25% 16 24 dla przetwornika 4-bitowego q 100% 100% 0,09765% 0,1% dla przetwornika 10-bitowego 1024 210 q 100% 100% 0,024414% 0,02% dla przetwornika 12-bitowego 4096 212 Na rys. 10 przedstawiono charakterystykę 3-bitowego przetwornika A/D o ośmiu (23) stanach wyjściowych. Poszczególnym stanom przyporządkowano kolejne słowa kodu dwójkowego, naturalnego od 000 do 111. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 12 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Syg wy 111 110 101 q 100 011 010 001 000 1/8 2/8 3/8 4/8 5/8 6/8 7/8 1 100% Syg we Rys. 10. Charakterystyka przetwarzania idealnego 3-bitowego przetwornika A/D (n = 3) Kondycjonowanie sygnału (pre-processing) Celem kondycjonowania jest przygotowanie sygnału do przetwarzania A/C (zmiana jego parametrów, usunięcie części informacji itp.) identyfikacja głównych własności sygnału, oszacowanie wartości średniej, minimalnej i maksymalnej (zakresu w dziedzinie amplitudy), oszacowanie zakresu częstotliwości harmonicznych tworzących sygnał, kontrola stacjonarności sygnału, wybór miar sygnału mających podlegać analizie, dobór parametrów przetwornika A/C. Post-processing Celem post-processingu jest przygotowanie cyfrowego sygnału (uzyskanego z wyjścia przetwornika A/C) do przechowywania oraz dalszej obróbki. Jest to między innymi: wstępna kontrola poprawności przetwarzania A/C (kontrola przekroczeń zakresu, kontrola stacjonarności), eliminacja danych przypadkowych (określenie typowych parametrów sygnału, np.: wartości średniej, odchylenia standardowego, przedziału ufności), resampling (redukcja ilości danych (oszczędność pamięci, usunięcie części danych – w pliku wynikowym pozostaje, jedynie co druga, co trzecia, ..., próbka). Należy Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 13 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego jednak sprawdzić czy ta liczba próbek zapewnia wystarczającą dokładność wyznaczanych miar statystycznych. Literatura 1. Dag Stranneby, Cyfrowe przetwarzanie sygnałów. Metody, algorytmy, zastosowania, Wydawnictwo BTC Warszawa 2004. 2. Steven W. Smith, Cyfrowe przetwarzanie sygnałów. Praktyczny poradnik dla inżynierów i naukowców, Wydawnictwo BTC Warszawa 2007. 3. Rudy van de Plassche Scalone przetworniki analogowo-cyfrowe i cyfrowo-analogowe Warszawa, WKiŁ, 2001. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 14 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Temat: Struktura, własności i funkcje przykładowych, firmowych, zintegrowanych systemów automatyzacji siłowni statku. K-Chief 500 (firmy Kongsberg) jest obecnie standardowym, modułowym systemem alarmowania, monitoringu i sterowania siłownią okrętową dla statków handlowych. Spełnia rozszerzone wymagania bezpieczeństwa i niezawodności. Modułowa budowa umożliwia elastyczną konfigurację w zależności od indywidualnych potrzeb począwszy od systemu o małej złożoności do mocnego zintegrowanego systemu sterowania. Seria 500 może być zainstalowana na różnych rodzajach jednostek pływających, takich jak: masowce kontenerowce statki ro-ro tankowce promy statki rybackie Natomiast K-Chief 700 przeznaczony jest do zastosowań na jednostkach specjalistycznych takich jak: statki pasażerskie super jachty statki wiertnicze i FPSO (Floating Production, Storage and Offloading Unit)1 statki do przewozu płynnego gazu LNG (Liquefied Natural Gas) i LPG (Liquefied Petroleum Gas) statki obsługi i wsparcia pól naftowych platformy wiertnicze System K-Chief 500 wykorzystuje sieć CAN z podwójną magistralą do komunikacji między modułami rozproszonymi. Każdy moduł jest przyłączony do dwóch odseparowanych magistrali w celu uzyskania maksymalnej redundancji. 1 jednostka pływająca do wydobycia, składowania i przeładunku. Jej zadaniem jest wydobywanie, wstępne oczyszczenie, przechowywanie i przeładunek ropy naftowej i gazu ze złóż podmorskich. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 15 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Na system K-Chief 500 składają się następujące główne komponenty: Stacja operatorska Zawiera komputer osobisty z monitorem kolorowym. Pozwala na dostęp do modułów rozproszonych. Zbierania danych pomiarowych i ich przetwarzanie w czasie rzeczywistym dokonują zdalne moduły sterujące RCU (Remote Controller Unit). Za pomocą niezależnej sieci komputerowej K-Chief 500 może być zintegrowany z systemem zarządzania FleetMaster firmy Kongsberg. Główne funkcje systemu K-Chief 500 to: 1. sygnalizacja i monitoring alarmów, 2. sterowanie mechanizmami pomocniczymi, 3. zarządzanie mocą na statku, Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 16 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego 4. sterowanie napędem głównym, 5. automatyzacja balastów, 6. sterowanie i monitorowanie załadunku, 7. sterowanie klimatyzacją, 8. wykrywanie i sygnalizacja pożarów, 9. wsparcie zarządzania, 10. monitoring chłodni. Wszystkie dane wyświetlane w dowolnej stacji obsługi są zawsze aktualne, a ruch na magistrali danych i procesów w sieci lokalnej jest ograniczany do minimum, co daje bardzo szybki dostęp do danych. Każdy alarm lub zdarzenie jest ze znacznikiem czasowym z rozdzielczością 10 ms. Diagramy mimiczne (mimics diagrams) zawierają zrozumiałe i łatwe do odczytu informacje dotyczące silnika głównego (SG) i jego mechanizmów pomocniczych. Różnymi obiektami siłowni można sterować bezpośrednio ze stacji operatorskich. Pełny monitoring i urządzenia alarmowe występują zarówno w maszynowni jak i centrali manewrowo-kontrolnej (CMK). Pomiary ze wszystkich punktów pomiarowych są rejestrowane przez ostatnie 24 godziny (trend krótki). W przypadku trendu długiego (100 dni z przedziałem próbkowania 20 minut) można wybrać do 100 punktów pomiarowych. Trend krótki i długi są prezentowane w postaci diagramów trendu. Każdy moduł rozproszony został zaprojektowany jako odporny na jednostkowe usterki i posiada wewnętrzną trójprzewodową izolację galwaniczną między torami zasilania, komunikacyjnymi i wejść/wyjść. W ten sposób uszkodzenie danego modułu rozproszonego nie oddziałuje na źródło zasilania, magistralę komunikacyjną lub uszkodzenie czujników. KChief 500 posiada wbudowany system detekcji uszkodzeń, który wykrywa usterki okablowania, czy też uszkodzenia czujników. Wymiana uszkodzonego modułu nie wymaga wyłączenia zasilania, a po wymianie nowy moduł jest automatycznie konfigurowany i zdatny do pracy. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 17 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Architektura systemu rozproszonego K-Chief 500 System K-Chief 500 (rys.1) bazuje na oprogramowaniu the DataChief C20. Tworzą go stacje operatorskie i moduły wejść/wyjść połączone między sobą za pomocą lokalnej sieci danych. Jest to system całkowicie mikroprocesorowy i zdecentralizowany z punktu widzenia bezpieczeństwa, lecz praca na nim odbywa się jak na zcentralizowanym, a to dzięki zastosowaniu lokalnych stacji operatorskich. Sercem systemu są inteligentne moduły przetwarzające (Distributed Processing Units), które realizują proces komunikacji (w sieci CAN (Control Area Network) i LAN (Local Area Network) ) i wszystkie funkcje automatyzacji, podczas gdy stacje operatorskie zapewniają tylko interfejs użytkownika (human machine interface). Stosuje się różne rodzaje modułów w zależności od konkretnych ich zastosowań. Wszystkie stacje operatorskie są przemysłowymi komputerami osobistymi pracującymi w systemie operacyjnym Microsoft® Windows XP™ 32-bit i są połączone zdublowaną redundantną siecią lokalną. Wszystkie stacje pracują zawsze równolegle, co oznacza, że żadna z nich nie jest stacją (komputerem) nadrzędną (master) i chociaż wszystkie są identyczne mogą być różnie skonfigurowane przez co osiąga się dostęp do różnych ich funkcji. Niektóre stacje operatorskie są używane tylko do monitoringu, na przykład w biurze pokładowym. Zmiany parametrów określonych urządzeń dokonane na jednej stacji operatorskiej przenoszą się automatycznie ze znacznikiem czasowym na inne stacje operatorskie. Poza tym dane na stacjach są odświeżane automatycznie. Dwie lub więcej stacji operatorskich można skonfigurować jako redundantne. Stacje operatorskie mogą być standardowymi konsolami dostarczanymi przez Kongsberg Maritime lub jako niezależne elementy do pracy na biurku. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 18 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Rys.1. Schemat K-Chief 500 Ostrzegawczy system wywoławczy (Watch Calling System, WCS) jest rozbudowanym okrętowym systemem alarmowym. System monitoruje ładunek i alarmy w siłowni. Dedykowane panele alarmowe są zlokalizowane w różnych miejscach na statku wyświetlając alarmy i warunki ich powstania. Rys.2. Ostrzegawczy system wywoławczy (może zawierać do 28 paneli wywoławczych połączonych siecią CAN; panele są sterowane za pomocą stacji operatorskich; WBU Watch Bridge Unit). Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 19 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Sieć komputerowa w systemie K-Chief 500 System K-Chief 500 jest obsługiwany przez stacje operatorskie. Sygnały wejściowe i wyjściowe do i z urządzeń polowych miedzy stacją operatorską i urządzeniami polowymi przesyłane są za pomocą sieci LAN, CAN i liniami szeregowymi. Sieć LAN jest wykorzystywana do komunikacji między stacjami operatorskimi i innymi urządzeniami bazującymi na PC. Sieć CAN łączy rozproszone moduły. Sieć LAN jest otwartą, standardową siecią Ethernet z protokołem TCP/IP, co umożliwia dołączanie dodatkowych komputerów zewnętrznych, jak na przykład programów interfejsowych firmy Kongsberg Maritime. CAN jest wysoce niezawodną magistralą procesową wykorzystywaną do komunikacji między stacjami operatorskimi a modułami rozproszonymi. Sieć może być uzupełniona bramkami (gateways) pozwalającymi na przykład na oddzielenie różnych sekcji alarmów i monitoringu. Bramki te pozwalają też uczynić autonomicznymi podsystemy lokalne będące częścią całego systemu zintegrowanego, na przykład sterowanie zaworami, pompami, zarządzanie mocą, sterowanie napędem lub załadunkiem, etc. System bramek nie pogarsza jakości pracy całego systemu K-Chief 500. Komunikacja pomiędzy modułami rozproszonymi a urządzeniami polowymi odbywa na bazie protokołów szeregowych RS-422 i RS-485. W systemie zastosowano podwójną redundantną sieć procesową (co jest standardem we wszystkich produktach Kongsberg Maritime). Własności sieci komputerowych są następujące: W obu sieciach przesyłane są identyczne informacje, Uszkodzenie jednej sieci nie wpływa na działanie całego systemu, Uszkodzenia jednej sieci nie powoduje wzrostu opóźnienia przesyłanych danych, Ruch w sieci jest monitorowany na wszystkich stacjach operatorskich i alarmowany w przypadku uszkodzenia elementu sieci. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 20 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Zasilanie systemu K-Chief 500 System zasilany jest napięciem przemiennym 230 V (stacje operatorskie) i 24 V napięciem stałym (moduły rozproszone). Zasilanie uzupełniają przełączalne zasilacze UPS (Uninterruptible Power Supplies), podtrzymujące zasilanie przez 30 minut. Midi Operator Stations (MOS) Ważną rolę w systemie K-Chief 500 odgrywają stacje operatorskie typu midi (rys.3). Rys.3. Stacja operatorska typu MIDI Stacje operatorskie MIDI są stacjami operatorskimi ogólnego przeznaczenia, które mogą być rozmieszczone w dowolnym miejscu na statku, a nawet poza pokładem. Sygnalizują alarmy, sterownie procesem i zarządzanie mocą. Operacje na stacjach operatorskich przeprowadzane są za pomocą klawiszy funkcyjnych i kolorowego wyświetlacza. Na stacji wyświetlane są diagramy mimiczne sterowanych układów okrętowych. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 21 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Własności modułów rozproszonych Widok jednego z modułów rozproszonych przedstawia rys.4. Rys.4. Moduł systemu rozproszonego Własności modułów rozproszonych: Każdy moduł zawiera własny mikroprocesor, Możliwość zdalnego konfigurowania każdego modułu, Dioda sygnalizacyjna wielofunkcyjna (watch dog, uruchomienie, informacje ogólne, inicjacja modułu, polaryzacja napięcia) na obudowie, Trójdrożna izolacja między I/O a zasilaniem, I/O a szyną procesową i między zasilaniem a szyną procesową, Tylko jedna płytka drukowana (stąd zwiększona odporność na drgania i wstrząsy), Łatwa wymiana płytki drukowanej bez konieczności ponownego ustawiania przełączników, gniazd, itp. Brak wewnętrznych części serwisowych, Wszystkie połączenia są rozłączalne, Beznapięciowa pamięć, Synchronizacja czasowa, Podwójny interfejs magistrali CAN, Możliwość wgrywania oprogramowania (software download), Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 22 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Wbudowany monitoring temperatury, zasilania i przeciążenia czujnika (Built In SelfTest (BIST)), Zapamiętywanie wszystkich parametrów w każdym module, Interfejs użytkownika - Human machine interface (HMI) HMI odgrywa bardzo ważną rolę dlatego, że umożliwia efektywną i bezpieczną pracę w systemie pomagając operatorowi podejmować optymalne decyzje i zredukować ryzyko błędów człowieka. W projektowaniu HMI kładzie się nacisk na operacje logiczne, efektywną prezentację odpowiednich informacji i przyjazność interfejsu dla użytkownika. Standardowy hardware’owy interfejs K-Chief 500 zawiera następujące części: Monitory typu kolor, Panele operatorskie z klawiaturą i manipulatorem kulowym, Opcjonalny ekran dotykowy, Wykonywane operacje są kompatybilne z przeprowadzanymi w systemie Windows. Wyświetlane obrazy w systemie K-Chief 500 W systemie K-Chief 500 wyświetlane są następujące typy obrazów: Obrazy procesów - graficzna prezentacja obsługiwanego procesu (rys.5.). Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 23 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Rys.5. Graficzna prezentacja systemu napędowego Obraz listy – lista urządzeń w danym układzie automatyzacji, Rys.6. Lista w systemie K-Chief 500 Obraz trendów – krótko lub długoterminowych, Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 24 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Rys.7. Okno trendów Lista zdarzeń – analogicznie jak na rys.6. Obraz konfiguracyjny pokazuje aktualny status automatyzowanego systemu. Podgląd dla nawigatora jest obrazem na ekranie dotykowym (Touch Control Panel). Daje on dostęp do wszystkich wyświetlanych układów automatyzacji. Może on być widoczny także na stacji operatorskiej. Podgląd informacji o statku Pakiet ShipViewer może być zainstalowany na dowolnym komputerze PC, który może być dołączony do systemu K-Chief 500. Program ten umożliwia podgląd tych samych informacji co na stacjach operatorskich (rys.8). Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 25 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Rys. 8. Rozbudowany system K-Chief 500 Literatura Materiały firmowe ze stron internetowych. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 26 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Temat: Standardowe interfejsy szeregowe Do najbardziej znanych interfejsów komunikacji szeregowej należą: RS-232, RS232C (V.24), RS-422, (RS-422A), RS-423, RS-485. Są one stosowane w prostych układach pomiarowych, regulatorach, komputerach i cechują się małą prędkością transmisji danych, ale pozwalają na budowę systemów pomiarowych i sterujących rozłożonych na dużej przestrzeni. Zasada pracy takiego interfejsu polega na tym, że blok danych (bajt) jest wpisywany do rejestru przesuwnego i bit po bicie transmitowany zgodnie z taktami zegara nadajnika (zakłada się, że zarówno nadajnik jak i odbiornik są taktowane z tą samą częstotliwością). Transmisja szeregowa oznacza, że dane są przesyłane bit po bicie. W celu zapewnienia poprawności transmisji stosowane są dwie metody koordynacji transmisji informacji: transmisja synchroniczna, która polega na nadawaniu i odbieraniu poszczególnych bloków danych poprzedzonych oddzielnym sygnałem synchronizującym nadajnik i odbiornik. Transmisja synchroniczna jest stosowana rzadko; transmisja asynchroniczna, która polega na tym, że przed i po każdym transmitowanym znaku (zwykle jest to 1 bajt tj. 8 bitów) występuje bit startu oraz bit stopu. Format przesyłania danych w transmisji asynchronicznej obejmuje bit startu, bity danych, bit kontrolny (opcjonalnie) i bity stopu. Innymi słowy każdy przesyłany bajt jest traktowany niezależnie i zawiera jeden lub więcej bitów synchronizacji; w ramach bajtu poszczególne bity są przesyłane synchronicznie – zgodnie z taktami zegara nadajnika. Bit kontrolny pełni najczęściej funkcję kontroli parzystości, która polega na sprawdzeniu liczby jedynek w polu danych i ustawieniu bitu kontrolnego na logiczną „1” w przypadku nieparzystej liczby jedynek lub na logiczne „0” w przypadku parzystej liczby jedynek. W przypadku transmisji danych w obecności bardzo silnych zakłóceń stosowane są inne środki kontroli błędów, np. metoda sumy kontrolnej lub metoda cyklicznego sprawdzania redundancji – Cyclic Redundancy Check-sum, CRC). W tym ostatnim przypadku transmitowane dane są traktowane jako „wielomian danych” D(x), który jest dzielony przez określony z góry „wielomian generujący” G(x) dając w wyniku „wielomian ilorazu” Q(x) i resztę R(x): Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 27 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego D(x)/G(x)=Q(x)+R(x) Wielomian R(x) nazywa się CRC i przedstawia dane 16 lub 8 bitowe. Odbiornik używa identycznego „wielomianu generującego” G(x) w celu odtworzenia R’(x). Jeśli R(x)=R’(x) to odbiornik wysyła sygnał: potwierdzenie pozytywne transmisji (ACK). Negatywny wynik porównania jest sygnalizowany negatywnym potwierdzeniem (NAK), które powoduje powtórzenie transmisji. Podstawową zaletą transmisji szeregowej jest możliwość stosowania tanich kabli o bardzo małej liczbie przewodów (dwa, trzy), co umożliwia tworzenie systemów rozłożonych na dużej przestrzeni. Interfejs RS-232C Standard RS-232 (Recommended Standard) został zdefiniowany w 1962 roku przez Electronic Industry Association (EIA) jako interfejs umożliwiający współpracę terminala (ekran z klawiaturą lub komputer pracujący w sieci) z modemem (urządzenie do przesyłania danych na duże odległości). Zmodernizowaną w 1969 roku wersję standardu RS-232 nazwano RS-232C. Standard ten określa szeregowy sposób transmisji danych na niedużych odległościach między terminalem (DTE, Data Terminal Equipment) a modemem (DCE, Data Communication Equipment). Interfejs RS-232C stanowi najczęściej 25-stykowe lub 9-stykowe złącze szufladkowe DB25 (rys. 3.9) lub DB-9 (rys. 3.10). Rys. 3.9. Interfejs RS-232C – 25-stykowe złącze typu DB-25 Rys. 3.10. Interfejs RS-232C – 9-stykowe złącze typu DB-9 Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 28 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego W komputerze PC złącze szeregowe RS-232C może służyć np. do podłączenia myszki lub modemu i jest 25-cio wtykowym gniazdem typu męskiego (z igłami). Opis końcówek interfejsu RS-232C przedstawia tabela 3.1. W magistrali interfejsu RS-232C można wyróżnić następujące grupy linii: linie danych, linie sterujące, linie synchronizacji, linie masy. Linie danych. W dwukierunkowym przesyłaniu danych wykorzystywane są 4 linie. Linie (TxD i RxD) tworzą kanał podstawowy; linie STxD i SRxD – kanał powrotny, który nie zawsze jest wykorzystywany. Linie sterujące. Są to linie przekazujące sygnały gotowości urządzeń do pracy (DSR, DTR) oraz sygnały gotowości do transmisji (RTS, CTS). Linie synchronizacji. Po liniach danych przesyłanie informacji może być – jak wiadomo – realizowane synchronicznie lub asynchronicznie. Linie synchronizacji są wykorzystywane w transmisji synchronicznej jako tzw. linie podstawy czasu, którymi przesyłane są sygnały zegarowe. W RS-232C istnieją trzy linie tego typu: DA (styk nr 24), DB (styk nr 15), DD (styk nr 17). Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 29 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Tabela 3.1 Złącze Najczęściej używane: 25- 9- styk. styk. e 1 Oznaczeni Opis PG masa ochronna 2 3 TxD dane nadawane (przesyłane) przez DCE 3 2 RxD dane odbierane przez DCE 4 7 RTS żądanie nadawania przez DTE 5 8 CTS gotowość do nadawania przez DCE 6 6 DCE gotowość do pracy DCE 7 5 SG masa sygnałowa (GND) 8 1 DCD śledzenie poziomu sygnału odbieranego przez DCE 9 – zarezerwowane dla celów diagnostycznych 10 – zarezerwowane dla celów diagnostycznych 11 nie wykorzystany 12 SRLSD poziom sygnału odbieranego w kanale powrotnym DCE 13 SCTS gotowość kanału powrotnego DCE 14 STxD dane nadawane w kanale powrotnym DTE 15 podstawa czasu z DCE dla nadawanych elementów 16 SRxD dane odbierane w kanale powrotnynm DCE 17 podstawa czasu wytwarzana w DCE 18 nie wykorzystany 19 20 4 SRTS żądanie nadawania w kanale powrotnym DTE DTR gotowość DTE (terminala) Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 30 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Złącze Najczęściej używane: 21 SOD jakość sygnału odbieranego przez DCE RI wskaźnik wywołania DCE 22 9 23 wybór szybkości transmisji przez DTE 24 podstawa czasu z DTE dla elementów nadawanych 25 nie wykorzystany Uwaga: Część linii jest niewykorzystana przy bezpośredniej współpracy komputer-terminal. Linie masy. W RS-232C występują dwie masy: na styku 1, tzw. masa ochronna, oznaczona jako PG (Protective Ground); jest to masa zabezpieczająca połączona z obudową urządzenia; na styku 7, tzw. masa sygnałowa, oznaczona jako SG (Signal Ground) lub GND; stanowi ona odniesienie do wszystkich pozostałych sygnałów interfejsu. Parametry elektryczne interfejsu RS-232C. Na liniach danych obowiązuje logika ujemna (sygnały danych są aktywne w stanie niskim) oraz następujące poziomy UL sygnałów: logiczna „1”: –15 V UL –3V logiczne „0”: +3 V UL +15 V Na liniach sterujących i synchronizacji obowiązuje logika dodatnia (sygnały danych są aktywne w stanie wysokim) oraz następujące poziomy napięć UL sygnałów: logiczna „1”: +3 V UL +15 V logiczne „0”: –15 V UL –3V Zakres napięć –3 V UL +3 V nie określa jednoznacznie stanu obwodu, jednak dla linii RTS, DSR i SRTS napięcie to jest interpretowane jako logiczne „0”. Dzięki przyjęciu takich poziomów sygnałów (dużej rozpiętości między dwoma poziomami logicznymi) transmisja danych jest bardzo odporna na zakłócenia, nawet przy zastosowaniu nie ekranowanych przewodów. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 31 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Sposoby przesyłania danych. W transmisji szeregowej występują trzy tryby przesyłania danych: simpleks, czyli transmisja jednokierunkowa między dwoma urządzeniami; półdupleks, czyli transmisja dwukierunkowa niejednoczesna po jednej linii transmisyjnej; dupleks, czyli transmisja dwukierunkowa jednoczesna polegająca na jednoczesnym nadawaniu w obu kierunkach. Łączenie urządzeń z interfejsem RS-232C Standard RS-232C określa sposób łączenia urządzenia typu DTE (terminal, komputer) z urządzeniem typu DCE (modem) oraz umożliwia połączenie dwóch dowolnych urządzeń (komputer-przyrząd pomiarowy, komputer-komputer) bez pośrednictwa modemu. Wtedy każde z dwóch łączonych urządzeń może być traktowane jako DTE. Punktem wyjścia przy konstruowaniu połączeń tego typu jest założenie, że każde z urządzeń DTE musi „widzieć” drugie urządzenie jako DCE. Zadanie połączenia dwóch dowolnych urządzeń polega na takim połączeniu wyprowadzeń złącz RS-232C, aby urządzenie pierwsze „widziało” drugie jako modem i odwrotnie, a kabel do takiego połączenia nazywa się kablem modemu zerowego rzędu (null-modem). Długość przewodu łączącego nie powinna przekraczać 15 m. Wydłużenie przewodu skutkuje zwiększeniem wrażliwości na zakłócenia, czyli zwiększeniem liczby błędów transmisji danych. Zasięg interfejsu RS-232C może być zwiększony przez zastosowanie pętli prądowej 0 – 20 mA, która umożliwia zwiększenie zasięgu do 1500 m i tych samych prędkościach transmisji jak dla RS-232C. Schemat obwodu interfejsu RS-232C przedstawia rysunek 3.11. 12 V 12 V N O Rys. 3.11. Połączenie nadajnika N i odbiornika O w standardzie RS-232C (transmisja niesymetryczna – po jednym kablu) Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 32 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Wady interfejsu RS-232C Do wad RS-232C należą: brak dobrych zabezpieczeń przed zakłóceniami, ograniczona szybkość transmisji (od 1200 do 19200 bit/s), ograniczona odległość transmisji (maksymalnie 15 m), nadajnik można połączyć tylko z jednym odbiornikiem. Maksymalna szybkość transmisji w standardzie RS 232C wynosi 20 kbitów/s; maksymalna długość przewodów: 15 m; czułość odbiornika: 3 V; minimalna rezystancja obciążenia nadajnika: 300 ; rezystancja wyjściowa nadajnika: 120 k; rezystancja wejściowa odbiornika: od 3 do 7 k. Interfejs RS-422 Schemat obwodu interfejsu RS-422 przedstawia rysunek 3.12. Standard RS-422 (obok RS-485) jest obecnie bardzo często stosowany w regulatorach, sterownikach PLC i do transmisji danych z komputera do odległych stacji. Został on zaprojektowany w 1965 r. Jak widać z rysunku 3.12 nadajnik ma wejście różnicowe na poziomie 2 ... 5 V, zrównoważony tor przesyłowy (tzn., że obydwa przewody oraz dołączone do nich obwody nadajnika i odbiornika mają taką samą impedancję w odniesieniu do masy, jak i do innych przewodów) oraz odbiornik o róznicowym obwodzie wejściowym. Napięcie zasilające wynosi 5 V. Przy zastosowaniu tego interfejsu możliwe są do uzyskania następujące prędkości transmisji sygnałów i zasięgi: 100 kbit/s*) – 1500 1 Mbit/s**) – 150 m, 10 Mbit/s – 30 m. *) **) 1 KBIT/S = 125 B/S (BAJTÓW/S). 1 MBIT/S 122 KB/S (KILOBAJTÓW/S). Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 33 m, Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego 5V O1 5V N O2 Rys. 3.12. Połączenie nadajnika N i odbiorników O1 i O2 w standardzie RS-422 Interfejs RS-423 Interfejs RS-423 stanowi zmodyfikowaną (1965 r.) wersję interfejsu opisanego poprzednio interfejsu RS-232C. RS-423 posiada następujące cechy: odbiornik ma wejście różnicowe, co przyczynia się do eliminacji wpływu napięć pasożytniczych i przesłuchów pomiędzy liniami. Zastosowanie wejścia różnicowego powoduje, że odbiornik reaguje na małe zmiany napięcia (od 200 mV do 6 V), a nie na 10 V jak w interfejsie RS-232C. maksymalny zasięg transmisji dochodzi do 1200 m przy prędkości 3 kbit/s; 30 m przy prędkości 100 kbit/s; do nadajnika można przyłączyć 10 odbiorników. Schemat obwodu interfejsu RS-423 przedstawia rysunek 3.13. 12 V 12 V N O Rys. 3.13. Połączenie nadajnika N i odbiornika O w standardzie RS-423 Interfejs RS-485 Standard RS-485 jest zmodyfikowaną (1983 r.) wersją interfejsu RS-422 (RS-422A). Umożliwia on dołączanie wielu nadajników (32) i odbiorników (32) do jednej linii transmisyjnej (rys. 3.14). Nadajniki, które są nieaktywne przechodzą w stan odcięcia. Interfejs RS-485 stosowany we wszystkich nowoczesnych regulatorach, w przemysłowych sieciach sterująco-pomiarowych CAN, PROFIBUS, ADAM (Advantech). Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 34 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Wymagane parametry nadajników: każdy nadajnik powinien zapewnić różnicowe napięcie wyjściowe od –1,5 V do 5 V; nadajniki powinny być trójstanowe – w danej chwili może nadawać tylko jeden z nich. Wymagane parametry odbiorników: duża rezystancja wejściowa (minimum 12 k); zakres napięcia wejściowego odbiornika: od –7 V do 12 V; czułość wejścia różnicowego – 200 mV; urządzenia standardu RS-485 można łączyć z urządzeniami RS-422; obciążenia mogą się składać z nadajników i/lub odbiorników (z wyłączeniem oporów dopasowujących). R R N O O N Nadajnik/Odbiornik Rys. 3.14. Schemat połączeń w standardzie RS-485 (transmisja symetryczna) O – odbiornik; N – nadajnik; R – opór dopasowujący (60 ) Maksymalna szybkość transmisji w standardzie RS 485 wynosi 10 Mbitów/s; maksymalna długość przewodów: 1200 m; czułość odbiornika: 200 mV; minimalna rezystancja obciążenia nadajnika: 60 ; rezystancja wyjściowa nadajnika: 120 k; rezystancja wejściowa odbiornika: 12 k. W czasie szeregowej transmisji danych występują następujące efekty: Tłumienie sygnałów, które można kompensować za pomocą regeneratorów sygnałów Ograniczenie pasma przenoszenia, którego wielkość zależy od zastosowanego medium transmisyjnego (skrętka, kabel koncentryczny, światłowód), Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 35 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Występowanie zakłóceń takich jak :różne potencjały masy nadajnika i odbiornika, szumy pomiarowe; Magistrala USB USB (Universal Serial Bus), czyli uniwersalna magistrala szeregowa została opracowana w roku 1994 przez firmy Microsoft, Intel, Compaq, IBM i DEC. Jest to sprzętowy port komunikacyjny komputerów, który zastąpił stare porty szeregowe i porty równoległe. Poprzez ten port mogą być dołączane do komputera PC różne urządzenia (np. dyski zewnętrzne, dodatkowa klawiatura, sterowniki programowalne, roboty, itp.). Port ten ma własności plug&play, plug&operate co oznacza automatyczne wykrywanie i rozpoznawanie przez system operacyjny dołączonego urządzenia i instalację jego sterowników, a następnie uruchomienie. Większość współczesnych systemów operacyjnych obsługuje złącze USB. Można wyróżnić trzy grupy portów USB: USB 1.1 – zakres prędkości pracy zawiera się w przedziale od 1,5Mbit/s (0,1875MB/s) do 12Mbit/s (1,5MB/s), USB 2.0 - maksymalna prędkość przesyłu danych wynosi 480Mbit/s tj. 60 MB/s, USB 3.0 - maksymalna prędkość przesyłu danych wynosi 4,8 Gb/s (600 MB/s). Rys. Widok kabla USB 2.0 Transmisja odbywa się przy wykorzystaniu dwóch przewodów (zielonego Data+ i białego Data-). Magistrala zawiera również linię zasilającą (czerwony (+5V dc) i czarny o napięciu 5 V i maksymalnym poborze prądu 0,5 A. W starszych płytach głównych występuje zamiast czterech pięć styków dla każdego gniazda USB; piąty styk należy wówczas połączyć z czarnym przewodem GND płytki z gniazdem. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 36 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Niekiedy można spotkać się z następującymi kolorami przewodów: niebieski, pomarańczowy, zielony, biały. Wówczas kolor biały odpowiada czerwonemu (na rysunku jest to przewód nr 1), zielony - biały albo żółty (na rysunku jest to przewód nr 2), pomarańczowy - zielony (na rysunku jest to przewód nr 3), niebieski - czarny (na rysunku jest to przewód nr 4). W niektórych przypadkach przewód czarny (na rysunku oznaczony jako nr 4.) znaczony jest kolorem białym, natomiast kolor biały (przewód nr 2 na rysunku) bywa zastępowany niebieskim. Komunikacja urządzeń z USB oparta na tzw. potokach (pipes), czyli kanałach logicznych (logical channels). Potok jest połączeniem między kontrolerem hosta (tj. komputerem macierzystym do którego urządzenie jest dołączane) a urządzeniem traktowanym jako jednostka logiczna i nazywaną punktem końcowym (endpoint). Potok jest formowany tylko w trakcie zaistnienia połączenia między hostem a urządzeniem. Urządzenie USB może mieć do 32 aktywnych potoków: 16 wejściowych do kontolera hosta i 16 wyjściowych z kontrolera hosta. Standardowe interfejsy równoległe W interfejsach równoległych 8-, 16- lub 32-bitowy blok danych jest wpisywany do rejestru wejścia /wyjścia nadajnika i w całości transmitowany do/z odbiornika. Umożliwia to znaczne przyspieszenie transmisji danych w porównaniu do transmisji szeregowej. Przykładowe interfejsy równoległe: VXI (MXI), GPIB, CENTRONICS. Historia interfejsu VXI (VMEbus eXtension for Instrumentation) sięga roku 1985. Łączy on zalety powstałego w latach siedemdziesiątych innego interfejsu IEC-625 (prostota, elastyczność, łatwość programowania) z szybkością interfejsu VME zaprojektowanego w 1982 roku przez firmę Motorola. Elementy interfejsu VXI tworzy płyta główna (backplane) do której montowane są moduły (karty) z elementami elektronicznymi oraz karty pomocnicze. Płyta montowana jest w odpowiednio zaprojektowanej obudowie (kasecie), która zawiera także układy dodatkowe (zasilania, chłodzenia, przeciwzakłóceniowe). Interfejs VXI zawiera trzy magistrale: Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 37 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego magistralę ogólnego przeznaczenia; jest ona dostępna dla każdego urządzenia zainstalowanego w systemie; w magistrali tej są 4 szyny; magistralę specjalną, która zawiera 3 szyny; magistralę wydzieloną służąca do łączności pomiędzy sąsiednimi modułami. W pełnym systemie VXI może być zainstalowanych maksymalnie 256 urządzeń. Interfejs VXI może być sterowany dwoma sposobami: za pomocą komputera zewnętrznego; szybkość transmisji pomiędzy VXI a komputerem wynosi maksymalnie 1 MB/s; za pomocą komputera modułowego zainstalowanego bezpośrednio w obudowie VXI; w tym przypadku szybkość transmisji wynosi ok. 40 Mb/s. Interfejs GPIB (General Purpose Interface Bus) jest odmianą innego bardzo popularnego standardu sprzęgania aparatury kontrolno-pomiarowej i informatycznej, którego europejskim odpowiednikiem jest IEC-625, a amerykańskim IEEE-488. Podstawą działania systemu pomiarowego pracującego w tym standardzie jest magistrala cyfrowa umożliwiająca bezpośrednią współpracę dowolnej pary urządzeń lub też przesyłanie informacji do wielu urządzeń równocześnie. Komunikacja w systemie IEC-625 odbywa się za pomocą nadawania i odbierania komunikatów (adresów, rozkazów, danych) lokalnych, czyli wewnętrznych przesyłanych w urządzeniu oraz zdalnych, czyli zewnętrznych (magistralowych) przesyłanych pomiędzy różnymi urządzeniami. Komunikaty są reprezentowane wartościami logicznymi prawda lub fałsz. Maksymalna szybkość transmisji wynosi 1MB/s. Liczba urządzeń bezpośrednio dołączonych do magistrali IEC-625 może wynosić 15. Zwiększenie liczby dołączonych urządzeń (do 28) można uzyskać przez zastosowanie tzw. ekspandera. Kaskadowe połączenie ekspanderów powiększa liczbę dołączonych urządzeń. Standardowy zasięg IEC-625 wynosi 20 m. Zasięg ten może być zwiększony przez wykorzystanie linii telefonicznej z modemami lub sieci komputerowych opartych na protokole TCP/IP. W IEC625 urządzenia dołączone są równolegle do magistrali składającej się z 16 linii sygnałowych (8 linii danych, 3 linie synchronizacji, 5 linii sterujących) oraz 9 linii masy. Interfejs CENTRONICS jest powszechnie wykorzystywanym standardem do równoległego przesyłania informacji pomiędzy komputerem a drukarką. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 38 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Literatura 1. Mielczarek W., Szeregowe interfejsy cyfrowe, Helion, Gliwice 1993. 2. Daniluk A. RS 232C: praktyczne programowanie: od Pascala i C++ do Delphi i Buildera, Gliwice: Helion, 2007. 3. Brzózka J., Regulatory cyfrowe w automatyce, MIKOM, Warszawa 2002. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 39 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Temat: Kwantowanie, próbkowanie, aliasing Układami dyskretnymi regulacji automatycznej nazywa się układy, w których informacja jest przekazywana za pomocą sygnałów dyskretnych (nieciągłych), które mogą być dyskretne w poziomie (rys.1a) lub dyskretne w czasie (rys.1b). t a) t b) Rys.1. Dyskretyzacja sygnału: a – w poziomie (kwantowanie); b – w pionie (dyskretyzacja, próbkowanie, kwantowanie w czasie) Próbkowanie polega na tym, że w ustalonych odstępach czasu (w chwilach impulsowania) mierzy się wartość chwilową sygnału i na jej podstawie tworzy są tzw. próbki (samples). Sygnał przekształcony do postaci spróbkowanej nazywa się sygnałem dyskretnym. Próbkowanie jest to więc zamiana sygnału ciągłego na dyskretny (konwersja w dziedzinie czasu). Dyskretyzację sygnału w poziomie wykonuje w MATLAB-ie/Simulinku blok quantizer, a w pionie (z podtrzymaniem wartości) blok ZOH. rys.2 ilustruje działanie tych bloków, dla sygnału liniowo narastającego. a) Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 40 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego b) c) d) Rys.2. Porównanie działania bloków quantizer i ZOH: a – schemat blokowy; b – sygnał wejściowy; c – sygnał wyjściowy z quantizera; d – sygnał wyjściowy z bloku ZOH Minimalną pulsację (ωs) z jaką powinien być próbkowany sygnał analogowy, aby można było go odtworzyć z sygnału impulsowego określa twierdzenie o próbkowaniu ShannonaKotielnikowa2. Sygnał ciągły mający widmo ograniczone w przedziale [–w, w] można jednoznacznie odtworzyć na podstawie jego wartości chwilowych, wtedy gdy pulsacja próbkowania s jest nie mniejsza niż 2w: s 2 w lub f s 2 fw Twierdzenie to określa więc z jaką minimalną pulsacją (częstotliwością) powinien być próbkowany sygnał ciągły, aby mógł być odtworzony z sygnału impulsowego. 2 NAD TYM TWIERDZENIEM PRACOWALI DWAJ NAUKOWCY W ZUPEŁNEJ OD SIEBIE SEPARACJI KOTELNIKOW I SHANNON. – OBAJ DOSZLI DO TYCH SAMYCH WNIOSKÓW, A TWIERDZENIE JEST ZAMIENNIE CLAUDE ELWOOD SHANNON (1916 - 2001) - AMERYKAŃSKI MATEMATYK I INŻYNIER, PROFESOR MIT (MASSACHUSETTS INSTITUTE OF TECHNOLOGY) NAZYWANE ICH NAZWISKAMI. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 41 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego W twierdzeniu Shannona założono, że widmo sygnału ciągłego jest ograniczone do pulsacji w. Jednak w praktyce sygnał ciągły zawiera zawsze częstości wyższe niż w. Wynika stąd, że pulsacja próbkowania powinna być większa niż wynikająca z twierdzenia Shannona (s 20b, gdzie b jest pasmem przepustowości układu zamkniętego – rys. 3), tzn. b = w s 2 (10 w ) Rys.3. Ilustracja pasma przepustowości b zamkniętego układu regulacji Jeżeli f s 2 f w to sygnał spróbkowany wykazuje fałszywą charakterystykę w dziedzinie częstotliwości, a zjawisko takie nosi nazwę zjawiska aliasingu (maskowania). Kwantowanie polega na przyporządkowaniu jednakowych wartości sygnału pomiędzy dwoma różnymi wartościami sygnałów impulsowych (rys.4). Kwantowanie jest to więc zamiana sygnału analogowego na cyfrowy (konwersja w dziedzinie amplitudy). e(i) t Ts Rys.4. Sygnał e(i) po wykonaniu operacji kwantowania (Ts – okres próbkowania) Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 42 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Szacowanie okresu próbkowania Poprawne wyznaczenie okresu próbkowania Ts jest ważne z następujących względów: zbyt duży okres próbkowania Ts prowadzi do naruszenia wymagań twierdzenia Shannona-Kotielnikowa i nie pozwala rekonstruować sygnału ciągłego z sygnału dyskretnego; zbyt krótki okres próbkowania Ts zwiększa obciążenie obliczeniowe procesora prowadząc do zwiększenia kosztów sprzętu (i oprogramowania), którego cena rośnie wraz ze wzrostem częstotliwości próbkowania f s T1s ; okres próbkowania jest jednym z nastawianych parametrów w dyskretnych układach regulacji automatycznej od którego zależy jakość procesu regulacji dyskretnej; jeżeli transmitancja układu ciągłego ma zera (miejsca zerowe licznika) dodatnie (układ jest nieminimalnofazowy), to przez odpowiedni dobór Ts można uzyskać, że układ dyskretny będzie minimalnofazowy (zera znajdą się wewnątrz koła jednostkowego); niewłaściwy dobór Ts powoduje, że powstają oscylacje ukryte. Tworzą się one wtedy, gdy zachodzi znoszenie się zer i biegunów transmitancji dyskretnej; Wybór okresu próbkowania ściśle zależy od przeznaczenia układu regulacji lub sterowania. W tabeli 1 zestawiono zalecane przedziały okresów próbkowania. Tabela 1 Czas/częstotliwo Przetwarzanie ciągłe Przetwarzanie ść próbkowania sterowane zdarzeniami 10 – 500 s Dokładne (2 kHz - 0,1 elektryczne; sterowanie sieci i modelowanie, energetyczne; układy Interfejs człowiek – precyzyjnie maszyna MHz) sterujące roboty 0,5 – 20 ms Stabilizacja systemów mocy, symulatory lotu, Sterowanie (50 Hz – 2 kHz) treningowe, samochody systemami Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 43 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego wysokiego poziomu 10 – 100 ms Przetwarzanie obrazów, rzeczywistość wirtualna, telekomunikacja (10 Hz – 100 sztuczne widzenie, wolne czynności zdalne Hz) 0,5 – 1 sec Monitorowanie i sterowanie obiektów; procesy Systemy baz danych (1 Hz – 2 Hz) chemiczne, elektrownie 1 – 3 sec Regulacja przepływu (0,33 Hz – 1 Hz) 1 – 5 sec Układy regulacji ciśnienia (0,2 Hz – 1 Hz) 5 – 10 sec Układy regulacji poziomu (0,1 Hz – 0,2 Hz) 10 – 20 sec Układy regulacji temperatury (0,05 Hz – 0,1 Hz) Aliasing (utożsamianie, rys.5) to nieodwracalne zniekształcenie sygnału w procesie próbkowania wynikające z niespełnienia warunku Nyquista3. Zniekształcenie to objawia się obecnością w sygnale składowych o błędnych częstotliwościach (aliasów). Rys.5. Dwie sinusoidy o różnych częstotliwościach mające te same próbki (aliasing). W tej sytuacji nie można odróżnić jednej sinusoidy od drugiej. Uniemożliwia to więc jednoznaczne odtworzenie tych sinusoid. 3 CZĘSTOTLIWOŚĆ NYQUISTA JEST TO MAKSYMALNA CZĘSTOTLIWOŚĆ SKŁADOWYCH WIDMOWYCH SYGNAŁU PODDAWANEGO PROCESOWI PRÓBKOWANIA. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 44 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Interpretacja aliasingu w dziedzinie częstotliwości W dziedzinie częstotliwości widmo sygnału próbkowanego zostaje w procesie próbkowania zwielokrotnione w ten sposób, że kopia widma pierwotnego zostaje umieszczona w każdej całkowitej wielokrotności fs (częstotliwość próbkowania) po obu stronach osi częstotliwości. Jeśli maksymalna częstotliwość sygnału próbkowanego (szerokość jego widma) przekracza połowę częstotliwości próbkowania fs, to kolejne powtarzające się widma zaczynają się na siebie nakładać i zgodnie z twierdzeniem Shannona-Kotielnikowa nie da się odtworzyć oryginalnego sygnału z tak zniekształconych próbek. W celu uniknięcia zjawiska aliasingu należy zapewnić, aby sygnał próbkowany był ograniczony pasmowo do częstotliwości Nyquista czyli połowy częstotliwości próbkowania. Można to uzyskać przez ograniczenie widma sygnału przy pomocy filtru, (filtrem antyaliasingowy). Filtr ten powinien mieć szerokość pasma mniejszą niż połowa częstotliwości próbkowania. Literatura 1. Brzózka J., Regulatory cyfrowe w automatyce, MIKOM, Warszawa 2002. 2. Izydorczyk J., Płonka G., Tyma G., Teoria sygnałów. Wstęp - Kompendium wiedzy na temat sygnałów i metod ich przetwarzania, Wydawnictwo Helion 2006. 3. Dag Stranneby, Cyfrowe przetwarzanie sygnałów. Metody, algorytmy, zastosowania, Wydawnictwo BTC Warszawa 2004. 4. Steven W. Smith, Cyfrowe przetwarzanie sygnałów. Praktyczny poradnik dla inżynierów i naukowców, Wydawnictwo BTC Warszawa 2007. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 45 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Temat: Mikroprocesor i jego elementy peryferyjne. Mikroprocesor (w skrócie μP) jest wielkim stopniu integracji4 to cyfrowy układ sekwencyjny scalony o (wielkim stopniu scalenia) wykonujący operacje cyfrowe (arytmetyczne i logiczne), czyli rozkazy pobierane z pamięci zgodnie z taktem sygnału zegarowego. Pierwsze mikroprocesory powstały we wczesnych latach siedemdziesiątych XX wieku i były to mikroprocesory czterobitowe5 (mikroprocesor 4004 firmy Intel; mikroprocesor TMS1802NC firmy Texas Instruments), ośmiobitowe (Intel&Datapoint mikroprocesory 8008, 8080; Zilog Z80; Motorola 6800; MOS 6501, 6502), szesnastobitowe wieloukładowe (National Semiconductor IMP-16; mikroprocesor DEC firmy Digital Equipment Corporation wbudowany w płytę główną komputera PDP 11/03); szesnastobitowe jednoukładowe (TMS 9900 firmy TI; Intel 8086, 80186, 80286), 32-bitowy procesor 80386 firmy Intel (procesory te umocniły swoją dominację na rynku komputerów osobistych (PC) głównie dzięki tzw. kompatybilności wstecznej). W komputerach mikroprocesor główny nazywa się CPU (Central Processing Unit). Elementy składowe mikroprocesora jednostka arytmetyczno-logiczna (ALU, Arithmetic Logic Unit) wykonuje bitowe operacje logiczne (AND, OR, NOT, XOR) i arytmetyczne na liczbach całkowitych (dodawanie, odejmowanie, negacja liczby, dodawanie z przeniesieniem - zwiększanie/zmniejszanie o 1, przesunięcia bitowe o stałą/zmienną liczbę bitów, mnożenie i czasem dzielenie/modulo) na dostarczonych danych; 4 Wielka skala integracji – VLSI (Very Large Scale of Integration) oznacza, że układ scalony możezawierać tysięce lub miliony tranzystorów na jednej powierzchni płytki krzemowej. 5 czterobitowe, czyli wykonujące operacje jednocześnie na czterech bitach; analogicznie w innych przypadkach. Procesory o architekturze wektorowej lub macierzowej, stosowane są głównie w superkomputerach, mogą wykonywać jednocześnie operacje arytmetyczne na całych wektorach lub macierzach. Procesory superskalarne pozwalają na wykonywanie kilku instrukcji w jednym cyklu zegara. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 46 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Rys.1. Symbol jednostki arytmetyczno-logicznej układ sterowania (CU, Control Unit), zwany też dekoderem rozkazów, wykonuje dekodowanie dostarczonych mikroprocesorowi rozkazów i powoduje wykonanie operacji odpowiadających tym rozkazom. Argumenty tych operacji mogą pochodzić z rejestrów mikroprocesora, pamięci lub układów wejścia/wyjścia. Wyniki tych operacji są wpisywane do rejestrów mikroprocesora, pamięci lub są przesyłane na wyjście, Rejestry (Register) są to umieszczone wewnątrz mikroprocesora komórki pamięci o pojemności 4/8/16/32/64/128 bitów służące do przechowywania tymczasowych wyników obliczeń (rejestry danych), adresów (rejestry adresowe), danych i adresów (rejestry ogólnego przeznaczenia), do przechowywania i wykonywania obliczeń na liczbach zmiennoprzecinkowych (rejestry zmiennoprzecinkowe zwane koprocesorami), do przechowywania stałych (rejestry stałych), do przechowywania wielu danych do jednoczesnego przetwarzania (rejestry wektorowe). Proste mikroprocesory mają tylko jeden rejestr danych zwany akumulatorem. Liczba rejestrów zależy od zastosowania procesora. Oprócz wymienionych rejestrów występują też rejestry specjalnego przeznaczenia: licznik rozkazów (PC, Program Counter) zawiera adres komórki pamięci posiadającej następny rozkaz do wykonania. Po każdym pobraniu kodu rozkazu zawartość licznika rozkazów jest zwiększana o jeden. Długość licznika rozkazów, czyli liczba bitów wyznacza maksymalną pojemność pamięci, jaką można obsługiwać, czyli określa przestrzeń adresową mikroprocesora. Dla długości licznika rozkazów 32 bity maksymalna pojemność pamięci wynosi: 32 2 =4 294 967 296 słów. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 47 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Rozkazy mikroprocesora można podzielić na: rozkazy przesłań (między rejestrami mikroprocesora, między rejestrami mikroprocesora a pamięcią), rozkazy arytmetyczno-logiczne, rozkazy sterujące wykonaniem programu (na przykład ADD - dodaj, SUB - odejmij, OR, INC - zwiększ o 1, itp.), rozkazy sterujące wykonaniem programu (JP –skocz, RET – powróć, PUSH – zapisz na stos, POP – zdejmij ze stosu) i rozkazy wejścia/wyjścia (służą do komunikacji mikroprocesora z otoczeniem zewnętrznym, na przykład IN – wczytaj dane z wejścia, OUT – prześlij zawartości rejestru na wyjście) rejestr instrukcji (IR, Instruction Register) zawiera kod aktualnie wykonywanego przez procesor rozkazu, wskaźnik stosu (SP, Stack Pointer) zawiera adres wierzchołka stosu. Stos jest to liniowa struktura danych, w której dane dokładane są na wierzch stosu i z wierzchołka stosu są pobierane (bufor typu LIFO, Last In, First Out; ostatni na wejściu, pierwszy na wyjściu) - odczytywanie kolejnych „komórek pamięci” odbywa się w kolejności odwrotnej do kolejności ich zapisywania. Stos jest używany są przez procesor do chwilowego zapamiętywania rejestrów procesora. Mikroprocesor komunikuje się z otoczeniem za pomocą szyny danych i szyny adresowej (rys.2). Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 48 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Dane Szyna danych Bufor Wskaźnik stosu licznik rozkazów Akumulator Rejestr pomocniczy Rejestry robocze R1 ... Rn Rejestr buforowy Bufor Rejestr stanu ALU Szyna adresowa Rejestr rozkazów Dekoder rozkazów wejściowe i wyjściowe sygnały sterujące Bufor Szyna sterująca Jednostka sterująca Sygnał zegarowy Rys.2. Struktura mikroprocesora Każdy mikroprocesor w zależności od liczby posiadanych rejestrów można zaklasyfikować do jednej z trzech architektur: CISC (Complex Instruction Set Computers); własności: setki rozkazów, rozkazy mogą operować bezpośrednio na pamięci, pojedynczy rozkaz mikroprocesora, wykonuje kilka operacji niskiego poziomu, rozkazy wykonywane są w przeciągu od kilku do kilkunastu cykli zegara, różne tryby adresowania, rozbudowany dekoder adresów, RISC (Reduced Instruction Set Computers) własności: zredukowana liczba rozkazów (kilkadziesiąt) i trybów adresowania co przyczynia się do uproszczenia dekodera adresów, efektywne instrukcje redukujące odwołania pomiędzy pamięcią, a procesorem, zwiększona liczba rejestrów, VLIW (Very Long Instruction Word) - nazwa architektury mikroprocesorów z bardzo długim słowem. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 49 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Inne architektury to: ZISC (Zero Instruction Set Komputer), MISC (Minimal Istruction Set Computer). Mikroprocesor współpracuje z elementami peryferyjnymi, takimi jak: Pamięć; pamięć jest zbiorem rejestrów zwanych komórkami. W komórkach tych zapisany jest ciąg rozkazów tworzących program oraz dane tego programu. Komórki pamięci są numerowane, a numer komórki jest jej adresem. Kolejne rozkazy programu umieszcza się w kolejnych komórkach pamięci w postaci słów dwójkowych – kodów rozkazów. Typowy rozkaz mikroprocesora składa się z dwóch części: kodu operacji i adresu komórki pamięci, w której znajduje się argument operacji, np. ADD a – dodaj do akumulatora zawartość komórki pamięci o adresie a. Pamięć ROM (Read Only Memory), rys.4; możliwy jest jedynie odczyt z pamięci, nie można zmieniać jej zawartości, nie traci swojej zawartości po wyłączeniu zasilania. Dlatego przechowuje się w niej programy konieczne do uruchomienia komputera. Rodzaje pamięci ROM: PROM (Programmable ROM) - pamięć programowalna tylko do odczytu. Jest to pamięć jednokrotnego zapisu. EPROM (Erasable Programmable ROM) - kasowalna (poprzez naświetlanie ultrafioletem) pamięć tylko do odczytu. Programowanie tej pamięci odbywa się za pomocą specjalnego programatora. EEPROM (Electrically Erasable Programmable ROM) - pamięć kasowalna i programowalna elektrycznie. Pamięć RAM (Random Access Memory), rys.5 – pamięć o dostępie swobodnym, czyli pamięć o dostępie bezpośrednim (a nie sekwencyjnym, który wymaga odczytania po kolei wszystkich danych poprzedzających potrzebną daną) do dowolnej komórki pamięci; jest to pamięć przechowująca aktualnie wykonywane programy i dane dla tych programów oraz wyniki ich pracy, jest stosowana jako pamięć operacyjna, jej zawartość może być odczytywana i modyfikowana. Pamięci RAM dzielą się na szybkie pamięci statyczne (Static RAM, SRAM) oraz wolniejsze pamięci dynamiczne (Dynamic RAM, DRAM), które wymagają częstego odświeżania (refreshing), a bez Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 50 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego którego szybko tracą swoją zawartość. Podstawowe parametry dla układów pamięci to ich pojemność podawana najczęściej w kilobitach (kb) a nie w kilobajtach (kB) oraz czas dostępu, czyli czas potrzebny na przeczytanie lub zapisanie w niej danych, mierzony w nanosekundach (ns). Dla pamięci DRAM czas dostępu do danych wynosi nie więcej niż 150 ns dla starszych. Oprócz czasu dostępu istotna jest również liczba cykli zegara w czasie których pamięć dokona zapisu i będzie gotowa do następnego zapisu. Nazywa się to „stanem oczekiwania” (wait state) gdyż w tym czasie mikroprocesor czeka na gotowość pamięci do dalszego współdziałania. Układy DMA (Direct Memory Access), czyli układy bezpośredniego dostępu do pamięci powodują, że układy peryferyjne mikroprocesora mogą korzystać z pamięci operacyjnej lub (czasami) portów we-wy pomijając procesor główny – CPU. Odciąża to procesor główny, który może w tym czasie wykonywać inne rozkazy. Liczniki/timery (czasomierze) Układy portów6 wejścia/wyjścia, umożliwiają wymianę informacji z urządzeniami peryferyjnymi (np. czujnikami, przełącznikami, przyciskami, klawiaturą, itp.). Porty wejścia/wyjścia są adresami pamięci, używanymi przez procesor do bezpośredniej komunikacji z urządzeniem, wysyłającym do niego sygnał przerwania. Wymiana danych może odbywać się w sposób szeregowy lub równoległy, synchronicznie lub asynchronicznie. Mikroprocesor i wszystkie jego układy peryferyjne umieszczone na jednej lub kilku płytach drukowanych tworzą mikrokomputer. 6 Port jest interfejsem pomiędzy komputerem a urządzeniami peryferyjnymi. Rozróżnia się porty sprzętowe, czyli fragmenty sprzętu do podłączenia urządzeń zewnętrznych i wymiany informacji z komputerem oraz porty programowe. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 51 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego ROM RAM Magistrala adresowa μP Magistrala danych Magistrala sterująca Układy wejścia–wyjścia do od urządzeń zewnętrznych Rys.3. Schemat blokowy mikrokomputera Rys.4. Moduły pamięci ROM typu DIP (Dual In-line Package), czyli w obudowie dwurzędowej, z dwoma rzędami metalowych nóżek Rys.5. Moduł pamięci DDRAM 512MB 400MHz KINGSTON CL3 typu SIMM (Single In-line Memory Module) czyli w obudowie jednorzędowej, przypominającej miniaturowa kartę. Jak już wspomniano, jednostka arytmetyczno-logiczna wykonuje działania na liczbach całkowitych. Trudniejsze dla mikroprocesora są działania na liczbach Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 52 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego zmiennoprzecinkowych wykonuje wspomagający mikroprocesor, który nazywa się koprocesorem. (FPU, Floating Point Unit). Obecnie koprocesory są zintegrowane z procesorem w jednym układzie. Podobną rolę jak koprocesor dla obliczeń zmiennoprzecinkowych pełni procesor graficzny wspomagający i przyspieszający tworzenie i przetwarzanie grafiki. DMA przerwania Zasada pracy mikroprocesora Mikroprocesor pobiera dane z pamięci, interpretuje je i wykonuje jako ciąg prostych operacji (rozkazów) wybranych ze zbioru operacji podstawowych określonych przez producenta procesora jako lista rozkazów procesora. Po zakończeniu wykonywania jednego rozkazu mikroprocesor przystępuje do wykonywania następnego rozkazu, itd. Wykonanie rozkazu przebiega następująco: 1. Pobranie kodu rozkazu (adresu rozkazu), 2. Pobranie kodu operacji z komórki pamięci o adresie zapisanym w liczniku rozkazów, 3. Zwiększenie zawartości licznika rozkazów o 1, 4. Zdekodowanie rozkazu, 5. Wykonanie operacji; jeśli rozkaz zawiera adres argumentu, to nastąpi dodatkowo zwiększenie zawartości licznika rozkazów o 1. Powyższe czynności tworzą tzw. cykl rozkazowy mikroprocesora składający się z dwóch faz: fazy pobrania (pierwsze trzy czynności) i fazy wykonania (pozostałe). Przebiegiem cyklu rozkazowego zarządza układ sterowania synchronizowany sygnałem zegarowym. Jeden cykl rozkazowy trwa zwykle kilka do kilkunastu taktów zegarowych. Długość cyklu rozkazowego – czyli czas wykonania rozkazu – zależy przede wszystkim od tego, ile razy w fazie wykonania mikroprocesor musi odczytać/zapisać z/do pamięci argumenty operacji. Rozkazy, które nie odwołują się do pamięci w celu odczytu argumentu są wykonywane o wiele szybciej niż rozkazy z odwołaniami do pamięci. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 53 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Umieszczając mikroprocesor i wszystkie jego układy peryferyjne w jednym układzie scalonym tworzy się tzw. mikrokontroler (MCU lub μC), który stanowi miniaturową wersję kompletnego komputera przystosowane są do bezpośredniej współpracy z rozmaitymi urządzeniami zewnętrznymi. Dalsza część wykładu zostanie poszerzona o mikrokontroler (AT90S2313) według: www.atmel.com P. Górecki Mikrokontrolery dla początkujących, BTC Warszawa 2006 oraz procesor sygnałowy DSP. Literatura Szafarczyk M., Śniegulska-Grądzka D., Wypysiński R., Podstawy układów sterowań cyfrowych i komputerowych, PWN MIKOM, Warszawa 2007. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 54 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Temat: Programowanie obsługi kart w języku C/C++; MATLAB, DASYLab, LabVIEW. Obsługa programowa (interfejsów typu RS). Wymiana danych pomiędzy komputerem a urządzeniami (lub pomiędzy dwoma urządzeniami) realizowana jest dzięki wcześniejszemu ustaleniu protokołu transmisji, czyli specyficznego zbioru reguł, procedur lub różnego rodzaju konwencji dotyczących formatu i czasu trwania przesyłania danych. Przesyłane dane mogą być buforowane lub nie buforowane. Bufor (buffer) definiowany jest jako obszar pamięci użytej do skompensowania różnic w szybkości przesyłania danych lub w czasie występowania znaków sterujących (lub innych zdarzeń) podczas transmisji pomiędzy urządzeniami. Dane mogą być przesyłane w sposób szeregowy lub równoległy. Do najważniejszych standardów, realizujących transmisję szeregową należy zaliczyć: RS 232C (w Europie zwany V.24) i jego rozwinięcia: RS 422, RS 423, RS 449, RS 485, interfejs IEEE 1394 (Firewire), stosowany głównie w urządzeniach przetwarzających dźwięk i obraz oraz najnowszy produkt USB (Universal Serial Bus). Komunikacja z przyrządami posiadającymi interfejs RS232 Przykładowy program: % plik: RS_01.m % utworzenie obiektu programowego portu szeregowego gauge_1= serial('COM1'); % otwarcie połączenia miernika z obiektem programowym portu szeregowego fopen(gauge_1); % ustawienie niektórych własności obiektu programowego: Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 55 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego % składnia polecenia: utworzony_obiekt.nazwa_własności_obiektu= % =’wartość_tej_własności’ gauge_1.Terminator = 'CR'; % Terminator – znak występujący na końcu wiadomości % przesyłanych między komputerem a miernikiem % domyślnie LF). Timeout – czas oczekiwania w sekundach % na zakończenie zapisu i odczytu wiadomości (domyślnie 10 s) gauge_1.Timeout = 1; % zapis do bufora wyjściowego komunikatu z rozkazem dla % miernika, w tym przypadku na końcu komunikatu % jest dopisywany znak CR fprintf(gauge_1, '#02'); % odczyt z bufora wejściowego komunikatu z odpowiedzią % z miernika, znak CR zostanie również % zapamiętany w zmiennej t (można też użyć funkcji % fgetl lub fgets) t = fscanf(gauge_1); % zamknięcie połączenia miernika z obiektem programowym portu szeregowego fclose(gauge_1); % usunięcie obiektu programowego z dysku delete(gauge_1); % usunięcie obiektu programowego z pamięci roboczej MATLAB-a clear gauge_1; Uwagi do programu Wszystkie własności utworzonego obiektu programowego gauge_1 można wylistować za pomocą funkcji get >> get(gauge_1) ByteOrder = littleEndian Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 56 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego BytesAvailable = 0 BytesAvailableFcn = BytesAvailableFcnCount = 48 BytesAvailableFcnMode = terminator BytesToOutput = 0 ErrorFcn = InputBufferSize = 512 Name = Serial-COM1 ObjectVisibility = on OutputBufferSize = 512 OutputEmptyFcn = RecordDetail = compact RecordMode = overwrite RecordName = record.txt RecordStatus = off Status = closed Tag = Timeout = 10 TimerFcn = TimerPeriod = 1 TransferStatus = idle Type = serial UserData = [] ValuesReceived = 0 ValuesSent = 0 SERIAL specific properties: BaudRate = 9600 BreakInterruptFcn = Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 57 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego DataBits = 8 DataTerminalReady = on FlowControl = none Parity = none PinStatus = [1x1 struct] PinStatusFcn = Port = COM1 ReadAsyncMode = continuous RequestToSend = off StopBits = 1 Terminator = LF Ustawienia własności obiektu można dokonać w trakcie jego tworzenia: gauge_1 = serial('COM1','Terminator','CR','Timeout',1) albo przy wykorzystaniu funkcji set: set(gauge_1,'Terminator','CR','Timeout',1) stosując następującą regułę nadawania wartości poszczególnym własnościom utworzonego obiektu programowego (w tym przypadku gauge_1): ‘NazwaWłasności1’,’WartośćWłasności1’,‘NazwaWłasności2’,’WartośćWłasności2’, …. Aktualny wartość danej własności można odczytać następująco: >> gauge_1.ReadAsyncMode czyli nazwa_obiektu.nazwa_własności Możliwe do ustawienia wartości parametrów poszczególnych własności można odczytać następująco: >> set(gauge_1) ByteOrder: [ {littleEndian} | bigEndian ] BytesAvailableFcn: string -or- function handle -or- cell array BytesAvailableFcnCount Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 58 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego BytesAvailableFcnMode: [ {terminator} | byte ] ErrorFcn: string -or- function handle -or- cell array InputBufferSize Name ObjectVisibility: [ {on} | off ] OutputBufferSize OutputEmptyFcn: string -or- function handle -or- cell array RecordDetail: [ {compact} | verbose ] RecordMode: [ {overwrite} | append | index ] RecordName Tag Timeout TimerFcn: string -or- function handle -or- cell array TimerPeriod UserData SERIAL specific properties: BaudRate BreakInterruptFcn: string -or- function handle -or- cell array DataBits DataTerminalReady: [ {on} | off ] FlowControl: [ {none} | hardware | software ] Parity: [ {none} | odd | even | mark | space ] PinStatusFcn: string -or- function handle -or- cell array Port ReadAsyncMode: [ {continuous} | manual ] RequestToSend: [ {on} | off ] StopBits Terminator Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 59 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego SERIAL7 tworzy obiekt programowy dla portu szeregowego S=SERIAL('PORT') tworzy obiekt programowy dla portu szeregowego połączony z portem o nazwie PORT. Jeśli PORT nie istnieje lub jest używany nie można będzie połączyć obiektu programowego portu szeregowego PORT z urządzeniem. Aby móc się komunikować z dołączonym urządzeniem utworzony obiekt programowy musi być otwarty za pomocą funkcji FOPEN. Jednocześnie, tylko jeden obiekt programowy portu szeregowego może być dołączony do portu szeregowego komputera. Po utworzeniu obiektu programowego portu szeregowego automatycznie są konfigurowane następujące jego własności: Type, Name, Port. Można to odczytać w następujący sposób: >> gauge_1.type ans = serial >> gauge_1.name ans = Serial-COM1 >> gauge_1.port ans = COM1 Zmienne i ich własności dla obiektu gauge_1 można wylistować za pomocą polecenia whos. 7 W MATLAB-ie polecenia wykorzystywane w helpach są pisane wielkimi literami, ale pisząc je w celu wykonania (w oknie Command Window lub programach wsadowych) należy je pisać małymi literami. Jest to zgodne z zasadą stosowaną w języku C na którym MATLAB jest oparty. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 60 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego WHOS listuje wszystkie bieżące zmienne znajdujące się w przestrzeni roboczej wraz z ich parametrami (polecenie WHO zwraca tylko nazwy bieżących zmiennych). W postaci S=WHOS(...) polecenie to zwraca strukturę8 jak niżej >> s=whos('gauge_1') s= name: 'gauge_1' size: [1 1] bytes: 158 class: 'serial' global: 0 sparse: 0 complex: 0 nesting: [1x1 struct] persistent: 0 (Pomoc do każdego polecenia można uzyskać pisząc w oknie Command Window help nazwa_polecenia). Objaśnienie powyższego listingu jest następujące: name nazwa zmiennej, size rozmiar zmiennej, bytes wielkość w bajtach, class klasa zmiennej, global wartość logiczna wskazująca czy zmienna jest globalna, sparse wartość logiczna wskazująca czy zmienna jest rzadka, complex nesting wartość logiczna wskazująca czy zmienna jest zespolona, struktura zawierająca dwa pola: 8 Struktura to typ danych wprowadzony przez programistów MATLAB-a. Struktura zawiera tzw. kontenery danych, które nazywają się polami. Każde pole może zawierać dane różnych typów (np. jedno pole może być typu string, a inne typu integer, boolean, itp. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 61 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego function nazwa funkcji gdzie definiowana jest zmienna, level poziom zagnieżdżony funkcji, persistent wartość logiczna wskazująca czy zmienna jest trwała. FOPEN dołącza obiekt programowy portu szeregowego do urządzenia. FOPEN(OBJ) dołącza obiekt programowy portu szeregowego, OBJ, do urządzenia. OBJ może być tablicą obiektów portu szeregowego. Jednocześnie tylko jeden obiekt programowy portu szeregowego z taką samą konfiguracją może być dołączony do urządzenia, na przykład do portu COM2. Jeśli OBJ jest poprawnie dołączony do urządzenia, wówczas jego status jest ustawiany na otwarty; w przeciwnym przypadku jego status jest ustawiany na zamknięty. Jeśli OBJ jest otwarty dane pozostające w buforze wejściowym i wyjściowym przepływają, a wartości następujących własności: BytesAvailable, BytesToOutput, ValuesReceived oraz ValuesSent są zerowane. Wartości niektórych własności są weryfikowane po dołączeniu do urządzenia BaudRate, FlowControl oraz Parity. Jeśli wartości te nie są takie jak w urządzeniu, wówczas zwracany jest błąd, a obiekt programowy portu szeregowego nie będzie dołączony do urządzenia. Niektóre własności obiektu programowego portu szeregowego są tylko do odczytu, w czasie, gdy jest on otwarty (dołączony) i muszą być konfigurowane przed zastosowaniem fopen. Należą do nich InputBufferSize oraz OutputBufferSize. FPRINTF zapisuje sformatowane dane do pliku tekstowego. FPRINTF(FID, FORMAT, A, ...) FID jest identyfikatorem pliku zwracanego przez FOPEN (fid=fopen(…)); FID można także ustawić na 1 dla standardowego wyjścia na ekran lub na wartość 2, gdy ma być zwracany błąd. FORMAT określa format zapisywanych danych w tablicy A. Sposób formatowania podaje się w postaci łańcucha, który jest kombinacją liter, cyfr i znaków sterujących, na przykład '%6.2f %12.8f\n'. Szczegóły można uzyskać pisząc: Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 62 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego >> doc fprintf w oknie Command Window po znaku zgłoszenia systemu >>. FPRINTF(FORMAT, A, ...) formatuje dane i wyświetla je na ekranie. FSCANF odczytuje sformatowane dane z pliku. [A,COUNT]=FSCANF(FID,FORMAT,SIZE) czyta dane z pliku, którego identyfikatorem jest FID, konwertuje zgodnie z FORMAT i zwraca macierz A. COUNT jest opcjonalne a zwraca liczbę elementów przeczytanych poprawnie. FID jest całkowitoliczbowym identyfikatorem uzyskanym z polecenia FOPEN. Parametr SIZE jest opcjonalny, a podaje on liczbę znaków, które mogą być czytane z pliku. W odróżnieniu od polecenia FSCANF w języku C polecenie to w MATLAB-ie może operować na argumentach wektorowych. FCLOSE zamyka plik. ST=FCLOSE(FID) zamyka plik identyfikowany przez FID. Udane wykonanie pliku zwraca 0 lub -1 w przeciwnym przypadku. Jeśli FID nie reprezentuje otwartego pliku lub nie jest równe 0 (wyjście standardowe), 1 (standardowe wyjście) lub 2 (błąd standardowy) to FCLOSE zwraca błąd. ST = FCLOSE('all') zamyka wszystkie otwarte pliki, z wyjątkiem 0, 1 i 2. DELETE usuwa plik z dysku lub obiekt graficzny. Mogą być stosowane znaki globalne (* ?), na przykład DELETE *.p usuwa wszystkie pliki z rozszerzeniem p w bieżącym folderze. Można stosować składnię DELETE('nazwa_pliku'), jeśli nazwa_pliku jest typem łańcuchowym. DELETE(H) usuwa obiekt graficzny identyfikowany przez H. Jeśli obiektem jest okno graficzne (H=gcf) to jest ono zamykane i kasowane bez potwierdzenia. CLEAR usuwa wszystkie zmienne i funkcje z pamięci. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 63 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Operacje synchroniczne i asynchroniczne Zapis i odczyt komunikatów może się odbywać w dwóch trybach: 1. synchronicznym, (domyślnie) tzn. do chwili zakończenia operacji blokowany jest dostęp do wiersza poleceń MATLAB-a, 2. asynchronicznym, tzn. dostęp do wiersza poleceń nie jest blokowany, a ten tryb jest przydatny przy przesyłaniu komunikatów o znacznych rozmiarach. Koniec operacji zapisu następuje, gdy spełniony jest jeden z warunków: zapisano wszystkie dane (fprintf, fwrite9), upłynął czas oczekiwania (j. w.). Koniec operacji odczytu następuje, po spełnieniu jednego z warunków: odebrano znak końca komunikatu (fscanf, fgetl10, fgets11), odebrano zadaną liczbę danych (fscanf, fread12), upłynął czas oczekiwania (wszystkie funkcje), bufor wejściowy został zapełniony (wszystkie funkcje). w trybie asynchronicznym – również za pomocą funkcji stopasync13. Zapis komunikatu w trybie asynchronicznym jest następujący: fprintf(gauge_1, ..., 'async') Własność ReadAsyncMode określa, czy odbiór komunikatu z urządzenia pomiarowego ma się rozpocząć automatycznie (continuous) czy na polecenie użytkownika (manual), do czego służy funkcja readasync. (readasync czyta dane w sposób asynchroniczny z urządzenia). Własność TransferStatus – stan realizacji operacji asynchronicznej. Własność BytesAvailable – ilość bajtów zgromadzonych w buforze wejściowym. 9 fwrite zapisuje dane binarne do pliku. 10 fgetl czyta linię z pliku, pomijając znak nowej linii. 11 fgets czyta linię z pliku, zachowując znak nowej linii. 12 fread czyta dane binarne z pliku. 13 stopasync zatrzymuje odczyt i zapis asynchroniczny. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 64 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Obsługę urządzeń zewnętrznych w środowisku MATLAB zapewniają też następujące biblioteki: Instrument Control Toolbox [www.ont.com.pl oraz http://www.mathworks.com/ ] Instrument Control Toolbox pozwala na komunikację środowiska MATLAB z takim sprzętem, jak oscyloskopy, generatory funkcyjne i instrumenty analityczne. Moduł udostępnia spójny interfejs, niezależny od platformy sprzętowej instrumentów, protokołu czy sterownika. Wsparcie dla sterowników IVI, VXI plug&play i sterowników MATLAB-a. Obsługa protokołów GPIB (HPIB, IEEE-488) i VISA (GPIB, GPIB-VXI, VXI, USB, TCP/IP, serial). Są one używane przez takie firmy jak: Agilent Technologies, Capital Equipment Corporation, CONTEC, ICS Electronics, IOTech, Keithley, Measurement Computing, and National Instruments, Rohde & Schwarz, and Tektronix. Obsługa interfejsów szeregowych, w tym RS-232. Obsługa instrumentów sieciowych poprzez TCP/IP oraz UDP. Wymiana danych między instrumentami a modelami Simulink-a. Graficzny interfejs użytkownika do identyfikacji urządzeń, konfiguracji i komunikacji. Umożliwienie rozwijania sterowników i narzędzi testujących. Funkcje odczytujące i zapisujące dane binarnie lub tekstowo (ASCII). Dostęp do danych synchroniczny lub asynchroniczny (blokujący lub nie blokujący). Obsługa zdarzeń: time-out, odczyt-zapis konkretnej ilości danych i inne. Zapis transferowanych danych. Data Acquisition Toolbox [www.ont.com.pl oraz http://www.mathworks.com/ ] Data Acquisition Toolbox to kompletny zestaw narzędzi potrzebnych do sterowania danymi z analogowych i cyfrowych urządzeń wejścia-wyjścia. Moduł ten pozwala na konfigurację urządzeń zewnętrznych, pobór odczytów do środowiska MATLAB oraz wysyłanie danych do urządzeń. MATLAB i Data Acquisition Toolbox stanowią razem samowystarczalne środowisko do pobierania i analizy danych z urządzeń zewnętrznych. Obsługa przemysłowego sprzętu pomiarowego. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 65 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Wymiana danych między przyrządami a modelami Simulink-a. Dostęp do bieżących danych pomiarowych bezpośrednio w MATLAB-ie. Pojedyncze, zintegrowane środowisko do monitorowania pomiarów, analizy wizualizacji. Obsługa analogowych wejść, analogowych wyjść i pomiarów cyfrowych. Programowy oscyloskop SoftScope do bezpośredniej wizualizacji strumienia danych. Rys.1. Oscyloskop programowy Bezpośredni dostęp do parametrów sprzętowych urządzeń pomiarowych, takich jak pomiar jedno- i wielokanałowy, pojedynczy pomiar punktowy i pomiary buforowane. Automatyczne uruchamianie procedur poprzez zdarzenia sprzętowe i programowe. Możliwość tworzenia własnych interfejsów do nieobsługiwanego sprzętu. Obsługiwane urządzenia: produkty Advantech, Keithley Instruments, Measurement Computing Corporation, National Instruments, VXI Technology oraz karty dźwiękowe kompatybilne z systemem Windows i port równoległy PC. Współczesne systemy pomiarowe bardzo często zbudowane są na bazie komputera PC, ponieważ takie rozwiązanie ułatwia znacznie przetwarzanie, analizę i prezentację komputera danych i pomiarowych. przyrządów współpracujących Połączenie pomiarowych umożliwia z tworzenie Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 66 nim tzw. Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego wirtualnych przyrządów pomiarowych, w których tor pomiarowy w dużej mierze zrealizowany jest poprzez odpowiednie oprogramowanie. Przykładem takiego oprogramowania jest DASYLab (rys.2) w którym za pośrednictwem zdefiniowanych bloków funkcyjnych możliwe jest tworzenie bardzo zaawansowanych systemów pomiarowych. Rys.2. Główne menu programu DASYLab Aplikacje tworzy się umieszczając na arkuszu projektowym odpowiednie moduły, a następnie łącząc je ze sobą co powoduje odpowiedni przepływ sygnałów. Każda ikonka odpowiada jednemu z ponad 100 dostępnych modułów, może to być wejście lub wyście, moduły do analizy oraz prezentacji danych pomiarowych. Wszystkie moduły podzielone są na grupy (rys.3). Rys.3. Menu moduły Zależnie od przeznaczenia można wyróżnić: moduły wejść oraz wyjść, moduły do wyzwalania pomiaru, moduły matematyczne i statystyczne, moduły do przetwarzania i analizy sygnałów, moduły do regulacji, prezentacji i wizualizacji pomiarów, do operacji na plikach, redukcji danych, do obsługi sieci TCP oraz specjalne (rys.4). Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 67 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Rys.4. Przykładowe rozwinięte opcje menu Modules Możliwości przyłączenia sprzętu pomiarowego do komputera jest wiele. Pakiet obsługuje większość interfejsów jakie można spotkać w komputerach PC. Mogą to być karty do komputerów stacjonarnych PCI (Peripheral Component Interconnect), Compact PCI, ISA (Industry Standard Architecture), PCMCIA (Personal Computer Memory Card International Association), zewnętrzne moduły pomiarowe dołączane do portu drukarkowego, RS-232/485, USB (Universal Serial Bus), Ethernet, GPIB (General Purpose Interface Bus), CAN (Controller Area Network). Pakiet może również współpracować z urządzeniami komunikującymi się w standardzie IVI (Interchangeable Virtual Instruments). Dane pomiarowe mogą być wymieniane z innymi aplikacjami poprzez mechanizm DDE (Dynamic Data Exchange) lub OPC (OLE (Object Linking and Embedding) for process control). W sumie DASYLab wyposażony jest w sterowniki do 250 kart i modułów pomiarowych 50 różnych producentów np. IOtech (obecnie: Measurement Computing Corporationhttp://www.mccdaq.com/), Advantech (www.advantech.com/), (http://www.ni.com/, Keithley (http://www.keithley.com/ ) National Instruments jest to zatem pakiet bardzo uniwersalny. Ma to duże znaczenie w ośrodkach badawczych i na uczelniach wyższych, gdzie można spotkać karty pomiarowe kilku lub kilkunastu producentów. DASYLab jako oprogramowanie stanowi wspólny mianownik dla większości dostępnych na rynku kart Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 68 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego pomiarowych. Jeśli karta nie jest obsługiwana przez oprogramowanie, dostępny jest przybornik programowy (żargonowo: Kit) do tworzenia własnych sterowników, zawierający szczegółowy opis interfejsu pomiędzy DASYLab a bibliotekami *.dll14. DASYLab umożliwia próbkowanie sygnałów pomiarowych z częstotliwością do 1 MHz. Zależnie od platformy sprzętowej dane mogą być wyświetlane w czasie rzeczywistym z prędkością ponad 100000 S/s (Samples/per second - próbek na sekundę), a funkcja disk-streaming15 umożliwia ich zapis na dysku z prędkością do 200 kHz. Do oprogramowania DASYLab opcjonalnie dostępna jest nakładka Net, która umożliwia komunikację poprzez sieć Ethernet i protokół TCP/IP (Transmission Control Protocol/Internet Protocol) pomiędzy poszczególnymi kopiami oprogramowania. Oprócz wymiany danych możliwa jest również w ten sposób zdalna kontrola systemu pomiarowego m.in. załadowanie eksperymentu, wystartowanie, zatrzymanie oraz jednoczesne wystartowanie kilku systemów pomiarowych umieszczonych w różnych lokalizacjach. W lokalnej sieci możliwa jest wymiana danych z prędkością do 100000 S/s. Oprogramowanie może również współpracować z bazami danych poprzez mechanizm ODBC (Open DataBase Connectivity). W aplikacji kontrolno pomiarowej taka możliwość przydaje się np. jeśli chcemy pobrać charakterystykę czujnika, dane kalibracyjne itp., a z drugiej strony umożliwia zapis zmierzonych i przetworzonych danych bezpośrednio do baz y danych. Dodatek: Opis bloków DASYLab (ang.) Inputs/Outputs Analog In-/Output: up to 32 input modules and up to Digital In-/Output: up to 32 input modules and up to 512 channels up to 2 output modules and up to 512 channels up to 2 output modules and 32 channels up to 32 channels 14 Dynamic-Link Library - biblioteka łączona dynamicznie - biblioteka współdzielona z innymi aplikacjami. 15 Dysk-streaming pozwala na odtwarzanie danych bezpośrednio z dysku twardego w celu zmniejszenia obciążenia komputera i pamięci operacyjnej (RAM (Random Access Memory). Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 69 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Counter Input: Frequency up to 2 modules and up to 32 channels Output: up to 2 modules and up to 32 channels RS 232 Input: RS extremely expandable with Master/ Slave modules (up to 256 channels with each serial interface) Icom for up to 16 channels Icom Universal serial module to be used modules with max. 256 channels. IEEE 488 Output: Output of data or Strings via TCP/IP, GPIB or RS232. In-/Output: DDE supports Measurement Computing GPIB, National Instruments Output: output of data or fixed strings Input: with TCP/IP,GPIB and RS232. Master/Slave 232 In-/Output: up to 16 modules and up to 256 channels MODBUS IVI Modules: Handles compatible devices with interface an With these Modules: modules the IVI MODBUS protocol enables DASYLab to (Oscilloscope, read and write Analog and Digital registers Multimeter, Function Generator). for signed and unsigned integer registers, RS232 only. Signal Processing Filter: Correlation: Digital IIR filter with definable Compute correlation coefficient, order and characteristics cross-correlation, autocorrelation, spectrum Data Various Window: types of FFT: evaluation windows, e.g. rectangle, Gauss, Bartlet and Calculate and analyse the discrete spectrum of a signal other types Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 70 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Electrical Polar/Cartesian: Convert data values between polar and cartesian coordinates Harmonic Characteritics: Use the values of Current and Voltage to calculate electric characteristics such as Ueff, cosp etc.. Period Distortion: Calculates the amplitude and phase of the fundamental frequency and up to 48 harmonic waves. Check: Calculates the period of a signal by checking its zero crossings. Period Check: Calculates the period of a signal by checking its zero crossings Trigger Start/Stop Selectable Trigger: start and Pre/Post stop conditions Amplitude- Trigger: and slope-based triggers with hysteresis can be specified Combi Separate signal segments according to logical conditions Trigger SampleTrigger: Trigger: on Separate intervals of a signal based on a predetermined number of samples. Demand: Relay: Separate samples depending on the dynamic behavior of the signals. Control up to 15 channels with one input signal Control Generator: Switch: Signal generation with frequency On/off or momentary switch for and amplitude modulation Coded program and data control Switch: Select from preset values by Slider: Definable signal range; signal Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 71 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego positioning a rotating switch or clicking on level to be modified during measurement buttons. PID Control: Proportional, integral Two and Up Point to 8 Control: control circuits. derivative components can be specified Selectable set values are compared with freely; new auto-tuning function actual values Time Delay: Latch: Data output after a specified period of time TTL generates Constantly outputs the input value received last Pulse TTL Generator: signals with specified duration and switch conditions Save Read Variable: Read Global Variable to generate a data channel to be used in the worksheet Variable: Router: Save data channel to a Global Route data channel based on Variable to be used in module parameters control input (amplitude or edge) or based on and computations time (blocks, time, or action controlled) Block Time: Stop: Extracts the time information of a block and puts time and date into global variables stops or interrupts measurement according to specified conditions Display Y/t High-speed scope display for fast data with a wide range of display options Polar X/Y Chart: Plot Display Chart: data blocks of two dependent signals as an X/Y plot, including a Polar plot view. Chart: Display blocks of two dependent Analog Provides Meter: several shapes Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 72 of Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego signals (X/Y or polar data) in polar instruments and offers peak hold and trend coordinates with a third data as flags. Digital indicator options Meter: Display the value, with trend display and lower/upper marks. Formats include decimal, hex, octal, binary, ASCII & Clock Chart Status Bar (horizontal/vertical), and range display options List: Chart display for slow data, wide options. Graph: thermometer, LED or triangle style; trend Recorder: display area and a wide range of display Bar Show data values displayed in list form; several formatting options Lamp: TTL or Digital Signal status displayed as text and/or images Files Read Data: Write Read data from floppy/hard disk files; supports DASYLab, ODBC Exchange Write data to floppy/hard disk IEEE-32-bit, files; ASCII format Data: supports DASYLab, IEEE-32-bit, ASCII, Diadem and other formats Input/Output: data between DASYLab and ODBC data bases. Data Reduction Average: Block Reduce data using running or Reduce data across data blocks summation averages Average/Peak Hold: using running or summation average, or Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 73 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego using Peak Hold (Minima or Maxima) Separate: Merge/Expand: Reduce data by skipping defined Merge data from several channels number of samples (or blocks) only; outputs or distribute signals from one channel to one, then repeats Cut others Out Time Block: Output specified samples of a block Output Slice: data from different channels according to specified switch conditions Shift Register: Circular Stores data, one point at a time, Buffer: Save an interval of the data into a temporary register, and outputs the stream and send it to the modules output via block repeatedly event driven action Special Modules Black Box: Sub-worksheet worksheet sections; unit use for Import/Export containing common functions or to manage complexity levels (main worksheet and Black Boxes) Message: Trigger various actions on the occurence of specified events Display or print an operator message; play a wave/AVI file; send DDE message; log messages to printer base: Signal Extract and output the time or frequency information of a signal Send Box): Data interface between worksheet Action: Time (Black Synchronize Adaptation: signal flows differing characteristics e-Mail: Use Windows E-Mail to send Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 74 of Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego messages to any address including attachments and custom messages/alarms Mathematics Formula Interpreter: Arithmetic: Link data from several channels according to mathematical functions entered as formulas Basic arithmetic operations; various operands and exponential functions Trigonometry: Differentiation/Integration: Sine, tangent, arc- and hyperbolic Integration of signal values or functions slopes in the signal flow Scaling: Linear scaling, interpolation Slope tables, RTD linearization, thermocouple linearization, offset adjust, linear conversion factors for a large number of measurement Limit Limitation: the difference between values systems Reference Calculates a reference Curve using one or more test runs Bit Logical Curve: Operations: Evaluate TTL data from input channels; operators AND, OR, XOR, NAND, NOT Operations: Flip-Flop: Perform logical operations (bit by Use bistable trigger elements for bit) with the received data words, combine, intermediate data storage (FlipFlop and extract, mask and shift operations MonoFlop) Gray-Code: Channel Decodes signals generated by Compares channels and a constant position encoders Comparator: or to corresponding channels Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 75 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Statistics Statistical Compute effective values, max/min, variance and Values: Position average, Extract in the Signal: value position as standard defined by sample number, date/time or deviation frequency Regression: Histogram: Classify data according to specific intervals and numbers of classes Calculate constant, linear or polynomial regression curves up to an order of 20 Counter: Minimum/Maximum: Count blocks, samples, max/min, Determine extreme values in the zero/level crossings and duration Check Reference Compare the signal signal flow Curve: with Pulse a Width Analysis: Calculates the frequency, length of previously saved reference curve and signal pulses, pauses and pulse/pause ratio in a TTL deviations. pulsed signal. Channel Rearranges Sort: the input channels based on their values Network Net Receive or send data to one or more DASYLab Net via a TCP/IPnetwork. DataSocket Message Input/Output: Input/Output: Receives or Sends messages from or to other DASYLab Net via a TCP/IP network. Import/Export: Exchange data with OPC server via network. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 76 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Analysis Add-On (optional) Sequence Generator: Transfer Generate curves and ramps of The Function: Transfer and Coherence different types which can be combined in functions are calculated for up to 8 pairs of many ways. values. Block Weighting: Convolution: Weight each sample in block by a Up predefined function. to 16 Input signals are processed with digital filters. Write UFF Format: FFT Write data in the Universal File Format 58 for use in system analysis. Universal Filter: Frequency intervals of up to 16 signals are filtered with defined conditions. Filter: FFT Create user defined FIR or IRR Maximum: Calculates the maximum of energy Filters with a helpful filter wizard for FIR of a FFT spectrum by analysing intervals of Filters. the frequency band. n-th Order Harmonic: Rainflow: Calculates the max of the Harmonic up to an order of 20 of FFT data Two-channel Classifies the Several algorithms classify samples for Time-Stress Analysis Classification: values counting of Octave two Analysis: This module is used for One-Third diferrent temporal functions to be used for or Octave Analysis of a signal using digital Time-Stress Analysis. filters optimized to 40KHz Poniższy tekst został zaczerpnięty i opracowany na podstawie http://automatykab2b.pl/ LabVIEW (Laboratory Virtual Instrument Engineering Workbench) firmy National Instruments jest środowiskiem wspomagającym automatyczne wykonywanie pomiarów. Skrót VI w nazwie programu LabVIEW oznacza możliwość tworzenia wirtualnych interfejsów urządzeń pomiarowych. Przyrządy te są Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 77 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego połączone z komputerem na którym uruchomiony jest program LabVIEW i komunikują się między sobą poprzez wirtualne środowisko pomiarowe. Ponieważ konkretna aplikacja może wymagać wykorzystania wielu urządzeń pomiarowych i sterujących jednocześnie, został stworzony interfejs za pomocą, którego użytkownik może kontrolować przeprowadzane pomiary. Interfejs ten, którym jest LabVIEW, pozwala nie tylko na rozpoczęcie i zakończenie cyklu pomiarowego, ale również na zaawansowane przetwarzanie i wizualizację w czasie rzeczywistym wyników pomiarów, jak też definiowanie parametrów pracy wykorzystywanych urządzeń. W skład LabVIEW wchodzą trzy główne moduły – moduł interfejsu graficznego, nazywany też pulpitem, moduł diagramu graficznego odpowiadający za strukturę połączeń pomiędzy poszczególnymi urządzeniami, jak i za strukturę budowanego programu oraz moduł łączący kilku wirtualnych urządzeń LabVIEW w całość. Moduł interfejsu graficznego ma wygląd przedniego panelu urządzenia pomiarowego. Poszczególne znajdujące się w nim obiekty graficzne odzwierciedlają wejścia oraz wyjścia sterownika i reprezentują dane otrzymywane, a także wysyłane do sterowanych z programu urządzeń. Końcówki wyjściowe sterownika to wszelkiego rodzaju przełączniki, przyciski i pokrętła symulujące elementy nastawcze wykorzystywanych urządzeń. Sygnały wejściowe reprezentowane są przez wyświetlacze numeryczne, alfanumeryczne, diody LED, wyświetlacze graficzne (wykresy), tabele itp. W diagram graficznym (wykorzystującym język G) następuje przypisanie elementów panelu operatorskiego do odpowiednich wejść i wyjść urządzeń fizycznie podłączonych do magistrali sterownika. W skład języka wchodzą takie elementy, jak końcówki (terminals), węzły (nodes), przewody (wires) oraz konstrukcje sterujące (structures) – rys.5. Rys. 5. Aplikacja w LabVIEW Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 78 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Końcówki reprezentują porty wejściowe i wyjściowe przesyłające informacje pomiędzy pulpitem i diagramem. Dane wprowadzone za pomocą elementów kontrolnych pulpitu są przekazywane do diagramu przez końcówki kontrolne. Z kolei dane przekazywane w drugą stronę są wyświetlane za pomocą odpowiednich elementów prezentacyjnych na pulpicie. Poszczególne końcówki generowane są automatycznie w diagramie w momencie wstawienia elementu kontrolnego lub prezentacyjnego na pulpicie. Każda z końcówek reprezentuje port określonego elementu pulpitu oraz ma przypisany konkretny typ przesyłanych przez nią danych. Przykładem mogą być np. liczby rzeczywiste zmiennoprzecinkowe typu double, które oznaczane w LabVIEW skrótem DBL. Węzły są drugim typem występującym w diagramie obiektów. Każdy z węzłów reprezentuje procedurę, funkcję lub wyrażenie matematyczne, zapisane w języku tekstowym. Służą one do wykonywania operacji przetwarzania danych, tak aby dane mogły zostać przesłane w odpowiedniej postaci do sterownika lub urządzeń pomiarowych. ‘Przewody’ są trzecim typem obiektów reprezentujących połączenia pomiędzy elementami składowymi diagramu. Pozwalają one na przesyłanie danych pomiędzy zestawionymi blokami, przy czym każde połączenie może być rozgałęzione do wielu bloków odbierających dane, lecz mieć tylko jedno źródło danych. Połączenia są rysowane różnymi kolorami, stylami i grubością linii, w zależności od typu przesyłanych nimi danych. Połączenia wykryte przez kompilator jako niepoprawne – np. z powodu podłączenia wejścia i wyjścia o dwóch niekompatybilnych ze sobą formatach danych – wyróżniane są czarną przerywaną linią. Konstrukcje sterujące są ostatnim z elementów języka graficznego mogących wystąpić w widoku struktury projektu. Zapewniają one specyficzny sposób wykonania programu, dzięki czemu pozwalają na realizację przetwarzania bloków kodu w pętlach, wprowadzanie instrukcji warunkowych lub też ustalenie sekwencji wykonywania poszczególnych bloków kodu. Stworzony diagram, który obrazuje strukturę programu, może być wykorzystany wielokrotnie, o ile wygenerowane zostanie tzw. złącze. Definiuje ono wszystkie wejścia i wyjścia podprogramu odpowiadające elementom kontrolnym i prezentacyjnym panelu. Tym samym umożliwia wykonanie odpowiednich połączeń w Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 79 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego diagramie zawierającym dany podukład, który reprezentowany jest w diagramie jako ikona tworzona podczas generowania złącza. Stworzony diagram powinien odwzorowywać poszczególne elementy procedury pomiarowej. Rozpoczyna się on od końcówek wejściowych elementów kontrolnych pulpitu (np. Input 1 i 2) i węzłów (np. Const DBL) będących źródłem stałych wartości określonego typu, a kończy na wyjściach. Linie wyznaczające drogi przepływu danych mogą się zbiegać w wielowejściowych węzłach, takich jak węzły dodawania lub odejmowania. Każdy węzeł diagramu wykonuje swoje operacje tylko raz. Kolejność wykonania operacji jest określona przepływem danych (dataflow). Każdy z węzłów diagramu rozpoczyna działanie po otrzymaniu wszystkich potrzebnych danych wejściowych. Następnie, po wykonaniu charakterystycznych dla niego operacji, dostarcza wyniki na swoje wyjścia - dane te przesyłane są połączeniami do kolejnych węzłów. Wykonywanie programu można rozpatrywać jako kolejne fazy przetwarzania danych przez węzeł i ich przekazywania do węzłów odbierających. Warto zaznaczyć, że podczas wykonywania programu dane wyjściowe z węzłów pojawiają się i dostarczane są do węzłów odbierających jednocześnie. W przypadku bardziej skomplikowanych diagramów, które zawierają wiele równoległych gałęzi, które obejmują szeregowo połączone węzły, ustalenie kolejności wykonania programu może być zadaniem trudnym. Ponadto nie można ustalić kolejności wykonywania operacji przez węzły, które uzyskały stan gotowości, gdyż będą one pracowały pseudo-jednocześnie. Sprawa staje się jeszcze trudniejsza, gdy w skład diagramu wchodzą ikony reprezentujące inne poddiagramy. Środowisko samo decyduje o kolejności działań stosując technikę arbitralnego przeplotu. W ten sposób węzły lub grupy węzłów różnych gałęzi są wykonywane przemiennie, co skutkuje ich równoległym wykonywaniu w czasie. Warto nadmienić, że kolejność wykonania węzłów diagramu może różnić się w kolejnych uruchomieniach programu. Instrukcje sekwencyjne W języku G, czyli tym w którym tworzone są struktury programów LabVIEW VI, konstrukcja sekwencyjna przedstawiana jest jako ramka filmu i składa się z jednej lub kilku klatek, także często nazywanych ramkami. Pozwala ona na kolejne wykonywanie kodu Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 80 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego programu zgodnie z numeracją klatek. Konstrukcje sekwencyjne stosuje się do wymuszenia określonej kolejności wykonywania fragmentów kodu, gdy nie daje się tego uzyskać stosując przepływem danych. Sekwencję można rozbudować do dowolnej liczby ramek. Instrukcje warunkowe LabVIEW VI (oparte na języku G) zawiera możliwość wprowadzenia konstrukcji warunkowych. Stworzona w tym celu instrukcja case (rys.6) odpowiada funkcjonalnie poleceniom if...then...else lub switch z języka C. Konstrukcja składa się z dwóch ramek, z których każda zawiera blok programowy realizujący określone operacje oraz deklarację wybieranych wartości. Działanie funkcji polega na wykonaniu kodu zawartego w jednej z ramek, której wybór realizowany jest na podstawie danej dostarczonej do wejścia selekcyjnego konstrukcji case. Rys.6. Postać graficzna instrukcji case Wejście selektora konstrukcji case może przyjmować dane w różnym formacie. Zależnie od tego dostępne będą dwie klatki reprezentujące rozgałęzienia programu dla poszczególnych wartości w przypadku selektora typu boolowskiego (true/false) albo, w przypadku selektora o formacie liczb całkowitych, formacie tekstowym lub wyliczeniowym, maksymalnie 231-1 klatek. W drugim przypadku do każdej z możliwych wartości selektora musi być również przypisana jedna z ramek konstrukcji case (rys.7). Rys.7. Postać graficzna instrukcji case z selektorem całkowitym Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 81 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Pętla for Konstrukcję pętli for stosuje się wtedy, gdy liczba wymaganych powtórzeń jest znana w danym miejscu programu. W języku G pętla for ma postać ramki obejmującej poddiagram stanowiący blok kodu programu, który ma być wykonany określoną liczbę razy. Ramka ta ma predefiniowane wejście liczby iteracji oraz terminal wyjścia licznika powtórzeń, którego wartość zmienia się w zakresie od 0 do N-1, gdzie N to wejście liczby iteracji podanych w formacie long integer. Dołączenie danej zmiennoprzecinkowej do wejścia liczby iteracji spowoduje zaokrąglenie tej liczby do wartości całkowitej. Licznik iteracji jest zerowany w momencie rozpoczęcia działania pętli i inkrementowany po każdej z nich. Sprawdzenie warunku zakończenia jest wykonywane przed rozpoczęciem każdej kolejnej iteracji, dlatego dla N=0 pętla nie wykona ani razu swojego diagramu i zakończy działanie. Pętla while Druga ze stosowanych w LabVIEW pętli to while i używa się jej wówczas, gdy liczba wymaganych powtórzeń wykonania nie jest znana. Pętla while także ma postać ramki obejmującej diagram stanowiący blok kodu programu, którego wykonanie jest powtarzane. Rys.8. Postać graficzna instrukcji while oraz przykład Ramka ta ma predefiniowany terminal wyjścia licznika iteracji oraz terminal warunku kontynuowania działania pętli. Terminal kontynuacji działania pętli korzysta z wartości boolowskich wypracowanych przez diagram pętli. Konfiguracja terminala kontynuacji pozwala ustalić wartość logiczną przerywającą lub też konieczną do Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 82 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego kontynuowania działania pętli. Zasady te oznaczone są odpowiednio jako Stop if True lub Continue if True. Sprawdzenie warunku zakończenia jest realizowane po każdej iteracji, dlatego zawsze wykonywana jest przynajmniej jedna iteracja pętli. Działanie tej pętli jest analogiczne do pętli „do...while” języka C. W obu zaimplementowanych pętlach, każda iteracja polega na wykonaniu bloku objętego ramką konstrukcji pętlowej. Blok kodu może być pojedynczym diagramem lub zestawem niezależnych poddiagramów, ale bez przepływu danych pomiędzy nimi. Takie niezależne poddiagramy będą wykonywane w ramach pętli równolegle – jeden raz w każdej iteracji. Jeżeli w którymś z poddiagramów znajdują się także pętle, nazywane wtedy pętlami zagnieżdżonymi, to kolejne iteracje pętli zewnętrznej rozpoczną się po wykonaniu pętli zagnieżdżonej. Czas realizacji poddiagramów z pętlami może być dosyć długi i wówczas, gdy pozostałe diagramy wykonają swoje zadanie, to pozostają zawieszone aż do momentu rozpoczęcia nowej iteracji przez pętlę zewnętrzną. W związku z powyższym, odpowiednia konstrukcja diagramów, jak też ich rozmieszczenie wewnątrz tych samych lub osobnych pętli może mieć duży wpływ na kolejność wykonywania poszczególnych działań, co może mieć znaczenie dla użytkownika z różnych, zależnych od danego układu pomiarowego powodów. Konstrukcje pętli for i while mogą mieć wejścia i wyjścia danych. Kanał wejściowy danych tworzy się automatycznie w momencie prowadzenia połączenia pomiędzy wejściem węzła znajdującego się na zewnątrz pętli, a wejściem węzła poddiagramu pętli. Podobnie kanał danych wyjściowych powstaje podczas łączenia wyjścia węzła poddiagramu pętli z wejściem węzła znajdującego się poza strukturą. Działanie pętli rozpoczyna się po otrzymaniu wszystkich danych wejściowych, których to wartości są zapamiętane i przekazywane do kolejnych iteracji pętli. Oznacza to, że jeśli do kanału wejściowego pętli dołączony jest terminal obiektu nastawczego, to pętla będzie dysponować jego stanem uzyskanym w momencie rozpoczęcia swojego działania. Zmiany stanu tego obiektu nastawczego w czasie działania pętli nie są w niej zauważane. Jeśli pętla ma reagować na aktualny stan obiektu nastawczego, to jego terminal musi być umieszczony wewnątrz struktury pętli. Możliwe jest także przekazywanie danych wejściowych w postaci tablicy. Realizowane jest to na dwa sposoby: albo zwyczajnie – cała tablica przekazywana jest na raz i Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 83 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego utrzymywana w pamięci w czasie trwania pętli (opcja Disable Indexing), albo też wykorzystując indeksowanie, aby w kolejnych iteracjach dostępne były tylko te dane, których indeksy tablicy odpowiadają numerowi aktualnej iteracji (opcja Enable Indexing). W przypadku tablicy wielowymiarowych, kolejne iteracje dostają jako dane wejściowe kolejne podtablice. Jednocześnie skorzystanie z auto-indeksowania wpływa na liczbę iteracji pętli for, która to liczba jest wtedy określona przez mniejszą z dwóch wartości – wejściowej liczby iteracji lub rozmiaru tablicy z danymi. Ponadto, w sytuacji tej wejście liczby iteracji może zostać niepołączone. W przypadku kilku wejść z auto-indeksowaniem, liczba iteracji jest określana rozmiarem najmniejszej tablicy. Wpływ auto-indeksowania na pętlę while jest podobny, z wyjątkiem, gdy rozmiar tablicy jest mniejszy niż liczba powtórzeń wynikająca z działania algorytmu, dane podawane w kolejnych iteracjach przyjmują wartości domyślne dla danego typu liczb. Dla tablicy double są to zerowe wartości numeryczne. Pętle for są wydajniejsze od pętli while, co wynika ze z góry znanej liczby powtórzeń. Dzieje się tak, gdyż w przypadku, gdy liczba iteracji przekroczy rozmiar tablicy z danymi, aplikacja musi realokować pamięć i przenieść dane do nowego obszaru, co skutkuje dodatkowym obciążeniem układów procesora i pamięci. Niemniej, pętle while mogą być znacznie wygodniejsze do realizowania niektórych algorytmów. Warto zwrócić uwagę, że pętle for są domyślnie ustawione w trybie auto-indeksacji zarówno wejść – jeśli te są tablicami, jak i dla dowolnego typu wyjść. Pętle while domyślnie pracują bez tego trybu. Obliczanie wyrażeń Operacje wykonywane na przetwarzanych danych wykonywane są przez formuły obliczeniowe. Węzły formuł (Formula) pozwalają na realizację operacji matematycznych zapisanych w formie tekstowej. Węzły te są przydatne w realizacji operacji, które korzystają z wielu zmiennych oraz produkują jeden lub więcej rodzajów danych. Sposób zapisu bloku programu węzła Formula jest podobny do zapisu bloku instrukcji programu w języku C. W związku z tym, blok może zawierać deklaracje zmiennych, wyrażenia Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 84 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego matematyczne oraz instrukcje sterujące if…then…else, switch....case, pętle for, while, do…while i inne. Dostępne formaty zmiennych to float i int. W wyrażeniach matematycznych obowiązują takie same zasady i operatory jak w języku C. Wyjątkiem jest dodatkowy operator podnoszenia do potęgi, oznaczany jako x**y. Możliwe jest także stosowanie komentarzy umieszczanych pomiędzy znakami /* i */. Tworzenie konstrukcji formuły wspomagane jest przez odpowiednie menu, zawierające pozycje służące do kreowania wejść i wyjść węzła, które to stanowią zmienne formuły. Po wykreowaniu należy w polu utworzonego wejścia lub wyjścia wpisać jego nazwę. Nazwy muszą być unikalne w ramach danej konstrukcji, ale nazwa wyjścia może być taka sama jak jednego z wejść. Drugim, węzłem podobnym do Formula jest struktura Expression. Służy on wyłącznie do obliczenia pojedynczego wyrażenia korzystającego z jednej zmiennej wejściowej. Węzeł taki posiada predefiniowane wejście i wyjście typu float. Nazwa zmiennej użyta w wyrażeniu jest automatycznie kojarzona z wejściem węzła, a wyjściu przypisywany jest wynik wyrażenia. Zmienne w LabVIEW Jak to zostało wcześniej opisane, obiekty nastawcze pulpitu dostarczają dane do diagramu za pośrednictwem końcówek wejściowych, a obiekty wskaźnikowe pulpitu uzyskują dane z diagramu z końcówek wyjściowych. Z każdym obiektem pulpitu jest związana jedna końcówka wyjściowa lub wejściowa diagramu. Aplikacja może potrzebować dostępu do tych danych w różnych miejscach, a jednocześnie nie zawsze można to uzyskać za pomocą przewodów przepływu danych. Problem ten jest rozwiązywany poprzez zastosowanie zmiennych lokalnych i globalnych. Pierwsze z nich zapewniają dostęp do danych obiektu pulpitu w różnych miejscach pojedynczego programu VI, natomiast zmienne globalne mogą udostępniać i przenosić dane pomiędzy różnymi, jednocześnie realizowanymi programami. Jednakże stosowanie zmiennych w programach VI nie jest zalecane ponieważ przesłaniają one przepływ danych, a tym samym utrudniają analizę kodu i usuwanie ewentualnych błędów. Mogą być też przyczyną wielu dodatkowych problemów, takich jak niejednoznaczne zachowanie programu. Istnieją jednak sytuacje, gdy zastosowanie zmiennych jest w pełni Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 85 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego uzasadnione. Przykładowo, aplikacja może stosować dwie równolegle działające pętle while, z czego w pierwszej z nich generowane są dane, z których na bieżąco korzystają diagramy pętli drugiej, wykonywanej równolegle z pierwszą. Nie ma innej metody udostępnienia danych z wnętrza działającej pętli niż przekazanie ich za pomocą zmiennej. Ponadto, zmienne lokalne pozwalają zapisywać dane obiektu panelu niezależnie czy są one obiektem sterującym czy wskaźnikowym. Operacje te funkcjonują tak samo jak przeniesienie danych do lub z końcówki obiektu w diagramie, z tym, że zapis zmiennej jest dostępny również w stosunku do obiektów sterujących pulpitu, które formalnie są źródłami danych. Dzięki temu, zmienne lokalne można wykorzystać nie tylko do uzyskania aktualnego stanu określonego obiektu sterującego, ale także do modyfikacji jego ustawienia, wyręczając tym samym operatora z obowiązku reagowania na niektóre z pojawiających się sytuacji. Bez zmiennych także byłoby to możliwe, ale użytkownik nie mógłby ingerować w ustawiane automatycznie parametry programu. Tworzenie zmiennej lokalnej w diagramie wymaga wykreowania jej oraz powiązania z określonym obiektem pulpitu, a także przeznaczenia jej do odczytu lub zapisu. Aby to uczynić, należy skorzystać z ikony znajdującej się w palecie struktur. Po jej przeciągnięciu do edytora diagramu pojawi się symbol zmiennej ze znakiem zapytania, wskazującym na potrzebę jej powiązania z obiektem pulpitu. Ustalenie powiązania i przeznaczenia zmiennej dokonuje się poprzez wykorzystanie menu kontekstowego – Select Item oraz Change to Read/Write. Nieco inaczej niż zostało to wyżej opisane wygląda mechanizm tworzenia zmiennych globalnych. Są one wbudowanymi obiektami LabVIEW, których kreowanie powoduje automatyczne wytworzenie specjalnego globalnego interfejsu wirtualnego, który ma tylko panel – bez diagramu. Wprowadzenie obiektów nastawczych i wskaźników do tego panelu określa typy danych i składniki takiego obiektu globalnego, a zatem zmienna globalna może mieć postać złożoną, zapewniającą przekazywanie bardzo różnych danych. Jej panel można traktować jako kontener, z którego korzystają różne podprogramy VI. Aby utworzyć zmienną globalną, należy wybrać ikonę GLOB z palety struktur i przeciągnąć ją do diagramu aplikacji. Spowoduje to utworzenie symbolu graficznego zmiennej w postaci prostokąta ze znakiem zapytania sygnalizującym brak jej pełnego zdefiniowania. Drugim powstałym elementem Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 86 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego będzie niewidoczny interfejs wirtualny z pustym pulpitem. W celu pełnej konfiguracji zmiennej należy otworzyć pulpit za pomocą opcji Open Front Panel i umieścić na nim odpowiednie obiekty odpowiadające typom danych, które składają się na tworzoną zmienną globalną. Tak utworzony program VI należy zapisać pod unikalną nazwą. Zdefiniowaną zmienną globalną wprowadza się do aplikacji przez otwarcie określonego globalnego programu VI i przeciągnięcie jego ikony do jej diagramu. W miejscu docelowym trzeba jeszcze określić czy zmienna ma być wykorzystywana do odczytu czy do zapisu oraz wybrać odpowiedni składnik, gdy zmienna jest złożona z wielu elementów. [http://cnx.org/] W LabVIEW (v. 8.2) istnieje wygodne narzędzie VISA (Virtual Instrument Software Architecture) do obsługi interfejsów GPIB, VXI, RS-232 oraz innych. Rys.9. Przykład zastosowania funkcji VISA Rysunek 9 przedstawia jak przesłać zapytanie *IDN? do urządzenia dołączonego do portu szeregowego COM2. VISA konfiguruje port szeregowy VI, otwiera komunikację z COM2, ustawia szybkość na 9,600 baud, 8 bitów danych, kontrolę nieparzystości, jeden bit stopu i XON/XOFF handshaking16 (uzgadnianie). Następnie funkcja VISA Write wysyła polecenie, a funkcja VISA Read czyta powtórnie do 200 bajtów do bufora odczytu, a blok obsługi błędów sprawdza warunki błędu. 16 Przed utratą informacji zabezpiecza handshaking – odbiorca informuje nadawcę, że powinien przerwać wysyłanie danych do chwili, gdy zostaną odczytane dane przesłane wcześniej. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 87 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego VISA Configure Serial Port – dokonuje inicjalizacji portu szeregowego wskazanego przez zmienną typu VISA Resorce_Name (o wartości np. COM1, COM2). Operuje bezpośrednio na nadajniku/odbiorniku danych. Inicjalizacja portu szeregowego polega na określeniu parametrów jego pracy. Oprócz parametrów standartowych takich jak prędkość transmisji czy format danych, umożliwia zdefiniowanie wielu dodatkowych własności transmisji. Interfejs VI ma aż 10 terminali wejściowych. Funkcja ta dokonuje rezerwacji zasobu, która trwa aż do wywołania funkcji VISA Close. VISA Write – funkcja zapisu do portu szeregowego. Dane podawane na terminal wejściowy write buffer mają postać łańcucha znakowego. Funkcja zwraca liczbę bajtów, które udało się zapisać. VISA Read – funkcja odczytu bufora portu szeregowego. Jako argument przyjmuje liczbę bajtów, która ma zostać odczytana. W rezultacie działania zwraca dane w postaci łańcucha znakowego (zwraca też jego długość). VISA Close – zwalnia zasób zarezerwowany przez VISA Configure Serial Port (zamyka port szeregowy). VISA Bytem At Serial Port – komponent zwraca liczbę bajtów oczekujących w buforze odbiorczym portu szeregowego. VISA Serial Break – przerywa transmisję wybranego portu szeregowego na 250 ms. Wykorzystanie języka C w obsłudze kart akwizycji danych [http://www.ontrak.net/] Załóżmy, że mamy kartę akwizycji danych ADR101 (cena około 100$) z portem szeregowym. Podstawowe dane tej karty są następujące: Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 88 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Supply Voltage 5Vdc +/- 10% or 9Vdc via wall adaptor Supply Current 15mA Typical, 30mA Max. Operating Temperature 0 – 50oC Analog inputs (2) Input Voltage Range 0 - 5 Vdc Input Capacitance 1.2nF Typical Input Impedance >20MΩ Digital I/O (8) Sink Current 25mA Max. Source Current 20mA Max Vout High 4.00V Minimum Vout Low 0.8V Maximum Vin High 2.2V Minimum Vin Low 0.8V Maximum SERIAL PORT RS232, 9600 Baud, 8 bit words,1 stop bit, 1 start bit, no parity Polecenia wykorzystane w TURBO C w celu dostępu do karty ADR101 przez port szeregowy wymagają deklaracji następujących plików: #include <stdio.h> #include <bios.h> Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 89 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Pierwszym krokiem jest konfiguracja parametrów portu szeregowego, to jest jego szybkości na 9600 baud, długość słowa 8 bitów, bez kontroli parzystości. Można to zrobić poleceniem bioscom. Składnia polecenia jest następująca: bioscom (0,settings,com1); gdzie settings zdefiniowano wcześniej jako HEX E3 a com1 jako 0 następująco: #define com1 0 #define settings (0xE3) Przesyłanie danych do ADR101 Wysyłanie poleceń do ADR101 odbywa się za pomocą fprintf, na przykład fprintf (stdaux,"RA0\xD"); przesyła żądanie RAO (read analog port 0 to jest czytaj analogowy port 0 ze standardowego urządzenia stdaux STanDard AUXiliary) do ADR101. Przyrostek \xD oznacza dosłownie powrót karetki, czyli nową linię od początku. Zmienne całkowite mogą być używane w tej linii poleceń. Odbieranie danych z ADR101 Poprawnie przesłane dane można pobierać za pomocą fscanf. Po tym poleceniu bufor szeregowy musi zostać przewinięty za pomocą polecenia rewind. Składnia jest następująca: rewind(stdaux); Polecenie to jest realizowane zgodnie z poleceniem fscanf. Na przykład, następujące polecenia wysyła polecenie RA0 i zapisuje pobrane dane w zmiennej o nazwie AN0: fprintf (stdaux,"RA0\xD"); fscanf (stdaux,"%e",&an0); rewind (stdaux); Dane mogą być również pobierane w formacie liczb całkowitych, jeżeli są dostępne porty cyfrowe. Na przykład, następujące polecenia przesyła PA (czytaj port) do ADR101 i zapisuje pobrane dane w zmiennej całkowitej o nazwie PORTA: fprintf(stdaux,"PA\xD");fscanf(stdaux,"%D",&PORTA);rewind(stdaux); Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 90 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Pierwszy program pobiera status portu analogowego 0 i wyświetla dane na ekranie /* Program pierwszy - testowanie portu analogowego */ #include <stdio.h> #include <bios.h> #define com1 0 #define settings (0xE3) main( ) { /* declare an0 as a floating point number */ float an0 ; /* configure com1 9600 baud, 8 bit words, no parity */ bioscom (0,settings,com1); /* send RA0 command to ADR101 on com1 */ fprintf(stdaux,"RA0 \xD"); /* initialize com1 buffer */ fscanf (stdaux,"%e",&an0); /* print data on screen */ rewind (stdaux); /* read data from com1 and store it at address of an0 */ printf ("ANALOG PORT 0= %e PERCENT \n",an0); } Drugi program konfiguruje PORT A jako wyjście, ustawia go na 255, czyta powtórnie jego status i wyświetla dane na ekranie. * Program drugi - testowanie portu cyfrowego */ #include <sdio.h> #include <bios.h> #define com1 0 #define settings (0xE3) main ( ) { /* declare PORTA and DOUT as integer numbers */ int PORTA,DOUT ; Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 91 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego /* set DOUT to integer 255 */ DOUT=255; /* configure com1 9600 baud, 8 bit words, no parity */ bioscom (0,settings,com1); /* send CPA00000000 command to ADR101 on com1 */ fprintf (stdaux,"CPA00000000 \xD"); /* send MAddd (ddd=DOUT) command to ADR101 on com1 */ fprintf (stdaux,"MA %d \xD",DOUT ); /* send PA command to ADR101 on com1 */ fprintf (stdaux,"PA \xD"); /* initialize com1 buffer */ fscanf (stdaux,"%d",&PORTA ); /* print data on screen */ rewind (stdaux); /* read data from com1 and store at address of PORTA */ printf ("PORT A is %d DECIMAL \n",PORTA); } Literatura 4. Chruściel M., LabView w praktyce. Wydawnictwo BTC, Legionowo 2008. 5. Winiecki W., Nowak J., Stanik S., Graficzne zintegrowane środowiska programowe do projektowania. komputerowych systemów pomiarowo-kontrolnych, Wydawnictwo MIKOM Warszawa 2001. 6. Rusek J., ABC programowania w C++, Helion, Gliwice 2002. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 92 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Temat: Przetworniki inteligentne Sygnał wyjściowy czujnika tylko niekiedy nadaje się do bezpośredniego wykorzystania w układach regulacji, na ogół trzeba go przekształcić do postaci zgodnej z wymaganiami systemu regulacyjnego. Przetwornikiem pomiarowym nazywamy układ pośredniczący, przetwarzający sygnał wyjściowy czujnika na sygnał standardowy. Konwencjonalne układy pomiarowe zawierają czujniki i przetworniki z analogowym sygnałem wyjściowym: x(t) Czujnik wzmacniacz y(t) U I Rys.1. Układ pomiarowy z przetwornikiem konwencjonalnym Wielkość mierzona była przetwarzana na proporcjonalny (jeżeli było to możliwe) na sygnał napięciowy w zakresie od 0 - 10V lub prądowy w zakresie 4 - 20 mA. Sygnał napięciowy był bardzo kłopotliwy w przypadku, gdy czujnik znajdował się daleko od układu regulacji co wymuszało stosowanie niskooporowych linii, co powodowało duże koszty. Przetworniki takie dzięki swojej prostocie miały niestety wiele wad i ich zastosowanie nie wszędzie się sprawdzało. Ich problem polegał głównie na tym, że ich zadanie sprowadzało się tylko do wysyłania do układu regulacyjnego ciągłej informacji z czujnika, nie odwzorowującej jednoznacznie wartość wielkości mierzonej, przenosząc całą odpowiedzialność wyodrębnienia wielkości mierzonej na układy regulatora. To regulator musiał kompensować powstałe błędy, rejestrować pomiary, sygnalizować uszkodzenia, przeprowadzać diagnostykę, analizować alarmy. Nie było możliwości zmiany zakresu pomiarowego. Wszystkie te problemy zniknęły w momencie pojawienia się przetworników inteligentnych. Przetwornik inteligentny to przetwornik zawierający układ mikroprocesorowy. Nie jest przesadnym stwierdzenie, iż w każdym okresie rozwoju nauki i techniki czujniki determinowały możliwości poznawcze i wytwórcze człowieka. Obecnie, w dobie Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 93 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego elektroniki, komputerów i wirtualnej rzeczywistości, również i czujniki przyjęły nową postać. Tę postać określają atrybuty: inteligentny i zintegrowany, półprzewodnikowy. Inteligentny oznacza programowalny, działający autonomicznie, adaptacyjnie, z możliwością komunikacji z innymi urządzeniami. Zintegrowany - bo może łączyć kilka różnych czujników lub wiele czujników jednego rodzaju, a ponadto i różne układy analogowe lub cyfrowe, w tym mikroprocesor - wszystko w jednej strukturze scalonej (chipie). Stosowane są dwa podstawowe rozwiązania inteligentnych czujników, zawierające: cyfrowo sterowany analogowy procesor sygnałów czujnika, w którym do kompensacji wpływów i kalibracji są używane analogowe układy sterowane cyfrowo - np. programowane wzmacniacze, układy kompensacji temperaturowej itp. lub cyfrowy procesor sygnałowy czujnika, w którym sygnał wejściowy jest przetwarzany na cyfrowy, poddawany odpowiedniemu przetwarzaniu, po czym sygnał cyfrowy jest ponownie przetwarzany na analogowy. W pierwszym przypadku układ zapewnia analogową ciągłość sygnału ciśnienia, nie zmieniając ani rozdzielczości, ani charakterystyki częstotliwościowej sygnału wejściowego. W drugim przypadku parametry czujnika są ograniczone przez cyfrowy układ przetwarzający, lecz architektura strukturalnie zapewnia cyfrowy sygnał wyjściowy. Na czym polega inteligencja czujnika? Jedna z definicji czujnika inteligentnego (inteligent sensor, smart sensor) brzmi: Czujnik sam w sobie spełnia funkcje przetwarzania danych oraz funkcje kalibracji/automatycznej kompensacji, w których sam czujnik wykrywa i eliminuje wartości nienormalne lub wyjątkowe. Zawiera algorytm, który może być zmieniany oraz pełni w pewnym stopniu funkcję pamięci. Może współpracować z innymi czujnikami, adaptuje się do zmian warunków otoczenia i ma funkcję rozróżniania (rozeznawania). Urządzenie o tak zdefiniowanych cechach jest przetwornikiem inteligentnym. Potencjalne usprawnienia oferowane użytkownikom przez czujniki inteligentne, w porównaniu do rozwiązań klasycznych, są następujące: lepsza dokładność, teoretycznie ograniczona tylko niestabilnością czujnika, możliwość jednoczesnej kalibracji i kompensacji wielu czujników w procesie wytwarzania, Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 94 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego zwiększona odporność na zakłócenia i możliwość komunikacji na duże odległości, wykrywanie błędów i diagnostyka, zdolność podejmowania decyzji, możliwość lokalnego zbierania, przetwarzania i dystrybucji informacji, dwustronne komunikowanie się z innymi urządzeniami, rozwiązywanie konfliktów, np. kolejność dostępu do sieci komunikacyjnej, programowalna wiedza, np. o czasach oczekiwanych transmisji danych, samotestowanie lub samo kalibracja, zdolność uczenia się, np. optymalizowanie zakresu pomiarowego, możliwość programowej zmiany wykonywanych operacji. Inteligencja czujników jest wynikiem wykorzystania mikrokontrolera (sterownika mikroprocesorowego), wyposażonego w odpowiednie oprogramowanie. x(t) czujnik y(t) a wzmacniacz c P Rys.2 Przykład układu pomiarowego z przetwornikiem inteligentnym Przetworniki inteligentne pierwszej generacji posiadały takie własności jak: Linearyzacja charakterystyki statycznej; Kompensacja błędów wywołanych wpływem czynników zewnętrznych (np. temperatura, wilgotność, ciśnienie); Sygnalizacja uszkodzeń, diagnostykę; Sygnalizacja stanów granicznych Możliwość statystycznego opracowania wyników; Wybór typu charakterystyki (liniowa, pierwiastkowa, inwersyjna); Konfiguracja zakresu; Możliwość wprowadzenia tłumienia Komunikacja cyfrową; Możliwość realizacji algorytmu PID w przetworniku Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 95 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Zdalne kształtowanie charakterystyk przetwarzania, automatyczne sterowani procesem porównywania ze wzorcem, automatyczne ustawiania zakresu pomiarowego (samoadaptacja), zapamiętywanie i kompresja danych bez utraty informacji w określonym czasie, wstępne statystyczne opracowanie danych, sterowanie procesem wizualizacji, samo testowanie (detekcją i diagnostyką błędów), samo naprawialność, dwustronna komunikacja z innymi urządzeniami przy użyciu standardowego protokołu – cecha obowiązkowa we wszystkich inteligentnych przetwornikach. Rozwój elektroniki i techniki mikroprocesorowej pozwolił na wprowadzenie mikroprocesora do przetwornika pomiarowego. Inteligentne przetworniki pomiarowe pierwszej generacji to konwencjonalne przetworniki pomiarowe wyposażone w układ mikroprocesorowy służący do obróbki sygnału wyjściowego z przetwornika oraz do wprowadzania danych do przetwornika przez operatora. Rys.3 Schemat blokowy przetwornika inteligentnego pierwszej generacji W przetwornikach tych ciągle jednak przesyłanie informacji odbywało się poprzez wysyłanie sygnałów prądowych, np. 4-20mA. Nie było możliwości np. zdalnego kalibrowania czujnika. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 96 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Przetworniki drugiej generacji wyposażone są dodatkowo w blok komunikacji cyfrowej. Rys.4 Schemat przetwornika inteligentnego drugiej generacji Wprowadzenie bloku komunikacji i zaimplementowanie protokołu transmisji otworzyło nowe możliwości przed przetwornikami pomiarowymi. Operator oprócz informacji o wielkości mierzonej ma dostęp do informacji o samym przetworniku - o konfiguracji przetwornika, aktualnym stanie itp. Komunikacja cyfrowa możliwa jest w dwóch kierunkach, a więc operator może zdalnie konfigurować przetwornik znajdujący się np. w trudno dostępnym miejscu (w przetwornikach pierwszej generacji konfiguracja odbywała się albo za pomocą przycisków znajdujących się na przetworniku, albo też za pomocą konfiguratora dołączanego do specjalnego złącza np. RS 232). W zależności od protokołu transmisji cyfrowej inteligentny przetwornik drugiej generacji ma różne zalety. Przetwornikiem z zaimplementowanym protokołem transmisji HART (70% inteligentnych przetworników) można zastąpić bez żadnych dodatkowych "przeróbek" konwencjonalny przetwornik analogowy. Sygnałem wyjściowym z takiego przetwornika jest standardowy sygnał prądowy 4-20mA na który jest nałożony zmodulowany 17 częstotliwościowo sinusoidalny prądowy sygnał cyfrowy (modulacja typu FSK ). 17 FSK (Frequency Shift Keying)- kluczowanie częstotliwości impulsowej fali nośnej. Częstotliwość nośna w tym wypadku przyjmuje zamiennie dwie wartości, które reprezentują stany logiczne 0 i 1. W ten sposób można zrealizować transmisję ciągu bitów informacyjnych. Sygnał FSK może być generowany z wykorzystaniem jednego generatora przestrajalnego lub dwóch oddzielnych generatorów. Zaletą pierwszego rozwiązania jest uzyskanie ciągłości fazy w momencie zmiany częstotliwości generowanego sygnału). Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 97 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Komunikacja cyfrowa z tym przetwornikiem odbywa się za pomocą specjalnego komunikatora dołączanego w dowolnym miejscu linii sygnałowej 4 –20 mA. Protokół HART Komunikację między systemami regulacji, pomiarów i sterowania, a inteligentnymi instrumentami polowymi (tzn. rozmieszczonymi na obiekcie) jest łatwo zrealizować za pomocą przemysłowego standardu łączności HART (Highway Addressable Remote Transducer). Protokół HART jest „otwarty” i dostępny dla każdego instrumentu. Wsparcie dla tej technologii jest dostarczone przez HART Communiction Foundation. Protokół ten jest dostępny dla każdego, kto chce go używać. W 1986 roku firma Rosemount wprowadziła na rynek tzw. inteligentne przetworniki pomiarowe, które poza generowaniem prądowego sygnału pomiarowego 4-20mA, komunikowały się przy pomocy tzw. protokołu HART. Protokół ten umożliwiał zmianę zakresu i diagnostykę urządzeń. Działa w oparciu o standard Bell 202, przetworniki tego typu mogą pracować w trybie analogowym i cyfrowym, jednak w przypadku komunikacji cyfrowej czasy odpowiedzi są bardzo wolne, dlatego komunikacja ta służy głównie do zmiany nastaw i diagnostyki. Jest on dzisiaj standardem komunikacji urządzeń pomiarowych w przemyśle. Obecnie protokół ten wykorzystują wszyscy producenci aparatury min. Emerson, Yokogawa, ABB czy Endress+Hauser. W celu koordynacji działań oraz właściwego stosowania powołano fundację skupiającą producentów aparatury HART Foundation. Transmisja sygnału cyfrowego za pomocą protokołu komunikacyjnego HART polega na nałożeniu, na sygnał prądowy 4÷20 mA informacji cyfrowej, kodowanej w postaci sygnału sinusoidalnego o wartości średniej równej 0 i dwóch częstotliwościach. Częstotliwość f1=1200 Hz odpowiada logicznej 1, a f2=2200 Hz oznacza logiczne 0. HART pozwala na przyłączenie do jednej pętli prądowej do 15 urządzeń, jednakże w takim wypadku napięcie na linii jest ustawiane na poziomie 4mA i służy ono jedynie do zasilania przetworników, traci się w ten sposób możliwość analogowego odczytu wartości mierzonej (np. miliamperomierzem). Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 98 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Rys.5. Przesyłanie wartości cyfrowych przy pomocy modulacji FSK Zasada pracy pętli prądowej polega na przedstawieniu wartości wyniku pomiaru w postaci wartości prądu pobieranego przez przyrząd. Najczęściej przyjmuje się, że dolnemu zakresowi pomiaru odpowiada prąd pobierany równy 4 mA, a górnemu - 20 mA – standard 420mA. Zaleta takiego rozwiązania jest jednoczesne zasilanie przyrządu i transmisja wyniku przy pomocy jednej linii dwuprzewodowej. Jednakże możliwa jest transmisja danych tylko z jednego przetwornika. Kolejna zaleta takiego rozwiązania jest możliwość sygnalizowania błędu urządzenia droga analogowa - wartość prądu poza dopuszczalnym zakresem, zwykle poniżej 3,75 mA lub powyżej 21,6 mA. Najważniejszym atutem tego rozwiązania jest możliwość komunikacji cyfrowej za pomocą protokołu HART. Protokół HART jest protokołem typy master-slave. Oznacza to, że polowe przyrządy odpowiadają tylko wtedy, kiedy urządzenie nadrzędne tego żąda. Mogą istnieć dwa układy nadrzędne (np. system kontroli i podręczny komunikator). Do pojedynczej wielopunktowej linii może być podłączone do 15 przyrządów. Przetworniki korzystają z kabla w postaci ekranowanej pary skrętnej (mogą korzystać z istniejącego okablowania po konwencjonalnym przetworniku). Tak więc w dalszym ciągu do każdego przetwornika konieczne jest prowadzenie oddzielnej pary przewodów (koszt okablowania może sięgać 40% kosztu całej instalacji). Problem ten rozwiązano wykorzystując protokoły transmisji tj. PROFIBUS, Modbus, FieldBus czy CAN. Tu zmieniła się zupełnie architektura systemu pomiarowego. Oparta została na sieci, w której przetworniki, sterowniki i elementy wykonawcze są jej węzłami. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 99 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego System taki jest łatwo rekonfigurowaly, nie wymaga rozbudowanego okablowania (praca magistralowa) i jest bardziej odporny na zakłócenia zewnętrzne. Przetworniki z tego typu protokołami doskonale nadają się w systemach automatyki typu rozproszonej lub SCADA. W inteligentnych przetwornikach trzeciej generacji oprócz pomiaru wiodącej wielkości mierzonej dokonywany jest pomiar innych wielkości mających wpływ na wynik pomiaru. Rys.6 Schemat inteligentnego przetwornika trzeciej generacji Przetwornik ten jest wiec układem typu MIMO (Multi Input Multi Output). W inteligentnych przetwornikach pierwszej generacji wymagane było aby charakterystyka czujnika była stała i stabilna nie tylko w czasie, ale i od innych czynników (np. temperatury, ciśnienia czy wilgotności). W przetwornikach trzeciej generacji niedogodność tę wyeliminowano przez dodanie dodatkowych czujników mierzących wielkości mające wpływ na wynik pomiaru. Uwzględnianie poprawek od tych czynników znacznie zwiększyło dokładność pomiaru, a ponadto pozwoliło na dokonanie pewnych obliczeń bilansowych np. masowe natężenie przepływu, ilości ciepła, czy zużycia gazu. W niektórych przetwornikach inteligentnych (szczególnie drugiej i trzeciej generacji) wbudowane są pewne funkcje diagnostyczne. Może to polegać na przykład na analizie wysyłanego sygnału (szybkości jego zmian, stałości zmian, przekroczeniu zakresu itp.). W przetwornikach trzeciej generacji są instalowane w celach diagnostycznych dodatkowe wykrywające usterki czy nadmierne zużycie (np. nieszczelności – czujnik ciśnienia, zużycie, Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 100 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego itp.). Jest to szczególnie istotne przy konstruowaniu układów regulacji odpornych na uszkodzenie (Fault Tolerant Control). Literatura Czujniki inteligentne – technologie wykonywania, parametry, zastosowanie. Praca dyplomowa magisterska, Politechnika Szczecińska, Szczecin 2007. prezentacja_ects_diagnostyka.pdf Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 101 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Temat: Sieci bezprzewodowe Do pierwszych sieci bezprzewodowych należały sieci Aloha, ARDIS oraz Ricochet. Miały one bardzo niską przepustowość - zazwyczaj w okolicach 1Mb na całą sieć oraz niewielki zasięg. Sieci bezprzewodowe często są określana terminem Wi-Fi (Wireless Fidelity). Sieci bezprzewodowe działają w oparciu o propagację fal elektromagnetycznych, dlatego też są przystosowane do przenoszenia informacji w ściśle określonym paśmie częstotliwości. Zalety sieci bezprzewodowych: Mobilność. Łatwość instalacji. Elastyczność - dodanie nowego urządzenia nie wymaga dużego nakładu pracy. Zasięg - zwykle od kilku do kilkudziesięciu metrów, a nawet w przypadku najnowszych technologii, np. WiMax do kilkudziesięciu kilometrów. Możliwość szybkiej rozbudowy i modyfikacji. Sieci bezprzewodowe opisuje przyjęty w roku 1997 standard IEEE18 802.11x (gdzie x to jedna z liter a, b, g, c-f, h-j, n), który zakładał przesyłanie informacji z prędkościami 1-2 Mb, przy użyciu fal radiowych o częstotliwości 2,4 GHz oraz promieniowania podczerwonego. Standard ten precyzuje budowę pierwszej oraz części drugiej warstwy modelu OSI. Część tego standardu dotycząca wykorzystania promieniowania podczerwonego nie przyjęła się w związku z konkurencją standardu IrDA (Infrared Data Association). Standardy 802.11 tworzą grupę trzech niezależnych protokołów (a, b, g). Standardy określone pozostałymi literami: c-f, h-j, n opisują rozszerzenia usług i poprawek innych standardów. W standardzie 802.11a dane przesyłane są z szybkością 54 Mb/s przy częstotliwości 5 GHz. 802.11a używa techniki kodowania OFDM (Orthogonal Frequency-Division Multiplexing – metoda modulacji polegająca na jednoczesnej 18 IEEE (wymowa: 'aj-triple-i', Institute of Electrical and Electronics Engineers) - Instytut Inżynierów Elektryków i Elektroników. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 102 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego wolnej transmisji wielu strumieni danych na ortogonalnych19 częstotliwościach nośnych). W porównaniu ze standardem 802.11b, posiada dwie podstawowe zalety: szybkość i osiem nie zachodzących na siebie kanałów. W przypadku częstotliwości 2,4 GHz są to tylko trzy kanały. Również ogólna szerokość pasma jest większa niż przy 2,4 GHz. W przypadku częstotliwości 2,4 GHz jest to 83,5 MHz, zaś przy 5 GHz-300 MHz. Oba standardy pracują na różnych częstotliwościach, a zatem nie są zgodne ze sobą, ale oba standardy mogą być stosowane w tym samym systemie informatycznym. W standardzie 802.11b dane przesyłane są z szybkością do 11 Mbps (praktycznie do 5,5 Mbps) w paśmie 2.4 GHz. Zasięg wynosi 46 m w pomieszczeniach zamkniętych i 96 m w otwartej przestrzeni. Zasięg można powiększyć przez zastosowanie anten ze wzmacniaczami. Spektrum kanału 2,4 GHz zostało podzielone na 14 kanałów, z których każdy ma szerokość 22 MHz, co w praktyce oznacza, że zakres częstotliwości wykorzystywanych przez ten standard mieści się w przedziale 2,4 GHz do 2,494 GHz. Celem standardu 802.11g, było rozszerzenie standardu 802.11b. Głównym problemem, jaki napotykali użytkownicy standardu 802.11b była zbyt wolna transmisja. W 2003 podjęto zatem próbę zastosowania techniki OFDM (znanej ze standardu 802.11a) do transmisji danych w paśmie 2.4 GHz. Z uwagi na kompatybilność wsteczną ze standardem 802.11b nowe karty sieciowe obsługiwały zarówno poprzednie, jak i nowe metody modulacji. Tak więc, jeśli w sieci występują karty sieciowe starej generacji, transmisja odbywa się z mniejszą prędkością. 802.11n jest jeszcze w fazie przygotowań. Połączenia bezprzewodowe realizowane są przy wykorzystaniu nadajników i odbiorników rozmieszczonych na terenie np. firmy i będących jej własnością. Radiowe urządzenie nadawczo-odbiorcze nazywane jest transceiver’em (transmitter/receiver). Bezprzewodowe 19 Ortogonalny to jest mający przesuniecie fazowe 90 stopni. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 103 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego połączenia w sieci lokalnej eliminują konieczność układania kabli, co przydatne jest w sieciach utworzonych tymczasowo. Użytkownicy z komputerami przenośnymi mogą poruszać się po obszarze objętym zasięgiem transceiver’a. Bezprzewodowa transmisja danych może być realizowana przy użyciu jednej z trzech metod: a) transmisja w podczerwieni - metoda ta udostępnia szerokie pasmo transmisyjne, pozwala na przesyłanie sygnałów z bardzo dużą częstotliwością. Transmisja wykorzystująca promienie podczerwone realizowana jest wzdłuż linii widoczności, dlatego zarówno nadajnik jak i odbiornik muszą być skierowane do siebie lub też promienie muszą być wzajemnie zogniskowane. Tak więc przy instalowaniu tego typu sieci należy uwzględnić strukturę i wzajemne położenie pomieszczeń. Ponieważ transmisja realizowana jest przy użyciu promieni podczerwonych, to może być zakłócona silnym światłem pochodzącym z innych źródeł. Typowa szybkość transmisji osiąga tutaj 10 Mbit/s; b) transmisja radiowa wąskopasmowa - metoda ta jest podobna do metod stosowanych w klasycznej radiofonii: zarówno nadajnik jak i odbiornik pracują w jednym wąskim paśmie częstotliwości. Sygnał rozprzestrzenia się na znacznym obszarze i może przenikać przez przeszkody - nie jest więc konieczne ogniskowanie sygnału. Mankamentem tej metody jest możliwość występowania zakłóceń spowodowanych odbiciami sygnału. Ponadto dla uniknięcia zakłóceń powodowanych przez inne urządzenia radionadawcze konieczne jest dokładne dostrojenie nadajnika i odbiornika na wybraną częstotliwość. Szybkość transmisji jest tutaj rzędu kilkunastu kbit/s; c) transmisja radiowa szerokopasmowa - sygnał generowany jest w szerokim paśmie częstotliwości. Chwilowy rozkład częstotliwości określany jest za pomocą kodu wspólnego dla nadajnika i odbiornika. Moc sygnału emitowanego tą techniką jest niewielka. Szybkość transmisji kształtuje się na poziomie 250 kbit/s; d) transmisja mikrofalowa - transmisja tą metodą może się odbyć, gdy zapewniona jest wzajemna widoczność nadawcy i odbiorcy, może to być np. połączenie satelity ze stacją naziemną, łączność między dwoma budynkami, łączność na dużych otwartych obszarach, gdzie położenie kabla nie jest opłacalne (pustynie, bagna, duże jeziora). Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 104 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego System transmisyjny wykorzystujący mikrofale składa się z dwóch anten kierunkowych, skierowanych na siebie, wysyłających wiązkę fal elektromagnetycznych i ogniskujących odebraną wiązkę fal. Maksymalna odległość między antenami nie powinna przekraczać 45 km. W przeciwieństwie do klasycznej transmisji radiowej anteny mikrofalowe skierowane są na jeden punkt. Stosowane częstotliwości transmisji zawierają się w przedziale 2GHz-25GHz, przy czym wyższe częstotliwości wykorzystywane są prywatnie, na krótkich odległościach. Sieci bezprzewodowe zawierają dodatkowe elementy sieciowe, m.in. takie jak: bezprzewodowe karty sieciowe wbudowane najczęściej na stałe w płytę główną komputera (jak w urządzeniach mobilnych) lub dodatkowe karty sieciowe, dołączoną poprzez złącze typu PCMCIA lub USB, anteny, itp. Urządzenia mobilne komunikują się z punktem dostępowym drogą radiową (punkty dostępowe (access point) - są to urządzenia, które zwykle są przyłączone do sieci LAN przy pomocy medium tradycyjnego - kabla). Literatura http://wazniak.mimuw.edu.pl/ Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 105 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Temat: Sieci przemysłowe – Ethernet, PROFIBUS, CAN, Modbus, DeviceNet. Dla przypomnienia: w cyfrowych, rozproszonych układach sterowania wyróżnia się trzy podstawowe rodzaje topologii sieci komputerowych: magistrali, pierścienia i gwiazdy. Topologia magistrali. Charakterystyczną cechą topologii magistralowej jest występowanie tzw. magistrali (bus), tj. linijnego kabla transmisyjnego (informatycznej linii komunikacyjnej) do którego dołączone są wszystkie węzły sieci; Topologia pierścienia. W sieciach o tej konfiguracji kabel łączący węzły (stacje) sieci tworzy pierścień (ring). Wszystkie węzły włączone w pierścień przekazują sygnały (tylko w jednym kierunku), dokonują ich kontroli tj. poprawności transmisji i adresu przeznaczenia, a także przeprowadzają regeneracje sygnałów. Topologia gwiazdy. W sieciach o topologii gwiazdy (star) w najprostszym przypadku występuje komputer (węzeł) centralny pełniący funkcję zarządcy sieci do którego dołączone są wszystkie węzły (stacje). Odmianą sieci o topologii gwiazdy są sieci o strukturze płatka śniegu (snowflake), w której występuje wiele węzłów „centralnych” stacji wzajemnie połączonych. Do znanych standardów przemysłowych sieci miejscowych należą następujące sieci: Ethernet, PROFIBUS, CAN, Modbus, DeviceNet. PROFIBUS (PROcess FIeld BUS) jest przemysłowym standardem komunikacyjnym przemysłowej sieci czasu rzeczywistego, który został opracowany w 1991 r. w Niemczech przez firmę Siemens. Został on ustanowiony normą europejską EN 50170. Architektura tego protokołu została oparta na warstwowym modelu sieci tzw. OSI (Open Systems Interconnection). System PROFIBUS standaryzuje urządzenia na wielu poziomach, od poziomu czujników i urządzeń wykonawczych (PROFIBUS DP - Distributed Periphery i Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 106 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego PROFIBUS PA – Process Automation), przez komunikację z tymi urządzeniami (PROFIBUS FMS – Fieldbus Messaging), po zarządzanie produkcją. Standard ten cechuje duży stopień elastyczności i uniwersalności. Główne jego cechy to: topologia sieci: pierścień (token ring); maksymalna liczba węzłów sieci – 127; maksymalna długość linii – 1200 m, a ze wzmacniaczami – 4800 m; szybkość transmisji: od 9.6 kbit/s do 1.5 Mbit/s (w zależności od długości linii); transmisja asynchroniczna (półdupleks) zgodna ze standardem RS 485; medium transmisyjne: skrętka lub światłowód; najwyżej położoną warstwą w modelu sieci OSI jest warstwa 7 (sprzężenie z aplikacją); cechą protokołu PROFIBUS jest możliwość obiektowo zorientowanych aplikacji typu „klient – serwer”; PROFIBUS jest siecią deterministyczną. Komunikacja odbywa się na zasadzie master/slave lub master/master. Węzłami sieci mogą być zarówno proste urządzenia wejścia/wyjścia analogowe i cyfrowe, czujniki lub elementy wykonawcze, jak i komputery, sterowniki swobodnie programowalne, falowniki, itp. W standardzie PROFIBUS zdefiniowano trzy tzw. profile komunikacyjne (tj. wybrany zestaw funkcji) – FMS, DP i PA. Określają one mechanizmy współpracy protokołu komunikacyjnego z medium transmisyjnym, co zapewnia niezależność pracy aplikacji od zastosowanych w systemie urządzeń. PROFIBUS FMS (Field Message Specification) jest najwyższym poziomem w sieci komputerowej przeznaczonym do współpracy z PLC, komputerami PC oraz innymi urządzeniami wyższego poziomu. Obecnie profil PROFIBUS FMS jest zastępowany przez PROFIBUS PA z uwagi na jego prostotę. PROFIBUS PA (Process Automation) jest to profil dotyczący połączeń elementów automatyki na najniższym poziomie automatyzacji. PROFIBUS PA oraz PROFIBUS DP używają takich samych protokołów komunikacyjnych, a więc połączenie obu tych sieci jest łatwe. PROFIBUS PA jest konkretnym profilem aplikacyjnym Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 107 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego ukierunkowanym na automatyzację procesów, opartym na profilu PROFIBUS DP. Wśród innych profili aplikacyjnych są: PROFIBUS DP (Distributed Periphery). Sieć ta jest obecnie najpopularniejszą siecią przemysłową stosowaną do komunikacji pomiędzy systemem sterowania najniższego poziomu, a urządzeniami peryferyjnymi (sieć o profilu PA jest dołączona do sieci o profilu DP). Do jej podstawowych cech należy zaliczyć łatwą integrację urządzeń różnych producentów w ramach jednego systemu, odporność na zakłócenia oraz szerokie wsparcie wśród producentów sprzętu. PROFIBUS DP służy do bardzo szybkiej obsługi zdecentralizowanych urządzeń we/wy. Do sieci PROFIBUS-DP może być podłączonych maksymalnie 32 urządzenia. Sposoby komunikacji to: rozgłaszanie lub wysyłanie komunikatów. Fizycznym medium dla PROFIBUS-DP jest RS-485 lub światłowód. CAN (Controller Area Network) stanowi protokół szybkiej komunikacji szeregowej wykorzystujący standardowe komunikaty. Został on zaprojektowany w 1989 roku przez niemiecki koncern Bosch (ISO 11519-2, ISO 11898) w celu zastosowania w pojazdach. Główne cechy standardu CAN to: pojemność sieci – większa od 5 milionów komunikatów; maksymalna prędkość transmisji: 2.5 Mbit/s (1 Mbit/s dla skrętki); maksymalna długość linii: 10 km (1000 m / segment); medium transmisyjne: skrętka, światłowód; losowy dostęp do magistrali z arbitrażem bitowym CSMA/CR (dostęp stacji do medium komunikacyjnego odbywa się bez oczekiwania na pozwolenie, o ile tylko stacja stwierdzi „ciszę” na magistrali); zabezpieczenie danych: 16-bitowy CRC. CAN to dość wyspecjalizowany rodzaj sieci. Charakteryzuje się szybką kontrolą błędów i wysoką odpornością na zakłócenia elektryczne. Dzięki tym cechom często korzysta się z sieci CAN w przemysłach samochodowym i lotniczym (gdzie transmisja Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 108 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego danych zazwyczaj przebiega w pobliżu urządzeń emitujących fale elektromagnetyczne). Przede wszystkim jednak sieć CAN posiada niezastąpione rozwiązania kontroli błędów. Powiązanie pomiędzy hostami CAN i sieciami CAN jest niewiarygodnie ścisłe - tak ścisłe, że kontrola błędów stosowana jest już na poziomie procesora. Sieci tego rodzaju są w stanie odróżnić dane, które bezwzględnie muszą zostać poddane kontroli błędów i te, które nie muszą. Sieć CAN jest jedną z kilku najczęściej stosowanych w Europie sieci przemysłowych. Jednak dzięki swym zaletom sieć ta znalazła wkrótce zastosowanie również w przemyśle, w sterowaniu ruchem drogowym i kolejowym, w aparaturze medycznej i w automatyzacji budynków, w tym w systemach przeciwpożarowych. Najczęściej spotyka się sieci CAN o topologii szyny, ale możliwe jest również łączenie węzłów w układ gwiazdy. Początkowo do komunikacji wykorzystywano w nich, jako medium transmisyjne, jedynie skrętkę ekranowaną. Obecnie są również wykorzystywane inne media, np. światłowód, fale radiowe, podczerwień i sieć energetyczna. W zależności od użytego medium i odległości w sieci CAN można przesyłać dane z różną szybkością. Dla najpopularniejszego, czyli tzw. skrętki, można uzyskać 1 Mbit/s na odległość do 40 m oraz 50 kbit/s przy odległości do 1 km. W sieci CAN węzły nie mają adresów. Zamiast tego telegramy mają identyfikatory 11-bitowe (specyfikacja CAN 2.0 A) lub 29-bitowe (specyfikacja CAN 2.0 B). Transmisja danych w magistrali CAN jest zgodna ze strukturą modelu ISO/OSI. Protokół CAN dostosowuje się do wymagań modelu na poziomie dwu warstw tego modelu: pierwszej (warstwie fizycznej) i drugiej (warstwie łącza danych). Warstwa pierwsza (fizyczna) zapewnia komunikację z wykorzystaniem optycznych i różnicowych, linii dwuprzewodowych. Warstwa druga (łącza danych) odpowiada m.in. za selekcję telegramów, opakowywanie danych, kodowanie ramki, sygnalizację błędów i dostęp do medium. CAN wykorzystuje do transmisji danych, zgodnie ze specyfikacją protokołu, specjalizowane podzespoły. Zaletą standardu CAN jest wysoka odporność transmisji na zakłócenia. Układy bezpośrednio obsługujące magistralę CAN można podzielić na trzy, grupy: Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 109 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego układy nadawczo-odbiorcze (trasceiver), kontrolery współpracujące z mikroprocesorem mikroprocesory (mikrokontrolery) z wpisanym standardem CAN. Podstawowymi elementami w urządzeniach obsługujących sieć CAN są kontrolery oraz układy nadawczo-odbiorcze. Wiele znanych firm stworzyło własne układy przeznaczone do magistrali CAN, ale nadal największymi producentami podstawowych elementów sieci CAN są firmy Bosch i PHILIPS, jej pierwsi promotorzy. Ponieważ magistrala CAN nie stosuje systemu adresowania poszczególnych węzłów, nie ma potrzeby informowania systemu o zmianie konfiguracji. Takie rozwiązanie ma pewne zalety: dodanie węzła do sieci CAN nie wymaga zmian w oprogramowaniu, sprzęcie, a także w warstwie aplikacyjnej, każdy węzeł może odebrać i jednocześnie wykorzystać informacje z tego samego telegramu, sieć CAN gwarantuje, że każdy telegram jest jednocześnie akceptowany przez wszystkie węzły lub zostaje odrzucony; w ten sposób zapewniona jest zgodność danych w całym systemie. W określonym rozwiązaniu sieci CAN szybkość transmisji jest stała. Transfer informacji jest możliwy z szybkością w granicach od 5 kbit/s do 1 Mbit/s. Sieć CAN, początkowo stosowana w samochodach, charakteryzowała się niewielką długością całej magistrali, rzędu 5-10 m, tak więc stosowano szybkość transmisji 1 Mbit/s. Po wprowadzeniu CAN do przemysłu wymagane odległości znacznie się zwiększyły, a szybkości transmisji zmniejszyły, czasem do 5 kbit/s. W magistrali CAN liczba węzłów jest teoretycznie nieograniczona, ponieważ nie ma tu systemu adresowania węzłów. W praktyce liczba stosowanych węzłów jest ograniczona przez parametry elektryczne nadajników-odbiorników. Istnieje jednakże możliwość zastosowania układów wzmacniających sygnał tzw. powtarzaczy (repeater), za pomocą których można zwiększyć liczbę urządzeń podłączonych do szyny i zwiększyć zasięg całej Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 110 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego sieci. Duża liczba węzłów zastosowanych w jednej sieci wpływa jednak na opóźnienie przesyłu informacji, tak więc często jest tu potrzebny kompromis. Magistrala ma natomiast atrakcyjną cechę: aby zmniejszyć pobór energii, możliwe jest ustawienie węzłów CAN w tryb uśpienia. Szyna zostaje pobudzona z trybu uśpienia, m.in. gdy jeden ze sterowników wykaże aktywność. Warstwa fizyczna sieci CAN Magistrala CAN stosuje do przesyłania danych przez przewody dwa różne poziomy logiczne, ale nie definiuje stanów fizycznych reprezentujących te poziomy. Określa natomiast ich funkcje logiczne jako poziom dominujący i poziom ustępujący. Taki system ma zapewniać poprawną transmisję podczas próby jednoczesnego nadawania przez dwa różne urządzenia. Poziom dominujący ma wyższy priorytet niż poziom ustępujący. Dzięki temu podczas próby jednoczesnej transmisji bitu dominującego i ustępującego przez dwa różne urządzenia otrzymuje się zawsze poziom dominujący i – co najważniejsze – nie nastąpi przy tym zakłócenie transmisji. W przypadku dwuprzewodowej skrętki, gdy na magistralę podawana jest logiczna 1, to na dwóch liniach sygnałowych pojawia się napięcie 2,5 V; stan taki reprezentuje poziom ustępujący. Natomiast gdy na magistralę jest podawane logiczne 0, to na linii CAN-H napięcie zostaje podwyższone do 5 V, a stan drugiej linii – CAN-L – obniżone do wartości (potencjału) odpowiadającej masie układu; stan taki reprezentuje poziom dominujący. W ten sposób zostaje zrealizowane wymaganie normy ISO 11898 dla CAN, aby komunikacja była kontynuowana (jedynie z obniżonym odstępem poziomu sygnału od poziomu szumów) nawet w przypadkach: zerwania jednego z przewodów, zwarcia jednego z przewodów do źródła zasilania lub zwarcia jednego z przewodów do masy. Warstwa łącza danych CAN W celu uniknięcia konfliktu przy nadawaniu, po przygotowaniu komunikatu do nadawania, węzeł obserwuje stan magistrali i powstrzymuje transmisję aż do chwili stwierdzenia, że szyna jest wolna. Pierwszym elementem komunikatu jest identyfikator. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 111 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Jeżeli w tym samym czasie rozpoczną nadawanie dwa urządzenia, to identyfikatory telegramów nałożą się na siebie. W razie niezgodności nakładających się bitów (0 i 1) w sieci ustali się wartość 0. Dzięki temu węzeł, który nadał 1 (a więc węzeł o niższym priorytecie) może wykryć kolizję i przerwać nadawanie. Węzeł o wyższym priorytecie może nadać resztę telegramu bez przeszkód. Takie rozwiązanie powoduje, że ani informacja, ani czas nie są tracone. Gdy dwa różne telegramy są inicjowane w tym samym czasie, to zawsze ramka danych o wyższym priorytecie zostaje wysłana na szynę. W różnych segmentach tej samej magistrali mogą być wykorzystywane różne rodzaje kabli. Obecnie najczęściej jest stosowana tzw. skrętka, która przy niskiej cenie zapewnia dużą odporność na zakłócenia elektromagnetyczne. Od kilku lat do systemów magistralnych są wprowadzane inne media, w tym światłowody. Charakteryzują się one bardzo małym tłumieniem sygnału oraz bardzo dużą odpornością na zakłócenia elektromagnetyczne. Zastosowanie światłowodu umożliwia znaczne zwiększenie rozpiętości sieci oraz uzyskanie bardzo dużych szybkości transmisji. Dodatkową zaletą światłowodu jest zapewnienie galwanicznej izolacji węzłów sieci. Światłowody są coraz częściej stosowane w systemach przemysłowych instalowanych w środowisku o szczególnie wysokim poziomie zakłóceń. Ciągle jeszcze ich słabą stroną jest wysoki koszt kabla światłowodowego oraz przetworników elektrooptycznych. Zastosowanie światłowodów w systemie CAN nie jest jeszcze popularne, ale kilka firm wprowadziło już na rynek przetworniki światłowodowe, np. angielska firma AMPLICON oferuje przetworniki PSI-MOS CAN BM Fibre, a szwedzka firma KVASER – przetworniki DRVcan FI. W samochodach marki Volvo już od 1999 r. komunikacja między wszystkimi pokładowymi urządzeniami sterującymi odbywa się przez magistralę CAN. Chociaż przełącznik świateł steruje siedmioma różnymi funkcjami, dochodzą do niego tylko trzy przewody: plus, masa i sygnał danych. Takim kablem są połączone wszystkie urządzenia wykonawcze. Dzięki technice CAN jednym przewodem mogą być przenoszone jednocześnie w obu kierunkach dwa sygnały lub więcej. Dane, np. sterujące silnikiem lub skrzynią biegów, przepływają z szybkością 250 kbit/s, a do węzłów mających mniej istotne zadania, jak sterowanie klimatyzacją lub światłem wewnątrz samochodu, informacje Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 112 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego transmitowane są z szybkością 125 kbit/s. Jeśli np. mają być włączone tylne światła przeciwmgielne, przełącznik świateł przekazuje przez szynę danych odpowiedni cyfrowy sygnał do wszystkich węzłów. Układy, do których nie jest on adresowany, ignorują te informacje. Są one natomiast odbierane przez moduł REM (Rear Electronic Module) umieszczony w bagażniku. Układ pobudza przekaźnik, który z kolei włącza lampy przeciwmgielne. To jednak nie koniec – jednocześnie REM kontroluje ich działanie. Jeśli wszystko jest w porządku, odpowiednia informacja przepływa przez szynę danych i na tablicy rozdzielczej zapala się lampka OK. Dzięki technice CAN oraz elastycznie działającym węzłom, sygnał wysłany do układu REM może np. spowodować włączenie tylnego światła przeciwmgielnego, gdy przepali się żarówka znajdująca się w oprawie świateł hamowania. Modbus jest protokołem komunikacji szeregowej opracowanym przez firmę Modicon w 1979 roku początkowo był przeznaczony dla programowalnych sterowników logicznych (PLC). Obecnie jest standardowym protokołem komunikacyjnym w przemyśle. Modbus pozwala na komunikację między wieloma urządzeniami (np. czujnikami) dołączonymi do tej samej sieci. Modbus jest często wykorzystywany do komunikacji między komputerem nadrzędnym a zdalnym terminalem (Remote Terminal Unit) w układach SCADA (Supervisory Control and Data Acquisition). Innymi przykładowymi aplikacjami Modbus są: sterowanie w systemach rozproszonych, systemy nadzoru, ochrony, procesy monitorowania, zarządzania energią, itp. Protokół Modbus współpracuje często z interfejsem RS485, gdzie występuje jedno urządzenie nadrzędne (Master) inicjalizujące transakcje (wysyłające polecenie), a pozostałe urządzenia są podrzędnymi (Slaves), wykonują polecenia urządzenia nadrzędnego i wysyłają odpowiedź. W danej chwili tylko jedno urządzenie podrzędne może odpowiadać na zdalne zapytanie urządzenia nadrzędnego, natomiast nie ma możliwości komunikacji pomiędzy urządzeniami podrzędnymi. Typowym urządzeniem Master może być procesor główny (host procesor w komputerze PC, nadrzędny sterownik logiczny). Jako Slave może być programowalny sterownik logiczny. Węzły podrzędne (Slaves) są wykorzystywane do Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 113 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego sterowania oraz zbierania danych z urządzeń peryferyjnych takich jak: mierniki, liczniki, przetworniki A/C i C/A, czujniki, przekaźniki, itp. Typowe prędkości transmisji protokołu Modbus są niewielkie i wynoszą od 9.6 Kb/s, 19.2 Kb/s. Istnieje kilka wersji protokołu Modbus: Modbus ASCII Modbus RTU Modbus TCP/IP w sieci Ethernet. Własności przemysłowych sieci miejscowych Przemysłowe sieci miejscowe różnią się zarówno od sieci o zamkniętej architekturze (firmowych), jak i od sieci powszechnego użytku. Odróżniające je własności to: Pod względem jakości: 1. Prostota połączeń mechanicznych. 2. Redundancja połączeń. 3. Kompatybilność. 4. Łatwość konfiguracji. 5. Wysoka efektywność – duża szybkość transmisji, eliminacja kolizji, kontrola poprawności transmisji (rozbudowane narzędzia diagnostyczne i monitorowania), wykorzystanie kodów korekcyjnych (CRC, LRC). Pod względem obniżki kosztów: 1. Redukcja kosztów połączeń – zastosowanie mediów transmisyjnych o niskim koszcie, np. sieć energetyczna, łatwa w instalacji topologia np. magistralowa. 2. Zastosowanie standardowych protokołów transmisji w różnych elementach sieci. 3. Zastosowanie standardowego sprzętu o otwartej architekturze. 4. Zgodność funkcjonalna sprzętu pochodzącego z różnych firm. 5. Tanie oprogramowanie konfiguracyjne. Pod względem pracy w czasie rzeczywistym: Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 114 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego 1. Wysoka szybkość transmisji. 2. Zastosowanie protokołów cyklicznej obsługi błędów. 3. Kontrolowany dostęp do łącza (protokoły deterministyczne lub specjalne mechanizmy eliminacji kolizji). Słownik wybranych terminów Industry-Standard Connectivity OPC SQL/ODBC .NET, ActiveX, DLLs, TCP/UDP, XML Literatura 1. Grega W., Metody i algorytmy sterowania cyfrowego w układach scentralizowanych i rozproszonych, AGH, Kraków 2004. 2. Zydorowicz T., PC i sieci komputerowe, PLJ, Warszawa 1993. 3. Strony firmowe producentów. 4. Solnik W., Zajda Z., Komputerowe sieci przemysłowe Profibus DP i MPI, Oficyna Wydawnicza Politechniki Wrocławskiej 2007. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 115 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Temat: Sterowniki programowalne PLC i PAC – budowa, programowanie, zastosowanie w układach automatyki okrętowej. Sterowniki programowalne PLC (Programmable Logic Controllers) są komputerami przemysłowymi, które pracują pod kontrolą systemu operacyjnego czasu rzeczywistego realizują następujące zadania: 1) akwizycję danych pomiarowych analogowych i dyskretnych, 2) transmisję danych, 3) wykonują programy aplikacyjne, 4) generują sygnały sterujące dla elementów wykonawczych, 5) diagnostykę programową i sprzętową. Głównym zadaniem sterownika jest reagowanie na zmiany wejść przez obliczanie wyjść według zaprogramowanych reguł sterowania lub regulacji. Historia sterowników programowalnych PLC sięga roku 1968, kiedy to w firmie General Motors grupa inżynierów pod kierunkiem Udo Struga rozpoczęła prace projektowe nad nową generacją sterowników. Początkowe miały one na celu zastępowanie układów przekaźnikowych w urządzeniach sterowania sekwencyjnego i w urządzeniach sterowanych logicznie. W roku 1977 firma Allen-Bradley Corporation zastosowała w sterowniku mikroprocesor 8080 wraz z koprocesorem. Zalety sterowników PLC podobieństwo schematów drabinkowych używanych do programowania sterowników PLC do stosowanych schematów stykowo-przekaźnikowych; duża niezawodność pomimo pracy w trudnych warunkach środowiskowych; programowa kontrola obwodów wejściowych i wyjściowych; diagnostyka systemowa i obiektowa; możliwość komunikacji z gniazdami przemysłowymi, panelami operatorskimi, komputerami osobistymi oraz z innymi urządzeniami typu HMI (Human Machine Interface); Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 116 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego jeden sterownik może zastąpić wiele przekaźników (mały – 50100 przekaźników; średni – 150500 przekaźników; duży – 5003000 przekaźników); możliwość współpracy z oprogramowaniem SCADA (oprogramowanie do sterowania nadrzędnego i zbierania danych – Supervisory Control and Data Acquisition). Systemy SCADA służą do: tworzenia raportów i archiwizacji danych ze sterowników; tworzenia raportów bieżącego stanu, zużycia materiałów itp.; wizualizacji (bieżącej i historycznej) zmiennych procesowych; generowania sygnałów alarmowych. Programowanie sterowników PLC Sposoby programowania: za pomocą programatora klawiaturowego, za pomocą komputera osobistego. Języki programowania Standaryzację metod programowania sterowników PLC zawiera norma IEC 1131 (Programmable Controllers) w swej trzeciej części (IEC 1131-3). Języki tekstowe: język listy instrukcji IL (Instruction List) to odpowiednik języka typu assembler. Zbiór instrukcji tego języka obejmuje operacje logiczne, arytmetyczne, relacji, przerzutniki, czasomierze, liczniki, itp.; język strukturalny ST (Structured Text) jest odpowiednikiem języka algorytmicznego wysokiego poziomu (Pascal, C/C++). Języki graficzne: język schematów drabinkowych LD (Ladder Diagram) jest podobny do stykowych obwodów przekaźnikowych, w którym dopuszcza się użycie także funkcji Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 117 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego arytmetycznych, logicznych, liczników, przerzutników, czasomierzy, regulatora PID, bloków programowych; język schematów blokowych (Function Block Diagram) będący odpowiednikiem schematów przepływu sygnału dla obwodów logicznych przedstawionych w formie połączonych bramek logicznych oraz bloków funkcyjnych, takich jak w języku LD; graf sekwencji (SFC) (Sequential Function Chart), który pozwala na opisywanie zadań sterownia sekwencyjnego za pomocą grafów zawierających etapy (kroki) i warunki przejścia (tranzycji) między etapami. Standardowe elementy oprogramowania sterowników PLC to: a – funkcje b – bloki funkcyjne c – programy Ad. a – Funkcje. Funkcja jest to program zwracający jeden element danych (który może się jednak składać z wielu wartości). Wywołanie funkcji z tymi samymi parametrami wejściowymi zwraca zawsze tę samą wartość, w przeciwieństwie do bloku funkcyjnego. W językach graficznych funkcje są reprezentowane za pomocą prostokątów, na przykład: Negacja +––+ –––0 wejścia +––+ ––– ––– +––+ 0 – – – Negacja wyjścia +––+ Jeżeli definicja funkcji zawiera w wywołaniu parametry formalne, to powinny one być użyte w wywołaniu funkcji, np. B IN SHL C N A Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 118 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego W przypadku języka schematów drabinkowych (LD) wprowadza się do funkcji dodatkowe wejście logiczne EN (Enable – zezwolenie) oraz dodatkowe wyjście logiczne ENO (Enable Output). Użycie EB i ENO jest obowiązkowe (dla LD). Jeżeli EN jest false to funkcja nie zawiera żadnych wartości i ENO jest też false. Jeżeli EN jest true to funkcja zwraca parametry wyjściowe, a ENO przyjmuje wartość logiczną true (jeśli nie ma błędów wykonania funkcji; jeżeli wystąpi błąd wykonania funkcji, to wtedy ENO zwraca wartość logiczną false). Przykład: ADD-EN ( ) A B EN ENO ADD-OK ( ) + Użycie EN i ENO w języku FBD jest opcjonalne (można używać lub nie). Funkcje występujące w sterowniku można podzielić na: standardowe, np. ABS, SQRT, LOG, SIN, COS, TAN, itp logiczne – AND, OR, XOR, NOT, wyboru i porównania – MIN, MAX, LIMIT, MUX, łańcuchowe – LEN, LEFT, RIGHT, MID, DELETE; definiowane przez użytkownika; mogą to być funkcje tylko dla argumentów określonego typu, np. całkowitego (INT), rzeczywistego (REAL) itp. Ad. b. Bloki funkcyjne. Blok funkcyjny posiada zmienne wewnętrzne zawierające informację o tym bloku. Dlatego blok funkcyjny – w przeciwieństwie do funkcji – może zwracać jeden lub wiele elementów danych. Symbolem graficznym bloku jest też prostokąt. Standardowe bloki funkcyjne sterowników PLC: elementy bistabilne – przerzutniki SR (to jest z dominującym wejściem ustawiającym), RS (to jest z dominującym wejściem zerującym), semafory; Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 119 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego elementy detekcji zbocza (Edge detection) – standardowe bloki funkcyjne umożliwiają detekcję zbocza opadającego (falling edge, zmiana z 1 na 0) lub narastającego (rising edge, zmiana z 0 na 1); timery (czasomierze) – służą do odmierzania czasu lub załączania lub wyłączania z uwzględnieniem uwarunkowań czasowych. Można tu wyróżnić następujące bloki: – generujące na wyjściu impulsy o zadanym czasie trwania, – czasomierze załączające z opóźnieniem (on-delay), – czasomierze wyłączające z opóźnieniem (off-delay), – zegary czasu rzeczywistego (real-time Clock) – generują bieżącą datę i czas w sterowniku; liczniki (Counters) służą do zliczania impulsów: – liczniki dodające umożliwiają zliczanie zboczy narastających sygnału, – liczniki odejmujące, – liczniki dodająco-odejmujące. Ad. c. Programy Definicja programu według normy IEC 1131: Program jest to zbiór logicznie powiązanych elementów języka programowania koniecznych do zamierzonego przetwarzania sygnałów w celu sterowania urządzeniem lub procesem za pomocą systemu sterowników programowalnych. Metody programowania sterowników Rozróżnia się następujące metody programowania sterowników PLC: 1 – graf sekwencji (Sequential Function Chart) 2 – język drabinkowy (Ladder Diagram) 3 – tablica stanów 4 – graf stanów nie będą omawiane Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 120 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Przykładowe zadanie sterowania – napełnianie dwóch zbiorników Zbiornik główny V1 V2 H1 L1 Zb 2 Zb 1 H2 pełny L2 pusty z2 z1 Zakłada się, że w stanie początkowym oba zbiorniki są puste. Jeżeli zostanie naciśniety przycisk m (m = 1), to powinno rozpocząć się napełnianie obu zbiorników przez otwarcie zawodów V1 i V2 (V1 = 1 lub V2 =1 oznacza, że odpowiedni zawór jest otwarty). Gdy zbiornik zostanie napełniony, należy zamknąć zawór górny, a jego zawartość może być zużywana przez otwarcie zawory dolnego (z1 lub z2). Kiedy zbiornik się opróżni, to zawór dolny jest zamykany. Ponowne napełnianie można rozpocząć dopiero wtedy, gdy oba zbiorniki będą puste i zostanie naciśnięty przycisk m. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 121 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Rozwiązanie zadania za pomocą schematu drabinkowego zmienna wew q1 = 1 gdy oba zbiorniki są puste połączenie poziome L1 L2 q1 m połączenie pionowe H1 q1 q1 = L1 AND L2 V1 V1 = (q1 AND m OR V1) AND H1 V1 V1 H1 (V1 przyjmie wartość 1, gdy q1 = 1, m = 1 L1 i h1 = 0, a następnie zachowa tę wartość W1 dopóki h1 = 0 (tj. aż zbiornik nie zostanie zapełniony) W1 q1 m H2 V2 L2 W2 V2 V2 H2 W2 styk lewa szyna prądowa prawa szyna prądowa Schemat drabinkowy Własności języka schematów drabinkowych (LD) 1) jest to język graficzny; 2) wykonanie programu polega na „przepływie prądu” – analogicznie jak w schemacie drabinkowym dla systemu przekaźników elektromechanicznych (przepływ prądu zachodzi od lewej strony do prawej); 3) kolejne obwody powinny być wyznaczanie w kolejności z góry na dół – tak jak pojawiają się w schemacie drabinkowym (chyba że zastosowano elementy kontrolne zmieniające tę kolejność); Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 122 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego 4) elementy obwodu mogą być łączone poziomo lub pionowo. Stan elementów łączących oznacza się jako ON lub OFF odpowiednio do wartości logicznych 1 lub 0. W schemacie drabinkowym występują styki Styki statyczne styk zwierny (normalnie otwarty) styk rozwierny (normalnie zamknięty) Styki impulsowe P styk reagujący na zbocze narastające N styk reagujący na zbocze opadające W schemacie drabinkowym występują też cewki Cewka przekazuje stan połączeń z lewej strony na prawą bez zmian powodując jednocześnie zapamiętanie stanu połączenia po swej lewej stronie przez przypisaną jej zmienną logiczną. Symbole cewek: Cewki zwykłe: Cewka Stan połączenia z lewej strony cewki jest przenoszony na prawą stronę i zapamiętywany w skojarzonej zmiennej logicznej Cewka negująca Stan połączenia z lewej strony cewki jest przenoszony na prawą stronę, a odwrotność tego stanu jest zapamiętywana w skojarzonej zmiennej logicznej Cewka nastawiająca S Skojarzona zmienna przyjmuje wartość 1 jeśli połączenie z lewej strony jest w stanie ON i nie Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 123 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego zmieni się aż do chwili wyzerowania przez cewkę kasującą. Cewka kasująca R Skojarzona zmienna przyjmuje wartość 0, jeżeli połączenie z lewej strony jest w stanie ON i nie zmieni się aż do chwili ustawienia przez cewkę ustawiającą. Cewki z zapamiętywanie stanu: Cewka z zapamiętywaniem M stanu Cewka ustawiająca SM z zapamiętywanie stanu Cewka kasująca RM z zapamiętywaniem stanu Cewka reagująca P Skojarzona zmienna logiczna przyjmuje na zbocze narastające wartość 1 na czas jednego wykonania jeśli połączenie z lewej strony zmieniło stan z OFF na ON. Stan połączenia z lewej strony jest zawsze przenoszony na prawą. Cewka reagująca N Skojarzona zmienna logiczna przyjmuje na zbocze opadające wartość 1 na czas jednego wykonania, jeśli połączenie z lewej strony zmieniło stan z ON na OFF. Stan połączenia z lewej strony jest zawsze przenoszony na prawą. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 124 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Programowanie sterowników PLC za pomocą grafu sekwencji (Sequential Function Chart) Graf sekwencji skała się z: etapów (steps) (miejsce (place) w sieci Petri) przejść (transitions) działań (action) warunków przejść (transition condition) Pomysł grafu sekwencji został zaczerpnięty z sieci Petriego, które są graficznym narzędziem umożliwiającym modelowanie współbieżnych działań sekwencyjnych. Przykład sekwencji współbieżnej: S11 Przejście z etapu S11 do etapów S12 i S14 następuje b tylko wtedy, gdy S11 jest aktywny i jest spełniony wspólny warunek b. Po jednoczesnej aktywacji S12, S12 S14 S14, ... realizacja każdej sekwencji jest niezależna. Budowa i elementy hardware’owe sterownika Elementy sterownika montowane są do płyty łączeniowej (CPU baseplate) zwanej także kasetą (rack), która posiada gniazda (slots) do podłączenia modułów, wśród których dwa są niezbędne: zasilacz. jednostka centralna CPU (Central Processing Unit). Nowsze konstrukcje umożliwiają montaż na szynie DIN (bezpośrednio) i łączenie ich ze sobą łączami zatrzaskowymi. Oprócz zasilacza i CPU występują: moduły wejść i wyjść dwustanowych Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 125 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego – DI (Discrete Input) – moduły DI zamieniają pochodzące z urządzeń sygnały prądu stałego lub przemiennego na sygnały logiczne akceptowane przez sterownik, – DO (Discrete Output) – moduły DO zamieniają sygnały binarne sterownika na sygnały prądu stałego lub przemiennego potrzebne do wysterowania urządzeń w poszczególnych obwodach wyjściowych, które zasila się ze źródła zewnętrznego. Zamiany tych sygnałów dokonuje się głównie przez zamykanie lub otwieranie obwodów wyjściowych za pomocą łączników tranzystorowych, tyrystorowych lub styków przekaźników; moduły wejść i wyjść analogowych – AI (Analog Input) – wejścia analogowe, np. 4-20 mA – AO (Analog Output) – wyjścia analogowe, np. 4-20 mA moduł szybkiego licznika HSC (High Speed Counter Module) do obsługi wejść dwustanowych zmieniających się częstotliwością nie większą niż 100 kHz, a pochodzących najczęściej z przetworników obrotowo-impulsowych (tzw. enkoderów), które generują impulsy o liczbie proporcjonalnej do kąta obrotu osi, z którymi są sprzężone; moduł pozycjonowania osi APM (Axis Positioning Module) – do obsługi dodatkowych sygnałów generowanych przez enkodery, tj. takich jak ograniczenie przyspieszeń dla łagodnego rozruchu i zatrzymania; moduł komunikacyjny z łączami szeregowymi RS-422/485 i RS232/RS232C z określonymi protokołami komunikacyjnymi; moduł komunikacyjny sieci Ethernet stanowiący łącze między sterownikami i siecią Ethernet TCP/IP. Umożliwia on wykorzystanie kabli koncentrycznych (10Base5Coax, 10Base2Coax) Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 126 oraz Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego skrętki (10BaseT), a także światłowodów 10BaseF. 10Base5 (10 Mb/s, średnica 5 mm, rezystancja falowa 50 ) 10Base2 (10 Mb/s, średnica 2 mm, rezystancja falowa 50 ). Sterowniki GE Fanuc bazują na mikroprocesorach firmy Intel: 80188, 80C188XL, 80386EX. Parametrem, który charakteryzuje szybkość CPU jest czas cyklu, tj. czas wykonywania 1000 instrukcji bitowych lub czas wykonywania 1000 instrukcji mieszanych (2/3 instrukcji bitowych i 1/3 instrukcji arytmetycznych). Czas ten dla sterowników GE Fanuc 90-30 zawiera się w przedziale 0,22 – 0,4 ms. W sterownikach tych stosuje się pamięć RAM, EPROM, flash EEPROM. Najnowsze rozwiązania CPU posiadają interfejs Ethernet TCP/IP. CPU zapewnia cykliczną realizację programu aplikacyjnego. Typowy cykl programowy sterownika składa się z następujących faz: 1 – Inicjacja cyklu 2 – Czytanie sygnałów wejściowych 3 – Wykonanie programu użytkownika 4 – Aktualizacja sygnałów wyjściowych 5 – Transmisja danych 6 – Komunikacja systemowa 7 – Wykonanie funkcji diagnostycznych Moduły wejść analogowych przetwarzają sygnały analogowe na postać cyfrową i umieszczają ja w obszarze danych CPU oznaczonych jako %AI. Wejścia analogowe mogą być: różnicowe (differential), tzn. takie, w których konwertowana jest różnica sygnałów wejściowych między IN+ i IN–. Wejście takie jest mniej czułe na zakłócenia; jednokońcówkowe (single-ended), czyli zwykłe. Parametry metrologiczne kanałów analogowych rozdzielczość (resolution) Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 127 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Wyjściowy sygnał cyfrowy kanału może przyjmować tylko pewne wartości dyskretne – istnieje więc błąd kwantyzacji, który jest jednakowy w całym przedziale napięcia wejściowego. Maksymalną wartość błędu kwantyzacji określa najmniej znaczący bit LSB (Least Significant Bit) rejestru przetwornika analogowo-cyfrowego; dokładność (Accuracy) wyznacza się przez określenie maksymalnej różnicy między wartością oczekiwaną i mierzoną; liniowość (linearity) tłumienie zakłóceń międzykanałowych – określa wpływ zmian w sąsiednim kanale na kanał badany. W modułach wejściowych dokonuje się filtracji sygnałów wejściowych (częstotliwość graniczna filtru dolnoprzepustowego – 325 Hz). Zmniejszenia wpływu pól elektrostatycznych i elektromagnetycznych dokonuje się przez ekranowanie. ekran elektrostatyczny powinien być wykonany z materiału o dużej przewodności i musi być połączony z punktem uziemienia GND. Ekrany nie mogą stanowić obwodów zamkniętych, przez które mogłyby płynąć prądy, bo w takim przypadku nie zapewnia się eliminacji sprzężenia między źródłem szumu a obwodami wejść analogowych; ekran elektromagnetyczny powinien być wykonany z materiałów o dużej przenikalności magnetycznej i nie muszą być uziemione. Dobrym sposobem jest też zastosowanie skrętki w ekranie. Typowe moduły wejść analogowych typu RTD (Resistive Temperature Detector) do przyłączania rezystancyjnych czujników temperatury Pt100, Pt1000, Ni100. Temperatura jest mierzona z rozdzielczością do 0,1°C; do przyłączania termopar (termoelementów; J, K, N, T, E, R, S), mostków tensometrycznych i innych elementów o zakresach napięć od 100 mV do 1000 mV; do przyłączania zadajników potencjometrycznych; Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 128 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego z wejściami prądowymi standardowymi (od 4 – 20 mA; 0 – 20 mA); z wejściami napięciowymi standardowymi (od 0 do 10 V, –10 do +10 V). Wejścia napięciowe są wejściami różnicowymi; liczba kanałów – 16. Obecnie w modułach wejść analogowych stosuje się przetworniki A/C 12-bitowe. W modułach wyjść analogowych przetwornik D/A generuje standardowe sygnały prądowe (4 – 20 mA, 0 – 20 mA) lub napięciowe (0 – 10 V, –10 do +10 V). Język LD dla sterowników GE Fanuc 90-30 Typy danych: Zmienne binarne: BIT, BYTE, WORD, INT, (bajt) (16 liczba bitów) bitowa %I DINT 16- liczba BCD-4 32- liczba bitowa BCD (wejście binarne) %Q (wyjście binarne) %M %T %S zmienna binarna wewnętrzna zmienna systemowa %G zmienna globalna Zmienne rejestrowe: %AI wejście analogowe %AQ wyjście analogowe %R rejestr Styki (contacts) Cewki (coils) Przekaźniki Przerzutniki SR Przerzutniki RS Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 129 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Czasomierze (timers) – czasomierz załączający (TMR) czasomierz załączający z zapamiętywaniem (ONDTR) czasomierz wyłączający (OFDT) Liczniki licznik dodający (UPCTR) licznik odejmujący (DNCTR) Funkcje arytmetyczne: ADD (dodawanie); SUB (odejmowanie); DIV (dzielenie); MUL (mnożenie); MOD (reszta z dzielenia); SQRT ( ); Funkcje relacji: EQ (=), NE (nie równe), GT (>), LT (<), LE (<=), RANGE (zakres); Funkcje na ciągach bitów: AND, OR, XOR (suma modulo 2; zwraca 1 tylko wtedy, gdy w obu argumentach funkcji bity na odpowiednich pozycjach mają różne wartości); NOT, SHL (przesuwanie bity w lewo) SHR (przesuwanie bity w prawo) ROL (przesuwanie cyklicznie bitów w lewo) ROR (przesuwanie cyklicznie bitów w prawo) Funkcje tablicowe można podzielić na: funkcje przesyłania danych MOVE kopiuj dane bit po bicie z jednego miejsca pamięci do drugiego BLKMOV kopiuj blok 7 zadanych wartości do tablicy pamięci BLKCLR zeruj zawartość tablicy danych SHFR przesuń dane w tablicy o jedną pozycję (SHiFT Register) BITSEQ generuj sekwencję bitów COMMREQ prześlij blok słów zawierający polecenia dla inteligentnego modułu (COMMunication REQuest) funkcje tablicowe – inicjujące (adres tablicy, numer elementu tablicy od którego należy rozpocząć) Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 130 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego przeszukujące tablice (np. SRCH_GT – szukaj danych większych niż zadana wartość SRCH_LT, itp.); funkcje konwersji – INT_TO_BCD4; funkcje sterujące: COMMENT (komentarz); LABEL (etykieta) CALL (wywołanie podprogramu); PID JUMP (instrukcja skoku) Do_IO (aktualizacja stanu wejść lub wyjść sterownika poza normalną obsługą wejść i wyjść) MCR instrukcja warunkowa (jak repeat) ENDMCR Podprogramy (subroutine blocks) – fragmenty programu wywołane z bloku głównego programu za pomocą CALL, np. %M0001 CALL POZIOM1 (SUBROUTINE) %Q0001 %I0001 BLOK FUNKCYJNY PID zezwolenie (enable) (ok) potwierdzenie poprawności PID działania wartość zadana (set point) (output) zmienna sterująca CV SP zmienna CV (Control Variable) – sygnał wyjściowy procesowa (process variable) przełączenie: praca automat / PV praca ręczna inkrementacja wielkości MAN Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 131 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego wyjściowej w trybie pracy ręcznej dekrementacja wielkości UP wyjściowej w trybie pracy ręcznej DN Wybrane rejestry konfiguracyjne bloku PID Numer pętli sterowania (Loop Number) Typ algorytmu (algorithm) PID ISA, PID IND d dt SP PV + – Strefa martwa Prop + + + P + Przesunięcie bazowe (bias) + Czas narastania Ograniczenie Polaryzacja W algorytmie PID IND (Independent Term Algorithm) blok P występuje tu (wzmocnienie występuje tylko w części proporcjonalnej) Independent Term Algorithm Przesunięcie bias może być wykorzystane nie tylko do przeniesienia wartości wyjścia na odpowiedni poziom, ale też w URA z korekcją od zakłócenia, zwanym też sterowaniem ze sprzężeniem w przód (Feedforward Control). okres próbkowania (sample period) 0 10,9 min strefa martwa (dead band) 0 100% błędu współczynnik wzmocnienia (proportional gain) stała różniczkowania (derivative) 0,01% % 0 327,67 s Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 132 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego częstość całkowania (Integral Rate) 0 32,767 powtórzeń/s przesunięcie (bias) –100% 100% STYKI I CEWKI DLA STEROWNIKA GE FANUC 90-30 Styk zwierny Styl rozwierny + Styk kontynuacji Cewka normalna / Cewka negująca S Cewka ustawiająca (SET coil) R Cewka kasująca (RESET coil) M Cewka z zapamiętaniem stanu /M Cewka negująca z zapamiętaniem stanu SM Cewka ustawiająca z zapamiętaniem stanu RM Cewka kasująca z zapamiętaniem stanu Cewka impulsowa reagująca na zbocze narastające Cewka impulsowa reagująca na zbocze opadające + Cewka kontynuacji Poniższy tekst pochodzi z artykułu Simulink PLC Coder – Automatyczne generowanie kodu do sterownika B&R (Bernecker & Rainer) w Automation Studio zamieszczonego 25 lipiec 2010 na stronie internetowej http://www.controlengpolska.com/ MathWorks wiodący producent i dostawca oprogramowania do obliczeń technicznych i projektowania matematycznych opartego na (Model-Based modelach Design), wprowadził na rynek nowy produkt do automatycznego generowania kodu normy IEC. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 133 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Simulink PLC Coder rozszerza możliwości projektowania dla branży automatyki przemysłowej generując kod w języku normy IEC 61131-3 ST Structured Text implementujący funkcje przetestowane wcześniej w graficznym środowisku MATLAB Simulink na sterowniki programowalne. Możliwe jest zatem użycie tego kodu na wszystkich sterownikach B&R, dzięki możliwościom oprogramowania B&R Automation Studio. „Projektowanie oparte na modelach pomaga firmom produkującym maszyny efektywnie wykorzystać cenne zasoby inżynierskie, jednocześnie ograniczając koszty i czas wprowadzania projektu na rynek. B&R udowodnił, że jest dostawcą innowacyjnych rozwiązań oferując uniwersalny interfejs do integracji kodu wygenerowanego przez RealTime Workshop i Simulink PLC Coder w środowisku programistycznym B&R Automation Studio” stwierdza Tom Erkkinen – menadżer działu aplikacji MathWorks. Simulink PLC Coder uzupełnia rozwiązanie automatycznej generacji kodu oferowane przez B&R od dwóch lat – Automation Studio Target for Simulink. B&R oferuje możliwość automatycznego generowania kodu realizującego funkcje przetestowane w graficznym środowisku Matlab Simulink do języków ANSI-C oraz Structured Text i jego automatyczną integrację w programie sterowania. Projektowanie oparte na modelach, razem z automatyczną generacją kodu, pozwala na znaczne skrócenie procesów tworzenia nowego produktu poprzez stworzenie możliwości szybszego, a więc i bardziej wydajnego kosztowo przepływu informacji na etapie projektowym. Błędy wykrywane są na etapie symulacji, a w pełni przetestowane na symulatorach algorytmy mogą być przesłane do sterownika przemysłowego poprzez naciśnięcie jednego przycisku. Integracja poszczególnych narzędzi jest zawsze czynnikiem decydującym. Ścisła współpraca pomiędzy B&R i MathWorks zapewnia ciągły rozwój wspólnych rozwiązań programistycznych w przyszłości. Literatura 1. Kwaśniewski J., Sterowniki PLC w praktyce inżynierskiej, Wydawnictwo BTC, 2008. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 134 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego 2. Legierski T. Programowanie sterowników PLC, Gliwice: Pracownia Komputerowa Jacka Skalmierskiego, 1998. 3. Łukasik Z., Seta Z., Programowalne sterowniki PLC w systemach sterowania przemysłowego, Politechnika Radomska, Radom 2001. Projekt „Rozwój i promocja kierunków technicznych w Akademii Morskiej w Szczecinie” Akademia Morska w Szczecinie, ul. Wały Chrobrego 1-2, 70-500 Szczecin 135