Tasuta

Табличный ПЛК.Табличное программирование контроллеров

Tekst
Märgi loetuks
Šrift:Väiksem АаSuurem Aa

5.4. Контроллер

Одним из основных требований при разработке табличного контроллера была минимальная цена устройства. Выбиралась такая аппаратная конфигурация, которая позволяла бы выполнять пересчет таблицы в 200 строк, 100 столбцов и 1000 активных ячеек за миллисекунду. Помимо этого, производительности контроллера должно было хватать для обновления данных по крайней мере на двух веб-страницах каждые полсекунды. С одной стороны, это предельные требования, с другой – минимальные требования к табличному контроллеру. Контроллер, производительность которого будет недостаточна, сильно ограничит возможности табличного программирования.

Для решения этой задачи была выбрана следующая конфигурация, состоящая из контроллера STM32 с ядром ARM Cortex-M4 с FPU и сетевого модуля W5500 с SPI-интерфейсом. Предполагалось, что выбрана немного избыточная конфигурация и вычислительных ресурсов будет достаточно. Первоначальная версия среды исполнения получилась довольно большой и занимала около 80 килобайт в оперативной памяти контроллера и около 100 килобайт во флеш-памяти. При этом программа, загруженная в контроллер, хорошо справлялась с поставленной задачей. Так как на рынке достаточно много дешевых контроллеров, оперативная память которых не превышает 32 килобайта, а флеш-память 128 килобайт, то среда исполнения табличной программы была переписана под более жесткие требования. В итоге программа стабильно работает на STM32 с ядром ARM Cortex-M4 и занимает 24 килобайта оперативной памяти и 80 килобайт флеш-памяти. Таким образом, одностраничная среда исполнения может быть установлена на достаточно дешевый контроллер.

Цикл пересчета таблицы запускается по прерыванию от таймера каждые 1000 микросекунд, или 1 миллисекунду. С приходом прерывания от таймера сначала пересчитывается таблица и в оставшееся время выполняется обновление данных на веб-страницах. Если табличная задача очень сложная и контроллер не успевает пересчитать таблицу за миллисекунду, то в течение следующей миллисекунды завершается пересчет таблицы и остаток времени до следующего прерывания используется для обновления данных на веб-страницах. Контроллеры STM32 с ядром ARM Cortex-M4 позволяют настроить прерывания для реализации такого алгоритма обработки. Об удлинении цикла пересчета сигнализирует светодиод, подключенный к одному из выходов контроллера. Если светодиод не горит, то цикл пересчета успевает выполняться каждую миллисекунду.

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

В дальнейшем при развитии табличного программирования возможно использование дорогих контроллеров с большим объемом памяти, а также запуск среды исполнения под операционной системой Linux. Это хорошее направление, особенно для использования многостраничных табличных программ. В настоящий момент на рынке представлено немало ПЛК на базе операционной системы Linux, не имеющих жесткой привязки к конкретной среде исполнения. Использование таких контроллеров хоть и поднимает ценовой диапазон табличных контроллеров, однако позволяет уже сейчас использовать готовые аппаратные решения для табличного программирования.

Программы в виде таблиц не входят в МЭК 61131-3 или другие стандарты, поэтому в настоящее время могут быть использованы там, где не требуется следования стандарту, например для хобби-проектов или для обучения основам цифрового управления. По мере распространения табличного программирования ситуация может измениться.

5.5. Обучение табличному программированию

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

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

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

Заключение

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

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

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

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