1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Выделение фронтов.

ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)

Модератор: Глоб.модераторы

Закрыто

Автор темы
dvsyut
здесь недавно
здесь недавно
Сообщения: 12
Зарегистрирован: 26 фев 2019, 10:53
Имя: Денис
Благодарил (а): 2 раза

Выделение фронтов.

Сообщение dvsyut »

Добрый день. Вопрос по использованию выделению фронтов ( (P), (N) ). В документации написано, что нужно хранить информацию о бите нужно в меркерной памяти(М), но используя временные локальные данные (L область. В любом блоке создать переменную в разделе Temp, и ее использовать в качестве фронта.), результат такой же. То есть можно не тратиться на меркеры для фронтов?

P.s: просто не понимаю не много, ведь в этом бите хранится результат состояния отслеживаемого бита и при последующем цикле область временных данных стирается, как тогда фронт все равно определяется, независимо положительный или отрицательный?
Спасибо.
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Выделение фронтов.

Сообщение megavolt86 »

dvsyut писал(а): 26 апр 2022, 10:07 В любом блоке создать переменную в разделе Temp, и ее использовать в качестве фронта
Тоесть имеется ввиду функциональный блок? Про него не скажу, но вот в функции не хранится ничего...
В качестве фронта вы эту переменную не используете ибо фронт — это событие, а не переменная. Переменная нужна для хранения значения состояния на предыдущем цикле выполнения подпрограммы.

P. S. : Чтобы не катать вату, прикладывайте скриншоты, там и будем думать/рассуждать.
:ext_secret:

Автор темы
dvsyut
здесь недавно
здесь недавно
Сообщения: 12
Зарегистрирован: 26 фев 2019, 10:53
Имя: Денис
Благодарил (а): 2 раза

Выделение фронтов.

Сообщение dvsyut »

megavolt86, Да, Вы правы. Опробовал сейчас. Ни в FC ни в FB используя временный переменные фронт не отлавливается. Я пробовал в OB1 и там фронт работает с времен. переменной. Я думаю это плохая практика, используя такой способ, но все же, почему так!?

Изображение

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5790
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 673 раза
Поблагодарили: 840 раз

Выделение фронтов.

Сообщение Ryzhij »

Я не считаю себя большим специалистом в утончённой организации памяти Siemens, но ни в одном из известных мне PLC и PAC локальная переменная не годится для хранения предыдущего значения булевого сигнала (переменной).
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
Аватара пользователя

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 30 раз
Поблагодарили: 165 раз

Выделение фронтов.

Сообщение aranea »

TEMP переменные могут быть перезаписаны случайным образом, их сохранность не гарантируется
TEMP переменные подходят, если каждый цикл вызова сначала записываешь значение, а ниже считываешь
для сохранения значений переменных между циклами вызова нужно использовать в FB секцию STATIC, она сохраняется в соответствующей DB и поэтому не затирается
в меркерах фронты можно хранить на каких-то небольших проектах, типа учебных
но если используются FB для тиражирования (или ООП), само собой логичнее использовать STATIC, чем каждому экземпляру подсовывать свои меркеры на IO
Изображение
Закрыто

Вернуться в «Simatic Step7»