Давайте разберемся как можно запрограммировать промышленный контроллер (PLC, ПЛК). Программирование ПЛК может производится как с использованием универсальных сред: CoDeSys, ISaGRAF — так и с помощью специализированных сред для отдельного семейства ПЛК, например: CX-ONE (OMRON), WinCC (Siemens), Unity Pro (Schneider Electric) и др.
Но какие бы среды не использовал разработчик, чаще всего используются стандартизированные языки стандарта IEC61131-3, а именно:
- LD (Ladder Diagram) — графический язык, представляющий собой программную реализацию электрических схем на базе электромагнитных реле.
- FBD (Function Block Diagram) — графический язык, представляющий собой набор связанных функциональных блоков, каждый из которых выражает некую подпрограмму.
- SFC (Sequential Function Chart) — графический высокоуровневый язык, созданный на базе математического аппарата сетей Петри и описывающий последовательность состояний и условий переходов.
- ST (Structured Text) — текстовый Паскалеподобный язык программирования.
- IL (Instruction List) — текстовый ассембероподобный язык программирования.
Здесь, в этом курсе, мы остановимся на подходах к созданию программного обеспечения с использованием универсальной среды CoDeSys, а в качестве ПЛК выберем отечественный контроллер фирмы ОВЕН.
Разберем принципы создания программного обеспечения для ПЛК на небольшом примере. Пусть необходимо реализовать программу для автоматизированной системы управления дробильно-сортировочного отделения, в который входит следующее производственное оборудование:
- аккумулирующий бункер, в который автомобильным транспортом поступает некий материал, подлежащий дроблению и сортировке (например, галька, из которой будет получен щебень разной фракции);
- питатель №1, подающий гальку из бункера на дробление;
- дробилка, осуществляющая дробления материала;
- питатель №2, подающий щебень на дальнейшее грохочение;
- грохот, осуществляющий грохочение щебня – разделение на несколько фракций, допустим – две – мелкая и крупная фракция.
Схема цепей аппаратов представлена на рисунке ниже.
Информационное обеспечение у нашего примера будет следующим:
Агрегат | Входные сигналы | Выходные сигналы |
Бункер | 1. Верхний уровень 2. Нижний уровень | 1. Разрешить загружать 2. Запретить загружать |
Питатель | 1. Нажата кнопка “Пуск” 2. Нажата кнопка “Стоп” | 1. Включить питатель |
Дробилка | 1. Нажата кнопка “Пуск” 2. Нажата кнопка “Стоп” | 1. Включить дробилку |
Грохот | 1. Нажата кнопка “Пуск” 2. Нажата кнопка “Стоп” | 1. Включить грохот |
Штабель | 1. Достигнут верхний уровень штабеля |
Для простоты будем считать, что у нас только дискретные сигналы, как входные, так и выходные. Конечно, современные контроллеры могут оперировать также и с аналоговыми сигналами (4..20 мА), и с интерфейсными сигналами (например, RS-485). Далее мы это посмотрим, а пока ограничимся этим простым случаем.
В следующем уроке мы продолжим разбираться в вопросе программирования ПЛК в CoDeSys и посмотрим как установить среду разработки программ и рассмотрим её подробнее.