Jump to content
  • Sign in to follow this  

    Tia Portal – Организационный блок прерывания по времени суток OB10

       (0 reviews)

    leigehong

    В предыдущей статье мы обсуждали, что такое организационный блок, и говорили об одном очень важном организационном блоке, которым является основной OB1.

    В этой статье мы продолжим обсуждение различных OB, и на этот раз мы поговорим об организационных блоках прерывания по времени суток или OB10.

    Содержание:

    • Что такое прерывание по времени суток OB10?
    • Как создать и использовать OB10?
    • Простой пример программы.
    • Важные правила для прерываний по времени суток.
    • Выводы.

    Что такое прерывание по времени суток (OB10)?

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

    В одной программе может быть несколько прерываний по времени суток, они не обязательно должны иметь одинаковую логику или код, каждое из них может иметь свою собственную функциональность, а также каждое из них может быть настроено отдельно для возникновения в указанное время.

    Как создать и использовать OB10?

    Чтобы создать прерывание по времени суток, выполните те же шаги, которые вы бы сделали, если бы вам нужно было добавить любой новый блок в вашу логику. Смотрите рисунок 1.

    145-1.gif

    Рисунок 1 — Добавление прерывания по времени суток

    Нажмите опцию Добавить новый блок в дереве проекта слева, выберите организационный блок, а затем выберите прерывание по времени суток, как показано на предыдущем рисунке.

    Теперь вы можете открыть OB10 и добавить любую логику ПЛК, которую вы хотите выполнить при вызове этого блока, под вызовом мы подразумеваем, что произошло событие прерывания или время, и поэтому операционная система прервет основной цикл и выполнит OB10.

    Мы напишем очень простой код в OB10, чтобы лучше понять, как работает этот блок OB10. В этой логике мы использовали инструкцию add для добавления значения 1 в область памяти, которую мы назвали TimeOfDayInterruptCounter, а затем поместили результат суммирования обратно в ту же область. Таким образом, у нас может быть счетчик для выполнения OB10.

    Каждый раз, когда OB10 будет вызываться и выполняться, значение TimeOfDayInterruptCounter будет увеличиваться на 1. Смотрите рисунок 2.

    145-2.gif

    Рисунок 2 — Добавьте свою логику в OB10

    Теперь, когда мы создали OB10 и написали некоторую логику внутри, нам нужно настроить установленное время OB10 и то, сколько раз мы хотим, чтобы он прерывал наш основной цикл.

    Чтобы настроить время и интервал OB10, нам нужно перейти на страницу свойств OB10. См. рисунок 3.

    145-3.gif

    Фото 3 – Свойства OB10

    В свойствах OB10 вы найдете множество настроек и атрибутов, которые можно настроить.

    Теперь нам нужна страница прерывания по времени суток, чтобы мы могли настроить, когда и сколько раз будет вызываться OB10. См. рисунок 4.

    145-4.gif

    Фото 4 – Настройка прерывания по времени суток

    Как видно из последнего рисунка, вы можете установить выполнение OB10, дату начала и время суток, в которое должен выполняться OB10.

    Для симуляции мы сделали интервал выполнения равным каждой минуте, чтобы каждую минуту OB10 вызывался и выполнялся. Это означает, что начиная с даты 23.03.2023 и времени 09:25 утра значение TimeOfDayInterruptCounter будет увеличиваться на 1 каждую минуту.

    У вас есть возможность установить время в соответствии с системным временем ПЛК или местным временем, как вы видите на последней картинке. В предыдущей статье мы говорили о системном и местном времени ПЛК, о том, что означает каждое время, и о том, как их настроить и использовать.

    Как мы уже говорили ранее, местное время — это время, которое вы видите сейчас на своем ПК. Таким образом, это фактическое время региона, в котором будет использоваться ПЛК.

    Вам необходимо настроить местное время для ПЛК в зависимости от того, где он будет использоваться. См. картинку 5.

    145-5.gif

    Рисунок 5 — Установка местного времени для ПЛК

    Простой пример программы ПЛК

    Мы добавили прерывание по времени суток OB10 в нашу программу ПЛК и настроили его так, чтобы оно выполнялось каждую минуту. Мы также настроили локальное время ПЛК.

    Мы создали простую логику инструкции ADD для накопления значения TimeOfDayInterruptCounter на 1 каждый раз, когда выполняется OB10.

    Мы добавим еще одну инструкцию, но в основном OB1 эта инструкция — RD_LOC_T или чтение локального времени, поэтому мы можем видеть, как изменяется локальное время, и сравнивать его с выполнением OB10. Смотрите рисунок 6.

    145-6.gif

    Фото 6 — Простой пример программы

    Скомпилируйте программу ПЛК и запустите новую симуляцию.

    Обратите внимание, что мы установим время возникновения прерывания дня, чтобы OB10 можно было вызвать и выполнить, пока мы симуляцию логики ПЛК. Смотрите следующую симуляцию.

    spacer.png

    Как вы видите из анимации, значение TimeOfDayInterruptCounter в начале равно нулю, а затем оно будет увеличиваться на 1 каждую минуту, начиная с 09:25 утра, указывая, что OB10 выполняется каждую минуту.

    Важные правила для прерываний по времени суток

    • Если вы устанавливаете прерывание по времени таким образом, что соответствующий OB должен быть обработан один раз, время начала не должно быть в прошлом (относительно часов реального времени ЦП).
    • Если вы устанавливаете прерывание по времени таким образом, что соответствующий OB должен быть обработан периодически, но время начала находится в прошлом, то OB прерывания по времени обрабатывается в следующий раз, когда он должен быть выполнен в соответствии с текущим временем.
    • Дата периодических прерываний по времени должна соответствовать реальной дате. Например, ежемесячное повторение OB прерывания по времени с датой начала 1/31 невозможно. В этом случае OB запускается только в месяцы, в которых 31 день.
    • Временное прерывание, активированное во время запуска, не выполняется до тех пор, пока запуск не будет завершен.
    • Запуск удаляет все временные прерывания, которые были установлены и активированы инструкцией в пользовательской программе.

    Заключение

    OB10 — это организационный блок, который можно настроить для прерывания цикла вашей программы в определенный день и время. Это прерывание может происходить либо один раз, либо периодически через определенное количество времени.

    Нет конкретной причины, по которой вам может понадобиться OB10, поскольку это зависит от вашего процесса и вашей логики. И да, вы можете достичь той же функциональности, используя свой личный код, но это доступная и простая в использовании встроенная функция. И вы знаете, как ею пользоваться.

    Sign in to follow this  


    User Feedback

    Create an account or sign in to leave a review

    You need to be a member in order to leave a review

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

    There are no reviews to display.


Apply for friendship links:WhatsApp or E-mail: admin@plchmis.com
×
×
  • Create New...