Aby odczytać ujemne wartości rejestrów Modbus, należy od odczytanej wartości z rejestru odjąć liczbę 65536

Poniżej przykład jak można to wykonać:


1. Tworzymy zmienną użytkownika, do której zostanie przekazany wynik działania w skrypcie



2. Następnie przygotujemy skrypt:


if(ModBus->Rejestr_odczytu->Value>=32768) then
ModBus->temp=(ModBus->Rejestr_odczytu->Value-65536)/10
else
ModBus->temp=-ModBus->Rejestr_odczytu->Value/10
end

C


3. Skrypt będzie wywoływany przez zdarzenie OnChange w obiekcie wirtualnym ModBus 

 4. Po wysłaniu konfiguracji, w cesze użytkownika powinna zostać zwrócona ujemna wartość: