[gtranslate]

Почему вашему ПЛК необходимо немедленно остановиться? Как использовать прерывания ПЛК

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

Оглавление

В Siemens эти процедуры называются OB (Outdoor Observation System). В Rockwell Logix они называются задачами. Представьте себе: вы читаете хорошую книгу. Затем звонит телефон. Вы отмечаете страницу. Вы отвечаете на звонок. Закончив, вы сразу же возвращаетесь к книге.

А ПЛК Принцип работы прерывания во многом схож. Процессор на самом деле не “останавливается”. Вместо этого он приостанавливает логику с более низким приоритетом, обрабатывает срочное событие, а затем возвращается к тому месту, где остановился. Тем не менее, время срабатывания зависит от приоритета, типа триггера и загрузки процессора. Быстрая реакция — это реальность. Просто это не волшебство.

Что такое прерывание ПЛК?

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

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

CS1H-CPU63H

Почему нам нужно, чтобы они остановились?

Представьте себе быстро вращающееся пильное полотно. Вы хотите поймать датчик Остановитесь в нужном месте. Нельзя позволять себе запоздалую реакцию. Если основная логика занимает слишком много времени, машина может продвинуться дальше, чем вам нужно, прежде чем вы выполните обычную задачу.

Событийно-ориентированный код удобен тем, что выполняется при срабатывании триггера, а не в ожидании следующего полного прохождения обычной логики.

Но вот здесь следует быть внимательным. Не всегда нужен специальный трюк с “немедленным выводом”, чтобы быстро повлиять на реальный мир. В Siemens система может передавать разделы образа процесса вывода, назначенные прерыванию OB, независимо от UPDAT_PO.

В Logix задача обычно обрабатывает выходные данные после завершения, если только вы не отключите эту опцию. Поэтому не стоит предполагать, что обычный выходной тег всегда слишком медленный, и не следует полагать, что одна волшебная инструкция решит все проблемы. Сначала проверьте, как ваш ПЛК обновляет входы/выходы. Затем выберите подходящий метод для вашей платформы.

Разные производители используют разные названия. Siemens S7-1200 использует организационные блоки, такие как блоки аппаратных прерываний и блоки циклических прерываний. Logix использует непрерывные, периодические и событийные задачи.

Цель в обоих случаях одна и та же: реагировать в нужный момент, не заставляя весь контроллер ждать. Однако детали зависят от конкретной марки устройства.

Как использовать функцию прерывания ПЛК?

Честно говоря, это довольно просто, если следовать правилам. Люди часто преувеличивают. Можно не усложнять.

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

Пишите быстрый код. Делайте этот код коротким и целенаправленным. Если вы добавите лишнюю работу, вы увеличите задержку и повысите риск наложения функций или проблем с таймаутом.

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

Также следите за наложением событий. В Logix, если задача события запускается повторно, пока она еще выполняется, контроллер игнорирует это перекрывающееся срабатывание.

CP1E-NA20DT-D

Какие виды прерываний существуют?

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

Тип прерыванияЧто это делаетНаилучший вариант использования
Оборудование или событиеЗапускается при возникновении заданного аппаратного или программного события и может прерывать работу с более низким приоритетом.Быстрое изменение краев сенсора, метки регистрации, события HSC или триггеры, связанные с движением.
Периодический или циклическийВыполняется с фиксированным интервалом, вместо того чтобы ждать завершения основного сканирования.Регулярные контрольные работы, требующие соблюдения строгих временных рамок.
Обработка неисправностей или диагностика.Запускается, когда процессор или модуль сообщает о событии, связанном со временем или диагностикой.Выявление случаев превышения лимита сканирования, переполнения очереди или диагностики модулей.

Давайте сравним это с оценкой времени выполнения. Точные цифры всегда зависят от процессора, приоритета, частоты срабатывания триггеров и общей нагрузки на программу. Поэтому используйте это как мысленную карту, а не как каменную табличку.

МетрикаОсновной цикл сканированияАппаратное прерывание / Задача события
Время выполненияВыполняется в рамках обычного циклического выполнения программы, а время выполнения зависит от загрузки и конфигурации вашей программы.Запускается при срабатывании триггера и может прерывать работу с более низким приоритетом, но реальная задержка по-прежнему зависит от приоритета и системной нагрузки.
СрочностьПодходит для стандартной машинной логики и общего упорядочивания действий.Лучше подходит для событий, требующих оперативного реагирования и не ожидающих выполнения стандартной логики.
Длина кодаМожет содержать более широкую машинную логику.Оно должно быть коротким, чтобы завершиться до следующего запуска и избежать проблем с наложением.

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

CJ1W-OD262

Вы совершаете эти серьёзные ошибки?

Я постоянно сталкиваюсь с этим. Не стоит предполагать, что стандартный таймер IEC будет вести себя в однократном прерывании так же, как в OB1 или в обычном циклическом режиме.

Компания Siemens утверждает, что таймер обновляется только тогда, когда выполняется инструкция таймера или когда код считывает ключевые элементы таймера. Это означает, что аппаратное прерывание или задача обработки событий, которая выполняется один раз за триггер, часто приводит к некорректному или вводящему в заблуждение поведению таймера. Циклическое прерывание или периодическая задача отличаются тем, что они выполняются снова и снова.

Кроме того, не следует писать циклы ожидания, чтобы "дождаться" истечения времени. Это всё равно что давить на газ до упора, пока машина стоит в гараже. Вы тратите время выполнения и навлекаете на себя проблемы. Siemens отмечает, что переполнение буфера сканирования, переполнение очереди и конфликты синхронизации прерываний могут вызывать ошибки по времени. В некоторых случаях повторяющиеся ошибки по времени цикла могут привести к остановке процессора.

Ещё одна серьёзная ошибка — это слишком частое использование прерываний. Не каждый маленький датчик заслуживает того, чтобы его прерывали. Компания Rockwell предупреждает, что каждая дополнительная задача отнимает время контроллера у остальных.

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

Обеспечьте свои проекты новыми, оригинальными ПЛК Omron, Mitsubishi, Schneider — в наличии, готовы прямо сейчас!

Заключение

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

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

Старайтесь, чтобы код обработки прерываний был коротким. Длинный код увеличивает задержку и риск наложения событий. 

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

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

Следите за наложениями, переполнением очереди и ошибками, связанными со временем выполнения. Быстрая логика — это здорово. Быстрая логика, которая никогда не завершается, — это катастрофа. 

Связаться с нами

Просто заполните свое имя, адрес электронной почты и краткое описание вашего запроса в этой форме. Мы свяжемся с вами в течение 24 часов.

Эти темы также могут быть вам интересны

нк против чпу

NC против CNC: понимание различий между станками с ЧПУ и ЧПУ

В этой статье мы погружаемся в мир станков с ЧПУ (числовым программным управлением) и ЧПУ (числовым программным управлением), объясняя их ключевые различия и то, почему они так важны в отрасли промышленной автоматизации. Независимо от того, являетесь ли вы опытным профессионалом или новичком в этой области, эта статья предоставит ценную информацию о том, как эти технологии произвели революцию в производстве и почему их стоит изучать.

Читать далее "
студия-5000-logix

Mastering Studio 5000 и RSLogix 5000 для автоматизации

Узнайте, как Studio 5000 Logix Designer и RSLogix 5000 революционизируют промышленную автоматизацию. Это содержательное руководство демистифицирует эти мощные инструменты, делая их доступными для всех, особенно для новичков в программировании ПЛК или тех, кто хочет повысить свои навыки.

Читать далее "

Запросить быструю расценку

*мы уважаем вашу конфиденциальность и вся информация защищена.