
adccommunitymod (AutomationDirect) asked a question.
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
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.
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....
Created Date: October 31,2014
Created by: scott.lawrence
you shouldn't receive zeroes unless there isn't a programmed set point.
Created Date: October 31,2014
Created by: OpZed
Try this (hex):
02 03 10 01 00 01 D1 39
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!
Created Date: October 31,2014
Created by: Kasia
thanks OpZed,
it is still the same... (02, 03, 16, 01, 0, 1, 209, 57);
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
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.
:)
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