Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Modbus - dwa pytania

_Wojciech_
-
-
Posty:269
Rejestracja:1 kwie 2003, o 20:32
Lokalizacja:Bielsko-Biała
Modbus - dwa pytania

Postautor: _Wojciech_ » 4 kwie 2006, o 17:48

Piszę aplikację pod Win (w C#) wykorzystującą protokół transmisji szeregowej Modbus.

Korzystam z artykułu Jerzego Szczesiula (przy okazji wielkie dzięki za ten tekst!) o programowaniu RS w WinAPI. I wszystko jest super, tylko że nie wiem, czy podejście, które zastosowałem jest optymalne.

Procedura odpowiedzialna za transmisję działa tak:
- Otwórz port w trybie zapisu.
- Prześlij ramkę z zapytaniem (adres urządzenia, itd.) na port.
- Zamknij port.
- Otwórz port w trybie odczytu (odbierania).
- Odbierz ramkę z portu (z odpowiednim Timeoutem).
- Zamknij port.

Całość chodzi w trybie synchronicznym. Ponieważ docelowo ma to być RS485, więc nie wiem czy ma sens tryb asynchroniczny. Dlaczego? Bo i tak po wysłaniu ramki trzeba czekać na odpowiedź od konkretnego urządzenia. Dopiero kiedy ono odpowie (lub będzie timeout), można wysłać coś do następnego.

Pytania mam takie:
1. Czy procedura jest wg Was sensowna? A jeśli nie, to jak to zrobić lepiej?
2. Czy jest sens stosować podejście asynchroniczne? Pamiętając jak działa RS485 z wieloma urządzeniami.

Pozdrawiam!

[ Dodano: 09-04-2006, 21:44 ]
Jak widać popularność Modbusa wśród elektroników ciągle rośnie :D
W zasadzie już rozwiązałem wszystkie problemy tylko nurtuje mnie pytanie: Czy za każdym razem trzeba dwa razy otwierać port dla pobrania jednej danej z urządzenia? Nie da się tego jakoś inaczej zrobić?

Wróć do „Elektronika - tematy dowolne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości