How do I send "Reset of Remote Link"

1,000 views
Skip to first unread message

Tim Collins

unread,
Feb 19, 2015, 3:02:38 PM2/19/15
to automat...@googlegroups.com
Our SCADA software is sending this "Reset of Remote Link" command to each outstation upon startup. One of our relays only works reliably if it gets this. I'm also wondering if this accounts for the connection going from OPEN to WAITING, OPENING, and repeating on startup.

How would I send this? Here is a fragment of the Wireshark dissection:

Distributed Network Protocol 3.0
    Data Link Layer, Len: 5, From: 100, To: 4, DIR, PRM, Reset of Remote Link
        Start Bytes: 0x0564
        Length: 5
        Control: 0xc0 (DIR, PRM, Reset of Remote Link)
            1... .... = Direction: Set
            .1.. .... = Primary: Set
            ..0. .... = Frame Count Bit: Not set
            ...0 .... = Frame Count Valid: Not set
            .... 0000 = Control Function Code: Reset of Remote Link (0)
        Destination: 4
        Source: 100
        CRC: 0x899a [correct]

Adam Crain

unread,
Feb 19, 2015, 3:09:38 PM2/19/15
to automat...@googlegroups.com
Hi Tim,

This function code is only required if sending data using confirmed data mode, where each link-layer frame is confirmed.

Opendnp3 won't send this at all in unconfirmed mode.

Set this configuration variable to true:


It's part of the same config structure as shown in the master demo:


-Adam

Alan Murray

unread,
Feb 19, 2015, 10:14:15 PM2/19/15
to Adam Crain, automat...@googlegroups.com
For what it's worth I've encountered master stations that send a link reset on connect even if link layer confirms are disabled. Not sure if this is a conformant thing or not. 

Alan

Sent from my iPhone

Adam Crain

unread,
Feb 19, 2015, 10:23:27 PM2/19/15
to automat...@googlegroups.com, jadam...@automatak.com
I've encountered the same too.

From the spec:
----------------------------
9.2.6.1 Function code 0 RESET_LINK_STATES

This function code is utilized for synchronizing a Secondary Station’s states so that it properly processes
primary-to-secondary frames with the FCV bit set. This function code is only required if data is transmitted
using function code CONFIRMED_USER_DATA.
---------------------------

This seems to imply that both behaviors are OK. You can send it, or not, if you're in unconfirmed mode.

However, you shouldn't require your link to be reset before accepting UNCONFIRMED_USER_DATA. The relay that Tim has that is requiring this is definitely non-conformant. 

-AC
Reply all
Reply to author
Forward
0 new messages