Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 21

Тема: Вызов FB из FB

  1. #1

    По умолчанию Вызов FB из FB

    Здравствуйте!
    В программе имеется FB1, внутри которого есть FB2.
    Возникла необходимость сделать несколько экземпляров FB1 (внутри которого есть FB2, а так же BLINK, _R_TRIG и тд.)
    И так, делаю несколько экземпляров FB1, корректно-ли при этом будет работать FB2, а так же BLINK, _RTRIG и т.д.?
    Или нужно делать экземпляры и для FB2 в каждом FB1?

  2. #2

    По умолчанию

    Зависит от того, есть ли в FB1, FB2 глобальные переменные.

  3. #3

    По умолчанию

    Зависит от того, есть ли в FB1, FB2 глобальные переменные.
    И у FB1 и у FB2 есть входные и выходные переменные.
    Во вкладке РЕСУРСЫ\Глобальные переменные - пусто.
    Все равно у меня сомнение, что будет работать корректно...
    Ведь получается, что все мои N экземпляров DB1 будут вызывать DB2 с одним и тем же "экземплярным блоком данных"
    Кроме того, у блинк и триг тоже свои экземпляры или я что-то путаю?
    Где я не прав? Поправьте, пожалуйста
    Последний раз редактировалось werg; 01.04.2016 в 21:29.

  4. #4
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,251

    По умолчанию

    Не замарачивайся. Глубина вложенности не имеет значения
    Экземпляров_будет := N (уровень 1) [* M(уровень 2) [* K(уровень3 ) ...]]
    Последний раз редактировалось Валенок; 01.04.2016 в 22:23.

  5. #5

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Не замарачивайся. Глубина вложенности не имеет значения
    Экземпляров_будет := N (уровень 1) [* M(уровень 2) [* K(уровень3 ) ...]]
    А проще можно ответить?
    Будет работать программа, где несколько экземпляров FB1, внутри которого(ых) один и тот же FB2?

  6. #6
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,251

    По умолчанию

    Вопрос типа - "Доктор, я жить буду ?"
    Работать будет всегда и везде любая программа. Вот результаты работы могут не совпасть с ожиданиями.
    Почитайте любую лит-ру про структуры/классы и т.п. про их описания и экземпляры.

  7. #7

    По умолчанию

    werg, а можете начать с описания задачи, а не с того, как можно неправильно написать.
    У Вас есть несколько экземпляров FB1. При каждом новом экземпляре CODESYS будет требовать объявить его (дать персональное имя). Это основа работы с FB - при добавлении экземпляра его надо объявлять, и выполняться будет не сам блок, а именно его экземпляр (это видно при отладке).
    Если Вы создаете 2 FB1 (FB1_1 и FB1_2), то:
    1. Вам нужно в каждом экземпляре вызывать свой экземпляр блока FB2? (FB2_1...)?
    2. Вам нужно во всех экземплярах FB1_... вызывать один и тот же экземпляр блока FB2?

  8. #8

    По умолчанию

    Благодарю за отзывчивость.
    Если Вы создаете 2 FB1 (FB1_1 и FB1_2), то:
    1. Вам нужно в каждом экземпляре вызывать свой экземпляр блока FB2? (FB2_1...)?
    2. Вам нужно во всех экземплярах FB1_... вызывать один и тот же экземпляр блока FB2?
    FB1, в моем случае, это "обвязка" для FB2, являющегося ПИД регулятором.
    Естественно ПИД должен быть разным для N экземпляров.
    В общем я понял, что мой случай - это второй вариант, причем вместо экземпляров FB1 можно сделать N FC, в каждой из которых будет свой экземпляр FB2.
    Прояснилось, спасибо!

    Еще вопрос: для BLINK, _R_TRIG и тд. в "теле" FB, 1 тоже нужны экземпляры как для FB2 или нет?

  9. #9
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    Цитата Сообщение от werg Посмотреть сообщение
    А проще можно ответить?
    Будет работать программа, где несколько экземпляров FB1, внутри которого(ых) один и тот же FB2?
    Будет, если внутри этих блоков не будут использоваться глобальные переменные.

  10. #10

    По умолчанию

    Цитата Сообщение от amn Посмотреть сообщение
    Будет, если внутри этих блоков не будут использоваться глобальные переменные.
    Будет-ли работать корректно? Если FB 2 - это ПИД регулятор, а FB1, который его вызывает используется для регулирования N разных систем?
    ?

Страница 1 из 3 123 ПоследняяПоследняя

Похожие темы

  1. Ответов: 3
    Последнее сообщение: 08.12.2014, 22:16
  2. Вызов POU на языке LD
    от ZPavel в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 28.02.2012, 00:55
  3. вызов программ
    от woffka в разделе ПЛК1хх
    Ответов: 13
    Последнее сообщение: 13.12.2010, 11:08

Ваши права

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