Symulator EU07 (i nie tylko) > Symulator
Sterowanie i odczytywanie parametrów z MASZYNY
maciek001:
--- Cytat: Ra w 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.
--- Koniec cytatu ---
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.
Ra:
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...
maciek001:
--- Cytat: Ra w 30 Lipca 2013, 13:40:56 ---Chyba prościej jest komunikować się z mikrokontrolerem po USB, tak jak ma to miejsce w przypadku PoKeys.
--- Koniec cytatu ---
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).
Ra:
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.
maciek001:
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.
Nawigacja
[#] Następna strona
Idź do wersji pełnej