Dwa urządzenia na jednym porcie RS

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
Awatar użytkownika
fajfi
Posty: 185
Rejestracja: 28 sty 2004 00:00
Wersja środowiska: LabVIEW 2010
Lokalizacja: Wrocław

Dwa urządzenia na jednym porcie RS

Post autor: fajfi »

Cześć!
Czy da się jednocześnie (lub prawie jednocześnie) odczytywać np. napięcie z dwóch różnych multimetrów za pośrednictwem jednego portu RS?
Jeśli tak, to w jaki sposób zmusić Labview do rozpoznawania z którego urządzenia w danej chwili czyta i jak zmusić go nastepnie do zmiany "kanału"?
Pozdrawiam
Łukasz
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Dwa urządzenia na jednym porcie RS

Post autor: Mikrobi »

Trzeba bardzo szybko zmieniać wtyczki. ;)

Problem nie tkwi od strony środowiska LabVIEW. Specyfikacja RS232 nie dopuszcza dwóch urządzeń podłączonych jednocześnie do tego samego portu.
Innaczej sprawa wygląda z RS485/RS 422
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
fajfi
Posty: 185
Rejestracja: 28 sty 2004 00:00
Wersja środowiska: LabVIEW 2010
Lokalizacja: Wrocław

Re: Dwa urządzenia na jednym porcie RS

Post autor: fajfi »

Hm, trochę dziwne.
Przypominam sobie, że w mojej pierwszej pracy, w której miałem do czynienia z Labview, była cała szafa urządzeń pomiarowych (chyba w sumie 5 urządzeń firmy Oxford), podłączonyvh do jednego portu RS i wszystko elegancko działało. Z tego co pamiętam był tam jakiś protokół, który potrafił "adresować" te urządzenia.
Pytałem, bo chciałem zrobić coś podobnego.
Może ktoś zetknął sie już z podobnym rozwiązaniem?
Pozdrawiam
Łukasz
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Dwa urządzenia na jednym porcie RS

Post autor: Mikrobi »

Powinienem się poprawić co tez niniejszym robię. RS232 ma ograniczenia napojemnościkabla i napięciu, cowynika z tego , że był protokołem dokomunikacji komutera z modemem. Zakładając, że pracujesz na krótkich kablach możesz podłaczyć więcej urzadzeń do tego samego portu, ale bedzie to wymagało odpowiedniego protokółu komunikacyjnego, osadzonego i w urządzeniach i na komputerze.
Pytanie: które urządzenie aktualnie przesyła sygnał do komputera skoro fizycznie są one podłączone tym samym przewodem?
Co jesli nadają jednocześnie?
Można wykorzystać układ komunikacji Master(PC)-Slave(urządzenia) Master ma prawo pytać konkretne urządzenie
i informować wszystkie, Slave tylko odpowiada do Mastera (w wersji najprostszej).
Pojawia się pomysł na komunikację z ramkami i adresami urzadzeń i względnie rozbudowana struktura maszyny stanów w LabVIEW dla Mastera.
Pytanie czemu ma to służyć? czy nie prosćiej bedzie korzystać z karty z dwoma/czteroma portami?
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
darekc
Posty: 77
Rejestracja: 29 mar 2007 00:00
Lokalizacja: Gliwice

Re: Dwa urządzenia na jednym porcie RS

Post autor: darekc »

Karta dwuportowa jest pewnym rozwiązaniem. Jest też urządzenie, dzięki któremu możesz podłączyć do 4 urządzeń do jednego portu RS232C komputera - zajrzyj do artykułu:

Wojciech Mielczarek
Wielopoziomowy system komunikacyjny oparty na łączu RS-232 i 4-portowych przełącznikach
Studia Informatica, Volume 27 Number 3 (68)
Awatar użytkownika
fajfi
Posty: 185
Rejestracja: 28 sty 2004 00:00
Wersja środowiska: LabVIEW 2010
Lokalizacja: Wrocław

Re: Dwa urządzenia na jednym porcie RS

Post autor: fajfi »

Ad Mikrobi

Już tłumaczę, chociaż to dość zawiła sprawa, ale postaram się przedstawić ją jak najjaśniej.

W jednym z poprzednich wątków pisałem, że zamierzam sterować silnikiem krokowym. Odpowiedzi, które otrzymałem są jak najbardziej satysfakcjonujące i bardzo za nie dziękuję.
Pozostaje jednak kwestia kontroli położenia silnika w danym momencie.
Gdyz co prawda mógłbym już wysyłać rozkazy "kroków" do silnika, ale nie ma pewności, że rozkaz został wykonany, dlatego moja idea kontroli jest nastepująca:

Zamierzam sprzęgnąć z osią silnika krokowego wieloobrotowy, precyzyjny potencjometr typu helipot zasilany źródłem referencyjnym 10V.
Następnie za pomocą multimetru cyfrowego chcę uzyskać odwzorowanie położenia silnika. I to jest mój pierwszy kanał RS.
Inny multimetr cyfrowy (również z wyjściem RS) ma odczytywać napięcie z fotoogniwa (cząstka pewnego układu pomiarowego). Po prostu chodzi o pomiar napięcia w funkcji kąta.
Reasumując kąt otrzymuję z pomiaru napięcia przez jeden multimetr, zaś interesujące mnie napięcie z układu pomiarowego przez drugi multimetr.

Wykonałem nawet próbę i podłączyłem do obu wolnych portów RS multimetry. Napisałem równiez program, który ma czytać z obu multimetrów, to znaczy połączyłem programy, które napisałem wcześniej (osobno) dla jednego i drugiego miernika.
I o ile programy osobno działają, to po połączeniu już nie. Co ciekawe wspólny program czyta tylko z drugiego miernika, pierwszy całkowicie ignoruje.
Nazwy portów wpisałem prawidłowo.

Chąc obejść ten problem chciałem użyć tylko jednego portu.

Być może robię jakiś błąd w programie, albo w samym podejściu do problemu?

Na wszelki wypadek załączę ten program (przepraszam, że taki mało elegancki, ale to dopiero prototyp).

Pozdrawiam
Łukasz
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Dwa urządzenia na jednym porcie RS

Post autor: Mikrobi »

Podszedł bym do tematu trochę innaczej:
mikrokontroler np. ADuC814: rdzeń 51ki, programowny przez RS232, przetworniki A/C,itd- warto poznać,dostępny m.in. na allegro ;)
Jeśli silnik krokowy może startować zawsze z okreslonej pozycji bazowej, to lini cyfrowych wystarczy i na silnik krokowy i na wyłacznik krańcowy do pozycjonowania silnika.
W razie potrzeby możesz stosować enkoder do kontrolowania czy nie gubisz kroków.
Przetwornik AC z odpowiednim układem dopasowującym rozwiąże pomiar ogniwa.
Owszem, jest trochę zabawy z programowaniem mikrokontrolera, ale ... "nie zawsze musi byc kawior" 8)

:ques:
Spojrzałem na diagram.
:-k
2,5 panoramicznego ekranu 24 cale to bedzie jakieś 4750 cali w poziomie... albo fantastyczna pamięć wzrokowa i koncentracja ;)
a poważniej: Przeglądnij w przykładach i pomocy jak wygląda formatowanie stringów i przeglądnij operacje na tablicach. Operujesz na dwóch portach szeregowych COM1 i COM2 jeśli to fizycznie dwa rózne port a na to wygląda (masz z tyłu PCta dwa gniazdka DB9 :?: ) to wystarczy równoległe prowadzenie dwóch wątków czytających z portów
mniej więcej w ten sposób
Obrazek
Tak bym spróbował na poczatek...
Ostatnio zmieniony 29 maja 2008 21:01 przez Mikrobi, łącznie zmieniany 1 raz.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
fajfi
Posty: 185
Rejestracja: 28 sty 2004 00:00
Wersja środowiska: LabVIEW 2010
Lokalizacja: Wrocław

Dwa urządzenia na jednym porcie RS

Post autor: fajfi »

Cześć,
równoległe poprowadzenie dwóch wątków czytających z portów pomogło.
Dziękuję.
Trochę obawiałem się takiego rozwiązania ze względu na możliwe konflikty, ale jak widać moje obawy okazały się zbyteczne.
W takim razie mogę jednak pozostać przy pierwotnej koncepcji, tym bardziej, że nie znam sie na programowaniu mikrokontrolerów...
Tak, wiem, że moje diagramy wyglądaja strasznie, ale w dziedzinie Labview jestem samoukiem.
A propos przeglądania pomocy o formatowaniu stringów i operacji na tablicach, czy mógłbyś zapodać jakieś przykładowe hasło?

Pozdrawiam
Łukasz
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Dwa urządzenia na jednym porcie RS

Post autor: Mikrobi »

Scan from String, Format to String, formating
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
ODPOWIEDZ