Hi,
I am trying to communicate with a smart meter over GPRS communication. I am using Gurux.DLMS.Push.Listener.Example.python to read the data from the meter. But I am getting below errors:
I am new to the DLMS and energy meter domain. I am working on interfacing a Saral 100 energy meter (Secure Meters) with my microcontroller over the RS232 protocol. I’ve received some initial details from the vendor, but I want to confirm what exact parameters and values are required from the manufacturer to ensure proper communication and data reading.
Here’s what I have so far:
Voltage Levels – RS232 standard voltage levels (3–5 V depending on signal type).
Serial Communication Settings – Baud rate: 9600 bps, Parity: None, Stop bits: 1.
I have tried to use the AMI4 and connected to a meter. the connection was via tcp and it worked.
Now im trying to connect to the meter via serial but i can't seem to initialized the serial connection to meter even with the correct serial parameters.
Do i need to make/use the scripts to connect to the meter? if so what does the script expect as an output and i am assuming that the script is in c#
Hi, am trying to read meter that supports compact array for load profile reading. I have following observation with Compact array.
- Whenever I read few entries that fit in single window, all works fine.
- Whenever I try reading more entries that triggers block transfer, director throws exception
Should be:
len_ += p.attributeDescriptor.available()
Reason:
For the second and following PDU blocks, attributeDescriptor has already been consumed in the first block.
At this point the buffer position is already at the end, so:
p.attributeDescriptor.available()
returns 0.
However:
p.attributeDescriptor.size
returns the full buffer size (9 bytes in this case), which incorrectly increases the calculated PDU length.
Because of this, for some boundary data sizes multipleBlocks() calculates an incorrect PDU size and the final block is generated with:
LastBlock = 0
instead of:
LastBlock = 1
This causes the receiver to wait for another block even though all data has already been transferred.