Для решения этой задачи была выбрана следующая конфигурация, состоящая из контроллера 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. Обучение табличному программированию
Обучение табличному программированию — очень простой и занимательный процесс. Одно из достоинств табличного программирования — очень низкий порог входа, не требующий специальной подготовки обучаемого и дорогостоящего оборудования. Достаточно иметь опыт работы на компьютере на уровне пользователя интернета, чтобы начать программировать с помощью таблиц. Подключение к контроллеру различных миниатюрных исполнительных устройств и светодиодов разных цветов сделает интересным обучение табличному программированию для детей. Если среду исполнения запустить на том же компьютере, на котором работает среда разработки, то достаточно небольшого устройства ввода-вывода, чтобы управлять исполнительными устройствами.
Обучение табличному программированию может производиться и без контроллеров и модулей ввода-вывода. Среда исполнения, разработанная для обучения табличному программированию, может управлять исполнительными устройствами в виде графических анимаций, имитирующими работу различного оборудования. Такой процесс обучения программированию будет напоминать компьютерную игру. Но если с помощью компьютерной графики имитировать работу реального оборудования или технологического процесса, то вместо игры мы получаем тренажер для обучения специалистов.