Autor Wątek:  Sterowanie i odczytywanie parametrów z MASZYNY  (Przeczytany 9699 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Sterowanie i odczytywanie parametrów z MASZYNY
« dnia: 29 Lipca 2013, 23:11:34 »
Witam.
W Rainsted widnieje funkcja "Informacje zwrotne". Widzimy w niej między innymi LPT. Chciałbym zapytać czy jest możliwość dodania komunikacji za pomocą portu COM.

Port COM nie jest już tak często spotykany w komputerach ale:
- jest częściej spotykany niż LPT
- można za pomocą np FT232 "zrobić sobie" wirtualny port COM na USB.

Czemu pytam? Chciałbym zrobić układ elektroniczny do sterowania symulatorem. Komunikacja przez COM umożliwia wymianę danych w dwie strony - sterowanie symulatorem oraz np rzeczywistymi sygnalizatorami (światełkami).

Przejdźmy do kwestii technicznej - czyli co trzeba założyć i udostępnić programistom i konstruktorom:
1. Wybór portu COM
2. Ustawienia transmisji: prędkość (kilka standardowych do wyboru np 9,6kbps), parzystość (a raczej jej brak), bity stopu (1), kontrola przepływem (brak)
3. Ramka danych:
- określenie ramki danych przesyłanych do komputera
- określenie ramki danych przesyłanych z komputera

Jeżeli ktoś z programistów maszyny będzie zainteresowany tematem proszę o kontakt. Do omówienia został wygląd ramki danych. Myślę, że przesyłanie znaków ASCII jest dobrym pomysłem i stosunkowo prostym do realizacji. Umożliwia przesyłanie dużej ilości rozróżnialnych danych.

PS: jeżeli umieściłem temat w złym dziale proszę admina/moderatora o przeniesienie w odpowiednie miejsce i z góry przepraszam.

PS2: rozważałem używania emulatora klawiatury do sterowania maszyną ale COM daje większe pole do popisu.

--
Jestem elektronikiem i w razie pytań postaram się pomóc w tej dziedzinie (w miarę możliwości) - oczywiście za pomocą PW

Przeniosłem do właściwego działu.
Benek
« Ostatnia zmiana: 29 Lipca 2013, 23:25:35 wysłana przez Benek »
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline muri

  • Wiadomości: 627
    • Zobacz profil
  • Otrzymane polubienia: 5
Odp: Sterowanie i odczytywanie parametrów z MASZYNY
« Odpowiedź #1 dnia: 30 Lipca 2013, 09:12:38 »
Generalnie maszyna idzie w stronę PoKeys - szczegóły poczytaj tu: http://rainsted.com/pl/Symulator/MaSzyna/Informacje_zwrotne :)

guest4368

  • Gość
Odp: Sterowanie i odczytywanie parametrów z MASZYNY
« Odpowiedź #2 dnia: 30 Lipca 2013, 09:30:27 »
Jeśli chodzi o sterowanie lokomotywą - jak wyżej. Jeśli zaś o zarządzanie scenerią, to tu jest opis komunikacji:
http://rainsted.com/pl/Symulator/MaSzyna/Komunikacja
Można np. napisać własny program symulujący nastawnię bądź, jak wspomniałeś, komendy wysyłać do takiego programu przez port COM.

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: Sterowanie i odczytywanie parametrów z MASZYNY
« Odpowiedź #3 dnia: 30 Lipca 2013, 12:09:35 »
Jeśli chodzi o Pokeys to nie mogę znaleźć żadnych danych na temat wykonania własnego interfejsu z zgodnego z tym modułem (standardem). Cena także odstrasza.
Pisząc o sterowaniu sygnalizatorami miałem na myśli lampki na pulpicie maszynisty.
Wracając do sterowania lokomotywą: używając portu COM można np. wysyłać dane na temat prędkości czy ciśnienia w układzie hamulcowym i przy użyciu mikrokontrolera sterować rzeczywistymi urządzeniami (po przeróbkach).
Odpowiednia ramka danych umożliwiłaby także sprawdzanie semaforów i zwrotnic na trasie, a także sterowanie nimi (jakby ktoś był tym zainteresowany).

W dużym skrócie: chciałbym zrobić własnego Pokeysa do maszyny z możliwością obsłużenia wszystkich przełączników i urządzeń. Wyrzucanie i odbieranie danych na porcie COM jest stosunkowo proste do oprogramowania a możliwości portu COM są większe niż Pokeys-a (przynajmniej moim zdaniem).

Stworzenie własnego prostego interfejsu do Maszyny dałoby możliwości popisania się większej ilości osób i co za tym idzie - rozwoju dodatków do sterowania lokomotywami.
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6306
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 336
Odp: Sterowanie i odczytywanie parametrów z MASZYNY
« Odpowiedź #4 dnia: 30 Lipca 2013, 12:39:30 »
Chyba jesteś pierwszą osobą na przestrzeni 10 lat, która jest zainteresowana transmisją szeregową typu RS232. Port ten wychodzi z użycia i większość laptopów już go od dawna nie posiada, stacjonarne chyba tylko z rozpędu. Programowanie tego portu bezpośrednio jest wykonywane inaczej, niż jego odpowiednika podłączanego do USB. Dodatkowym problemem jest konieczność konwersji napięć. Większe zainteresowanie jest rozwiązaniami pod USB.

Kabina w MaSzynie jest obecnie mocno uzależniona od klawiatury, przez co najprostszym rozwiązaniem jest podłączenie przełączników pod klawiaturę. Z kolei PoKeys jest obecnie najprostszym i najtańszym rozwiązaniem, jeśli chodzi o sterowanie lampkami i miernikami, ale nie sprawdza się przy odczytywaniu stanu przełączników.

Obecnie nie istnieje żadne rozwiązanie interfejsu pulpitu do MaSzyny, które można by nazwać kompletnym i gotowym do powielenia. Kwestią podstawową jest uwolnienie kabiny od klawiatury, przydało by się również zrobić jakieś pliki konfiguracyjne do obsługi różnic w sterowaniu kabin poszczególnych typów pojazdów. Nie mówiąc już o tym, że powinny być symulowane jednocześnie dwie kabiny, bo np. baterię załącza się z kabiny A.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: Sterowanie i odczytywanie parametrów z MASZYNY
« Odpowiedź #5 dnia: 30 Lipca 2013, 13:27:06 »
Chyba jesteś pierwszą osobą na przestrzeni 10 lat, która jest zainteresowana transmisją szeregową typu RS232. Port ten wychodzi z użycia i większość laptopów już go od dawna nie posiada, stacjonarne chyba tylko z rozpędu. Programowanie tego portu bezpośrednio jest wykonywane inaczej, niż jego odpowiednika podłączanego do USB. Dodatkowym problemem jest konieczność konwersji napięć. Większe zainteresowanie jest rozwiązaniami pod USB.
Pisząc port COM nie mam na myśli standardu transmisji danych RS232. Używając układu FT232 mamy możliwość wpięcia naszej konstrukcji do portu USB komputera (virtual port COM). Z drugiej strony dostajemy interfejs UART. Uzyskujemy szybką transmisję danych w dwie strony (full duplex) - wysyłamy z maszyny informacje na temat prędkości, lampek sygnalizacyjnych, napięć i prądów - odbieramy od mikrokontrolera informacje na temat ustawienia przełączników, nastawników, kranów i boczników.
Port taki programuje się identycznie jak standardowy port COM.

Port COM nie umarł jeżeli chodzi o komputery PC - nie korzysta się tylko ze standardu transmisji danych RS232. Rozwiązanie jest to w miarę proste i daje duże pole do popisu.

Reasumując: stosując wirtualny port COM używamy właśnie USB o czym pisałem wcześniej.
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6306
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 336
Odp: Sterowanie i odczytywanie parametrów z MASZYNY
« Odpowiedź #6 dnia: 30 Lipca 2013, 13:40:56 »
Chyba prościej jest komunikować się z mikrokontrolerem po USB, tak jak ma to miejsce w przypadku PoKeys. Podejrzewam, że w tym roku niewiele da się się zrobić. Nie ma sensu rozwijać prowizorek, raczej trzeba kompleksowo przerobić funkcjonowanie kabin...
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: Sterowanie i odczytywanie parametrów z MASZYNY
« Odpowiedź #7 dnia: 30 Lipca 2013, 14:00:53 »
Chyba prościej jest komunikować się z mikrokontrolerem po USB, tak jak ma to miejsce w przypadku PoKeys.

Opisywałem właśnie komunikację po USB tylko, że zamiast pisać osobno sterownik jak w przypadku pokeysa (o którym nie ma nic na temat danych wymienianych z komputerem) można wykorzystać gotowy układ lub odpowiednio zaprogramować mikrokontroler, żeby był widziany jako port COM. Mamy wtedy możliwość pełnego sterowania kabiną. Pisałem o porcie COM bo jest to w miarę prosty i niezawodny sposób komunikacji. Nie sprawia większego problemu zarówno od strony mikrokontrolera (sterowanie pulpitem i czytanie danych z niego) jak i od strony PC-ta.

Wadą Pokeys-a jest to, że nie ma udostępnionych danych na jego temat. Ktoś ma wyłączność na niego i nie jestem w stanie wykorzystać jego oprogramowania do stworzenia własnego układu. Pokeys przetwarza dane z układu na kody klawiatury. Zmieniając sterowanie w maszynie na całkowicie inne tak jak piszesz RA możemy uniemożliwić wykorzystanie pokeys.

Tworząc nowy standard dla MASZYNY wykorzystujący virtual port COM mamy możliwość rozwoju samego symulatora bez potrzeby zmian w pulpitach wykonanych przez użytkowników.
Przykład - ramka danych przesyłana pomiędzy maszyną a pulpitem (nie jest istotne w jaki sposób tylko sam sens wiadomości):
Wysyłamy przez port COM znaki ASCII:
$LO,N2,n1,B0,h2,H1;
$ - znak początku transmisji danych (synchronizacja)
LO - typ danych (parametry lokomotywy)
, - znak rozgraniczający parametry
N - nawrotnik
2 - pozycja nawrotnika
n- nastawnik kierunku jazdy
1 - pozycja
B - bocznik
h - hamulec pomocniczy
H - -//- zasadniczy
; - znak końca transmisji danych

Jest to przykładowa ramka jaką w bardzo prosty sposób można wygenerować zarówno w komputerze jak i w mikrokontrolerze. Jeżeli projekt byłby realizowany z chęcią pomogę jeżeli chodzi o tworzenie ramek danych, typy danych, komunikację z mikrokontrolerem i przetwarzanie przez niego danych wejściowych z komputera jak i z panelu maszynisty.

Wydaje mi się, że nie jest to prowizorka, biorąc pod uwagę, że wykorzystujemy port USB do komunikacji (to, że jest widziany akurat jako virtualny port COM nie jest żadnym problemem i jeżeli jest ktoś chętny do napisania sterownika pod windowsa możemy zrobić to inaczej).
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6306
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 336
Odp: Sterowanie i odczytywanie parametrów z MASZYNY
« Odpowiedź #8 dnia: 30 Lipca 2013, 14:09:16 »
Zapomnij o ASCII, szkoda czasu na generowanie i parsowanie tego. Interfejs USB jest programowany bezpośrednio z poziomu MaSzyny, funkcjami obsługi plików. W dokumentacji PoKeys znajdziesz opisy ramek jak również przykładowe programy.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: Sterowanie i odczytywanie parametrów z MASZYNY
« Odpowiedź #9 dnia: 30 Lipca 2013, 19:56:58 »
Jedyne co widzę to przykładowe programy na PC oraz biblioteki do także na PC. Mi chodzi o stworzenie urządzenia typu PoKeys. Mam zamiar na sztywno przypisać mu obsługę wejść i wyjść - analogowych jak i cyfrowych. Sterowanie za pomocą emulacji klawiatury mnie nie pociesza (zrobiłem sobie takie coś na AT90USB162) a transmisję szeregową mam opanowaną na tyle, że parsowanie od strony mikrokontrolera to nie jest żaden problem.
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline youBy

  • Deweloper
  • Wiadomości: 6163
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 865
Odp: Sterowanie i odczytywanie parametrów z MASZYNY
« Odpowiedź #10 dnia: 30 Lipca 2013, 20:17:45 »
Protokół też jest opisany, tylko trzeba szukać pod numerem 56: http://www.poscope.com/index.php?route=product/product/download&download_id=42&product_id=50.
Xoov
Powyższy post wyraża jedynie opinię autora w chwili publikacji. Autor zastrzega sobie prawo do zmiany poglądów bez podawania przyczyny, jak również informowania o tym.

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: Sterowanie i odczytywanie parametrów z MASZYNY
« Odpowiedź #11 dnia: 30 Lipca 2013, 21:57:02 »
Robił może ktoś program na USERA (mikrokontroler) dla tego rodzaju protokołu? Jeżeli nie ma nikogo zainteresowanego stworzeniem komunikacji za pomocą portu szeregowego (może być wirtualny) będę walczył z PoKey-em.
Wracając jeszcze do ramki danych to kod ASCII to był tylko przykład. Równie dobrze można stosować liczby 8-bitowe. wymagana jest wtedy dłuższa sekwencja startowa (unikalny ciąg znaków) i obsługa Time-out'ów.
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline El Mecánico

  • Wiadomości: 1067
  • Dawniej El Driver
    • Zobacz profil
    • Stowarzyszenie POLARIS - OPP
  • Otrzymane polubienia: 2
Odp: Sterowanie i odczytywanie parametrów z MASZYNY
« Odpowiedź #12 dnia: 02 Sierpnia 2013, 05:15:17 »
W przygotowaniu jest symulacja obwodów sterujących oraz binarny interfejs programowy do wymiany danych między obecnym exe (Ra, obiecuje, nie będziesz miał dużo przeróbek:D) a tym modułem. Wstępny opis roboczy ukaże się na dniach
« Ostatnia zmiana: 02 Sierpnia 2013, 05:16:20 wysłana przez El Mecánico »
www.polaris.org.pl
www.ciemneniebo.pl
MaSzyna_LD w trakcie tworzenia...