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

Тема: MasterSCADA 4D, Resize_array()

  1. #1

    По умолчанию MasterSCADA 4D, Resize_array()

    Добрый день, коллеги!
    Подскажите, как использовать функцию RESIZE_ARRAY();. Там три входных параметра и не очень ясно, что туда нужно передавать.

  2. #2

    По умолчанию

    IN1 - входной массив
    IN2 - значения для новых элементов
    IN3 - новое количество элементов
    Q - получившийся измененный массив

  3. #3

    По умолчанию

    Цитата Сообщение от SCADAMaster4D Посмотреть сообщение
    IN1 - входной массив
    IN2 - значения для новых элементов
    IN3 - новое количество элементов
    Q - получившийся измененный массив
    Спасибо за ответ! Но появился новый вопрос: У меня объявлен безразмерный массив структур для передачи данных в таблицу данных. С помощью 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;

  4. #4

    По умолчанию

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

    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

Похожие темы

  1. Плк 160 и masterscada
    от evilscorp в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 19.01.2018, 16:49
  2. MasterScada или нет?
    от AlexSotnikov в разделе Master SCADA 3
    Ответов: 3
    Последнее сообщение: 18.12.2017, 10:32
  3. MasterScada 3.8
    от oleg1821 в разделе Master SCADA 3
    Ответов: 19
    Последнее сообщение: 07.05.2017, 01:48
  4. конвертация проекта из Masterscada 3.5 в Masterscada 3.4
    от Сергей_SPB в разделе Master SCADA 3
    Ответов: 2
    Последнее сообщение: 01.04.2013, 17:56
  5. MasterSCADA и ШД
    от sgm в разделе Трёп (Курилка)
    Ответов: 6
    Последнее сообщение: 05.08.2009, 06:33

Ваши права

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