Принципы программирования логических контроллеров

Принципы программирования ПЛК

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

Техническое задание

Создание и утверждение технического задания (ТЗ) – очень важная часть разработки ПО. От грамотно составленного ТЗ зависит, насколько эффективно будет вестись разработка.

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

Периферия

В первую очередь составляется список всех дискретных входов и выходов контроллера. Также указываются аналоговые входы/выходы при их наличии.

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

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

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

Читайте также:  Деннис ритчи изобрел язык программирования

Помехоустойчивость

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

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

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

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

Проблемы совместимости программы с аппаратной частью

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

Проблема с нехваткой входов или выходов легко решается приобретением дополнительных периферийных модулей. Они подключаются к центральному модулю (который имеет свои входы и выходы), обмен данных происходит по внутренней шине.

С памятью и быстродействием решить вопрос просто не получится, поэтому перед приобретением «железа» нужно обкатать программу в программном эмуляторе, который есть в каждой среде программирования.

Языки программирования и среды разработки

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

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

Другой язык, имеющий обширный функционал – FBD (Function Block Diagram), который относится к графическим языкам программирования. В FBD используются законченные блоки, имеющие определенные функции. Блоки поставляются со средой программирования или создаются программистом. Существуют и другие языки (6 стандартных), но их описание выходит за рамки данной статьи.

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

Среды разработки разных производителей могут включать в себя разные элементы, и за каждый из них необходимо платить. Например, Siemens предлагает множество версий программной среды, которые значительно отличаются по функционалу и цене. Другой производитель – Delta – имеет полностью открытое полнофункциональное ПО, которое можно бесплатно скачать с официального сайта.

Источник

Принципы программирования логических контроллеров

Для программирования контроллеров в соответствии со стандартами Международной электротехнической комиссии (МЭК) предусмотрены несколько языков программирования, которые можно разделить на две группы:

  • 1) графические: язык последовательных функциональных схем — Sequential Function Chart (SFC), язык функциональных блоковых диаграмм — Function Block Diagram (FBD), язык релейно-контактной логики — Ladder Diagram (LD);
  • 2) текстовые: список инструкций — Instruction List (IL), структурированный текст — Structured Text (ST).

SFC — это графический язык, который позволяет описать хронологическую последовательность различных действий в программе. Для этого действия связываются с шагами (этапами), а последовательность работы определяется условиями переходов между шагами.

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

LD — это графический язык, реализующий структуры электрических цепей.

IL представляет собой список инструкций подобно вышерассмотренному примеру со списком мнемонических команд (см. 4.2).

ST — набор инструкций высокого уровня, которые могут использоваться в операторах (If. Then. Else) и в циклах (While. Do).

Рассмотрим принципы использования достаточно простых языков программирования FBD и LD.

Так, а-контроллеры программируют на языке функциональных блоковых диаграмм (FBD), либо непосредственно с помощью кнопок, расположенных возле дисплея контроллера, либо с помощью компьютера через порт программирования посредством пакета Alpha Programming. Программирование сводится к выбору необходимых функциональных блоков, соединению их между собой и заданию параметров настройки блоков (задержек включения/вы- ключения, значений счетчиков и т.д.). Для хранения управляющей

программы в модуле предусмотрено встроенное энергонезависимое запоминающее устройство. В распоряжении пользователя имеются логические функции типа И, ИЛИ, НЕ и т.п. (табл. 4.9), большое число типов реле (в том числе реле с задержкой включения и выключения, импульсное реле, реле с самоблокировкой), а также выключатель с часовым механизмом, тактовый генератор, календарь, часы реального времени с возможностью автоматического перехода на летнее/зимнес время и т.д.

Основанием для разработки программы является структурная схема управления (например, в случае управления кормораздатчиком см. рис. 3.16). Однако удобнее использовать структурные формулы управления. Для примера управления кормораздатчиком, рассмотренного выше, на основании структуры управления (см. рис. 3.15) повторим все структурные формулы:

Рассмотрим подробно, как будет реализована в программе на языке FBD формула управления для исполнительного механизма Xt. Для реализации операций в скобках потребуется блок И для умножения сигналов z’, b и Ь2, а также блок ИЛИ — для организации сложения сигналов. Блок НЕ необходим для инвертирования сигнала 63. Чтобы получить сигнал z’, необходимо использовать специальный блок программного реле времени. Сигнал Х па вход элемента ИЛИ нужно взять с выхода последнего элемента И, так как именно этот сигнал является сигналом f(X). Функциональная схема управления па логических блоках для Х приведена на рис. 4.21. Необходимо заметить, что для реализации формулы управления можно использовать элемент «Логическое выражение / булево», который позволяет набором формулы связать входные сигналы с выходным.

Основные функции двух переменных

Символиче- ское обо- значение

Функция имеет значение 1 тогда, и только тогда, когда и переменная а, и переменная b имеют значение 1

Функция имеет значение 0 тогда, и только тогда, когда обе переменные имеют значение 0

Инверсия а (функция НЕ а)

Функция имеет значение, обратное значению переменной а, и не зависит от значения переменной b

Штрих Шеффера (функция И-НЕ)

Функция имеет значение 0 тогда, и только тогда, когда обе переменные имеют значение 1

Глава 4. Программируемые логические контроллеры в САУ

Стрелка Пирса (функция ИЛИ-НЕ)

Функция имеет значение 1 тогда, и только тогда, когда обе переменные имеют значение 0

Эквивалентность, равнозначность (функция если и только, если)

Функция имеет значение 1 тогда, и только тогда, когда оба входа одновременно имеют одинаковое значение

4.4. Принципы программирования логических контроллеров

Функционально-блочная схема управления элементом Х. В01 и ВОЗ — элементы И; В02 — элемент ИЛИ; В04 — блок программного

Рис. 4.21. Функционально-блочная схема управления элементом Х. В01 и ВОЗ — элементы И; В02 — элемент ИЛИ; В04 — блок программного

реле времени; В05 — элемент НЕ

Интерфейс Alpha Programming

Рис. 4.22. Интерфейс Alpha Programming

Интерфейс приложения для программирования а-коптролле- ров Alpha Programming приведен па рис. 4.22. Программа формируется блоками в пределах наборного поля. Используя переключатели групп элементов, выбирают необходимую группу блоков: входы, функциональные блоки, логические блоки, выходы, пользовательские блоки. Блоки входов и выходов необходимо помещать в соответствующие прямоугольники по контуру наборного поля. Для блока может быть прописан комментарий в окне, вызванном двойным щелчком левой кнопки (ЛК) мыши по изображению блока.

Фрагмент программы, соответствующий функционально-блочной схеме (см. рис. 4.21), приведен на рис. 4.23. Элементы В01, В02 и В05 можно заменить элементом «Логическое выражение/ булево» В15. В этом случае программа будет выглядеть подобно тому, как показано на рис. 4.24. Время срабатывания и отключения программного реле времени настраивается через окно параметров, вызываемое двойным щелчком ЛК мыши по блоку В04.

Фрагмент программы (управление исполнительным элементом Х)

Рис. 4.23. Фрагмент программы (управление исполнительным элементом Х)

Фрагмент программы (управление исполнительным элементом АД с элементом логического выражения

Рис. 4.24. Фрагмент программы (управление исполнительным элементом АД с элементом логического выражения

Полная программа в режиме испытания приведена на рис. 4.25. Для запуска режима моделирования используют меню Коптрол- лер/Моделирование/Запуск. При этом, активируя входы (щелчком ЛК мыши по ним), можно просмотреть работу программы и откорректировать параметры блоков.

Для задания формулы управления исполнительных элементов Х3-Х5 использован элемент булевой логики (В09, В11, В12), который обеспечивает запись самой формулы (отображается под элементом в режиме моделирования) в окне параметров блока, вызываемого двойным щелчком ЛК мыши по блоку. В10 представляет собой блок временной задержки, соответствующей в структуре элементу Z. При необходимости информация о состоянии контролируемых параметров может быть словами выведена па дисплей контроллера Отобразить В14. В случае наличия корма в бункере па дисплей контроллера выводится слово «Bunker».

Программа управления кормораздатчиком для а-контроллера

Рис. 4.25. Программа управления кормораздатчиком для а-контроллера

Готовую отлаженную программу можно записать в контроллер, присоединенный к порту компьютера соответствующим кабелем, через меню Коптроллер/Запись в контроллер.

Моноблочные контроллеры (например, серии FX) программируют на языке релейпо-коптактпой логики. При этом могут использоваться разные программные оболочки: GX Developer, Melsec Medoc plus и др. [25, с. 11J. Программа на данном языке подобна разработанной нами структуре (см. рис. 3.16). Введем обозначения элементов структуры, соответствующие обозначениям элементов релейно-контактной логики (табл. 4.10). На рис. 4.26 представлена полная программа управления кормораздачей, рассмотренной в примере.

Символы языка релейно-контактной логики

Источник

Оцените статью