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

Тема: Как создать массивы с переменными и вызвать их при изменении другой переменной

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #2

    По умолчанию

    Во-первых, не понятно что такое за "recipe11", "recipe12" и прочие. Все переменные нужно называть понятно и ясно так, чтобы по их названию можно было понять их назначение.
    Во-вторых, не ясно, каким образом переменные редактируются-то. Тема создана в разделе "CodeSys v2", где напрямую нет никаких экранов, SCADA и прочих средств редактирования и ввода. И где это всё отображается?
    В-третьих, чтобы удобно сохранять несколько логически связанных штуковин (рецепт из нескольких настроек), используй структуру STRUCT (почитай справку по CodeSys про это). Ну что-то типа:
    Код:
    TYPE RecpValues :
    STRUCT
    	Param1   :WORD; (* Дать нормальные имена по назначению *)
    	Param2   :WORD;
    	Param3   :WORD;
    	Param4   :WORD;
    END_STRUCT
    END_TYPE
    Тогда описывать твои рецепты можно уже или как массив рецептов:
    Код:
    VAR RETAIN (* Для примера - сохранение в памяти ПЛК - RETAIN-переменные *)
         RecpSettings: ARRAY [1..10] OF RecpValues;
    END_VAR
    А получать доступ по номеру рецепта к этому массиву
    Код:
    VAR
         SelectedRecp  : INT;   (* Номер текущего выбранного рецепта в массиве *)
    END_VAR
    ...
    ...
    RecpSettings[SelectedRecp].Param1 (* Обращение к переменным текущего рецепта *)
    RecpSettings[SelectedRecp].Param2
    Ну и надо будет тогда написать некую штуковину вида "Показать на экране рецепт", которая получает ссылку на структуру рецепта (RecpValues) и отображает её поля, и хреновину вида "Отредактировать на экране рецепт", которая записывает данные с экрана (настройки) в структуру рецепта (RecpValues).
    И им передавать эту самую ссылку на текущий рецепт RecpSettings[SelectedRecp].
    Последний раз редактировалось Алексеев Савр; 12.05.2021 в 09:15.

Похожие темы

  1. Ответов: 7
    Последнее сообщение: 23.05.2024, 02:32
  2. Динамические массивы в ST ???
    от garfild4232 в разделе Помощь Разработчикам
    Ответов: 3
    Последнее сообщение: 02.03.2016, 09:24
  3. Запись в переменной из другой FB
    от DmitriiAnyushin в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 22.09.2015, 15:12
  4. Событие при изменении значения
    от S.A.D. в разделе Master SCADA 3
    Ответов: 2
    Последнее сообщение: 07.07.2011, 10:31
  5. как вызвать callback?
    от Ушаков Николай в разделе ПЛК1хх
    Ответов: 16
    Последнее сообщение: 16.10.2007, 16:29

Ваши права

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