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

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

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

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

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
C++
C++

С++ – это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы. Ключевым понятием С++ является класс. Класс – это тип, определяемый пользователем. Классы обеспечивают сокрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. С++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline-подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем. С++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из С++ программ можно использовать C библиотеки, и с С++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C. Эта книга предназначена главным образом для того, чтобы помочь серьезным программистам изучить язык и применять его в нетривиальных проектах. В ней дано полное описание С++, много примеров и еще больше фрагментов программ.

Бьёрн Страуструп , Бьярн Страустрап , Мюррей Хилл

Программирование, программы, базы данных / Программирование / Книги по IT
Разработка ядра Linux
Разработка ядра Linux

В книге детально рассмотрены основные подсистемы и функции ядер Linux серии 2.6, включая особенности построения, реализации и соответствующие программны интерфейсы. Рассмотренные вопросы включают: планирование выполнения процессов, управление временем и таймеры ядра, интерфейс системных вызовов, особенности адресации и управления памятью, страничный кэш, подсистему VFS, механизмы синхронизации, проблемы переносимости и особенности отладки. Автор книги является разработчиком основных подсистем ядра Linux. Ядро рассматривается как с теоретической, так и с прикладной точек зрения, что может привлечь читателей различными интересами и потребностями.Книга может быть рекомендована как начинающим, так и опытным разработчикам программного обеспечения, а также в качестве дополнительных учебных материалов.

Роберт Лав

Программирование, программы, базы данных / Программирование / Книги по IT