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

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

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

2.2. Использование триггерных ячеек

Одним из недостатков первой версии программы управления шлагбаумом является жесткая зависимость пуска приводного двигателя от состояния концевых выключателей. Если из-за раскачки стрелы шлагбаума на ветру или намокания контактов произойдет замыкание концевого выключателя, то это может привести к неконтролируемому включению двигателя стрелы, так как одна из кнопок, «Открыть» или «Закрыть», уже нажата. Попробуем повысить надежность системы управления шлагбаумом. Изменим способ подачи команд «открыть» и «закрыть». Вместо двухкнопочного выключателя с фиксацией применим обычные нажимные кнопки. Это более надежное и удобное решение. Также добавим кнопку «Стоп», при нажатии на которую состояние выходов 11 и 12, управляющих движением стрелы шлагбаума, становится равным нолю. Хотя нажатие на кнопку «Стоп» остановит движение, ею нельзя заменить аварийную кнопку. Аварийная кнопка должна отключить систему вне зависимости от работы контроллера.


Необходимо отметить, что контакты кнопок «Открыть» и «Закрыть» нормально открытые, а контакт кнопки «Стоп» нормально замкнутый. Это сделано для того, чтобы при неисправности кнопки «Стоп» или обрыве провода, соединяющего ее с контроллером, заблокировать команды открытия и закрытия. Кнопка «Стоп» наряду с аварийной кнопкой является частью системы безопасности, при неисправности которой запрещается работа механизмов.

Чтобы реализовать алгоритм управления с помощью кнопок, необходимо ввести в программу триггерные ячейки. Кнопка управления обычно имеет нормально открытый контакт, и при ее нажатии на входе контроллера появится единица. А концевой выключатель обычно имеет нормально замкнутый контакт, и при его срабатывании на входе контроллера будет уровень, соответствующий нолю. Но реализуемый в программе алгоритм требует, чтобы срабатывание конечного выключателя также давало единицу. Поэтому необходимо инвертировать некоторые входные логические сигналы. Для инверсии сигналов от конечных выключателей, кнопки «Стоп» и главного контактора в ячейку операции запишем слово «NOT».

Состояние программы при отсутствии силового питания представлено на рис. 14, из которого можно увидеть, что силовое питание выключено, аварий нет, шлагбаум открыт, команды «вверх» и «вниз» равны нолю. В отличие от первоначальной программы, верхняя строка перенесена вниз, а в строке 4 появился входной сигнал от кнопки «Стоп», приходящий на входной контакт номер 7. Во многих активных ячейках символ «&» заменен на «R» или «S».


Рис. 14. Табличная программа управления шлагбаумом с использованием триггерных ячеек перед включением главного контактора


Начальное значение всех ячеек «RS» равно единице, и если не сбросить их в ноль, то возможно появление на выходах ВВЕРХ и ВНИЗ логической единицы, которая самопроизвольно запустит двигатель при первоначальной подаче питания. Чтобы этого не произошло, в строке 7 на входной контакт номер 1 приходит сигнал с главного контактора, коммутирующего силовое питание. После того, как на контроллер будет подано напряжение, а главный контактор еще не будет включен, на контакте номер 1 будет логический ноль, который после инверсии сбросит ячейки «RS».

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

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

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