No that's not quite right.

40001 is "PLC addressing" used to identify the 1st holding register in the PLC
if you want to access this register using the Modbus protocol you need to set Mach3 up to read holding registers and read the 1st register which will be address '0'
So in Mach3 CFG#0 set up to read 10 holding registers set the start register address to 0 as this equates to 40001.
The 10 registers returned will be PLC addresses 40001 to 40011
When Modbus was originally designed they specified that,
1) output coils started at address 1 to 9999 or hex addresses 0000-270E
2) input registers started at address 10001 to 19999 or hex addresses 0000-270E
2) input registers started at address 30001 to 39999 or hex addresses 0000-270E
4) holding registers started at address 40001 to 49999 or hex addresses 0000-270E
So what that means is that each of the above types of registers have their own block of registers in memory. Depending on which type of register you are accessing will determine register block the register will be read from.
In Mach3 it is valid to read holding registers starting at address 0 and also read input registers starting at address 0. Even though both reads are reading address 0, they are reading from different sets of registers.
All clear?

Cheers,
Peter