Главная Случайная страница


Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Локальные системы программного управления

Локальные СПУ – это системы, служащие для управления отдельными ГПМ, транспортными устройствами, роботами. Основные функции локальных СПУ:

· Централизованный контроль: сбор данных о технологическом объекте и о работе АСУТП с помощью разного рода датчиков и преобразователей; оценка отклонений данных от заданных значений и расчет основных параметров техпроцесса; анализ срабатывания блокировок и защит, диагностика состояния оборудования.

· Регулирование техпроцесса: стабилизация параметров на заданном уровне, программное управление изменением параметров по заданному закону, автоматическая оптимизация параметров техпроцесса.

· Программно-логическое управление: выполнение различных переключений по заданной программе и в зависимости от значений параметров техпроцесса, т.е. управление технологическим циклом работы оборудования.

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

· Обмен информацией: подготовка данных и УП для передачи управляющим устройствам высшего и низшего уровней управления, выполнения протоколов обмена с рассредоточенными абонентами через последовательный интерфейс.

Локальные СПУ строятся на базе специализированных микропроцессорных устройств, выпускаемых серийно. В зависимости от характера и сложности выполняемых функций базовые управляющие устройства локальных УВМ выпускаются в двух видах:

· программируемые контроллеры (ПЛК), или программируемые логические контроллеры, основным назначением которых является программно-логическое управление технологическим циклом (цикловое управление);

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

При программно-логическом управлении с помощью ПЛК возможно и управление перемещением рабочих органов, но только по номерам рабочих точек в пространстве. Положения, соответствующие заданным рабочим точкам, должны быть отработаны заранее в процессе наладки. Современные ПЛК, в дополнение к основной функции управления технологическим циклом изготовления продукции, могут также осуществлять и несложное регулирование параметров техпроцесса, т.е. несложное числовое управление, но в большинстве случаев числового управления применяются УЧПУ. В состав современных УЧПУ и систем с ПЛК входит значительное количество различных микропроцессорных устройств и линий связи. Они в своей совокупности образуют информационную сеть типа Fieldbus («полевая» сеть, см. §2.6).

 

Программируемые контроллеры

Структура ПЛК

Программируемые контроллеры (зарубежное наименование – PLC, т.е. Programmable Logical Controller) – это выпускаемые серийно управляющие устройства, предназначенные преимущественно для управления технологическим циклом работы производственного оборудования. Типичная структура ПЛК показана на рисунке 7.2. Конструктивно ПЛК обычно оформлен в виде двух или трех блоков (см. рис.7.2). Обязательными являются блок управляющих модулей ПЛК (блок ПЛК) и блок программатора. Программатор – это программирующее устройство, с помощью которого управляющая программа (УП) вводится в блок ПЛК. Для разработки и ввода УП может быть использован компьютер, оснащенный специализированным программным обеспечением. Одновременно предусматривается применение переносного клавишного программатора. Последний используется преимущественно для наладки системы управления, построенной на базе ПЛК. После ввода и отладки УП контроллер реализует заданные управляющие функции, работая в автономном автоматическом режиме.

Рис. 7.2. Структура программируемого логического контроллера

 

Процессорный блок ПЛК имеет модульную структуру, что позволяет формировать “корзину” ПЛК с большим или меньшим количеством модулей различного назначения в зависимости от сложности и характера решаемых задач управления. Обязательным модулем ПЛК, наряду с модулем питания, является модуль процессора МПМ (микропроцессорный модуль, см. рис.7.2). В этом модуле находится микропроцессорное устройство, осуществляющее переработку поступающей информации в соответствии с заданной УП и формирование управляющих сигналов. В нем же находится устройство памяти ПЛК, включая ПЗУ и ОЗУ. Для ввода информации, поступающей от управляемого объекта, и вывода сигналов управления служат модули ввода-вывода МВВ. Обычно в составе ПЛК имеется несколько модулей ввода дискретных сигналов и несколько модулей вывода дискретных сигналов. Габарит ПЛК определяется общим количеством входных и выходных сигналов, которые он может принимать и, соответственно, выдавать. Например, ПЛК на 256 входов-выходов – это ПЛК, в котором может быть установлено такое количество дискретных модулей ввода или вывода сигналов, что общее количество сигналов, обрабатываемых ПЛК, может достигать 256 при условии, что аналоговые и специализированные модули отсутствуют. Каждый дискретный модуль ввода или вывода обычно рассчитан на 8, 12, 16 и до 32 дискретных сигналов.

Помимо модулей, обеспечивающих обработку дискретных сигналов, в блоке ПЛК могут быть установлены модули для ввода или вывода аналоговых сигналов. Модули ввода аналоговых сигналов – это аналого-цифровые преобразователи (АЦП), преобразующие непрерывные аналоговые сигналы в цифровые (числовые). Напряжению или току на входе АЦП соответствует число на выходе АЦП, пропорциональное данному напряжению или току. Модули вывода аналоговых сигналов – это цифро-аналоговые преобразователи (ЦАП), преобразующие заданное процессором число, поданное на данный выход, в пропорциональное ему напряжение или ток, формируемые на данном выходе. При необходимости в блоке ПЛК устанавливаются различные специализированные МВВ. Среди них отметим модули для приема импульсных сигналов датчиков перемещений, а также модули, предназначенные для управления следящими электроприводами. Особо следует упомянуть модуль для обмена информацией с центральной УВМ, который выполняется на базе последовательного интерфейса и устанавливается, если рассматриваемый ПЛК играет роль ЛУВМ. Последовательный интерфейс может применяться и для управления ведомыми устройствами по схеме ведущий-ведомый, в том числе (через УСО) – с интеллектуальными датчиками. Если же ПЛК играет роль ЦУВМ, то он оснащается модулем последовательного интерфейса для связи с локальными УВМ.

 

Языки программирования ПЛК

Большинство задач управления в рамках АСУТП требует не столько вычислительных арифметических операций (хотя бывают, необходимы и они), сколько логических операций, без каковых не обходится ни один процесс управления. Логические операции совершаются над сигналами, которые либо приходят по каналам обратной связи от датчиков технологических параметров, либо вырабатываются различными управляющими устройствами в составе АСУТП. Сигналы логического типа (дискретные сигналы) принимают значения либо 0; либо 1. Они либо поступают в ПЛК через дискретные модули входов (сигналы обратной связи), либо выдаются из ПЛК через дискретные модули выходов на исполнительные устройства (управляющие сигналы). Получение информации о сигналах обратной связи называется опросом входов.

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

Порядок программирования ПЛК определяется международным стандартом IEC 61131-3. Помимо объектов – битов в нем предусмотрена возможность объединение битов в слова. Предусмотрены следующие форматы слов:

B – байт, состоящий из 8 бит и предназначенный для обозначения символов, применяющихся при программировании ПЛК;

W (Word) – слово одинарной длины, составляет 16 бит; такие слова применяются для записи совокупностей битов, а также чисел от -32768 до 32767;

D (Double) – слово двойной длины, т.е. длиной 32 бит; оно может быть использовано для записи алгебраических величин, как и слово одинарной длины;

F (Floating) – слово с плавающей точкой (оно же – с плавающей запятой) применяется в алгебраических и других математических операциях.

Для обозначения объектов адресации ПЛК приняты следующие символы:

I (Input) – бит входа (отображение дискретного входного сигнала);

Q (Output) – бит выхода (отображение дискретного выходного сигнала);

X – обозначение битового формата при адресации;

M (Memory) – бит памяти (промежуточная переменная) или начало обозначения величины, хранящихся в памяти ПЛК;

K – константа;

S – системный бит, контролирующий корректность функционирования ПЛК в процессе выполнения прикладной программы;

L (Label) – метка.

Прежде чем приступать к написанию текста прикладной программы, необходимо определить адреса ячеек памяти, в которых будут храниться значения переменных и постоянных величин, фигурирующих в составляемой программе. Адресация начинается знаком %, являющимся символом стандарта IEC 61131-3. Затем записывается тип адресуемого объекта: I – вход, Q – выход, М – внутренняя (промежуточная) переменная и пр. После этого указывается формат объекта (бит или слово того или иного типа) и номер бита или регистра памяти, который этим объектом занят. Номера битов, предназначенных для хранения информации о состоянии дискретных входов и выходов, задаются в строго определенном порядке. При этом старшая цифра номера должна соответствовать номеру корзины (шасси, крейта), в которой установлен модуль, содержащий адресуемый вход или выход, следующая группа цифр должна соответствовать номеру модуля, последняя группа цифр – это номер входа (или выхода), предназначенного в данном модуле для подачи на него адресуемого сигнала. В памяти ПЛК последняя группа цифр, о которой упоминалось выше, является номером бита, в котором запоминается состояние адресуемого входа или выхода. Номер бита определяется от номера регистра точкой. Например, % I12.5 означает, что в битовую ячейку 5 регистра 12, расположенного в нулевой корзине (нули перед первой значащей цифрой опускаются), поступает сигнал о состоянии входа 5 модуля входов №12. Номера ячеек памяти, предназначенных для хранения внутренних переменных, распределяются по усмотрению программиста.

Стандартом IEC 61131-3 определены пять языков программирования ПЛК, опирающихся на общую систему адресации, на стандартизированные общие элементы: символы, форматы данных и переменных. Это позволяет программировать ПЛК на любом стандартном языке программирования в зависимости от характера решаемой задачи и вкусов проектировщика системы автоматизации. Расположив рассматриваемые языки программирования ПЛК в порядке сложности реализуемых ими функций, получим следующий ряд.

LD (Ladder Diagrams), – язык «лестничных диаграмм», или язык РКС. Он представляет собой графическую интерпретацию процесса разработки релейно-контакных схем (РКС) управления (см. §5.3). Управляющая программа на языке LD состоит из релейных управляющих цепочек, ступеней, отображаемых на дисплее компьютера, на котором производится программирование, вместе с ограничивающими их условными линиями электропитания. Получается изображение, несколько напоминающие лестницу. Это «лестничная» конструкция автоматически переводится на язык машинных кодов и транслируется в ПЛК. Язык LD удобен для программирования решения относительно несложных задач управления и является основным для многих ПЛК младших классов.

IL (Instruction List) – язык набора инструкций. В его основе лежит своеобразный метод отображение логических формул булевой алгебры (см.§5.2), когда они выписываются в виде колонок инструкций (команд), разделенных на две части: слева записывается код операции в удобном для запоминания (мнемоническом) виде, а справа – адрес логической переменной, над которой должна быть совершена указанная операция. Язык IL – наиболее удобный и эффективный язык программирования низкого уровня. В основе его лежит язык STEP5 фирмы SIEMENS. Ниже язык IL будет рассмотрен более подробно.

FBD (Functional Block Diagrams) – язык функциональных блоков. Этот язык ведет свое происхождение от структурных и логических схем автоматического управления, знакомых каждому специалисту в области автоматизации. Техника проектирования на языке FBD сводится к отображению на дисплее компьютера системы управления в виде набора стандартных функциональных блоков (обычно в виде прямоугольников), соединенных между собой линиями, отображающими логические или иные связи между ними. Каждый блок обеспечивает реализацию той или иной логической или арифметической функции, функции сравнения, специальной функции управления (например, ПИД-регулятора, таймера) и пр. Внутри каждого блока располагается обозначение выполняемой им функции. Входные сигналы подводятся с левой стороны блоков, а выходные выводятся с правой стороны. Обязательно должны быть указаны источники сигналов для всех входов блока, а также приемник для выходного сигнала (не должно быть не присоединенных входов и выходов). Если выходной сигнал блока – промежуточная переменная, то выход такого блока соединяется со входом следующего блока в соответствии с логикой управления. Язык FBD удобен тем, что позволяет наглядными графическими средствами создавать управляющие программы практической любой сложности.

ST (Structured Text) – язык «структурированного текста». Язык ST относится к языкам высокого уровня вроде Basic и Pascal, но приспособлен для решения задач программного управления на базе ПЛК. Конструкции языка ST могут быть употреблены в составе языков LD и IL при решении сложных задач управления.

SFC (Sequential Function Chart) – язык последовательностных функциональных схем, или Графсет. Он предназначен для представления в понятном и заказчику, и исполнителю виде логики функционирования сложных систем автоматизации на уровне ЦУВМ. Язык SFC позволяет объединить в одном комплексе локальные управляющие программы и блоки. С его помощью достигается согласованность выполнения локальных программ, контроль состояния управляемого техпроцесса и обеспечение синхронизации по приему и обработке данных о ходе процесса. Данный язык позволяет графически отобразить управление техпроцессом в виде укрупненных управляющих блоков, порождаемых ими действий и переходов. Переход от функциональных схем SFC к конкретным управляющим программам производится средствами описанных выше языков программирования ПЛК и, прежде всего с помощью языка ST.

 

Язык программирования IL

Язык IL предназначен для программирования ПЛК, опираясь непосредственно на логические (булевы) формулы, описывающие технологический цикл, реализуемый под управлением ПЛК (см. гл. 5). Программа, составленная на языке IL, состоит из последовательности инструкций. Инструкциейв данном случае называют команду, состоящую из двух частей: кода инструкции и адресной части (операнда). Код инструкции указывает, какую именно операцию следует совершить над содержимым ячейки памяти, адрес которой указан в адресной части инструкции. Система адресации языка IL, общая для всех языков программирования ПЛК, предусмотренных стандартом IEC 61131-3, описана выше. Инструкции языка IL делятся на инструкции проверки выполнения логических условий и на инструкции выполнения заданных действий.

Начнем рассмотрение проверочных инструкций с группы LD (LoaD). Они имеют следующие коды:

LD- загрузить бит, заданный в адресной части данной инструкции, в процессор;

LDN (LoaD Not)- загрузить инверсию бита, заданного в адресной части;

LDR- (LoaD Rise)- загрузить в процессор единицу, если в текущем цикле опроса значение бита, указанного в адресной части, изменилось от нуля к единице;

LDF- (LoaD Fall)- загрузить единицу, если в текущем цикле опроса значение бита, указанного в адресной части, изменилось от единицы к нулю.

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

Аналогично кодам инструкций группы LD формируются коды инструкций группы AND (логическое И) и группы OR (логическое ИЛИ):

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

OR- произвести логическое сложение вышеуказанных величин;

ANDN (AND Not)- произвести логическое умножение результата в процессоре на инверсию бита, заданного в адресной части данной инструкции;

ORN- произвести логическое сложение вышеуказанных величин: бита в процессоре с инверсией бита, заданного в адресной части;

ANDR (AND Rise)- произвести логическое умножение результата в процессоре на единицу, если в текущем цикле опроса значение бита, указанного в адресной части, изменилось от нуля к единице.

Остальные коды: ORR, ORF и ANDF расшифровываются аналогично. Предусмотрены также аналогичные коды XOR, XORN, XORR и XORF для инструкций, реализующих исключающее ИЛИ.

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

Инструкции выполнения заданных действий (инструкции действия) инициируют подачу процессором управляющих сигналов, соответствующих сложившимся логическим условиям. Рассмотрим группу инструкций действия ST (STorage). Они имеют следующие коды:

ST- переслать по заданному в адресной части данной инструкции адресу значение бита (0 или 1), находящегося в процессоре (бит был сформирован в результате предыдущих проверочных операций);

STN (STorage Not)- совершить такую же операцию, что и по инструкции ST, но с предварительной инверсией значения бита, находящегося в процессоре;

S (Set)- установить бит, адрес которого указан в адресной части данной инструкции, в состояние 1, если в текущем цикле работы процессор находится в состоянии 1; состояние 1 адресуемого бита сохраняется и в дальнейшем, даже если процессор перейдет в состояние 0;

R (Reset)- сбросить бит, адрес которого указан в адресной части, в состояние 0, если в текущем цикле работы процессор находится в состоянии 1; состояние 0 адресуемого бита сохраняется, даже если процессор перейдет в состояние 0.

Инструкциями ST, STN, S и R задаются значения выходных и промежуточных дискретных управляющих сигналов ПЛК.

К инструкциям действия относятся также инструкции передачи управления JMP (JuMP) и END. Их коды:

JMP – безусловный переход на метку, номер которой указан в адресной части данной инструкции;

JMPС (JuMP on Condition) – условный переход на метку; переход реализуется, если в результате выполнения предыдущей логической операции процессор оказался в состоянии 1, а иначе выполнение программы продолжается обычным порядком;

JMPCN (JuMP on Condition Not) – условный переход на метку в случае, когда в результате выполнения предыдущей логической операции процессор оказывается в состоянии 0, а иначе выполнение программы продолжается обычным порядком.

Код END означает, что выполнение цикла управления завершено. После этого ПЛК переходит к началу нового цикла управления (к началу управляющей программы). Если же нужно остановить выполнение циклической программы, то используется инструкция HALT. У инструкций END и HALT нет адресной части (безадресные инструкции).

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

Q2.1 = I1.1 I1.2 + I1.3 и

Q2.2 = I1.1 (I1.2 + I1.3).

Здесь мы полагаем, что информация о входных сигналах X11, X12 и X13 попадает в ячейки памяти I1.1, I1.2 и I1.3, а формируемые в ПЛК выходные сигналы Y21 и Y22 направляются на выходы Q2.1 и Q2.2. Программный фрагмент, отображающий формулу для Q2.1, будет форматироваться без скобок:

LD %I1.1

AND %I1.2

OR %I1.3

ST %Q2.1

В данном фрагменте в процессор загружается (LD) значение бита I1.1,которым и определяется после этого текущее состояние процессора (0 или 1). Затем производится логическое умножение (AND) данного состояния на значение бита I1.2. После этого производится логическое сложение (OR) нового состояния процессора с битом I1.3. Копия результата сложения (0 или 1), полученного в процессоре, пересылается (ST), в полном соответствии с формулой для Q2.1, на выход Q2.1.

Если необходимо реализовать функцию Q2.2, то нужно применить скобки:

LD %I1.1

AND( %I1.2

OR %I1.3

)

ST %Q2.2

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

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

[%MW4: = %MW1 + 10].

Здесь к содержимому регистра памяти MW1 прибавляется 10, а полученный результат запоминается в регистре MW4.

Корректно оформленный фрагмент программы представляет собой последовательность инструкций, расположенных в столбик, по одной инструкции в строке. Каждый автономный фрагмент начинается с восклицательного знака, вслед за которым может располагаться комментарий, ограниченный звездочками. При необходимости ниже комментария может располагаться метка (Label), которая имеет вид %Li, (где i может принимать значения от 0 до 999). Метки используются для организации переходов внутри программы. Первой инструкцией (вслед за меткой, если она имеется) должна быть инструкция типа LD или JMP. Каждая последовательность должна содержать одну или несколько проверочных инструкций и завершаться инструкцией действия.

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

В качестве примера составим программу регулирования уровня жидкости путем автоматического включения и выключения электропривода насоса, подающего жидкость, в соответствии с формулой (5.10). Запишем ее в скобочной форме:

Ht = dв (dн + Ht-1).

Примем также, что сигналы датчиков dв и dн подаются на входы I1.2 и I1.1 соответственно, а выходной сигнал H на включение насоса формируется на выходе Q1.1. Чтобы избежать скобок в программе, начнем с программирования выражения в скобках. Получим:

!

%L1

LD %I1.1

OR %Q1.1

AND %I1.2

ST %Q1.1

Метка L1 необходима, чтобы можно было организовать включение насоса из разных сегментов программы.

 

Последнее изменение этой страницы: 2016-06-09

lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда...