Показано с 1 по 6 из 6

Тема: Таблица данных и архив

  1. #1

    По умолчанию Таблица данных и архив

    Добрый день, коллеги!
    Мне необходимо вывести архивные данные в таблицу данных за указанный период времени. Чтение производится с помощью READ_ARCHIVE_DATA, который возвращает безразмерные массивы значений и меток времени. Однако если я создаю безразмерный массив структур (который является источником данных для таблицы данных), то у меня не получается заполнить его значениями из массивов значений и меток времени:
    IF Completed_1 THEN

    FOR i := 1 to Count_1 DO
    ARCH[i].Values := Values_1[i];
    ARCH[i].Times:=Times_1[i];
    END_FOR;

    END_IF;
    А если создать массив структур размера UINT, то в таблице данных будут присутствовать все его элементы (65535), а не только тех, из которых я делал выборку из архива.
    Подскажите, пожалуйста, как в этом случае быть.
    Вложения Вложения

  2. #2

    По умолчанию

    С помощью Resize_array() теперь получилось заполнить его значениями выходных массивов READ_ARCHIVE_DATA() и вывести их в таблицу. Но Resize_array() срабатывает только первый раз. После этого изменение размера больше не происходит, хотя счетчик увеличивается. Код (Completed, Count, Values[], Times [] передаются из READ_ARCHIVE_DATA() ):
    IF Completed THEN
    ARCH := RESIZE_ARRAY(ARCH, Init_Struct, Count);
    FOR i := 1 to Count DO
    ARCH[i].Values := Values[i];
    ARCH[i].Times:=Times[i];
    END_FOR;

    END_IF;
    Вложения Вложения

  3. #3

    По умолчанию

    Разобрался. Так гораздо лучше

    PROGRAM Программа_массив_структур_ID_58520
    VAR_INPUT
    Completed: BOOL := False;
    Count: UINT := 0;
    Values: ARRAY[*] OF LREAL;
    Times: ARRAY[*] OF DATE_AND_TIME;
    END_VAR

    VAR_IN_OUT
    ARCH: ARRAY[*] OF Структура_Values_Times;
    END_VAR

    VAR_OUTPUT
    EnO: BOOL := True;
    END_VAR

    VAR
    i: UINT := 0;
    Init_Struct: Локальная.Структура_Values_Times := (Values := 0, Times := DT#0001-01-01-00:00);
    ARCH_1: ARRAY[*] OF Структура_Values_Times;
    END_VAR




    IF Completed THEN
    ARCH := RESIZE_ARRAY(ARCH_1, Init_Struct, Count_1);
    FOR i := 1 to Count DO
    ARCH[i].Values := Values[i];
    ARCH[i].Times:=Times[i];
    END_FOR;

    END_IF;

    END_PROGRAM

  4. #4

    По умолчанию

    Добрый день.
    Не понял, а составным массивам структуры ARCH_1 присваиваются какие-либо значения? И вот здесь " ARCH := RESIZE_ARRAY(ARCH_1, Init_Struct, Count_1);" Count_1 - это Count, объявленный выше в VAR INPUT, или уже нет?
    Последний раз редактировалось Koozmidg; 05.02.2020 в 11:03.

  5. #5

    По умолчанию

    Сейчас вроде так выглядит:
    PROGRAM Программа_выбор_элемента
    VAR_INPUT
    Выбор: STRING := 'Т_уставки';
    Item: REF_TO := 0;
    END_VAR

    VAR_IN_OUT
    ARCH: My_Lib.Массив_структур_Values_Times;
    END_VAR

    VAR_OUTPUT
    EnO: BOOL := True;
    LinkPar: STRING;
    END_VAR

    VAR
    READ_ARCHIVE_DATA_1: BaseObjects.READ_ARCHIVE_DATA;
    i: UINT := 0;
    Init_Struct: Локальная.Структура_Values_Times := (Values := 0, Times := DT#0001-01-01-00:00);
    ARCH_1: My_Lib.Массив_структур_Values_Times;
    END_VAR



    IF Выбор = 'Y' THEN LinkPar :='Объекты.Объект 1.Y'; Item := 58141; END_IF;
    IF Выбор = 'Y1' THEN LinkPar :='Объекты.Объект 1.Y1'; Item := 58263; END_IF;


    READ_ARCHIVE_DATA_1(Item := Item);

    IF READ_ARCHIVE_DATA_1.Completed THEN
    ARCH := RESIZE_ARRAY(ARCH_1, Init_Struct, READ_ARCHIVE_DATA_1.Count);
    FOR i := 1 to READ_ARCHIVE_DATA_1.Count DO
    ARCH[i].Values := READ_ARCHIVE_DATA_1.Values[i];
    ARCH[i].Times := READ_ARCHIVE_DATA_1.Times[i];
    END_FOR;
    END_IF;

    END_PROGRAM

  6. #6

    По умолчанию

    Спасибо, будем пробовать)

Похожие темы

  1. MasterSCADA 4D Графический элемент 'Таблица данных'.
    от Николай НВ в разделе Master SCADA 4D
    Ответов: 13
    Последнее сообщение: 18.10.2019, 15:08
  2. КМС-Ф1, Таблица 3.1
    от Вольд в разделе Эксплуатация
    Ответов: 3
    Последнее сообщение: 12.07.2018, 15:29
  3. ФБ Таблица
    от Семенов в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 20.10.2016, 20:56
  4. ПЛК323 Архив данных на Micro-SD
    от Alex_Chuy в разделе ПЛК3хх
    Ответов: 1
    Последнее сообщение: 07.10.2016, 13:25
  5. Таблица
    от jus в разделе Master SCADA 3
    Ответов: 5
    Последнее сообщение: 17.04.2015, 19:26

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •