V350 + GPS[NMEA]

Pytania i odpowiedzi dotyczące sprzętu Unitronics

Moderatorzy: Marek Sikora, Mateusz Sikorski

V350 + GPS[NMEA]

Postprzez lis28 » Śr, 21 sie 2013, 15:05

Witam,
piszę aplikację na sterownik V350, której jednym z zadań jest komunikacja z modułem GPS w standardzie NMEA (dla statków, łodzi). Ze zdań generowanych przez GPS pragnę wyłuskać datę, godzinę oraz aktualne współrzędne geograficzne.

Dla omawianej komunikacji skonfigurowałem 3 bloki:
gpsss.jpg
(33.11 KiB) Pobrane 885 razy


Do symulacji generowania wiadomości NMEA pobrałem program "NMEA Generator":
nmea.jpg
(102.23 KiB) Pobrane 968 razy


Rozumiem, zarówno dla potrzeb symulacji jak i z oryginalnym modułem GPS będę komunikował się poprzez port COM/RS232.
Mam jednakże problem z połączeniem generatora i PLC. Wyświetla komunikat o niedostępności portu COM, z którego aktualnie chcę korzystać, pomimo, że wybieram porty teoretycznie nieprzypisane. Czy jest to wynikiem niepoprawnej konfiguracji połączenia? Proszę o jakąś pomoc w tym temacie.

Pozdrawiam
lis28
 
Posty: 21
Dołączył(a): Pn, 12 sie 2013, 14:21

Re: V350 + GPS[NMEA]

Postprzez Adrian Surma » Śr, 21 sie 2013, 23:02

Witam,
konstrukcja programu powinna wyglądać tak jak poniżej. Dane z generatora pobierane są co 3 sekundy.
Można skorzystać z kabla do programowania sterownika dołączonego do zestawu.
Proszę pamiętać o tej samej prędkości połączenia w bloku COM INIT jak i programu NMEA GENERATOR.
Proszę wysłać co wstawił Pan w bloku PROTOCOL SCAN.
W sterowniku V350 przytrzymując ekran przez kilka sekund można wejść w tryb serwisowy. Hasło to 1111.
Można tam wejść w ustawienia portu szeregowego i podglądać odbierane ramki danych.
Obrazek
Adrian Surma
Adrian Surma
 
Posty: 142
Dołączył(a): Pt, 6 cze 2008, 07:17

Re: V350 + GPS[NMEA]

Postprzez Adrian Surma » Cz, 22 sie 2013, 09:03

Witam,
w internecie znalazłem rozpisane ramki danych do NMEA.
Dla przykładu ramka GGA, którą należy skonfigurować w bloku SCAN PROTOCOL:
Obrazek

W załączniku przykładowy działający program, dokumentacja do NMEA z rozpisanymi ramkami.

Wynik działania programu:
Obrazek
Załączniki
NMEA.zip
(244.01 KiB) Pobrane 706 razy
Adrian Surma
Adrian Surma
 
Posty: 142
Dołączył(a): Pt, 6 cze 2008, 07:17

Re: V350 + GPS[NMEA]

Postprzez lis28 » Cz, 22 sie 2013, 13:34

Witam,
dziękuję za odpowiedź. Dziś wykonywałem inne zadanie. Właśnie powracam do tematu z NMEA. Zdam relację gdy coś ruszy do przodu.

Pozdrawiam
lis28
 
Posty: 21
Dołączył(a): Pn, 12 sie 2013, 14:21

Re: V350 + GPS[NMEA]

Postprzez lis28 » Cz, 22 sie 2013, 15:08

Witam,
ok, coś się dzieje... Sterownik odbiera jakieś dane, następuje komunikacja po RS232. Tylko teraz zasadnicza część. Domyślam się, że muszę zapisywać odbierane wiadomości w jakiś sposób w Tabeli Danych. (piszę "w jakiś sposób" szczerze nie używałem jeszcze tej funkcji). Utworzyłem na przykładzie z internetu, swoją tabelę (gormat GLL):

Obrazek

Czy muszę dopisać do drabinki jeszcze jakiś blok kopiowania danych z pamięci czy mogę je jakoś zapisać bezpośrednio do komórek tabeli?

Pozdrawiam
lis28
 
Posty: 21
Dołączył(a): Pn, 12 sie 2013, 14:21

Re: V350 + GPS[NMEA]

Postprzez Adrian Surma » Pt, 23 sie 2013, 07:33

Witam,
w załączniku przykładowy program zapisujący początek ciągu znaków ASCII odbieranych na porcie szeregowym, czyli czasu w formacie hhmmss. Pobierane dane zapisywane są za każdym razem jak odświeżany jest ekran - bit MB3. Analogicznie należy zrobić z pozostałym ciągiem znaku. Tutaj źródłem danych jest MI4. Gdyż od tego rejestru zaczynają być zapisywane pobrane znaki ASCII. Każdy jeden MI pozwala na przechowanie dwóch znaków ASCII. Czyli tak jak na printscreenie poniżej - w MI4 zawarte jest 06, a już w MI5 zawarte jest 18. Teraz w przypadku, gdy chcemy zapisać kolejną informację jak szerokość geograficzną to zaczynamy zbierać dane od MI7. W zależności od tego jak długi STRING ustawimy w ustawieniach tabeli - tyle znaków zostanie tam wyświetlonych.

Obrazek
Załączniki
gps dobry.zip
(434.88 KiB) Pobrane 699 razy
Adrian Surma
Adrian Surma
 
Posty: 142
Dołączył(a): Pt, 6 cze 2008, 07:17

Re: V350 + GPS[NMEA]

Postprzez Adrian Surma » Pt, 23 sie 2013, 12:30

Witam,
dodatkowo będzie Pan potrzebował korzystać z wyciągania części STRING-a z całego ciągu znaków. Program w załączniku. Opis dzialania poszczególnych bloków poniżej.

Obrazek

Wynik działania programu:

Obrazek
Załączniki
gps dobry2.zip
(442.05 KiB) Pobrane 693 razy
Adrian Surma
Adrian Surma
 
Posty: 142
Dołączył(a): Pt, 6 cze 2008, 07:17

Re: V350 + GPS[NMEA]

Postprzez lis28 » Pn, 26 sie 2013, 12:03

Witam,
wszystko ładnie, pięknie śmiga. Podprogram z NMEA testowałem na osobnym pliku i teraz chcąc go przenieść napotkałem kolejny problem.
Przy zamianie nazw zmiennych (aby ich nie nadpisywać) już w moim głównym pliku mam kłopot z przypisaniem owej zmiennej:

Obrazek

W jaki sposób zdefiniować tę zmienną, która odnosi się do kolumny tabeli danych?

Pozdrawiam
lis28
 
Posty: 21
Dołączył(a): Pn, 12 sie 2013, 14:21

Re: V350 + GPS[NMEA]

Postprzez Adrian Surma » Pn, 26 sie 2013, 12:15

Witam,
tę zmienną definiuje Pan w bloku PROTOCOL SCAN klikając prawym na ramce 1111111... i wybierając properties.
Mam nadzieję, że o to Panu chodziło?

Obrazek
Adrian Surma
Adrian Surma
 
Posty: 142
Dołączył(a): Pt, 6 cze 2008, 07:17

Re: V350 + GPS[NMEA]

Postprzez lis28 » Pn, 26 sie 2013, 12:16

Tak, właśnie o to. Dziękuję za szybką pomoc.
lis28
 
Posty: 21
Dołączył(a): Pn, 12 sie 2013, 14:21

Re: V350 + GPS[NMEA]

Postprzez lis28 » Wt, 27 sie 2013, 12:41

Witam,
kolejna przeszkoda - zgodnie z Pana wskazówkami, używam bloków wyłuskujących konkretne części ciągu odbieranego przez PLC.
Wybrałem protokół RMC

Zacząłem od pozyskania aktualnego czasu UTC - sukces.
Idąc dalej, analogicznie zapragnąłem uzyskać współrzędne geograficzne aktualnej pozycji - to również się udało - mam 1-szą współrzędną. Otrzymane dane konwertuję ASCII - NUM, aby później móc prowadzić na nich obliczenia.

Obrazek

Problem pojawia się, gdy chcę uzyskać drugą współrzędną. Dane są przesyłane, ale w momencie konwersji... nic.
(Grafika poniżej)

Obrazek

Czym może to być to spowodowane? Czy wpływ na to ma fakt, iż wszystkie operacje związane z komunikacją PLC-GPS wykonuję w jednym podprogramie?
Dodam, że podobna sytuacja powtarza się, gdy chcę odczytać z ciągu aktualną datę. Uprzedzam pytanie - tak, dokładnie sprawdziłem oraz policzyłem, od którego miejsca ciągu mam pobierać poszczególne części. W załączniku dodaję cały mój program.

Pozdrawiam
Załączniki
aktalna_praca.zip
(291.64 KiB) Pobrane 721 razy
lis28
 
Posty: 21
Dołączył(a): Pn, 12 sie 2013, 14:21

Re: V350 + GPS[NMEA]

Postprzez Adrian Surma » Wt, 27 sie 2013, 14:13

Witam,
dużo błędów estetycznych jest teraz w programie. Dla przykładu NET 7 - każdy z trzech bloków Data Tables Write Row zapisuje do tego samego wiersza numer 1 tego samego MI106. Proszę sprawdzić tego rodzaju błędy. Program robi się większy i bez ogólnego porządku, szukanie błędu wpływającego na działanie będzie trudne.
Adrian Surma
Adrian Surma
 
Posty: 142
Dołączył(a): Pt, 6 cze 2008, 07:17


Powrót do Unitronics



Kto przegląda forum

Użytkownicy przeglądający to forum: Brak zalogowanych użytkowników i 2 gości

cron