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

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