8.19.2.4 Analog Input Change, Value Return (revision 3.1r1, subset level 3)

Device under test: Step Function I/O dnp3 outstation

11:02:03.252 Running procedure: 8.19.2.4
11:02:03.255 This procedure is enabled because the following options:
11:02:03.255 - supports.analogInput == true
11:02:03.255 - supports.analogInputChangeEvents == true
11:02:03.255 - supports.analogInputReads == true
11:02:03.255 - supports.analogInputEventReads == true
11:02:03.256 step: 1
11:02:03.256 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
11:02:03.256 - g30v0, All Objects
11:02:03.256 - Read any number of valid responses beginning w/ sequence(0x01) and incrementing by 1 modulo 16
11:02:03.256 - Record the value of analog input 0
11:02:03.256 - Confirm each response that asks for a confirmation
11:02:03.256 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01
11:02:03.256 g30v0, All Objects
11:02:03.256 --T-> fir: 1 fin: 1 seq: 0
11:02:03.256 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
11:02:03.256 --P-> 05 64 0B C4 00 04 01 00 CA 8A
11:02:03.256 C0 C1 01 1E 00 06 4C 0B
11:02:03.258 <-P-- 05 64 2F 44 01 00 00 04 6C 81
11:02:03.258 C0 C1 81 90 00 1E 02 01 00 00 09 00 01 00 00 01 DF 24
11:02:03.258 00 00 01 00 00 01 00 00 01 00 00 01 00 00 01 00 DB 49
11:02:03.258 00 01 00 00 01 00 00 01 00 00 61 8D
11:02:03.258 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 47 dest: 1 src: 1024
11:02:03.258 <-T-- fir: 1 fin: 1 seq: 0
11:02:03.258 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x01 IIN(DeviceRestart, NeedTime)
11:02:03.258 g30v2, 2-Byte Start/Stop, start: 0 stop: 9
11:02:03.258 [0] - flags: 0x01 value: 0
11:02:03.258 [1] - flags: 0x01 value: 0
11:02:03.258 [2] - flags: 0x01 value: 0
11:02:03.258 [3] - flags: 0x01 value: 0
11:02:03.258 [4] - flags: 0x01 value: 0
11:02:03.258 [5] - flags: 0x01 value: 0
11:02:03.258 [6] - flags: 0x01 value: 0
11:02:03.258 [7] - flags: 0x01 value: 0
11:02:03.258 [8] - flags: 0x01 value: 0
11:02:03.258 [9] - flags: 0x01 value: 0
11:02:03.258 step: 2
11:02:03.258 - Apply a stable input of the value recorded in step 1 plus 2 (150% of the deadband, 1) to analog input 0
11:02:03.259 [PLG] Updated AI 0: value=2.0, flags=1, timestamp=1793185323259 (UNSYNCHRONIZED_TIME)
11:02:03.259 step: 3
11:02:03.259 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02
11:02:03.259 - g32v0, All Objects
11:02:03.259 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x02
11:02:03.259 g32v0, All Objects
11:02:03.259 --T-> fir: 1 fin: 1 seq: 0
11:02:03.259 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
11:02:03.259 --P-> 05 64 0B C4 00 04 01 00 CA 8A
11:02:03.259 C0 C2 01 20 00 06 64 C0
11:02:03.259 steps: 4 to 6
11:02:03.259 - Read a single fragment response w/ sequence(0x02)
11:02:03.259 - Verify that the device responds with events, of only Set(g32v1, g32v2)
11:02:03.259 - Verify that the objects are prefixed with 1-octet (qualifier 0x17) or 2-octet (qualifier 0x28) indexes
11:02:03.259 - Verify that the response has one event, of analog input 0, with the value applied in step 2
11:02:03.259 - Verify that the flags behave as the note on flags in Section 2 requires (Note 5 in 2.7, Note 6 in 3.1r1).
11:02:03.259 - Verify that an application layer confirmation is requested.
11:02:03.260 <-P-- 05 64 16 44 01 00 00 04 14 27
11:02:03.260 C1 E2 81 90 00 20 01 28 01 00 00 00 01 02 00 00 B8 DE
11:02:03.260 00 FF FF
11:02:03.260 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 22 dest: 1 src: 1024
11:02:03.260 <-T-- fir: 1 fin: 1 seq: 1
11:02:03.260 <-A-- Response(0x81) fir: 1 fin: 1 con: 1 uns: 0 seq: 0x02 IIN(DeviceRestart, NeedTime)
11:02:03.260 g32v1, 2-Byte Count and Index, count: 1
11:02:03.260 [0] - flags: 0x01 value: 2
11:02:03.260 step: 7
11:02:03.260 - Apply a stable input of the value recorded in step 1 to analog input 0
11:02:03.260 [PLG] Updated AI 0: value=0.0, flags=1, timestamp=1793185323260 (UNSYNCHRONIZED_TIME)
11:02:03.260 step: 8
11:02:03.260 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03
11:02:03.260 - g32v0, All Objects
11:02:03.260 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03
11:02:03.260 g32v0, All Objects
11:02:03.260 --T-> fir: 1 fin: 1 seq: 0
11:02:03.260 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
11:02:03.260 --P-> 05 64 0B C4 00 04 01 00 CA 8A
11:02:03.260 C0 C3 01 20 00 06 62 E3
11:02:03.260 steps: 9 to 12
11:02:03.260 - Read a single fragment response w/ sequence(0x03)
11:02:03.260 - Verify that the device responds with events, of only Set(g32v1, g32v2)
11:02:03.260 - Verify that the objects are prefixed with 1-octet (qualifier 0x17) or 2-octet (qualifier 0x28) indexes
11:02:03.260 - Verify that the response has two events of analog input 0, as the Device Profile says the DUT queues them, and nothing else, the last with the value it returned to
11:02:03.260 - Verify that the flags behave as the note on flags in Section 2 requires (Note 5 in 2.7, Note 6 in 3.1r1).
11:02:03.260 - Verify that an application layer confirmation is requested.
11:02:03.260 - Confirm each response that asks for a confirmation
11:02:03.260 <-P-- 05 64 1D 44 01 00 00 04 98 2E
11:02:03.260 C2 E3 81 90 00 20 01 28 02 00 00 00 01 02 00 00 02 5C
11:02:03.260 00 00 00 01 00 00 00 00 F9 DC
11:02:03.260 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 29 dest: 1 src: 1024
11:02:03.260 <-T-- fir: 1 fin: 1 seq: 2
11:02:03.260 <-A-- Response(0x81) fir: 1 fin: 1 con: 1 uns: 0 seq: 0x03 IIN(DeviceRestart, NeedTime)
11:02:03.260 g32v1, 2-Byte Count and Index, count: 2
11:02:03.260 [0] - flags: 0x01 value: 2
11:02:03.260 [0] - flags: 0x01 value: 0
11:02:03.260 --A-> Confirm(0x00) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x03
11:02:03.260 --T-> fir: 1 fin: 1 seq: 0
11:02:03.260 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 8 dest: 1024 src: 1
11:02:03.261 --P-> 05 64 08 C4 00 04 01 00 9A 19
11:02:03.261 C0 C3 00 98 26
11:02:03.261 step: 13
11:02:03.261 - Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04
11:02:03.261 - g32v0, All Objects
11:02:03.261 --A-> Read(0x01) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04
11:02:03.261 g32v0, All Objects
11:02:03.261 --T-> fir: 1 fin: 1 seq: 0
11:02:03.261 --L-> master: 1 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0xC4 length: 11 dest: 1024 src: 1
11:02:03.261 --P-> 05 64 0B C4 00 04 01 00 CA 8A
11:02:03.261 C0 C4 01 20 00 06 70 0A
11:02:03.261 step: 14
11:02:03.261 - Read a single fragment response w/ sequence(0x04)
11:02:03.261 - Verify that the response is empty
11:02:03.261 - Verify that the IIN field does not contain bits IIN(ParamError, ObjectUnknown, FuncNotSupported)
11:02:03.261 <-P-- 05 64 0A 44 01 00 00 04 67 88
11:02:03.261 C3 C4 81 90 00 BA 95
11:02:03.261 <-L-- master: 0 pri: 1 fcb: 0 fcv: 0 func: UNCONFIRMED_USER_DATA(0x04) 0x44 length: 10 dest: 1 src: 1024
11:02:03.261 <-T-- fir: 1 fin: 1 seq: 3
11:02:03.261 <-A-- Response(0x81) fir: 1 fin: 1 con: 0 uns: 0 seq: 0x04 IIN(DeviceRestart, NeedTime)
11:02:03.261 Passed procedure: 8.19.2.4