Problem with SimpleModbusSlave library

Hi there,

I used old ModbusSlave library since it has function 6 implemented, but since SimpleModbusSlave also has it for a couple of months I decided to test it. Also, ModbusSlave is compatible with compilator version only below 1.0, while SimpleModbusSlave works with the new ones.

Part of the code needed for interpretation can be found below (I use ~50 registers, but left only one to not to make the code too long).

#include <EEPROM.h>
#include <LiquidCrystal.h>
#include <OneWire.h>
#include <PID_v1.h>
#include <SimpleModbusSlave.h>
OneWire ds(7);
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

PID myPID(&Input, &Output, &Setpoint,100,20,5, DIRECT);

enum 
{     
#include <EEPROM.h>
#include <LiquidCrystal.h>
#include <OneWire.h>
#include <PID_v1.h>
#include <SimpleModbusSlave.h>
OneWire ds(7);
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

PID myPID(&Input, &Output, &Setpoint,100,20,5, DIRECT);

enum 
{     
  MAINMENU_MB,
  HOLDING_REGS_SIZE
};

unsigned int holdingRegs[HOLDING_REGS_SIZE];

void setup()
{
modbus_configure(&Serial, 9600, SERIAL_8N1, 1, 1, HOLDING_REGS_SIZE, holdingRegs);
modbus_update_comms(9600, SERIAL_8N1, 1);
}

void loop()
{
  modbus_update();
  switch(holdingRegs[MAINMENU_MB]){
    case (1):
    display_lcd(0,0,"    Manual Mode     ");
    display_lcd(0,1,"                    ");
    delay (1000);
    update_eeprom();
    lcd.clear();
    manual_mode();
    holdingRegs[MAINMENU_MB] = 0;

    break;

    case (2): 

    display_lcd(0,0,"     Auto Mode      ");
    display_lcd(0,1,"                    ");
    delay (1000);
    update_eeprom();
    lcd.clear();
    auto_mode();
    holdingRegs[MAINMENU_MB] = 0;  

    break;

    case (3):   

    display_lcd(0,0,"     Setup Mode     ");
    display_lcd(0,1,"                    ");
    delay (1000);
    update_eeprom();
    //lcd.clear();
    setup_mode();
    holdingRegs[MAINMENU_MB] = 0;    

    break;

  default:      
    heat_off();
    pump_off();
}

I use ScadaBR and with an old library there were no problems, but here I can see the slave and ask for values for couple of registers (testing connection via data source in ScadaBR), but when I try to get an individual value of a register as a data point there seems to be no data transfer. Also, I can see TX is not sending any signal then. What can be a problem here?