Strona 1 z 1

Master i Slave w jednej aplikacji

: 12 lip 2012 12:04
autor: honda
Witam

mam do zrobienia aplikację która z jednej strony będzie działała jako Master - odpytywanie kilku urządzeń (jak to zrobić ?) po RS z protokołem Modbus. Z drugiej jako Slave będę maił za zadanie odpowiadać pakietem danych odczytanych z urządzeń (jako Master) na pytanie inego Mastera.
Podpowiedzcie proszę jak się za to zabrać ? Jaką strukturę zastosować ?

pozdro

Master i Slave w jednej aplikacji

: 12 lip 2012 14:54
autor: Jamal79
Masz na mysli to, ze musisz miec universalny program, ktory w zaleznosci od potrzeb bedzie na kilku maszynach i masz miec mozliwosc zmiany pomiedzy masterem a slavem??

Master i Slave w jednej aplikacji

: 12 lip 2012 15:11
autor: Jamal79
Jak tak to zastanow sie nad np TabControl.

Widzialem kiedys fajne zastosowanie DataSocketa w podobnym przypadku. tzn tworzysz DBLa i za pomaca indeksow odczytujesz badz zapisujesz wartosci.

http://www.ni.com/white-paper/3224/en

Ja w pracy go wykorzystuje, daje sporo mozliwosci.
Za pomoca DSTP okreslam mastera i slava. mozna tez zrobic kolejke i zapisywac nowe wartosci z kilku adresow i czekac na wyniki z niezaleznymi wartosciami atrybutow. (Jesli mamy jeden miernik...)

Re: Master i Slave w jednej aplikacji

: 13 lip 2012 07:56
autor: honda
Czesc

Dzieki za odpowiedz. Chodzi mi o to, że bede miał dwa RS do obsługi. Na jednym z nich będę pracował jako master odpytujacy kilka urzadzeń. Nastepnie dane ktore otrzymam z tych urzadzen mam przekazac drugim RS do urzadzenia nadrzednego. Nie wiem bardzo jak to ugryzc.


pozdro

Master i Slave w jednej aplikacji

: 13 lip 2012 10:15
autor: Garreth
Zacznij od stworzenia podstawowej struktury programu (maszyna stanu, ewentualnie jeżeli ma być UI to w strukturze producer/consumer) - ostatnio dyskutowaliśmy o czymś takim tutaj: http://labview.pl/viewtopic.php?f=3&t=4147

Następnie przemyśl stany jakie będziesz potrzebować, zakładam, że jeden będzie do odbioru danych po RS-232, drugi do nadawania oraz stany do wysyłania żądań do slave'ów (Zaznaczam, że jest to wyłącznie sugestia, którą możesz zmodyfikować na własne potrzeby. Oczywiście jakieś inne stany pomocnicze tez będą potrzebne).
O samym RS-232 było tez już sporo na forum, ustawiasz parametry portu, otwierasz go, czekasz aż coś na porcie się pojawi i to odczytujesz.

Zacznij od jednego urządzenia, a później wykorzystując zalety maszyny stanu rozszerzaj funkcjonalność na pozostałe.

Przy podanych informacjach nie wiem jak bardziej mógłbym pomóc:)

Re: Master i Slave w jednej aplikacji

: 13 lip 2012 10:21
autor: czab
Hej.

Jesli masz dwa niezalezne polaczenia, to kazde mozesz sobie skonfigurowac zupelnie dowolnie, pojecia mastera i slave'a odnosi sie raczej do polaczenia a nie do aplikacji - w aplikacji mozesz miec pelno najrozniejszych protokolow ;)

Ja zabralbym sie za to tak: napisalbym sobie petle "mastera", ktora cyklicznie odpytuje urzadzenia korzystajac z Modbusa i dobrze sprawidzil, czy dziala. Potem, najlepiej w innym pliku, napisalbym sobie ladna petle "slave'a", wysylajac do odpytujacego mastera jakis absolutnie dowolny kontrolny string - i znowu sprawdzil, czy na tym etapie dziala. Ostatnia rzecza jest jakas obsluga wymiany danych pomiedzy tymi dwoma petlami - sensownymi rozwiazaniami wydaja mi sie Funtional Global Variable czy kolejki, pewnie kilka innych struktur tez sie nada. Na koniec obie petle wystarczy upchac w jednej aplikacji - czy to jako subVi, czy kopiujac/wklejajac - o podzielenie aplikacji na watki i oblugiwanie obu polaczen rownolegle zadba samo LabView.

Re: Master i Slave w jednej aplikacji

: 17 lip 2012 12:16
autor: honda
Czesc,

dzieki za odpowiedzi i zainteresowanie. Moze ktos z Was robil cos podobnego ? Zawsze na przykladzie duzo latwiej sie uczyć. Gdyby ktos mial jakis przyklad to byloby fajnie.

pozdro

Master i Slave w jednej aplikacji

: 19 lip 2012 15:38
autor: 1125
Witam,

Robiłem coś podobnego, użyłem sekwencji do ustalenia kolejności jaka mi odpowiada, odczyt danych po RS485 z 5 przetworników jeden po drugim w "case" (plus jeszcze jeden RS485 na innym COM w kompie, tutaj miałem problem żeby różne urządzenia podłączyć po jednym COM-e i zastosowałem dwa kable 485/USB) w kolejnym oknie "sekwencji" zrobiłem wykresy, zapis do pliku itd. itp. a następnie odebrane dane możesz przesłać ponownie gdzie chcesz. Pamiętaj o zamykaniu portów bo inaczej będą problemy. Kodu nie mogę podesłać ale jakbyś miał konkretne pytania to na ile będę mógł to pomogę. A może nawet w trakcie uzyskamy coś lepszego niż zrobiłem.

Pozdrawiam
Krzysiek