Grzegorz Rapa

Grzegorz Rapa Certification
Technical Lead,
Intelligent Energy

Temat: Logowanie danych z RS-232 wraz z parsowaniem

Witam wszystkich na grupie, to moj pierwszy post.

Szukam porady w rozwiązaniu pewnego problemu logowania danych z RS-232. Odczytuje z portu mniej-więcej taki ciąg danych:

--- //START
-------- ======== --------
Cassette serial number: 1000021
Slv:1 sts = 0[0] Rx 910, bad 0
Slv:2 sts = 0[0] Rx 910, bad 0
Slv:3 sts = 0[0] Rx 910, bad 0
Slv:4 sts = 0[0] Rx 910, bad 0
Slv:5 sts = 0[0] Rx 910, bad 0
Slv:6 sts = 0[0] Rx 910, bad 0
State = ERROR Reset switch (ign)
Total volts 277.6 V
Total Current 0.000 A
SOC 72.5 %
Charge 130.679 Ah
Errors: 00001000000000000000000000000000 [ERROR_CAN]
Critical errors: 000000000000
Safety faults: 00000000[ ]
Last error No 5
balance timer -55
Balance off
Charger PWM: 0
CC SOC: 10544, SE SOC: 8669.C flag: 1.
Max Volts 3.322 at cell [14] Min Volts 3.295 at cell [55]
Max cell temp 25.1 at cell [16] Min Temp 23.4 at cell [3] ADC I main:5539 aux:5574
ADC I inst main:22304 aux:22272
ADC I calc main:-0.637A aux:-0.304A (5 second peak:0.687)
Used charge (soft)=0.000 Ah
Box temps: 25, 24, 24, 24,
Average Box Temp 24.2 ETI 53416196 sleep 53588089
Acc. chg (Ah) = 14908 Ah, acc. discharge (Ah) = 12770 Ah, acc. chg (kWh) = 3924.1 kWh
53416196,3.306,3.307,3.321,3.310,3.310,3.308,3.314,3.299,3.313,3.315,3.320,3.315,3.312,3.322,3.300,3.303,3.304,3.301,3.306,3.317,3.309,3.305,3.300,3.315,3.304,3.308,3.310,3.311,3.300,3.300,3.300,3.299,3.302,3.302,3.301,3.302,3.305,3.307,3.302,3.303,3.304,3.304,3.299,3.297,3.300,3.299,3.300,3.305,3.301,3.301,3.303,3.300,3.300,3.303,3.295,3.305,3.303,3.299,3.302,3.301,3.305,3.304,3.302,3.302,3.302,3.299,3.302,3.300,3.299,3.308,3.301,3.300,3.300,3.301,3.303,3.303,3.304,3.304,3.303,3.306,3.301,3.306,3.305,3.314,23.7,23.9,23.4,23.4,23.9,23.9,23.7,23.9,23.9,23.9,24.1,23.9,23.9,24.3,24.9,25.1,24.9,25.1,24.7,24.9,25.1,24.9,24.9,24.9,25.1,24.9,24.7,24.9,24.1,24.1,24.1,24.3,24.3,24.3,24.3,24.3,24.3,24.3,24.1,24.3,24.3,24.3,24.3,24.1,24.1,24.3,24.3,24.3,24.5,24.3,24.3,24.5,24.3,24.5,24.3,24.1,24.8,25.0,25.0,25.0,24.8,25.0,25.0,25.0,24.8,25.0,24.8,24.8,24.8,24.8,23.9,23.9,24.1,23.9,23.7,23.9,23.9,23.9,23.9,24.1,23.9,23.9,23.7,23.9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000,130.679,10544,725
-------------------------

Komunikat wysyłany jest średnio co 2s.

Czy istnieje (najlepiej otwarta aplikacja), która jest w stanie pociąć w trybie rzeczywistym takie komunikaty z RS-232 (pozycje są stale) do pliku CSV - dodając znacznik czasu na początku ?

Samo parsowanie nie jest problemem (prosty skrypt w VBA) - ale niestety nie będę miał znaczników czasu, które są kluczowe dla testu.

Z góry dziękuje za wszystkie sugestie.

konto usunięte

Temat: Logowanie danych z RS-232 wraz z parsowaniem

Problemem jest brak możliwości wyciągnięcia czasu systemowego przez VBA?
Do obróbki tekstów z danymi zawsze korzystałem z AWK. Dawał radę.
Grzegorz Rapa

Grzegorz Rapa Certification
Technical Lead,
Intelligent Energy

Temat: Logowanie danych z RS-232 wraz z parsowaniem

Mogę wszystko zrzucić do pliku na przykład z HyperTerminala i zrobić proste parsowanie w VBA, ale ten, który jest dostępny w wersji dla Windows 7 nie zapisuje znaczników czasu. Próbowałem korzystać z innych programów, ale nie wiem dlaczego nie jestem w stanie skomunikować się z urządzeniem (polecenie są transmitowane ale nie są widziane przez urządzenie).

Najlepszą opcją był by RS232 logger+parser (a jeżeli wyświetlał by dane na bieżąco to był bym wniebowzięty). Wychodzi na to, że czekają mnie 2 dni z Labview żeby sobie narzędzie do pracy zmajstrować :(
Przemysław Żur

Przemysław Żur Konstruktor
elektronik, Plum Sp.
z o. o.

Temat: Logowanie danych z RS-232 wraz z parsowaniem

testTen post został edytowany przez Autora dnia 22.07.15 o godzinie 22:19
Maciej G.

Maciej G. Projektant /
Programista, Famor
S.A.

Temat: Logowanie danych z RS-232 wraz z parsowaniem

Grzegorz,

Sorry co do tego pierwszego programu to się pomyliłem - jest płatny.

Zostaje ten projekt na sourceforge:

http://sourceforge.net/projects/rs232portlogger/

Co do dodawania np. timestamp'a do danych z RS232 ma to podobno program Termite, nigdy go nie testowałem, podaję link:

http://www.compuphase.com/software_termite.htmTen post został edytowany przez Autora dnia 22.07.15 o godzinie 23:08

konto usunięte

Temat: Logowanie danych z RS-232 wraz z parsowaniem

Spróbuj RealTerm. Z tego co widzę po opcjach ma możliwość przechwytywania do pliku zarówno z wyświetlaniem na ekranie, jak i bez wyświetlania (wtedy podobno szybciej) i co najważniejsze dla Ciebie, w zakładce Capture ma opcję TimeStamp (None/Unix/UnixHex/Matlab/YMDHS) do wyboru. Według opisu dodaje wtedy stopkę czasową do każdej linii.
Generalnie ma dużo opcji konfiguracji, więc może uda Ci się dostosować go do swoich potrzeb.

Osobiście do takich zadań korzystam z .NET'a. Wrzucasz z bibliotek potrzebne kontrolki, dosłownie chwila na powiązanie wszystkiego według własnego zamysłu i aplikacja robi dokładnie to, czego potrzebujesz :)
Ponieważ wiele projektów wymaga zbliżonych rzeczy, to po kilku napisanych apkach masz bazę do jeszcze szybszego działania, bo tu masz pełną obsługę COMa z buforami I/O, tam obsługę Ethernetu, jeszcze gdzie indziej eksport do *.CSV czy *.txt, a tutaj jeszcze dany protokół.. do nowej aplikacji kopiujesz całe bloki kodu czy utworzone klasy, mały tweak i działa :)

Następna dyskusja:

Jedna Joomla, a kilka baz d...




Wyślij zaproszenie do