что такое рабочий цикл плк
Тема 2.3. Программный ПЛК, рабочий цикл и время реакции контроллера
Программные приложения, имитирующие технологию ПЛК на компьютере (оснащенном платами ввода-вывода), получили название программный ПЛК (soft PLC). Программная эмуляция
ПЛК удобна тем, что благодаря наличию многозадачной операционной системы можно совместить в одном месте контроллер, среду программирования и систему диспетчерского управления.
Существенный минус такого решения — большое время выхода на рабочий режим после включения питания или зависания компьютера. Особенно опасно, если перезапуск произвел «сторожевой таймер» в автоматическом режиме, в то время как состояние исполнительных механизмов не соответствует исходным позициям. Загрузка операционной системы может отнимать несколько минут, все это время система оказывается неуправляемой. Для ПЛК время «холодного» запуска измеряется миллисекундами.
Для достижения сравнимых с ПЛК технических показателей по надежности компьютер, конечно, должен быть промышленного исполнения (на базе магистралей РС/104 или УМЕ), а не дешевый офисный «по пате».
Задачи управления требуют непрерывного циклического контроля. В любых цифровых устройствах непрерывность достигается за счет применения дискретных алгоритмов, повторяющихся через достаточно малые промежутки времени. Таким образом, вычисления в ПЛК всегда повторяются циклически. Одна итерация,включающая замер, обсчет и выработку воздействия, называется рабочим циклом ПЛК. Выполняемые действия зависят от значения входов контроллера, предыдущего состояния и определяются
пользовательской программой.
По включению питания ПЛК выполняет самотестирование и настройку аппаратных ресурсов, очистку оперативной памяти данных (ОЗУ), контроль целостности прикладной программы пользователя. Если прикладная программа сохранена в памяти, ПЛК переходит к основной работе, которая состоит из постоянного повторения последовательности действий, входящих в рабочий цикл.
Рабочий цикл ПЛК состоит из нескольких фаз.
2. Чтение состояния входов.
3. Выполнение кода программы пользователя.
4. Запись состояния выходов.
5. Обслуживание аппаратных ресурсов ПЛК.
6. Монитор системы исполнения.
7. Контроль времени цикла.
8. Переход на начало цикла.
В самом начале цикла ПЛК производит физическое чтение входов. Считанные значения размещаются в области памяти входов. Таким образом, создается полная одномоментная зеркальная копия значений входов.
Далее выполняется код пользовательской программы. Пользовательская программа работает с копией значений входов и выходов, размещенной в оперативной памяти. Если прикладная программа не загружена или остановлена, то данная фаза рабочего цикла, естественно, не выполняется. Отладчик системы программирования имеет доступ к образу входов-выходов, что позволяет управлять выходами вручную и проводить исследования работы датчиков.
После выполнения пользовательского кода физические выходы ПЛК приводятся в соответствие с расчетными значениями (фаза 4).
Обслуживание аппаратных ресурсов подразумевает обеспечение работы системных таймеров, часов реального времени, оперативное самотестирование, индикацию состояния и другие аппаратно-зависимые задачи.
Монитор системы исполнения включает большое число функций, необходимых при отладке программы и обеспечении взаимодействия с системой программирования, сервером данных и сетью. В функции системы исполнения обычно включается: загрузка кода программы в оперативную и электрически перепрограммируемую память, управление последовательностью выполнения задач, отображение процесса выполнения программ, пошаговое выполнение, обеспечение просмотра и редактирования значений переменных, фиксация и трассировка значений переменных, контроль времени цикла и т. д.
Пользовательская программа работает только с мгновенной копией входов. Таким образом, значения входов в процессе выполнения пользовательской программы не изменяются в пределах одного рабочего цикла. Это фундаментальный принцип построения ПЛК сканирующего типа. Такой подход исключает неоднозначность алгоритма обработки данных в различных его ветвях. Кроме того, чтение копии значения входа из ОЗУ выполняется значительно быстрее, чем прямое чтение входа. Аппаратно чтение входа может быть связано с формированием определенных временных интервалов, передачей последовательности команд для конкретной микросхемы или даже запросом по сети.
Если заглянуть глубже, то нужно отметить, что не всегда работа по чтению входов полностью локализована в фазе чтения входов. Например, АЦП обычно требуют определенного времени с момента запуска до считывания измеренного значения. Часть работы системное программное обеспечение контроллера выполняет по прерываниям. Грамотно реализованная система исполнения нигде и никогда не использует пустые циклы ожидания готовности аппаратуры. Для прикладного программиста все эти детали не важны. Существенно только то, что значения входов обновляются автоматически исключительно в начале каждого
рабочего цикла.
Общая продолжительность рабочего цикла ПЛК называется временем сканирования. Время сканирования в значительной степени определяется длительностью фазы кода пользовательской программы. Время, занимаемое прочими фазами рабочего цикла, практически является величиной постоянной. Для задачи среднего объема в ПЛК с системой исполнения CoDeSys время распределится примерно так: 98% пользовательская программа, 2% все остальное.
Существуют задачи, в которых плавающее время цикла существенно влияет на результат, например это автоматическое регулирование. Для устранения этой проблемы в развитых ПЛК предусмотрен контроль времени цикла. Если отдельные ветви кодауправляющей программы выполняются слишком быстро, в рабочий цикл добавляется искусственная задержка. Если контроль времени цикла не предусмотрен, подобные задачи приходится решать исключительно по таймерам.
Время реакции — это время с момента изменения состояния системы до момента выработки соответствующей реакции. Очевидно, для ПЛК время реакции зависит от распределения моментов возникновения события и начала фазы чтения входов. Если изменение значений входов произошло непосредственно перед фазой чтения входов, то время реакции будет наименьшим и равным времени сканирования (рис. 1.5). Худший случай, когда изменение значений входов происходит сразу после фазы чтения входов. Тогда время реакции будет наибольшим, равным удвоенному времени сканирования минус время одного чтения входов.
Иными словами, время реакции ПЛК не превышает удвоенного времени сканирования.
Рис. 2.2. Время реакции ПЛК
Помимо времени реакции ПЛК, существенное значение имеет время реакции датчиков и исполнительных механизмов, которое также необходимо учитывать при оценке общего времени реакции системы.
Существуют ПЛК, которые реализуют команды непосредственного доступа к аппаратуре входов и выходов, что позволяет обрабатывать и формировать отдельные сигналы с длительностью меньшей длительности рабочего цикла.
Для уменьшения времени реакции сканирующих контроллеров алгоритм программы разбивается на несколько задач с различным периодом исполнения. В наиболее развитых системах пользователь имеет возможность создавать отдельные программы, исполняемые по прерыванию, помимо кода, исполняемого в рабочем цикле. Такая техника позволяет ПЛК существенно форсировать ограничение реакции временем сканирования при небольшом количестве входов, требующих сверхскоростной реакции.
Время цикла сканирования является базовым показателем быстродействия ПЛК. При измерении времени рабочего цикла пользовательская программа должна содержать 1К логических команд. Для ПЛК, поддерживающих стандарт МЭК 61131-3, используют команды на языке IL. Иногда изготовители приводят несколько значений времени цикла, полученных при работе с переменными различной разрядности.
Ориентировочно о скорости обработки различных типов данных можно судить по тактовой частоте и разрядности центрального процессора. Хотя нет ничего удивительного в том, что восьмиразрядные ПЛК не редко оказываются быстрее 32-разрядных при выполнении битовых операций. Объясняется это тем, что в 8-разрядиых микропроцессорах более распространена аппаратная поддержка работы с битами. Так, в PC-совместимых процессорах для выделения бита приходится использовать логические команды и циклический сдвиг.
Дата добавления: 2016-07-09 ; просмотров: 5604 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ
Структура ПЛК (Лекция)
1. Обобщенная структура ПЛК
2. Дискретные входы
3. Аналоговые входы
4. Специальные входы
5. Дискретные выходы
6. Системное и прикладное программное обеспечение
7. Рабочий цикл ПЛК
8. Языки программирования ПЛК
1. Обобщенная структура ПЛК
ПЛК представляют из себя микропроцессорное (МПС) устройство, предназначенное для сбора, преобразования, обработки, хранения информации и выработки команд управления. Каждый из них представляет собой вычислительную машину, имеющую некоторое множество входов и выходов.
Рис. 1. Обобщенная структура программируемого контроллера
Контроллер отслеживает изменение входов и вырабатывает программно определенное воздействие на выходах. Обладая памятью, ПЛК в зависимости от предыстории событий, способен реагировать по-разному на текущие события. Такая модель соответствует широко известным конечным автоматам. Однако возможности перепрограммирования, управления по времени, развитые вычислительные способности, включая цифровую обработку сигналов, поднимают ПЛК на более высокий уровень.
Первоначально они предназначались для замены релейно-контактных схем, собранных на дискретных компонентах – реле, счетчиках, таймерах, элементах жесткой логики. Принципиальное отличие ПЛК от релейных схем заключается в том, что все его функции реализованы программно. На одном контроллере можно реализовать схему, эквивалентную тысячам элементов жесткой логики. При этом надежность работы схемы не зависит от ее сложности.
2. Дискретные входы
Один дискретный вход ПЛК способен принимать один бинарный электрический сигнал, описываемый двумя состояниями – включен или выключен. На уровне программы это один бит информации. Кнопки, выключатели, контакты реле, датчики обнаружения предметов и множество приборов с выходом типа «сухой контакт» или «открытый коллектор» непосредственно могут быть подключены к дискретным входам ПЛК.
Состояние некоторых первичных приборов систем промышленной автоматики определяется целым цифровым словом. Для их подключения используют несколько дискретных входов.
Системное программное обеспечение ПЛК включает драйвер, автоматически считывающий физические значения входов в оперативную память. Благодаря этому, прикладному программисту нет необходимости разбираться с внутренним устройством контроллера. С точки зрения прикладного программиста дискретные входы это наборы бит, доступные для чтения в ОЗУ.
Все дискретные входы (общего исполнения) контроллеров обычно рассчитаны на прием стандартных сигналов с уровнем 24 В постоянного тока. Типовое значение тока одного дискретного входа (при входном напряжении 24 В) составляет около 10 мА. В простейшем случае, для подключения нормально разомкнутого контакта, дискретный вход и сам контакт необходимо подключить последовательно к источнику питания в 24 В. Для питания таких внешних датчиков нужен отдельный источник питания. Иногда источник питания внешнего маломощного оборудования включают в состав ПЛК. Дискретные входы некоторых контроллеров рассчитаны на прием уровней сигналов с напряжениями высокого уровня, в том числе переменного тока (например, в 220. 240 В).
Все современные датчики, базирующиеся на самых разнообразных физических явлениях (емкостные, индуктивные, ультразвуковые, оптические и т.д.), как правило, имеют встроенные первичные преобразователи и не требуют дополнительного согласования при подключении к дискретным входам ПЛК.
3. Аналоговые входы
Аналоговый электрический сигнал отражает уровень напряжения или тока, соответствующий некоторой физической величине, в каждый момент времени. Это может быть температура, давление, вес, положение, скорость, частота и т. д.
Практически все модули аналогового ввода являются многоканальными. Входной коммутатор подключает вход АЦП к необходимому входу модуля. Управление коммутатором и АЦП выполняет драйвер системного программного обеспечения ПЛК. Прикладной программист работает с готовыми значениями аналоговых величин в ОЗУ.
Несоответствие физических значений напряжений и токов датчиков уровням входов/выходов контроллера решается применением нормирующих преобразователей или заменой нестандартных датчиков.
4. Специальные входы
Стандартные дискретные и аналоговые входы ПЛК способны удовлетворить большинство потребностей систем промышленной автоматики. Необходимость применения специализированных входов возникает в случаях, когда непосредственная обработка некоторого сигнала программно затруднена, например, требует много времени.
Наиболее часто ПЛК оснащаются специализированными счетными входами для измерения длительности, фиксации фронтов и подсчета импульсов.
Например, при измерении положения и скорости вращения вала очень распространены устройства, формирующие определенное количество импульсов за один оборот – поворотные шифраторы. Частота следования импульсов может достигать нескольких мегагерц. Даже если процессор ПЛК обладает достаточным быстродействием, непосредственный подсчет импульсов в пользовательской программе будет весьма расточительным по времени. Здесь желательно иметь специализированный аппаратный входной блок, способный провести первичную обработку и сформировать, необходимые для прикладной задачи величины.
Вторым распространенным типом специализированных входов являются входы способные очень быстро запускать заданные пользовательские задачи с прерыванием выполнения основной программы – входы прерываний.
5. Дискретные выходы
Один дискретный выход ПЛК способен коммутировать один электрический сигнал. Также как и дискретный вход, с точки зрения программы это один бит информации.
Нагрузкой дискретных выходов могут быть лампы, реле, соленоиды, силовые пускатели, пневматические клапаны, индикаторы и т. д.
Простейший дискретный выход ПЛК выполняется в виде контактов реле. Такой выход достаточно удобен в применении и прост. Однако он обладает характерными недостатками всех реле – ограниченный ресурс, низкое быстродействие, разрушение контактов при работе на индуктивную нагрузку. Альтернативным решением дискретного выхода является электронный элемент – например, схема с открытым коллектором. Наиболее широким спросом пользуются дискретные выходы средней мощности (до 1А, 24В).
Практика эксплуатации доказала нецелесообразность сосредоточения в корпусе ПЛК большого числа силовых коммутирующих элементов. При необходимости управления сильноточными нагрузками применяются выносные устройства коммутации. Таким образом, установка силовых коммутирующих приборов осуществляется максимально близко к нагрузке. В результате, сокращается длина силовых монтажных соединений, снижается стоимость монтажа, упрощается обслуживание, уменьшается уровень электромагнитных помех.
6. Системное и прикладное программное обеспечение
Программное обеспечение универсальных контроллеров состоит из двух частей. Первая часть это системное программное обеспечение. Проводя аналогию с программным обеспечением ЭВМ можно сказать, что оно выполняет функции операционной системы, т.е. управляет работой узлов контроллера, занимается организацией их взаимосвязи, внутренней диагностикой. Системное программное обеспечение ПЛК расположено в постоянной памяти в адресном пространстве центрального процессора и всегда готово к работе. По включению питания, ПЛК готов взять на себя управление системой уже через несколько миллисекунд.
Другая часть программного обеспечения универсальных контроллеров это прикладные программы управления конкретным процессом. Эти программы создаются разработчиком системы управления.
7. Рабочий цикл ПЛК
ПЛК работают циклически по методу периодического опроса входных данных. Рабочий цикл ПЛК включает 4 фазы:
2. выполнение пользовательской программы,
3. установку значений выходов,
4. некоторые вспомогательные операции (диагностика, подготовка данных для отладчика, визуализации и т. д.).
Выполнение 1 фазы обеспечивается системным программным обеспечением. После чего управление передается прикладной программе, а по ее завершению управление опять передается системному уровню. За счет этого обеспечивается максимальная простота построения прикладной программы – ее создатель не должен знать, как производится непосредственное управление аппаратными ресурсами. Прикладная программа имеет дело с одномоментной копией значений входов в памяти. Внутри одного цикла выполнения программы, значения входов можно считать константами. Такая модель упрощает анализ и программирование сложных алгоритмов.
Очевидно, что время реакции на событие будет зависеть от времени выполнения одного цикла прикладной программы. Определение времени реакции – времени от момента события до момента выдачи соответствующего управляющего сигнала – поясняется на рис 1.19.
Рис. 2. Рабочий цикл программы ПЛК
В технических характеристиках ПЛК приводится типовое время рабочего цикла. При его измерении пользовательская программа должна содержать 1К логических команд (на языке IL ( STL ) МЭК 61131-3). Сегодня ПЛК имеют типовое значение времени рабочего цикла, измеряемое единицами миллисекунд и менее. События, требующие быстрой реакции, выделяются в отдельные задачи – задачи обработки прерываний, приоритетность и период выполнения которых можно изменять.
8. Языки программирования ПЛК
На сегодняшний день ПЛК на 90 % являются программным продуктом. Для их программирования в настоящее время используются специализированные языки. Специализация языков ПЛК заключена в упрощении их применения и приближении к предметной области. Контроллеры обеспечиваются средствами визуального прикладного проектирования.
Безопасность ПЛК: 16-19) Отслеживайте длительность циклов, потребление памяти, логируйте аварийные ситуации
16) Суммируйте время циклов и направляйте их на HMI
Суммируйте время циклов каждые 2-3 секунды и направляйте на HMI для визуализации на графике.
Описание
Время цикла обычно является системной переменной в ПЛК и может использоваться для суммирования в коде ПЛК. Суммирование должно быть сделано для расчета среднего, пикового и минимального времени цикла. HMI должен отслеживать эти значения и предупреждать о значительных изменениях.
Время цикла — это время, необходимое для вычисления каждой итерации логики для ПЛК. Программные циклы представляют собой комбинацию лестничных диаграмм (LD), функциональных блок-схем (FBD), списка инструкций (IL) и структурированного текста (ST). Эти логические компоненты могут быть объединены вместе последовательными функциональными диаграммами (SFC).
Время цикла на ПЛК должно быть постоянным, если только не изменятся, например:
Таким образом, необычные изменения времени цикла могут быть индикатором изменения логики ПЛК и предоставлять полезную информацию для проверки целостности.
Визуализация значений с течением времени с помощью графика обеспечивает интуитивно понятный способ привлечь внимание к аномалиям, которые было бы труднее заметить, просто имея абсолютные значения.
Пример
Многие ПЛК имеют мониторинг “максимального времени цикла” на аппаратном уровне. Если время цикла превышает максимальное значение, аппаратное обеспечение останавливает процессор (5). Конечно, злоумышленники знают об этом и постараются максимально сократить возможный код атаки, чтобы свести к минимуму влияние на общее время цикла. В дополнительной программе мониторинга времени цикла программного обеспечения эталонное время цикла tref определяется как время базового цикла. Поскольку небольшие колебания являются естественными, необходимо определить приемлемый порог (1,3). Мониторинг цикла запускается, если порог превышен (2,4).
Любое отклонение от контрольного времени может быть сохранено в файле журнала, подобном этому:
Если время цикла отражено в HMI, то сразу видны большие нагрузки процессора. На следующей диаграмме в качестве примера показана PLC-программа с периодически выполняемым вредоносным кодом. (1,3) показывают допустимые колебания времени цикла (“шум”) во время нормальной работы. Также выполняется код атаки (2,4), который увеличивает время цикла.
Безопасность
Атаки на ПЛК включают изменение его логики, активацию новой программы, тестирование нового кода, загрузку нового рецепта процесса, вставку вспомогательной логики для отправки сообщений или активации какой-либо функции. Для большинства ПЛК традиционные проверки криптографической целостности невозможны. Тем не менее, полезно знать, если произойдет какое-либо из вышеперечисленных изменений логики. Поскольку время цикла довольно постоянно при нормальных обстоятельствах, изменения во времени цикла являются хорошим показателем того, что логика в одном из вышеперечисленных логических компонентов изменилась.
Надёжность
См. раздел Безопасность, но не по злонамеренным причинам.
17) Регистрируйте время безотказной работы ПЛК и отображайте его в HMI
Логируйте время безотказной работы ПЛК, чтобы знать, когда он был перезапущен. Отслеживайте время безотказной работы на HMI для диагностики.
Описание
Следите за временем безотказной работы ПЛК
В самом ПЛК (если время работы является системной переменной)
В самом ПЛК, если у него есть MIB-2 / любая другая реализация SNMP
Через сторонние инструменты через, например, SNMP
Если у ПЛК есть SNMP с MIB-2, что очень распространено. Сброс времени безотказной работы является важным показателем для перезапуска ПЛК. Убедитесь, что HMI предупреждает о любом перезапуске ПЛК.
Безопасность
Надёжность
Перезапуск ПЛК также хорош для диагностики в случае сбоев и для мониторинга того, какие ПЛК работают в какое время.
Поддержка
Время безотказной работы с кодами ошибок будут полезны для диагностики.
18) Логируйте неожиданные остановки ПЛК и выводите их на HMI
Храните события неожиданной остановки ПЛК из-за сбоев или отключений для будущего извлечения системой мониторинга в HMI, чтобы проанализировать их перед перезапуском ПЛК. Синхронизируйте время для получения корректных данных.
Описание
События сбоя указывают, почему ПЛК выключился, чтобы проблему можно было устранить до повторного включения.
Некоторые ПЛК могут содержать коды ошибок последнего события, когда ПЛК вышел из строя или неправильно отключился. Запишите эти ошибки, а затем удалите их. Возможно, было бы неплохо сообщить об этих ошибках в HMI в качестве информационных данных или на сервер системного журнала, если такие функции и такая инфраструктура существуют.
Большинство ПЛК также имеют специальные функции первого сканирования, которые генерирует события. Это поведение, которое в той или иной форме присуще почти всему оборудованию ПЛК. По сути, это один или несколько флагов или назначенная процедура, которая выполняется при первом сканировании ПЛК после его “пробуждения”. Это первое сканирование должно быть зарегистрировано и отслежено.
Безопасность
Журналы позволяют устранять неполадки в случае инцидента. Прежде чем ПЛК начнет функционировать, особенно после возникновения проблем, важно убедиться, что ему можно доверять.
Надёжность
Журналы также являются хорошими источниками для отладки, если событие не было вызвано злонамеренно.
19) Контролируйте использование памяти ПЛК и отображайте его на HMI
Измеряйте и предоставляйте базовую информацию об использовании памяти каждым контроллером, развернутым в производственной среде, и отображайте ее на HMI.
Описание
Поскольку увеличение строк кода в логике также может привести к увеличению потребления памяти во время выполнения, программистам ПЛК рекомендуется отслеживать любое отклонение от базового и выделять предупреждение для этого события.
Пример
В ПЛК Rockwell Allen Bradley на контроллере можно установить базовую величину использования памяти, а отслеживать её можно с помощью средства мониторинга задач RSLogix 5000. С помощью трендов можно отслеживать не только основную память, но также память ввода-вывода и память тегов.
Безопасность
Увеличение использования памяти может быть показателем того, что ПЛК выполняет измененный код.
Надёжность
Отслеживание использования памяти для запущенных программ может быть полезно для предотвращения полного потребления памяти и возможного сбоя контроллера ПЛК.
Поддержка
Отслеживание использования памяти может быть использовано для настройки и определения наилучшего времени сканирования для контролируемого контроллера, а также для устранения неполадок и проблем, связанных с неисправными состояниями.
От себя
Проект proPoll
Стартовал опрос специалистов области промышленной автоматизации, благодаря которому планируем составить общее представление о состоянии индустрии, а также попытаться заглянуть в будущее. Расскажите о своем опыте, что займет у вас буквально 5 минут.
Результаты опроса будут опубликованы в telegram-канале @pro_PLC в конце декабря 2021. Просим помочь в распространении данного опроса, делитесь ссылкой в рабочих и профессиональных чатах. https://forms.gle/VKNf21VCSPjSXGSa8
Сообщество
Приглашаю всех в telegram чат и telegram канал для специалистов в области промышленной автоматизации. Здесь можно напрямую задать очень узкоспециализированный вопрос и даже получить ответ.
Жду ваше мнение и опыт относительно данного пункта в комментариях. Всего будет 20 пунктов из «Top 20 Secure PLC Coding Practices», надеюсь на каждый получить как можно больше комментариев, чтобы составить свой список рекомендаций по программированию для ПЛК.