Skip to content

When you issue CROB command via WritePoint or Action, the driver requires:

  • data_type=UInt8
  • value is a u8 Control Code (DNP3 Group12Var1 ControlCode)

However, not all u8 from 0..=255 are accepted by the gateway: To avoid ambiguity/malfunction, the gateway only supports a clear safe subset (See full table below).

1. Bitfield Definition

Driver encoding/decoding of CROB ControlCode follows this bitfield:

  • bits 7..6: Trip/Close Code (TCC)
    • 0b00 → Nul
    • 0b01 → Close
    • 0b10 → Trip
    • 0b11 → Reserved (Gateway Rejects)
  • bit 5: clear
  • bit 4: queue (Obsolete in standard, but still representable; device support depends on Outstation)
  • bits 3..0: OpType
    • 1 → PulseOn
    • 2 → PulseOff
    • 3 → LatchOn
    • 4 → LatchOff
    • 0/5..15 (Gateway Rejects)

2. Most Common 4 Values

If you don't need Trip/Close, nor queue/clear (Most common in field), then:

  • PulseOn1 (0x01)
  • PulseOff2 (0x02)
  • LatchOn3 (0x03)
  • LatchOff4 (0x04)

3. Gateway Allowed Full ControlCode(u8) List

u8(dec)u8(hex)OpTypeTCCqueueclear
10x01PulseOnNulfalsefalse
20x02PulseOffNulfalsefalse
30x03LatchOnNulfalsefalse
40x04LatchOffNulfalsefalse
170x11PulseOnNultruefalse
180x12PulseOffNultruefalse
190x13LatchOnNultruefalse
200x14LatchOffNultruefalse
330x21PulseOnNulfalsetrue
340x22PulseOffNulfalsetrue
350x23LatchOnNulfalsetrue
360x24LatchOffNulfalsetrue
490x31PulseOnNultruetrue
500x32PulseOffNultruetrue
510x33LatchOnNultruetrue
520x34LatchOffNultruetrue
650x41PulseOnClosefalsefalse
660x42PulseOffClosefalsefalse
670x43LatchOnClosefalsefalse
680x44LatchOffClosefalsefalse
810x51PulseOnClosetruefalse
820x52PulseOffClosetruefalse
830x53LatchOnClosetruefalse
840x54LatchOffClosetruefalse
970x61PulseOnClosefalsetrue
980x62PulseOffClosefalsetrue
990x63LatchOnClosefalsetrue
1000x64LatchOffClosefalsetrue
1130x71PulseOnClosetruetrue
1140x72PulseOffClosetruetrue
1150x73LatchOnClosetruetrue
1160x74LatchOffClosetruetrue
1290x81PulseOnTripfalsefalse
1300x82PulseOffTripfalsefalse
1310x83LatchOnTripfalsefalse
1320x84LatchOffTripfalsefalse
1450x91PulseOnTriptruefalse
1460x92PulseOffTriptruefalse
1470x93LatchOnTriptruefalse
1480x94LatchOffTriptruefalse
1610xA1PulseOnTripfalsetrue
1620xA2PulseOffTripfalsetrue
1630xA3LatchOnTripfalsetrue
1640xA4LatchOffTripfalsetrue
1770xB1PulseOnTriptruetrue
1780xB2PulseOffTriptruetrue
1790xB3LatchOnTriptruetrue
1800xB4LatchOffTriptruetrue

4. How to use WritePoint / Action?

4.1 WritePoint (BinaryOutput Write Point)

  • point.group=BinaryOutput
  • point.data_type=UInt8
  • value: Fill in u8(dec) from the table on this page

Note

WritePoint path CANNOT control crobCount/crobOnTimeMs/crobOffTimeMs (Driver intentionally does not expose these protocol level fields). If you need to configure counts/pulse timing, please use Action path.

4.2 Action (CROB Batch Control)

  • Action.inputs[].driver_config.group=CROB
  • Action.inputs[].driver_config.index=<Target Index>
  • Action.inputs[].data_type=UInt8
  • Action.inputs[].value: Fill in u8(dec) from the table on this page
  • crobCount/crobOnTimeMs/crobOffTimeMs: Configured via Parameter Level Modeling Fields

Note

If the value you pass is not in the 48 values in the table above (e.g., op_type=0 or tcc=Reserved), the driver will directly reject and return an error.

Released under the Apache License 2.0.