potrzebuję pomocy w następującej sprawie, odczytuje dane z pompy ciepła przez modbus i chciałbym je zapisać w pliku .csv tak aby pierwsza kolumna zawierała datę odczytu, druga godzinę odczytu, trzecia wartość odczytaną z modbus. Próbowałem kilku rozwiązań z neta, ale nieudało mi się tych rozwiązań zaadoptować do mojego przypadku. Dorzucam screen jak aktualnie wyglądają łańcuchy.
Źle sformułowałem pytanie. Chodzi mi o to aby w pliku .csv pierwsza kolumna zawierała date, druga kolumna godzinę, trzecia pomiar temp zew, czwarta kolumna temperatura zasilania, piąta kolumna temperatura powrotu, itp.
inaczej pierwsza kolumna data, druga godzina, trzecia i każda kolejna to wartość z poszczególnego noda modbus.
Każdy odczyt to osobny proces, żyjący własny życiem.
Odczytując w ten sposób nie ma gwarancji, że odbędą się w tej samej sekundzie i dodatkowo nie da się tego poskładać w jedną linijkę.
Zrób tak aby wszystkie dane otrzymać jednym odczytem i otrzymany ciąg (bufor)
parsować.
Nie mam pojęcia jak to załatwić jednym odczytem, nie mam pojęcia o pisaniu kodu w jakim kolwiek języku.
To nie musi być w jednym pliku. Można to pogrupować np. odczyt liczników energii to energia.csv, temperatury temp.csv, itp.
Widziałem przykład gdzie nod inject odpytuje w danym interwale noda modbus gatter, ale nie wiem jak to dalej przeprocesować aby otrzymać wyniki taki sposób jak tego oczekuje.
Czyli nie mam co liczyć na żadną pomoc i wszystko muszę zrobić sam? - tyle czasu to ja nie mam i temat jest mało twórczy.
Na kiedy masz zaliczenie?
Po instalacji paczki modbus zainstalowało się kilka przykładów, ale żebyś nie zadawał kolejnych pytań.
flows (77).json (3,1 KB)
Przykład jak odczytać naraz całą grupę rejestrów.
Nie widziałem adresacji rejestrów ale jeśli jest to ciągła przestrzeń - czytałbym wszystko na raz, bo może to być mniejszy narzut na transmisję.
Nie mam z tego zaliczenia, za stary jestem na studia.
Adresy nie się ciągłe niestety.
Dzięki za pomoc. Poradziłem sobie w taki sposób flow(3).json (3,1 KB)
Faktycznie sieczka i nie da się tego odczytać na raz.
Poczytaj i wypróbuj węzeł join on jest przeznaczony do tego aby skompletować kolejne odczyty w w jeden payload.
Drugi sposób to odczyty zapamiętywać w zmiennych i co 1sek robić zrzut całości do pliku.
Z drugiej strony to ten dane nie zmieniają się w ciągu 1sek w jakiś istotny sposób aby je tak często pobierać. Te zmiany, które widać wynikają z błędu pomiaru.