8 Techniki programowania

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

prof. dr hab. Krzysztof Jemielniak

PRZYRZĄDY

PRZYRZĄDY

WIRTUALNE

WIRTUALNE

Część 8

Techniki

programowania

http://www.cim.pw.edu.pl/labview

wg Greg McKaskle "Programming Techniques – The Good, the Bad, and the Ugly"

k.jemielniak@wip.pw.edu.pl

http://www.cim.pw.edu.pl/kjemiel

ST 149, tel. 660 8656

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Panel czołowy: dobry czy zły?

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Dobre, złe czy paskudne?

Niedoskonałe, ale znacznie bardziej profesjonalne

Wzorowane na przyrządzie tradycyjnym

(sprzętowym)

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Wskazówki podstawowe

Najczęstsza skarga użytkowników: panel czołowy

wygląda nieprofesjonalnie. Dlaczego?

Programiści (my) nie mają doświadczenia w projektowaniu

paneli, przygotowania plastycznego

Sami musimy krytycznie spojrzeć na swoje projekty!
Skąd się tego nauczyć?

Od profesjonalistów!

kopiujmy przykłady, rzeczywiste przyrządy, urządzenia (TV,
magnetowid, DVD, oscyloskop, deska rozdzielcza w
samochodzie itd.)

nie starajmy się stworzyć czegoś „atrakcyjnego”

więcej uwagi skupmy na funkcjonalności panelu

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Przykład 1: co tu jest źle?

Jaskrawe kolory:

czemu tak dużo?!

czemu tak jaskrawe?!

Za dużo etykiet

czy muszą być przy każdym obiekcie?!

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Po pierwsze usuńmy kolory

No tak, chyba lepiej, ale w dalszym ciągu mamy tu chaos!

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Usuńmy etykiety!

Uporządkowanie wskaźników i zadajników, usunięcie etykiet

pomogło znacznie! Oczywiście pokrętła są teraz za małe

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Umieśćmy elementy ciaśniej

Zamiana gałek na suwaki,

Zgrupowanie elementów tematycznie, wskaźniki z lewej,
zadajniki z prawej (lub odwrotnie)– to dobry ogólny obyczaj

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Inna możliwość

Czasem warto użyć kolorów do identyfikacji obiektów.

Używaj raczej kolorów tła lub ramki niż samych obiektów.

Kolory tła mogą np. odpowiadać kolorom urządzeń

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Skojarzenia

Najważniejsza technika organizacji

panelu czołowego

Umożliwia logiczne zgrupowanie i

oddzielenie od siebie obiektów

Zastosuj:

kolory
ramki
rozmieszczenie
łączenie powyższych

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Skojarzenia – kolor

Nie najlepszy sposób

Najczęściej nadużywany:

podejście agresywne, brutalne

„nieprofesjonalne” na pierwszy rzut oka

Stosować, gdy nie da się użyć innych

technik np.:

w

y

r

ó

żn

ia

j

ą

c s

a

m

o

o

sk

i

w zd

a

n

i

u

przebiegi na wykresie

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Skojarzenia – ramki

Linie, ramki, gradienty (jak na brzegach tego

slajdu), tła

Używane często w mediach (czasem nadużywane)
Ich grubość, kolor winny być dopasowane do

obiektu

TRELE

trele morele

trele

trele morele rym cym cym

trele trele

morele

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Skojarzenia – rozmieszczenie

Najdoskonalsza technika
Książki, klawiatura komputerowa, panele

czołowe programów użytkowych, pilot TV –

oparte są na grupowaniu przez

rozmieszczenie (odstępy)

Móz gludz kiman ie zwyk łązdo

l

n ość d

o

k o j

a

r

z

e

n

i

a

liter

w

s

ł

o

wa, naw tj

e

ś lisą

n

i

e

up

orz

ą

d

ko wane

Ale znaczniej łatwiej się czyta, gdy są zgrupowane w

słowa, a spacje są umieszczone we właściwych

miejscach

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Skojarzenia – łączenie technik

Kombinacje różnych technik kojarzenia

obiektów:

popatrz jak fachowcy stosują każdą z technik

dopiero potem próbuj je łączyć

Ucz się na przykładach z codziennego

świata: gazeta, sprzęt stereo, klawiatura,
drukarka, xero kopiarka itd.

Poproś kolegę o krytyczne uwagi

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Kolory – jak dużo jest za dużo?

Są tylko dwa typy kolorów:

neutralne, do barwienia dużych obiektów, tła

jaskrawe

do

barwienia

małych

obiektów,

wykresów, strzałek, przycisków wyjścia

ostatnio używane

Kolory neutralne

Kolory jaskrawe

selektor kolorów

systemowych

Kolor przeźroczysty

(transparent)

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Daltonizm

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Daltonizm

Nie wiesz, czy zastosowane

przez ciebie kolory będą

widoczne dla każdego?

Wydrukuj na drukarce laserowej (czarno-białej) lub

zamień kolory na skalę szarości:

Nie widać? No to masz problem!

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Fonty – kilka wskazówek

Używaj bardzo niewielu fontów na panelu

czołowym

dwa, trzy to raczej maksimum
najczęściej jeden – to najlepszy wybór
raczej zmieniaj wymiar, styl (bold, italic itd.)

Używaj fontów z szeryfami do tekstów

drukowanych (np. Times New Roman)

Używaj fontów bez szeryfów do

wyświetlana na ekranie (Tahoma, Arial)

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Optymalizacja kodu źródłowego

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Optymalizacja kodu źródłowego

Zrozumieć i zlokalizować problemy z

działaniem programu

Zrozumieć obszary w LabVIEW

mające wpływ na działanie

kopie pamięci
odtwarzanie panelu czołowego
wybór typu przyrządów
zamiany typów zmiennych

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Kroki do udoskonalenia działania

programu

1. Uruchom swój VI

najlepiej, żeby działał możliwie przez cały czas

tworzenia

2. Uruchom analizator wydajności

programu

Performance Profiler

3. Popraw działanie w kluczowych

obszarach

nie warto udoskonalać wszystkiego

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Dlaczego stosować analizator

wydajności?

Reguła Pareto dla wydajności programu:

20% kodu zajmuje 80% czasu działania programu

Udoskonalenia programu są najbardziej

efektywne w odniesieniu do 20% kodu

Wskazanie o które 20% chodzi, nie jest

łatwe!

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Przykład zastosowania

Wybierz:

Tools>>Advanced>>Profile Vis

Kliknij Start

Uruchom program

Zatrzymaj program

Kliknij Stop

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Podstawowe problemy z wydajnością

programu

Źle napisany program

dotyczy wszystkich języków

Niepotrzebne powtórzenia

ponowne przeliczanie zamiast pamiętania

Wykorzystaj dobrze czas pracy komputera

nie wykonuj operacji za wcześnie ani za późno

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Zarządzanie pamięcią

Języki konwencjonalne (C, C++, Pascal) –

programista sam przydziela i zwalnia pamięć

przyczyna wielu błędów, i problemów

LabVIEW robi to automatycznie

programista nie musi przydzielać i zwalniać

pamięci

programista ma mniejszą kontrolę nad

zarządzaniem pamięcią

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Dane robocze

Dane przekazywane na diagramie to dane robocze
LabVIEW stara się minimalizować ilość używanej

pamięci

Funkcje, które tylko czytają dane, nie muszą ich

kopiować

Ten program wykorzystuje jedynie 4K pamięci

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Dane robocze, cd.

Funkcje które tylko czytają dane są (o ile to

możliwe) wykonywane przed tymi, które

modyfikują dane

Kolejność działań wybierana przez LabVIEW jest

dobra, ale nie doskonała

1

2

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Tworzenie macierzy i stringów

Przepisywanie (realokacja) pamięci jest

bardzo kosztowna, gdy wykonuje się ją

często.

Należy unikać używania funkcji

przepisujących pamięć w wielokrotnie

powtarzalnych pętlach:

Build Array

Concatenate Strings

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Zły sposób na budowanie macierzy

Tu funkcja Build Array zmienia wymiar macierzy w

każdej iteracji

Można stosować, gdy nie w każdej iteracji

dodawany jest nowy element

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Lepszy sposób budowania macierzy

Tu LabVIEW czyta zadajnik w każdej iteracji, stąd

nie może z góry zarezerwować pamięci, bo nie wie

ile iteracji wykona

Zamiast tego można powiększać macierz dużymi

krokami, by nie robić tego w każdej iteracji

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Dobry sposób budowania macierzy

Tu LabVIEW rezerwuje pamięć z góry, a w iteracjach wymienia

elementy macierzy na właściwe

to wymienianie jest jednak gorsze niż auto indeksowanie

Co jeśli nie znasz z góry liczby iteracji?

użyj While Loop zamiast For Loop

rezerwuj pamięć krokami, np. po 1000 elementów

po zakończeniu zredukuj macierz do właściwego wymiaru

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Najlepszy sposób budowania macierzy

Jeśli znasz z góry liczbę iteracji, użyj For

Loop

LabVIEW odczyta zadajnik raz i

zarezerwuje właściwą ilość pamięci z góry

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Konwersja typu danych

W LabVIEW są dwa typy konwersji danych:

jawne w Numeric>>Converision palette

ukryte, wymuszone – w kropkach na drutach

Konwersja typu jest kosztowna

ogranicz liczbę konwersji przez stosowanie tego

samego typu danych

dbaj o to tylko w przypadkach często

wykonywanych operacji

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Unikaj kropek wymuszonej konwersji

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Unikaj kropek wymuszonej konwersji

Wyniki porównania poprzednich dwóch VI

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Wolne VI wysokiego poziomu

Wiele operacji można wykonać przyrządami

wysokiego poziomu (Express, easy)

Łatwiejsze programowanie nie znaczy wydajniejszy kod!

VI wysokiego poziomu wykonują wiele operacji nie

koniecznie potrzebnych w danym przypadku

DAQ Easy I/O wykonują rekonfigurację karty przy każdym
wywołaniu

Np. „Write characters to file” wykonuje wiele operacji:

Open file, Seek file, Write block of characters, Close file

Może być do 70 razy wolniejsze niż proste „Write File”

Nie stosować w często powtarzanych pętlach

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Wydajność matematyczna

Kompilator LabVIEW generuje wydajniejszy

kod dla prostych operacji niż dla pętli:

np. proste operacje na macierzach są szybsze niż

wykonywanie ich w pętli

Jest szybsze niż ->

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Odświeżanie interfejsu użytkownika

Rysowanie na ekranie to najczęściej nie

doceniana przyczyna spowolnienia programu

Kosztowność obliczeń czy wywołań wydaje się

bardziej oczywista niż kosztowność wykresów

Podobnie jak przy zarządzaniu pamięcią

LabVIEW stara się optymalizować to rysowanie,
ale nie spodziewajmy się cudów!

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

UI Thread

„

Front panel updates occur in the UI thread

„

Execution takes place in other threads

„

Shared data must be protected, so
LabVIEW creates an extra copy, called a
transfer buffer

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Dane panelu czołowego i diagramu

Wskaźniki i zadajniki panelu czołowego

potrzebują własnych kopii wyświetlanych

danych, zwanych „danymi operacyjnymi”

Ten VI wykorzystuje 8 KB jeśli panel czołowy

jest otwarty, i jedynie 4 KB gdy jest zamknięty

W systemie wielowątkowych potrzebne jest

jeszcze dodatkowe 4KB na transmisję danych

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Kiedy zadajniki przetrzymują kopie danych?

Wskaźniki i zadajniki przechowują „dane

operacyjne” dopóki panel czołowy jest w
pamięci

Panel czołowy jest w pamięci gdy:

jest otwarty

VI nie został zapisany (po zmianie)

diagram używa węzłów właściwości (property

nodes)

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Kiedy zadajniki przetrzymują kopie danych?

Zmienne lokalne czytają i zapisują w

danych operacyjnych

Wskaźniki i zadajniki, do których

odnoszą się zmienne lokalne również
przetrzymują kopie ich danych
operacyjnych

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Zarządzanie interfejsem użytkownika

Aktualizuj wskaźniki tylko tak często jak ich

potrzebujesz

więcej niż 10 razy na sekundę to na pewno za

dużo!

Zrozum kopie danych wskaźników:

dane są kopiowane z drutu do bufora

przejściowego za każdym razem gdy odświeżasz
wskaźnik

dane są następnie kopiowane do wskaźnika przy

każdym odświeżeniu

background image

Politechnika Warszawska, Wydział Inżynierii Produkcji, Instytut Technologii Maszyn

Odświeżanie wskaźników

Jeśli wskaźnik znajduje się w pętli,

powinieneś kontrolować częstość
odświeżania

można odświeżać zawartość wskaźnika co pewną

liczbę obiegów pętli

Wskaźniki SubVI nie powinny być

umieszczane (odświeżane) w pętli

SubVI nie ma interfejsu użytkownika, wystarczy

wystawić wartości końcowe na konektor


Document Outline


Wyszukiwarka

Podobne podstrony:
Algorytmy, struktury danych i techniki programowania wydanie 3
zajecia techniczne program GM
Hubert Bielacki Sprawozdanie.2, ElektronikaITelekomunikacjaWAT, Semestr 1, Metodyka i technika progr
algorytmy techniki programowania 3CZT3OVVLOC6DRYXAVDSKKBBBPYDGKUBK5MU4NA
zajecia techniczne program GM
Algorytmy struktury danych i techniki programowania
Jezyk C Koncepcje i techniki programowania cpproz
Algorytmy, struktury danych i techniki programowania
Środki techniczne i programowanie technologi informacyjnych, INFORMATYKA
Część I Metodyka i Techniki Programowania
Algorytmy struktury danych i techniki programowania Wydanie III algo3
MS Access 97 PL Zaawansowane techniki programowania
zajecia+techniczne program GM, Technika, Plany
MatLab- ćw.1, ElektronikaITelekomunikacjaWAT, Semestr 1, Metodyka i technika programowania1, MTP1

więcej podobnych podstron