Главная страница  Цифровые системы 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [ 47 ] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90]

одного бита, и из целого байта. В последнем случае один оператор считывац

дет выдавать одновременно значения восьми входных бит.

6v. ван

фаза 1: ввод данных

фаза 2: обработка

фазаЗ:

вывод сигналов

входные

сигналы

память программ

процессор

память данных

20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37

входной регистр

выходной регистр

выходные сигналы

Рис. 7.21. Основная структура программируемого логического контроллера (цифрами обозначены различные входные и выходные каналы)

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

7.3.2. Основные команды

эеально-

В системах промышленной автоматики ПЛК должны работать в режиме реал".- го времени, т. е. быстро реагировать на внешние события. Ввод и обработка внеш сигналов осуществляется в ПЛК двумя способами - по опросу или по прорыва (раздел 10.6.4). Основной недостаток опроса - можно потерять некоторые вне события, если ПЛК не обладает достаточным быстродействием, хотя такой проще для программирования. Управление по прерываниям сложнее для про t,. мирования, но риск пропустить какое-либо внешнее событие намного меныя „ равления по опросу обычно вполне достаточно для простых систем, а управле

Программирование ПЛК в основном представляет собой описание УР" последовательностей. Функции ввода/вывода уже реализованы в базов

прерыванию используется в сложных случаях.

eJlbnUL-lCW. VfJi:ii.vij,i-AJri i-.v."/-----J---- ..------ - Ol

граммном обеспечении ПЛК. Программные инструкции, задаваемые одним у санных выше способов (раздел 7.3.1), транслируются в машинный код ПЛК- ро-пение программы происходит в бесконечном цикле. Каждый полный цикл сК

"порционально размеру программы.

"P°gpQCTb реакции ПЛК, очевидно, зависит от продолжительности цикла, по-KV во время исполнения программы процессор ПЛК не может считывать или • вать какие-либо новые сигналы. Обычно это не очень серьезная проблема, так большинство сигналов в промышленной автоматике изменяются сравнительно "едленно либо имеют относительно большую продолжительность.

Небольшого набора базовых машинных команд, как правило, достаточно для большинства задач последовательностного управления. Программа, состоящая из этих команд называется списком команд {instruction list). Некоторые основные команды перечислены ниже; обычно они могут оперировать как битами, так и байтами. Id Idi загрузка значения из входного порта в сумматор, непосредственно (Id)

либо с инверсией (Idi); and, ani операция AND или NAND между значениями в сумматоре и на входном порту; результат сохраняется в сумматоре;

операция OR или NOR между значениями в сумматоре и на входном порту; результат сохраняется в сумматоре;

содержимое сумматора копируется в конкретный выходной порт и управляет выходными сигналами; значение в сумматоре не изменяется, поэтому его можно подвергнуть дальнейшей обработке или переслать на другой выходной порт.

Пример 7.4

or, on

Программирование ПЛК с помощью принципиальной схемы и списка команд

Логические операторы управления для ПЛК можно описать как с помощью принципиальной схемы, так и списка команд (рис. 7.22).

г I12-,

г ИЗ-,



•"i- анд Управляющие операторы ПЛК в виде принципиальной схемы и списка ко-

"ЧьщГ последовательность или принципиальная схема часто бывают развет-что вынуждает сохранять промежуточные данные для позднейшей обра-

для малых ПЛК составляет примерно 15-30 мс, и это время приблизительно



ботки. в релейных схемах это можно сделать с помощью специального реле ((. , удержанием); в ПЛК для этих целей существуют операторы orb (OR Block) пщ (AND Block), которые помещают свой результат в стековую память ПЛК. "

Пример 7.5

Программа 1. Использование внутренней стековой памяти ПЛК - принципиальная схема и список команд

На рис. 7.23 показана принципиальная схема.

13п Г МП Г

Рис. 7.23. Пример использования стековой памяти в принципиальной схеме

Соответствующий ей список команд:

Id И значение из канала 1 считывается в сумматор (А); and 12 результат операции AND сохраняется в А;

Id 13 содержимое А помещается в стек, а значение из канала 3 считывается в А; and 14 операция AND со значениями из каналов 3 и 4; результат сохраняется в А; orb операция OR между значениями сумматора А и последним сохраненным в стеке значением; при этом результат остается в сумматоре А, а временный элемент удаляется из стека; out 01 вывод значения А в канал 1.

Примеру.6

Программа 2. Использование внутренней стековой памяти ПЛК - функциональные блоки и список команд

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

Id И значение из канала 1 считывается в сумматор; and 12 результат операции AND помещается в А;

Id 13 содержимое А записывается в стек, а значение из канала 3 считывается в and 14 операция AND со значениями из каналов 3 и 4; результат сохраняется в

Id 15 содержимое А записывается в стек, а значение из канала 5 считывается в А and 16 операция AND со значениями из каналов 5 и 6; результат сохраняется в А orb операция OR между сумматором А и последним сохраненным в стеке значением; результат остается в А, а временный элемент удаляется йЗ стека;

оперирует с последним элементом стека - т. е. результат операции

AND между данными из каналов 1 и 2 - и содержимым сумматора А; результат помещается в А, а последний элемент стека удаляется; Q1 вывод значения А в канал 1.

И 12

13 14

15 16

&

&

&

>1

&

Рис. 7.24. Пример логической цепи в виде функциональных блоков

7.3.3. Дополнительные команды ПЛК

Базовый набор команд программируемого логического контроллера может включать логические операции XOR, NAND, NOR и др. Кроме того, современные ПЛК имеют операторы для обработки буквенно-цифровых данных и для связи с внещними устройствами, а также дополнительные функции в виде счетчиков, таймеров и генераторов импульсов. Импульсные сигналы можно, например, использовать для сброса (обнуления) внещнего счетчика. С помощью модулей задержки входные и выходные сигналы (.°*"° вдвинуть по времени. Более сложные ПЛК могут генерировать прямоугольные <iangularpulses) и пилообразные импульсы {ттр functions), а также содержать алго-итмы фильтрации сигналов и управления с обратной связью.

Программирование ПЛК

РойК программируются с помощью внещних устройств - программато-

Т)ам правило, эти устройства не нужны для непосредственной работы ПЛК. Про-Эти ~ либо ручные специализированные устройства, либо обычные порченые персональные компьютеры. УЧной программатор ПЛК выглядит как большой карманный калькулятор с про-дисплеем. Каждый логический элемент принципиальной схемы или програм-оператор вводится специальными клавишами или их комбинацией. . олее мощный и набирающий популярность вид программатора ПЛК - это пер-Ьный компьютер с графическим дисплеем. Обычно дисплей показывает не-ько горизонталей принципиальной схемы одновременно. Для облегчения отлад-

-TblM

•иый



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

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

Новый стандарт IEC 1131-3, ранее называвшийся IEC 65A(SEC)67, определяе-пять типов языковых средств для программирования ПЛК:

- список команд {instruction list - IL);

- функциональная блок-схема, т. е. схема на основе функциональных блоков {function block diagram - EBD);

- принципиальная схема {ladder diagram - LD);

- функциональная карта {sequentialfunction chart - SEC);

- язык типа "структурированный текст" {structured text) с синтаксисом, подобным языку программирования Pascal.

Структурированный текст и список команд представляют собой формулировку алгоритма в виде текста. Функциональная блок-схема, принципиальная схема и функии опальная карта являются, наоборот, графическим представлением функций и структуры логических цепей. Таким образом, международный стандарт IEC1131- гарантирует широкий спектр возможностей для программирования ПЛК.

7.4. Функциональные карты

7.4.1. Синтаксис функциональных карт

Необходимость структурирования процесса последовательностного управлеки» для небольших задач не сразу очевидна, но по мере того, как увеличивается сл ность управляющих действий, хорошее функциональное описание становится о тельным. Принципиальные схемы и функциональные блок-схемы не являются статочно мощным средством структурированного описания логических выраЖ Для анализа задач управления методом "сверху вниз" {"top-down") равляющих последовательностей был разработан инструмент, который "°"( лц: звание функциональные карты {sequentialfunction chart). Сегодня функцион карты как средство программирования предлагаются несколькими произвол , ми ПЛК - Grafcet (Telemecanique), GRAPH-5 (Siemens), HI-ELOW Oi Основные идеи, заложенные в эти языки, одинаковы, а различия имеют второ ный характер. p

Функциональную карту можно рассматривать как специализированнь для описания управляющих последовательностей в виде графической схемы. цу 1970-х годов первый язык функциональных карт - Grafcet {GRAphe de Со л,. Etape-Transition, фр. "Функциональная карта - пошаговый переход") - был рз

Франции и позже стал основой для разработки международного стандарта Подготовка функциональных карт для управляющих систем"). IEC цйональные карты описывают управляющие последовательности с помо-

заранее определенных правил для: поавляющих действий, которые необходимо произвести в определенной по- дедовательности; деталей исполнения каждого шага.

функциональная карта, соответственно, разделена на две части (рис. 7.25). Поковал часть {sequence part) описывает последовательность главных управляющих шагов (левая сторона рис. 7.25 из пяти блоков), но не содержит исполняемых действий, которые описываются предметной {object), или управляющей {control), ча-"т-ью, состоящей из блоков справа от "шагов". Каждое действие должно быть связано каким-либо шагом и может быть описано принципиальной схемой, логической це-ью либо булевым выражением.

Действие

резервуар пуст

пустой *старт

выпускной клапан закрьгг

включить насос

полный

выключить насос

включить нагреватель

температура

- отключить нагреватель

время ожидания = "time out"

ждать

Комментарий

это выражение принимает значение "истина", если датчик уровня показывает "пустой" = 1 и выдана команда "старт"

начать заполнение

уровень достиг верхнего ограничивающего клапана

конец операции заполнения и начало нагрева

достигнута заданная температура

время ожидания равняется "timeout"

время ожидания истекло

открыть выпускной клапан

пустой

резервуар пуст

"с. 7

25. Функциональная карта управления дозатором




[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [ 47 ] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90]

0.01