1/6/2017 1:47 PM | |
Posts: 11 Rating:
|
Hi Denilson, I have a problem communicating S7-1500 with Danfoss EKC. The data addresses listed in the manual of Danfoss ECK ranges from 1XX to 2XXXX (Please see attached file), and using Mode 0, on the Modbus_master program block, it will send 01 function code since the range of data addresses are for reading output bits (Not 4XXXXX). I'm encountering error in TIA saying the function code is not supported by the slave. My question is how can I read those data addresses as holding register addresses.( using 4XXXXX ) I have tried accessing 400100 data address ang the EKC communicated and sending data to the PLC but I don't know what is that data I received. Also, typing data addresses other than 400100, TIA gives an error saying the data address is not correct or invalid. I hope you can give me some advice. Thanks! ------------------------------------------------------------------------------------------ AttachmentEKC 202B - 084B8522 - 1 31 rz8cn102 (00000002)_TCPARAMADDRESS.pdf (982 Downloads) |
Last edited by: CS Moderator at: 1/7/2017 11:55:44 AMNew subject after splitting |
|
1/7/2017 2:27 AM | |
Joined: 3/28/2010 Last visit: 3/13/2025 Posts: 1123 Rating:
|
I feel your pain. Danfoss' document is very difficult to understand and Danfoss appears to make up their own definitions and acronymns without explaining them. I do lots of Modbus and read lots of Modbus manuals, and it isn't clear what Danfoss uses for Modbus register addressing or for data formats. 1) Data format On page 3 of the document you posted, the first two values are listed as: - Cutout °C at PNU 100 as a floating point value ranging from -50.0 °C to +50.0 °C - r01 Differential at PNU 101 as a floating point value ranging from 1.0°C to 20.0°C There is a serious problem with calling these values "Floating Point". The conventional understanding of the term "Floating Point" (FP) is the definition used by the IEEE 754 standard: 32 bit FP unless otherwise stated (sometimes 64 bit). It is a problem because a 32 bit FP value requires 2 sequential modbus registers/addresses because a Modbus register is ALWAYS a 16 bit register. In conventional Modbus addressing, two true IEE 754 floating point values would have addressing like - Cutout at (4)00100 - Differential at (4)00102 where (4)00100 contains 16 bits of the Cutout 32 bit FP value, and (4)00101 has the remaining 16 bits of the Cutout value. (4)00102 contains 16 bits of the differential 32 bit FP value, and (4)00103 has the remaining 16 bits of the differential value. Since PNU 101 is only one register address from PNU 100, I have to conclude that if the PNU is really a Modbus type 16 bit register/address and that Danfoss misuses and wrongly applies the conventional term "floating point". The data value at PNU/register/address 100 is most likely not an IEEE 754 FP value, it is probably an integer that needs to be multiplied by 0.1 in order to display the value to the right of the decimal point. For instance the integer 156 would be interpreted as 156 * 0.1 = 15.6. By comparing a couple documents, I believe that PNU probably refers to the Parameter Number. The "Menu Survey" for the EKC202D (not your model, but usually Modbus registers do not vary much model from model) on page 18 in the EKC202D manual at this link: http://files.danfoss.com/technicalinfo/dila/01/RS8EE502_EKC202_302D.pdf shows Modbus register 100, (4)00100, (called Cutout C in your Modbus manual) listed as "Temperature Setpoint" in units of Deg C, with a range of -50.0 to +50.0 Deg C in the "Menu Survey". It might help to compare the "Menu Survey" with the PNU list in the Modbus manual to try to figure out how values are represented. 2) Holding registers (4xxxxx) I'm guessing that all of the values listed are in holding registers since the value in PNU/register/address 100 returned a value when you polled/queried 400100 AND the slave did not reply with a Modbus exception code (failure code). Holding registers can be either read only or read/write, depending on how the manufacturer designates the register/address. 3) One offset in register addressing One issue might be that some Modbus slaves start their register/addresses at 00000, others start at 400001, which I refer to as the dreaded (terrible) "one offset". (4)00100 might be at (4)0099 in the slave. You need to know what values the Danfoss has for the temperature setpoint and the differential. Those will not change unless the unit is re-configured. Knowing those configured values, you should be able to interpret the values from those two registers, at either (4)00100 and (4)00101. |
This contribution was helpful to
7 thankful Users |
Follow us on