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,
I am able to successfully communicate with the SL7000, but when I lose some packet and the code (Python) try to resend the message to the meter it gives me the following errors: ErrorCode.UNACCEPTABLE_FRAME or Invalid HDLC Frame: 0xba Expected: 0xbc.
Can anyone please tell me what could be how solve this?
Thanks you in advance.
log:
ClientAddress: 0x2
ServerAddress: 0x91
Send SNRM request succeeded.
TX: 18:53:03 7E A0 08 02 23 05 93 EE 20 7E
RX: 18:53:14 7E A0 23 05 00 02 00 23 73 3A 50 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 succeeded.
Send AARQ request.
Collecting objects readDataBlock
Collecting objects readDataBlock
TX: 18:53:14 7E A0 45 02 23 05 10 2B 2B 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 00 1E 5D FF FF 6F 04 7E
RX: 18:53:18 7E A0 23 05 00 02 00 23 73 3A 50 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 7E A0 53 05 00 02 00 23 30 E9 31 E6 E7 00 61 42 A1 09 06 07 60 85 74 05 08 01 01 A2 03 02 01 00 A3 05 A1 03 02 01 00 88 02 07 80 89 07 60 85 74 05 08 02 01 AA 0A 80 08 41 42 43 44 45 46 47 48 BE 10 04 0E 08 00 06 5F 1F 04 00 00 10 1D 21 34 00 07 9A C7 7E
Parsing AARE reply succeeded.
-----FIN initializeConnection-----
Collecting objects readDataBlock
TX: 18:53:18 7E A0 1A 02 23 05 32 A5 36 E6 E6 00 C0 01 C1 00 01 00 00 60 01 00 FF 02 00 89 A0 7E
RX: 18:53:19 7E A0 1D 05 00 02 00 23 52 DA 30 E6 E7 00 C4 01 C1 00 0A 08 36 32 30 32 38 33 32 39 07 DB 7E
Collecting objects readDataBlock
TX: 18:53:19 7E A0 1A 02 23 05 54 95 30 E6 E6 00 C0 01 C1 00 07 00 00 63 80 01 FF 03 00 99 8C 7E
RX: 18:53:21 7E A8 8C 05 00 02 00 23 74 53 F5 E6 E7 00 C4 01 C1 00 01 12 02 04 12 00 03 09 06 01 01 01 1D 00 FF 0F 01 12 00 00 02 04 12 00 03 09 06 01 01 01 1D 00 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 01 03 1D 00 FF 0F 01 12 00 00 02 04 12 00 03 09 06 01 01 03 1D 00 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 01 20 1B 00 FF 0F 01 12 00 00 02 04 12 00 03 09 06 01 01 20 1B 00 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 01 34 1B 59 13 7E
TX: 18:53:21 7E A0 08 02 23 05 71 F2 E4 7E
RX: 18:53:23 7E A8 8C 05 00 02 00 23 76 41 D6 00 FF 0F 01 12 00 00 02 04 12 00 03 09 06 01 01 34 1B 00 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 01 48 1B 00 FF 0F 01 12 00 00 02 04 12 00 03 09 06 01 01 48 1B 00 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 01 1F 1B 00 FF 0F 01 12 00 00 02 04 12 00 03 09 06 01 01 1F 1B 00 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 01 33 1B 00 FF 0F 01 12 00 00 02 04 12 00 03 09 06 01 01 33 1B 00 FF 62 BD 7E
TX: 18:53:23 7E A0 08 02 23 05 91 FC 03 7E
RX: 18:53:25 7E A0 59 05 00 02 00 23 78 F2 16 0F 03 12 00 00 02 04 12 00 03 09 06 01 01 47 1B 00 FF 0F 01 12 00 00 02 04 12 00 03 09 06 01 01 47 1B 00 FF 0F 03 12 00 00 02 04 12 00 04 09 06 00 00 60 37 05 FF 0F 05 12 00 00 02 04 12 00 04 09 06 00 00 60 37 06 FF 0F 05 12 00 00 09 E6 7E
Collecting objects readDataBlock
TX: 18:53:25 7E A0 1A 02 23 05 B6 89 F4 E6 E6 00 C0 01 C1 00 07 00 00 63 80 01 FF 02 00 41 95 7E
Data send failed. Try to resend 1/3
RX: 18:53:30 7E A8 8C 05 00 02 00 23 9A 23 FB E6 E7 00 C4 01 C1 00 01 01 02 12 09 06 01 01 01 1D 00 FF 02 02 0F FF 16 1E 09 06 01 01 03 1D 00 FF 02 02 0F FF 16 20 09 06 01 01 20 1B 00 FF 02 02 0F FF 16 23 09 06 01 01 34 1B 00 FF 02 02 0F FF 16 23 09 06 01 01 48 1B 00 FF 02 02 0F FF 16 23 09 06 01 01 1F 1B 00 FF 02 02 0F FD 16 21 09 06 01 01 33 1B 00 FF 02 02 0F FD 16 21 09 06 01 01 47 1B 00 FF 02 02 0F FD 16 21 09 0C 07 E6 02 61 F6 7E
TX: 18:53:30 7E A0 08 02 23 05 D1 F8 41 7E
RX: 18:53:33 7E A0 0A 05 00 02 00 23 97 AA D3 7E
ErrorCode.UNACCEPTABLE_FRAME
Hi,
Hi,
This is a bit complicated, but I will try to explain it.
Your meter is sents the frame for the client, but it's lost before the client receives it.
The client asks for the data again and the meter returns it, but SL 7000 is increasing the HDLC sequence number before it's sent. This is correct, but the client doesn't accept it because this is causing problems with several meter models. Some meter models sent the next frame and not re-send the first one.
What you can do is read the COSEM object again. Association view in this case.
I can say that with some SL 7000 meters it will help if you add a small delay (example 100ms) before you call ReceiverReady. In my experience, this will help if the connection for the meter is fast.
BR,
Mikko
Hi, thanks for your quick
Hi, thanks for your quick response.
I add the delay in the code and improve it a bit, but the problem persists only when the loss message is different from the next frame.
Do you mean that read the COSEM object again is using the getAssociationView method?
and how can this help me?
or is there a way to send the message that expect the meter
Hi,
Hi,
I propose you save the association view for the file and then read just the data you need. There are a lot of objects in SL 7000 and I believe that you don't need them all.
You can add objects you need manually like this and read only them.
pg = GXDLMSProfileGeneric("LOGICAL_NAME")
#Read capture objects.
self.read(pg, 3)
#Read rows using start and end time.
self.readRowsByRange(pg, startTime, endTime)
BR,
Mikko
Hi
Hi
I read association view with gurux DLMS Director after reading the generic profile but, error also appeared. do you have any idea to solve it?
log:
10:35:51 Get Next Data block.
10:35:51 a. m. Reading profile generic data
7E A0 14 02 23 05 34 2B 32 E6 E6 00 C0 02 C1 00 00 00 09 19 32 7E
10:35:51 10:35:51.193 Sent 7E A0 14 02 23 05 34 2B 32 E6 E6 00 C0 02 C1 00 00 00 09 19 32 7E
10:35:56 Data send failed. Try to resend 1/3
10:35:56 10:35:56.205 Sent 7E A0 14 02 23 05 34 2B 32 E6 E6 00 C0 02 C1 00 00 00 09 19 32 7E
10:36:01 Data send failed. Try to resend 2/3
10:36:01 10:36:01.212 Sent 7E A0 14 02 23 05 34 2B 32 E6 E6 00 C0 02 C1 00 00 00 09 19 32 7E
10:36:02 10:36:02.007 Received 7E A8 8C 05 00 02 00 23 72 65 90 E6 E7 00 C4 02 C1 00 00 00 00 0A 00 82 06 48 02 0C 00 00 00 00 10 00 00 10 00 00 10 04 D4 10 00 04 10 00 04 10 00 00 10 00 00 10 00 00 02 0C 02 02 09 0C 07 E6 07 1F FF FF FF FF FF 80 00 FF 04 06 00 00 00 00 10 00 00 10 00 00 10 04 CF 10 00 05 10 00 04 10 00 00 10 00 00 10 00 00 02 0C 00 00 00 00 10 00 00 10 00 00 10 04 CF 10 00 04 10 00 04 10 00 00 10 00 00 10 00 00 02 0C 00 00 00 A5 56 7E
10:36:02 a. m.
7E A8 8C 05 00 02 00 23 72 65 90 E6 E7 00 C4 02 C1 00 00 00 00 0A 00 82 06 48 02 0C 00 00 00 00 10 00 00 10 00 00 10 04 D4 10 00 04 10 00 04 10 00 00 10 00 00 10 00 00 02 0C 02 02 09 0C 07 E6 07 1F FF FF FF FF FF 80 00 FF 04 06 00 00 00 00 10 00 00 10 00 00 10 04 CF 10 00 05 10 00 04 10 00 00 10 00 00 10 00 00 02 0C 00 00 00 00 10 00 00 10 00 00 10 04 CF 10 00 04 10 00 04 10 00 00 10 00 00 10 00 00 02 0C 00 00 00 A5 56 7E
10:36:02 Get next frame.
10:36:02 a. m. Reading profile generic data
7E A0 08 02 23 05 51 F0 C5 7E
10:36:02 10:36:02.008 Sent 7E A0 08 02 23 05 51 F0 C5 7E
10:36:02 10:36:02.477 Received 7E A0 0A 05 00 02 00 23 97 AA D3 7E
10:36:02 a. m.
7E A0 0A 05 00 02 00 23 97 AA D3 7E
Gurux.DLMS.GXDLMSException: Unacceptable frame.
en GXDLMSDirector.GXDLMSCommunicator.Read(Object sender, GXDLMSObject obj, Boolean forceRead)
en GXDLMSDirector.MainForm.Read(Object sender, GXAsyncWork work, Object[] parameters)
10:36:03 10:36:03.757 Received 7E A0 0A 05 00 02 00 23 97 AA D3 7E
10:36:22 a. m. Send Keep Alive
7E A0 1A 02 23 05 B4 9B D7 E6 E6 00 C0 01 C1 00 0F 00 00 28 00 00 FF 01 00 F9 79 7E
10:36:22 10:36:22.587 Sent 7E A0 1A 02 23 05 B4 9B D7 E6 E6 00 C0 01 C1 00 0F 00 00 28 00 00 FF 01 00 F9 79 7E
10:36:23 10:36:23.769 Received 7E A0 0A 05 00 02 00 23 97 AA D3 7E
10:36:23 a. m.
7E A0 0A 05 00 02 00 23 97 AA D3 7E
10:36:23 Disconnect request
Hi,
Hi,
Can you send the whole hex trace to me by email so this can be verified?
BR,
Mikko
Hi
Hi
Don't worry, i solved the problem by modifying the way of resend the information when the data sending failed.
Hi Federico,
Hi Federico,
I believe that you are calling receiverReady so the frame sequence number is increased. If you are, that is the correct way to do it.
The client example doesn't call receiverReady in default because there are some meter models that can't handle the message if the receiverReady is called.
Let me know if this was your solution and I wonder if there should be a command line argument for this.
BR,
Mikko