Добрый день. Вопрос по использованию выделению фронтов ( (P), (N) ). В документации написано, что нужно хранить информацию о бите нужно в меркерной памяти(М), но используя временные локальные данные (L область. В любом блоке создать переменную в разделе Temp, и ее использовать в качестве фронта.), результат такой же. То есть можно не тратиться на меркеры для фронтов?
P.s: просто не понимаю не много, ведь в этом бите хранится результат состояния отслеживаемого бита и при последующем цикле область временных данных стирается, как тогда фронт все равно определяется, независимо положительный или отрицательный?
Спасибо.
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Выделение фронтов.
Модератор: Глоб.модераторы
-
- эксперт
- Сообщения: 1172
- Зарегистрирован: 14 ноя 2013, 20:35
- Имя: Анатолий Сергеевич
- Страна: Россия
- город/регион: Башкортостан
- Благодарил (а): 13 раз
- Поблагодарили: 68 раз
Выделение фронтов.
Тоесть имеется ввиду функциональный блок? Про него не скажу, но вот в функции не хранится ничего...
В качестве фронта вы эту переменную не используете ибо фронт — это событие, а не переменная. Переменная нужна для хранения значения состояния на предыдущем цикле выполнения подпрограммы.
P. S. : Чтобы не катать вату, прикладывайте скриншоты, там и будем думать/рассуждать.
-
- здесь недавно
- Сообщения: 12
- Зарегистрирован: 26 фев 2019, 10:53
- Имя: Денис
- Благодарил (а): 2 раза
Выделение фронтов.
megavolt86, Да, Вы правы. Опробовал сейчас. Ни в FC ни в FB используя временный переменные фронт не отлавливается. Я пробовал в OB1 и там фронт работает с времен. переменной. Я думаю это плохая практика, используя такой способ, но все же, почему так!?
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 840 раз
Выделение фронтов.
Я не считаю себя большим специалистом в утончённой организации памяти Siemens, но ни в одном из известных мне PLC и PAC локальная переменная не годится для хранения предыдущего значения булевого сигнала (переменной).
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- знаток Eplan
- Сообщения: 1136
- Зарегистрирован: 21 сен 2012, 22:45
- Имя: aranea
- Благодарил (а): 30 раз
- Поблагодарили: 165 раз
Выделение фронтов.
TEMP переменные могут быть перезаписаны случайным образом, их сохранность не гарантируется
TEMP переменные подходят, если каждый цикл вызова сначала записываешь значение, а ниже считываешь
для сохранения значений переменных между циклами вызова нужно использовать в FB секцию STATIC, она сохраняется в соответствующей DB и поэтому не затирается
в меркерах фронты можно хранить на каких-то небольших проектах, типа учебных
но если используются FB для тиражирования (или ООП), само собой логичнее использовать STATIC, чем каждому экземпляру подсовывать свои меркеры на IO
TEMP переменные подходят, если каждый цикл вызова сначала записываешь значение, а ниже считываешь
для сохранения значений переменных между циклами вызова нужно использовать в FB секцию STATIC, она сохраняется в соответствующей DB и поэтому не затирается
в меркерах фронты можно хранить на каких-то небольших проектах, типа учебных
но если используются FB для тиражирования (или ООП), само собой логичнее использовать STATIC, чем каждому экземпляру подсовывать свои меркеры на IO