Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ



Хузятов Ш.Ш.

СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ

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

Под системами реального времени подразумевается считывание сигналов с датчиков и подача управляющих воздействий, в зависимости от логики управления.

Для реализации используем локальные и распределенные системы управления.

Структурная схема локальной системы управления.

 


                                                 RS-232

 

Структурная схема распределенных систем управления

Часто объекты управления распределены по территории цеха, завода и т.д.

RS-485 сеть фактически представляет собой витую пару. Одновременно может только передавать, либо принимать данные

     
 

 

 


                                           2.5 метра    RS-232

 

                                                                                                           Больше 32

1200 метров      RS-485                                                                                              

ИУ
                                                                                                                                       …

До 256 устройств

 

 

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

Условно-графическое обозначение контроллера и модулей ввода/вывода.

 

 

Схема электрическая принципиальная включения входных и выходных дискретных сигналов.


2. Операционные системы реального времени. Цикл контроллера. Языки программирования систем реального времени (МЭК 61131-3). SCADA-системы.

Операционная система, в которой успешность работы любой программы зависит не только от её логической правильности, но и от времени, за которое она получила этот результат. Если система не может удовлетворить временным ограничениям, должен быть зафиксирован сбой в её работе – ОСРВ. Системы реального времени бывают двух типов — системы жесткого реального времени и системы мягкого реального времени.

Таблица сравнения ОСРВ и обычных операционных систем:[6]

  ОС реального времени ОС общего назначения
Основная задача Успеть среагировать на события, происходящие на оборудовании Оптимально распределить ресурсы компьютера между пользователями и задачами
На что ориентирована Обработка внешних событий Обработка действий пользователя
Как позиционируется Инструмент для создания конкретного аппаратно-программного комплекса реального времени Воспринимается пользователем как набор приложений, готовых к использованию
Кому предназначена Квалифицированный разработчик Пользователь средней квалификации


Выделение памяти

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

Во-первых, скорости выделения памяти. Стандартная схема выделения памяти предусматривает сканирование списка неопределенной длины для нахождения свободной области памяти заданного размера, а это неприемлемо, так как в ОСРВ выделение памяти должно происходить за фиксированное время.

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

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

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

Свободные: RTLinux — ОС жёсткого РВ на основе Linux

Проприетарные:

QNX/Neutrino — ОС с открытым исходным кодом, Symbian OS, Windows CE, UNIX-RTR

QNX — коммерческая POSIX-совместимая операционная система реального времени, предназначенная преимущественно для встраиваемых систем. Считается одной из лучших реализаций концепции микроядерных операционных систем.

 


Цикл контроллера

 

                                                 tц <= 1 мс

 

IEC 61131-3 — раздел международного стандарта МЭК 61131 (также существует соответствующий европейский стандарт EN 61131), описывающий языки программирования для программируемых логических контроллеров.

 

Данные языки являются расширением языков

· SFC (Sequential Function Chart),

· LD (Ladder Diagram),

· FBD (Function Block Diagram),

· ST (Structured Text) и

· IL (Instruction List)

международного стандарта МЭК 6-1131/3. Данный стандарт разрабатывается с 1993 года Международной Электротехнической Комиссией (International Electrotechnical Commission) и давно признан как в Европе и в США, так и во всем мире ведущими производителями средств автоматизации.

Языки программирования стандарта МЭК 6-1131/3 включают в себя 3 визуальных языка (FBD, SFC, LD), ориентированных на инженеров и бизнес-аналитиков и 2 текстовых (ST, IL), ориентированных на программистов. С помощью языков IEC 61131-3 TRACE MODE® 6 одинаково комфортно программируются и контроллеры, и алгоритмы человеко-машинного интерфейса (HMI) и задачи EAM и MES.

Языки МЭК 6-1131/3 сочетают в себе достаточную функциональность, простоту и предохраняют пользователя от большинства ошибок, которые нередко возникают при использовании обычных языков программирования.


Краткое описание языков

Язык FBD предназначен для инженеров-технологов, решающих задачи управления технологическим процессом. Трудно придумать более наглядное средство для программирование контуров управления и регулирования. Программа на Techno FBD представляет собой схему, состоящую из набора функциональных блоков, связанных между собой через входы и выходы.

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

 

ST ориентирован прежде всего на программистов, он представляет собой язык программирования высокого уровня, похожий на Паскаль. В нем поддерживаются массивы, контроль преобразования типов, присутствуют такие конструкции как DO-WHILE, REPEAT-UNTIL, FOR-TO-DO, IF-THEN-ELSE, CASE-OF и прочие интуитивно понятные любому программисту операторы.

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

 

SFC это мощное средство структурирования сложных алгоритмов. По сути SFC не является самостоятельным языком. В переводе с английского аббревиатуру SFC можно перевести как "схема функциональной последовательности". Внешне программа на SFC похожа на блок-схему алгоритма, на которой отображены отдельные программные блоки (шаги), переходы между ними и условия, по которым выполняются эти переходы. Каждый программный блок, как и каждое условие перехода - это подпрограмма на любом из языков стандарта МЭК 6-1131/3.

 

 

SCADA (сокр. от англ. Supervisory Control And Data Acquisition[1]) — диспетчерское управление и сбор данных.

Основные задачи, решаемые SCADA-системами:[2]

· Обмен данными с УСО (устройства связи с объектом) в реальном времени через драйверы.

· Обработка информации в реальном времени.

· Отображение информации на экране монитора в понятной для человека форме (HMI сокр. от англ. Human Machine Interface — человеко-машинный интерфейс).

· Ведение базы данных реального времени с технологической информацией.

· Аварийная сигнализация и управление тревожными сообщениями.

· Подготовка и генерирование отчетов о ходе технологического процесса.

· Осуществление сетевого взаимодействия между SCADA ПК.

· Обеспечение связи с внешними приложениями (СУБД, электронные таблицы, текстовые процессоры и т. Д

SCADA-системы позволяют разрабатывать АСУ ТП в клиент-серверной или в распределенной архитектуре.

Иногда SCADA-системы комплектуются дополнительным ПО для программирования промышленных контроллеров. Такие SCADA-системы называются интегрированными и к ним добавляют термин SoftLogiс.

Примеры: Genesis, TraceMode, VfsterSCADA, WinCC


3. Язык FBD на примере α-контроллера ф. Mitsubishi. Примеры: микроволновая печь или стиральная машина-автомат.

Контроллер программируется на языке FBD. При этом пользователь может программировать контроллер двумя способами:

- с использованием кнопок панели и встроенного дисплея контроллера;

- составить программу на компьютере в среде AL-PCS/WIN под Windows и пересылать программу в контроллер через COM- порт.


Блок Set / Reset.

Блок имеет два входа (Set и Reset) и один выход. Он действует как RS – триггер. Таблица истинности этого блока совпадает с таблицей истинности RS – триггера за исключением состояния, когда R=S=1. В этом случае состояние выхода определяется внутренним параметром Приоритет.

Значение этого параметра определяется двумя переключателями:

Установить приоритет, т.е. когда R=S=1, на выходе Q=1.

Сбросить приоритет, т.е. когда R=S=1, на выходе Q=0.

 

Таблица 7.1. Таблица истинности триггерной ячейкиВходы Выходы

-R   –S  Q    –Q

0      1    0     1

1     0     1     0

1     1     Без изменения

0     0     Не определено

  

 3. Блок Delay.

Блок задерживает входной сигнал. Время задержки сигнала по переднему и заднему фронтам устанавливается индивидуально (в окне свойств).

Вход Clear имеет больший приоритет, чем вход I и выход принудительно переводит на логический 0.

Выход WC слово состояния определяет время задержки по переднему фронту.

 

Блок One Shot.

При появлении переднего фронта входного сигнала на выходе появляется импульс определенной длины. Длительность импульса определяется параметром блока.

Вход Clear переводит выход в состояние логического нуля.

Выход WC выводит заданную длину импульса.

 

Блок Pulse.

Имеет один вход и один выход. На выходе появляются короткие импульсы в моменты появления переднего и/или заднего фронтов входного сигнала.

Моменты появления импульса на выходе определяется в окне свойств с помощью следующих переключателей:

· По переднему фронту

· По заднему фронту

· По обоим фронтам.

 

Блок Alt.

Блок действует как Т-триггер. По переднему фронту входного сигнала выход переходит на противоположное состояние.

Если вход Cl (clear - очистить) равен логической 1 – выход принудительно устанавливается на логический 0. Параметров нет.

 

Блок Flicker (мерцание)

Если на входе блока лог. 1, то на выходе появляются импульсы. Длительность импульсов в состоянии лог. 1 и лог. 0 устанавливаются индивидуально.

Параметр количество циклов может принимать три значения:

а) Счетчик времени – импульсы продолжаются в течение установленного времени.

в) Счетчик циклов – на выходе появится установленное количество импульсов.

с) Непрерывный – импульсы продолжатся непрерывно.

Выход WC – выводит длительность логической 1.

 

Блок Time SW (switch)

Блок TimeSW работает как часы реального времени. В качестве параметров могут быть определены более 50 временных моментов в формате:

Состояние Время День недели Каждая неделя
ON 12:19 Mon Every Week
OFF 12:30 Mon By Date

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

Блок Counter

Действует как счетчик входных импульсов. Когда установленное значение достигнуто, на выходе устанавливается логическая 1. Счетчик увеличивается по положительному фронту.

Блок Compare (сравнения)

Сравнивает два аналоговых значения и когда операция сравнения истинна, то на выходе будет устанавливаться логическая 1. Операция сравнения определяется в окне свойств. Могут быть использование следующие операции сравнения:

<, >, <=, >=, =, <> , назначение которых совпадают с операциями сравнения на языках программирования.

Блок Display

Alpha-контроллер имеет текстовой дисплей на 4 четыре строки по 12 символов. В этом дисплее может отображаться различная информация. Окно свойств блока Display имеет вид:

Как видно, в этом окне можно задавать выводимую строку и координаты X и Y начала вывода. Выводимая строка будет отображаться на экране контроллера, если управляющий вход равен лог. 1. Тем самым на экране контроллера в зависимости от состояния технологического процесса можно отображать разную информацию.

 

Блок HourMeter (Таймер)

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

Когда пройдет предустановленное время на выходе таймера устанавливается лог. 1. Время срабатывания таймера задается в окне свойств блока.

Таймер продолжает отсчитывать время даже после достижения установленного значения. Сигнал на входе Clear будет обнулять время.

 

Пример 1. При нажатии на кнопку Пуск включается вентилятор. Вентилятор работает 10 секунд и после этого отключается. При повторном нажатии кнопки Пуск процесс повторяется.

Для фиксации процесса запуска используем блок Set/Reset. Для отсчитывания времен используем блок Таймер. Эти блоки настроим соответствующим образом. Программа выглядит так:

Принцип действия. При нажатии кнопки Пуск устанавливается блок Set/Reset, тем самым включается вентилятор и запускается таймер. Когда пройдет время 10 секунд на выходе таймера установится лог. 1, который передается на вход Reset блока Set/Reset. На выходе этого блока установится лог. 0, тем самым вентилятор выключается.

При повторном нажатии кнопки Пуск блок Pulse вырабатывает импульс, который подается на вход Clear таймера. Таймер обнуляется и счет начинается по новой.

 

Пример 2. При нажатии на кнопку Пуск включается вентилятор. Вентилятор работает 10 секунд, потом ожидание 10 секунд. Этот процесс повторяется три раза.

Как видно из постановки задачи это пример является продолжением предыдущего примера. Программу из предыдущего примера сворачиваем в пользовательский блок. Для этого в меню выберем пункт User Func и щелкнем в области программы. Система запрашивает количество входов и выходов: укажем один вход и два выхода. Скопируем программу предыдущего примера.

Если на вход этого блока задавать импульс, то на первом выходе появляется лог. 1 на установленное таймером время. После этого на первом выходе установится лог. 0, а на втором выходе установится лог. 1.

 

Принцип действия. Последовательное соединение двух таких блоков и замыкание их дает повторяющиеся импульсы, длительность которых определяются таймером. Для счета количества импульсов установим счетчик. Когда счетчик посчитает четыре импульса, то на выходе появится лог. 1. Этот сигнал инвертируется и подается на вход блока И, тем самым импульсы перестают передаваться на вентилятор.

(Микроволновая печь или стиральная машина)


4. Язык LAD на примере контроллера S7-200. Пример: Реверсивное включение АД.

После запуска STEP 7-Micro/WIN появляется следующее окно.

Для загрузки текущей программы выполните команду File/ Download. При этом появляется окно загрузки программы. В этом окне выберите элементе проекта, который вы хотите загрузить. Затем щелкните на кнопке Download.

Для запуска загруженной программы щелкните на кнопке Run. Вы можете наблюдать за работой программы, выполнив команду Debug/ Program Status. Step 7-Micro/Win отображает значения команд.

Step7 позволяет программировать на языках LAD, FBD, STL


Область памяти контроллера

Вы можете получить доступ к области памяти в байтах, словах или двойных словах. Например, IB4 – доступ к 4-му байту в области входов; VW100 – доступ к 100-му слову (W) в области переменных (V).

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

Например, I3.5:

I = вход (input), 3 = байт, 5- адрес бита.

Входы

CPU опрашивает физические входы в начале каждого цикла и записывает эти значения в регистр входов образа процесса. Формат:

Бит I [адрес байта] . [адрес бита] - I0.1

Выходы Формат:

Бит Q [адрес байта] . [ адрес бита] - Q1.1

Область памяти переменных (адреса VB0 – VB2047)

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

Формат:

Бит V[адрес байта].[адрес бита] V10.2

Система команд

Стандартные контакты

Эти команды получают значение из памяти или из регистра образа процесса, если типом данных является I или Q.

1.Нормально открытый контакт. Замкнут (включен), когда управляющий бит равен 1.

2. Выход. Когда выполняется команда Выход, в регистре образа   процесса устанавливается выходной бит, здесь Q0.0 .

3. Нормально замкнутый контакт замкнут (включен), когда управляющий бит равен 0.

 

Пример 2. Реверсивное включение асинхронного двигателя

Вращение Вперед

Вращение Назад

В этом примере используются кнопки:

Бит I0.0 кнопка Вперед,

Бит I0.1 кнопка Назад,

Бит I0.2 кнопка Стоп,

Бит Q0.0 пускатель_0 включения вперед,

Бит Q0.1 пускатель_1 включения назад.

В этой программе использование нормально замкнутых контактов Q0.0 и Q0.1 приводит к “электронной” защите цепи от одновременного включения кнопок Вперед и Назад.

Установка, сброс N битов

Команды установки и сброса устанавливают или сбрасывают указанное количество битов, начиная с указанного адреса. Вы можете установить или сбросить от 1 до 255 битов. 

Если команда сброса указывает на бит таймера или счетчика, то команда сбрасывает бит таймера или счетчика и стирает текущее значение таймера или счетчика.

Стековые операции

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

 

1. Логическое И двух битов стека - ALD

Эта команда выполняет операцию И между двумя битами с вершины стека. Результат загружается в вершину стека. После выполнения ALD глубина стека уменьшается на единицу. Здесь S0 = iv0 AND iv1.

 

2. Логическое ИЛИ двух битов стека – OLD

Эта команда выполняет операцию ИЛИ между двумя битами с вершины стека. Результат загружается в вершину стека. После выполнения ALD глубина стека уменьшается на единицу. Здесь S0 = iv0 OR iv1.

 

 

Пример 2. Реверсивное включение асинхронного двигателя (Включение Вперед)

 

 

В STL этот фрагмент программы имеет следующий вид:

LD I0.2 // Загрузка I0.2

LD I0.0 // Загрузка I0.0

O Q0.0 //Операция ИЛИ I0.0 и Q0.0

ALD     //Операция И вершины стека и бита I0.2

AN Q0.1 //Операция НЕ-И вершины стека и бита Q0.1

= Q0.0 //Копирования вершины стека на выход Q0.0

 

3. Дублирование вершины стека - LPS

Команда дублирования вершины логического стека (LPS -Logic Push) дублирует значение вершины стека и помещает это значение на вершину стека. Дно стека выталкивается и теряется.

 

4. Извлечение вершины стека - LPP

Команда извлечения вершины стека (LPP - Logic Pop) извлекает один бит из стека. Второй уровень становится новой вершиной стека.

 

 

5. Копирование второго уровня стека - LRD

Команда копирования второго уровня стека (LRD – Logic Read) копирует второй бит стека в вершину стека. В стек ничего не помещается и из него ничего не извлекается, но его вершина замещается копией.

 

 

6. Загрузка стека LDS N

Команда загрузки стека (LDS – Load Stack) дублирует бит стека (N) и помещает это значение в вершину стека. Дно стека выталкивается и теряется.

 

    

 

Пример. Рассмотрим разветвленную программу на языке LAD. В STL эта программа имеет вид:

LD I0.0

LPS // Сохраняем I0.0 во втором уровне стека

 

LD I0.5

O I0.6

ALD //Логическое И со значением в стеке I0.0

= Q7.0

 

LRD //Считывем второй уровень стека (I0.0)

LD I2.1

O I1.3

ALD //Логическое И со значением в стеке

     = Q6.0

 

LPP //Выталкиваем вершину стека

A I1.0

=Q 3.0

Установка, сброс N битов

Команды установки и сброса бита в STL имеет следующий формат:

S bit, n

R bit, n

 

Общие команды для модулей

Параметры обмена по сети RS485 по умолчанию

- Адрес: 01

- Скорость обмена: 9600 бод

- Контрольная сумма: отключена.

Рассмотрим общие команды на примере модуля I-7060D

1. $AAM – чтение имени модуля

Ответ: !AA(Data) – где Data имя модуля.

 

2. Команда ~** - Информирует всех модулей, что хозяин сети готов

Ответ: Ничего не возвращает

 

А) Команды чтения и записи на порта

Контроллер I-7188 EAD имеет 8 дискретных входов и 7 дискретных выходов. Для чтения состояния дискретных входов и изменения состояния дискретных выходов можно использовать следующих команд:

Inp(порт) - считывание состояния дискретных входов.

Outp(порт, значение) – записывает значение в указанный порт.

int Kbhit (void) – проверяет, имеется ли символ в буфере клавиатуры. Если данных нет, то возвращает 0. Если данные имеются, то возвращает символ.

int Getch(void) - считывает один символ из порта СОМ1 и возвращает его (число от 0 до 255). Если в буфере порта не имеется символа, то функция будет ожидать до тех пор, пока не появится символ.

void Putch (int data) – посылает один символ на порт СОМ1 (только младший байт будет послан)

 

Б) Инсталлирование драйвера СОМ-порта и снятие драйвера

Перед использованием СОМ-порта, пользователь должен вызывать функцию InstallCom (или InstallCom1/2/3/4) для инсталляции драйвера СОМ-порта. Перед выходом из программы, пользователь должен вызывать функцию RestoreCom (или RestoreCom1/2/3/4) для снятия драйвера COM-порта. 

 

В) Функции для работы с СОМ-портами

Функция проверки на наличие данных во входном буфере СОМ-порта:

int IsCom1(void);

Если буфер СОМ-порта пустой, то возвращает 0, если в буфере имеются данные, то возвращает 1. Если буфер СОМ-порта переполнен, то возвращает -7. Для снятия статуса переполнения следует считывать данных из СОМ порта с помощью функции ReadCom( ).

Г) Функции для 5-цифрового ЖКД

Контроллер имеет 5 цифровой 7-и сегментный индикатор. Индикаторы пронумерованы как 1, 2, 3, 4 и 5 слева на право. Перед использованием их, пользователь должен вызвать функцию

void Init5DigitLed (void), и затем вызывать функцию:

int Show5DigitLed(int pos,int data)

Параметр pos может быть 1, 2, 3, 4 и 5 - определяет положение цифры. Параметр data может принимать значения от 0 до 17 (16-ичные цифры, 16 – пусто, 17- символ “-”).

Для вывода цифры с точкой следует вызывать функцию:

int Show5DigitLedWithDot(int pos,int data)

Пример. Вывод на индикатор числа 12.345

Show5DigitLed(1, 1);

Show5DigitLedWithDot(2, 2); //Будет показан “2.”

Show5DigitLed(3, 3);

Show5DigitLed(4, 4);

Show5DigitLed(5, 5);

 

Д) Функции для светодиода

Контроллер I-7188EAD имеет один светодиод, который, например, может показать режим работы контроллера. Для включения этого светодиода предназначена функция void LedOn(void), а для отключения светодиода – void LedOff(void).

Функция void LedToggle(void) переключает светодиод на противоположное состояние.

           

Общие команды для модулей

Параметры обмена по сети RS485 по умолчанию

- Адрес: 01

- Скорость обмена: 9600 бод

- Контрольная сумма: отключена.

Рассмотрим общих команд на примере модуля I-7060D

1. $AAM – чтение имени модуля

Ответ: !AA(Data) – где Data имя модуля.

 

2. Команда ~** - Информирует всех модулей, что хозяин сети готов

Ответ: Ничего не возвращает

 

3. Команда $AA2 — чтение конфигурации

Ответ: !AA TT CC FF[chk](cr)

ТТ — тип модуля ввода/вывода: 40 для дискретных модулей.

СС – Скорость обмена

Код 03 04 05 06 07 08 09
Скорость 1200 2400 4800 9600 19200 38400 57600 115200

FF – Формат данных – определяет наличие контрольной суммы, и формат выводимых данных. Для дискретных модулей:

 

*1: Фронт сигнала для счетчика входного канала: 0=Задний фронт, 1=Передний фронт

*2: Контрольная сумма: 0=отключен, 1=включен

*3 :7050 = 000), 7060 = 001, 7052 = 010, 7053 = 011

 

4. Команда %AA NN TT CC FF — установка конфигурации

NN — новый адрес;

Ответ: !AA[chk](cr) — правильная команда.

 

5. Команда #** - Чтение каждого входа каждого модуля в сети RS-485 и сохранение их для дальнейшего опроса. Для опроса прочитанных данных должна выполняться команда $AA4.

 

/////////// Смотри еще команды в вопросе 6.



Обзор технологии ОРС

Базовым понятием этой модели является элемент данных (Item). Каждый элемент данных имеет значение, время последнего обновления (timestamp) и признак качества, определяющий степень достоверности значения.

Значение может быть практически любого скалярного типа – булево, целое, с плавающей точкой и т.п. – или строкой (так называемый OLE Variant).

Время представляется с 100-наносекундной точностью (FileTime Win API32). Качество – это код, содержащий в себе грубую оценку – UnCertain, Good и Bad ( не определено, хорошее и плохое), а на случай плохой – еще и расшифровку, например, Qual_Sensor_Failure – ошибка датчика).

Следующим вверх по иерархии является понятие группы элементов (OPC Group). Группа создается ОРС-сервером по требованию клиента. Клиент затем может добавлять в группу элементы (Items).

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

 

Наконец, на верхней ступеньке иерархии находится сам ОРС-сервер. Из всех перечисленных (ОРС-группа, ОРС-элемент) он единственный является СОМ-объектом, все остальные объекты доступны через его интерфейсы, которые он представляет клиенту.


Виды динамических действий

Визуальные свойства графических объектов могут изменяться в зависимости от значений связанных тэгов ОРС или математических выражений. К одному объекту может быть применено несколько динамических действий. Например, можно создать объект, у которого цвет, размер и положение изменяется в зависимости от значения одного или нескольких тэгов ОРС.

Доступны следующие типы динамики:

· Изменение положения

· Вращение

· Действие Скрыть/Блокировать

· Дискретное изменение цвета

· Плавное изменение цвета

· Мигание

· Указание и щелчок

Встроенные динамические объекты

· Параметр

· Время / Data

· Кнопка, Флажок, Переключатель Все эти 3 встроенные динамические объекты полностью дублируют динамическое действие Указание и щелчок. Ввод таких дублирующих объектов связано в первую очередь с важностью действия Указание и щелчок.

 

Слои

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

Команда Формат/Слои/Добавить открывает окно для ввода параметров нового слоя. В этом окне имеется поле, которое позволяет ввести выражение, значение которого определяет условие скрытия слоя. Вновь созданный автоматически становится текущим.

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

 

 


10. Назначение VBA-скриптов Genesis32. Классы доступа к элементам экранной формы. Основные этапы создания VBA-скрипта.

Написание сценариев на языке VBA

Genesis32 поддерживает VBA. На языке VBA можно написать сценарии, которые повышают функциональность проекта. Вызов редактора VBA осуществляется путем выполнения команды Сервис/Макрос/Редактор VBA. Тогда на экране появляется окно редактора VBA. Основными элементами этого окна являются окно проекта и окно ввода кода. Окно проекта содержит список форм и модулей, входящих в текущий открытый проект.

В GraphWorx32 модули и формы проекта хранятся вместе с объектами GraphWorx32 в одном и том же файле с расширением .gdf (genesis display file).

Только что открытый редактор VBA содержит модуль ThisDisplay. Модуль ThisDisplay является специальным модулем, который представляет текущую загруженную экранную форму GraphWorx32. С точки зрения ООП ThisDisplay является объектом класса экранной формы. Через этот объект можно иметь доступ ко всем объектам экранной формы и соответственно свойствам этих объектов.


Хузятов Ш.Ш.

СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ

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

Под системами реального времени подразумевается считывание сигналов с датчиков и подача управляющих воздействий, в зависимости от логики управления.

Для реализации используем локальные и распределенные системы управления.

Структурная схема локальной системы управления.

 


                                                 RS-232

 

Структурная схема распределенных систем управления

Часто объекты управления распределены по территории цеха, завода и т.д.

RS-485 сеть фактически представляет собой витую пару. Одновременно может только передавать, либо принимать данные

     
 

 

 


                                           2.5 метра    RS-232

 

                                                                                                           Больше 32

1200 метров      RS-485                                                                                              

ИУ
                                                                                                                                       …

До 256 устройств

 

 

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

Условно-графическое обозначение контроллера и модулей ввода/вывода.

 

 

Схема электрическая принципиальная включения входных и выходных дискретных сигналов.


2. Операционные системы реального времени. Цикл контроллера. Языки программирования систем реального времени (МЭК 61131-3). SCADA-системы.

Операционная система, в которой успешность работы любой программы зависит не только от её логической правильности, но и от времени, за которое она получила этот результат. Если система не может удовлетворить временным ограничениям, должен быть зафиксирован сбой в её работе – ОСРВ. Системы реального времени бывают двух типов — системы жесткого реального времени и системы мягкого реального времени.

Таблица сравнения ОСРВ и обычных операционных систем:[6]


Поделиться:



Последнее изменение этой страницы: 2019-04-21; Просмотров: 276; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.251 с.)
Главная | Случайная страница | Обратная связь