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

Device under test: Step Function I/O dnp3 outstation

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