Hi I am trying to read profile generics for nameplate or any other profile generics and getting same error every time
GXDLMSProfileGeneric pg = it as GXDLMSProfileGeneric;
GXReplyData reply = new GXReplyData();
ReadDataBlock(Client.ReadRowsByEntry(pg, index, count), reply);
Client.UpdateValue(pg, 2, reply.Value);
logs
Send 5:13:54 PM 00 01 00 30 00 01 00 5F 60 5D A1 09 06 07 60 85 74 05 08 01 03 A6 0A 04 08 31 32 33 34 35 36 37 38 8A 02 07 80 8B 07 60 85 74 05 08 02 02 AC 12 80 10 3A 1F 36 73 56 0C 39 24 52 1F 4B 14 64 53 58 1E BE 23 04 21 21 1F 30 00 00 00 00 F3 72 E4 C6 82 2F BA B9 F3 4A 8A A2 40 F0 5A 61 59 75 CC 3B 6C AA A8 51 FD 54
Recv 5:13:55 PM 00 01 00 01 00 30 00 6B 61 69 A1 09 06 07 60 85 74 05 08 01 03 A2 03 02 01 00 A3 05 A1 03 02 01 0E A4 0A 04 08 52 4C 50 30 30 31 30 30 88 02 07 80 89 07 60 85 74 05 08 02 02 AA 12 80 10 41 45 4E 45 53 41 53 5F 50 36 77 52 4A 32 31 46 BE 23 04 21 28 1F 30 00 00 00 00 94 41 62 04 E3 6A 3D C8 BB F4 CA 06 64 81 04 EA 2C 5C F0 47 31 7C B6 51 12 AD
Send 5:13:55 PM 00 01 00 30 00 01 00 32 CB 30 30 00 00 00 01 CD E2 6A 5F 2F 1B 3E C3 D9 0D B8 36 D4 37 79 C2 52 35 8F DD 4F 55 70 59 45 B1 86 C7 71 00 E5 A9 34 A3 25 02 D3 7D D1 5A 6D 09 E8
Recv 5:13:56 PM 00 01 00 01 00 30 00 2B CF 29 30 00 00 00 00 5B 40 A5 5B FD 6E 34 F8 61 E5 8B FD 32 38 06 8D 0A 30 57 9C 30 30 3A 33 E1 05 35 15 18 67 BB DB A0 DD 1E E7
Send 5:13:56 PM 00 01 00 30 00 01 00 20 C8 1E 30 00 00 00 02 78 40 97 F8 64 8E BA BC 05 F3 73 94 86 EC 7C 6F 4E 4C CB 8C BC C8 E8 DE 7F
Recv 5:13:56 PM 00 01 00 01 00 30 01 A7 CC 82 01 A3 30 00 00 00 00 58 40 A5 5B FD 78 3F EC B1 E9 C1 4F 62 86 23 6B 8D 54 78 8F 60 0A 91 11 0B B7 E3 23 20 10 2A 94 4A BD 70 BC CC 4B 41 8A 91 4B 41 7C 5A 7F 7A F5 58 EE 9D 10 0A B9 62 77 F7 71 62 D9 DB 22 E3 32 F9 80 50 37 CC 66 86 03 96 0E B6 29 B0 C4 DE 00 31 2C 24 F6 CD 3A BA C1 D7 2C DD 17 7F A0 72 F3 4D 38 02 49 20 B7 EF 18 76 8C B3 26 C3 C3 61 FD D4 88 52 99 F4 BA 1C 15 1E D7 5E 34 BC 55 48 E2 87 2B CF 68 8E F8 07 3B C8 BE 81 42 57 F3 19 C3 E3 73 7F 3C 1C 33 FE 11 87 56 DE 8A 3C 05 D5 5B 09 ED 11 00 CD 27 C1 F5 D9 5E 16 F3 4E D6 C1 1E 90 63 5A CF D2 6C D6 D9 C2 4A BB 9E 5A 5C 4D D6 8E 69 38 D0 2E 6D 7C 52 DD 96 2E C7 AE C7 31 DF CE B2 43 E8 B3 21 DB 88 7A 58 BA 2A 70 9A DF A1 AE 06 C6 68 7D 87 FC 1B B7 57 A8 58 2E 5E D2 C9 33 79 21 90 EE B1 07 5F 6C 12 F5 CF FB A9 A0 1C A6 66 24 36 1E 5E BA F0 06 8E B1 D4 20 3D 1B DF 6A B9 82 54 85 79 C0 C6 DC EB 82 F5 2D A4 D5 C3 BA 48 37 1E E0 CA 41 FB 03 9B 22 7D 09 BA E1 97 A9 E9 9F A8 DD ED 1C E2 70 2C 17 35 17 D8 0D 3A 21 2D CA D1 51 99 38 AC 8B D9 04 77 28 4A D4 84 ED 2E 83 27 FD E6 D9 14 EE 97 75 AD F8 51 96 6F 87 9F CC 6E 3A 49 65 23 22 9C AC A1 7A 9B 6A 47 CB 2D AE 68 BE E8 A2 C6 B7 9F A1 0F F2 6E 8B D7 6C A0 46 C6 C8 8D F4 84 DC 24 71 10 CC 03 DB 26 62 B0 A6 35 CD C6 BA 24 70 62 DF 34 06 C1
Send 5:13:59 PM 00 01 00 30 00 01 00 20 C8 1E 30 00 00 00 03 E0 6F 2D C6 1B 81 D7 9F 16 61 27 FD C9 16 4D D8 CA 3E 96 D2 36 67 58 54 FD
Recv 5:13:59 PM 00 01 00 01 00 30 00 1C CC 1A 30 00 00 00 00 58 40 A5 5B FA 6E 3D E8 A2 4A B2 5D 22 C1 61 BE 9D AA FC 0F F6
Send 5:13:59 PM 00 01 00 30 00 01 00 20 C8 1E 30 00 00 00 04 CC CE 7C 1D A1 34 AB F3 9E 3A EC 4D 53 00 3E 74 23 85 44 BB 5D E0 8A B9 64
Recv 5:13:59 PM 00 01 00 01 00 30 00 1C CC 1A 30 00 00 00 00 58 40 A5 5B FA 6E 3D E8 A2 4A B2 5D 22 C1 61 BE 9D AA FC 0F F6
Send 5:13:59 PM 00 01 00 30 00 01 00 33 C8 31 30 00 00 00 05 A6 B0 54 A2 23 37 BE 56 C5 BB A3 3B DB 6C E7 B3 CA 60 D6 CF D6 E8 FB 30 31 97 16 C6 04 38 7F BE 21 D8 A1 70 33 36 60 76 DA BD 16 E7
Recv 5:14:01 PM 00 01 00 01 00 30 00 90 CC 81 8D 30 00 00 00 00 58 40 A5 5B FD 6F 3F FD B4 AA 88 1A CF 91 23 6A 8D 54 90 80 62 18 91 06 36 33 F1 23 34 5B 6B 0C D0 A6 77 BC 33 44 54 98 91 4B 43 6F 74 38 59 CC 49 D1 1E 99 A1 AE A6 EF 6F 6F 6B D5 DE CE F2 35 FE 86 56 36 CC 3C CB 03 7E 3C 1F DC FA CD D0 03 CB 2F 20 FB C4 3B BA CC D1 66 22 1E 7D B2 7B B2 5D 3C 11 4F 23 BE E9 19 64 82 B4 31 3C CC 63 EF C3 88 50 9D E6 B9 1F 1A 18 D6 1E 49 F5 27 76 C1 8D 9B 7B 9D 99 E4 50 86
Error! Failed to read first row: The number of columns does not match.
Hi, You need to read capture…
Hi,
You need to read capture objects before reading the buffer.
Read(pg, 3);
ReadDataBlock(Client.ReadRowsByEntry(pg, index, count), reply);
BR,
Mikko
Hi Mikko Still getting same…
Hi Mikko
Still getting same error
GXDLMSProfileGeneric pg = it as GXDLMSProfileGeneric;
GXReplyData reply = new GXReplyData();
Read(pg, 3);
ReadDataBlock(Client.ReadRowsByEntry(pg, index, count), reply);
Client.UpdateValue(pg, 2, reply.Value);
Hi, Your data is ciphered,…
Hi,
Your data is ciphered, so I can't check this from the bytes, but the amount of the data columns is different than the amount of captured objects. They must be the same.
Read this with GXDLMSDirector and check what are the capture objects. Ask if there is a meter update available for this meter.
BR,
Mikko
Hi Mikko, I updated the…
Hi Mikko,
I updated the firmware. Tried using GXDLMS director but there are no rows in that. And Some profile generics are giving same error of column mismatch even in director too.
I tried reading name plate:
Using gurux library- column mismatch error,
Using gurux director - no rows in output,
Using kalki - its readable fine.
Hi, I just realized that you…
Hi,
I just realized that you tried to read the nameplate and your meter doesn't support read rows by entry or range. You need to read the nameplate like this:
GXDLMSProfileGeneric pg = it as GXDLMSProfileGeneric;
Read(pg, 3);
Read(pg, 2);
BR,
Mikko
Thanks Mikko , There's some…
Thanks Mikko ,
There's some progress now we are getting different error. I Also referred to this https://www.gurux.fi/node/19967
for reference
List<GXKeyValuePair<GXDLMSObject, GXDLMSCaptureObject>> columns = new List<GXKeyValuePair<GXDLMSObject, GXDLMSCaptureObject>>();
GXDLMSRegister voltage = new GXDLMSRegister("1.0.12.7.0.255");
GXDLMSRegister current = new GXDLMSRegister("1.0.11.7.0.255");
columns.Add(new GXKeyValuePair<GXDLMSObject, GXDLMSCaptureObject>(voltage, new GXDLMSCaptureObject(2, 0)));
columns.Add(new GXKeyValuePair<GXDLMSObject, GXDLMSCaptureObject>(current, new GXDLMSCaptureObject(2, 0)));
GXDLMSProfileGeneric pg = new GXDLMSProfileGeneric(obislist.First().OBISCode);
pg.CaptureObjects.AddRange(columns);
Read(pg, 3); //GetProfileGenericColumns();
reply.Clear();
Read(pg, 2);
Client.UpdateValue(pg, 2, reply.Value);
Getting 'Access Error : Device reports scope of access violated.'
Access issues gone now, but…
Access issues gone now, but How can i read all the key value pairs in proper manner?
I tried pg.CaptureObjects[i].Value it is giving attribute and data index, not exact value.
Thanks
Hi, Check this. It will show…
Hi,
Check this. It will show how you can read the profile generic buffer and print all cells.
https://github.com/Gurux/Gurux.DLMS.Net/blob/a3598b12a759db78a4f00476bd…
BR,
Mikko
Hi Mikko, Thanks this works,…
Hi Mikko,
Thanks this works, manually calling read(item, item.Value.AttributeIndex) on each item.
Just need one more help, since they ReadRowsByEntry()/Range() is not working, how can i use date filter for my instantanious, Block load and Daily load queries.
I thought to copy the example, but because GXcommon is added as library, I cannot access many things that are accessible in Gurux.Net example repo
Hi, If the meter is…
Hi,
If the meter is supporting ReadRowsByEntry and ReadRowsByRange you can use them as normal. I believe that your meter is not supporting them with nameplate and you need to use a normal read with it.
I also believe that your meter is not using the DLMS standard deviation. Try to set UtcTimeZone to true like this:
client.UtcTimeZone = true;
You can read more about deviation here:
https://www.gurux.fi/Gurux.DLMS.Objects.GXDLMSClock#deviation
BR,
Mikko
Hi Mikko, I set the…
Hi Mikko,
I set the UtcTimeZone. I was able to read name plate, but unable to read instantaneous data using date range. Without date range i can read current, but if i'm using
ReadDataBlock(Client.ReadRowsByRange(it, start, end), reply);
start and end are date range here.
I am getting : 'Access Error : Device reports scope of access violated.'
How can i read date and history data, Can i do any manual work around before calling
Read(pg,2) in buffer or any other suggestion?
Thanks
Hi, There is only one row…
Hi,
There is only one row and It's quite common with Indian meters that the instantaneous data and the nameplate can be read only with Read().
BR,
Mikko
Hi Mikko, Yes this case…
Hi Mikko, Yes this case works. Single row for name plate and instantenous works correctly.
Can you suggest on how to get date range based data in block and daily load profile.
Because readRowsByRange(startdate,enddate) is not working.
But kalki is able to search it, how can it be done thourgh code in gurux?
Thanks
Hi, Some meters expect a…
Hi,
Some meters expect a specific date-time format, e.g. deviation is not used.
Can you read the meter with GXDLMSDirector? If you can, select "Advanced" tab and check is "Ignore Time Zone" or "Ignore Time Status" is checked.
BR,
Mikko
Yes Ignore time zone is…
Yes Ignore time zone is checked and Use UTCtimezone, not DLMS standard is also checked.
Hi mikko So few things i changed
settings.client.UtcTimeZone = true;
settings.client.DateTimeSkips = DateTimeSkips.Deviation;
this works for date based query in Nameplate, instant data, Block load and Daily load profile data.
Then after that i tried reading Power failure events and other temper events, which did not work with these changes, i was getting Access Error : Device reports scope of access violated.
Even though i am able to read Power failure events and other temper events, using index based range.
So to summarize i am only getting issue while reading date based query in Power failure and other events, but these work with index based query.
Also
Hi, There are variations in…
Hi,
There are variations in how read-by entry is implemented to the meter. Some meters expect the minutes and seconds to be set to zero. Did you try that?
Can you read the temper events with GXDLMSDirector using start and end time?
BR,
Mikko
Hi mikko, thanks for help…
Hi mikko,
thanks for help throughout the discussion. indian meters don't allow searching of temper events based on date range. they only work with index-count search.
this thread was alot helpful
Hi Rahul, I'll add a short…
Hi Rahul,
I'll add a short notification here. Some Indian meters support temper events reading using start and end data, but not all.
BR,
Mikko