Hello sir,
I want to read Block load profile from meter and I am trying to read different OBIS code but there are some problem while reading
Average voltage 1.0.12.27.0.255
Block energy, kWh 1.0.1.29.0.255
Block energy, kVAh 1.0.9.29.0.255
and following is example what i am sending and what i get
below is example what i sending and what i get
here trying to read cumulative energy Kwh for TZ1:
DLMS_OBJECT_TYPE_REGISTER data type
attribute:2
Hi,
We observed while reading profile generic using gxDLMSDirector that, some times data is reading and some time not. Please help us to read generic profile using gurux and also using embedded c.
Which settings we have to do like invocation counter/ciphering etc.
hi,
I called com_readAllObjects() this function but association com_getAssociationView() failled it returns ret=260 what should i do
TX:-7E:A0:19:03:41:32:3A:BD:E6:E6:00:C0:01:81:00:0F:00:00:28:00:02:FF:02:00:E2:A7:7E:
Received Size = 139
Received data: 7E:A8:89:41:03:52:CB:AC:E6:E7:00:C4:02:81:00:00:00:00:01:00:82:01:EC:01:43:02:04:12:00:01:11:00:09:06:00:00:00:01:00:FF:02:02:01:02:02:03:0F:01:16:01:00:02:03:0F:02:16:01:00:01:00:02:04:12:00:01:11:00:09:06:00:00:00:01:01:FF:02:02:01:02:02:03:0F:01:16:01:00:02:03:0F:02:16:01:00:01:00:02:04:12:00:01:11:00:09:06:00:00:2A:00:00:FF:02:02:01:02:02:03:0F:01:16:01:00:02:03:0F:02:16:01:00:01:00:02:04:12:00:01:11:42:08:7E:
frame size= 139reading completed 2 : 260
The framework will do it automatically. I believe that you are not using the framework. DLMS is a very complicated standard and I strongly propose that you should use the framework.
this is for loop in com_readDataBlock()
for (pos = 0; pos != messages->size; ++pos)
{
//Send data.
if ((ret = readDLMSPacket(connection,messages->data[pos], reply)) != DLMS_ERROR_CODE_OK)
{
printf("com_readDataBlock->1 ret: %d\n\r",ret);
return ret;
}
//Check is there errors or more data from server
while (reply_isMoreData(reply))
{
if ((ret = cl_receiverReady(&meterSettings, reply->moreData, &rr)) != DLMS_ERROR_CODE_OK)
{
bb_clear(&rr);
printf("com_readDataBlock->2 ret: %d\n\r",ret);
return ret;
}
if ((ret = readDLMSPacket(connection,&rr, reply)) != DLMS_ERROR_CODE_OK)
{
bb_clear(&rr);
printf("com_readDataBlock->3 ret: %d\n\r",ret);
return ret;
}
bb_clear(&rr);
}
}
Hi,
When I read Association logical name using gxDLMSDirector with low authentication i observed that some profiles have 1=No Access. please check in Image attached. What is the meaning of that.
NoAccess means that you can't use those methods without a higher authentication level. For example with a profile generic object, you can't reset the buffer.
Hi,
Hi,
Meter replies that this is an undefined object. It usually means that your Logical name (1.0.1.8.1.255) or Object type is wrong.
Can you read the meter with GXDLMSDirector? Read the meter with GXDLMSDirector and you can see all the objects that you can read.
BR,
Mikko
Hi,
Hi,
We observed while reading profile generic using gxDLMSDirector that, some times data is reading and some time not. Please help us to read generic profile using gurux and also using embedded c.
Which settings we have to do like invocation counter/ciphering etc.
Hi,
Hi,
Gurux client example does this for you. You should check this out:
https://github.com/Gurux/GuruxDLMS.c/tree/master/GuruxDLMSClientExample
If data is coming randomly, you need to ask the meter manufacturer to fix it.
BR,
Mikko
hi,
hi,
I called com_readAllObjects() this function but association com_getAssociationView() failled it returns ret=260 what should i do
TX:-7E:A0:19:03:41:32:3A:BD:E6:E6:00:C0:01:81:00:0F:00:00:28:00:02:FF:02:00:E2:A7:7E:
Received Size = 139
Received data: 7E:A8:89:41:03:52:CB:AC:E6:E7:00:C4:02:81:00:00:00:00:01:00:82:01:EC:01:43:02:04:12:00:01:11:00:09:06:00:00:00:01:00:FF:02:02:01:02:02:03:0F:01:16:01:00:02:03:0F:02:16:01:00:01:00:02:04:12:00:01:11:00:09:06:00:00:00:01:01:FF:02:02:01:02:02:03:0F:01:16:01:00:02:03:0F:02:16:01:00:01:00:02:04:12:00:01:11:00:09:06:00:00:2A:00:00:FF:02:02:01:02:02:03:0F:01:16:01:00:02:03:0F:02:16:01:00:01:00:02:04:12:00:01:11:42:08:7E:
frame size= 139reading completed 2 : 260
Hi,
Hi,
I need all the communication frames to find out what might cause this.
BR,
Mikko
Following are frames i get
Following are frames i get
SNRM Process-> 7E:A0:07:03:41:93:5A:64:7E:
gxUart_write:Received Size = 32
Received data: 7E:A0:1E:41:03:73:8E:7F:81:80:12:05:01:80:06:01:80:07:04:00:00:00:01:08:04:00:00:00:01:53:3B:7E:
frame size= 32Out from read DLMS packets
SNRM Completed
AARQ Process ->7E:A0:40:03:41:10:5F:93:E6:E6:00:60:32: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:06:80:04:6C:6E:74:31:BE:10:04:0E:01:00:00:00:06:5F:1F:04:00:00:1E:1D:FF:FF:39:24:7E:
gxUart_write:Received Size = 57
Received data: 7E:A0:37:41:03:30:21:79:E6:E7:00:61: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:14:02:00:00:07:BC:85:7E:
frame size= 57Out from read DLMS packets
AARQ Completed
connection successful
7E:A0:19:03:41:32:3A:BD:E6:E6:00:C0:01:81:00:0F:00:00:28:00:00:FF:02:00:94:9E:7E:
gxUart_write:Received Size = 139
Received data: 7E:A8:89:41:03:52:CB:AC:E6:E7:00:C4:02:81:00:00:00:00:01:00:82:01:EC:01:43:02:04:12:00:01:11:00:09:06:00:00:00:01:00:FF:02:02:01:02:02:03:0F:01:16:01:00:02:03:0F:02:16:01:00:01:00:02:04:12:00:01:11:00:09:06:00:00:00:01:01:FF:02:02:01:02:02:03:0F:01:16:01:00:02:03:0F:02:16:01:00:01:00:02:04:12:00:01:11:00:09:06:00:00:2A:00:00:FF:02:02:01:02:02:03:0F:01:16:01:00:02:03:0F:02:16:01:00:01:00:02:04:12:00:01:11:42:08:7E:
frame size= 139reading completed 2 : 260
Out from read DLMS packets
com_readDataBlock->1 ret: 260
Association view error
Hi,
Hi,
You don't ask the next frame from the meter. You have only the first frame and all the data can't fit for that one frame.
BR,
Mikko
what should i do?
what should i do?
Hi,
Hi,
The framework will do it automatically. I believe that you are not using the framework. DLMS is a very complicated standard and I strongly propose that you should use the framework.
BR,
Mikko
Hi,
Hi,
I have used com_readAllObjects() as it is from Arduino client example. Still it gives me error
Hi,
Hi,
There is no Receiver Ready in the trace. You need to check why it is missing.
BR,
Mikko
Hello sir, Today i refered
Hello sir, Today i refered Arduino code and called generic profile ("1.0.99.1.0.255") I received following reply
Connecting secure MeterCOnnecting secure-MR
SNRM Process-> 7E:A0:07:03:41:93:5A:64:7E:
gxUart_write:Received Size = 32
Received data: 7E:A0:1E:41:03:73:8E:7F:81:80:12:05:01:80:06:01:80:07:04:00:00:00:01:08:04:00:00:00:01:53:3B:7E:
frame size= 32Out from read DLMS packets
SNRM Completed
AARQ Process ->7E:A0:40:03:41:10:5F:93:E6:E6:00:60:32: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:06:80:04:6C:6E:74:31:BE:10:04:0E:01:00:00:00:06:5F:1F:04:00:00:1E:1D:FF:FF:39:24:7E:
gxUart_write:Received Size = 57
Received data: 7E:A0:37:41:03:30:21:79:E6:E7:00:61: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:14:02:00:00:07:BC:85:7E:
frame size= 57Out from read DLMS packets
AARQ Completed
connection successful
Secure Meter Connected
Reading Gp:
Reading LDn DATAIn com_read7E:A0:19:03:41:32:3A:BD:E6:E6:00:C0:01:81:00:01:00:00:2A:00:00:FF:02:00:17:4D:7E:
gxUart_write:Received Size = 34
Received data: 7E:A0:20:41:03:52:B5:AD:E6:E7:00:C4:01:81:00:09:0E:4C:4E:54:41:32:58:58:58:58:58:58:58:43:35:12:89:7E:
frame size= 34Out from read DLMS packets
In com Read
Reading Clock DATAIn com_read7E:A0:19:03:41:54:0A:BB:E6:E6:00:C0:01:81:00:08:00:00:01:00:00:FF:03:00:BD:CE:7E:
gxUart_write:Received Size = 19
Received data: 7E:A0:11:41:03:74:C8:B9:E6:E7:00:C4:01:81:01:03:05:84:7E:
frame size= 19reading completed 2 : 3
Out from read DLMS packets
com_readDataBlock->1 ret: 3
ReadObject failed
In com ReadIn com_read7E:A0:19:03:41:76:1A:B9:E6:E6:00:C0:01:81:00:08:00:00:01:00:00:FF:02:00:65:D7:7E:
gxUart_write:Received Size = 32
Received data: 7E:A0:1E:41:03:96:2D:CF:E6:E7:00:C4:01:81:00:09:0C:07:E5:08:03:02:10:1D:35:FF:01:4A:00:B7:82:7E:
frame size= 32Out from read DLMS packets
In com Read
Reading Profile Generics DATAIn com_read7E:A0:19:03:41:98:6A:B7:E6:E6:00:C0:01:81:00:07:01:00:63:01:00:FF:03:00:89:5D:7E:
gxUart_write:Received Size = 139
Received data: 7E:A8:89:41:03:B8:9F:E4:E6:E7:00:C4:01:81:00:01:0B:02:04:12:00:08:09:06:00:00:01:00:00:FF:0F:02:12:00:00:02:04:12:00:03:09:06:01:00:0C:1B:00:FF:0F:02:12:00:00:02:04:12:00:03:09:06:01:00:01:1D:00:FF:0F:02:12:00:00:02:04:12:00:03:09:06:01:00:09:1D:00:FF:0F:02:12:00:00:02:04:12:00:03:09:06:01:00:05:1D:00:FF:0F:02:12:00:00:02:04:12:00:03:09:06:01:00:02:1D:00:FF:0F:02:12:00:00:02:04:12:00:03:09:06:01:00:0A:1D:68:D2:7E:
frame size= 139Out from read DLMS packets
com_readDataBlock->2 ret: 260
ReadObject failed
In com Read7E:A0:2C:03:41:DA:D9:F4:E6:E6:00:C0:01:81:00:07:01:00:63:01:00:FF:02:01:02:02:04:06:00:00:00:01:06:00:00:00:02:12:00:01:12:00:00:6B:02:7E:
gxUart_write:Received Size = 19
Received data: 7E:A0:11:41:03:DA:BC:F5:E6:E7:00:C4:01:81:01:03:05:84:7E:
frame size= 19reading completed 2 : 260
Out from read DLMS packets
com_readDataBlock->1 ret: 260
ReadObject failed Not enough memory available.
Profile Generic DoneXXXXXX-------------Closeing Connection-------------XXXXXX
7E:A0:07:03:41:53:56:A2:7E:
gxUart_write:Received Size = 32
Received data: 7E:A0:1E:41:03:73:8E:7F:81:80:12:05:01:80:06:01:80:07:04:00:00:00:01:08:04:00:00:00:01:53:3B:7E:
how to solve this issue
how to solve this issue
Hi,
Hi,
You don't read all the data from the meter. You read only the first frame.
BR,
Mikko
Hi, What should I have to do
Hi, What should I have to do to solve this problem
Hi,
Hi,
The framework is handling this automatically. What example are you using?
BR,
Mikko
I have created code for Atmel
I have created code for Atmel controller by referring Arduino's client example. I can read all data and register object except ProfileGeneric.
Hi,
Hi,
Check that you call com_readDataBlock in com_read. It will send Receiver Ready automatically.
BR,
Mikko
Yes I called com
Yes I called com_readDataBlock in com_read.
this is for loop in com
this is for loop in com_readDataBlock()
for (pos = 0; pos != messages->size; ++pos)
{
//Send data.
if ((ret = readDLMSPacket(connection,messages->data[pos], reply)) != DLMS_ERROR_CODE_OK)
{
printf("com_readDataBlock->1 ret: %d\n\r",ret);
return ret;
}
//Check is there errors or more data from server
while (reply_isMoreData(reply))
{
if ((ret = cl_receiverReady(&meterSettings, reply->moreData, &rr)) != DLMS_ERROR_CODE_OK)
{
bb_clear(&rr);
printf("com_readDataBlock->2 ret: %d\n\r",ret);
return ret;
}
if ((ret = readDLMSPacket(connection,&rr, reply)) != DLMS_ERROR_CODE_OK)
{
bb_clear(&rr);
printf("com_readDataBlock->3 ret: %d\n\r",ret);
return ret;
}
bb_clear(&rr);
}
}
Hi,
Hi,
When I read Association logical name using gxDLMSDirector with low authentication i observed that some profiles have 1=No Access. please check in Image attached. What is the meaning of that.
Hi,
Hi,
NoAccess means that you can't use those methods without a higher authentication level. For example with a profile generic object, you can't reset the buffer.
BR,
Mikko