Автоматизация технологических процессов книга. Компетенций в новой среде обучения виртуальной среде профессиональной деятельности
Скачать 24.89 Mb.
|
224 (LD), язык последовательных функциональных схем (SFC), язык инструкций (IL) и язык структурированного текста (ST). Выбор этих языков обусловлен простотой и наглядностью представления сих помощью алгоритмов управления. Внедрение стандарта IEC 61131 дало основу для создания единой школы подготовки специалистов. После появления стандарта появилась возможность создавать аппаратно-независимые библиотеки. ТИПЫ ДАННЫХ Тип данных определяет структуру информации, формате представления и диапазон допустимых значений. В языках IEC 61131-3 используется строгая проверка на тип обрабатываемых данных. Операции над данными производятся только тогда, когда они относятся к одному определенному типу либо к совместимому типу, имеющему более широкий диапазон допустимых значений. Это обстоятельство требует предварительного описания переменных в библиотеке прикладной программы процедура объявления переменных. Типы данных в IEC 61131-3 разделяются на две группы элементарные и составные. К элементарным типам данных относятся целочисленные переменные, логические (булевы) переменные, действительные переменные, переменные времени, строковые переменные. Элементарные типы данных являются основой для построения составных типов данных. К составным относятся следующие типы данных массивы, структуры, перечисления, массивы структур и др. Логические переменные Данные переменные могут принимать только два значения False (Ложь или О) или True (Правда или «1»). Эти переменные определяются ключевым словом BOOL и относятся к алгебре Буля. Для хранения значений логической переменной используется один бит. Целочисленные переменные Приведем основные типы целочисленных данных BYTE - 8 бит WORD - 16 бит, DWORD (Double WORD) - 32 бита LWORD (Long WORD) - 64 бита SINT (Small INT) - 8 бит, может принимать значения от -128 добит, может принимать значения от -32768 добита, может принимать значения от -2 31 добита, может принимать значения от -2 63 добит, может принимать значения от 0 добит, может принимать значения от 0 добита, может принимать значения от 0 добита, может принимать значения от 0 до е - 1. Действительные переменные Данный тип переменных обозначается ключевым словом REAL, и представляется в виде действительных чисел в диапазоне от -10 38 до 10 38 . Переменная имеет разрядный формат, в котором 23 разряда используется для обозначения мантиссы. Поддерживается также длинный формат действительной переменной, в котором действительное число представляется в виде разрядного двоичного числа. Данный формат обозначается LREAL и может принимать значения в диапазоне от -10 до 10 Переменные времени Обозначаются сломом TIME и используются для определения интервалов времени. Для хранения переменных времени отводится 4 байта. Строковые переменные Используются для хранения текстовой информации и обозначаются ключевым словом STRING. Длина строки (количество используемых символов) задаётся при объявлении переменных. Поэтому объём памяти, в которой будет храниться строковая переменная, зависит от длины строки. Каждый символ занимает 1 байт памяти. Рассмотренные элементарные типы данных могут объединяться в массивы, структуры, перечисления. Тем самым создаются составные типы данных. Отличительная особенность массивов информации заключается в том, что в них хранятся группа однотипных данных. В структурах же могут объединяться данные с разными типами представления Перечисления определяют несколько последовательных значений переменных. Данные, хранящиеся в памяти ПЛК, в процессе выполнения программы могут изменять свои значения, а могут оставаться неизменными. Неизменяемые данные получили название постоянные или константы. Их значения заносятся в память контроллера при программировании и могут изменяться только при редактировании программы и перепрограммировании ПЛК (недоступны для изменения оператором. Если же данные изменяют свои значения в процессе обработки информации, то такого рода информация получила название переменные или тэги. Рассмотрим подробнее основные типы переменных. 226 ВИДЫ ИПР АВИЛА ОБЪЯВЛЕНИЯ ПЕРЕМЕННЫХ Переменные бывают Входные - значения, считываемые со входов ПЛК. Входные переменные могут быть аналоговыми или дискретными. Выходные - значения, передаваемые на выходы ПЛК. Выходные переменные могут быть аналоговыми или дискретными. Внутренние - переменные, необходимые для хранения некоторых промежуточных значений, задаваемых оператором или полученных в процессе обработки информации. В свою очередь, внутренние переменные подразделяются на аналоговые и дискретные, а также могут быть локальными (действующими в пределах одного ПЛК) или глобальными (доступными группе ПЛК). Для каждой переменной необходимо указывать идентификатор (имя переменной) и тип данных. Имя переменной должно состоять из символов и цифр, при этом имя не должно начинаться с цифры и иметь пробелы. Для улучшения читаемости тэга в имени переменной вместо пробела допускается использовать символ «_» (два подряд символа «_» ставить нельзя. В различных программных продуктах для программирования ПЛК могут быть установлены ограничения на допустимое количество используемых символов в имени переменной. Приведём пример идентификаторов переменных I n p u t l , Inputl, _Inputl. Регистр написания символов в имени переменных не имеет значения, те. переменные I N P U T 1 и I n p u t l идентичны. 15.2. КРАТКАЯ ХАРАКТЕРИСТИКА СТАНДАРТНЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ПЛК 8* 227 Рис. Пример программы на языке LD ЯЗЫК РЕЛЕЙНОЙ ЛОГИКИ Используется для описания логических выражений различного уровня сложности с помощью электромеханических элементов реле и контактов. Пример программы на языке релейной логики (LD) показан на рис. 15.2. 228 Рис. Пример программы на языке S F C Для лучшего понимания языка LD следует пояснить, как работает пример программы, показанный на рис. 15.2. Первая строка программы реализует логическую операцию И двух дискретных сигналов inl итак как появление выходного сигнала outl возможно только тогда, когда будут замкнуты оба нормально разомкнутых контакта inl и in2. Вторая строка программы реализует сразу две операции ИЛИ (с помощью нормально разомкнутых контактов outl, in3 и in4) и НЕ с помощью нормально замкнутого контакта in5. Язык предусматривает также выполнение условных переходов между блоками программы (на рис. 15.2 показан переход пометке. ЯЗЫК ПОСЛЕДОВАТЕЛЬНЫХ ФУНКЦИОНАЛЬНЫХ СХЕМ Реализует последовательность процедурных шагов и условных переходов. На каждом шаге выполняется конкретное действие, запрограммированное пользователем. Переход между шагами осуществляется после выполнения логических условий, назначенных данным условным переходам. Пример программы на языке последовательных функциональных схем (SFC) показан на рис. 15.3. ЯЗЫКИ НС ТРУ К Ц И Й Текстовый язык низкого уровня. Принцип программирования, команды и структура записи команд такая же, как и у языков ассемблерного типа. Язык инструкций (IL) стандартизован и не зависит от используемой аппаратной платформы. Каждая инструкция может содержать четыре поля, разделяемых пробелами или знаками табуляции. Структура записи команд в языке инструкций выглядит следующим образом Метка : Оператор + Модификатор Операнд Комментарий Метка, модификатор и комментарий в строке инструкции необязательны и указываются по необходимости. Оператор должен присутствовать в строке всегда, а операнд иногда может отсутствовать. Метка - это символическое имя (адрес) некоторой области памяти, в которой хранится номер отмеченной меткой строки в списке команд. После метки обязательно ставится знак двоеточия. Совместно с метками используются команды условного (исполняемые при выполнении определенных условий) и безусловного (выполняемые всегда) перехода (соответственно, операторы JMPC или JMP). Переходы необходимо использовать достаточно аккуратно, чтобы не получить бесконечный цикл. Оператор - это непосредственно команда, которая выполняет определенное действие над операндом. Совместно с оператором может присутствовать модификатор, который предназначен для преобразования оператора к необходимому виду. Так модификатор N выполняет инверсию операнда до выполнения самой команды, а модификатор С - добавляет проверку содержимого аккумулятора и выполняет оператор только в том случае, если значение в аккумуляторе соответствует true (истина. ЯЗЫК СТРУКТУРИРОВАННОГО ТЕКСТА Текстовый язык высокого уровня для создания гибких процедур обработки данных. По структуре этот язык похож на Паскаль. Основу языка структурированного текста (ST) составляют выражения, каждое из которых должно заканчиваться точкой с запятой. Для присвоения значений переменным используется оператор «:=». 230 Для описания математических выражений используются общепринятые символы +, *, /, (,), <, <=, >=, > и др. Порядок вычисления выражений такой же, как ив алгебре - действия выполняются слева направо. Сначала выполняются действия, заключенные в скобки, затем - операции умножения или деления, и только после этого - сложение или вычитание. Для увеличения функциональных возможностей языка структурированного текста в нём предусмотрены операторы выбора (IF ... THEN ... ELSE ... E N D I F ) , операторы множественного выбора (CASE ... OF ... ELSE ... ENDCASE), операторы цикла (WHILE ... DO ... E N D W H I L E , REPEAT ... UNTIL ... E N D R E P E A T или FOR ... TO ... BY ... DO ... E N D F O R ) . Ниже приводятся правила использования данных операторов. 15.3. АЛГОРИТМ ВЫПОЛНЕНИЯ ПРОГРАММ В ПЛК Выполнение программ в ПЛК осуществляется циклически, причем время выполнения одного цикла может быть фиксированным или асинхронным (новый цикл начинается сразу после окончания предыдущего цикла. Алгоритм выполнения программы приведен на рис 15.4. На первом шаге ПЛК получает необходимую для обработки информацию о состоянии объекта управления - производится считывание входных переменных (входы модулей аналогового и дискретного ввода. Далее осуществляется непосредственная обработка полученной информации - выполняется основная программа ПЛК. В результате обработки информации формируются команды управления, которые наследующем шаге переда- Р и с . 15.4. Алгоритм выполнения программы в ПЛ К 231 Рис. 15.5. Структура инструментальной среды программирования I S a G R A F 232 ются на выходы контроллера - процедура обновления выходных переменных. 15.4. ИНСТРУМЕНТАЛЬНАЯ СРЕДА ПРОГРАММИРОВАНИЯ ISaGRAF Традиционно всеведущие производители ПЛК разрабатывают собственные средства программирования и конфигурирования контроллеров, оптимизированные под конкретную аппаратную платформу. Однако мелкие и средние производители ПЛК зачастую не имеют возможности разрабатывать полнофункциональные инструментальные средства программирования. Это привело к появлению фирм, занятых исключительно разработкой инструментов программирования ПЛК. Одним из таких производителей является фирма CJ International создавшая программное обеспечение ISaGRAF. НАЗНАЧЕНИЕ ИНСТРУМЕНТАЛЬНОЙ СРЕДЫ ПРОГРАММИРОВАНИЯ Инструментальная среда программирования ISaGRAF предназначена для программирования и конфигурирования ПЛК различных производителей (например, PEP Modular Computers, Motorola, ABB и др. СТРУКТУРА ИНСТРУМЕНТАЛЬНОЙ СРЕДЫ ПРОГРАММИРОВАНИЯ Условно инструментальная среда программирования ISaGRAF состоит из двух систем (рис. 15.5): - система разработки проектов (ISaGRAF DevSys); - система исполнения программ (ISaGRAF Target). ОСОБЕННОСТИ ИНСТРУМЕНТАЛЬНОЙ СРЕДЫ ПРОГРАММИРОВАНИЯ В инструментальной системе программирования ISaGRAF предусмотрены следующие возможности 1. Поддержка пяти стандартных языков программирования ПЛК, включая поддержку интерфейса со специализированными функциями (не включенными в стандартные библиотеки языков программирования ПЛК), написанными на языке ANSI С требует компилятор для соответствующей операционной системы. 2. Встроенный отладчик, обеспечивающий поддержку следующего набора функций - выполнение программы по шагам - изменение кода программы в процессе работы отладчика - трассировка рабочих переменных - интерактивная модификация значений переменных - запуск/останов отдельных программ, входящих в состав проекта ISaGRAF; - изменение продолжительности цикла выполнения программы в процессе работы отладчика - эмуляция входных сигналов ПЛК и др. 3. Поддержка протокола Modbus (RTU, Slave). 4. Открытость системы для доступа извне к внутренним структурам данных проекта ISaGRAF (опция ISaGRAF Server). 5. Разработка собственных драйверов на модули ввода/вывода УСО. 6. Адаптация ядра ISaGRAF под любую аппаратно- программную платформу. 7. Набор драйверов для работы с контроллерами некоторых производителей аппаратных средств автоматизации технологических процессов (PEP Modular Computers, Motorola, ABB и др. 8. Использование интерактивных редакторов для описания переменных, определений и конфигурации ввода/вывода. 9. Встроенные средства контроля за разработкой проектов, печати отчетов и документирования приложений. В основе системы исполнения (ISaGRAF Target) лежит принцип синхронизации выполнения прикладной программы. Время выполнения прикладной программы (цикл) задается пользователем в процессе разработки программы. Минимальное время цикла определяется используемыми аппаратно-программными сред Рис. Структура программного цикла с жёстким заданием времени исполнения прикладной программы ( аи без задания времени исполнения програм ствами. Например, для ПЛК, работающих под управлением операционной системы MS-DOS, минимальный цикл составляет 55 мс, а для ПЛК, работающих под управлением операционной системы OS-9, минимальный цикл составляет 10 мс. Если время цикла установить равным нулю, то каждый следующий программный цикл будет обрабатываться сразу же по окончании обработки предыдущего программного цикла. На рис. 15.6 показана временная диаграмма исполнения прикладных программ для случая жёстко запрограммированного времени цикла и случая, когда программный цикл не задается. СТРУКТУРА ПРИКЛАДНЫХ ПРОГРАММ ИПР О ГРАММ НОГ О ЦИКЛА В СРЕДЕ ПРОГРАММИРОВАНИЯ Структура прикладных программ в среде ISaGRAF включает 3 основные секции - BEGIN (начальная) - процедуры и программы, выполняемые вначале каждого цикла системы исполнения - SEQUENTIAL (последовательная) - процедуры и программы, подчиняющиеся динамическим правилам языка SFC; - END (заключительная) - процедуры и программы, выполняемые в конце каждого цикла системы исполнения. Программы начальной секции систематически выполняются вначале каждого цикла исполнения, а программы заключительной секции - в его конце, как показано на рис. 15.7. Шаги последо- 234 Рис. Структура программного цикла в системе исполнения I S a G R A F Target вательной секции выполняются в соответствии с правилами языка последовательных функциональных схем. Программы начальной секции обычно формируют значения переменных, вычисляемых на основе входных данных, поступающих от модулей ввода. Сформированные в начальной секции переменные используются программами последовательной секции. Программы заключительной секции традиционно формируют переменные, обработанные в последовательной секции, перед передачей значений в модули вывода. Программы последовательной секции должны быть написаны только на языке последовательных функциональных схем (SFC). Программы начальной и заключительной секций могут быть написаны на любом из пяти стандартных языков программирования ПЛК, кроме языка последовательных функциональных схем (SFC), те. на одном из следующих языков - язык функциональных блоков (FBD); - язык релейной логики (LD); - язык структурированного текста (ST); - язык списка инструкций (IL). Глава 16 ОБЩИЕ СВЕДЕНИЯ ОСИ СТЕМАХ. ОСНОВНЫЕ ФУНКЦИИ СИСТЕМ В типовой архитектуре современной системы управления (АСУТП) явно просматриваются два уровня (рис. 16.1): - уровень локальных контроллеров взаимодействующих с объектом управления посредством датчиков и исполнительных устройств - уровень оперативного управления технологическим процессом, основными компонентами которого являются серверы и рабочие станции операторов/диспетчеров. В качестве локальных контроллеров могут использоваться ПЛК различных производителей. Основные типы контроллеров, применяемых в системах управления процессами добычи и подготовки нефти и газа, были рассмотрены ранее. На верхнем уровне процесс сбора данных и управления строится с помощью человеко-машинного интерфейса (HMI - Hu man Machine Interface), установленного на рабочей станции (АРМ оператора. В зависимости от конкретной системы верхний уровень управления может быть реализован на базе одиночной рабочей станции или нескольких рабочих станций, серверов, АРМ специалистов и руководителей, объединённых в локальную сеть Ethernet. Напомним функциональные обязанности операторов/диспет- черов. Это - регистрация значений основных технологических и хозрасчетных параметров - анализ полученных данных и их сопоставление со сменно- суточными заданиями и календарными планами - учти регистрация причин нарушений хода технологического процесса - ведение журналов, составление оперативных рапортов, отчё тов и других документов - предоставление данных о ходе технологического процесса и состоянии оборудования в вышестоящие службы и т.д. Раньше в операторной (диспетчерской) находился щит управления (отсюда - щитовая. Для установок и технологических процессов с несколькими сотнями параметров контроля и регулирования длина щита могла достигать нескольких десятков метров, а количество приборов на них измерялось многими де Рис. Архитектура АСУ Т П сятками, а иногда и сотнями. Среди этих приборов были и показывающие (шкала и указатель, и самопишущие (кроме шкалы и указателя еще и диаграммная бумага с пером, и сигнализирующие. В определенное время оператор, обходя щит, записывал показания приборов в журнал. Так решалась задача сбора и регистрации информации. В приборах, обслуживающих регулируемые параметры, имелись устройства для настройки задания регулятору и для перехода с автоматического режима управления наручное (дистанционное. Здесь же, рядом с приборами, находились многочисленные кнопки, тумблеры и рубильники для включения и отключения различного технологического оборудования. Таким образом решались задачи дистанционного управления технологическими параметрами и оборудованием. Над щитом управления (как правило, на стене) находилась мнемосхема технологического процесса с изображенными на ней технологическими аппаратами, материальными потоками и многочисленными лампами сигнализации зеленого, желтого и красного (аварийного) цвета. Эти лампы начинали мигать привоз никновении нештатной ситуации. В особо опасных ситуациях предусматривалась возможность подачи звукового сигнала (сирена) для быстрого предупреждения всего оперативного персонала. Так решались задачи, связанные с сигнализацией нарушений |