Author Topic: ModbusRTU problems  (Read 1646 times)

Flemmingaa

  • Newbie
  • *
  • Posts: 7
  • Fl-aa
    • View Profile
ModbusRTU problems
« on: January 29, 2016, 07:12:00 AM »
Hi
How do I read register 3029 from a slave ?

Slave addr. = 1
Function code = 3
Registre addr = 3029
Number of registers = 2
This results in a Tx:  01 03 0B D5 00 02 D7 D7 (last 4 is CRC)

I can't convert it to ModbusRTUCom1.Read("3:3029", 2)   ? ?
Greetings

Archie

  • Administrator
  • Hero Member
  • *****
  • Posts: 5262
    • View Profile
    • AdvancedHMI
Re: ModbusRTU problems
« Reply #1 on: January 29, 2016, 07:41:37 AM »
Dim MyValues() as string=ModbusRTUCom1.Read("43029", 2)

Flemmingaa

  • Newbie
  • *
  • Posts: 7
  • Fl-aa
    • View Profile
Re: ModbusRTU problems
« Reply #2 on: January 29, 2016, 08:02:31 AM »
Thanks
but I get the error message "Illegal Data Address"
>   AdvancedHMIDrivers.dll!AdvancedHMIDrivers.ModbusBase.Read(String startAddress = "43029", Integer numberOfElements = 2) Line 170   Basic

I am new in "Modbus" through AdvancedHMI
Greetings

Archie

  • Administrator
  • Hero Member
  • *****
  • Posts: 5262
    • View Profile
    • AdvancedHMI
Re: ModbusRTU problems
« Reply #3 on: January 29, 2016, 08:04:35 AM »
The Illegal Data Address is a response from your device. Try just reading a single element

Dim MyValues as string=ModbusRTUCom1.Read("43029")

Flemmingaa

  • Newbie
  • *
  • Posts: 7
  • Fl-aa
    • View Profile
Re: ModbusRTU problems
« Reply #4 on: January 29, 2016, 10:02:28 AM »
Mmmm does not work
I can read coils without problems:
1 coil example:
ModbusRTUCom1.Read("0021", 1)
or 10 coils example:
ModbusRTUCom1.Read("0021", 10)

but not register

I know that the address 3029 is correct, because I can read it through "QModMaster"
Greetings

Flemmingaa

  • Newbie
  • *
  • Posts: 7
  • Fl-aa
    • View Profile
Re: ModbusRTU problems
« Reply #5 on: January 29, 2016, 10:09:41 AM »
Dim MyValues() As String = ModbusRTUCom1.Read("3029", 2)
gives
"Illegal Function"

Dim MyValues() As String = ModbusRTUCom1.Read("43029", 2)
gives
"Illegal Data Address"

Dim MyValues() As String = ModbusRTUCom1.Read("3:3029", 2)
gives
"Illegal Data Address"

Dim MyValues() As String = ModbusRTUCom1.Read("3:43029", 2)
gives
"Illegal Data Address"
Greetings

Flemmingaa

  • Newbie
  • *
  • Posts: 7
  • Fl-aa
    • View Profile
Re: ModbusRTU problems
« Reply #6 on: January 29, 2016, 10:30:20 AM »
Aaa Sorry Archie
The adresse in AdvancedHmi i 3030 and not 3029 so
Dim MyValues() As String = ModbusRTUCom1.Read("43030", 2)
works fine

Sorry and many thanks
Greetings