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

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