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->RegisterValue>=32768) then
ModBus->temp=(ModBus->Rejestr_odczytu->RegisterValue-65536)/10
else
ModBus->temp=ModBus->Rejestr_odczytu->RegisterValue/10
end
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ść: