Unsupported qualifier/object - 16-bit count and prefix - 30 / 1

151 views
Skip to first unread message

Wayne Johnson

unread,
Sep 26, 2016, 10:03:34 AM9/26/16
to automatak-dnp3
I have a OpenDnp3 master configuration set up and am scanning our slave software.  I get the warning on the response:

  Unsupported qualifier/object - 16-bit count and prefix - 30 / 1

And don't see the data come out in PrintingSOEHandler.

Is this something we shouldn't be or are sending incorrectly., or is it just something that OpenDNP3 isn't supporting (yet).

The packet looks like:
05 64 2B 44 01 00 65 00 FC D1 C0 C1 81 00 00 1E 01 28 
04 00 00 00 00 42 00 00 7B 9D 00 01 00 00 00 00 00 00 
02 00 00 00 00 00 00 09 14 74 00 00 00 00 00 00 FF FF 
Function: PRI_UNCONFIRMED_USER_DATA Dest: 1 Source: 101 Length: 43
C0 C1 81 00 00 1E 01 28 04 00 00 00 00 42 00 00 00 01 
00 00 00 00 00 00 02 00 00 00 00 00 00 09 00 00 00 00 
00 00 
FIR: 1 FIN: 1 SEQ: 0 LEN: 37
C1 81 00 00 1E 01 28 04 00 00 00 00 42 00 00 00 01 00 
00 00 00 00 00 02 00 00 00 00 00 00 09 00 00 00 00 00 
00 
FIR: 1 FIN: 1 CON: 0 UNS: 0 SEQ: 1 FUNC: RESPONSE IIN: [0x00, 0x00]
030,001 Analog Input - 32-bit With Flag, 16-bit count and prefix [4]
Unsupported qualifier/object - 16-bit count and prefix - 30 / 1

J Adam Crain

unread,
Sep 26, 2016, 10:09:23 AM9/26/16
to automatak-dnp3
Hi Wayne,

30 / 1 is a static variation. Static variations are not allowed to be reported using count and prefix header types (0x17 / 0x28). These qualifier codes are used to report events. The outstation is not conformant.

-Adam

Wayne Johnson

unread,
Sep 26, 2016, 11:26:54 AM9/26/16
to automatak-dnp3
Forgive me, but I'm still trying to understand the spec (IEEE 1815).

From Table 83 (minimum supported codes as I interpret it) indicate that only qualifiers 00, 01, and 06 are supported.  Table 114 (“outside of the minimum requirements of DNP3”) show 00,01,06,17,28 are allowed.

 

So as I read this, it’s not allowed/required on a minimum functionality connection, but allowed to be used on an extended connection. 








Wayne Johnson

unread,
Sep 26, 2016, 11:31:34 AM9/26/16
to automatak-dnp3
The values we're sending here is a simple analog value such as a voltage or current (kW) in response to a poll (aka scan).  Is there a better variation or qualifier to use?

J Adam Crain

unread,
Sep 26, 2016, 11:59:23 AM9/26/16
to automatak-dnp3
Hi Wayne,

Just report static variations using ranges (start/stop), i.e. qualifiers 0x00, 0x01.

You're right that the spec leaves it open to use these variations beyond level 4, but I doubt many masters will be able to talk to this device.

-Adam

Wayne Johnson

unread,
Sep 26, 2016, 12:46:52 PM9/26/16
to J Adam Crain, automatak-dnp3
OK, after discussing this with my client, they feel that their customers are happy with using the 0x28 qualifier (i.e. they have had no complaints).  I've modified my copy of CountIndexParser.cpp to accept 30/1.  If you want a patch, I'd be glad to supply it.  It's a 3 liner.  I suspect you could do the same patch in your sleep 8{)>

I wonder if it would be a good idea to add a switch (either macro or runtime) to enable these extended groups/qualifiers? 

Thanks for your help.
 
---
Wayne Johnson,             | There are two kinds of people: Those
3943 Penn Ave. N.          | who say to God, "Thy will be done,"
Minneapolis, MN 55412-1908 | and those to whom God says, "All right,
(612) 522-7003             | then, have it your way." --C.S. Lewis



From: J Adam Crain <jadam...@gmail.com>
To: automatak-dnp3 <automat...@googlegroups.com>
Sent: Monday, September 26, 2016 10:59 AM
Subject: [opendnp3] Re: Unsupported qualifier/object - 16-bit count and prefix - 30 / 1

J Adam Crain

unread,
Sep 26, 2016, 1:02:20 PM9/26/16
to automatak-dnp3, jadam...@gmail.com, wd...@yahoo.com
I'm okay with extending this via a runtime option, so long as the default is not to accept them. I'd also rather not do this piecemeal. In other words, I'd need any patch to enable count & prefix parsing for all static variations (analogs, binaries, counters, etc, etc).

-Adam




On Monday, September 26, 2016 at 12:46:52 PM UTC-4, Wayne Johnson wrote:
OK, after discussing this with my client, they feel that their customers are happy with using the 0x28 qualifier (i.e. they have had no complaints).  I've modified my copy of CountIndexParser.cpp to accept 30/1.  If you want a patch, I'd be glad to supply it.  It's a 3 liner.  I suspect you could do the same patch in your sleep 8{)>

I wonder if it would be a good idea to add a switch (either macro or runtime) to enable these extended groups/qualifiers? 

Thanks for your help.
 
---
Wayne Johnson,             | There are two kinds of people: Those
3943 Penn Ave. N.          | who say to God, "Thy will be done,"
Minneapolis, MN 55412-1908 | and those to whom God says, "All right,
(612) 522-7003             | then, have it your way." --C.S. Lewis



From: J Adam Crain <jadam...@gmail.com>
To: automatak-dnp3 <automatak-dnp3@googlegroups.com>
Sent: Monday, September 26, 2016 10:59 AM
Subject: [opendnp3] Re: Unsupported qualifier/object - 16-bit count and prefix - 30 / 1

Wayne Johnson

unread,
Sep 28, 2016, 10:32:14 AM9/28/16
to automatak-dnp3
I've run into another anomaly in a new feature we're adding.  The architect wants to use Group 20, Variation 3 to present the delta to an accumulator.  It appears 20/3 is deprecated.  Is there a better way to send this data?  Seems all the delta variations are deprecated.  Are they just sent as 32 bit counters instead?

Adam Crain

unread,
Sep 28, 2016, 11:23:07 AM9/28/16
to Wayne Johnson

Correct.  They're just sent as the current value of the counter.

Adam

Reply all
Reply to author
Forward
0 new messages