8.24.2d Counters (revision 3.1r1, subset level 3)

Device under test: Step Function I/O dnp3 outstation

05:31:58.154 Running procedure: 8.24.2d
05:31:58.156 This procedure is enabled because the following options:
05:31:58.156 - supports.counter == false or (supports.counter == true and supports.counterReads == true)
05:31:58.156 step: 1
05:31:58.156 - Set every counter point's flags normal: ONLINE set, all others clear
05:31:58.156 [PLG] Every counter point's flags are normal
05:31:58.156 step: 2
05:31:58.156 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00
05:31:58.156 - g20v1, All Objects
05:31:58.156 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00
05:31:58.156 g20v1, All Objects
05:31:58.157 --T-> fir: 1 fin: 1 seq: 0
05:31:58.157 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
05:31:58.157 --P-> 05 64 0B C4 00 04 01 00 CA 8A
05:31:58.157 C0 C0 01 14 01 06 B4 7D
05:31:58.157 steps: 3 to 8
05:31:58.157 - Read any number of valid responses beginning w/ sequence(0x00) and incrementing by 1 modulo 16
05:31:58.157 - Verify that each point comes back in a variation the request for g20v1 allows, with an 8-bit (0x00) or 16-bit (0x01) start/stop qualifier
05:31:58.157 - 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.157 - Confirm each response that asks for a confirmation
05:31:58.157 <-P-- 05 64 43 44 01 00 00 04 21 09
05:31:58.157 C0 C0 81 90 00 14 01 01 00 00 09 00 01 00 00 00 2A ED
05:31:58.157 00 01 00 00 00 00 01 00 00 00 00 01 00 00 00 00 83 71
05:31:58.157 01 00 00 00 00 01 00 00 00 00 01 00 00 00 00 01 44 27
05:31:58.157 00 00 00 00 01 00 00 00 00 01 00 00 00 00 9B 1F
05:31:58.157 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 67 dest: 1 src: 1024
05:31:58.157 <-T-- fir: 1 fin: 1 seq: 0
05:31:58.157 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00 IIN(DeviceRestart, NeedTime)
05:31:58.157 g20v1, 2-Byte Start/Stop, start: 0 stop: 9
05:31:58.157 [0] - flags: 0x01 count: 0
05:31:58.157 [1] - flags: 0x01 count: 0
05:31:58.157 [2] - flags: 0x01 count: 0
05:31:58.157 [3] - flags: 0x01 count: 0
05:31:58.157 [4] - flags: 0x01 count: 0
05:31:58.157 [5] - flags: 0x01 count: 0
05:31:58.157 [6] - flags: 0x01 count: 0
05:31:58.157 [7] - flags: 0x01 count: 0
05:31:58.157 [8] - flags: 0x01 count: 0
05:31:58.157 [9] - flags: 0x01 count: 0
05:31:58.158 step: 9
05:31:58.158 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
05:31:58.158 - g20v2, All Objects
05:31:58.158 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
05:31:58.158 g20v2, All Objects
05:31:58.158 --T-> fir: 1 fin: 1 seq: 0
05:31:58.158 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
05:31:58.158 --P-> 05 64 0B C4 00 04 01 00 CA 8A
05:31:58.158 C0 C1 01 14 02 06 19 EE
05:31:58.158 steps: 10 to 14
05:31:58.158 - Read any number of valid responses beginning w/ sequence(0x01) and incrementing by 1 modulo 16
05:31:58.158 - Verify that each point comes back in a variation the request for g20v2 allows, with an 8-bit (0x00) or 16-bit (0x01) start/stop qualifier
05:31:58.158 - 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.158 - Confirm each response that asks for a confirmation
05:31:58.158 <-P-- 05 64 2F 44 01 00 00 04 6C 81
05:31:58.158 C1 C1 81 90 00 14 02 01 00 00 09 00 01 00 00 01 3F F0
05:31:58.158 00 00 01 00 00 01 00 00 01 00 00 01 00 00 01 00 DB 49
05:31:58.158 00 01 00 00 01 00 00 01 00 00 61 8D
05:31:58.158 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 47 dest: 1 src: 1024
05:31:58.158 <-T-- fir: 1 fin: 1 seq: 1
05:31:58.158 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01 IIN(DeviceRestart, NeedTime)
05:31:58.158 g20v2, 2-Byte Start/Stop, start: 0 stop: 9
05:31:58.158 [0] - flags: 0x01 count: 0
05:31:58.158 [1] - flags: 0x01 count: 0
05:31:58.158 [2] - flags: 0x01 count: 0
05:31:58.158 [3] - flags: 0x01 count: 0
05:31:58.158 [4] - flags: 0x01 count: 0
05:31:58.158 [5] - flags: 0x01 count: 0
05:31:58.158 [6] - flags: 0x01 count: 0
05:31:58.158 [7] - flags: 0x01 count: 0
05:31:58.158 [8] - flags: 0x01 count: 0
05:31:58.158 [9] - flags: 0x01 count: 0
05:31:58.159 step: 15
05:31:58.159 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02
05:31:58.159 - g20v5, All Objects
05:31:58.159 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02
05:31:58.159 g20v5, All Objects
05:31:58.159 --T-> fir: 1 fin: 1 seq: 0
05:31:58.159 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
05:31:58.159 --P-> 05 64 0B C4 00 04 01 00 CA 8A
05:31:58.159 C0 C2 01 14 05 06 72 0C
05:31:58.159 steps: 16 to 20
05:31:58.159 - Read any number of valid responses beginning w/ sequence(0x02) and incrementing by 1 modulo 16
05:31:58.159 - Verify that each point comes back in a variation the request for g20v5 allows, with an 8-bit (0x00) or 16-bit (0x01) start/stop qualifier
05:31:58.159 - 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.159 - Confirm each response that asks for a confirmation
05:31:58.159 <-P-- 05 64 39 44 01 00 00 04 74 92
05:31:58.159 C2 C2 81 90 00 14 05 01 00 00 09 00 00 00 00 00 E9 B2
05:31:58.159 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF
05:31:58.159 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF
05:31:58.159 00 00 00 00 FF FF
05:31:58.159 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 57 dest: 1 src: 1024
05:31:58.159 <-T-- fir: 1 fin: 1 seq: 2
05:31:58.159 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02 IIN(DeviceRestart, NeedTime)
05:31:58.159 g20v5, 2-Byte Start/Stop, start: 0 stop: 9
05:31:58.159 [0] - count: 0
05:31:58.159 [1] - count: 0
05:31:58.159 [2] - count: 0
05:31:58.159 [3] - count: 0
05:31:58.159 [4] - count: 0
05:31:58.159 [5] - count: 0
05:31:58.159 [6] - count: 0
05:31:58.159 [7] - count: 0
05:31:58.159 [8] - count: 0
05:31:58.159 [9] - count: 0
05:31:58.160 step: 21
05:31:58.160 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03
05:31:58.160 - g20v6, All Objects
05:31:58.160 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03
05:31:58.160 g20v6, All Objects
05:31:58.160 --T-> fir: 1 fin: 1 seq: 0
05:31:58.160 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
05:31:58.160 --P-> 05 64 0B C4 00 04 01 00 CA 8A
05:31:58.160 C0 C3 01 14 06 06 DF 9F
05:31:58.160 steps: 22 to 25
05:31:58.160 - Read any number of valid responses beginning w/ sequence(0x03) and incrementing by 1 modulo 16
05:31:58.160 - Verify that each point comes back in a variation the request for g20v6 allows
05:31:58.160 - 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.160 - Confirm each response that asks for a confirmation
05:31:58.160 <-P-- 05 64 25 44 01 00 00 04 07 3D
05:31:58.160 C3 C3 81 90 00 14 06 01 00 00 09 00 00 00 00 00 A2 99
05:31:58.160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF
05:31:58.160 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 37 dest: 1 src: 1024
05:31:58.160 <-T-- fir: 1 fin: 1 seq: 3
05:31:58.160 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03 IIN(DeviceRestart, NeedTime)
05:31:58.160 g20v6, 2-Byte Start/Stop, start: 0 stop: 9
05:31:58.160 [0] - count: 0
05:31:58.160 [1] - count: 0
05:31:58.160 [2] - count: 0
05:31:58.160 [3] - count: 0
05:31:58.160 [4] - count: 0
05:31:58.160 [5] - count: 0
05:31:58.160 [6] - count: 0
05:31:58.160 [7] - count: 0
05:31:58.160 [8] - count: 0
05:31:58.160 [9] - count: 0
05:31:58.161 step: 26
05:31:58.161 - Set one of the flags abnormal of the first counter where that's allowed
05:31:58.161 [PLG] counter 0 has COMM_LOST set
05:31:58.161 step: 27
05:31:58.161 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04
05:31:58.161 - g20v1, All Objects
05:31:58.161 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04
05:31:58.161 g20v1, All Objects
05:31:58.161 --T-> fir: 1 fin: 1 seq: 0
05:31:58.161 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
05:31:58.161 --P-> 05 64 0B C4 00 04 01 00 CA 8A
05:31:58.161 C0 C4 01 14 01 06 AC F1
05:31:58.161 steps: 28 to 31
05:31:58.161 - Read any number of valid responses beginning w/ sequence(0x04) and incrementing by 1 modulo 16
05:31:58.161 - Verify that each point comes back in a variation the request for g20v1 allows, with an 8-bit (0x00) or 16-bit (0x01) start/stop qualifier
05:31:58.161 - 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.161 - Confirm each response that asks for a confirmation
05:31:58.161 <-P-- 05 64 43 44 01 00 00 04 21 09
05:31:58.161 C4 C4 81 90 00 14 01 01 00 00 09 00 05 00 00 00 51 BF
05:31:58.161 00 01 00 00 00 00 01 00 00 00 00 01 00 00 00 00 83 71
05:31:58.161 01 00 00 00 00 01 00 00 00 00 01 00 00 00 00 01 44 27
05:31:58.161 00 00 00 00 01 00 00 00 00 01 00 00 00 00 9B 1F
05:31:58.161 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 67 dest: 1 src: 1024
05:31:58.161 <-T-- fir: 1 fin: 1 seq: 4
05:31:58.161 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04 IIN(DeviceRestart, NeedTime)
05:31:58.161 g20v1, 2-Byte Start/Stop, start: 0 stop: 9
05:31:58.161 [0] - flags: 0x05 count: 0
05:31:58.161 [1] - flags: 0x01 count: 0
05:31:58.161 [2] - flags: 0x01 count: 0
05:31:58.161 [3] - flags: 0x01 count: 0
05:31:58.161 [4] - flags: 0x01 count: 0
05:31:58.161 [5] - flags: 0x01 count: 0
05:31:58.161 [6] - flags: 0x01 count: 0
05:31:58.161 [7] - flags: 0x01 count: 0
05:31:58.161 [8] - flags: 0x01 count: 0
05:31:58.161 [9] - flags: 0x01 count: 0
05:31:58.162 Note on the result: with one of its flags set abnormal, counter 0 came back with flags 0x05
05:31:58.162 step: 32
05:31:58.162 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x05
05:31:58.162 - g20v2, All Objects
05:31:58.162 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x05
05:31:58.162 g20v2, All Objects
05:31:58.162 --T-> fir: 1 fin: 1 seq: 0
05:31:58.162 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
05:31:58.162 --P-> 05 64 0B C4 00 04 01 00 CA 8A
05:31:58.162 C0 C5 01 14 02 06 01 62
05:31:58.162 steps: 33 to 36
05:31:58.162 - Read any number of valid responses beginning w/ sequence(0x05) and incrementing by 1 modulo 16
05:31:58.162 - Verify that each point comes back in a variation the request for g20v2 allows, with an 8-bit (0x00) or 16-bit (0x01) start/stop qualifier
05:31:58.162 - 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.162 - Confirm each response that asks for a confirmation
05:31:58.162 <-P-- 05 64 2F 44 01 00 00 04 6C 81
05:31:58.162 C5 C5 81 90 00 14 02 01 00 00 09 00 05 00 00 01 44 A2
05:31:58.162 00 00 01 00 00 01 00 00 01 00 00 01 00 00 01 00 DB 49
05:31:58.162 00 01 00 00 01 00 00 01 00 00 61 8D
05:31:58.162 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 47 dest: 1 src: 1024
05:31:58.162 <-T-- fir: 1 fin: 1 seq: 5
05:31:58.162 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x05 IIN(DeviceRestart, NeedTime)
05:31:58.162 g20v2, 2-Byte Start/Stop, start: 0 stop: 9
05:31:58.162 [0] - flags: 0x05 count: 0
05:31:58.162 [1] - flags: 0x01 count: 0
05:31:58.162 [2] - flags: 0x01 count: 0
05:31:58.162 [3] - flags: 0x01 count: 0
05:31:58.162 [4] - flags: 0x01 count: 0
05:31:58.162 [5] - flags: 0x01 count: 0
05:31:58.162 [6] - flags: 0x01 count: 0
05:31:58.162 [7] - flags: 0x01 count: 0
05:31:58.162 [8] - flags: 0x01 count: 0
05:31:58.162 [9] - flags: 0x01 count: 0
05:31:58.163 step: 37
05:31:58.163 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x06
05:31:58.163 - g20v5, All Objects
05:31:58.163 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x06
05:31:58.163 g20v5, All Objects
05:31:58.163 --T-> fir: 1 fin: 1 seq: 0
05:31:58.163 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
05:31:58.163 --P-> 05 64 0B C4 00 04 01 00 CA 8A
05:31:58.163 C0 C6 01 14 05 06 6A 80
05:31:58.163 steps: 38 to 41
05:31:58.163 - Read any number of valid responses beginning w/ sequence(0x06) and incrementing by 1 modulo 16
05:31:58.163 - Verify that each point comes back in a variation the request for g20v5 allows, with an 8-bit (0x00) or 16-bit (0x01) start/stop qualifier
05:31:58.163 - 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.163 - Confirm each response that asks for a confirmation
05:31:58.164 <-P-- 05 64 41 44 01 00 00 04 96 2F
05:31:58.164 C6 C6 81 90 00 14 01 01 00 00 00 00 05 00 00 00 42 D7
05:31:58.164 00 14 05 01 01 00 09 00 00 00 00 00 00 00 00 00 F8 45
05:31:58.164 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF
05:31:58.164 00 00 00 00 00 00 00 00 00 00 00 00 FF FF
05:31:58.164 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 65 dest: 1 src: 1024
05:31:58.164 <-T-- fir: 1 fin: 1 seq: 6
05:31:58.164 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x06 IIN(DeviceRestart, NeedTime)
05:31:58.164 g20v1, 2-Byte Start/Stop, start: 0 stop: 0
05:31:58.164 [0] - flags: 0x05 count: 0
05:31:58.164 g20v5, 2-Byte Start/Stop, start: 1 stop: 9
05:31:58.164 [1] - count: 0
05:31:58.164 [2] - count: 0
05:31:58.164 [3] - count: 0
05:31:58.164 [4] - count: 0
05:31:58.164 [5] - count: 0
05:31:58.164 [6] - count: 0
05:31:58.164 [7] - count: 0
05:31:58.164 [8] - count: 0
05:31:58.164 [9] - count: 0
05:31:58.164 Passed procedure: 8.24.2d
05:31:58.165 restore
05:31:58.165 - Set every counter point's flags normal: ONLINE set, all others clear
05:31:58.165 [PLG] Every counter point's flags are normal