8.4.4.2 Test Procedure (revision 2.7, subset level 2)

Device under test: Step Function I/O dnp3 outstation

10:56:56.710 Running procedure: 8.4.4.2
10:56:56.711 This procedure is enabled because the following options:
10:56:56.711 - supports.analogOutput.commands == true
10:56:56.711 step: 1
10:56:56.711 - Device supports up to 4 command objects in a single request
10:56:56.711 step: 2
10:56:56.711 - Sending 4 commands
10:56:56.711 - Select(0x03) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00
10:56:56.711 - g41v2, 2-Byte Count and Index, count: 4
10:56:56.711 - [10] - value: 10 status: 0 (SUCCESS)
10:56:56.711 - [11] - value: 10 status: 0 (SUCCESS)
10:56:56.711 - [12] - value: 10 status: 0 (SUCCESS)
10:56:56.711 - [13] - value: 10 status: 0 (SUCCESS)
10:56:56.711 --A-> Select(0x03) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00
10:56:56.711 g41v2, 2-Byte Count and Index, count: 4
10:56:56.711 [10] - value: 10 status: 0 (SUCCESS)
10:56:56.711 [11] - value: 10 status: 0 (SUCCESS)
10:56:56.711 [12] - value: 10 status: 0 (SUCCESS)
10:56:56.711 [13] - value: 10 status: 0 (SUCCESS)
10:56:56.711 --T-> fir: 1 fin: 1 seq: 0
10:56:56.711 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 33 dest: 1024 src: 1
10:56:56.712 --P-> 05 64 21 C4 00 04 01 00 23 C7
10:56:56.712 C0 C0 03 29 02 28 04 00 0A 00 0A 00 00 0B 00 0A 75 98
10:56:56.712 00 00 0C 00 0A 00 00 0D 00 0A 00 00 D0 44
10:56:56.712 step: 3
10:56:56.712 - Read a single fragment response w/ sequence(0x00)
10:56:56.712 - Verify the response contains the exact object header:
10:56:56.712 - g41v2, 2-Byte Count and Index, count: 4
10:56:56.712 - [10] - value: 10 status: 0 (SUCCESS)
10:56:56.712 - [11] - value: 10 status: 0 (SUCCESS)
10:56:56.712 - [12] - value: 10 status: 0 (SUCCESS)
10:56:56.712 - [13] - value: 10 status: 0 (SUCCESS)
10:56:56.712 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:56:56.712 <-P-- 05 64 23 44 01 00 00 04 DE 56
10:56:56.712 C0 C0 81 90 00 29 02 28 04 00 0A 00 0A 00 00 0B BF 79
10:56:56.712 00 0A 00 00 0C 00 0A 00 00 0D 00 0A 00 00 8C 99
10:56:56.712 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 35 dest: 1 src: 1024
10:56:56.712 <-T-- fir: 1 fin: 1 seq: 0
10:56:56.712 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00 IIN(DeviceRestart, NeedTime)
10:56:56.712 g41v2, 2-Byte Count and Index, count: 4
10:56:56.712 [10] - value: 10 status: 0 (SUCCESS)
10:56:56.712 [11] - value: 10 status: 0 (SUCCESS)
10:56:56.712 [12] - value: 10 status: 0 (SUCCESS)
10:56:56.712 [13] - value: 10 status: 0 (SUCCESS)
10:56:56.712 step: 4
10:56:56.712 - Operate(0x04) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
10:56:56.712 - g41v2, 2-Byte Count and Index, count: 4
10:56:56.712 - [10] - value: 10 status: 0 (SUCCESS)
10:56:56.712 - [11] - value: 10 status: 0 (SUCCESS)
10:56:56.712 - [12] - value: 10 status: 0 (SUCCESS)
10:56:56.712 - [13] - value: 10 status: 0 (SUCCESS)
10:56:56.712 --A-> Operate(0x04) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
10:56:56.712 g41v2, 2-Byte Count and Index, count: 4
10:56:56.712 [10] - value: 10 status: 0 (SUCCESS)
10:56:56.712 [11] - value: 10 status: 0 (SUCCESS)
10:56:56.712 [12] - value: 10 status: 0 (SUCCESS)
10:56:56.712 [13] - value: 10 status: 0 (SUCCESS)
10:56:56.712 --T-> fir: 1 fin: 1 seq: 0
10:56:56.713 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 33 dest: 1024 src: 1
10:56:56.713 --P-> 05 64 21 C4 00 04 01 00 23 C7
10:56:56.713 C0 C1 04 29 02 28 04 00 0A 00 0A 00 00 0B 00 0A BD 4E
10:56:56.713 00 00 0C 00 0A 00 00 0D 00 0A 00 00 D0 44
10:56:56.713 step: 5
10:56:56.713 - Read a single fragment response w/ sequence(0x01)
10:56:56.713 - Verify the response contains the exact object header:
10:56:56.713 - g41v2, 2-Byte Count and Index, count: 4
10:56:56.713 - [10] - value: 10 status: 0 (SUCCESS)
10:56:56.713 - [11] - value: 10 status: 0 (SUCCESS)
10:56:56.713 - [12] - value: 10 status: 0 (SUCCESS)
10:56:56.713 - [13] - value: 10 status: 0 (SUCCESS)
10:56:56.713 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:56:56.713 <-P-- 05 64 23 44 01 00 00 04 DE 56
10:56:56.713 C1 C1 81 92 00 29 02 28 04 00 0A 00 0A 00 00 0B 5D E4
10:56:56.713 00 0A 00 00 0C 00 0A 00 00 0D 00 0A 00 00 8C 99
10:56:56.713 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 35 dest: 1 src: 1024
10:56:56.713 <-T-- fir: 1 fin: 1 seq: 1
10:56:56.713 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01 IIN(DeviceRestart, NeedTime, Class1Events)
10:56:56.713 g41v2, 2-Byte Count and Index, count: 4
10:56:56.713 [10] - value: 10 status: 0 (SUCCESS)
10:56:56.713 [11] - value: 10 status: 0 (SUCCESS)
10:56:56.713 [12] - value: 10 status: 0 (SUCCESS)
10:56:56.713 [13] - value: 10 status: 0 (SUCCESS)
10:56:56.713 step: 6
10:56:56.713 - Check that analog control point 10 operate
10:56:56.713 - Check that analog control point 11 operate
10:56:56.713 - Check that analog control point 12 operate
10:56:56.713 - Check that analog control point 13 operate
10:56:56.713 [PLG] Analog output 10 did operate
10:56:56.713 [PLG] Analog output 11 did operate
10:56:56.713 [PLG] Analog output 12 did operate
10:56:56.713 [PLG] Analog output 13 did operate
10:56:56.713 step: 7
10:56:56.713 - number of installed points > max commands per request
10:56:56.713 step: 8
10:56:56.713 - Select(0x03) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02
10:56:56.713 - g41v2, 2-Byte Count and Index, count: 5
10:56:56.713 - [10] - value: 10 status: 0 (SUCCESS)
10:56:56.713 - [11] - value: 10 status: 0 (SUCCESS)
10:56:56.713 - [12] - value: 10 status: 0 (SUCCESS)
10:56:56.713 - [13] - value: 10 status: 0 (SUCCESS)
10:56:56.713 - [19] - value: 10 status: 0 (SUCCESS)
10:56:56.714 --A-> Select(0x03) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02
10:56:56.714 g41v2, 2-Byte Count and Index, count: 5
10:56:56.714 [10] - value: 10 status: 0 (SUCCESS)
10:56:56.714 [11] - value: 10 status: 0 (SUCCESS)
10:56:56.714 [12] - value: 10 status: 0 (SUCCESS)
10:56:56.714 [13] - value: 10 status: 0 (SUCCESS)
10:56:56.714 [19] - value: 10 status: 0 (SUCCESS)
10:56:56.714 --T-> fir: 1 fin: 1 seq: 0
10:56:56.714 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 38 dest: 1024 src: 1
10:56:56.714 --P-> 05 64 26 C4 00 04 01 00 1D 19
10:56:56.714 C0 C2 03 29 02 28 05 00 0A 00 0A 00 00 0B 00 0A 27 87
10:56:56.714 00 00 0C 00 0A 00 00 0D 00 0A 00 00 13 00 0A 00 47 82
10:56:56.714 00 FF FF
10:56:56.714 step: 9
10:56:56.714 - Read a single fragment response w/ sequence(0x02)
10:56:56.714 - Verify the response contains the exact object header:
10:56:56.714 - g41v2, 2-Byte Count and Index, count: 5
10:56:56.714 - [10] - value: 10 status: 0 (SUCCESS)
10:56:56.714 - [11] - value: 10 status: 0 (SUCCESS)
10:56:56.714 - [12] - value: 10 status: 0 (SUCCESS)
10:56:56.714 - [13] - value: 10 status: 0 (SUCCESS)
10:56:56.714 - [19] - value: 10 status: 8 (TOO_MANY_OPS)
10:56:56.714 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:56:56.714 <-P-- 05 64 28 44 01 00 00 04 52 5F
10:56:56.714 C2 C2 81 92 00 29 02 28 05 00 0A 00 0A 00 00 0B F3 96
10:56:56.714 00 0A 00 00 0C 00 0A 00 00 0D 00 0A 00 00 13 00 C8 68
10:56:56.714 0A 00 08 C6 FE
10:56:56.714 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 40 dest: 1 src: 1024
10:56:56.714 <-T-- fir: 1 fin: 1 seq: 2
10:56:56.714 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02 IIN(DeviceRestart, NeedTime, Class1Events)
10:56:56.714 g41v2, 2-Byte Count and Index, count: 5
10:56:56.714 [10] - value: 10 status: 0 (SUCCESS)
10:56:56.714 [11] - value: 10 status: 0 (SUCCESS)
10:56:56.714 [12] - value: 10 status: 0 (SUCCESS)
10:56:56.714 [13] - value: 10 status: 0 (SUCCESS)
10:56:56.714 [19] - value: 10 status: 8 (TOO_MANY_OPS)
10:56:56.714 step: 10
10:56:56.714 - Devices that support control operations must support direct operate
10:56:56.714 step: 11
10:56:56.714 - Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03
10:56:56.714 - g41v2, 2-Byte Count and Index, count: 5
10:56:56.714 - [10] - value: 10 status: 0 (SUCCESS)
10:56:56.714 - [11] - value: 10 status: 0 (SUCCESS)
10:56:56.714 - [12] - value: 10 status: 0 (SUCCESS)
10:56:56.714 - [13] - value: 10 status: 0 (SUCCESS)
10:56:56.714 - [19] - value: 10 status: 0 (SUCCESS)
10:56:56.715 --A-> Direct Operate(0x05) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03
10:56:56.715 g41v2, 2-Byte Count and Index, count: 5
10:56:56.715 [10] - value: 10 status: 0 (SUCCESS)
10:56:56.715 [11] - value: 10 status: 0 (SUCCESS)
10:56:56.715 [12] - value: 10 status: 0 (SUCCESS)
10:56:56.715 [13] - value: 10 status: 0 (SUCCESS)
10:56:56.715 [19] - value: 10 status: 0 (SUCCESS)
10:56:56.715 --T-> fir: 1 fin: 1 seq: 0
10:56:56.715 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 38 dest: 1024 src: 1
10:56:56.715 --P-> 05 64 26 C4 00 04 01 00 1D 19
10:56:56.715 C0 C3 05 29 02 28 05 00 0A 00 0A 00 00 0B 00 0A 1F 6F
10:56:56.715 00 00 0C 00 0A 00 00 0D 00 0A 00 00 13 00 0A 00 47 82
10:56:56.715 00 FF FF
10:56:56.715 step: 12
10:56:56.715 - Read a single fragment response w/ sequence(0x03)
10:56:56.715 - Verify the response contains the exact object header:
10:56:56.715 - g41v2, 2-Byte Count and Index, count: 5
10:56:56.715 - [10] - value: 10 status: 0 (SUCCESS)
10:56:56.715 - [11] - value: 10 status: 0 (SUCCESS)
10:56:56.715 - [12] - value: 10 status: 0 (SUCCESS)
10:56:56.715 - [13] - value: 10 status: 0 (SUCCESS)
10:56:56.715 - [19] - value: 10 status: 8 (TOO_MANY_OPS)
10:56:56.715 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
10:56:56.715 - Check that analog control point 10 operate
10:56:56.715 - Check that analog control point 11 operate
10:56:56.715 - Check that analog control point 12 operate
10:56:56.715 - Check that analog control point 13 operate
10:56:56.715 - Not verified by this tool: that the last point, refused with status 8, didn't operate
10:56:56.715 <-P-- 05 64 28 44 01 00 00 04 52 5F
10:56:56.715 C3 C3 81 92 00 29 02 28 05 00 0A 00 0A 00 00 0B 67 B5
10:56:56.715 00 0A 00 00 0C 00 0A 00 00 0D 00 0A 00 00 13 00 C8 68
10:56:56.715 0A 00 08 C6 FE
10:56:56.715 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 40 dest: 1 src: 1024
10:56:56.715 <-T-- fir: 1 fin: 1 seq: 3
10:56:56.717 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03 IIN(DeviceRestart, NeedTime, Class1Events)
10:56:56.717 g41v2, 2-Byte Count and Index, count: 5
10:56:56.717 [10] - value: 10 status: 0 (SUCCESS)
10:56:56.717 [11] - value: 10 status: 0 (SUCCESS)
10:56:56.717 [12] - value: 10 status: 0 (SUCCESS)
10:56:56.717 [13] - value: 10 status: 0 (SUCCESS)
10:56:56.717 [19] - value: 10 status: 8 (TOO_MANY_OPS)
10:56:56.717 [PLG] Analog output 10 did operate
10:56:56.717 [PLG] Analog output 11 did operate
10:56:56.717 [PLG] Analog output 12 did operate
10:56:56.717 [PLG] Analog output 13 did operate
10:56:56.717 step: 13
10:56:56.717 - Select(0x03) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04
10:56:56.717 - g41v2, 2-Byte Count and Index, count: 1
10:56:56.717 - [0] - value: 10 status: 0 (SUCCESS)
10:56:56.717 - g41v2, 2-Byte Count and Index, count: 1
10:56:56.717 - [65535] - value: 10 status: 0 (SUCCESS)
10:56:56.718 --A-> Select(0x03) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04
10:56:56.718 g41v2, 2-Byte Count and Index, count: 1
10:56:56.718 [0] - value: 10 status: 0 (SUCCESS)
10:56:56.718 g41v2, 2-Byte Count and Index, count: 1
10:56:56.718 [65535] - value: 10 status: 0 (SUCCESS)
10:56:56.718 --T-> fir: 1 fin: 1 seq: 0
10:56:56.718 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 28 dest: 1024 src: 1
10:56:56.718 --P-> 05 64 1C C4 00 04 01 00 35 2C
10:56:56.718 C0 C4 03 29 02 28 01 00 00 00 0A 00 00 29 02 28 B4 65
10:56:56.718 01 00 FF FF 0A 00 00 90 8C
10:56:56.718 step: 14
10:56:56.718 - Read a single fragment response w/ sequence(0x04)
10:56:56.718 - Verify that the IIN field contains IIN(ParamError)
10:56:56.718 - Verify the response contains the exact object headers:
10:56:56.718 - g41v2, 2-Byte Count and Index, count: 1
10:56:56.718 - [0] - value: 10 status: 0 (SUCCESS)
10:56:56.718 - g41v2, 2-Byte Count and Index, count: 1
10:56:56.718 - [65535] - value: 10 status: 4 (NOT_SUPPORTED)
10:56:56.718 <-P-- 05 64 1E 44 01 00 00 04 C8 BD
10:56:56.718 C4 C4 81 92 04 29 02 28 01 00 00 00 0A 00 00 29 AC 9A
10:56:56.718 02 28 01 00 FF FF 0A 00 04 31 4D
10:56:56.718 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 30 dest: 1 src: 1024
10:56:56.718 <-T-- fir: 1 fin: 1 seq: 4
10:56:56.718 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04 IIN(DeviceRestart, NeedTime, Class1Events, ParamError)
10:56:56.718 g41v2, 2-Byte Count and Index, count: 1
10:56:56.718 [0] - value: 10 status: 0 (SUCCESS)
10:56:56.718 g41v2, 2-Byte Count and Index, count: 1
10:56:56.718 [65535] - value: 10 status: 4 (NOT_SUPPORTED)
10:56:56.718 Passed procedure: 8.4.4.2