Разработка программ для ПЛК

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

 

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

 

Языки программирования для ПЛК описывает международный стандарт МЭК 61131-3. Он устанавливает пять языков программирования ПЛК, два из которых являются текстовыми, а три – графическими. В частности, под эти языки программирования адаптированы контроллеры, построенные на основе процессорных модулей МП-8, МП-10 и MPU-MPC.

 

Базовым пакетом для программирования служит среда разработки 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 приняты следующие основные элементы: шаг, переход, блок, прыжок и связи (дивергенция и конвергенция). С помощью этих инструментов можно легко описать даже самые сложные процессы, протекающие в системе.

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

Работа с плагинами

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

Компиляция, запуск и отладка алгоритмов

Разработка программ для ПЛК является сложным процессом, который выполняется в несколько этапов. Коды на языках стандарта МЭК 61131-3 непригодны для прямого использования системой, поэтому их нужно преобразовать в другую форму. Сначала на их основе генерируется C-код; также генерируется код всех использованных плагинов. Затем эти коды с помощью кросс-компилятора переводятся (компилируются) в исполняемый бинарный файл (иными словами – попадают в динамическую библиотеку).

 

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

 

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

 

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

 

Таким образом, разработка программ для ПЛК на основе языков из стандарта МЭК 61131-3 становится удобной и сравнительно простой процедурой, с которой могут справиться специалисты без большого опыта в программировании.