8.2.5.2.1 Binary Output, Complementary Function Support (revision 2.7, subset level 2)

Device under test: Step Function I/O dnp3 outstation

10:56:29.640 Running procedure: 8.2.5.2.1
10:56:29.643 This procedure is enabled because the following options:
10:56:29.643 - supports.binaryOutput.commands == true
10:56:29.643 step: 3
10:56:29.643 - DUT supports Latch On/NUL and Latch Off/NUL pair.
10:56:29.643 step: 4
10:56:29.643 - Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
10:56:29.643 - g12v1, 1-Byte Count and Index, count: 1
10:56:29.643 - [2] - code: 0x03 (LATCH_ON, NUL) count: 10 onTime: 500 offTime: 600 status: 0 (SUCCESS)
10:56:29.643 - Read a single fragment response w/ sequence(0x01)
10:56:29.643 - Verify the response contains the exact object header:
10:56:29.643 - g12v1, 1-Byte Count and Index, count: 1
10:56:29.643 - [2] - code: 0x03 (LATCH_ON, NUL) count: 10 onTime: 500 offTime: 600 status: 0 (SUCCESS)
10:56:29.643 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:56:29.643 --A-> Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
10:56:29.643 g12v1, 1-Byte Count and Index, count: 1
10:56:29.643 [2] - code: 0x03 (LATCH_ON, NUL) count: 10 onTime: 500 offTime: 600 status: 0 (SUCCESS)
10:56:29.643 --T-> fir: 1 fin: 1 seq: 0
10:56:29.643 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 24 dest: 1024 src: 1
10:56:29.644 --P-> 05 64 18 C4 00 04 01 00 5B 61
10:56:29.644 C0 C1 05 0C 01 17 01 02 03 0A F4 01 00 00 58 02 85 6B
10:56:29.644 00 00 00 FF FF
10:56:29.644 <-P-- 05 64 1A 44 01 00 00 04 A6 F0
10:56:29.644 C0 C1 81 90 00 0C 01 17 01 02 03 0A F4 01 00 00 40 C8
10:56:29.644 58 02 00 00 00 37 F8
10:56:29.644 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 26 dest: 1 src: 1024
10:56:29.644 <-T-- fir: 1 fin: 1 seq: 0
10:56:29.644 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01 IIN(DeviceRestart, NeedTime)
10:56:29.644 g12v1, 1-Byte Count and Index, count: 1
10:56:29.644 [2] - code: 0x03 (LATCH_ON, NUL) count: 10 onTime: 500 offTime: 600 status: 0 (SUCCESS)
10:56:29.645 step: 5
10:56:29.645 - Check that binary control point 2 operate
10:56:29.645 [PLG] Binary output 2 did operate
10:56:29.645 step: 6
10:56:29.645 - Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02
10:56:29.645 - g12v1, 1-Byte Count and Index, count: 1
10:56:29.645 - [2] - code: 0x04 (LATCH_OFF, NUL) count: 10 onTime: 500 offTime: 600 status: 0 (SUCCESS)
10:56:29.645 - Read a single fragment response w/ sequence(0x02)
10:56:29.645 - Verify the response contains the exact object header:
10:56:29.645 - g12v1, 1-Byte Count and Index, count: 1
10:56:29.645 - [2] - code: 0x04 (LATCH_OFF, NUL) count: 10 onTime: 500 offTime: 600 status: 0 (SUCCESS)
10:56:29.645 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:56:29.645 --A-> Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02
10:56:29.645 g12v1, 1-Byte Count and Index, count: 1
10:56:29.645 [2] - code: 0x04 (LATCH_OFF, NUL) count: 10 onTime: 500 offTime: 600 status: 0 (SUCCESS)
10:56:29.645 --T-> fir: 1 fin: 1 seq: 0
10:56:29.645 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 24 dest: 1024 src: 1
10:56:29.645 --P-> 05 64 18 C4 00 04 01 00 5B 61
10:56:29.645 C0 C2 05 0C 01 17 01 02 04 0A F4 01 00 00 58 02 D3 BB
10:56:29.645 00 00 00 FF FF
10:56:29.645 <-P-- 05 64 1A 44 01 00 00 04 A6 F0
10:56:29.645 C1 C2 81 90 00 0C 01 17 01 02 04 0A F4 01 00 00 DA E9
10:56:29.645 58 02 00 00 00 37 F8
10:56:29.645 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 26 dest: 1 src: 1024
10:56:29.645 <-T-- fir: 1 fin: 1 seq: 1
10:56:29.645 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02 IIN(DeviceRestart, NeedTime)
10:56:29.645 g12v1, 1-Byte Count and Index, count: 1
10:56:29.645 [2] - code: 0x04 (LATCH_OFF, NUL) count: 10 onTime: 500 offTime: 600 status: 0 (SUCCESS)
10:56:29.645 step: 7
10:56:29.645 - Check that binary control point 2 operate
10:56:29.645 [PLG] Binary output 2 did operate
10:56:29.645 step: 8
10:56:29.645 - DUT supports Pulse On/Close and Pulse On/Trip pair.
10:56:29.645 step: 9
10:56:29.646 - Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03
10:56:29.646 - g12v1, 1-Byte Count and Index, count: 1
10:56:29.646 - [3] - code: 0x41 (PULSE_ON, CLOSE) count: 15 onTime: 700 offTime: 800 status: 0 (SUCCESS)
10:56:29.646 - Read a single fragment response w/ sequence(0x03)
10:56:29.646 - Verify the response contains the exact object header:
10:56:29.646 - g12v1, 1-Byte Count and Index, count: 1
10:56:29.646 - [3] - code: 0x41 (PULSE_ON, CLOSE) count: 15 onTime: 700 offTime: 800 status: 0 (SUCCESS)
10:56:29.646 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:56:29.646 --A-> Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03
10:56:29.646 g12v1, 1-Byte Count and Index, count: 1
10:56:29.646 [3] - code: 0x41 (PULSE_ON, CLOSE) count: 15 onTime: 700 offTime: 800 status: 0 (SUCCESS)
10:56:29.646 --T-> fir: 1 fin: 1 seq: 0
10:56:29.646 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 24 dest: 1024 src: 1
10:56:29.646 --P-> 05 64 18 C4 00 04 01 00 5B 61
10:56:29.646 C0 C3 05 0C 01 17 01 03 41 0F BC 02 00 00 20 03 EC 14
10:56:29.646 00 00 00 FF FF
10:56:29.646 <-P-- 05 64 1A 44 01 00 00 04 A6 F0
10:56:29.646 C2 C3 81 90 00 0C 01 17 01 03 41 0F BC 02 00 00 57 2E
10:56:29.646 20 03 00 00 00 E3 ED
10:56:29.646 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 26 dest: 1 src: 1024
10:56:29.646 <-T-- fir: 1 fin: 1 seq: 2
10:56:29.646 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03 IIN(DeviceRestart, NeedTime)
10:56:29.646 g12v1, 1-Byte Count and Index, count: 1
10:56:29.646 [3] - code: 0x41 (PULSE_ON, CLOSE) count: 15 onTime: 700 offTime: 800 status: 0 (SUCCESS)
10:56:29.646 step: 10
10:56:29.646 - Check that binary control point 3 operate
10:56:29.646 [PLG] Binary output 3 did operate
10:56:29.646 step: 11
10:56:29.646 - Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04
10:56:29.646 - g12v1, 1-Byte Count and Index, count: 1
10:56:29.646 - [3] - code: 0x81 (PULSE_ON, TRIP) count: 15 onTime: 700 offTime: 800 status: 0 (SUCCESS)
10:56:29.646 - Read a single fragment response w/ sequence(0x04)
10:56:29.646 - Verify the response contains the exact object header:
10:56:29.646 - g12v1, 1-Byte Count and Index, count: 1
10:56:29.646 - [3] - code: 0x81 (PULSE_ON, TRIP) count: 15 onTime: 700 offTime: 800 status: 0 (SUCCESS)
10:56:29.646 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:56:29.646 --A-> Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04
10:56:29.646 g12v1, 1-Byte Count and Index, count: 1
10:56:29.646 [3] - code: 0x81 (PULSE_ON, TRIP) count: 15 onTime: 700 offTime: 800 status: 0 (SUCCESS)
10:56:29.646 --T-> fir: 1 fin: 1 seq: 0
10:56:29.646 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 24 dest: 1024 src: 1
10:56:29.646 --P-> 05 64 18 C4 00 04 01 00 5B 61
10:56:29.646 C0 C4 05 0C 01 17 01 03 81 0F BC 02 00 00 20 03 08 CD
10:56:29.646 00 00 00 FF FF
10:56:29.647 <-P-- 05 64 1A 44 01 00 00 04 A6 F0
10:56:29.647 C3 C4 81 90 00 0C 01 17 01 03 81 0F BC 02 00 00 14 9B
10:56:29.647 20 03 00 00 00 E3 ED
10:56:29.647 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 26 dest: 1 src: 1024
10:56:29.647 <-T-- fir: 1 fin: 1 seq: 3
10:56:29.647 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04 IIN(DeviceRestart, NeedTime)
10:56:29.647 g12v1, 1-Byte Count and Index, count: 1
10:56:29.647 [3] - code: 0x81 (PULSE_ON, TRIP) count: 15 onTime: 700 offTime: 800 status: 0 (SUCCESS)
10:56:29.647 step: 12
10:56:29.647 - Check that binary control point 3 operate
10:56:29.647 [PLG] Binary output 3 did operate
10:56:29.647 step: 13
10:56:29.647 - DUT supports both Latch On/NUL and Latch Off/NUL pair and Pulse On/Close and Pulse On/Trip pair.
10:56:29.647 step: 14
10:56:29.647 - Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x05
10:56:29.647 - g12v1, 1-Byte Count and Index, count: 1
10:56:29.647 - [4] - code: 0x03 (LATCH_ON, NUL) count: 20 onTime: 900 offTime: 1000 status: 0 (SUCCESS)
10:56:29.647 - Read a single fragment response w/ sequence(0x05)
10:56:29.647 - Verify the response contains the exact object header:
10:56:29.647 - g12v1, 1-Byte Count and Index, count: 1
10:56:29.647 - [4] - code: 0x03 (LATCH_ON, NUL) count: 20 onTime: 900 offTime: 1000 status: 0 (SUCCESS)
10:56:29.647 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:56:29.647 --A-> Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x05
10:56:29.647 g12v1, 1-Byte Count and Index, count: 1
10:56:29.647 [4] - code: 0x03 (LATCH_ON, NUL) count: 20 onTime: 900 offTime: 1000 status: 0 (SUCCESS)
10:56:29.647 --T-> fir: 1 fin: 1 seq: 0
10:56:29.647 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 24 dest: 1024 src: 1
10:56:29.647 --P-> 05 64 18 C4 00 04 01 00 5B 61
10:56:29.647 C0 C5 05 0C 01 17 01 04 03 14 84 03 00 00 E8 03 B9 8E
10:56:29.647 00 00 00 FF FF
10:56:29.648 <-P-- 05 64 1A 44 01 00 00 04 A6 F0
10:56:29.648 C4 C5 81 90 00 0C 01 17 01 04 03 14 84 03 00 00 E4 6C
10:56:29.648 E8 03 00 00 00 64 E9
10:56:29.648 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 26 dest: 1 src: 1024
10:56:29.648 <-T-- fir: 1 fin: 1 seq: 4
10:56:29.648 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x05 IIN(DeviceRestart, NeedTime)
10:56:29.648 g12v1, 1-Byte Count and Index, count: 1
10:56:29.648 [4] - code: 0x03 (LATCH_ON, NUL) count: 20 onTime: 900 offTime: 1000 status: 0 (SUCCESS)
10:56:29.648 step: 15
10:56:29.648 - Check that binary control point 4 operate
10:56:29.648 [PLG] Binary output 4 did operate
10:56:29.648 step: 16
10:56:29.648 - Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x06
10:56:29.648 - g12v1, 1-Byte Count and Index, count: 1
10:56:29.648 - [4] - code: 0x81 (PULSE_ON, TRIP) count: 20 onTime: 900 offTime: 1000 status: 0 (SUCCESS)
10:56:29.648 - Read a single fragment response w/ sequence(0x06)
10:56:29.648 - Verify the response contains the exact object header:
10:56:29.648 - g12v1, 1-Byte Count and Index, count: 1
10:56:29.648 - [4] - code: 0x81 (PULSE_ON, TRIP) count: 20 onTime: 900 offTime: 1000 status: 0 (SUCCESS)
10:56:29.648 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:56:29.648 --A-> Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x06
10:56:29.648 g12v1, 1-Byte Count and Index, count: 1
10:56:29.648 [4] - code: 0x81 (PULSE_ON, TRIP) count: 20 onTime: 900 offTime: 1000 status: 0 (SUCCESS)
10:56:29.648 --T-> fir: 1 fin: 1 seq: 0
10:56:29.648 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 24 dest: 1024 src: 1
10:56:29.648 --P-> 05 64 18 C4 00 04 01 00 5B 61
10:56:29.648 C0 C6 05 0C 01 17 01 04 81 14 84 03 00 00 E8 03 04 3F
10:56:29.648 00 00 00 FF FF
10:56:29.648 <-P-- 05 64 1A 44 01 00 00 04 A6 F0
10:56:29.648 C5 C6 81 90 00 0C 01 17 01 04 81 14 84 03 00 00 74 A4
10:56:29.648 E8 03 00 00 00 64 E9
10:56:29.648 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 26 dest: 1 src: 1024
10:56:29.648 <-T-- fir: 1 fin: 1 seq: 5
10:56:29.649 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x06 IIN(DeviceRestart, NeedTime)
10:56:29.649 g12v1, 1-Byte Count and Index, count: 1
10:56:29.649 [4] - code: 0x81 (PULSE_ON, TRIP) count: 20 onTime: 900 offTime: 1000 status: 0 (SUCCESS)
10:56:29.649 step: 17
10:56:29.649 - Check that binary control point 4 operate
10:56:29.649 [PLG] Binary output 4 did operate
10:56:29.649 step: 18
10:56:29.649 - Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x07
10:56:29.649 - g12v1, 1-Byte Count and Index, count: 1
10:56:29.649 - [4] - code: 0x41 (PULSE_ON, CLOSE) count: 20 onTime: 900 offTime: 1000 status: 0 (SUCCESS)
10:56:29.649 - Read a single fragment response w/ sequence(0x07)
10:56:29.649 - Verify the response contains the exact object header:
10:56:29.649 - g12v1, 1-Byte Count and Index, count: 1
10:56:29.649 - [4] - code: 0x41 (PULSE_ON, CLOSE) count: 20 onTime: 900 offTime: 1000 status: 0 (SUCCESS)
10:56:29.649 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:56:29.649 --A-> Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x07
10:56:29.649 g12v1, 1-Byte Count and Index, count: 1
10:56:29.649 [4] - code: 0x41 (PULSE_ON, CLOSE) count: 20 onTime: 900 offTime: 1000 status: 0 (SUCCESS)
10:56:29.649 --T-> fir: 1 fin: 1 seq: 0
10:56:29.649 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 24 dest: 1024 src: 1
10:56:29.649 --P-> 05 64 18 C4 00 04 01 00 5B 61
10:56:29.649 C0 C7 05 0C 01 17 01 04 41 14 84 03 00 00 E8 03 C9 CF
10:56:29.649 00 00 00 FF FF
10:56:29.651 <-P-- 05 64 1A 44 01 00 00 04 A6 F0
10:56:29.651 C6 C7 81 90 00 0C 01 17 01 04 41 14 84 03 00 00 06 A3
10:56:29.651 E8 03 00 00 00 64 E9
10:56:29.651 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 26 dest: 1 src: 1024
10:56:29.651 <-T-- fir: 1 fin: 1 seq: 6
10:56:29.651 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x07 IIN(DeviceRestart, NeedTime)
10:56:29.651 g12v1, 1-Byte Count and Index, count: 1
10:56:29.651 [4] - code: 0x41 (PULSE_ON, CLOSE) count: 20 onTime: 900 offTime: 1000 status: 0 (SUCCESS)
10:56:29.651 step: 19
10:56:29.651 - Check that binary control point 4 operate
10:56:29.651 [PLG] Binary output 4 did operate
10:56:29.652 step: 20
10:56:29.652 - Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x08
10:56:29.652 - g12v1, 1-Byte Count and Index, count: 1
10:56:29.652 - [4] - code: 0x04 (LATCH_OFF, NUL) count: 20 onTime: 900 offTime: 1000 status: 0 (SUCCESS)
10:56:29.652 - Read a single fragment response w/ sequence(0x08)
10:56:29.652 - Verify the response contains the exact object header:
10:56:29.652 - g12v1, 1-Byte Count and Index, count: 1
10:56:29.652 - [4] - code: 0x04 (LATCH_OFF, NUL) count: 20 onTime: 900 offTime: 1000 status: 0 (SUCCESS)
10:56:29.652 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:56:29.652 --A-> Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x08
10:56:29.652 g12v1, 1-Byte Count and Index, count: 1
10:56:29.652 [4] - code: 0x04 (LATCH_OFF, NUL) count: 20 onTime: 900 offTime: 1000 status: 0 (SUCCESS)
10:56:29.652 --T-> fir: 1 fin: 1 seq: 0
10:56:29.652 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 24 dest: 1024 src: 1
10:56:29.652 --P-> 05 64 18 C4 00 04 01 00 5B 61
10:56:29.652 C0 C8 05 0C 01 17 01 04 04 14 84 03 00 00 E8 03 8D D0
10:56:29.652 00 00 00 FF FF
10:56:29.652 <-P-- 05 64 1A 44 01 00 00 04 A6 F0
10:56:29.652 C7 C8 81 90 00 0C 01 17 01 04 04 14 84 03 00 00 04 58
10:56:29.652 E8 03 00 00 00 64 E9
10:56:29.652 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 26 dest: 1 src: 1024
10:56:29.652 <-T-- fir: 1 fin: 1 seq: 7
10:56:29.652 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x08 IIN(DeviceRestart, NeedTime)
10:56:29.652 g12v1, 1-Byte Count and Index, count: 1
10:56:29.652 [4] - code: 0x04 (LATCH_OFF, NUL) count: 20 onTime: 900 offTime: 1000 status: 0 (SUCCESS)
10:56:29.652 step: 21
10:56:29.652 - Check that binary control point 4 operate
10:56:29.652 [PLG] Binary output 4 did operate
10:56:29.652 Passed procedure: 8.2.5.2.1