Jeśli próbujesz prze RS485 logger nie ma nic do rzeczy (może go nawet nie być).
Cześć. KIedyś pisałem odnośnie, aktualizacji czasu na moim falowniku SOFAR 6.6 KTLX-G3. Ta dokumentacja z excela, nawet się pokrywa, bo z mała pomocą AI udało mi się odczytać aktualną datę i godzinę.
Utworzyłem funkcję:
msg.payload = {
"fc": 3, // Reading Holding Registers
"unitid": 1, // Twoje ID urządzenia
"address": 4100, // Adres 0x1004 przeliczony na dziesiętny
"quantity": 7 // Czytamy 6 rejestrów czasu + 1 rejestr kontrolny
};
return msg;
i dostaje:
4.02.2026, 08:02:54node: CZAS_DATA
8bf1593.83f68a8 : msg.payload : array[7]
[ 26, 2, 4, 7, 59, 4, 0 ]
Problem jest z zapisem, próbowałem czegoś takiego:
var teraz = new Date();
// Dane przygotowane zgodnie z Twoim Excelem
var rok = teraz.getFullYear() - 2000;
var mies = teraz.getMonth() + 1;
var dzien = teraz.getDate();
var godz = teraz.getHours();
var min = teraz.getMinutes();
var sek = teraz.getSeconds();
var control = 1; // Bit aktywacji zapisu
msg.payload = {
"fc": 16, // Write Multiple Registers
"unitid": 1,
"address": 4100, // Start od 0x1004
"quantity": 7, // Zapisujemy czas + rejestr kontrolny
"value": [rok, mies, dzien, godz, min, sek, control]
};
return msg;
Ale zwraca błąd
4.02.2026, 08:05:15node: Modbus Flexible Read
msg : string[12]
"FC Not Valid"
4.02.2026, 08:05:15node: Modbus Flexible Read
msg : error
{ name: "Error", message: "Invalid Modbus message", stack: "Error: Invalid Modbus message↵…" }
Może jakaś podpowiedź by się znalazła ?