News:

  • April 19, 2024, 07:42:39 PM

Login with username, password and session length

Author Topic: Do-More read/write with ABB DCS550  (Read 4382 times)

henke

  • Full Member
  • ***
  • Posts: 21
Do-More read/write with ABB DCS550
« on: July 09, 2018, 02:27:21 AM »
We have a project involving the integration of a Do-More with a single ACS550 for fan control via a dedicated MB-Gateway. The goal is to read one block of ten registers and write just two in the drive. Though noting that this has been discussed elsewhere in the forum, I can't get this working here for some apparent reason. In past, interfacing other RTU equipment via MB-Gateway has taken a bit of fiddling with Inter-packet delay to get it to work, but in this case it is set at 20ms which appears to be the minimum. Raising the delay value hasn't helped at all. The fault we are getting is from the PLC MRX instruction and is reflected in the MB-Gateway monitor page as "08 – Memory Parity Error" which in the help file is described as follows: Specialized use in conjunction with function codes 20 and 21 and reference type 6, to indicate that the extended file area failed to pass a consistency check. The server (or slave) attempted to read record file, but detected a parity error in the memory. The client (or master) can retry the request, but service may be required on the server (or slave) device.
Just simply attempting to read 40001 and 40002 via MRX will cause this error instantly.

The drive responds perfectly when using Lookout SCADA as the ModbusTCP host. Not a single error all day long. So it doesn't appear that hardware is the culprit at all. Any suggestions? What am I missing?
Where's my kitty?

Greg

  • HostTech
  • Host Moderator
  • Hero Member
  • *****
  • Posts: 676
  • Hmmm...
    • Host Engineering, Inc.
Re: Do-More read/write with ABB DCS550
« Reply #1 on: July 09, 2018, 09:41:32 AM »
@henke, it may be that the "08 - Memory Parity Error" is an incorrect error message. In MB-GATEWAY firmware earlier than v1.0.681, this error was erroneously coming up when it should've been something else.

So the starting question is, what version of firmware does the MB-GATEWAY have in it?
There are two types of people in the world; those that can extrapolate from incomplete data sets.

henke

  • Full Member
  • ***
  • Posts: 21
Re: Do-More read/write with ABB DCS550
« Reply #2 on: July 09, 2018, 12:17:52 PM »
Hi Greg, thanks for the prompt feedback. Looks like my laptop onsite didn't have the latest MB-Gateway firmware when I was updating the module the other day. Back on the server console and have just updated to firmware 1.0.684
Now the error being thrown is "02 – Illegal Data Address" which in the help file is described as: The function code received in the query is not an allowable action for the server (or slave). This may be because the function code is only applicable to newer devices, and was not implemented in the unit selected. It could also indicate that the server (or slave) is in the wrong state to process a request of this type, for example because it is unconfigured and is being asked to return register values.

I've tried using the Automatic Reads feature but it hasn't made a difference. Is this a situation where it would typically be ideal or advantageous for Automatic Reads to be set up on the Gateway?
Where's my kitty?

Greg

  • HostTech
  • Host Moderator
  • Hero Member
  • *****
  • Posts: 676
  • Hmmm...
    • Host Engineering, Inc.
Re: Do-More read/write with ABB DCS550
« Reply #3 on: July 09, 2018, 02:43:47 PM »
OK, good. "02 - Illegal Data Address" just means you are asking for something out of range with your MRX instruction. In your OP you said, "Just simply attempting to read 40001 and 40002 via MRX will cause this error instantly." So my first guess is that you have typed in "40001" in the "From Modbus Offset Address" parameter for the MRX, when, most likely, you should've typed in "1". The reason being, the MRX "From Modbus Offset Address" is zero-based. You are probably technically wanting to read from "Holding Register 1 and 2" which is commonly referred to in writing as "40001 and 40002" but technically, in the telegram that is sent over the wire is really offset 1 and 2 in the Holding Register block. If you put in "40001" and "40002" in this field in the MRX instruction, then it is literally trying to read "Holding Register 40001 (not 1) and 40002 (not 2)", and this is most likely out of range for your ACS550.
« Last Edit: July 09, 2018, 04:16:06 PM by Greg »
There are two types of people in the world; those that can extrapolate from incomplete data sets.

franji1

  • Bit Weenie
  • Host Moderator
  • Hero Member
  • *****
  • Posts: 3658
    • Host Engineering
Re: Do-More read/write with ABB DCS550
« Reply #4 on: July 09, 2018, 03:42:10 PM »
Actually, it is trying 440001 and 440002

henke

  • Full Member
  • ***
  • Posts: 21
Re: Do-More read/write with ABB DCS550
« Reply #5 on: July 09, 2018, 04:06:29 PM »
You gents nailed it. Yes, the confusion was that the literal address is a valid entry in the MRX "From Modbus Offset Address" entry but of course in that case the drive thinks you're looking for 440001, etc which does not compute. Exactly as you point out, the address requested in the MRX does not need the leading 4. Oops, facepalm. Thanks, we're in business.  ;D
Where's my kitty?

franji1

  • Bit Weenie
  • Host Moderator
  • Hero Member
  • *****
  • Posts: 3658
    • Host Engineering
Re: Do-More read/write with ABB DCS550
« Reply #6 on: July 09, 2018, 04:47:31 PM »
the address requested in the MRX does not need the leading 4. Oops, facepalm. Thanks, we're in business.  ;D

You are not the first.  Believe it or not, there is a popular valve whose Modbus interface literally uses 40001 as the OFFSET, so you DO have to use "Modbus Address" 440001 to get it to work!  So, do NOT feel bad, it's a common misunderstanding.

The reason we did it that way is because there are very old Modbus devices that use 4 digit addresses, e.g. 4001, and then the most common is 5 digit 40001, but then there are some that either have a TON of Holding Registers or they implemented the protocol incorrectly, and requires a 6 digit Modbus address, 400001 (so you can address up to HR 465536).  Rather than require you to choose which address form you need (4 vs. 5 vs. 6 digit), chances are you just need the "first Holding Register", so MRX/MWX just spells it out as "4xxxx + offset 1".