This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DLMS Time



Hi,

Can one please assist me, for execution of internal operation base on time. How they know current time.
I.e if I want to capture a profile in memory at every 15 minute then how it know if 15 minute has expired or not.

Thanks and regard,
Rakesh

  • Hi Rakesh,

    Could you provide some more details about your issue and what you are trying to do? I'm trying to loop in someone familiar with DLMS since you mentioned it in your thread title.

    Regards,
    Katie
  • Most modern meters have an internal RTC for this kind of function. The newer metering devices from TI (the MSP430F67xxx series ones) have a temperature correctable RTC module in hardware. In older devices an accurate low power clock can be built from software. If the meter has DLMS connectivity the RTC can be updated regularly from central system which interrogates the meters, so the clock doesn't need extreme long term accuracy.

  • Hi Katie Pier,

    I am trying to capture load profile in EEPROM at every 15 minutes(as the value Load_Profile_Capture_Period). I am not sure if TI DLMS can count ticks and execute the specified function (Capture_Load_Profile_Data) itself or not. If it can do so, then how?

    I can write routine to write specified data (load profile) periodically in the manner as could be read by DLMS, but if TI DLMS has some routine already written, then I would like to use them.

     I have one more question. while reading Dummy load profile data as already given by TI in Billing_Data.c, the structure " Load_Profile " is use to capture data from const unsigned char "Load_Data" and finally this data is stuffed in array which is pointer by "Data_Buffer" based on Tags in "Load_Profile_Buffer_Template" like "ITEM_TAG_IR_LP","ITEM_TAG_IY_LP","ITEM_TAG_IB_LP" (switch case of function get_string_data();)etc. How it do this?

    Any Hint will be appreciable

    Thanks and Regards,
    Rakesh

  • Storing the load profile information at regular intervals is very much an application dependent requirement. The code from TI doesn't do this.

    The DLMS library uses a template approach to constructing and sending complex data structures. The template looks like the chunk of data that will be sent in a DLMS message when a structure, like a load profile, is read. Where a data item needs to be filled in, a tag e.g. ITEM_TAG_IR_LP - is used in the template. The template interpreter in the DLMS library calls user supplied applications code to provide the value. The example applications code supplied with the DLMS library is very simple. It just returns fixed values when the data items are read. A real application would generally need to retrieve them from a local flash area, an external EEPROM, or an external serial flash chip.
  • Hi Steve,

    I am facing problem in " const uint8_t Billing_Profile_Capture_Objects[] " when reading billing profile its keep sending data on serial link.But when size is reduced form "58" (INJECT16(0x8000 | (58*18 + 1))) to "14" (INJECT16(0x8000 | (14*18 + 1))) it work well.

    Do it have any bug??

    it keep sending following data with different frame sequence no.,

    Request: 03-11-2015 10:15:45.16764 (+0.0000 seconds)

    7E A0 13 03 41 32 94 61 E6 E6 00 C0 02 81 00 00 00 01 73 7F 7E

    Answer: 03-11-2015 10:15:45.29164 (+0.1240 seconds)

    7E A2 18 41 03 52 17 12 E6 E7 00 C4 02 81 00 00 00 00 02 00 82 02 00 3A 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 0D 00 00 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 00 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 01 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 02 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 03 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 04 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 05 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 06 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 07 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 08 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 05 08 00 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 08 08 00 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 00 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 01 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 02 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 03 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 04 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 05 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 06 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 07 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 08 FF 0F 03 12 00 00 02 04 12 00 05 09 06 01 00 01 06 00 FF 0F 02 12 00 00 02 04 12 00 05 09 06 01 00 01 06 00 FF 0F 05 12 00 00 02 04 12 00 05 09 06 01 00 01 06 01 FF 0F 02 12 00 00 02 04 12 00 05 09 06 01 00 01 06 01 FF 0F 05 12 00 00 02 04 12 00 05 09 06 01 00 01 06 02 FF 0F 02 12 00 00 02 04 12 00 05 09 06 01 00 01 06 02 FF 0F 05 12 00 00 02 04 12 00 05 09 06 1C 00 7E

    Request: 03-11-2015 10:15:48.55164 (+0.0000 seconds)

    7E A0 13 03 41 54 A4 67 E6 E6 00 C0 02 81 00 00 00 02 E8 4D 7E

    Answer: 03-11-2015 10:15:48.67564 (+0.1240 seconds)

    7E A2 18 41 03 74 23 56 E6 E7 00 C4 02 81 00 00 00 00 03 00 82 02 00 3A 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 0D 00 00 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 00 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 01 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 02 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 03 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 04 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 05 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 06 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 07 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 01 08 08 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 05 08 00 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 08 08 00 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 00 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 01 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 02 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 03 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 04 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 05 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 06 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 07 FF 0F 03 12 00 00 02 04 12 00 03 09 06 01 00 09 08 08 FF 0F 03 12 00 00 02 04 12 00 05 09 06 01 00 01 06 00 FF 0F 02 12 00 00 02 04 12 00 05 09 06 01 00 01 06 00 FF 0F 05 12 00 00 02 04 12 00 05 09 06 01 00 01 06 01 FF 0F 02 12 00 00 02 04 12 00 05 09 06 01 00 01 06 01 FF 0F 05 12 00 00 02 04 12 00 05 09 06 01 00 01 06 02 FF 0F 02 12 00 00 02 04 12 00 05 09 06 01 00 01 06 02 FF 0F 05 12 00 00 02 04 12 00 05 09 06 20 C4 7E

    Thanks & Regards
    Rakesh 

  • Got The answer....(CHUNK_SIZE) defined is less.
    Thanks& regard
    Rakesh

**Attention** This is a public forum