СТА 4/2017

104 СТА 4/2017 www.cta.ru Исторически развитие языков программирования ПЛК проходило своим уникальным путём. Первый программируе- мый контроллер Modicon 084 имел всего 4 кбайт памяти и программировался с помощью языка, похожего на релейно- контактные диаграммы [1]. Такой подход позволил специа- листам, работающим в системах автоматизации, плавно и без больших затрат на переобучение и техподдержку перейти от использования реле и контактов к применению ПЛК. С развитием технологий системы автоматизации и исполь- зуемое оборудование усложнялись, появлялись новые про- изводители, поэтому перед сообществом автоматизаторов встал вопрос о стандартизации подходов и языков програм- мирования, для того чтобы ускорить и систематизировать ра- боту с ПЛК, а также обеспечить возможность переноса про- ектов между платформами разных производителей. Самым первым стандартом, описывающим независимые от производителя языки программирования для промышленной автоматизации, стал МЭК 61131-3. На момент создания стандарт выполнил возложенные на не- го функции: он обеспечил открытость систем, стандартизиро- вал и описал языки программирования ПЛК [2]. Главной осо- бенностью стандарта МЭК стало то, что он включал в себя не один язык программирования, а пять: два текстовых (ST и IL) и три графических (FBD, LD, SFC) [3]. Пользователь мог выбирать язык, который удобен для него и для конкрет- ной задачи. По мере развития данный стандарт стал одним из самых распространённых стандартов программирования ПЛК [4]. Однако при этом многие подходы подвергались кри- тике, так как не всегда стандарт успевал за бурно развиваю- щимися технологиями и возможностями современных систем. По мере того как программы для ПЛК становились всё сложнее и запутаннее, вставал вопрос о том, как сделать про- граммирование более быстрым, удобным и соответствующим современным подходам. Одним из новшеств, позволяющих сделать это, стало введение объектно-ориентированного про- граммирования (ООП) в третью версию стандарта МЭК 61131-3. Самым первым программным комплексом для при- кладного программирования ПЛК и встраиваемых контрол- леров, внедрившим поддержку объектно-ориентированного программирования в языках стандарта МЭК 61131-3, стал CODESYS V3 [4]. В настоящее время к поддержке среды про- граммирования CODESYS V3 приходят многие производите- ли. Так, в этом году вышел программируемый логический контроллер CPM723-01, дополняющий линейку распреде- лённой системы управления FASTWEL I/O (рис. 1), который программируется в среде CODESYS V3.5 [5]. Для того чтобы понять, как используется ООП при про- граммировании ПЛК, рассмотрим работу с объектами на ба- зе данного программного комплекса. К ОНЦЕПЦИЯ ОБЪЕКТНО - ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ Парадигма объектно-ориентированного программирования сформировалась достаточно давно. Первым языком програм- мирования, использовавшим концепцию ООП, стал Симула (Simula), появившийся в 1967 году [6]. Главной идеей ООП является то, что любая проблема может быть разложена на составные части, каждая из которых стано- вится самостоятельным объектом. Объект представляет собой структурированную переменную, которая содержит всю ин- формацию о некотором физическом или абстрактном пред- мете [7]. Одним из ключевых понятий парадигмы является класс . Класс – это элемент программы, который описывает абстракт- ный тип данных и его частичную или полную реализацию. Класс представляет собой описание множества однотипных объектов. Для понимания концепцииООПрассмотрим в каче- стве примера промышленный вентилятор, который будет пред- ставлять собой класс. Классы состоят из множества свойств и методов . Свойства – это набор конкретных параметров, которыми можно охаракте- ризовать объект класса. Например, класс вентиляторов (рис. 2) будет иметь свойство статус вентилятора, которое характеризу- ется двумя состояниями: включён или выключен. Кроме свойств, над объектами каждого класса могут совер- шаться определённые действия, называемые методами . Мето- ды – это функции, которые позволяют выполнять какие-либо действия над свойствами класса. В случае вентилятора методом может быть включение и выключение вентилятора. Результа- том вызова метода будет являться смена его статуса. После того, как класс описан, создаётся объект , который ха- рактеризует конкретный экземпляр данного класса. Например, в случае вентиляторов это может быть определённый вытяжной В ЗАПИСНУЮ КНИЖКУ ИНЖЕНЕРА Объектно-ориентированное программирование в стандарте МЭК 61131-3 Нина Кузьмина Рис. 1. Программируемый логический контроллер CPM723

RkJQdWJsaXNoZXIy MTQ4NjUy