8.24.2e Frozen Counters (revision 3.1r1, subset level 3)

Device under test: Step Function I/O dnp3 outstation

11:03:45.381 Running procedure: 8.24.2e
11:03:45.381 This procedure is enabled because the following options:
11:03:45.382 - supports.frozenCounter == false or (supports.frozenCounter == true and supports.frozenCounterReads == true)
11:03:45.382 step: 1
11:03:45.382 - Set every frozen counter point's flags normal: ONLINE set, all others clear
11:03:45.382 [PLG] Every frozen counter point's flags are normal
11:03:45.382 step: 2
11:03:45.382 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00
11:03:45.382 - g21v1, All Objects
11:03:45.382 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00
11:03:45.382 g21v1, All Objects
11:03:45.382 --T-> fir: 1 fin: 1 seq: 0
11:03:45.382 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
11:03:45.382 --P-> 05 64 0B C4 00 04 01 00 CA 8A
11:03:45.382 C0 C0 01 15 01 06 0C 64
11:03:45.382 steps: 3 to 7
11:03:45.382 - Read any number of valid responses beginning w/ sequence(0x00) and incrementing by 1 modulo 16
11:03:45.382 - Verify that each point comes back in a variation the request for g21v1 allows, with an 8-bit (0x00) or 16-bit (0x01) start/stop qualifier
11:03:45.382 - Verify that every point with flags reports them normal (ONLINE set, all others clear), but for the first point after its flag is set abnormal, which must come back with flags, reporting it
11:03:45.382 - Confirm each response that asks for a confirmation
11:03:45.383 <-P-- 05 64 43 44 01 00 00 04 21 09
11:03:45.383 C0 C0 81 90 00 15 01 01 00 00 09 00 01 00 00 00 A4 FB
11:03:45.383 00 01 00 00 00 00 01 00 00 00 00 01 00 00 00 00 83 71
11:03:45.383 01 00 00 00 00 01 00 00 00 00 01 00 00 00 00 01 44 27
11:03:45.383 00 00 00 00 01 00 00 00 00 01 00 00 00 00 9B 1F
11:03:45.383 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 67 dest: 1 src: 1024
11:03:45.383 <-T-- fir: 1 fin: 1 seq: 0
11:03:45.383 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00 IIN(DeviceRestart, NeedTime)
11:03:45.383 g21v1, 2-Byte Start/Stop, start: 0 stop: 9
11:03:45.383 [0] - flags: 0x01 count: 0
11:03:45.383 [1] - flags: 0x01 count: 0
11:03:45.383 [2] - flags: 0x01 count: 0
11:03:45.383 [3] - flags: 0x01 count: 0
11:03:45.383 [4] - flags: 0x01 count: 0
11:03:45.383 [5] - flags: 0x01 count: 0
11:03:45.383 [6] - flags: 0x01 count: 0
11:03:45.383 [7] - flags: 0x01 count: 0
11:03:45.383 [8] - flags: 0x01 count: 0
11:03:45.383 [9] - flags: 0x01 count: 0
11:03:45.383 step: 8
11:03:45.383 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
11:03:45.383 - g21v2, All Objects
11:03:45.383 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
11:03:45.383 g21v2, All Objects
11:03:45.383 --T-> fir: 1 fin: 1 seq: 0
11:03:45.383 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
11:03:45.383 --P-> 05 64 0B C4 00 04 01 00 CA 8A
11:03:45.383 C0 C1 01 15 02 06 A1 F7
11:03:45.383 steps: 9 to 12
11:03:45.383 - Read any number of valid responses beginning w/ sequence(0x01) and incrementing by 1 modulo 16
11:03:45.383 - Verify that each point comes back in a variation the request for g21v2 allows, with an 8-bit (0x00) or 16-bit (0x01) start/stop qualifier
11:03:45.383 - Verify that every point with flags reports them normal (ONLINE set, all others clear), but for the first point after its flag is set abnormal, which must come back with flags, reporting it
11:03:45.383 - Confirm each response that asks for a confirmation
11:03:45.384 <-P-- 05 64 2F 44 01 00 00 04 6C 81
11:03:45.384 C1 C1 81 90 00 15 02 01 00 00 09 00 01 00 00 01 B1 E6
11:03:45.384 00 00 01 00 00 01 00 00 01 00 00 01 00 00 01 00 DB 49
11:03:45.384 00 01 00 00 01 00 00 01 00 00 61 8D
11:03:45.384 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 47 dest: 1 src: 1024
11:03:45.384 <-T-- fir: 1 fin: 1 seq: 1
11:03:45.384 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01 IIN(DeviceRestart, NeedTime)
11:03:45.384 g21v2, 2-Byte Start/Stop, start: 0 stop: 9
11:03:45.384 [0] - flags: 0x01 count: 0
11:03:45.384 [1] - flags: 0x01 count: 0
11:03:45.384 [2] - flags: 0x01 count: 0
11:03:45.384 [3] - flags: 0x01 count: 0
11:03:45.384 [4] - flags: 0x01 count: 0
11:03:45.384 [5] - flags: 0x01 count: 0
11:03:45.384 [6] - flags: 0x01 count: 0
11:03:45.384 [7] - flags: 0x01 count: 0
11:03:45.384 [8] - flags: 0x01 count: 0
11:03:45.384 [9] - flags: 0x01 count: 0
11:03:45.384 step: 13
11:03:45.384 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02
11:03:45.384 - g21v9, All Objects
11:03:45.384 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02
11:03:45.384 g21v9, All Objects
11:03:45.384 --T-> fir: 1 fin: 1 seq: 0
11:03:45.384 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
11:03:45.384 --P-> 05 64 0B C4 00 04 01 00 CA 8A
11:03:45.384 C0 C2 01 15 09 06 94 4D
11:03:45.384 steps: 14 to 18
11:03:45.384 - Read any number of valid responses beginning w/ sequence(0x02) and incrementing by 1 modulo 16
11:03:45.384 - Verify that each point comes back in a variation the request for g21v9 allows, with an 8-bit (0x00) or 16-bit (0x01) start/stop qualifier
11:03:45.384 - Verify that every point with flags reports them normal (ONLINE set, all others clear), but for the first point after its flag is set abnormal, which must come back with flags, reporting it
11:03:45.384 - Confirm each response that asks for a confirmation
11:03:45.384 <-P-- 05 64 39 44 01 00 00 04 74 92
11:03:45.384 C2 C2 81 90 00 15 09 01 00 00 09 00 00 00 00 00 1B 87
11:03:45.384 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF
11:03:45.384 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF
11:03:45.384 00 00 00 00 FF FF
11:03:45.384 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 57 dest: 1 src: 1024
11:03:45.384 <-T-- fir: 1 fin: 1 seq: 2
11:03:45.384 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02 IIN(DeviceRestart, NeedTime)
11:03:45.384 g21v9, 2-Byte Start/Stop, start: 0 stop: 9
11:03:45.384 [0] - count: 0
11:03:45.384 [1] - count: 0
11:03:45.384 [2] - count: 0
11:03:45.384 [3] - count: 0
11:03:45.384 [4] - count: 0
11:03:45.384 [5] - count: 0
11:03:45.384 [6] - count: 0
11:03:45.384 [7] - count: 0
11:03:45.384 [8] - count: 0
11:03:45.384 [9] - count: 0
11:03:45.384 step: 19
11:03:45.384 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03
11:03:45.384 - g21v10, All Objects
11:03:45.384 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03
11:03:45.384 g21v10, All Objects
11:03:45.384 --T-> fir: 1 fin: 1 seq: 0
11:03:45.385 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
11:03:45.385 --P-> 05 64 0B C4 00 04 01 00 CA 8A
11:03:45.385 C0 C3 01 15 0A 06 39 DE
11:03:45.385 steps: 20 to 24
11:03:45.385 - Read any number of valid responses beginning w/ sequence(0x03) and incrementing by 1 modulo 16
11:03:45.385 - Verify that each point comes back in a variation the request for g21v10 allows, with an 8-bit (0x00) or 16-bit (0x01) start/stop qualifier
11:03:45.385 - Verify that every point with flags reports them normal (ONLINE set, all others clear), but for the first point after its flag is set abnormal, which must come back with flags, reporting it
11:03:45.385 - Confirm each response that asks for a confirmation
11:03:45.385 <-P-- 05 64 25 44 01 00 00 04 07 3D
11:03:45.385 C3 C3 81 90 00 15 0A 01 00 00 09 00 00 00 00 00 50 AC
11:03:45.385 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF
11:03:45.385 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 37 dest: 1 src: 1024
11:03:45.385 <-T-- fir: 1 fin: 1 seq: 3
11:03:45.385 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03 IIN(DeviceRestart, NeedTime)
11:03:45.385 g21v10, 2-Byte Start/Stop, start: 0 stop: 9
11:03:45.385 [0] - count: 0
11:03:45.385 [1] - count: 0
11:03:45.385 [2] - count: 0
11:03:45.385 [3] - count: 0
11:03:45.385 [4] - count: 0
11:03:45.385 [5] - count: 0
11:03:45.385 [6] - count: 0
11:03:45.385 [7] - count: 0
11:03:45.385 [8] - count: 0
11:03:45.385 [9] - count: 0
11:03:45.385 step: 25
11:03:45.385 - Set one of the flags abnormal of the first frozen counter where that's allowed
11:03:45.385 [PLG] frozen counter 0 has COMM_LOST set
11:03:45.385 step: 26
11:03:45.385 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04
11:03:45.385 - g21v1, All Objects
11:03:45.385 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04
11:03:45.385 g21v1, All Objects
11:03:45.385 --T-> fir: 1 fin: 1 seq: 0
11:03:45.385 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
11:03:45.385 --P-> 05 64 0B C4 00 04 01 00 CA 8A
11:03:45.385 C0 C4 01 15 01 06 14 E8
11:03:45.385 steps: 27 to 31
11:03:45.385 - Read any number of valid responses beginning w/ sequence(0x04) and incrementing by 1 modulo 16
11:03:45.385 - Verify that each point comes back in a variation the request for g21v1 allows, with an 8-bit (0x00) or 16-bit (0x01) start/stop qualifier
11:03:45.385 - Verify that every point with flags reports them normal (ONLINE set, all others clear), but for the first point after its flag is set abnormal, which must come back with flags, reporting it
11:03:45.385 - Confirm each response that asks for a confirmation
11:03:45.385 <-P-- 05 64 43 44 01 00 00 04 21 09
11:03:45.385 C4 C4 81 90 00 15 01 01 00 00 09 00 05 00 00 00 DF A9
11:03:45.385 00 01 00 00 00 00 01 00 00 00 00 01 00 00 00 00 83 71
11:03:45.385 01 00 00 00 00 01 00 00 00 00 01 00 00 00 00 01 44 27
11:03:45.385 00 00 00 00 01 00 00 00 00 01 00 00 00 00 9B 1F
11:03:45.385 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 67 dest: 1 src: 1024
11:03:45.385 <-T-- fir: 1 fin: 1 seq: 4
11:03:45.386 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04 IIN(DeviceRestart, NeedTime)
11:03:45.386 g21v1, 2-Byte Start/Stop, start: 0 stop: 9
11:03:45.386 [0] - flags: 0x05 count: 0
11:03:45.386 [1] - flags: 0x01 count: 0
11:03:45.386 [2] - flags: 0x01 count: 0
11:03:45.386 [3] - flags: 0x01 count: 0
11:03:45.386 [4] - flags: 0x01 count: 0
11:03:45.386 [5] - flags: 0x01 count: 0
11:03:45.386 [6] - flags: 0x01 count: 0
11:03:45.386 [7] - flags: 0x01 count: 0
11:03:45.386 [8] - flags: 0x01 count: 0
11:03:45.386 [9] - flags: 0x01 count: 0
11:03:45.386 Note on the result: with one of its flags set abnormal, frozen counter 0 came back with flags 0x05
11:03:45.386 step: 32
11:03:45.386 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x05
11:03:45.386 - g21v2, All Objects
11:03:45.386 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x05
11:03:45.386 g21v2, All Objects
11:03:45.386 --T-> fir: 1 fin: 1 seq: 0
11:03:45.386 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
11:03:45.386 --P-> 05 64 0B C4 00 04 01 00 CA 8A
11:03:45.386 C0 C5 01 15 02 06 B9 7B
11:03:45.386 steps: 33 to 37
11:03:45.386 - Read any number of valid responses beginning w/ sequence(0x05) and incrementing by 1 modulo 16
11:03:45.386 - Verify that each point comes back in a variation the request for g21v2 allows, with an 8-bit (0x00) or 16-bit (0x01) start/stop qualifier
11:03:45.386 - Verify that every point with flags reports them normal (ONLINE set, all others clear), but for the first point after its flag is set abnormal, which must come back with flags, reporting it
11:03:45.386 - Confirm each response that asks for a confirmation
11:03:45.386 <-P-- 05 64 2F 44 01 00 00 04 6C 81
11:03:45.386 C5 C5 81 90 00 15 02 01 00 00 09 00 05 00 00 01 CA B4
11:03:45.386 00 00 01 00 00 01 00 00 01 00 00 01 00 00 01 00 DB 49
11:03:45.386 00 01 00 00 01 00 00 01 00 00 61 8D
11:03:45.386 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 47 dest: 1 src: 1024
11:03:45.386 <-T-- fir: 1 fin: 1 seq: 5
11:03:45.386 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x05 IIN(DeviceRestart, NeedTime)
11:03:45.386 g21v2, 2-Byte Start/Stop, start: 0 stop: 9
11:03:45.386 [0] - flags: 0x05 count: 0
11:03:45.386 [1] - flags: 0x01 count: 0
11:03:45.386 [2] - flags: 0x01 count: 0
11:03:45.386 [3] - flags: 0x01 count: 0
11:03:45.386 [4] - flags: 0x01 count: 0
11:03:45.386 [5] - flags: 0x01 count: 0
11:03:45.386 [6] - flags: 0x01 count: 0
11:03:45.386 [7] - flags: 0x01 count: 0
11:03:45.386 [8] - flags: 0x01 count: 0
11:03:45.386 [9] - flags: 0x01 count: 0
11:03:45.386 step: 38
11:03:45.386 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x06
11:03:45.386 - g21v9, All Objects
11:03:45.386 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x06
11:03:45.386 g21v9, All Objects
11:03:45.386 --T-> fir: 1 fin: 1 seq: 0
11:03:45.386 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
11:03:45.386 --P-> 05 64 0B C4 00 04 01 00 CA 8A
11:03:45.386 C0 C6 01 15 09 06 8C C1
11:03:45.386 steps: 39 to 42
11:03:45.386 - Read any number of valid responses beginning w/ sequence(0x06) and incrementing by 1 modulo 16
11:03:45.386 - Verify that each point comes back in a variation the request for g21v9 allows, with an 8-bit (0x00) or 16-bit (0x01) start/stop qualifier
11:03:45.386 - Verify that every point with flags reports them normal (ONLINE set, all others clear), but for the first point after its flag is set abnormal, which must come back with flags, reporting it
11:03:45.386 - Confirm each response that asks for a confirmation
11:03:45.387 <-P-- 05 64 41 44 01 00 00 04 96 2F
11:03:45.387 C6 C6 81 90 00 15 01 01 00 00 00 00 05 00 00 00 CC C1
11:03:45.387 00 15 09 01 01 00 09 00 00 00 00 00 00 00 00 00 D9 6A
11:03:45.387 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF
11:03:45.387 00 00 00 00 00 00 00 00 00 00 00 00 FF FF
11:03:45.387 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 65 dest: 1 src: 1024
11:03:45.387 <-T-- fir: 1 fin: 1 seq: 6
11:03:45.387 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x06 IIN(DeviceRestart, NeedTime)
11:03:45.387 g21v1, 2-Byte Start/Stop, start: 0 stop: 0
11:03:45.387 [0] - flags: 0x05 count: 0
11:03:45.387 g21v9, 2-Byte Start/Stop, start: 1 stop: 9
11:03:45.387 [1] - count: 0
11:03:45.387 [2] - count: 0
11:03:45.387 [3] - count: 0
11:03:45.387 [4] - count: 0
11:03:45.387 [5] - count: 0
11:03:45.387 [6] - count: 0
11:03:45.387 [7] - count: 0
11:03:45.387 [8] - count: 0
11:03:45.387 [9] - count: 0
11:03:45.387 step: 43
11:03:45.387 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x07
11:03:45.387 - g21v10, All Objects
11:03:45.387 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x07
11:03:45.387 g21v10, All Objects
11:03:45.389 --T-> fir: 1 fin: 1 seq: 0
11:03:45.389 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
11:03:45.389 --P-> 05 64 0B C4 00 04 01 00 CA 8A
11:03:45.389 C0 C7 01 15 0A 06 21 52
11:03:45.390 steps: 44 to 48
11:03:45.390 - Read any number of valid responses beginning w/ sequence(0x07) and incrementing by 1 modulo 16
11:03:45.390 - Verify that each point comes back in a variation the request for g21v10 allows, with an 8-bit (0x00) or 16-bit (0x01) start/stop qualifier
11:03:45.390 - Verify that every point with flags reports them normal (ONLINE set, all others clear), but for the first point after its flag is set abnormal, which must come back with flags, reporting it
11:03:45.390 - Confirm each response that asks for a confirmation
11:03:45.390 <-P-- 05 64 2D 44 01 00 00 04 DB A7
11:03:45.390 C7 C7 81 90 00 15 02 01 00 00 00 00 05 00 00 15 CA B7
11:03:45.390 0A 01 01 00 09 00 00 00 00 00 00 00 00 00 00 00 54 E6
11:03:45.390 00 00 00 00 00 00 00 00 FF FF
11:03:45.390 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 45 dest: 1 src: 1024
11:03:45.390 <-T-- fir: 1 fin: 1 seq: 7
11:03:45.390 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x07 IIN(DeviceRestart, NeedTime)
11:03:45.390 g21v2, 2-Byte Start/Stop, start: 0 stop: 0
11:03:45.390 [0] - flags: 0x05 count: 0
11:03:45.390 g21v10, 2-Byte Start/Stop, start: 1 stop: 9
11:03:45.390 [1] - count: 0
11:03:45.390 [2] - count: 0
11:03:45.390 [3] - count: 0
11:03:45.390 [4] - count: 0
11:03:45.390 [5] - count: 0
11:03:45.390 [6] - count: 0
11:03:45.390 [7] - count: 0
11:03:45.390 [8] - count: 0
11:03:45.390 [9] - count: 0
11:03:45.390 Passed procedure: 8.24.2e
11:03:45.390 restore
11:03:45.390 - Set every frozen counter point's flags normal: ONLINE set, all others clear
11:03:45.390 [PLG] Every frozen counter point's flags are normal