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

Операциям присвоения и инверсии требуется одна строка (рис. 37), операциям синхронизации — две (рис. 38). На первой строке для операции синхронизации формируется сигнал, передний или задний фронт которого необходимо обнаружить. На строке ниже записывается операция синхронизации и вычисляется результат. Примеры операций синхронизации показаны на рис. 38. Результат текущего пересчета таблицы обозначим как b1a, а как b0 — результат предыдущего. Если предыдущее значение операнда было ноль, а текущее значение — единица, то программа пересчета таблицы фиксирует переход из ноля в единицу — передний фронт. Если был переход из единицы в ноль, то это задний фронт. При обнаружении фронта сигнала результату операции синхронизации будет присвоена единица, которая продержится всего один цикл пересчета таблицы, после чего результат операции синхронизации вернется в ноль. В течение одного цикла единица на выходе операции синхронизации может запустить таймер, сбросить или установить значение в триггерной ячейке, изменить результат логического И по столбцу.


Рис. 37. Однострочные битовые операции:

а) присвоение; б) инверсия


Рис. 38. Пример обнаружения фронта сигнала:

а) переднего фронта; б) заднего фронта


Аналоговая операция присвоения устанавливает результат, равный входному значению переменной (рис. 39).


Рис. 39. Аналоговая операция присвоения


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

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


Рис. 40. Операции с двумя операндами:

A — обозначение аналогового типа, b — обозначение битового типа


Ход выполнения операции с двумя битовыми операндами можно рассмотреть на примере логического И. На рис. 41 представлен ход выполнения такой операции. Так как программа пересчета таблицы проходит по строкам сверху вниз, то сначала будет вычислен первый операнд, b1a. Его значение будет зависеть от состояния переменной b1 и от необходимости ее инвертировать. Если переменную b1 необходимо инвертировать, то b1a получит инвертированное значение b1, а если такой необходимости нет, то b1a станет равной b1. Аналогичное действие будет проведено с переменной b2. После этого результату b3 будет присвоено значение логического И b1a и b2a.


Рис. 41. Выполнение операции «логическое И» программой пересчета таблицы:

а) шаг 1 — первому операнду присваивается прямое или инверсное значение; б) шаг 2 — второму операнду присваивается прямое или инверсное значение; в) шаг 3 — вычисляется результат логической операции


Арифметические операции с аналоговым результатом можно рассмотреть на примере сложения (рис. 42). Аналогично производятся операции вычитания, умножения и деления.


Рис. 42. Операция сложения двух аналоговых переменных

Операции сравнения используют аналоговые операнды и имеют битовый результат, который может далее использоваться в любых битовых операциях. На рис. 43 показана операция «больше» для двух аналоговых переменных. Справа от результата записана эта же операция на текстовом языке программирования.


Рис. 43. Пример операции «больше»


Операции выбора используют три операнда, два из которых — входные переменные, а третий определяет, значение какой переменной появится на выходе (рис. 44). По сути, это аналоговый или битовый мультиплексоры.


Рис. 44. Операции выбора с тремя операндами


На рис. 45 показана операция выбора одного из двух битовых значений SELB, в которой все три операнда и результат битовые.


Рис. 45. Пример битового мультиплексора


Для выбора одного из двух аналоговых значений используется операция SEL, в которой первые два операнда и результат аналоговые, а битовый операнд определяет, какое из входных аналоговых значений будет присвоено результату (рис. 46).


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

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

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