modbus TCP with ENC28J60 problem

Hello,
I try to made Modbus TCP with ENC28J60 and Arduino Nano. I use library from here

I test with Modbus tcp simulator, but not all software can read the what I program into Arduino.
In the program is just updating the input register 100 by a increment counter.
See the code

/*
  Modbus-Arduino Example - TempSensor (Modbus IP ENC28J60)
  Copyright by André Sarmento Barbosa
  http://github.com/andresarmento/modbus-arduino
*/

#include <EtherCard.h>
#include <Modbus.h>
#include <ModbusIP_ENC28J60.h>

//Modbus Registers Offsets (0-9999)
const int SENSOR_IREG = 100;
//Used Pins
const int sensorPin = A0;
uint16_t az = 0;

//ModbusIP object
ModbusIP mb;

long ts;

void setup() {
    // The media access control (ethernet hardware) address for the shield
    byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
    // The IP address for the shield
    byte ip[] = { 192, 168, 1, 120 };
    //Config Modbus IP
    mb.config(mac, ip);

    // Add SENSOR_IREG register - Use addIreg() for analog Inputs
    mb.addIreg(SENSOR_IREG);

    ts = millis();
}

void loop() {
   //Call once inside loop() - all magic here
   mb.task();
  
   //Read each two seconds
   if (millis() > ts + 100) {
       ts = millis();
       az ++;

       //Setting raw value (0-1024)
//       mb.Ireg(SENSOR_IREG, analogRead(sensorPin));
       mb.Ireg(SENSOR_IREG, az);
       if (az > 1000){
        az = 0;
       }
   }
   
}

I able to ping the ENC28J60, but I can’t read the input register with address 100
what is wrong with the code?

The picture sim1 is the success one and sim2 is error also the other simulator is error.

thank you

what is wrong with the code?

You might have to ask "what's wrong with your simulator?".

It requests register number 95 not 100 as you defined in your sketch.

I'm sure something in the code.
Inreg def. is 100
In the error simulator I was define read from 95 with 10 lenght. So register 100 is inside.
I also try single read in register 100 or 101 is same error result.

In the error simulator I was define read from 95 with 10 lenght. So register 100 is inside.

Sure it is but your code knows only about register 100, nothing about 95, nothing about 96, etc.

I also try single read in register 100 or 101 is same error result.

If you have a simulator that does such strange things as requesting register 95 if you define it to read 100, I’m not surprised. Get it to read exactly register number 100 and nothing else and check the hex code transferred that it really does that. Then we might search for an error in the code.