Before commenting read Forum rules
Don't comment the topic if you have a new question.
You can create a new topic selecting correct category from Gurux Forum and then create a new topic selecting "New Topic" from the top left.
Before commenting read Forum rules
Don't comment the topic if you have a new question.
You can create a new topic selecting correct category from Gurux Forum and then create a new topic selecting "New Topic" from the top left.
Hi Mikko,
I am using DLMSDirector 8.2.2112.2101 to connect to a Kamstrup 8860 Omnipower meter.
From reading the log data below, I can see that the Director successfully initializes the connection.
If I understand correctly the next step is to read the Association view and show all objects the meter can offer.
From the wiki I see also:
"The reply data is very large so this can take very long time (even hours with slow connection like terminal and if the connection is bad). Because this takes so long it is recommended to save this information for future use as it doesn't change unless meter software is updated. The data structure varies between manufacturers and device models.
The reply data is parsed using ParseObjects method in GXCOSEM Component. The method returns a collection of DLMS Objects."
In my case, ParseObjects fails:
Gurux.DLMS.GXDLMSException: ParseObjects failed. Invalid parameter.
1) Is this because I didnt wait long enough for all the 'object references' to be retrieved? In that case, should I increase the Wait Time on the Device Properties screen, before I make the connection?
2) I see that you advise saving this data once it has been retrieved, I assume to avoid pulling all this data back on each Connection? Does the DLMSDirector retrieve the Association view list of meter objects on all Connect attemppts? Or how do you Connect/make an Association, without retrieving all the objects.
3) Also I see that "The structure of Association View varies by used Authentication." I used the option None.
Could this be a factor?
The relevant log data is below.
Thanks for your help.
Des
14:15:09 Initializing serial connection.
14:15:10 Send SNRM request.
7E A0 07 03 21 93 0F 01 7E
14:15:10
7E A0 20 21 03 73 73 98 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
14:15:10 Parsing UA reply succeeded.
14:15:10 Send AARQ request.
7E A0 2B 03 21 10 FB AF E6 E6 00 60 1D A1 09 06 07 60 85 74 05 08 01 01 BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 20 1E 5D FF FF 22 82 7E
14:15:10
7E A0 39 21 03 30 2E D2 E6 E7 00 61 82 00 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 10 1D 03 EF 00 07 44 36 7E
14:15:10 Parsing AARE reply succeeded.
14:15:15 --- Collecting objects. ---
14:15:15 Collecting objects
7E A0 19 03 21 32 6F D8 E6 E6 00 C0 01 C1 00 0F 00 00 28 00 00 FF 02 00 91 53 7E
Data send failed. Try to resend 1/3
14:15:20 Data send failed. Try to resend 1/3
7E A0 19 03 21 32 6F D8 E6 E6 00 C0 01 C1 00 0F 00 00 28 00 00 FF 02 00 91 53 7E
14:15:20
7E A8 89 21 03 42 07 B9 E6 E7 00 C4 02 C1 00 00 00 00 01 00 82 03 D0 01 3F 02 04 12 00 0F 11 02 09 06 00 00 28 00 00 FF 02 02 01 0B 02 03 0F 01 16 01 00 02 03 0F 02 16 01 00 02 03 0F 03 16 01 00 02 03 0F 04 16 01 00 02 03 0F 05 16 01 00 02 03 0F 06 16 01 00 02 03 0F 07 16 00 00 02 03 0F 08 16 01 00 02 03 0F 09 16 01 00 02 03 0F 0A 16 01 00 02 03 0F 0B 16 01 00 01 06 02 02 0F 01 16 00 02 02 0F 02 16 00 02 26 DC 7E 7E A0 07 21 03 51 11 42 7E
Gurux.DLMS.GXDLMSException: ParseObjects failed. Invalid parameter.
at GXDLMSDirector.MainForm.RefreshDevice(GXDLMSMeter dev, Boolean bRefresh)
at GXDLMSDirector.MainForm.Refresh(Object sender, GXAsyncWork work, Object[] parameters)
14:16:07 Disconnect request
14:16:07 Disconnect request
7E A0 07 03 21 53 03 C7 7E
14:16:07
7E A0 07 21 03 1F 6B E9 7E
14:16:14 Initializing serial connection.
14:16:15 Send SNRM request.
7E A0 07 03 21 93 0F 01 7E
14:16:15
7E A0 20 21 03 73 73 98 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
14:16:15 Parsing UA reply succeeded.
14:16:15 Send AARQ request.
7E A0 2B 03 21 10 FB AF E6 E6 00 60 1D A1 09 06 07 60 85 74 05 08 01 01 BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 20 1E 5D FF FF 22 82 7E
14:16:15
7E A0 39 21 03 30 2E D2 E6 E7 00 61 82 00 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 10 1D 03 EF 00 07 44 36 7E
14:16:15 Parsing AARE reply succeeded.
14:16:18 --- Collecting objects. ---
14:16:18 Collecting objects
7E A0 19 03 21 32 6F D8 E6 E6 00 C0 01 C1 00 0F 00 00 28 00 00 FF 02 00 91 53 7E
Data send failed. Try to resend 1/3
14:16:23 Data send failed. Try to resend 1/3
7E A0 19 03 21 32 6F D8 E6 E6 00 C0 01 C1 00 0F 00 00 28 00 00 FF 02 00 91 53 7E
14:16:23
7E A8 89 21 03 42 07 B9 E6 E7 00 C4 02 C1 00 00 00 00 01 00 82 03 D0 01 3F 02 04 12 00 0F 11 02 09 06 00 00 28 00 00 FF 02 02 01 0B 02 03 0F 01 16 01 00 02 03 0F 02 16 01 00 02 03 0F 03 16 01 00 02 03 0F 04 16 01 00 02 03 0F 05 16 01 00 02 03 0F 06 16 01 00 02 03 0F 07 16 00 00 02 03 0F 08 16 01 00 02 03 0F 09 16 01 00 02 03 0F 0A 16 01 00 02 03 0F 0B 16 01 00 01 06 02 02 0F 01 16 00 02 02 0F 02 16 00 02 26 DC 7E 7E A0 07 21 03 51 11 42 7E
Gurux.DLMS.GXDLMSException: ParseObjects failed. Invalid parameter.
at GXDLMSDirector.MainForm.RefreshDevice(GXDLMSMeter dev, Boolean bRefresh)
at GXDLMSDirector.MainForm.Refresh(Object sender, GXAsyncWork work, Object[] parameters)
14:18:23 Send Keep Alive
7E A0 19 03 21 54 5F DE E6 E6 00 C0 01 C1 00 0F 00 00 28 00 00 FF 01 00 F9 79 7E
14:18:28 Data send failed. Try to resend 1/3
14:18:33 Data send failed. Try to resend 2/3
14:18:38 Failed to receive reply from the device in given time.
14:18:38 Disconnect request
14:18:38 Disconnect request
7E A0 07 03 21 53 03 C7 7E
14:18:38
7E A0 07 21 03 1F 6B E9 7E
System.TimeoutException: Failed to receive reply from the device in given time.
at GXDLMSDirector.GXDLMSCommunicator.ReadDLMSPacket(Byte[] data, Int32 tryCount, GXReplyData reply)
at GXDLMSDirector.GXDLMSCommunicator.ReadDataBlock(Byte[] data, String text, Int32 multiplier, Int32 tryCount, 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)
System.Exception: Invalid name.
at GXDLMSDirector.DevicePropertiesForm.UpdateSettings(GXDLMSMeter device, Boolean validate)
at GXDLMSDirector.DevicePropertiesForm.OKBtn_Click(Object sender, EventArgs e)
Hi,
Hi,
Select "Frame" tab and set Max payload size in transmit and to 1010.
This is Kamstrup specific thing for some meters.
BR,
Mikko
Thanks Mikko.
Thanks Mikko.
I increased the Wait time, and changed the Window TX/RX size to 1010 as you suggested.
I now can collect a 'tree' of items, Association Logical Name, Data, Clock, Sap Assignment etc...
And these in turn can be expanded in the Director.
However, I dont see any items with OBIS codes, 1.8.*, 2.8.*, 3.8.*, 4.8.*... which I think contain the relevant energy counters.
The meter is Kamstrup. I think you mentioned in another post that Kamstrup uses their own vendor specific OBIS codes. Could this be the reason I dont see what I expect?
I saw also somewhere that there is a specific Kamstrup protocol , KMP. Perhaps this needs to be used to read the energy registers.
Or perhaps the operator hasn't enabled the registers?
Any ideas?
Thanks for your help so far.
Des