Pomiary oscyloskopowe okiem praktyka. cz. 10.pdf
(
2276 KB
)
Pobierz
065-068_tespol_cz10.indd
POMIARY
Pomiary oscyloskopowe:
okiem praktyka, część 10
Dziesiątą część cyklu artykułu
poświęcamy pokazaniu
praktycznych zagadnień
związanych z komunikacją
nowoczesnych oscyloskopów
firmy Tektronix z komputerami
PC. Na płycie CD–EP10/2007B
publikujemy oprogramowanie
narzędziowe i przykładową
aplikację opracowaną przez
autora.
Komunikacja oscyloskopu
z komputerem
Rezultaty pomiarów wykona-
nych oscyloskopem cyfrowym moż-
na archiwizować na kilka sposobów.
Najprostszym z nich, i prawie za-
wsze dostępnym, jest zapis danych
w pamięci referencyjnej. Jej pojem-
ność jest jednak zwykle ograniczona
do kilku przebiegów. Coraz częściej
oscyloskop cyfrowy oferuje zapis na
zewnętrznym nośniku, jak np. karty
Compact Flash. Zapisuje się zarów-
no obraz z ekranu do pliku graficz-
nego, dane z rekordu akwizycji, jak
i komplet nastaw przyrządu. O wiele
większą funkcjonalność oferuje po-
łączenie oscyloskopu z komputerem.
Do niedawna była to dodatkowa op-
cja, obecnie takie rozwiązanie staje
się prawie standardem. W prostych
modelach mamy do dyspozycji po-
łączenie poprzez RS232, GPIB, LAN
lub USB. Bardziej zaawansowane
konstrukcje wyposażone są we włas-
ny komputer PC, gdzie komunikacja
odbywa się np. poprzez wewnętrzny
interfejs PCI. Wraz z oscyloskopem
otrzymujemy napisany przez produ-
centa program komunikacyjny. Jego
możliwości nie zawsze zgodne są
z naszymi potrzebami i oczekiwania-
mi. W tym odcinku postaram się
przekonać Czytelników, że napisanie
własnej aplikacji może być bardzo
łatwe i szybkie.
Przedstawiony w dalszej części
przykład dotyczy oscyloskopów Tek-
tronix TDS1000B i TDS2000B wy-
posażonych fabrycznie w port USB.
Nic jednak nie stoi na przeszkodzie,
aby podobne rozwiązanie zastosować
do wcześniejszych modeli tego pro-
ducenta. Warunkiem jest jednak ja-
kikolwiek port komunikacyjny, który
w poprzednich wersjach oscylosko-
pów dostępny był jako dodatkowa
opcja. Potrzebny także będzie kom-
puter PC z systemem Windows.
Napisanie własnej aplikacji ko-
munikacyjnej bazuje na wykorzy-
staniu funkcji biblioteki TekVISA,
dostarczanej wraz z nowym przy-
rządem. Można ją także bezpłat-
nie pobrać z internetowej strony
producenta (
www.tek.com
). Wersja
3.02 jest dostępna na płycie CD–
EP120/2007B. Plik instalacyjny ma
rozmiar 75 MB (w najnowszej wer-
sji 3.3 nawet 109 MB). Zawiera on
jednak dodatkowe składniki, m.in.
kilka aplikacji oraz wiele przykła-
dów w języku C. Po zainstalowaniu
znajdują się one w domyślnym ka-
talogu
C:\VXIpnp
.
TekVISA jest opracowaną przez
Tektronix implementacją bibliote-
ki I/O VISA (
Virtual Instrument Sof-
tware Architecture
). Ogólny schemat
jej udziału w komunikacji pomiędzy
przyrządem pomiarowym a środowi-
skiem, w którym tworzy się własną
aplikację, przedstawiono na
rys.
53
.
Jak widać, program użytkownika od-
wołuje się po prostu do interfejsu
programowania TekVISY. Dokładnie
jest on opisany w instrukcji obsługi
„
TekVISA Programmer Manual
”.
Wbrew pozorom, napisanie włas-
nego programu komunikacyjnego jest
dość proste. Ponieważ przykłady w C
oraz Visual Basicu dostarczone są
przez producenta, w artykule przed-
stawiono wykorzystanie środowiska
Delphi. Bezpłatne wersje Delphi Per-
sonal są dostępne na stronie firmy
Borland. Autor korzystał ze starszej
wersji Delphi 5.0 Standard.
Przed przystąpieniem do tworzenia
programu należy zainstalować z po-
ziomu Delphi odpowiednią kontrolkę
ActiveX. Zakładając, że TekVISA jest
już zainstalowana wcześniej, wykonu-
je się to poprzez wybranie z menu
Component–>Import ActiveX Control…
.
W oknie dialogowym należy wybrać
Elektronika Praktyczna 10/2007
65
POMIARY
Rys. 54.
Rys. 53.
FindList
umieszcza listę wszyst-
kich podłączonych urządzeń w tab-
licy wariantowej
dev
. Jeśli lista ta
okaże się pusta, informujemy o tym
poprzez wyświetlenie odpowiednie-
go komunikatu w polu listy
ListBox1
.
W przeciwnym wypadku wpisujemy
tam spis wszystkich połączeń. Do
pola
Tvc.Descriptor
wpisujemy na-
zwę kolejnego połączenia i od tej
pory
Tvc
odnosi się do urządzenia
związanego z tym połączeniem. Za
pomocą funkcji
Query
wysyłamy do
każdego z urządzeń zapytanie
*IDN?
i odczytujemy identyfikujący je ciąg
znaków. Zapisujemy go następnie na
odpowiedniej pozycji listy
ListBox2
.
Jeśli do komputera podłączony jest
jeden oscyloskop, to wynik działania
programu powinien być podobny do
przedstawionego na
rys.
55
.
Aby skomunikować się z do-
wolnym dołączonym do komputera
przyrządem, należy do pola
Tvc.De-
scriptor
wpisać nazwę danego połą-
czenia dostępną poprzez
dev[i]
. Na-
stępnie, za pomocą
Tvc.WriteString
zapisać wymagane polecenie i ko-
rzystając z
Tvc.ReadString
odczytać
ewentualną odpowiedź. Spis komend
dla oscyloskopów Tektronix, TDS200,
TPS2000 i TDS1000/TDS2000 znajdu-
je się w podręczniku programowania
dostępnym na internetowej stronie
producenta oraz na płycie dołączo-
nej do tego wydania EP.
Pobranie obrazu z ekranu oscylo-
skopu do schowka systemu Windows
wydaje się banalne. Obiekt
Tvc
po-
siada bowiem metodę
HardcopyToC-
lipboard
. Odczytany rysunek wystar-
czy tylko przenieść do np. obiektu
klasy
TImage
. Należy pamiętać, że
aby odwoływać się do systemowego
schowka, trzeba w sekcji
uses
dodać
TekVISA Control
(przedstawiono to na
rys.
54
) oraz wcisnąć
Install…
i po-
twierdzić w pojawiającym się oknie
Install
. Od tego momentu w zakładce
ActiveX palety komponentów dostęp-
ny będzie komponent Tvc (
TekVISA
Control
). Opis związanych z nim właś-
ciwości, metod oraz zdarzeń znajduje
się pliku pomocy
Tvc.chm
w katalogu
C:\VXIpnp\WINNT\TekVISA\Bin
.
Po zainstalowaniu TekVISY warto
uruchomić aplikację
InstrumentMana-
gera
, wybrać
SearchCriteria
i pozo-
stawić tylko te interfejsy, które będą
wykorzystywane. Instrument Manager
uruchamia się poprzez menu konteks-
towe ikony VISA w podajniku syste-
mowym lub poprzez
Start–>Programy–
>TekVISA
.
Mając już przygotowane środowi-
sko pracy, przystąpmy do napisania
prostego programu, umożliwiającego
odbieranie obrazów z ekranu oscylo-
skopu. Na początek, na czystej formie
nowego projektu umieszczamy kolej-
no cztery komponenty: kontrolkę
Tvc
,
przycisk polecenia
Button
oraz dwie
listy
ListBox1
i
ListBox2
. Po wciśnięciu
przycisku lista pierwsza powinna za-
wierać spis podłączonych przyrządów,
a lista druga ich identyfikację. W tym
celu w obsłudze zdarzenia
OnClick
przycisku wpisujemy kod widoczny
na
list.
1
.
List. 1.
var
i: integer;
dev: Variant;
begin
Tvc.SearchCriterion:= 0;
dev:= Tvc.FindList;
ListBox1.Clear;
ListBox2.Clear;
// dev zawiera teraz listę podłączonych urządzeń,
// sprawdzamy czy jakiekolwiek są aktualnie dołączone
if (varType(dev) <> varEmpty) then
begin
// identyfikujemy każde z połączeń oraz urządzeń dołączonych
for i:= 1 to VarArrayHighBound(dev, VarArrayDimCount(dev))) do
begin
ListBox1.Items.Add(dev[i]);
Tvc.Descriptor:= dev[i];
ListBox2.Items.Add(Tvc.Query(‘*IDN?’));
end;
// jeśli brak jest połączeń wyświetlamy informację o tym
end else ListBox1.Items.Add(‘Brak połączenia z oscyloskopem’);
end;
66
Elektronika Praktyczna 10/2007
POMIARY
Elektronika Praktyczna 10/2007
67
POMIARY
List. 2.
var
retCnt: longint;
begin
Tvc.WriteString(‘Hardcopy Start’);
Tvc.ReadToFile(‘temp’, 80000, retCnt);
Image.Picture.Bitmap.LoadFromFile(‘temp’);
end;
Rys. 55.
Wysłanie komendy
Hardcopy Start
spowoduje skopiowanie aktualnej za-
wartości ekranu. Metoda
ReadToFile
pozwala naszemu programowi odczy-
tać dane do pliku o nazwie
temp
, któ-
ry domyślnie zostanie założony w tej
samej lokalizacji, co uruchomiony
program. Drugi parametr funkcji
Re-
adToFile
określa maksymalny rozmiar
pliku w bajtach. Mapa bitowa pobrana
z oscyloskopu TDS1000 ma rozmiar
ok. 77 kB, stąd widoczne 80000. Jeśli
teraz do projektu dodamy obiekt
TI-
mage
oraz dopiszemy kod z list. 2, to
przy dołączonym do komputera oscy-
loskopie (przy tylko jednym przyrzą-
dzie
Tvc
odnosi się właśnie do nie-
go) otrzymamy rezultat podobny do
przedstawionego na
rys.
56
. Kolejne
wciskanie przycisku spowoduje pobra-
nie następnego obrazu. W zależności
od interfejsu komunikacyjnego, może
to trwać kilka lub nawet kilkadziesiąt
sekund. Dla połączenia poprzez USB
jest to czas rzędu 3…5 s. Niestety,
komunikacja tego typu poprzez TekVI-
SĘ nie pozwoli na pracę całkowicie
on–line
.
Przedstawione rozwiązanie ma jed-
nak poważną wadę. Podczas pobie-
rania danych do pliku, aplikacja nie
reaguje na polecenia użytkownika.
Gdyby kolejny obraz miał być pobie-
rany zaraz po poprzednim, to w ta-
kich warunkach ciężko byłoby nawet
zamknąć program. Wstawienie
Appli-
cation.ProcessMessages
nie na wiele
się przydaje. Istnieje jednak i na to
rada. Pobieranie danych do pliku na-
leży zrealizować w osobnym wątku.
W tym celu z menu
File–>New
trze-
ba wybrać
ThreadObject
. Kod z list. 2.
umieszczamy w procedurze
Execute
nowego wątku, pamię-
tając o wpisaniu nazw
modułów w odpowied-
nich sekcjach
uses
.
Pewnej ostrożności
wymaga zakończenie
wątku. Aby program
poprawnie zamknąć
w dowolnym momen-
cie, należy najpierw
dokończyć trwający
proces pobierania da-
nych, zakończyć wątek
i dopiero zamknąć program. Na płycie
CD–EP10/2007B znajduje się przykła-
dowy projekt przygotowany przez au-
tora. Po wciśnięciu przycisku
Połącz
pobiera on nazwy wszystkich aktual-
nych połączeń. Następnie dla pierw-
szego przyrządu z listy (zakładamy,
że jest to oscyloskop wymienionej na
wstępie serii) wykonuje odczytywanie
obrazu z ekranu i wyświetla go. Od
tego momentu do chwili zamknięcia
programu pobieranie jest cykliczne.
Podczas pobierania danych aplikacja
zachowuje ‘mobilność’ umożliwiając
np. zmianę rozmiarów okna. Wynik
jej działania przedstawia
rys.
57
. Na
etapie przedstawionym w artykule,
program komunikacyjny nie wykonuje
nic szczególnego, ale może stanowić
podstawę dla bardziej zaawansowa-
nych zadań. Poza obrazami z ekranu,
TekVISA umożliwia pobieranie da-
nych z rekordu akwizycji. Stąd już
tylko krok do generowania dowol-
nych przebiegów matematycznych
i napisania aplikacji do np. pomiaru
mocy strat w elemencie przełączają-
cym. W poprzednim odcinku przed-
stawiony był wynik działania takiego
programu, stworzonego w firmie Tek-
tronix. Mam jednak nadzieję, że za-
prezentowany prosty przykład zachę-
ci Czytelników do napisania własnej
wersji, tym bardziej, że środowisko
Delphi oferuje w tym zakresie chy-
ba największe ułatwienia. Uzyskanie
funkcjonalności podobnej do aplikacji
pomiarów mocy dla oscyloskopów se-
rii TPS2000, można uzyskać poświę-
cając jeden z nadchodzących, długich
zimowych wieczorów.
Andrzej Kamieniecki
ClipBrd
. Jak się okazuje w praktyce,
nie jest to najlepsza droga. Co praw-
da obraz można odczytać i przenieść
w dowolne miejsce, jednak czasem
jest to ostatnia, dająca się wykonać
operacja. Powtórne wywołanie
Hardco-
pyToClipboard
zazwyczaj skutkuje za-
wieszeniem programu lub wygenero-
waniem błędu I/O. Co więcej, dostar-
czany wraz z TekVISĄ pasek narzędzi
WordToolbar
, zachowuje się w taki
właśnie sposób podczas kopiowania
obrazów z ekranu. W celu prześledze-
nia tego, co tak naprawdę robi wspo-
mniana procedura można wykorzystać
program
CallMonitor
. Uruchamia się
go z menu kontekstowego ikony VISA,
widocznej w podajniku systemowym.
Problem jednak w tym, że przy uru-
chomionym
CallMonitorze
wszystko
przebiega poprawnie.
Na szczęście istnieją też inne spo-
soby pobrania obrazu. Wykorzystamy
pobieranie do pliku, a następnie wy-
świetlenie jego zawartości za pomo-
cą metody
LoadFromFile
. Nie jest to
szczególnie wyrafinowane rozwiązanie,
niemniej skuteczne. Aby obraz z ekra-
nu oscyloskopu przenieść do obiektu
TImage
wystarczy zaledwie kilka linii
kodu widocznych na
list.
2
.
Rys. 56.
Rys. 57.
68
Elektronika Praktyczna 10/2007
Plik z chomika:
marek33x
Inne pliki z tego folderu:
Pomiary oscyloskopowe okiem praktyka. cz. 1.pdf
(2336 KB)
Pomiary oscyloskopowe okiem praktyka. cz. 10.pdf
(2276 KB)
Pomiary oscyloskopowe okiem praktyka. cz. 11.pdf
(2720 KB)
Pomiary oscyloskopowe okiem praktyka. cz. 2.pdf
(3835 KB)
Pomiary oscyloskopowe okiem praktyka. cz. 3.pdf
(573 KB)
Inne foldery tego chomika:
- █ DDT2000 v2.3.0.1 + Spolszczenie Renault Dacia Nissan RSM
Pliki dostępne do 08.07.2024
Pliki dostępne do 21.01.2024
! Aukcja w ciemno sezon 3 2013r
! Domowa apteka
Zgłoś jeśli
naruszono regulamin