adccommunitymod (AutomationDirect) asked a question.

Register Addresses SOLO 4824

Created Date: October 31,2014

Created By: Kasia

**** This post has been imported from our legacy forum. Information in this post may be outdated and links contained in the post may no longer work.****

Hello, I have a problem with with register addresses while using MOdbus RTU (dec) in my c# application that is supposed to communicate with Solo 4824 thermo controller. I try to use function 03 to read e.g. set point value (modbus decimal: 44097) and I receive as a response: 02 as a first byte in byte array of 4096 elements. I have no idea how to address the registers for SOLOs. If you had any experience with them, please, share with me because I am really stuck on that. I truly appreciate your answers, Kasia/Ireland


  • adccommunitymod (AutomationDirect)

    Created Date: October 31,2014

    Created by: OpZed

    How many registers are you trying to read? I believe Solo is limited to 8 per transaction.

  • adccommunitymod (AutomationDirect)

    Created Date: October 31,2014

    Created by: Kasia

    just one. I want to check SetPoint Data Registers: Set Point Value (SV) Hex: 1001, Modbus dec: 44098, PLC address (Octal) V10001.

    So I am sending to the port new SerialPort( "COM3 ", 9600, Parity.Even, 8, StopBits.Two)

    int array (2,3,0,1,0,1,132,57) that I convert later into bytes and send using com.Write(byte , int offset, int size) function.

    2 - slave address (works with SOLO software)

    3 - Read multiple registers

    0,1 high &low byte of register address

    0,1 high &low byte for registers amount (I want just one to get any answer from SOLO)

    132, 57 CRC values (tested the algorithm - work properly for values from modbus examples)

    and I receive byte array of size 4096 full of zeroes except of first byte = 2.

    just don't know what to do....

    Expand Post
  • adccommunitymod (AutomationDirect)

    Created Date: October 31,2014

    Created by: scott.lawrence

    you shouldn't receive zeroes unless there isn't a programmed set point.

  • adccommunitymod (AutomationDirect)

    Created Date: October 31,2014

    Created by: OpZed

    Try this (hex):

    02 03 10 01 00 01 D1 39

  • adccommunitymod (AutomationDirect)

    Created Date: October 31,2014

    Created by: Kasia

    yeah, but my setpoint is = 10 Celcius degrees, on - line mode switched on...

    any other hints? Thanks though!

  • adccommunitymod (AutomationDirect)

    Created Date: October 31,2014

    Created by: Kasia

    thanks OpZed,

    it is still the same... (02, 03, 16, 01, 0, 1, 209, 57);

  • adccommunitymod (AutomationDirect)

    Created Date: October 31,2014

    Created by: OpZed

    You are creating this PC application yourself from scratch? What adapter are you using to get to RS485? Have you tried a standardized software like this? http://www.modbustools.com/modbus_poll.asp

  • adccommunitymod (AutomationDirect)

    Created Date: October 31,2014

    Created by: Kasia

    yes. But it is really simple. Thanks for the link, I haven't used that yet. The thing is whichever appllication I use - I get frozen ports or the same result - 02 error which means wrong register address. I use converter rs485 -> serial -> USB... Just working on laptop without serial input.

    :)

  • adccommunitymod (AutomationDirect)

    Created Date: October 31,2014

    Created by: Kasia

    Hello,

    I have a problem with with register addresses while using MOdbus RTU (dec) in my c# application that is supposed to communicate with Solo 4824 thermo controller. I try to use function 03 to read e.g. set point value (modbus decimal: 44097) and I receive as a response: 02 as a first byte in byte array of 4096 elements. I have no idea how to address the registers for SOLOs. If you had any experience with them, please, share with me because I am really stuck on that.

    I truly appreciate your answers,

    Kasia/Ireland

    Expand Post