litbaza книги онлайнРазная литератураТабличный ПЛК.Табличное программирование контроллеров - Владимир Васильевич Стретенцев

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 6 7 8 9 10 11 12 13 14 ... 20
Перейти на страницу:
на аналоговые выходы контроллера. Например, результат операции сравнения будет представлен в дискретном виде, а результат умножения — в аналоговом. Диапазон адресов аналоговых переменных, применяемых в табличной программе, находится в заголовке текстового файла табличной программы. По предпоследней и последней цифрам в заголовке можно определить адреса возможных аналоговых переменных. На конец адресного пространства битовых переменных указывает предпоследняя цифра в заголовке. Прибавив к этой цифре единицу, мы получим начало диапазона адресов аналоговых переменных. Последняя цифра заголовка указывает на конец адресного пространства аналоговых переменных. Так как все возможные адреса аналоговых переменных известны, то тип переменой легко определить по ее адресу.

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

Рис. 33. Пример операции с аналоговыми переменными

Использование аналоговых переменных в таблице подчиняется определенному правилу. Для аналоговых входных и выходных переменных используется только операция присвоения «=». Операция «NOT», инвертирующая битовые входные и выходные значения, для аналоговых операций не применяется. При необходимости для того, чтобы получить отрицательное значение переменной, можно воспользоваться умножением на отрицательное число. Если в столбце под аналоговой переменной находятся несколько ячеек с символом «А» или активные ячейки битовых операций, то при проверке таблицы или ее пересчете должна быть выдана соответствующая ошибка. Таким образом, в столбце аналоговой выходной переменной может быть только одна аналоговая активная ячейка, при помощи которой результат по строке присваивается выходной переменной. Также в строке с аналоговым результатом не используется таймер. Для улучшения читаемости таблицы ячейки с символом «А» и значения выходных переменных выделяются бежевым цветом, а в ячейках битовых операций «Логич. И» и «RS» ничего не пишется. Различные уставки и граничные значения для аналоговых сигналов присваиваются внутренним аналоговым переменным, для которых не назначены аналоговые входы контроллера. При загрузке таблицы таким внутренним переменным присваивается число, которое записано в поле «Начальное значение» текстового файла таблицы. При необходимости внутреннюю переменную можно изменить, присвоив ей новое значение. Для этого при помощи входных операций определяется новое значение и присваивается внутренней переменной с помощью активной аналоговой ячейки.

3.3. Аналоговые входы для датчиков температуры

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

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

3.4. Сохранение переменных в энергонезависимой памяти

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

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

Рис. 34. Пример организации сохранения в энергонезависимой памяти значений аналоговой и битовой переменных

Можно заметить, что при отпускании кнопки, устанавливающей начальные значения, сохраняемая переменная с адресом 31 получит значение переменной с адресом 21. То есть начальное значение переменная с адресом 31 будет иметь, только пока нажата кнопка. На рис. 34. представлено состояние табличной программы, когда кнопка, устанавливающая начальные значения, не нажата.

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

В примере на рис. 35 начальное значение битовой переменной с адресом 15 устанавливается триггерной активной ячейкой в строке 9. Предполагаемое начальное значение этой переменной равно нолю, поэтому выбрана триггерная ячейка «R», которая сбросит в ноль сохраняемую битовую переменную при нажатии на кнопку, устанавливающую начальные значения.

1 ... 6 7 8 9 10 11 12 13 14 ... 20
Перейти на страницу:

Комментарии
Минимальная длина комментария - 20 знаков. Уважайте себя и других!
Комментариев еще нет. Хотите быть первым?