Появление программируемых логических контроллеров в свое время произвело настоящий прорыв в сфере автоматизации производственных процессов. С их помощью стало возможным отказаться от многих операций, которые проводились вручную. Это значительно снизило нагрузку на персонал (работа может вестись в круглосуточном режиме) и повысило качество выпускаемой продукции. Кроме того, ПЛК используются везде, где есть технические средства.
В настоящее время они применяются в системах освещения, сигнализации, пожаротушения, вентиляции и кондиционирования, и т.д. Разработка программ для ПЛК – важнейший этап работы с ними, так как стандартные контроллеры выпускаются в виде «полуфабрикатов». В этом смысле их можно считать некой площадкой, на которой происходит строительство систему вправления посредством написания программы для решения поставленных задач.
Языки программирования для ПЛК описывает международный стандарт МЭК 61131-3. Он устанавливает пять языков программирования ПЛК, два из которых являются текстовыми, а три – графическими. В частности, под эти языки программирования адаптированы контроллеры, построенные на основе процессорных модулей МП-8, МП-10 и MPU-MPC.
1. Первая программа в Step 7 / Для новичков в программировании Simatic
Базовым пакетом для программирования служит среда разработки Beremiz, которая распространяется свободно. Для Beremiz поддерживаются не только основные протоколы данного семейства контроллеров, но и общепринятые протоколы ModBus-RTU и ModBus-TCP. Таким образом, с помощью разработка программ для ПЛК с помощью данного пакета программирования является универсальной и может выполняться для решения любых задач по автоматизации.
Поскольку стандарт МЭК 61131-3 описывает как графические, так и текстовые языки программирования, Beremiz имеет и те, и другие редакторы. Формат указания данных этих языков соответствует языку описания структуры документа TC6-XML Schemes. Ниже приведены названия и краткие описания каждого из пяти языков для программирования ПЛК:
- ST (Structureв Text). Текстовый язык программирования, который по своей структуре напоминает хорошо известный всем Паскаль. С его помощью хорошо писать программы, которые используют числовой анализ и сложные алгоритмы. Кроме того, он используется для программирования функций или функциональных блоков и для описания переходов действия и переходов внутри элементов SFC.
- IL (InstructionList). Язык программирования низкого уровня. Если STсравнивают с языком Паскаль, то для IL«аналогом» является Ассемблер. Так же, как и у знаменитого предшественника, у ILосновой служат переходы по меткам и аккумулятор. В него записывается значение переменной, а все дальнейшие действия выполняются после извлечения этого значения из аккумулятора. Следующие языки их стандарта МЭК 61131-3, о которых будет рассказано – графические.
- FBD (FunctionBlockDiagram). Здесь программа представляет собой список цепей, которые выполняются в порядке сверху вниз. Построение цепей выполняется на основе стандартных и пользовательских функций или функциональных блоков. С помощью языка FBDстановится возможным использовать сложные алгоритмы простым обращением к функциям. Данный язык особенно востребован для написания небольших приложений.
- LD (LadderDiagram). Этот графический язык программирования особенно понятен инженерам-электротехникам, так как представление программы чем-то напоминает схему электропитания. Элементами языка служат обозначения контактов, обмоток реле, перемычек и т.д. Помимо этого, в написании программ активно применяются функции и функциональные блоки. Язык LDотличается наличием простых правил и использованием только булевой алгебры.
- SFC (SequentialFunctionChart). Основой для создания этого языка программирования послужили сети Петри – математический аппарат, который описывает последовательность состояний и условий перехода. В языке SFC приняты следующие основные элементы: шаг, переход, блок, прыжок и связи (дивергенция и конвергенция). С помощью этих инструментов можно легко описать даже самые сложные процессы, протекающие в системе.
Стоит заметить, что все пять описанных языков (особенно графические) ориентированы, в первую очередь, на обычных инженеров, не имеющих навыков квалифицированных программистов. Об этом говорит частое использование готовых блоков или применение элементов, хорошо известных в электротехнике.
Программирование ПЛК на FBD с нуля. Урок 1. Первая программа
Работа с плагинами
Среда Beremiz является интерфейсом, который позволяет установить связи между внешними источниками данных с программными модулями или их отдельными элементами. Модули пишутся на описанных выше языках программирования, а сам интерфейс реализуется с помощью механизма плагинов. Плагины представляют собой редакторы для настройки параметров системы в зависимости от задач, которые перед ней ставятся. Кроме того, к механизму плагинов относятся и драйверы внешних устройств, написанных на языке C.
Компиляция, запуск и отладка алгоритмов
Разработка программ для ПЛК является сложным процессом, который выполняется в несколько этапов. Коды на языках стандарта МЭК 61131-3 непригодны для прямого использования системой, поэтому их нужно преобразовать в другую форму. Сначала на их основе генерируется C-код; также генерируется код всех использованных плагинов. Затем эти коды с помощью кросс-компилятора переводятся (компилируются) в исполняемый бинарный файл (иными словами – попадают в динамическую библиотеку).
Полученный бинарный файл через локальную сеть можно разместить на устройстве, для управления которым он предназначен. В процессе работы этот файл принимает и передает отладочную информацию, обменивается данными с внешними модулями через драйверы, а также непосредственно выполняет алгоритмы, заложенные пользователем в программу.
После того, как написанная и скомпилированная программа будет запущена на устройстве, инженер увидит на экране монитора графическое представление алгоритмов. Там же будут указаны переменные значения исполняемых модулей, которые и представляют наибольший интерес для отладки.
По своему усмотрению инженер может изменять значения модулей и наблюдать изменения в алгоритмах. Для еще большей наглядности в среде Beremiz предусмотрена возможность построения графиков для интересующих переменных.
Таким образом, разработка программ для ПЛК на основе языков из стандарта МЭК 61131-3 становится удобной и сравнительно простой процедурой, с которой могут справиться специалисты без большого опыта в программировании.
Handy Automation — Санкт-Петербург, 2022 год. Все права защищены.
Источник: handyautomation.ru
Принципы программирования ПЛК
В данном обзоре рассмотрим ряд вопросов, связанных с программированием современных логических контроллеров (ПЛК или PLC). Поскольку контроллеры разных производителей имеют различную конфигурацию, функционал и программные среды, будут приведены общие принципы и приемы разработки программ для ПЛК.
Техническое задание
Создание и утверждение технического задания (ТЗ) – очень важная часть разработки ПО. От грамотно составленного ТЗ зависит, насколько эффективно будет вестись разработка.
Опытные программисты знают, что программа не пишется за один раз. Как правило, софт корректируется и приближается итерациями к конечному варианту в соответствии с пожеланиями конструкторов, инженеров, электриков, механиков и технологов. Поэтому очень важно на этапе составления ТЗ плотно взаимодействовать со всеми заинтересованными специалистами, которые подписывают ТЗ, а по окончании принимают работу.
Периферия
В первую очередь составляется список всех дискретных входов и выходов контроллера. Также указываются аналоговые входы/выходы при их наличии.
Входы и выходы логического контроллера — это начальные и конечные точки работы алгоритма, поэтому нужно четко представлять, как должно функционировать оборудование, под которое пишется программа.
Для решения некоторых стандартных задач можно не писать программу, а воспользоваться специализированными периферийными модулями, например, модулями обработки сигналов от тензодатчиков или от инкрементального энкодера, специализированным ПИД-регулятором и проч. В результате алгоритм работы существенно упростится, а быстродействие всей системы в целом увеличится.
Необходимо собрать подробную информацию о том, как работает тот или иной датчик, какие сигналы он выдает, например, какой выход у датчика – нормально открытый или нормально закрытый. Есть ряд нюансов, связанных с аварийным или ручным управлением выходными сигналами, например, некоторые приводы могут требовать коррекции временной задержки.
Помехоустойчивость
Важно помнить о возможных проблемах, связанных с максимальным выходным током, противо-ЭДС и различными помехами, поскольку все это скажется на стабильной работе программы и оборудования в целом.
В сложном оборудовании, где применяются преобразователи частоты, коммутируются силовые цепи и действуют мощные электромагнитные поля — эти факторы необходимо предусмотреть, чтобы минимизировать их отрицательное влияние на ПЛК. Об этом обычно подробно говорится в инструкции по установке логического контроллера.
Для повышения помехоустойчивости необходимо применять программные средства. Например, обязательным является использование сторожевого таймера, который «приводит в чувство» ПЛК при его «зависании».
Также необходимо учитывать возможное накопление ошибок, искажение поступаемых на входы данных и другие нарушения в работе программы. Для этого нужно вводить программные блоки по проверке и коррекции данных и программы. Например, несмотря на то, что при включении реверсивного пускателя используется аппаратная защита (блокировка) от одновременного включения встречных направлений, такая же защита должна быть реализована и программно.
Проблемы совместимости программы с аппаратной частью
Возможно, в процессе работы выяснится, что аппаратная часть контроллера не соответствует поставленной задаче. Например, не хватает входов или выходов, памяти или быстродействия.
Проблема с нехваткой входов или выходов легко решается приобретением дополнительных периферийных модулей. Они подключаются к центральному модулю (который имеет свои входы и выходы), обмен данных происходит по внутренней шине.
С памятью и быстродействием решить вопрос просто не получится, поэтому перед приобретением «железа» нужно обкатать программу в программном эмуляторе, который есть в каждой среде программирования.
Языки программирования и среды разработки
У каждого производителя имеется своя среда программирования, «заточенная» под конкретные модели ПЛК. Однако производители пришли к соглашению, что будут использовать унифицированные языки программирования, подходящие для разных контроллеров.
Наиболее простым и наглядным языком программирования ПЛК, входящим в каждую среду разработки является язык релейных схем LD (Ladder Diagram), максимально приближенный к функциональным электрическим схемам. Его любят использовать программисты, изначально хорошо разбирающиеся в электронике.
Другой язык, имеющий обширный функционал – FBD (Function Block Diagram), который относится к графическим языкам программирования. В FBD используются законченные блоки, имеющие определенные функции. Блоки поставляются со средой программирования или создаются программистом. Существуют и другие языки (6 стандартных), но их описание выходит за рамки данной статьи.
В программных средах разработки обычно имеется большой набор готовых библиотек элементов, подпрограммы стандартных процедур и шаблонов. Также среда разработки должна обязательно включать в себя программный эмулятор, позволяющий всесторонне проверить работоспособность программы перед ее переносом на реальный контроллер.
Среды разработки разных производителей могут включать в себя разные элементы, и за каждый из них необходимо платить. Например, Siemens предлагает множество версий программной среды, которые значительно отличаются по функционалу и цене. Другой производитель – Delta – имеет полностью открытое полнофункциональное ПО, которое можно бесплатно скачать с официального сайта.
Источник: tehprivod.su
Почему современные ПЛК так сложно программировать любителю? Зачем существуют все эти специфические среды и языки программирования? Почему не используется веб-интерфейс для настройки автоматизации просто кликами мышки за 5 минут? Оставить комментарий
ПЛК (программируемый логический контроллер) — это устройство, служащее для решения задач по автоматизации технологических процессов. Основные блоки, имеющиеся у каждого ПЛК, — модуль центрального процессора (CPU) и модули ввода/вывода. Все остальное уже по желанию: коммуникационные процессоры, функциональные модули, интерфейсные модули и так далее.
Важное условие работы ПЛК — работа в реальном времени, это значит, что реакция системы должна быть строго оговорена. А дальше ПЛК делятся по исполнению: моноблочный, с дополнительными модулями, с удаленными модулями ввода/вывода, совмещенные с панелью оператора и другие. И главное отличие контроллеров между собой — это мощность CPU и количество памяти.
Программирование ПЛК происходит с помощью специальных IDE-программ. Программа пишется на одном из пяти языков программирования:
- LD (Ladder Diagram) — язык релейных схем — самый распространённый язык для ПЛК.
- FBD (Function Block Diagram) — язык функциональных блоков.
- SFC (Sequential Function Chart) — язык диаграмм состояний.
- IL (Instruction List) — ассемблероподобный язык.
- ST (Structured Text) — паскалеподобный язык.
Первые три графические, последние два текстовые. Графическое представление облегчает понятие логики программы, в то время как текстовый язык позволяет добиться большей гибкости.
К главным недостаткам графических языков программирования ПЛК можно отнести неэффективность при обработке процессов с большим количеством аналоговых переменных, так как графические языки больше подходят для представления дискретных сигналов.
Недостатки текстовых языков — отсутствие наглядности и требование более высокой квалификации программиста.
Узнать больше
Для каждой задачи удобно использовать свой язык. Например, принцип построения программы на SFC близок к образу конечного автомата. Технологические процессы в этом языке построены по типу определенных шагов. Структура шагов состоит из вертикали, которая идет сверху вниз. Каждый шаг — это конкретные операции. Как только шаг выполнен, действие переходит к следующему шагу.
Переход между шагами может быть двух видов: условным и безусловным. Если на шаге выполнено какое-то условие и в зависимости от этого условия происходит переход к определенному шагу, то это условный переход. Если же происходит выполнение всех условий на данном шаге и только потом осуществляется переход на следующий шаг, это безусловный переход.
Написание простой программы для ПЛК не представляет сложности для человека, знакомого с элементарной логикой. В то же время для написания сложной программы требуется знание основ программирования и специальные знания в области ПЛК.
Например, в программе часто необходим прием аналоговых сигналов, преобразование аналогового сигнала в инженерные величины: значение давления датчик выдает в виде токового сигнала 4…20 мА, и для представления в программе нужно выполнение преобразований. Общение по сетевому интерфейсу, например Modbus, требует знания специфики этого протокола. Для настройки ПИД-регулятора нужны знания технологического процесса. Прием и обработка сигналов с инкрементального датчика требуют выполнения расчетов в программе.
На каждом объекте используется своя логика программы. Невозможно сделать универсальную программу, которая бы на 100% выполняла все задания. Поэтому программа для ПЛК пишется под конкретную задачу.
Производители контроллеров предпринимали попытки снизить порог вхождения в программирование ПЛК, но это все приводило к ухудшению качества программ, ее универсальности и невозможности реализации всех задумок.
Таким образом, альтернативы классическим языкам программирования ПЛК и специализированных IDE разработчика на данном этапе развития промышленной электроники не существует. Но шаги в этом направлении ведутся, и, возможно, лет через 10–15 промышленные ПЛК будут программироваться через встроенный в них веб-браузер с любого устройства и предоставлять обширный инструментарий, схожий с существующими IDE.
Вам также будет интересно:
- Для чего нужен и почему используется именно RS-232 в ПЛК? Это же древний интерфейс!
- Для чего нужен и почему используется именно RS-485 в ПЛК? Это же древний интерфейс!
- Что такое термосопротивление в применении ПЛК?
- Что такое термопара в применении ПЛК?
- Что такое резистивные датчики в применении ПЛК?
- Что такое AO (аналоговый выход) в ПЛК. Для чего он нужен?
- Что такое AI (аналоговый вход) в ПЛК. Для чего он нужен?
- Что такое DI (дискретный вход) в ПЛК. Для чего он нужен?
Источник: plcontroller.ru