Программирование ПЛК — общее представление
Для понимания процесса приведем пример для продукции от известных компании.
Но перед тем, как разобраться в данной задаче, давайте изучим среду, в которой ведется разработка. На каких языках придется писать?
Ознакомимся со стандартом МЭК 61131-3
ПЛК в промышленности программируются на языках по стандарту МЭК 61131-3. На данный момент часто применяют пять основных, но некоторые разработчики придумывают собственные. Используемые языки совершенно друг с другом не похожи. Видимо, выбор языка зависит от наклонностей инженера – если уклон больше в сферу IT, то текстовый язык, если электроника и схемотехника, то визуальный типа LAD или FBD.
Есть список инструкций, который напоминает ассемблер. Он называется IL, instruction list. На практике его используют бывалые кодеры, которые реально могут оценить все удобства и гибкость этого языка.
1. LD или Ladder diagram представлен языком программирования, основанным на визуализации. Подойдет лицам, имеющим когда-либо дело с разработкой релейной автоматики.
2. ST или structured text – чем-то походит на Pascal. Особо ценен обычными программистами, которые теперь перешли к работе с ПЛК. Он больше остальных копирует «привычные языки». Мы тоже, кстати, предпочитаем его.
3. Functional block diagram или FBD – некая блок-схема. Ценится технологами. Обладает отличным свойством наглядно демонстрировать то, что делается.
4. SFC, Sequential function chart – это графический язык с широкими возможностями.
Beckhoff при этом поддерживает CFC (continuous flow chart). Это то, что получилось от развития FBD.
Наиболее успешной и популярной средой разработки многих ПЛК считается CoDeSys. Она берется в качестве основы, причем, как правило, огромным количеством производителей.
Так же заслуженной популярностью пользуются среды разработки для SIEMENS ПЛК -Step7 и как развитие TIA Portal.
Особенности работы ПЛК
Работа ПЛК осуществляется циклично. Время одного такого «периода» - от единиц до нескольких сотен миллисекунд. Основная масса ПЛК позволяет разработчику установить самостоятельно время длительности цикла, лишь в некоторых вариациях такая опция не имеется. Также в преимуществе своем ПЛК предлагают в одном месте создавать несколько задач, которые выполняются циклами через определенные промежутки времени, а также устанавливать их приоритеты. Что это позволяет делать?
Давайте представим: работу с вентиляционной установкой.
К ПЛК присоединяется операторская панель через RS232. Изменение температуры в комнатах происходит медленно, часто запускать алгоритм нет никакой необходимости. Можно делать это раз в 1000 миллисекунд. При этом операторская панель беспрерывно «проводит опрос» контроллера 1 раз в 2 секунды. Но отработка аварийных событий требует мгновенной реакции, по этому алгоритм работы с авариями нужно отрабатывать намного чаще.
Узнаем, что находится внутри
Что же находится у подобных железяк в качестве внутренностей? Все зависит от конкретного производства. Отдельные лица пользуются собственными embedded-платформами на RISC-процессорах. Этот вариант крайне распространен. Многие выбрали другое решение – на их ПЛК стоит специализированный контроллер собственной разработки.
Но это только «голова» контроллера, есть еще входы-выходы.
Всего различают 2 подхода:
1. «Все включено» - голова, набор входов и выходов, пара-тройка вариаций конфигурации. В одном месте входов больше, в другом – меньше, в третьем – голова мощнее, в четвертом – слабее и так далее. Подходит для маленьких проектов.
2. Голова стоит обособлено, к ней при помощи специальной шины осуществляется подключение блоков расширения, состоящего из модулей ввода и вывода. Можно ставить то, что требуется. Так поступает Beckhoff, Siemens, и многие другие производители тоже предпочитает этот вариант.
На головном блоке, как правило, есть специальная шина, за счет которой происходит объединение ПЛК в целую сетевую цепочку.
Через коммуникационный блок (или интерфейс на головном блоке) производится соединение ПЛК с верхним уровнем – к СКАДА-системе, скажем.
Что учитывать при написании ПО?
Как же заниматься написанием софта под все это? На самом деле, говорить об этом можно бесконечно долго. Не хватит объема даже самой длинной статьи, можно целую книгу написать.
Современные продвинутые программисты, скорее всего, сочтут освоение ПЛК некой отсталостью, шагом назад. Сошлются на возможности современных средств ООП, но это будет поверхностный подход. Современные ПЛК способны на многое и не уступают порой в производительности обычному компьютеру. При этом ПЛК способны выдерживать сложные условия эксплуатации, решены вопросы ЭМС и большинство ПЛК имеют сертификаты соответствия, которые позволяют их применять для систем управления на котельном оборудовании и грузоподъемных устройствах (то есть в сложных эксплуатационных условиях).