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

Пересчет таблицы выполняется следующим образом. Сначала идет обработка строк сверху вниз. Значение в каждой строке определяется входной переменной. В данном случае оно соответствует логическому уровню на соответствующем входе контроллера. При наличии в строке активных ячеек всем таким ячейкам строки присваивается полученное значение. По окончании перебора строк вычисляются значения выходных переменных — как логическое И по ячейкам столбца под каждой выходной переменой. В этом виде данные в таблице сложно назвать программой, однако под определение программы по ГОСТ 19.781-90[2] — «данные, предназначенные для управления конкретными компонентами системы обработки информации в целях реализации определенного алгоритма» — она подходит.

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

1.3. Триггерные ячейки

Чтобы зафиксировать однократное появление сигнала в логических цепях, используются триггеры. Базовым видом триггеров является асинхронный RS-триггер, состояние выхода которого меняется в зависимости от логических уровней на его входах, обозначаемых буквами R и S. Для установки на выходе RS-триггера единицы на вход «S» подают логическую единицу, а для сброса выхода в ноль логическую единицу подают на вход «R».

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


Рис. 3. Пример табличной программы, использующей триггерные ячейки


В верхний заголовок таблицы добавлена строка «RS». Каждая ячейка этой строки является выходом RS-триггера столбца, входы для которого находятся в ячейках под ним. Для того чтобы управлять этим выходом, в столбец добавлены ячейки, которые изменяют его состояние. Ячейки, использующиеся для сброса в ноль, будем обозначать символом «R», а для установки в единицу — символом «S». Ячейки «R» и «S» будем называть активными триггерными ячейками. Выберем для них следующее цветовое обозначение: серый для состояния «ноль» и пурпурный для состояния «единица». Ячейки в строке «RS» хоть и являются триггерными, но обозначены символом «&», так как они наравне с другими активными ячейками будут участвовать в логическом И по столбцу.

Начальное значение ячеек в строке «RS» равно единице. Это сделано для того, чтобы при отсутствии в столбце активных триггерных ячеек «R» и «S» ячейка «RS» не блокировала нулем результат логического И по столбцу. Выход триггера столбца, которым является ячейка «RS», управляется следующим образом. Если в столбце ячейка «R» принимает значение «единица», то значение ячейки «RS» в заголовке сбрасывается в ноль. Если же в столбце ячейка «S» принимает значение «единица», то значение ячейки «RS» устанавливается в единицу. При возвращении состояния ячейки «R» или «S» в ноль ячейка «RS» не меняет свое значение. Происходит «защелкивание». Так как внутренний интерпретатор проходит по таблице сверху вниз, то при многократном применении в столбце триггерных ячеек значение ячейки «RS» будет определяться нижней триггерной ячейкой. После учета состояния всех ячеек «R» и «S» столбца значение ячейки «RS» участвует в операции «логическое И» наравне с ячейками столбца, обозначенными символом «&».

1.4. Логические операции над входными переменными

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

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

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