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

Тема: Выполнить действия перед выполнением основной задачи.

  1. #1

    По умолчанию Выполнить действия перед выполнением основной задачи.

    Доброго времени суток.

    Есть задача: при включение ПЛК провести проверку работоспособность устройства (дождаться пока на определенных входах появятся нули) это занимает примерно 12 сек.

    И тут возникает вопрос как это правильно сделать.
    1. Я пытался разместить в начале основной программы TON с соответствующей задержкой, предполагая, что основная программа продолжит выполнение после отработки таймера, но это не так.

    2. Я пробовал разместить TON в отдельной программе и запускать по системном событию OnStart. Но там другие проблемы возникли.

    3. Запустить TON как и в первом случае и в SCADA запретить пользователю, что-либо делать, пока не прошла проверка.

    Есть определенные не понимания работы ПЛК (хотя просмотрел много разной информации в том числе Петрова).

    Посоветуйте как правильно решить эту проблему.

    Для понимания работы ПЛК:
    1. Системные события "start - Called when program start". При запуске основной программы запускается еще та,
    которая указана в настройках (Допустим START_POU).
    Какой механизм выполнения? Основная программа ждет пока выполниться Start_POU?

    Спасибо большое!

  2. #2

    По умолчанию

    Лучше, конечно, задействовать вход, на котором Ваше устройство сообщит о готовности. Но если по времени, то ...
    Код:
    tmrStart:     TON := (PT := T#12s);
    
    
    tmrStart(IN := TRUE);
    IF tmrStart.Q THEN
       // Выполнение основной программы (ее можно вызывать как отдельное POU)
    END_IF

  3. #3

    По умолчанию

    If bit=0 then
    Bit:=1;
    End_if
    А теперь запускай таймер... По этому биту.

  4. #4

    По умолчанию

    В ПЛК программа выполняется циклами, каждый цикл 1-10 мс. И не надо мешать ему работать.
    Если вам надо, делается просто, ставятся условия в дополнительных программах и ФБ. Из программы PLC_PRG каждый цикл, идёт обращение к этим программам ( условие ставится в начале кода каждой программы или ФБ, где вам надо). Пока условие не выполняется, программы не работают целиком.
    Кроме того в программе можно добавить действие, где будут инициализироваться нужные уставки.
    Или если надо сравнивать уставки с 0 и после прочтения уставок, запускать остальные программы.
    Последний раз редактировалось kondor3000; 12.11.2023 в 20:00.

  5. #5

    По умолчанию

    при включение ПЛК провести проверку работоспособность устройства (дождаться пока на определенных входах появятся нули)
    и эту проверку выполняет тот же ПЛК?
    при включение ПЛК
    а зачем его выключать?
    (дождаться пока на определенных входах появятся нули)
    а каким образом при "выключенном" ПЛК на этих выходах будет 1?
    хорошо, наконец-то не дождались? и что дальше?

  6. #6

    По умолчанию

    Всем большое спасибо, за ответы, многое стало понятно.

  7. #7

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Вы в курсе, что даже если плк находится в стопе, конфигурация с модбас слейвом уже будет работать и со скады можно что либо записать в неё

    изучите как работает RETURN если еще не знаете и пока Ваш таймер в фальш, вставив ретурн остальной код ниже не будет выполняться
    В том и дело, что я хочу запретить (сделать не активными кнопки в SCADA) пользователю любые действия пока не прошла проверка. Будет висеть сообщение о том, что идет проверка.

  8. #8

    По умолчанию

    Цитата Сообщение от In_Da_Cher_A Посмотреть сообщение
    и эту проверку выполняет тот же ПЛК?
    а зачем его выключать?
    а каким образом при "выключенном" ПЛК на этих выходах будет 1?
    хорошо, наконец-то не дождались? и что дальше?
    Устройство приезжает на объект, падают питание, запускается ПЛК, и нужно в первую очередь проверить работоспособность механического прибора (привод, который включает концевики). Если прибор не исправен, вывести сообщение в SCADA, дальнейшая работа с устройством невозможна.

  9. #9

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    В ПЛК программа выполняется циклами, каждый цикл 1-10 мс. И не надо мешать ему работать.
    Если вам надо, делается просто, ставятся условия в дополнительных программах и ФБ. Из программы PLC_PRG каждый цикл, идёт обращение к этим программам ( условие ставится в начале кода каждой программы или ФБ, где вам надо). Пока условие не выполняется, программы не работают целиком.
    Кроме того в программе можно добавить действие, где будут инициализироваться нужные уставки.
    Или если надо сравнивать уставки с 0 и после прочтения уставок, запускать остальные программы.
    Т.е. правильнее будет, всю программу разбить на отдельные модули, а в основной делать вызов подпрограмм в зависимости от условий

  10. #10

    По умолчанию

    Цитата Сообщение от maskiFest Посмотреть сообщение
    Т.е. правильнее будет, всю программу разбить на отдельные модули, а в основной делать вызов подпрограмм в зависимости от условий
    Да, так и надо, вызовы подпрограмм и ФБ. В некоторых случаях ФБ даже удобней, особенно если они однотипные
    (условно написали работу 1 насоса и вызвали ФБ сколько надо раз, по условию, включаете и выключаете)
    Часть программы, где нет условий или условия TRUE выполняется, часть программы где условия FALSE, пропускается.
    Последний раз редактировалось kondor3000; 13.11.2023 в 23:44.

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 29.05.2020, 10:23
  2. Ответов: 5
    Последнее сообщение: 27.09.2018, 22:40
  3. OPC-server на основной и виртуальной машинах
    от Evgenyi в разделе OPC Серверы
    Ответов: 0
    Последнее сообщение: 28.09.2016, 13:12
  4. Ответов: 3
    Последнее сообщение: 08.12.2014, 22:16
  5. Ответов: 1
    Последнее сообщение: 20.05.2010, 11:16

Метки этой темы

Ваши права

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