I'm reading the active energy (1.0.15.8.0.255) via the DLMS.XmlClient. The problem is, the value is slightly different from the value the Director reads.
Director: 110196184
XMLClient: 110202726
Any idea why this is, and which value is correct?
The conversion in my HandleReply method is as follos
Hi,
Can you post the last line from the log? You can get log pressing Ctrl + L.
They are using the same code, but I can verify this.
Do you have a load on your meter? Can that be the reason for different results?
There is a little load but to exclude the possibility that the load is the issue, I made 3 measurements. First with the Director, then with my app, and again with the Director.
director: 110201395
app: 110209098
director: 110202371
The second director value was lower than the app value even though the measurement was later. So it must be a problem with the conversion is my guess. Maybe I have to parse the hex string differently ?
The director log from this last measurement was:
9:54:05 AM
00 01 00 01 00 01 00 05 63 03 80 01 00
10:00:08 AM Initializing Network connection.
10:00:10 AM Send AARQ request.
00 01 00 01 00 01 00 38 60 36 A1 09 06 07 60 85 74 05 08 01 01 8A 02 07 80 8B 07 60 85 74 05 08 02 01 AC 0A 80 08 31 32 33 34 35 36 37 38 BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 00 1E 1D FF FF
10:00:12 AM
00 01 00 01 00 01 00 2B 61 29 A1 09 06 07 60 85 74 05 08 01 01 A2 03 02 01 00 A3 05 A1 03 02 01 00 BE 10 04 0E 08 00 06 5F 1F 04 00 00 1E 1D 05 00 00 07
10:00:12 AM Parsing AARE reply succeeded.
10:00:14 AM Read object type Register index: 2
00 01 00 01 00 01 00 0D C0 01 C1 00 03 01 00 10 08 00 FF 02 00
10:00:14 AM
00 01 00 01 00 01 00 09 C4 01 C1 00 05 06 91 8E 03
10:02:04 AM Send Keep Alive
Data send failed. Try to resend 1/3
Data send failed. Try to resend 2/3
10:02:25 AM Failed to receive reply from the device in given time.
10:02:25 AM Disconnect request
10:02:25 AM Disconnect request
00 01 00 01 00 01 00 02 62 00
10:02:27 AM
00 01 00 01 00 01 00 05 63 03 80 01 00
System.Exception: Failed to receive reply from the device in given time.
at GXDLMSDirector.GXDLMSCommunicator.ReadDLMSPacket(Byte[] data, Int32 tryCount, GXReplyData reply)
at GXDLMSDirector.GXDLMSCommunicator.ReadDLMSPacket(Byte[] data, GXReplyData reply)
at GXDLMSDirector.GXDLMSCommunicator.ReadDataBlock(Byte[] data, String text, Int32 multiplier, GXReplyData reply)
at GXDLMSDirector.GXDLMSCommunicator.ReadDataBlock(Byte[] data, String text, GXReplyData reply)
at GXDLMSDirector.GXDLMSCommunicator.KeepAlive()
at GXDLMSDirector.GXDLMSDevice.KeepAlive_Elapsed(Object sender, ElapsedEventArgs e)
Director values are different from DLMS.reader
Hi,
Can you post the last line from the log? You can get log pressing Ctrl + L.
They are using the same code, but I can verify this.
Do you have a load on your meter? Can that be the reason for different results?
BR,
Mikko
9:07:32 AM Initializing
9:07:32 AM Initializing Network connection.
9:07:34 AM Send AARQ request.
00 01 00 01 00 01 00 38 60 36 A1 09 06 07 60 85 74 05 08 01 01 8A 02 07 80 8B 07 60 85 74 05 08 02 01 AC 0A 80 08 31 32 33 34 35 36 37 38 BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 00 1E 1D FF FF
9:07:35 AM
00 01 00 01 00 01 00 2B 61 29 A1 09 06 07 60 85 74 05 08 01 01 A2 03 02 01 00 A3 05 A1 03 02 01 00 BE 10 04 0E 08 00 06 5F 1F 04 00 00 1E 1D 05 00 00 07
9:07:35 AM Parsing AARE reply succeeded.
9:07:38 AM Read object type Register index: 2
00 01 00 01 00 01 00 0D C0 01 C1 00 03 01 00 10 08 00 FF 02 00
9:07:39 AM
00 01 00 01 00 01 00 09 C4 01 C1 00 05 06 91 75 D8
There is a little load but to exclude the possibility that the load is the issue, I made 3 measurements. First with the Director, then with my app, and again with the Director.
director: 110201395
app: 110209098
director: 110202371
The second director value was lower than the app value even though the measurement was later. So it must be a problem with the conversion is my guess. Maybe I have to parse the hex string differently ?
The director log from this last measurement was:
9:54:05 AM
00 01 00 01 00 01 00 05 63 03 80 01 00
10:00:08 AM Initializing Network connection.
10:00:10 AM Send AARQ request.
00 01 00 01 00 01 00 38 60 36 A1 09 06 07 60 85 74 05 08 01 01 8A 02 07 80 8B 07 60 85 74 05 08 02 01 AC 0A 80 08 31 32 33 34 35 36 37 38 BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 00 1E 1D FF FF
10:00:12 AM
00 01 00 01 00 01 00 2B 61 29 A1 09 06 07 60 85 74 05 08 01 01 A2 03 02 01 00 A3 05 A1 03 02 01 00 BE 10 04 0E 08 00 06 5F 1F 04 00 00 1E 1D 05 00 00 07
10:00:12 AM Parsing AARE reply succeeded.
10:00:14 AM Read object type Register index: 2
00 01 00 01 00 01 00 0D C0 01 C1 00 03 01 00 10 08 00 FF 02 00
10:00:14 AM
00 01 00 01 00 01 00 09 C4 01 C1 00 05 06 91 8E 03
10:02:04 AM Send Keep Alive
Data send failed. Try to resend 1/3
Data send failed. Try to resend 2/3
10:02:25 AM Failed to receive reply from the device in given time.
10:02:25 AM Disconnect request
10:02:25 AM Disconnect request
00 01 00 01 00 01 00 02 62 00
10:02:27 AM
00 01 00 01 00 01 00 05 63 03 80 01 00
System.Exception: Failed to receive reply from the device in given time.
at GXDLMSDirector.GXDLMSCommunicator.ReadDLMSPacket(Byte[] data, Int32 tryCount, GXReplyData reply)
at GXDLMSDirector.GXDLMSCommunicator.ReadDLMSPacket(Byte[] data, GXReplyData reply)
at GXDLMSDirector.GXDLMSCommunicator.ReadDataBlock(Byte[] data, String text, Int32 multiplier, GXReplyData reply)
at GXDLMSDirector.GXDLMSCommunicator.ReadDataBlock(Byte[] data, String text, GXReplyData reply)
at GXDLMSDirector.GXDLMSCommunicator.KeepAlive()
at GXDLMSDirector.GXDLMSDevice.KeepAlive_Elapsed(Object sender, ElapsedEventArgs e)
Director values are different from DLMS.reader
Hi,
director: 110201395
director: 110202371
Your second read value is higher. What is your scaler? Attribute index 3?
Remove your load and read values again. I believe that they are same.
BR,
Mikko