FUXA icon indicating copy to clipboard operation
FUXA copied to clipboard

ModbusTCP / ModbusRTU Configuration

Open tomas-kucera opened this issue 1 year ago • 3 comments

Hi there, I am struggling with the configuration of the ModbusTCP / ModbusRTU Tags.

The dialog allows me to set InputRegisters / Holding Registers within the range of 300001 - 365536 (400001 - 465536 resp.). But the specs for my device say:

Input register(s) address Purpose 0-15 data unit 1 16-31 data unit 2 ...

Do not take me wrong, I understand the ranges (as they come from Modbus specs). Though they are wrong, as the ranges are only 30000-39999, etc. But in many cases the device documentations do not use this notation and it just adds extra layer of complexity to the configuration.

I had tried to test it with the modbus-serial library and there is absolutely no problem to specify and execute that I want to readInputRegisters from address 0, etc. So it is not a limitation / requirement of the library but the FUXA dialog.

Why the dialog does not specify only that I want to perform: FC01 - Read Coils FC02 - Read Discrete Inputs FC03 - Read Multiple Holding Registers FC04 - Read Input Registers ...

What I do not understand is the range 1 - 65536, the range should be 0 - 65535!

I think that for most people this would be a lot more understandable and convenient.

Your thoughts on this? Thanks!

tomas-kucera avatar Jul 28 '23 16:07 tomas-kucera

Hi, i agree with you that modbus addressing is a bit confusing and there are different interpretations of how to display the address and it also depends on the user. probably our interpretation of how to display the address settings is not the happiest. let's see if we can find a consensus for improvement...thanks for the input.

unocelli avatar Aug 06 '23 16:08 unocelli

Hi, great! I would be happy to provide some feedback and wireframes based on my experience from working with Modbuses.

tomas-kucera avatar Aug 13 '23 19:08 tomas-kucera

Unfortunatelly Modbus specification don't specify this kind of information. What I already saw in some softwares is to have IEC61131-3 (%M, %MW addressing), index (0-65535) and 'legacy' (0000x, 1000x, 4000x, etc...) options to act as a mask for value of the address field. But what I think that is better and simple, it's only index, always starting from 0, that is exactly what will be on the wire.

rvbatista avatar Nov 19 '23 15:11 rvbatista