LABORATORIUM SYSTEMÓW POMIAROWYCH KTP IR PW MATERIAŁY POMOCNICZE DO ĆWICZENIA 1 SYMULATOR SYSTEMU POMIAROWEGO W STANDARDZIE IEC-625.1 Warszawa 2001
SYMULATOR SYSTEMU POMIAROWEGO W STANDARDZIE IEC-625.1 1 Menu programu Projekt otwiera i zapisuje projekt. Program konfiguracja schematu połączeń urządzeń, przyporządkowanie parametrów i adresów urządzeń, sprawdzenie poprawności wprowadzonych danych oraz wykonanie pliku z programem określającym działanie systemu IEC-625.1. Test służy do graficznego przedstawienia stanów linii IEC-625.1. Ustawienia konfiguracja programu. 1.1. Menu Projekt Nowy projekt usuwa z pamięci schemat połączeń i parametry urządzeń. Otwórz projekt otwiera plik z zapisanym schematem połączeń oraz z parametrami urządzeń. Zapisz projekt zapisuje w pliku schemat połączeń oraz parametry urządzeń. Wyjście wyjście z programu. 1.2. Menu Program Sprawdzenie poprawności sprawdza poprawność wprowadzonych danych. Interpretacja kodu interpretuje kod programu, który określa działanie szyny IEC-625.1. Wczytanie programu wczytuje plik z programem. Pokaż konfigurację systemu IEC służy do graficznego konfigurowania układu (wybór urządzeń, wzajemne połączenia, parametry urządzeń, adresy). Zakończ edycje systemu IEC zamyka edytor graficzny. Otwórz plik z kodem programu otwiera plik z kodem programu określającym działanie magistrali IEC. 1.3. Menu Symulacja Otwórz symulację otwiera okno z przebiegami logicznymi występującymi na liniach szyny IEC-625.1. Zamknij symulację zamyka okno z symulacją. 1.4. Menu Ustawienia Konfiguracja symulatora umożliwia skonfigurowanie okna z wynikami symulacji. Menu Pomoc nie zawierają jeszcze dostępnych pozycji.
2 Obsługa edytora konfiguracji układu. 2.1. Otwarcie edytora Otwarcie edytora graficznego nastąpi po otwarciu projektu lub po wybraniu opcji Program => Pokaż konfigurację systemu IEC. Każde dostępne urządzenie reprezentowane jest jako ikona posiadająca wejście, wyjście, wejście na zasilanie ( w zależności od rodzaju obiektu) symbolizowane przed czarne punkty na brzegach ikony. Połączenia między urządzeniami są symbolizowane przez łączące ikony. 2.2. Wybór urządzenia Rys. 1. Symbol wzmacniacza Wybranie urządzenia następuje przez dwukrotne kliknięcie lewym przyciskiem myszy, podczas gdy pod kursorem myszy nie znajduje się żadne inne urządzenie. Spowoduje to ukazanie się listy dostępnych urządzeń, z których użytkownik wybiera żądany element przez naciśnięcie przycisku z nazwą urządzenia. Rys.2. Okno z dostępnymi urządzeniami Jeśli użytkownik nie chce wybierać żadnego z urządzeń należy wcisnąć krzyżyk znajdujący się w prawym górnym rogu. 2.3. Łączenie urządzeń. Łączenie urządzeń następuje przez ustawienie kursora myszy na czarnym punkcie przy brzegu ikony. Wówczas należy wcisnąć lewy klawisz myszy co spowoduje zmianę wyglądu kursora na krzyżyk. Podtrzymując naciśnięty klawisz myszy należy przesunąć kursor myszy
na czarny punkt innej ikony i puścić przycisk myszy. Jeśli połączenie między urządzeniami jest możliwe zostanie to pokazane przez wyświetlenie linii łączącej te urządzenia. Jeśli to połączenie jest błędne to urządzenia pozostaną nadal rozłączone. Rys. 3. Rysunek przedstawiający połączone urządzenia. 2.4. Określenie parametrów urządzenia i jego adresu. Należy naprowadzić kursor na ikonę urządzenia i dwukrotnie kliknąć myszą. Spowoduje to pojawienie się okna w którym będzie można dokonać parametryzacji urządzenia. Rys. 4. Okno do określenia parametrów urządzenia.
Okno ma możliwość wpisywania danych bez użycia klawiatury ( strzałki w górę lub w dół). Wciśnięcie klawisza OK spowoduje zaakceptowanie danych, natomiast użycie klawisza Cancel pozostawi dane o wartościach sprzed wywołania tego okna. Określenie parametrów jest możliwe dla wszystkich elementów z wyjątkiem obiektów badanych. 2.5. Usunięcie urządzenia. W celu usunięcie urządzenia należy najechać kursorem myszy na urządzenie oraz nacisnąć prawy klawisz myszy. Spowoduje to pojawienie się okna w którym jedną z pozycji będzie przycisk usuń. Należy go wcisnąć co spowoduje usunięcie urządzenia z pamięci. Usunięciu z pamięci podlegać będą również połączenia tego urządzenia. 3 Język programowania 3.1. Przypisywanie wartości liniom szyny: a) jednoliniowe. atn=1 eoi = 0 b) wieloliniowe. dio =34 3.2. Deklaracja zmiennych: a) zmienne tekstowe ( TXT0, TXT1, TXT2,,TXT9 ). TXT0 = "asdfdf b) zmienne numeryczne ( INT0, INT1, INT2,,INT9 ). przypisanie stałej INT1=5 przypisanie zmiennej INT4=INT1 sumowanie (odejmowanie) zmiennych lub stałych INT1=INT4 + 5 przypisanie elementu zmiennej tekstowej INT1=TXT0[n], gdzie n stała lub zmienna określająca n - ty element TXT0 ( TXT[0] pierwszy element ) pobranie bitu linii dio INT2=BitDio(n), gdzie n = 0,1,2,.. 7 pobranie wartości linii INT2 = nrfd INT2=dio c) tablica ciągów przypisanie string zmiennanazwa = {"F30Z32","F300Z32","F3000Z32"} pobranie wartości INT1 = sgen[int9][int0] d) tablica liczb
przypisanie number zmiennanazwa = {6,7,8} pobranie wartości int2 = ngen[int9] 3.3. Pętla while : while ( INT0 == 4 ) endw Operatory logiczne : ==,!=, >, <, <=, >= 3.4. Instrukcja warunkowa if if ( INT0 == 5) if ( INT0 == 5) LUB else endi Operatory logiczne jak w pętli while. endi 4 Kody błędów mogących się pojawić podczas analizy kodu programu. 4.1. Błąd ogólny: 10 - nierozpoznane polecenie. 11 za mała tablica na dane. 53 brak ustawionej linii ren 4.2. Przypisanie zmiennym wartości: 21 brak =. 22 są aż dwa znaki - i +. 23 próba operacji arytmetycznej ze zmienną tekstową. 24 brak przy przypisaniu ciągu zmiennej tekstowej. 25 brak [ lub ]. 26 zły parametr w []. 4.3. Błędy pętli while 31 brak końca pętli while (brak endw) 32 nieskończona pętla 33 nierozpoznane funkcja logiczna w while 34 brak ) 35 brak zmiennej 36 brak liczby
4.4. pobranie wartości linii DIO 41 brak (. 42 brak ). 43 zły szyk polecenia. 4.5. składna poleceń dotyczących magistrali IEC 625.1 51 brak =, + lub -. 52 przypisanie złej wartości. błąd transmisji nrfd=0 i ndac=0. Wyniki symulacji są umieszczane w pliku wynik. 5 Wynik symulacji. Aby obejrzeć wyniki symulacji należy wybrać opcję Symulacja => Otwórz symulację. Spowoduje to ukazanie się okna, w który będą się znajdować nazwy linii, przebiegi na magistrali, stany funkcji interfejsowych poszczególnych urządzeń. Rys. 5. Graficzne przedstawienie przebiegów na magistrali. Prawe górne okno zawiera przebiegi magistrali. Znajduje się w nim pionowa niebieska linia wskazująca na odpowiednią chwilę czasową. Linię tę można przesuwać w dowolne miejsce za pomocą myszy kliknięcie lewego przycisku przeniesie linię w miejsce kursora myszy.
Przesunięcie tej linii może nastąpić również poprzez naciśnięcie jednego z dwu przycisków, znajdujących się pod wykresem. Przesuwają one linię w prawo lub lewo o jedną chwilę czasową. Lewe górne okno to stany linii magistrali w chwili określonej przez wyżej omówiony marker. Cały przebieg zdarzeń na magistrali nie mieści się w prawym górnym oknie więc do przesuwania go w przód lub w tył służy suwak umieszczony pod przebiegiem. Dolne okno wyświetla dla każdego z urządzeń stany funkcji interfejsowych, zawartość bufora, adresy urządzeń oraz stany sygnałów urządzeń takich jak STB, MTA, MLA. Okno symulacji zamyka się poleceniem Symulacja => Zamknij symulację 6 Spis dostępnych urządzeń 6.1. Zasilacz: Format programowania: FnZm n = 0-99 m = {1,2 } wartość napięcia u = n*10^(1-m) [V] 6.2. Generator: Format programowania: FnZm m - amplituda w 100mV n - częstotliwość m = 0-50 n = 0 99999 Hz 6.3. Woltomierz: Format programowania: FnZm n = 1 2 ( bez znaczenia ) m = 1 zakres 0.. 0.01 V 2 zakres 0.. 0.1 V 3 zakres 0.. 1 V 4 zakres 0.. 10 V 5 zakres 0.. 100 V 0.01, 0.1, 1, 10, 100 6.4. Woltomierz dokładny: Format programowania: FnZm n = 1 2 ( bez znaczenia ) m = 1 zakres 0.. 0.01 V 2 zakres 0.. 0.1 V 3 zakres 0.. 1 V 4 zakres 0.. 10 V 5 zakres 0.. 100 V 6.5. Czestosciomierz:
Format programowania: FnZm - n = 1 2 n = 1 2 ( bez znaczenia ) m = 1 zakres 0.. 99 Hz 2 zakres 0.. 999 Hz 3 zakres 0.. 9999 Hz 4 zakres 0.. 99999 Hz 7 Przykładowe fragmenty programu a) rozadresowanie dio=63 dav=1 dav=0 b) zaadresowanie do nadawania urządzenia o adresie 1 dio=65 dav=1 dav=0 c) przesłanie do urządzenia tekstu programującego INT0=0 TXT1="F50Z1" while(int0<5) INT1=TXT1[INT0] dio=int1 if(int0==4) eoi=1 endi dav=1 dav=0 INT0=INT0+1 endw eoi=0 string sgen = {"F30Z32","F300Z32","F3000Z32"} number ngen = {6,7,8} int9 = 0 int2 = ngen[int9] int3 = int2-1 int0 = 0; atn=0 while( int0 < int2 ) INT1 = sgen[int9][int0] dio = INT1 if(int0==int3) eoi = 1
endi dav = 1 dav = 0 INT0 = INT0 + 1 endw eoi=0 d) odpytywanie szeregowe % kod inicjacji odpytywania szeregowego int5=66 int2=0 txt2="" while (int5 < 69) dio=int5 % kolejne adresy do nadawania dav=1 dav=0 if( dio == 64) % kod żądania obsługi txt2[int2]=int5 int2 = int2+1 endi endw int5 = int5 + 1 % kod zakończenia odpytywania szeregowego LITERATURA OBOWIĄZKOWA 1. Wiesław Winiecki: Organizacja Komputerowych Systemów Pomiarowych, WPW, Warszawa 1997, rozdział: 6. 2. Materiały z wykładów