8.24.2b Double-Bit Binary Inputs (revision 3.1r1, subset level 3)

Device under test: Step Function I/O dnp3 outstation

11:03:44.694 Running procedure: 8.24.2b
11:03:44.695 This procedure is enabled because the following options:
11:03:44.695 - supports.doubleBitInput == false or (supports.doubleBitInput == true and supports.doubleBitInputReads == true)
11:03:44.695 step: 2
11:03:44.695 - Set every double-bit binary input point's flags normal: ONLINE set, all others clear
11:03:44.695 [PLG] Every double-bit binary input point's flags are normal
11:03:44.695 step: 3
11:03:44.695 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00
11:03:44.695 - g3v1, All Objects
11:03:44.695 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00
11:03:44.695 g3v1, All Objects
11:03:44.695 --T-> fir: 1 fin: 1 seq: 0
11:03:44.695 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
11:03:44.695 --P-> 05 64 0B C4 00 04 01 00 CA 8A
11:03:44.695 C0 C0 01 03 01 06 65 E7
11:03:44.695 steps: 4 to 5
11:03:44.695 - Read any number of valid responses beginning w/ sequence(0x00) and incrementing by 1 modulo 16
11:03:44.695 - Verify that each point comes back in a variation the request for g3v1 allows
11:03:44.695 - 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:44.695 - Confirm each response that asks for a confirmation
11:03:44.697 <-P-- 05 64 14 44 01 00 00 04 A3 01
11:03:44.697 C0 C0 81 90 00 03 01 01 00 00 09 00 55 55 05 8C 49
11:03:44.697 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 20 dest: 1 src: 1024
11:03:44.697 <-T-- fir: 1 fin: 1 seq: 0
11:03:44.697 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x00 IIN(DeviceRestart, NeedTime)
11:03:44.697 g3v1, 2-Byte Start/Stop, start: 0 stop: 9
11:03:44.697 [0] - DoubleBit(1)
11:03:44.697 [1] - DoubleBit(1)
11:03:44.697 [2] - DoubleBit(1)
11:03:44.697 [3] - DoubleBit(1)
11:03:44.697 [4] - DoubleBit(1)
11:03:44.697 [5] - DoubleBit(1)
11:03:44.697 [6] - DoubleBit(1)
11:03:44.697 [7] - DoubleBit(1)
11:03:44.697 [8] - DoubleBit(1)
11:03:44.697 [9] - DoubleBit(1)
11:03:44.697 step: 6
11:03:44.697 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
11:03:44.697 - g3v2, All Objects
11:03:44.697 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
11:03:44.697 g3v2, All Objects
11:03:44.697 --T-> fir: 1 fin: 1 seq: 0
11:03:44.697 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
11:03:44.697 --P-> 05 64 0B C4 00 04 01 00 CA 8A
11:03:44.697 C0 C1 01 03 02 06 C8 74
11:03:44.697 step: 7
11:03:44.697 - Read any number of valid responses beginning w/ sequence(0x01) and incrementing by 1 modulo 16
11:03:44.697 - Verify that each point comes back in a variation the request for g3v2 allows, with an 8-bit (0x00) or 16-bit (0x01) start/stop qualifier
11:03:44.697 - 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:44.697 - Confirm each response that asks for a confirmation
11:03:44.698 <-P-- 05 64 1B 44 01 00 00 04 41 45
11:03:44.698 C1 C1 81 90 00 03 02 01 00 00 09 00 41 41 41 41 8E 74
11:03:44.698 41 41 41 41 41 41 ED C3
11:03:44.698 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 27 dest: 1 src: 1024
11:03:44.698 <-T-- fir: 1 fin: 1 seq: 1
11:03:44.698 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01 IIN(DeviceRestart, NeedTime)
11:03:44.698 g3v2, 2-Byte Start/Stop, start: 0 stop: 9
11:03:44.698 [0] - flags: 0x41
11:03:44.698 [1] - flags: 0x41
11:03:44.698 [2] - flags: 0x41
11:03:44.698 [3] - flags: 0x41
11:03:44.698 [4] - flags: 0x41
11:03:44.698 [5] - flags: 0x41
11:03:44.698 [6] - flags: 0x41
11:03:44.698 [7] - flags: 0x41
11:03:44.698 [8] - flags: 0x41
11:03:44.698 [9] - flags: 0x41
11:03:44.698 step: 8
11:03:44.698 - Set one of the flags abnormal of the first double-bit binary input where that's allowed
11:03:44.698 [PLG] double-bit binary input 0 has COMM_LOST set
11:03:44.698 step: 9
11:03:44.698 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02
11:03:44.698 - g3v1, All Objects
11:03:44.698 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02
11:03:44.698 g3v1, All Objects
11:03:44.698 --T-> fir: 1 fin: 1 seq: 0
11:03:44.698 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
11:03:44.698 --P-> 05 64 0B C4 00 04 01 00 CA 8A
11:03:44.698 C0 C2 01 03 01 06 69 A1
11:03:44.698 step: 10
11:03:44.698 - Read any number of valid responses beginning w/ sequence(0x02) and incrementing by 1 modulo 16
11:03:44.698 - Verify that each point comes back in a variation the request for g3v1 allows, with an 8-bit (0x00) or 16-bit (0x01) start/stop qualifier
11:03:44.698 - 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:44.698 - Confirm each response that asks for a confirmation
11:03:44.698 <-P-- 05 64 1C 44 01 00 00 04 7F 9B
11:03:44.698 C2 C2 81 90 00 03 02 01 00 00 00 00 45 03 01 01 48 A4
11:03:44.698 01 00 09 00 55 55 01 C5 2D
11:03:44.698 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 28 dest: 1 src: 1024
11:03:44.698 <-T-- fir: 1 fin: 1 seq: 2
11:03:44.698 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02 IIN(DeviceRestart, NeedTime)
11:03:44.698 g3v2, 2-Byte Start/Stop, start: 0 stop: 0
11:03:44.698 [0] - flags: 0x45
11:03:44.698 g3v1, 2-Byte Start/Stop, start: 1 stop: 9
11:03:44.698 [1] - DoubleBit(1)
11:03:44.698 [2] - DoubleBit(1)
11:03:44.698 [3] - DoubleBit(1)
11:03:44.698 [4] - DoubleBit(1)
11:03:44.698 [5] - DoubleBit(1)
11:03:44.698 [6] - DoubleBit(1)
11:03:44.698 [7] - DoubleBit(1)
11:03:44.698 [8] - DoubleBit(1)
11:03:44.698 [9] - DoubleBit(1)
11:03:44.699 Note on the result: with one of its flags set abnormal, double-bit binary input 0 came back with flags 0x05
11:03:44.699 step: 11
11:03:44.699 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03
11:03:44.699 - g3v2, All Objects
11:03:44.699 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03
11:03:44.699 g3v2, All Objects
11:03:44.699 --T-> fir: 1 fin: 1 seq: 0
11:03:44.699 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
11:03:44.699 --P-> 05 64 0B C4 00 04 01 00 CA 8A
11:03:44.699 C0 C3 01 03 02 06 C4 32
11:03:44.700 step: 12
11:03:44.700 - Read any number of valid responses beginning w/ sequence(0x03) and incrementing by 1 modulo 16
11:03:44.700 - Verify that each point comes back in a variation the request for g3v2 allows
11:03:44.700 - 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:44.700 - Confirm each response that asks for a confirmation
11:03:44.700 <-P-- 05 64 1B 44 01 00 00 04 41 45
11:03:44.700 C3 C3 81 90 00 03 02 01 00 00 09 00 45 41 41 41 8D EF
11:03:44.700 41 41 41 41 41 41 ED C3
11:03:44.700 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 27 dest: 1 src: 1024
11:03:44.700 <-T-- fir: 1 fin: 1 seq: 3
11:03:44.700 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03 IIN(DeviceRestart, NeedTime)
11:03:44.700 g3v2, 2-Byte Start/Stop, start: 0 stop: 9
11:03:44.700 [0] - flags: 0x45
11:03:44.700 [1] - flags: 0x41
11:03:44.700 [2] - flags: 0x41
11:03:44.700 [3] - flags: 0x41
11:03:44.700 [4] - flags: 0x41
11:03:44.700 [5] - flags: 0x41
11:03:44.700 [6] - flags: 0x41
11:03:44.700 [7] - flags: 0x41
11:03:44.700 [8] - flags: 0x41
11:03:44.700 [9] - flags: 0x41
11:03:44.700 Passed procedure: 8.24.2b
11:03:44.700 restore
11:03:44.700 - Set every double-bit binary input point's flags normal: ONLINE set, all others clear
11:03:44.700 [PLG] Every double-bit binary input point's flags are normal