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

Device under test: Step Function I/O dnp3 outstation

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