Landis&Gyr ZMG310AR

22 posts / 0 new
Last post
Pelathaon
Landis&Gyr ZMG310AR

Hello.

How i can read meter ZMG310AR? it's a Landis&Gyr E550

I try parameters in screenshot, but nothing happens

Kurumi
Kurumi's picture

Hi,

Check your serial port settings. The reason is usually there. If you are using an optical probe, change start protocol from DLMS to IEC.

BR,
Mikko

________________________________________
Mikko Kurunsaari
Gurux Ltd
http://www.gurux.fi

Pelathaon

Hello,

I use the planet converter. It works correctly with the original software. But when i use gurux, it don't work. I already test IEC and DLMS and nothing.
Then i now use ur video: https://youtu.be/OcmYvcsgjz4 and i get this errors

Note: my converter and meter using baud 2400, i run with this parameters -> main.py -S COM2:2400:8None1

C:\Users\...\Desktop\Gurux.DLMS.Python-master\Gurux.DLMS.Client.Example.python>mai
gurux_dlms version: 1.0.81
gurux_net version: 1.0.17
gurux_serial version: 1.0.14
Authentication: Authentication.NONE
ClientAddress: 0x10
ServerAddress: 0x1
Standard: Standard.DLMS
Data send failed. Try to resend 1/3
Data send failed. Try to resend 2/3
RX: 16:43:17
DisconnectRequest
Traceback (most recent call last):
File "C:\Users\...\Desktop\Gurux.DLMS.Python-master\Gurux.DLMS.Client.Example.py
reader.readAll(settings.outputFile)
File "C:\Users\...\Desktop\Gurux.DLMS.Python-master\Gurux.DLMS.Client.Example.py
self.initializeConnection()
File "C:\Users\...\Desktop\Gurux.DLMS.Python-master\Gurux.DLMS.Client.Example.py
self.readDLMSPacket(data, reply)
File "C:\Users\...\Desktop\Gurux.DLMS.Python-master\Gurux.DLMS.Client.Example.py
self.readDLMSPacket2(data, reply)
File "C:\Users\...\Desktop\Gurux.DLMS.Python-master\Gurux.DLMS.Client.Example.py
raise e
File "C:\Users\...\Desktop\Gurux.DLMS.Python-master\Gurux.DLMS.Client.Example.py
raise TimeoutException("Failed to receive reply from the device in given time.")
gurux_common.TimeoutException.TimeoutException: Failed to receive reply from the device
Ended. Press any key to continue.

Kurumi
Kurumi's picture

Hi,

Can you post the trace from the original software? If you post the first message, I can get settings for you. Is another app using 2400 as a baud rate?

BR,
Mikko

________________________________________
Mikko Kurunsaari
Gurux Ltd
http://www.gurux.fi

Pelathaon

Hello.

71203796ms - DLMS Open
71203812ms - DLMS set State: OPENING
71203906ms - DLMS Init ShortName CommandHandler
71203937ms - IEC open IEC: Mode E
71204671ms - IEC set State: Opening
71204687ms - IEC start delay of minimum reaction time: 200 ms
71204703ms - IEC wait for minimum response time delay (minimum reaction time: 200ms)
71205328ms - IEC S-> /?!<CR><LF>
71205421ms - IEC message transferred
71205796ms - IEC start delay of minimum reaction time: 200 ms
71205796ms - IEC R<- /LGZ3\2ZMG405041b.P07<CR><LF>
71205796ms - IEC set new Baudrate: 2400 Bps
71205796ms - IEC set State: Open
71205812ms - IEC wait for minimum response time delay (minimum reaction time: 200ms)
71206000ms - IEC S-> <ACK>232<CR><LF>
71206000ms - IEC message transferred
71206312ms - IEC start delay of minimum reaction time: 200 ms
71206312ms - IEC R<- <ACK>232<CR><LF>
71206328ms - IEC set State: Mode E
71206531ms - LLC Open
71206531ms - HDLC Open
71206531ms - HDLC StartOpenEvent is set
71206562ms - HDLC set State: OPENING
71206562ms - HDLC StartDelay 25
71206593ms - HDLC S-> SNRM-Frame SrcAdr=19 DestAdr=1 SendFrSize=248 RecFrSize=248 Poll=True FrameValid=True
71206625ms - HDLC S-> 7EA01E0327931D6F8180120501F80601F807040000000108040000000155B67E
71206625ms - HDLC Start Frame Transfer
71206625ms - HDLC Frame transferred

I upload screens about converter and meter settings

Image: 
Kurumi
Kurumi's picture

Hi,

Change client address to 0x13. You can also change start protocol to IEC.
It should work also with DLMS.

BR,
Mikko

________________________________________
Mikko Kurunsaari
Gurux Ltd
http://www.gurux.fi

Pelathaon

I did everything as you said, but for some reason it still doesn’t work. Maybe I'm doing something wrong? Could you give an example console command with main.py to connect.

As I understand it, I need to use one of these commands

Read LG device using TCP/IP connection.
GuruxDlmsSample -r SN -c 16 -s 1 -h [Meter IP
Read LG device using serial port connection.
GuruxDlmsSample -r SN -c 16 -s 1 -sp COM1 -i

What of SN? Where it i can see?

Kurumi
Kurumi's picture

Hi,

Please, use GXDLMSDirector first to get started. It'll help you a lot.
Command-line params are something like:

main.py -S COM2:2400:8None1 -r SN -c 19

BR,
Mikko

________________________________________
Mikko Kurunsaari
Gurux Ltd
http://www.gurux.fi

Pelathaon

Okay.

Now i again test in GXDLMSDirector. Converter in "Virtual Com Mode" (Screen: https://prnt.sc/t62xjy) with ip 192.168.5.5.9761

I try using next parameterts:
1) https://prnt.sc/t62vhy - Nothing happens
2) https://prnt.sc/t62z08 - i'am add Serial Number meter, some nothing happens.
3) https://prnt.sc/t630kv - now, i'm create Vitual COM port in my PC, and reconfigure GXDLMSDirector, some to nothing happens, get this error - https://prnt.sc/t631xt
4) https://prnt.sc/t632cw - now i change "Adress Type" to Default, and nothing happens.

5) I try using ur commanline command and get error : https://prnt.sc/t638wc

When i click connect in GXDLMSDirector i seen in my VCOM software (soft to create virtual com ports on pc) https://prnt.sc/t632zk line with COM2 becomes RED and status port "Opened". This indicates that the port has opened and the program is trying to connect to the counter.

Following the logic of things, I generally do not need a program for emulating COM ports, because the Planet converter can do this already .

Kurumi
Kurumi's picture

Hi,

Change SN to sn. Give parameters like this:

main.py -S COM2:2400:8None1 -r sn -c 19

If it fails add -i parameter.

In GXLMDSDirector check "Use serial port through ethernet".
BR,
Mikko

________________________________________
Mikko Kurunsaari
Gurux Ltd
http://www.gurux.fi

Pelathaon

I try with parameter «i» and without

Result: https://prnt.sc/t64f1u

In software:
Settings: https://prnt.sc/t64pkj
Error: https://prnt.sc/t64q5g

I don't know what i do incorrect.

Pelathaon

Hello.

I managed to solve the problem. To do this, set Client Adress to 10, and uncheck "Use serial port through internet". Start protocol DLMS. And this is how you work. True, I did not understand why the registers are displayed somehow strange.

Screen: https://prnt.sc/t6p7vs

Kurumi
Kurumi's picture

Hi,

I'm glad that you solved this.

BR,
Mikko

________________________________________
Mikko Kurunsaari
Gurux Ltd
http://www.gurux.fi

Pelathaon

But, why it don't work with command-line?

Kurumi
Kurumi's picture

Hi,

Can you run this and add trace to here?

main.py -S COM2:2400:8None1 -r sn -t Verbose

BR,
Mikko

________________________________________
Mikko Kurunsaari
Gurux Ltd
http://www.gurux.fi

Pelathaon

Hello,

C:\Users\...\Desktop\Gurux.DLMS.Python-master\Gurux.DLMS.Client.Example.python>main.py -S COM2:2400:8None1 -r sn -t Verbose
gurux_dlms version: 1.0.81
gurux_net version: 1.0.17
gurux_serial version: 1.0.14
Authentication: Authentication.NONE
ClientAddress: 0x10
ServerAddress: 0x1
Standard: Standard.DLMS
TX: 13:01:33 7E A0 07 03 21 93 0F 01 7E
Data send failed. Try to resend 1/3
Data send failed. Try to resend 2/3
RX: 13:01:48
DisconnectRequest
Traceback (most recent call last):
File "C:\Users\...\Desktop\Gurux.DLMS.Python-master\Gurux.DLMS.Client.Example.python\main.py", line 104, in main
reader.readAll(settings.outputFile)
File "C:\Users\...\Desktop\Gurux.DLMS.Python-master\Gurux.DLMS.Client.Example.python\GXDLMSReader.py", line 504, in readAll
self.initializeConnection()
File "C:\Users\...\Desktop\Gurux.DLMS.Python-master\Gurux.DLMS.Client.Example.python\GXDLMSReader.py", line 308, in initializeConnection
self.readDLMSPacket(data, reply)
File "C:\Users\...\Desktop\Gurux.DLMS.Python-master\Gurux.DLMS.Client.Example.python\GXDLMSReader.py", line 119, in readDLMSPacket
self.readDLMSPacket2(data, reply)
File "C:\Users\...\Desktop\Gurux.DLMS.Python-master\Gurux.DLMS.Client.Example.python\GXDLMSReader.py", line 170, in readDLMSPacket2
raise e
File "C:\Users\...\Desktop\Gurux.DLMS.Python-master\Gurux.DLMS.Client.Example.python\GXDLMSReader.py", line 162, in readDLMSPacket2
raise TimeoutException("Failed to receive reply from the device in given time.")
gurux_common.TimeoutException.TimeoutException: Failed to receive reply from the device in given time.
Ended. Press any key to continue.

C:\Users\...\Desktop\Gurux.DLMS.Python-master\Gurux.DLMS.Client.Example.python>

Kurumi
Kurumi's picture

Hi,

The data is correct. Are you running Python code at the same PC where you are running GXDLMSDirector? Are you using the same cable?

BR,

Mikko

________________________________________
Mikko Kurunsaari
Gurux Ltd
http://www.gurux.fi

Pelathaon

Hello,

Yes, on the same computer. Moreover, they even lie in the same folder with GXDLMSDirector and there are no Russian characters in the paths to eliminate all possible problems. After all several unsuccessful attempts, I even rebooted. But this did not bring any result.

Kurumi
Kurumi's picture

Hi,

This is tested with RS-485 and it works without problems. Can you share what kind of converter you are using (modem and manufacturer)?

BR,
Mikko

________________________________________
Mikko Kurunsaari
Gurux Ltd
http://www.gurux.fi

Pelathaon

Hello,
Planet ICS-10X

Pelathaon

Hello. I now read the meter
But i get much more errors
= RESTART: C:\Users\...\Desktop\Gurux.DLMS.Python-master\Gurux.DLMS.Client.Example.python\main.py
gurux_dlms version: 1.0.81
gurux_net version: 1.0.17
gurux_serial version: 1.0.14
Authentication: Authentication.NONE
ClientAddress: 0x10
ServerAddress: 0x1
Standard: Standard.DLMS
Unknown object : 10009 8
Unknown object : 10900 840
Unknown object : 10910 960
Unknown object : 10910 1128
Unknown object : 10910 1296
Unknown object : 10910 1464
Unknown object : 10910 1632
Unknown object : 10910 1800
Unknown object : 10910 1968
Unknown object : 10910 2136
Unknown object : 10910 2304
Unknown object : 10910 2472
Unknown object : 10920 2640
Unknown object : 10920 2856
Unknown object : 10920 3072
Unknown object : 10920 3288
Unknown object : 10920 3504
Unknown object : 10930 3720
Unknown object : 10930 3936
Unknown object : 10930 4152
Unknown object : 10940 4368
Unknown object : 10950 4544
Unknown object : 10960 5000
Unknown object : 10941 4704
Unknown object : 10941 4752
Unknown object : 10941 4800
Unknown object : 10056 40016
Unknown object : 10056 40056
Unknown object : 10056 40096
Unknown object : 10056 40136
Unknown object : 10630 40384
Unknown object : 10630 40520
Unknown object : 10630 40656
Unknown object : 10630 40792
Unknown object : 10630 41200
Unknown object : 10630 41336
Unknown object : 10630 41744
Unknown object : 10630 41880
Unknown object : 10026 42016
Unknown object : 10026 42080
Unknown object : 10025 43848
Unknown object : 10010 43920
Unknown object : 10010 43968
Unknown object : 10010 44016
Unknown object : 10010 44064
Unknown object : 10010 44112
Unknown object : 10010 44160
Unknown object : 10010 44208
Unknown object : 10010 44256
Unknown object : 10010 44304
Unknown object : 10011 44352
Unknown object : 10051 44400
Unknown object : 10010 44448
Unknown object : 10011 44496
Unknown object : 10016 44544
Unknown object : 10166 20000
Unknown object : 10022 44592
Unknown object : 10022 44656
Unknown object : 10022 44720
Unknown object : 10022 44784
Unknown object : 10022 44848
Unknown object : 10022 44912
Unknown object : 10022 44976
Unknown object : 10022 45040
Unknown object : 10002 45104
Unknown object : 10080 45256
Unknown object : 20052 45872
Unknown object : 10660 45992
Unknown object : 10133 46080
Unknown object : 10035 46520
Unknown object : 10014 46584
Unknown object : 10014 46688
Unknown object : 10017 46944
Unknown object : 10020 47120
Unknown object : 10018 47152
Unknown object : 10100 26400
Unknown object : 10040 47184
Unknown object : 10610 47552

And how i can reed only .. 1.8.0 code ?

Kurumi
Kurumi's picture

Hi,

Unknown object means that meter manufacturer is using custom interfaces. Only merer manufacturer will know the meaning of those interfaces. It's strongly recommended that only DLMS standard interfaces are used.

You need to know object type. If object is data object (You will get this information when reading association view) you can read it like this.

obj = GXDLMSData("LOGICAL NAME");
self.read(obj, 2);

#2 is the attribute index number that you want to read.

BR,
Mikko

________________________________________
Mikko Kurunsaari
Gurux Ltd
http://www.gurux.fi