I'd like to read Association View using DLMS client, but implementing Simple Reading Meter example not working:
Connection is made by the server but this read not ok.
/// Read Association View from the meter.
GXReplyData reply = new GXReplyData();
readDataBlock(client.getObjects(), reply);
GXDLMSObjectCollection objects = client.parseObjects(reply.getData(), true);
client.getObjects() method is not implemented in the GXDLMSClient.
Ok, thanx. I'll try using it. This client.Objects will read all the objects meter offers? Or I have to use GetObjectsRequest()? This is not rally clear for me.
But on the webpage Simple meter reading example if I click on the C# tab the example code also contains GetObjects() method:
/// Read Association View from the meter.
GXReplyData reply = new GXReplyData();
ReadDataBlock(client.GetObjects(), reply);
GXDLMSObjectCollection objects = client.ParseObjects(reply.Data, true);
(In my code I tried to use the C# example, but when I copied it to my forum question I missed the tab I've selected.
I'am trying to use Gurux.DLMS.Client.Example.Net example and I get exception:
Connection is permanently rejected. The application context name is not supported.
The log for my communication:
Initializing serial connection.
Send SNRM request.7E A0 0A 00 22 00 CB 03 93 69 CE 7E
7E A0 0A 00 22 00 CB 03 93 69 CE 7E ->
7E A0 23 03 00 22 00 CB 73 CA E0 81 80 14 05 02 00 80 06 02 00 80 07 04 00 00 00 01 08 04 00 00 00 01 CE 6A 7E <-
My next problem is that all objects are invalid:
--- Available objects ---
0.0.148.0.1.255 Invalid
0.0.148.0.3.255 Invalid
0.0.148.2.3.255 Invalid
0.0.130.0.1.255 Invalid
0.0.130.0.2.255 Invalid
.....
Using an earlier version of C# client example I can connect to the Actaris SL7000, but att the request of association view I get that all objects are invalid.
Using the last client example I have to change the options for:
dlms.InterfaceType = InterfaceType.HDLC;
dlms.ClientAddress = 1;
dlms.ServerAddress = GXDLMSSecureClient.GetServerAddress(17, 101, 4);
dlms.ServerAddressSize = 4;
dlms.UseLogicalNameReferencing = true;
This way the program disconnects when parsing AARE reply.
You manufacturer is using Manufacturer specific OBIS codes. We'll change this description from "Invalid" to "Manufacturer specific". Main idea of OBIS codes is that all meter manufacturers use same OBIS codes,
but this is not how they behave at the moment.
Your meter is returning: IncompatibleConformance.
Are you setting ProposedConformance? That is wrong.
You can try to set this:
dlms.ProposedConformance = Conformance.BlockTransferWithAction |
Conformance.BlockTransferWithSetOrWrite |
Conformance.BlockTransferWithGetOrRead |
Conformance.Set | Conformance.SelectiveAccess |
Conformance.Action | Conformance.MultipleReferences |
Conformance.Get;
BR,
If I have OBIS codes (because I've found some in a documnet that was written by the former company that used theese devices) how can I read those from the device?
Download GXDLMSDirector. It reads Association View when you connect first time. Association view tells all the objects what you have on your meter and thir OBIS codes.
I've tried, but I can not configure GXDLMSDirector to use ServerAddressSize = 4
With C# client example I could read OBIS codes with AssociationView, butt all was invalid. I think GXDLMSDirector would read theese OBIS codes too. Or am I wrong?
DLMS Client Association View read problem
Hi,
This sounds strange. Are you using Eclipse?
BR,
Mikko
I use C# and Visual Studio.
I use C# and Visual Studio.
I find only GetObjectsRequest, GetObjectTypes, GetObjectTypes2 in the source of GXDLMSClient.
May I have downloaded wrong version? I've downloaded Gurux.DLMS.Net 2 weeks ago.
DLMS Client Association View read problem
Hi,
Your example is Java example. With C# you need to use client.Objects , not getObjects.
BR,
Mikko
DLMS Client Association View read problem
Ok, thanx. I'll try using it. This client.Objects will read all the objects meter offers? Or I have to use GetObjectsRequest()? This is not rally clear for me.
But on the webpage Simple meter reading example if I click on the C# tab the example code also contains GetObjects() method:
/// Read Association View from the meter.
GXReplyData reply = new GXReplyData();
ReadDataBlock(client.GetObjects(), reply);
GXDLMSObjectCollection objects = client.ParseObjects(reply.Data, true);
(In my code I tried to use the C# example, but when I copied it to my forum question I missed the tab I've selected.
DLMS Client Association View read problem
Hio,
There is an example available, Gurux.DLMS.Client.Example.Net.
You can use that to read your meter.
GXReplyData reply = new GXReplyData();
ReadDataBlock(Client.GetObjectsRequest(), reply);
Client.ParseObjects(reply.Data, true);
BR,
Mikko
Actaris SL7000 Parse AARE Response error
Hi,
I'am trying to use Gurux.DLMS.Client.Example.Net example and I get exception:
Connection is permanently rejected. The application context name is not supported.
The log for my communication:
Initializing serial connection.
Send SNRM request.7E A0 0A 00 22 00 CB 03 93 69 CE 7E
7E A0 0A 00 22 00 CB 03 93 69 CE 7E ->
7E A0 23 03 00 22 00 CB 73 CA E0 81 80 14 05 02 00 80 06 02 00 80 07 04 00 00 00 01 08 04 00 00 00 01 CE 6A 7E <-
Parsing UA reply.81 80 14 05 02 00 80 06 02 00 80 07 04 00 00 00 01 08 04 00 00 00 01
Parsing UA reply succeeded.
7E A0 47 00 22 00 CB 03 10 B3 91 E6 E6 00 60 36 A1 09 06 07 60 85 74 05 08 01 02 8A 02 07 80 8B 07 60 85 74 05 08 02 01 AC 0A 80 08 41 42 43 44 45 46 47 48 BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 5C 03 20 FF FF 6C B9 7E ->
7E A0 53 03 00 22 00 CB 30 19 81 E6 E7 00 61 42 A1 09 06 07 60 85 74 05 08 01 02 A2 03 02 01 01 A3 05 A1 03 02 01 02 88 02 07 80 89 07 60 85 74 05 08 02 01 AA 0A 80 08 00 00 00 00 00 00 00 00 BE 10 04 0E 08 00 06 5F 1F 04 00 00 30 1D 21 34 00 07 7C 78 7E <-
Note: I commented out UpdateManufactureSettings(man.Identification); because it made my address settings incorrect.
Actaris SL7000 Parse AARE Response error
Hi,
Get latest version. We have updated new client example.
You are using Short name referencing. Your meter is using Logical name referencing.
Add /r=ln parameter.
BR,
Mikko
All objects invalid
Hi,
Thanx for your reply. This works.
My next problem is that all objects are invalid:
--- Available objects ---
0.0.148.0.1.255 Invalid
0.0.148.0.3.255 Invalid
0.0.148.2.3.255 Invalid
0.0.130.0.1.255 Invalid
0.0.130.0.2.255 Invalid
.....
What can be the problem?
new version client example
Hi,
I've tried nem version of client example.
I've set the options:
dlms.InterfaceType = InterfaceType.HDLC;
dlms.ClientAddress = 1;
dlms.ServerAddress = GXDLMSSecureClient.GetServerAddress(17, 101, 4);
dlms.ServerAddressSize = 4;
dlms.UseLogicalNameReferencing = true;
The result is:
Initializing serial connection.
Send SNRM request.7E A0 0A 00 22 00 CB 03 93 69 CE 7E
<- 14:37:29 7E A0 0A 00 22 00 CB 03 93 69 CE 7E
-> 14:37:29 7E A0 23 03 00 22 00 CB 73 CA E0 81 80 14 05 02 00 80 06 02 00 80 07 04 00 00 00 01 08 04 00 00 00 01 CE 6A 7E
Parsing UA reply.81 80 14 05 02 00 80 06 02 00 80 07 04 00 00 00 01 08 04 00 00 00 01
Parsing UA reply succeeded.
<- 14:37:29 7E A0 47 00 22 00 CB 03 10 B3 91 E6 E6 00 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 41 42 43 44 45 46 47 48 BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 5C 03 20 FF FF B4 31 7E
-> 14:37:29 7E A0 49 03 00 22 00 CB 30 87 DD E6 E7 00 61 38 A1 09 06 07 60 85 74 05 08 01 01 A2 03 02 01 01 A3 05 A1 03 02 01 01 88 02 07 80 89 07 60 85 74 05 08 02 01 AA 0A 80 08 00 00 00 00 00 00 00 00 BE 06 04 04 0E 01 06 02 B9 99 7E
Disconnecting from the meter.
Connection is permanently rejected. No reason is given.
So it can't parse AAREResponse....
All readed objects are invalid
Hi
I still have problems reading the device.
Using an earlier version of C# client example I can connect to the Actaris SL7000, but att the request of association view I get that all objects are invalid.
Using the last client example I have to change the options for:
dlms.InterfaceType = InterfaceType.HDLC;
dlms.ClientAddress = 1;
dlms.ServerAddress = GXDLMSSecureClient.GetServerAddress(17, 101, 4);
dlms.ServerAddressSize = 4;
dlms.UseLogicalNameReferencing = true;
This way the program disconnects when parsing AARE reply.
Have You got any idea what can be the problem?
Add new comment
Hi,
You manufacturer is using Manufacturer specific OBIS codes. We'll change this description from "Invalid" to "Manufacturer specific". Main idea of OBIS codes is that all meter manufacturers use same OBIS codes,
but this is not how they behave at the moment.
BR,
Mikko
All readed objects are invalid
Hi,
Your meter is returning: IncompatibleConformance.
Are you setting ProposedConformance? That is wrong.
You can try to set this:
dlms.ProposedConformance = Conformance.BlockTransferWithAction |
Conformance.BlockTransferWithSetOrWrite |
Conformance.BlockTransferWithGetOrRead |
Conformance.Set | Conformance.SelectiveAccess |
Conformance.Action | Conformance.MultipleReferences |
Conformance.Get;
BR,
Mikko
OBIS codes
Hi,
If I have OBIS codes (because I've found some in a documnet that was written by the former company that used theese devices) how can I read those from the device?
Examples: 1.1.1.8.0, 1.1.2.8.0 ...
OBIS codes
Hi,
Download GXDLMSDirector. It reads Association View when you connect first time. Association view tells all the objects what you have on your meter and thir OBIS codes.
BR,
Mikko
OBIS codes
I've tried, but I can not configure GXDLMSDirector to use ServerAddressSize = 4
With C# client example I could read OBIS codes with AssociationView, butt all was invalid. I think GXDLMSDirector would read theese OBIS codes too. Or am I wrong?
OBIS codes
Hi,
Our clients are reading Actaris LS7000 and ACE6000 with GXDLMSDirector. You don't need to set ServerAddressSize = 4. It's handled automatically.
BR,
Mikko