When I read the monthly profile, a value is registered there, for example, 2131. After that, I checked the scaler profile. And the value {0.001, active power} is configured for this register. Then I checked the register, and there was a decimal with three digits after the dot. It turns out that a converted value with a scale of 1 was recorded in the monthly profile?
Sorry for my English. I can attach screenshots if you did not understand my question.
Values are saved without scaler to the meter's register and profiles. GXDLMSDirector uses scaler if it's set. Meters are saving values without scalers usually because meters don't use floating-point values.
Also, someone might change the scaler later. Scaler is configurable value in several meters and for this reason, meter saves values always using the same unit.
The idea of scalers is that the client application can show the value in the correct format. Because there is no float data type in most of the meters and value is wanted to show with two decimal like 254.33.
Meter saves integer value 25433 and scaler is set to 0.01. Now a client can show value as double.
The same thing with the kWh. DLMS standard defines only Wh as a unit and if the meter is saving the value in KWh scaler is set to 1000.
Can you check the screenshot? So the meter stores value 2923Wh but GXDLMSDirector converts this to kWh by his own? And this value will be recorded in profile without converting, right?
But you say that "The same thing with the kWh. DLMS standard defines only Wh as a unit and if the meter is saving the value in KWh scaler is set to 1000.". Following this logic, meter should store values in milliwatts. And to get watts, it was necessary to multiply the value by 0.001.
I am trying to understand is this a manufacturer bug or do I not fully understand how it works?
Meter saves this value without scaler. GXDLMSDirector uses scaler to show value in Register and Profile generic objects.
No, Meter will save whatever format it wants to. What I mean is that some meters are saving values in KWh. When the value is read meter returns 1. Because you have read the scaler you will know that this one is not one Wh and you need to multiply it by 1000.
"Because you have read the scaler you will know that this one is not one Wh and you need to multiply it by 1000.". That is what I am talking about. On the screenshot scaler is 0,001. When i get value 2923 it means that i get 2923 milliwatts. And to get only watts i need 2923*0,001. Right? If it is correct then 2.923 Wh impossible value in my case.
Finally figured it out, reread the meter documentation again, it says that this value is stored in kWh, but since you said that meters only work with integers, it turns out that 2923* 0.001 will not be Wh, but kWh. Thank you for your help, now I know what I will pay attention to first.
Hi,
Hi,
Values are saved without scaler to the meter's register and profiles. GXDLMSDirector uses scaler if it's set. Meters are saving values without scalers usually because meters don't use floating-point values.
Also, someone might change the scaler later. Scaler is configurable value in several meters and for this reason, meter saves values always using the same unit.
BR,
Mikko
Thanks for answer. So what is
Thanks for answer. So what is the meaning of scalers? If I understand you correctly, scalers are not used when profiles are being recorded.
Hi,
Hi,
The idea of scalers is that the client application can show the value in the correct format. Because there is no float data type in most of the meters and value is wanted to show with two decimal like 254.33.
Meter saves integer value 25433 and scaler is set to 0.01. Now a client can show value as double.
The same thing with the kWh. DLMS standard defines only Wh as a unit and if the meter is saving the value in KWh scaler is set to 1000.
BR,
Mikko
Can you check the screenshot?
Can you check the screenshot? So the meter stores value 2923Wh but GXDLMSDirector converts this to kWh by his own? And this value will be recorded in profile without converting, right?
But you say that "The same
But you say that "The same thing with the kWh. DLMS standard defines only Wh as a unit and if the meter is saving the value in KWh scaler is set to 1000.". Following this logic, meter should store values in milliwatts. And to get watts, it was necessary to multiply the value by 0.001.
I am trying to understand is this a manufacturer bug or do I not fully understand how it works?
Hi,
Hi,
Meter saves this value without scaler. GXDLMSDirector uses scaler to show value in Register and Profile generic objects.
No, Meter will save whatever format it wants to. What I mean is that some meters are saving values in KWh. When the value is read meter returns 1. Because you have read the scaler you will know that this one is not one Wh and you need to multiply it by 1000.
BR,
Mikko
"Because you have read the
"Because you have read the scaler you will know that this one is not one Wh and you need to multiply it by 1000.". That is what I am talking about. On the screenshot scaler is 0,001. When i get value 2923 it means that i get 2923 milliwatts. And to get only watts i need 2923*0,001. Right? If it is correct then 2.923 Wh impossible value in my case.
Hi,
Hi,
First, I'm speaking in general. I don't know what you try to read and the unit and scaler can be anything.
If the scaler is 0,001 you need to multiple register value by it (2923*0,001) and the actual value is 2.923.
BR,
Mikko
Finally figured it out,
Finally figured it out, reread the meter documentation again, it says that this value is stored in kWh, but since you said that meters only work with integers, it turns out that 2923* 0.001 will not be Wh, but kWh. Thank you for your help, now I know what I will pay attention to first.
Hi,
Hi,
Remember to check the unit as well in the future. Communication is defined in the DLMS standard, but the content of the registers can be anything.
BR,
Mikko