что такое плк в автоматике и его функции
Что такое программируемый логический контроллер
Программируемые логические контроллеры (ПЛК) — технические средства, используемые для автоматизации технологических процессов. Это электронное специализированное устройство, работающее в реальном масштабе времени.
ПЛК можно запрограммировать в цифровом виде и, таким образом, очень легко адаптировать к требованиям конкретного технологического процесса. В связи с растущими требованиями к современным машинам и производственным процессам решения с использованием ПЛК в области автоматизации стали неотъемлемой частью повседневного промышленного производства.
Основным режимом работы ПЛК выступает его длительное автономное использование, зачастую в неблагоприятных условиях окружающей среды, без серьезного обслуживания и без вмешательства человека. ПЛК обычно применяются для управления последовательными процессами, используя входы и выходы для определения состояния объекта и выдачи управляющих воздействий.
Программируемый логический контроллер, представляют собой микропроцессорное устройство, предназначенное для сбора, преобразования, обработки, хранения информации и выработки команд управления, имеющий конечное количество входов и выходов, подключенных к ним датчиков, ключей, исполнительных механизмов к объекту управления, и предназначенный для работы в режимах реального времени.
Типичный ПЛК состоит из следующих частей:
Для используемых в настоящее время релейно-контактных систем управления характерна невысокая надёжность, наличие открытых контактов и др. Применение программируемых логических контроллеров (ПЛК) для автоматизации локальных систем управления является наиболее эффективным.
Со временем ПЛК продолжали развиваться и адаптироваться к конкретным потребностям в промышленной среде. Функции ПЛК обладают рядом преимуществ: благодаря своей гибкости они могут применяться в самых разных отраслях промышленности. В настройки можно вносить изменения в любое время без какого-либо вмешательства в работу самого оборудования.
Только индивидуально программируемые устройства для управления, контроля и регулирования производительности производственных машин могут удовлетворить высокие требования современной промышленности.
ПЛК обычно можно установить непосредственно на производственной машине. Это экономит необходимое пространство. Помимо возможности удаленного управления ПЛК, одним из его самых больших преимуществ является коммуникационная способность.
ПЛК программируются в соответствии со стандартом МЭК-61131-3. Программируются ПЛК с помощью специализированных комплексов, один из наиболее популярных является CoDeSys. Он включает в себя следующие языки: графические (Ladder Diagram, Function Block Diagram, Sequential Function Chart, Continuous Function Chart), текстовые (Instruction List, Structured Text).
Первый в мире программируемый логический контроллер появился в середине XX века. Modicon 084 представлял собой шкаф с набором соединённых между собой реле и контактов, его память составляла лишь 4 килобайта. Термин ПЛК ввел Аллен-Брадли в 1971. Вместе с Ричардом Морли он является «отцом ПЛК».
— Инженер-электрик Яков Кузнецов
Структура работы программируемого логического контроллера:
Алгоритм работы ПЛК:
В качестве основного режима работы ПЛК выступает его длительное автономное использование, зачастую в неблагоприятных условиях окружающей среды, без серьезного обслуживания и практически без вмешательства человека.
ПЛК имеют ряд особенностей, отличающих их от прочих электронных приборов, применяемых в машиностроении:
в отличие от микроконтроллера (однокристального компьютера) — микросхемы, предназначенной для управления электронными устройствами — областью применения ПЛК обычно являются автоматизированные процессы промышленного производства в контексте производственного предприятия;
в отличие от компьютеров ПЛК ориентированы на работу с агрегатами машин через развитый ввод сигналов датчиков и вывод сигналов на исполнительные механизмы, ориентированных на принятие решений и управление оператором;
в отличие от встраиваемых систем ПЛК изготавливаются как самостоятельные изделия, отдельные от управляемого при его помощи оборудования.
наличие расширенного числа логических операций и возможность задания таймеров и счетчиков.
все языки программирования ПЛК имеют легкий доступ к манипулированию битами в машинных словах, в отличие от большинства высокоуровневых языков программирования современных компьютеров.
Существуют ПЛК разного уровня сложности в зависимости от сложности решаемых задач автоматизации.
Основные операции ПЛК соответствуют комбинационному управлению логическими схемами специфических агрегатов — механических, электрических, гидравлических, пневматических и электронных.
В процессе управления контроллеры генерируют выходные сигналы (включить — выключить) для управления исполнительными механизмами (электродвигателями, клапанами, электромагнитами и вентилями) на основании результатов обработки сигналов, полученных от датчиков, либо устройств верхнего уровня.
Современные программируемые контроллеры выполняют также и другие операции, например, совмещают функции счетчика и интервального таймера, обрабатывают задержку сигналов.
Программируемые логические контроллеры среднего и высокого уровня, как правило, имеют встроенные аппаратно-программные средства управления движением, в частности, модули быстродействующих счетчиков, модули позиционирования и др., которые дают возможность сравнительно просто реализовать функции управления движением и обеспечить позиционирование с высокой точностью.
Конструктивно ПЛК приспособлены для работы в типовых промышленных условиях, с учетом загрязненной атмосферы, уровней сигналов, термо- и влагостойкости, ненадежности источников питания, а также механических ударов и вибраций. С этой целью аппаратная часть заключается в прочный корпус, минимизирующий негативное влияние ряда производственных факторов.
Главным отличием ПЛК от релейных схем управления является алгоритмы, которые реализованы с помощью программ. На одном контроллере можно реализовать схему, эквивалентную тысячам элементов жесткой логики. При этом надежность работы схемы не зависит от ее сложности.
Программируемые логические контроллеры традиционно работают в нижнем звене автоматизированных систем управления предприятием (АСУ) — систем, непосредственно связанных с технологией производства.
ПЛК обычно являются первым шагом при построении систем АСУ. Это объясняется тем, что необходимость автоматизации отдельного механизма или установки всегда наиболее очевидна. Она дает быстрый экономический эффект, улучшает качество производства, позволяет избежать физически тяжелой и рутинной работы. ПЛК по определению созданы именно для такой работы.
Основное преимущество ПЛК является в том, что один маленький механизм может заменить огромное количество электромеханических реле, а также быстрое время сканирования, компактные системы ввода/вывода, стандартизированные средства программирования и специальные интерфейсы, позволяющие подключать нетрадиционные устройства автоматики непосредственно к контроллеру или объединять разное оборудование в единую систему управления.
Как правильно выбрать ПЛК
Выбор программируемого контроллера является важной и сложной задачей при создании систем автоматического управления технологическими параметрами на любом промышленном предприятии.
При его выборе необходимо учесть и оценить большое количество факторов. Объединив технологические требования к конкретному объекту автоматического управления со сравнительным анализом современных программируемых логических контроллеров, можно принять правильное решение.
При покупке ПЛК в первую очередь необходимо тщательно продумать, какой тип подойдет для предполагаемого использования.
Компактные ПЛК обычно дешевле и занимают меньше места. Затем он используется в основном для небольших процессов автоматизации.
Помимо приложений, основанных на платформе ПК, существуют также компактные ПЛК, которые можно программировать с панели управления без компьютера.
Модульные ПЛК предлагают возможность гибкой сборки блока управления из отдельных сменных модулей, чтобы можно было программировать более сложные автоматизированные задачи.
Существуют модули, которые могут быть реализованы в системе в виде подключаемых плат в свободный слот на материнской плате.
Также необходимо различать ПЛК по способу выполнения своей работы. В дополнение к моделям, которые управляют входами в заранее определенном цикле, и ПЛК с обработкой выходных данных на различных этапах, также доступны модели ПЛК, управляемые событиями.
Перед покупкой ПЛК следует обратить особое внимание на количество входов и выходов. Далее необходимо учесть другие параметры, которые не учитывались при первоначальном планировании. Также подумайте, нужен ли вам ПЛК со встроенным дисплеем и сенсорной панелью. В некоторых случаях может быть достаточно считывания значений и управления системой через существующую ИТ-инфраструктуру.
Если Вам понравилась эта статья, поделитесь ссылкой на неё в социальных сетях. Это сильно поможет развитию нашего сайта!
Подписывайтесь на наш канал в Telegram!
Просто пройдите по ссылке и подключитесь к каналу.
Не пропустите обновления, подпишитесь на наши соцсети:
ПЛК — что это такое?
Доброго времени суток, уважаемые жители Хабра!
Прочитав пост про программирование ПЛК Siemens серии S7, я залез в поиск по Хабру, и был весьма удивлен, что тема промышленной автоматики вообще, и программирования ПЛК в частности, освещена весьма и весьма скудно. Возьму на себя смелость поделиться своим опытом в данной области, описав базовые принципы программирования ПЛК, в частности, производства компании Beckhoff.
Введение
Я занимаюсь автоматизацией зданий. Сложилось так, что в основном мы строим свои системы на базе ПЛК Beckhoff. Такой выбор был сделан прежде всего потому, что эти контроллеры являются свободно-программируемыми в полном смысле этих слов. Что это значит? Возьмите контроллер TAC Xenta, например, и попробуйте на нем реализовать обмен с внешним устройством через RS232 по собственному протоколу, на уровне «байт послал — байт принял». Не получится, эти контроллеры так не умеют — используйте только те протоколы, которые в них заложил разработчик. А Beckhoff умеет. Но прежде чем лезть в такие дебри, давайте посмотрим на среду разработки? На каком, собственно, языке, мы будем писать?
Стандарт МЭК 61131-3
Промышленные ПЛК программируются на языках стандарта МЭК 61131-3. Всего этих языков 5, некоторые производители добавляют свои. Языки друг на друга совсем не похожи, и, наблюдая за коллегами, могу предположить, что выбор того или иного языка связан прежде всего с тем, чем человек занимался до того, как он пришел в эту отрасль.
Из не всеми поддерживаемых языков стоит отметить язык CFC (continuous flow chart), Beckhoff его поддерживает. Это дальнейшее развитие языка FBD, одним из наиболее существенных отличий, на мой взгляд, является поддержка явной обратной связи в схемах. Зачем это нужно? Например, вот такой генератор коротких импульсов на CFC будет работать, а на FBD – нет.
Блок TON — это стандартный блок, таймер с задержкой включения. Логика работы: выход Q становится TRUE, когда на входе IN сигнал TRUE в течение не менее времени PT.
Самая популярная, наверное, среда разработки под ПЛК — это CoDeSys. Многие производители берут ее за основу, и либо делают к ней библиотеку для работы со своим ПЛК, либо доделывают среду под себя.
Как работает ПЛК?
Программа ПЛК работает циклично. Время цикла может быть от единиц миллисекунд до единиц секунд, в зависимости от задач, которые на этот ПЛК возложены. Большинство ПЛК позволяют задавать время цикла разработчику программы, однако в некоторых моделях такой возможности нет. Многие ПЛК, в частности Beckhoff, позволяют в одной программе создать более одной циклически выполняемой задачи, и задать приоритет для этих задач. Что нам дает эта возможность?
Представим ситуацию: ПЛК управляет вентиляционной установкой, и к нему подключена панель управления через RS232. Температура в помещениях меняется не быстро, и запускать алгоритм управления вентиляцией чаще, чем раз в 50 — 100 мс просто нет смысла. Зато панель оператора опрашивает контроллер постоянно, и задержка ответа ПЛК более 10 мс уже выражается в «притормаживании» интерфейса пользователя, а при задержке 20 мс у нас переполнится аппаратный буфер COM-порта. Наличие нескольких задач позволяет нам решить эту проблему красиво: пусть «быстрая» задача работает с COM-портом, и вызывается каждые 2 мс, а «медленная» реализует логику работы вентиляции, и вызывается каждые 50 мс. Все работает хорошо, панель оператора не тормозит, пользователь доволен.
А что у этих железок внутри?
А вот другой вариант — голова Beckhoff серии CX9000 (слева на фото) с набором модулей ввода-вывода.
Помимо всего прочего, на голове еще имеется некая шина, позволяющая объединять ПЛК в сеть, а зачастую еще и менять его программу через эту же сеть. Какая это будет сеть — зависит от ПЛК. Это могут быть и незнакомые тем, кто не сталкивался с промышленными сетями EIA-485, Profibus, CAN, а может быть и вполне привычный Ethernet. Именно через эту сеть, называемую fieldbus, и осуществляется подключение ПЛК к верхнему уровню — к СКАДА-системе, например. На фото выше хорошо видны 2 разъема 8P8C на голове Beckhoff’а — это Ethernet, а у Carel сверху слева видны (плоховато, правда) 2 разъема 6P4C — так они сделали RS-485. У этого интерфейса, к сожалению, нет общепринятого разъема.
Так все же, как под него программы писать-то?
Вообще, это тема не статьи, а целой книги. Но расскажу то, что увидел на личном опыте, и пусть это будет ложкой дегтя.
Для профессиональных программистов освоение ПЛК во многом покажется деградацией. ООП? Их нет у нас, есть только структуры, перечисления, и некое подобие класса, которое называется «функциональный блок». Что такое Private, Public и прочее, тоже можно забыть сразу — не пригодится. Из любого места вашей программы можно получить доступ к любому другому месту.
Динамическое выделение памяти? Их нет у нас совсем. Не уверен, сколько тебе пришлют данных? Выделяй буфер с запасом, и забудь про эту память — освободить ее не получится. Либо проявляй чудеса скорости и обрабатывай данные на лету, если успеешь уложиться в заданное время цикла.
Исключения? Да что вы… видел я одно чудо, которое намертво висло при выполнении конструкции вида:
Понятно, что переполнение, не влазит foo * bar в 16 бит, но зачем же виснуть-то? Да еще так, что ничего, кроме сброса по питанию не помогает.
Среда разработки? Не у всех CoDeSys, многим хочется пооригинальничать и написать что-нить свое. Одна из таких самописных сред вылетала с runtime error при попытке записать число 86400 в 16-битный INT. А вы говорите, обработка исключений на ПЛК. Ее и в среде разработки-то не всегда нормально могут сделать.
НО! Зато для любителей той тонкой грани, которая отделяет железо от программного обеспечения, софта в просторечии — это очень интересная ветвь ай-ти, правда.
Надеюсь, что этот небольшой обзор будет полезен. Если хабрасообществу будет интересна эта тема, то расскажу про ПЛК подробнее.
Принцип работы и основы программирования ПЛК
Программируемые логические контроллеры (ПЛК)
До появления твердотельных логических схем разработка систем логического управления основывались на электромеханических реле. По сей день реле не устарели в своем предназначении, но все же в некоторых своих прежних функциях они заменены контроллером.
В современной промышленности существует большое количество различных систем и процессов, требующих автоматизации, но теперь такие системы редко проектируются из реле. Современные производственные процессы нуждаются в устройстве, которое запрограммировано на выполнение различных логических функций.
В конце 1960-х годов американская компания «Bedford Associates» разработала компьютерное устройство, названное MODICON (Modular Digital Controller). Позже название устройства стало названием подразделения компании, спроектировавшей, сделавшей и продавшей его.
Другие компании разработали собственные версии этого устройства, и, в конце концов, оно стало известно как ПЛК, или программируемый логический контроллер. Целью программируемого контроллера, способного имитировать работу большого количества реле, была замена электромеханических реле на логические элементы.
ПЛК имеет набор входных клемм, с помощью которых можно контролировать состояние датчиков и выключателей. Также имеются выходные клеммы, которые сообщают «высокий» или «низкий» сигнал индикаторам питания, электромагнитным клапанам, контакторам, небольшим двигателям и другим самоконтролируемым устройствам.
ПЛК легки в программировании, так как их программный язык напоминает логику работы реле. Так обычный промышленный электрик или инженер-электрик, привыкший читать схемы релейной логики, будет чувствовать себя комфортно и при программировании ПЛК на выполнение тех же функций.
Подключение сигналов и стандартное программирование несколько отличаются у разных моделей ПЛК, но они достаточно схожи, что позволяет разместить здесь «общее» введение в программирование этого устройства.
Следующая иллюстрация показывает простой ПЛК, а точнее то, как он может выглядеть спереди. Две винтовые клеммы, обеспечивающие подключение для внутренних цепей ПЛК напряженим до 120 В переменного тока, помечены L1 и L2.
Шесть винтовых клемм, расположенных с левой стороны, обеспечивают подключение для входных устройств. Каждая клемма представляет свой входной канал (Х). Винтовая клемма («общее» подключение ) расположенная в левом нижнем углу обычно подключается к L2 (нейтральная) источника тока напряжением 120 В переменного тока.
Внутри корпуса ПЛК, связывающего каждую входную клемму с общей клеммой, находится оптоизолятор устройства (светодиод), который обеспечивает электрически изолированный «высокий» сигнал для схемы компьютера ( фототранзистор интерпретирует свет светодиода), когда 120-тивольтный переменный ток устанавливается между соответствующей входной клеммой и общей клеммой. Светодиод на передней панели ПЛК дает возможность понять, какой вход находится под напряжением:
Выходные сигналы генерируются компьютерной схемотехникой ПЛК, активируя переключающее устройство (транзистор, тиристор или даже электромеханическое реле) и связывая клемму «Источник» (правый нижний угол) с любым помеченным буквой Y выходом. Клемма «Источник» обычно связывается с L1. Так же, как и каждый вход, каждый выход, находящий под напряжением, отмечается с помощью светодиода:
Таким образом, ПЛК может подключаться к любым устройствам, таким как переключатели и электромагниты.
Основы программирования ПЛК
Современная логика системы управления установлена в ПЛК посредством компьютерной программы. Эта программа определяет, какие выходы находятся под напряжением и при каких входных условиях. Хотя сама программа напоминают схему логики реле, в ней не существует никаких контактов переключателя или катушек реле, действующих внутри ПЛК для создания связей между входом и выходом. Эти контакты и катушки мнимые. Программа пишется и просматривается с помощью персонального компьютера, подключенного к порту программирования ПЛК.
Рассмотрим следующую схему и программу ПЛК:
Когда кнопочный переключатель не задействован (находится в не нажатом состоянии), сигнал не посылается на вход Х1. В соответствие с программой, которая показывает «открытый» вход Х1, сигнал не будет посылаться и на выход Y1. Таким образом, выход Y1 останется обесточенным, а индикатор, подключенный к нему, погасшим.
Если кнопочный переключатель нажат, сигнал будет отправлен к входу Х1. Все контакты Х1 в программе примут активированное состояние, как будто они являются контактами реле, активированными посредством подачи напряжения катушке реле, названной Х1. В этом случае открытый контакт Х1 будет «закрыт» и отправит сигнал к катушке Y1. Когда катушка Y1 будет находиться под напряжением, выход Y1 осветится лампочкой, подключенной к нему.
Не менее важно понять, что компьютер, используемый для написания и редактирования программы, не нужен для дальнейшего использования ПЛК. После того, как программа была загружена в программируемый контроллер, компьютер можно отключить, и ПЛК самостоятельно будет выполнять программные команды. Мы включаем монитор персонального компьютера в иллюстрации для того, чтобы вы поняли связь между реальными условиями (замыкание переключателя и статусы лампы) и статусы программы (сигналы через виртуальные контакты и виртуальные катушки).
Истинная мощь и универсальность ПЛК раскрывается, когда мы хотим изменить поведение системы управления. Поскольку ПЛК является программируемым устройством, мы можем изменить, команды, которые мы задали, без перенастройки компонентов, подключенных к нему. Предположим, что мы решили функцию «переключатель – лампочка» перепрограммировать наоборот: нажать кнопку, чтобы выключить лампочку, и отпустить ее, чтобы включить.
Решение такой задачи в реальных условиях заключается в том, что выключатель, «открытый» при нормальных условиях, заменяется на «закрытый». Программное ее решение – это изменение программы так, чтобы контакт Х1 при нормальных условиях был «закрыт», а не «открыт».
На следующем изображении вы увидите уже измененную программу, при не активизированном переключателе:
А здесь переключатель активизирован:
Одним из преимуществ реализации логического контроля в программном обеспечении, в отличие от контроля с помощью оборудования, является то, что входные сигналы могут быть использованы такое количество раз, какое потребуется. Например, рассмотрим схему и программу, разработанной для включения лампочки, если хотя бы два из трех переключателей активизированы одновременно:
Чтобы построить аналогичную схему, используя реле, потребуются три реле с двумя открытыми контактами при нормальных условиях, каждый из которых должен быть использован. Однако используя ПЛК, мы можем без добавления дополнительного оборудования запрограммировать столько контактов для каждого «Х» входа, сколько нам хотелось бы (каждый вход и выход должен занимать не больше, чем 1 бит в цифровой памяти ПЛК) и вызывать их столько раз, сколько необходимо.
Кроме того, так как каждый выход ПЛК занимает не более одного бита в его памяти, мы можем вносить контакты в программу, приводя Y выход в не активизированное состояние. Для примера возьмем схему двигателя с системой контроля начала движения и остановки:
Если нажать кнопку «Старт», то по «закрытому» контакту Х1 пройдет ток ток и он отправит 120 В переменного токак к контактору двигателя. Параллельный контакт Y1 также «закроется», тем самым замкнув цепь:
Если мы теперь нажмем кнопку «Старт», контакт Х1 перейдет в «открытое» состояние, но двигатель будет продолжать работать, потому что замкнутый контакт Y1 все еще будет держать катушку под напряжением:
Чтобы остановить двигатель, нужно быстро нажать кнопку «Стоп», которая сообщит напряжение входу Х1 и «открытому» контакту, что приведет к прекращению подачи напряжения к катушке Y1:
Когда вы нажали кнопку «Стоп», вход Х1 остался без напряжения, вернув тем самым контакт Х1 в его нормальное «закрытое» состояние. Двигатель ни при каких условиях не станет работать снова, пока вы снова не нажмете кнопку «Старт», потому что печать в контакте Y1 была потеряна:
Очень важна отказоустойчивая модель устройств контроля ПЛК, так же, как и в устройствах контроля электромеханического реле. Нужно всегда учитывать влияние ошибочно «открытого» контакта на работу системы. Так, например, в нашем случае, если контакт Х2 будет ошибочно «открыт», то не будет никакой возможности остановить двигатель!
Решением этой проблемы является перепрограммирование контакта Х2 внутри ПЛК и фактическое нажатие кнопки «Стоп»:
Когда кнопка «Стоп» не нажата, вход ПЛК Х2 находится под напряжением, т.е. контакт Х2 «закрыт». Это позволяет двигателю начать работу, когда контакту Х1 сообщается ток, и продолжать работу, когда кнопка «Старт» отпущена. Когда вы нажимаете кнопку «Стоп», контакт Х2 переходит в «открытое» состояние и двигатель прекращает работу. Таким образом, вы можете увидеть, что функциональной разницы между этой и предыдущей моделью нет.
Тем не менее, если входной контакт Х2 был ошибочно «открыт», вход Х2 может быть остановлен нажатием кнопки «Стоп». В результате двигатель немедленно отключается. Эта модель безопаснее, чем предыдущая, где нажатие кнопки «Стоп» сделает невозможным остановку двигателя.
В дополнение к входам (Х) и выходам (Y) в ПЛК есть возможность использовать «внутренние контакты и катушки. Они используются так же, как и промежуточные реле, применяемые в стандартных релейных схемах.
Чтобы понять принцип работы «внутренних» схем и контактов, рассмотрим следующую схему и программу, разработанную по принципу трех входов логической функции AND:
В данной схеме, лампа горит, до тех пора пока какая-либо из кнопок не нажата. Для того чтобы выключить лампу следует нажать все три кнопки:
В этой статье, посвященной программируемым логическим контроллерам, иллюстрирована лишь небольшая выборка их возможностей. Как компьютер ПЛК может выполнять и другие расширенные функции с гораздо большей точностью и надежностью, чем при использовании электромеханических логических устройств. Большинство ПЛК имеют больше шести входов и выходов. Следующая иллюстрация показывает один из ПЛК компании Allen-Bradley:
С модулями, каждый из которых имеет 16 входов и выходов, этот ПЛК имеет возможность управлять десятком устройств. Помещенный в шкаф управления ПЛК занимает мало места (для электромеханических реле, выполняющих те же функции, понадобилось бы гораздо больше свободного пространства).
Structured Text
Книга «Изучаем Structured Text МЭК 61131-3»: Ссылка на книгу
Любите умные гаджеты и DIY? Станьте специалистом в сфере Internet of Things и создайте сеть умных гаджетов!
Записывайтесь в онлайн-университет от GeekBrains:
Изучить C, механизмы отладки и программирования микроконтроллеров;
Получить опыт работы с реальными проектами, в команде и самостоятельно;
Получить удостоверение и сертификат, подтверждающие полученные знания.
Starter box для первых экспериментов в подарок!
После прохождения курса в вашем портфолио будет: метостанция с функцией часов и встроенной игрой, распределенная сеть устройств, устройства регулирования температуры (ПИД-регулятор), устройство контроля влажности воздуха, система умного полива растений, устройство контроля протечки воды.
Вы получите диплом о профессиональной переподготовке и электронный сертификат, которые можно добавить в портфолио и показать работодателю.