Strona 1 z 1
Symulator urządzenia widoczny w MAX-ie
: 16 gru 2009 17:50
autor: krokodylowy
Witam,
piszę obecnie symulator pewnego urządzenia (w C++) i jednym z "ficzerów" tej aplikacji jest możliwość komunikowania się z Labview. Mam takie pytanie, czy moża napisać jakiś sterownik do MAX-a, aby mój symulator był w nim widoczny jako kolejne urządzenie ? Jeśli tak, to może ktoś wie jak to zrobić?
Pozdrwiam,
M.
Symulator urządzenia widoczny w MAX-ie
: 16 gru 2009 22:04
autor: Nowszy
W jaki sposób to urządzenie ma się komunikować z PC-tem? Ma to być USB, PCI, PXI?
Tutaj ktoś miał podobne pytanie:
http://forums.ni.com/ni/board/message?b ... ogin=False
Re: Symulator urządzenia widoczny w MAX-ie
: 17 gru 2009 08:09
autor: krokodylowy
Cześć,
generalnie jest to symulator urządzenia i komunikuje się z PC-tem tylko w celu zaprogramowania. Później ewentualnie może komunikować się z innymi urządzeniami. I właśnie labVIEW ma być wykorzystany - chodzi o to aby nie pisać symulatorów dowolnych innych urządzeń, bo mija się z celem i w sumie w praktyce jest niemożliwe (bo jest ich za dużo).
Widziałem tego linka, którego mi podesłałeś, ale odpowiedź pochodzi z 2002 roku, więc mogło coś się zmienić od tamtego czasu. Z drugiej storny jeśli nic się nie zmieniło, musiałbym napisać driver-a Windowsowego, który udaje kartę PCI albo PXI i komunikuje się z moim symulatorem. A to się chyba trochę mija z celem, bo nie mam doświadczenia w pisaniu driverów urządzeń dla Windowsa, a to chyba nie takie hop-siup ;)
Pozdrawiam,
M.
Symulator urządzenia widoczny w MAX-ie
: 17 gru 2009 12:37
autor: Nowszy
To ciekawe, że post z 2002 roku linkuje do dokumentu opublikowanego w 2009.. coś gdzieś się daty pozmieniały.
Nadal nie napisałeś, jak ma przebiegać komunikacja z PC - jeżeli za pomocą protokołu obsługiwanego przez VISA (GPIB, serial, ethernet, PCI, PXI, VXI), to masz szansę to zrobić, inaczej będzie ciężko
Re: Symulator urządzenia widoczny w MAX-ie
: 17 gru 2009 18:07
autor: krokodylowy
Cześć,
dzięki za odpowiedź. Podejrzewam, że rzeczywiście post jest z 2002 roku, natomiast dokument w któym jest link został zupdate'owany w 2009.
Nie napisałem jak komunikuje się urządzenie z PC, bo się nie komunikuje ;) Jedynie w celu zaprogramowania (po ethernecie albo serialu) ale to nie ma być uwzględnione w komunikacji z LabVIEW.
Pierwotny pomysł był, aby stworzyć dll-kę która będzie się komunikować z symulatorem aby wymieniać dane (prawdopodobnie przez pamięć dzieloną) i udostępniać funkcje które będą wołane przez LabVIEW. Dll-ka w LabVIEW miała zostać ładnie oprogramowana i miałą udostępniać zgrabne API pozwalające uzyskiwać z symulatora potrzebne dane.
Jednak możliwość widoczności symulatora w MAX-ie wydaje mi się bardziej elegancka.
Co do symulatora i komunikacji z LabVIEW to pożytek byłby taki, że mógłbym w LabVIEW obserwować również pewne przebiegi które w urządzeniu nie są wystawione na zewnątrz.
Pozdrawiam,
M.
Re: Symulator urządzenia widoczny w MAX-ie
: 17 gru 2009 18:26
autor: krokodylowy
Ponieważ nie mogę zdradzić co to za urządzenie i do czego służy. Posłużę się przykładem aby zobrazować o co mi chodzi.
Wyobraźmy sobie, że mam multimetr - taki najprosztszy za 20zł, nie komunikuje się z PC-tem można zmierzyć dla ułatwienia tylko napięcie.
Teraz piszę symulator takiego multimetru w C++ na PC-ta. Wartość napięcia można ustawiać za pomocą jakiegoś pokrętełka w GUI.
I teraz aby zrobić mój symulator bardziej uniwersalny chciałbym aby komunikował się on z LabVIEW (mógłbym tam tylko odczytywać wartość napięcia), ale w LabVIEW mógłbym sobie zebrać już np. takie dane z jakiegoś okresu czasu i narysować wykres.
I teraz jak zrealizować komunikację sumulatora multimetru z LabVIEW? Można napisać dll-kę która komunikuje się z symulatorem i jest wywoływana przez LabVIEW w celu odczytu napięcia. A można też (i tutaj jest pytanie czy można, albo czy można w rozsądny sposób) jakoś zrobić ten symulator widoczny w MAX-ie i odczytywać napięcie za pomocą DAQmx (mamy jeden kanał analogowy) ? Chodzi mi o to czy można napisać sterownik do MAX-a który będzie komunikował się z symulatorem? Czy może musiałbym wcześniej napisać sterownik Windowsowy USB albo PXI który udaje urządzenie i komunikuje się z symulatorem?
Pozdrawiam,
M.
Symulator urządzenia widoczny w MAX-ie
: 17 gru 2009 21:56
autor: Nowszy
Cześć
Dzięki za wyjaśnienia, chyba już coś zrozumiałem. Tak więc wyjaśnijmy kilka spraw:
- NIE DA SIĘ stworzyć urządzenia DAQmx - jest to steronik wykorzystywany tylko do urządzeń akwizycji danych NI, zawiera funkcje chcakterystyczne dla układów które są tam zastosowane i nie da się wykorzystać do czegoś innego.
- samą komunikację ze swoim symulatorem (załóżmy że masz jakiś konkretny powód, dla którego ma on być napisany w C, a nie także w LV), możesz stworzyć na kilka sposobów - zrobienie DLLki z odpowiednimi funkcjami i wywoływanie jej z LV to jeden pomysł. Skoro jednak ma to być symulator, to dlaczego nie symulować także komunikacji? W twoim przykładzie ma to być multimetr. Rzeczywisty multimetr może się komunikować po RS-ie, GPIB czy np. ethernecie. Stwórz więc symulator z prostym interfejsem ethernetowym (na przykład), który będzie się komunikował po TCP na jakimś porcie. Ze swojego programu będziesz mógł się komunikować z adresem localhosta i wtedy symulacja będzie symulacją. Tak samo powinno się dać zrobić z każdym innym protokołem.
PS. A tak właściwie to po co ci ten MAX? Urządzenia DAQmx mają test panele - tych nie wykorzystasz, o czym pisałem powyżej. Jaką funkcjonalność chciałbyś mieć w MAXie?
Re: Symulator urządzenia widoczny w MAX-ie
: 18 gru 2009 20:25
autor: krokodylowy
Hej,
no coż na razie badam sprawę. To jeden z pomysłów był, ale chyba jestem zmuszony z niego zrezygnować. Po co mi ten symulator w MAX-ie? Wydawało mi się, że tak będzie bardziej elegancko
Dzięki za odzew,
Pozdrawiam,
M.