Читать бесплатно книгу «Табличный ПЛК.Табличное программирование контроллеров» Владимира Васильевича Стретенцева полностью онлайн — MyBook
image

1. Введение в табличное программирование контроллеров

1.1. Почему таблица?


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

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

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

Появление Microsoft Excel версии 3.0 и выше отодвинуло существовавшие на то время программы электронных таблиц других производителей на задний план. Хотя необходимо отметить, что электронная таблица Quattro Pro 9, входящая в Corel Word Perfect Office 2000, по своим возможностям не уступала аналогичной версии Microsoft Excel, но к этому времени MS Excel фактически стал стандартом. Особенно порадовала функция заморозки части таблицы, как по вертикали, так и по горизонтали – это позволило работать с довольно большими таблицами, используя замороженную часть как многострочный заголовок с возможностью видеть большое количество вычисляемых параметров. К примеру, таблица прихода и расхода комплектующих в MS Excel была сделана за пару часов и учитывала жизненный цикл каждой партии товара. Недостаток таких решений, состоящий в невысокой защищенности данных от случайных изменений, с лихвой покрывался скоростью получения интересующей информации и ее наглядностью.

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

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

Так как отсутствует многоуровневое меню, с помощью которого можно изменять параметры, и на экран выводится одна-единственная таблица, отображающая весь процесс, то многократно сокращается время обучения программированию контроллеров. Может сложиться впечатление, что такая таблица будет иметь тысячи строк и столбцов, но это на самом деле далеко не так. Например, программа управления портальным краном, имеющим две лебедки, стреловой, поворотный механизмы и систему передвижения, содержит 180 строк и 30 столбцов. Простые программы управления небольшими объектами часто не нуждаются в прокрутке строк или столбцов, помещаясь на экране целиком.

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

1.2. Основы табличного программирования

Для начала рассмотрим таблицу, показанную на рис. 1. Нумерованные строки таблицы отвечают за входы контроллера, а нумерованные столбцы – за выходы. Состояние каждого входа контроллера описывается входной переменной, которая получает значение, равное логическому уровню на соответствующем ей входе. А логические уровни на выходах контроллера получают значения своих выходных переменных. Состояние каждой выходной переменной будем определять как логическое И в столбце под ней. Чтобы задать зависимость выходной переменной от нескольких входных переменных, продублируем значения входных переменных в ячейки под выходной переменной.

В приведенном примере состояние выходной переменной 2 будет равно логическому И входных переменных 1 и 4. Так как результат логического И равен единице, то на выходном контакте 12 будет высокий логический уровень.

Рис. 1. Пример таблицы


Чтобы таблица стала программой, внесем в нее некоторые изменения. Ячейки в теле таблицы, участвующие в расчете выходных значений, будем называть активными ячейками. Для их обозначения используем символ &, который в электронике и программировании обычно является символом битовой операции «логическое И». Чтобы увеличить наглядность таблицы, активные ячейки, состояние которых равно нолю, выделим синим цветом, а ячейки, состояние которых равно единице, – зеленым. Таким же образом обозначим результат логического И по столбцу. Простая табличная программа представлена на рис. 2.


Рис. 2. Пример простой табличной программы


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

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

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

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

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

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


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


Бесплатно

0 
(0 оценок)

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

Установите приложение, чтобы читать эту книгу бесплатно