8.2.5.2.1 Binary Output, Complementary Function Support (revision 3.1r1, subset level 3)

Device under test: Step Function I/O dnp3 outstation

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