Тригонометрические функции. 5 глава
– по кворумной схеме два из трех, позволяющего выбрать наиболее достоверное значение из трех значений одной и той же величины, полученных из разных источников; – из трех близких по технологическому смыслу и численному значению величин; – для присвоения контролируемой величине заданного заменяющего значения, если все три анализируемые величины будут признаны недостоверными. Лекция №5.
Тема: “Основные понятия SCADA-систем TRACE MODE. Канал в Trace Mode. Процедуры. Языки разработки алгоритмов. Язык инструкций TechnoIL. Язык функциональных блоков FBD.”
5.1 Основные понятия SCADA-систем TRACE MODE
ПРОЕКТ системы управления – это совокупность всех математических и графических элементов системы, функционирующих на различных операторских станциях и контроллерах одной АСУ ТП, объединенных информационными связями и единой системой архивирования. Проект может быть масштабным (сотни узлов), а может включать в себя только один контроллер или одну операторскую станцию. Под проектом в TRACE MODE понимается вся совокупность данных и алгоритмов функционирования распределенной АСУ (АСУТП и/или T-FACTORY), заданных средствами TRACE MODE. Итогом разработки проекта является создание файлов, содержащих необходимую информацию об алгоритмах работы АСУ. Эти файлы затем размещаются на аппаратных средствах (компьютерах и контроллерах) и выполняются под управлением исполнительных модулей TRACE MODE. Составная часть проекта, размещаемая на отдельном компьютере или в контроллере и выполняемая под управлением одного или нескольких исполнительных модулей TRACE MODE, называется узлом проекта. УЗЕЛ – любое устройство в рамках проекта, в котором запущено программное обеспечение TRACE MODE, реализующее серверные функции. Это может быть контроллер, операторская станция или архивная станция. В проекте не может быть более 128 узлов. В общем случае размещение узла на том же аппаратном средстве, на котором он должен исполняться под управлением монитора, не является обязательным – мониторы могут загружать узлы с удаленных аппаратных средств.
БАЗА КАНАЛОВ – совокупность всех каналов, математических объектов, FBD-программ и IL-программ, созданных для каждого конкретного узла. ОБЪЕКТ БАЗЫ КАНАЛОВ – совокупность любых каналов, которой приписан определенный набор свойств и атрибутов. Среди последних можно назвать имя, графический идентификатор, флаг подчинения: родитель, потомок. Оформленные группы каналов могут быть подчинены друг другу и создавать таким образом иерархические структуры. ДРАЙВЕРЫ обмена – драйверы, используемые мониторами TRACE MODE для взаимодействия с устройствами, протоколы обмена с которыми не встроены в мониторы.
5.2 Канал в Trace Mode
Канал (базовое понятие системы) – это структура, состоящая из набора переменных и процедур, имеющая настройки на внешние данные, идентификаторы и период пересчета ее переменных. Идентификаторами канала являются: имя, комментарий и кодировка. Например, имя канала, связанного с пятым каналом платы аналогового ввода, расположенной в первом посадочном месте контроллера, будет AI_-pе01-0005. Кроме того, каждый канал имеет числовой идентификатор, используемый внутри системы для ссылок на этот канал. Среди переменных канала выделяются четыре основных значения: входное (In), аппаратное (A), реальное (R) и выходное (Q). С помощью настроек входное значение канала связывается с источником данных, а выходное – с приемником. В зависимости от направления движения информации, т.е. от внешних источников (данные с контроллеров, УСО или системные переменные) в канал или наоборот, каналы подразделяются на входные (тип INPUT) и выходные (тип OUTPUT).
Входной канал запрашивает данные у внешнего источника (контроллер, другой МРВ и пр.) или значение системных переменных (счетчик ошибок, длина архива и пр.). Полученное значение поступает на вход канала и далее пересчитывается в аппаратное и реальное значения. Аппаратное значение у каналов типа INPUT формируется масштабированием (логической обработкой для дискретных каналов) входных значений. Используемые процедуры обеспечивают первичную обработку данных (исправление ошибок датчиков, масштабирование, коррекция температуры холодных спаев термопар и т. д.). Выходные значения в в каналах типа INPUT не используются.
Выходной канал передает данные приемнику. Приемник может быть внешним (значение переменной в контроллере, в другом МРВ и пр.) или внутренним - одна из системных переменных (номер проигрываемого звукового файла, номер экрана, выводимого на монитор, и пр.). И внешние и внутренние приемники данных связываются с выходными значениями каналов. У каналов типа OUTPUT их входное значение формируется одним из следующих способов: процедурой управление данного канала; процедурами управление или трансляция других каналов; метапрограммой на языке Техно IL; Каналом удаленного узла (например, по сети); оператором с помощью управляющих графических форм. У каналов типа OUTPUT аппаратное значение получается из реального процедурой трансляция. Аппаратные значения каналов имеют такое название, поскольку в них удобно получать величины унифицированных сигналов, с которыми работает аппаратура ввода/вывода (4-20 мА, 0-10 В и пр.). Реальные значения предназначены для хранения значений контролируемых параметров или сигналов управления в реальных единицах (например, кг/час, оС, % и пр.). Выходное значение определено только для каналов типа OUTPUT. Оно пересчитывается из аппаратного значения. Данные из внешних устройств записываются в каналы, данные из каналов посылаются на внешние устройства. В каналы оператор заносит управляющие сигналы. Значения из каналов записываются в архивы, операторские отчеты и т.п. В каналах осуществляется преобразование данных. Меняя значения на системных каналах, можно управлять выводимой на экран информацией, звуковыми сигналами и т.д., т.е. всей системой.
Подтип канала указывает класс источников или приемников данных, с которыми будет связываться канал. Для каналов типа INPUT подтип характеризует получаемую ими информацию (АНАЛОГ – значение АЦП, считанное с платы УСО, СИСТЕМНЫЙ – состояние системы, СВЯЗЬ – данные с удаленных узлов проекта и пр.). Каналы OUTPUT имеют тот же набор подтипов, что и каналы INPUT. Однако для них подтип определяет класс приемников, а не источников данных (АНАЛОГ – значение ЦАП, СИСТЕМНЫЙ – состояние системы, СВЯЗЬ – значения управляемых каналов на удаленных узлах проекта и пр.). Всего существует шестнадцать подтипов каналов. Все они могут задаваться как для входных, так и для выходных каналов. Подтип канала задает класс источников или приемников данных. Кроме того, подтип канала определяет также количество его дополнительных настроек. Уточнение источника или приемника в рамках заданного подтипом класса осуществляется с помощью дополнения к подтипу. Последний уровень адресации источника или приемника данных осуществляется с помощью настроек канала. Границы шкалы указывают возможный диапазон изменения контролируемого параметра. Например, если датчик позволяет измерять давление в диапазоне от 0 до 10 кгс/см2, то его показания, лежащие вне данного диапазона, являются заведомо недостоверными. Если задать для канала границы шкалы, то при выходе за них его реального значения может автоматически формироваться признак недостоверности данных. Эта информация может быть доведена до оператора и зафиксирована в архивах.
5.3 Процедуры.
Входное значение канала преобразуется в аппаратное, реальное и выходное с помощью процедур. Процедурами канала являются: – масштабирование (умножение и смещение), – фильтрация (подавление пиков, апертура и сглаживание), – логическая обработка (предустановка, инверсия, контроль сочетаемости), – трансляция (вызов внешней программы),
– управление (вызов внешней программы). Порядок следования и содержание процедур может меняться в зависимости от типа канала (входной или выходной, аналоговый или дискретный). Процедура масштабирование используется только в каналах, работающих с аналоговыми переменными. Она включает в себя две операции: умножение и смещение. Последовательность этих операций меняется в зависимости от типа канала: - у каналов типа INPUT входное значение умножается на заданный множитель и к полученному результату добавляется величина смещения. Результат присваивается аппаратному значению канала. - у каналов типа OUTPUT к аппаратному значению добавляется величина смещения, затем эта сумма умножается на заданный множитель, а результат присваивается выходному значению канала. Процедура трансляция определена для всех каналов независимо от их типа и вида представления. У входных каналов процедура трансляции преобразует аппаратное значение в реальное, а для выходных – наоборот. Для этого вызывается FBD-программа. Вызываемая программа выбирается при настройке процедуры. При настройке процедуры входные и выходные аргументы выбранной программы связываются с атрибутами текущего канала, а также любых других каналов из текущей базы. Поэтому процедура трансляции одного канала может также использоваться для формирования значений других каналов. Набор процедур в канале зависит от формата данных. Каналы, работающие с аналоговыми переменными, используют следующие процедуры масштабирование, трансляцию, фильтрацию и управление. В каналах, обрабатывающих дискретные параметры, используются логическая обработка, трансляция и управление. Фильтрация – процедура, которая присутствует только у аналоговых каналов. Набор выполняемых ею операций отличается для входных и выходных каналов. У каналов типа INPUT фильтрация выполняется после процедуры трансляции до формирования реального значения. Фильтрация включает в себя следующие операции: подавление случайных всплесков в тракте измерения; подавление малых колебаний значения канала; экспоненциальное сглаживание; контроль шкалы – отслеживание выхода реального значения канала за установленные границы шкалы. У каналов типа OUTPUT данная процедура формирует реальное значение по входному значению. При этом выполняются следующие операции: ограничение скорости изменения реального значения; подавление малых колебаний значения канала; экспоненциальное сглаживание; контроль шкалы – обрезание величины управляющего воздействия до границ шкалы канала. Управление – процедура, которая определена для всех каналов. Она реализует функцию управления. С ее помощью можно вызвать FBD-программу, в которой можно запрограммировать требуемые алгоритмы управления. В качестве аргументов программе могут передаваться значения и атрибуты любых каналов из текущей базы. Эти аргументы могут быть как входными, так и формируемыми. Формально процедура управления связана с каналом только циклом пересчета. Она может вообще никак не участвовать в формировании его значений, а управлять другими каналами. Такая ситуация часто наблюдается при использовании процедуры «Управление» на каналах типа INPUT.
Кроме основных значений, канал имеет дополнительные переменные: шесть границ, гистерезис, настройки процедур обработки, начальные параметры, флаги архивирования. Переменные, настройки и идентификаторы канала образуют список его атрибутов.
Часть из них задается в редакторе базы каналов и не может быть изменена в реальном времени. Другие могут иметь начальные значения и доступны для изменения.
5.4 Языки разработки алгоритмов
Информационные потоки в ТРЕЙС МОУД настраиваются с помощью каналов. Тип, подтип и другие характеристики каналов определяют источники или приемники данных (контроллеры, платы УСО, удаленные узлы, системные переменные и пр.). В каналах предусмотрена первичная и выходная обработка данных. Все остальные задачи по обработке данных и управлению разрабатываются в виде отдельных программ. Для этого предусмотрены два языка: Техно FBD и Техно IL. Они реализуют стандарт МЭК-1131 и имеют большое количество дополнительных функций. Язык Техно FBD предназначен для разработки алгоритмов в виде диаграмм функциональных блоков. Созданные на нем программы могут вызываться из процедур каналов. Программы на Техно IL записываются в виде последовательности инструкций. Этот язык позволяет программировать функциональные блоки для языка Техно FBD и создавать метапрограммы, которые запускаются параллельно с пересчетом базы каналов.
5.4.1 Язык инструкций TechnoIL
Язык инструкций (Техно IL) - это текстовый язык ТРЕЙС МОУД для разработки программ, реализующих функции обработки данных и управления. Он является расширением IL-языка международного стандарта IEC 1131-3. Техно IL реализует синтаксис языка инструкций IEC 1131-3. Разработанные и отлаженные в ТРЕЙС МОУД IL-программы могут использоваться другими инструментальными средствами программирования контроллеров. Однако если такая задача не стоит, то можно использовать расширенные возможности Техно IL по оформлению программ. Эти возможности включают в себя более простой и интуитивный синтаксис, дополнительные функции и операторы, а также использование двухадресного режима. Тип программы определяет способ ее вызова, а также ограничения, которые накладываются на количество и типы доступных переменных и операторов. Он может принимать следующие значения: – FB – программирование блока для Техно FBD; – PRG – метапрограмма. Первый из них используется при создании новых блоков для языка Техно FBD. Тип PGR устанавливается для метапрограмм, запускаемых параллельно с пересчетом базы каналов. Для каждой IL-программы определены два имени: основное и дополнительное. Они вводятся в соответствующих полях диалога Техно IL. Текст обоих имен IL-программы может включать в себя 7 любых символов кроме пробелов. Первое из них используется для идентификации программы. Оно выводится во всех списках редактора базы каналов при ссылках на IL-программы. Назначение дополнительного имени зависит от типа программы. Для типа программы FB оно задает название функции блока и выводится в его верхней части. Если IL-программа имеет тип PRG, то дополнительное имя используется для задания номера программы. Он может быть установлен от 0 до 15. Чтобы использовать IL-программу, ее надо оттранслировать и добавить в проект. Для этого следует загрузить требуемую программу в диалог Техно IL и нажать ЛК на кнопке Трансляция. При обнаружении ошибок в тексте программы в окно сообщений будет выводиться соответствующая информация. Если трансляция программы прошла успешно, то в окне сообщений появится строка сообщение OK и снимается блокировка с кнопки Добавить. Чтобы облегчить поиск ошибок в окно сообщений можно вывести дамп трансляции. Для этого надо выполнить команду Дамп из меню Правка. Дамп содержит коды оттранслированных строк программы и их тексты. При наличии ошибки вместо кода трансляции выводится соответствующее сообщение. Текст IL-программы представляет собой последовательность инструкций. Каждая инструкция включает в себя описатель действия и операнды. Максимальное количество инструкций одной программы равно 12000. К основным понятиям языка Техно IL относятся: – Переменные; – Константы; – Операнды; – Операции; – Функции; – Метки; – Операторы; – Комментарии. Рассмотрим подробно каждое из этих понятий. Техно IL позволяет использовать несколько типов переменных. Их имена имеют следующую структуру: первый символ определяет тип переменной, далее без пробела следует ее номер. Для различных типов переменных определены следующие идентификаторы: – I - входные переменные; – Q - выходные переменные; – E - статические переменные; – W - статические глобальные переменные; – F - динамические переменные. Количество доступных в программе переменных разного типа определяется типом IL-программы. Кроме описанных типов, в Техно IL используются еще две системные переменные: result - аккумулятор (X); CMP - признак истинности. Входные переменные (I) являются входными аргументами IL-программы. В зависимости от типа программы назначение переменных этого типа несколько меняется. В программах типа FB эти переменные порождают входы создаваемого блока. Например, если в программе используется переменная данного типа с номером 5 (I5) и таких переменных с большими номерами нет, то блок будет иметь шесть функциональных входов. При этом переменная I5 будет получать значения с последнего функционального входа, а I0 – с первого. В IL-программе типа FB можно использовать до 13 переменных типа I (максимальный номер - 12). При этом их суммарное количество с выходными переменными (Q) не должно превышать 15. В программе типа PRG входные переменные могут связываться с атрибутами каналов. Не связанные с каналами переменные типа I могут использоваться как свободные для хранения промежуточных результатов. Максимальное количество переменных этого типа равно 256 (максимальный номер - 255). Механизм связывания переменных IL-программы с атрибутами каналов описан ниже. Выходные переменные (Q) являются выходными аргументами IL-программы. Их использование зависит от типа программы. В программах типа FB эти переменные порождают выходы блока. Например, если в программе используется переменная Q5, и таких переменных с большими номерами нет, то созданный блок будет иметь шесть выходов. При этом переменная Q5 будет формировать значение на шестом выходе, а переменная Q0 - на первом выходе. Количество выходов блока определяется старшим номером переменной данного типа. При отсутствии в программе переменных с меньшими номерами входы под них все равно создаются. Максимальное количество выходных переменных в IL-программе типа FB равно 8 (максимальный номер – 7). Их суммарное количество со входными переменными (I) не должно превышать 15. В IL-программах типа PRG переменные данного типа используются для формирования значений атрибутов каналов текущего узла. Не связанные с каналами выходные переменные могут использоваться как свободные. Максимальное количество этих переменных в программах типа PRG равно 256 (максимальный номер - 255). Механизм связывания переменных IL-программы с атрибутами каналов описан ниже. Статические переменные (E) используются при необходимости сохранять результаты вычислений между двумя вызовами программы. Их количество, доступное в одной программе, зависит от ее типа. В IL-программе типа FB максимальное число статических переменных равно 4 (максимальный номер - 3). Для программ типа PRG это количество составляет 256. Однако надо учитывать, что эти переменные являются общими для всех метапрограмм одного узла. Поэтому их можно использовать для обмена данными между программами. Значения статических переменных можно также контролировать и формировать в FBD-программах. Для этого используются соответствующие функциональные блоки из раздела Пересылки (EREAD и WRTE). Статические глобальные переменные (W) узла операторской станции или глобального регистратора таких переменных можно использовать до 1024, в контроллере их может быть до 256, а в узле Лагуна – до 32. Глобальные переменные можно использовать в любых IL- и FBD-программах. Их значения можно считывать в реальном времени из файлов, передавать по сети, запрашивать по OPC, а так же отображать и управлять ими с помощью форм отображения. Для получения значений глобальных переменных в FBD-программах используются блоки WREAD и AREAD из раздела Пересылки. Для формирования значений глобальных переменных предназначен блок WRTW из того же раздела. Считыванием значений этих переменных из файла управляет блок WFILE, а передачей по сети – NSND. Для настройки форм отображения на глобальную переменную надо в списке объектов указать объект W_Global, а в списке каналов выбрать нужную переменную. Динамические переменные (F) не сохраняют свои значения между вызовами программы. Поэтому их можно использовать только как вспомогательные при организации вычислений. Количество динамических переменных не зависит от типа программы и составляет 255. В языке Техно IL используются две системные переменные: result – аккумулятор (X); CMP – признак истинности. Первая из них используется при одноадресной записи операций. В этом случае она является вторым операндом и в нее записывается результат. Для явного вызова этой переменной используется идентификатор X. Использование аккумулятора определено стандартом МЭК 1131-3, в соответствии с которым все операции являются одноадресными и выполняются с использованием аккумулятора. Переменная CMP формируется операциями сравнения и оператором TEST (см. ниже). Она может принимать значения истинно или ложно и используется операторами условного перехода. В метапрограммах можно связать переменные I и Q с атрибутами каналов. Для этого в тексте программы надо создать раздел описания связей. Он должен располагаться за словом PROGRAM, начинаться строкой VAR_IN_OUT и заканчиваться – END_VAR. Между этими строками размещаются строки описания соответствия. Они имеют следующий формат: <переменная> <имя канала> <атрибут> В них сначала записывается имя переменной, затем через пробел - имя канала и после этого, опять через пробел, - обозначение атрибута (обозначение атрибутов канала см. Приложение Г). Если указать разные имена каналов или атрибутов переменным разных типов с одинаковым номером, то в обоих случаях будет использоваться последняя по списку настройка. В тексте программ можно использовать константы. Константы могут быть двух типов: – целые числа в диапазоне от –127 до 127; – любые другие числа. Эти константы могут записываться в десятеричном и в шестнадцатеричном виде. Шестнадцатеричная константа начинается с 0х. Ограничений на число констант первого типа не накладывается. Поэтому их в программе может быть любое количество. Максимальное число констант второго типа для программ типа FB равно 10, а для PRG – 40. Совпадающие по значению константы считаются за одну. Например, если константа 10.5 применена три раза, то считается, что использована только одна константа. Каждая инструкция программы содержит оператор и операнды. Оператор задает действие, которое надо выполнить с операндами. В качестве операндов в IL-программе могут использоваться все описанные выше переменные, кроме CMP, а также константы. Значение операнда HEX-формата, задаваемого константой, не может быть больше 0xFF (255). Операции в TechnoIL. Язык Техно IL позволяет выполнять с операндами арифметические и логические операции, а также операции сравнения. Почти все они имеют два обозначения: символьное и мнемоническое. Все операции языка инструкций международного стандарта МЭК 1131-3 являются одноадресными. В них используется только один операнд. Вторым является аккумулятор (переменная result). В аккумулятор же помещается результат выполнения операции. Техно IL поддерживает одноадресный и двухадресный режимы. В этом последнем программа выглядит нагляднее и получается компактнее. Здесь в операции участвуют два операнда, а результат ее выполнения записывается в первый из них. В соответствии со стандартом все операции имеют только мнемоническое обозначение. Техно IL допускает использование также более наглядного символьного обозначения операций. В дальнейшем описании операций приводятся оба обозначения. В соответствии со стандартом в строке записывается сначала мнемоническое обозначение операции, затем через пробел – операнд. Техно IL позволяет использовать два операнда и мнемоническое или символьное обозначение операции. Кроме того, обозначение операции может быть помещено между операндами. Например, операция сложения переменной Q1 с переменной I2 с записью результата в первую из них в соответствии со стандартом записывается следующим образом: LD Q1 ADD I2 ST Q1 В Техно IL эта операция может быть записана так же, а может - существенно компактнее: ADD Q1 I2 или + Q1 I2 или Q1 + I2 В одной строке программы можно записать несколько операций. В этом случае их следует разделять символом “;”. Техно IL поддерживает следующие арифметические операции:
Результат выполнения операции заносится в первый операнд. Если в операции указан только один операнд, то он воспринимается как второй, а в качестве первого используется значение аккумулятора. Программы на Техно IL позволяют выполнять следующие логические операции с операндами:
Эти операции выполняются побитно над значениями соответствующих битов операндов. Из операций сравнения в Техно IL реализованы следующие:
Эти операции сравнивают значение первого операнда со вторым на соответствующее условие. По результатам формируется значение переменной CMP. Оно будет истинно при выполнении условия и ложно в противном случае. Эта переменная анализируется в операторах условного перехода (JMPC, JMPN, GOTOC, GOTON). Если в операции указан только один операнд, то он воспринимается как второй. А в качестве первого используется аккумулятор. Функции в TechnoIL. В Техно IL существует два типа функций. Первые из них выполняют вычисления над значением указанного для них операнда и присваивают результат ему же. Если указать два операнда, то функция применяется к значению второго операнда, а результат запишется в первый. Эти функции имеют следующий синтаксис: <функция> <операнд1> [<операнд2>] Ниже приводится перечень первого типа.
Второй тип – это функции времени. Они формируют значение операнда и имеют следующий синтаксис <операнд1> = <функция> К этим функциям относятся следующие:
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|