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

Device under test: Step Function I/O dnp3 outstation

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