we would like to read multiple meter via serial as fast as possible.
For each meter, we initialize the connection by sending an SNMR and AARE request,
then we read the Obis codes we are interested in and then we send a disconnect request as explained here: https://www.gurux.fi/Gurux.DLMS.Client
However, we recognized that we need to wait up to 800ms between each disconnect and the initialization of the connection to the next meter. If we don't wait, we get a timeout. It seems as if the next meter, didn't receive our connection attempt.
This additional 800ms makes the overall loop quite slow. Do you have any idea how we could make this faster? With a different library (not from gurux) we are able to read faster (so it must be possible), but we would like to switch to gurux.
The sImple answer is that don't close the connection between the reads.
If you have a timeout, your meter has closed the connection and then start communication again sending SNRM and AARQ.
Make sure that you send disconnect to the meter. You can also try to send release before disconnect.
But all this makes reading slower. Keep connection up all the time.
thanks for your response. You suggest to keep the connection open, i.e. not to send a disconnect between consecutive reads. However, our meters seem to close the connection themselves after a while. We want to read once per minute, so we would need to keep the connection open for one minute without any communication.
I don't understand why we need to wait this 800ms. We close the connection to one meter, and then before we can open the connection to the next meter, we need to put in this delay, otherwise the meter doesn't answer (timeout). Do you have an explanation for that?
Hi,
Hi,
The sImple answer is that don't close the connection between the reads.
If you have a timeout, your meter has closed the connection and then start communication again sending SNRM and AARQ.
Make sure that you send disconnect to the meter. You can also try to send release before disconnect.
But all this makes reading slower. Keep connection up all the time.
BR,
Mikko
Hi Mikko,
Hi Mikko,
thanks for your response. You suggest to keep the connection open, i.e. not to send a disconnect between consecutive reads. However, our meters seem to close the connection themselves after a while. We want to read once per minute, so we would need to keep the connection open for one minute without any communication.
I don't understand why we need to wait this 800ms. We close the connection to one meter, and then before we can open the connection to the next meter, we need to put in this delay, otherwise the meter doesn't answer (timeout). Do you have an explanation for that?
Best,
Max
Hi Max,
Hi Max,
There is an inactivity timeout. You can see the value with GXDLMSDirector. Find HDLC Setup object and read the inactivity timeout.
If you read something before inactivity timeout elapses, meter should keep the connection up.
Are you reading those meters using RS-485 or UDP connection?
BR,
Mikko