Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка ПСА genie

.pdf
Скачиваний:
76
Добавлен:
12.02.2016
Размер:
1.32 Mб
Скачать

Рис. 2.24. Диалоговая панель функционального блока звуковой сигнализации

2.2.3.20. Блок обмена через последовательный порт Блок обмена через последовательный порт (или блок

последовательного интерфейса) предназначен для организации информационного обмена между компьютером, на котором исполняется стратегии GENIE, и другими устройствами и компьютерами, поддерживающими интерфейс последовательной связи

RS-232/422/485.

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

Рис. 2.25. Диалоговая панель настройки функционального блока обмена через последовательный порт

2.2.3.21. Блок аварийного дискретного управления

Данный блок предназначен для передачи другим функциональным блокам стратегии состояния дискретных

41

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

Поле Device

(см. п. 2.2.3.2)

Поле Enable/Disable

Если ко входу Enable/Disable (Деблокировать/Блокировать) блока аварийного дискретного управления присоединен проводник от другого функционального блока стратегии, то логическое состояние изданном входе будет разрешать или запрещать реакцию на аварийное событие. Данная возможность позволяет управлять работой блока аварийного дискретного

Рис. 2.26. Диалоговая панель настройки функционального блока аварийного дискретного управления

управления во время исполнения стратегии. Если данный вход не присоединен, то аварийное дискретное управление будет осуществляться от момента запуска стратегии до ее завершения. Для активизации функции аварийного дискретного управления, выполняемой блоком, по входу Enable/Disable следует подать на указанный вход положительный перепад (из 0 в 1) от другого функционального блока стратегии. Для блокирования функции аварийного дискретного управления, выполняемой блоком, по входу Enable/Disable следует подать на указанный вход отрицательный перепад (из 1 в 0) от другого функционального блока стратегии.

Поле Reset from

Для сброса состояния аварии, зафиксированной устройством, следует подать положительный перепад (из 0 в 1) другого функционального блока на

42

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

Блок имеет два входа: Reset и Enable/Disable.

Выход блока аварийного дискретного управления может находиться в одном из трех состояний 0 – аварийных событий не зафиксировано;

1 – зафиксировано аварийное событие по принижению нижнего граничного значения;

2 – зафиксировано событие по превышению верхнего граничного значения.

2.2.3.22. Блок вычисления с одним оператором

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

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

стратегии.

Результат на выходе блока вычисления с единственным оператором может быть представлен в виде целого (Integer) либо действительного (Float) числа.

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

Операторы и функции блока вычисления с единственным оператором представлены в таблице 2.2.

Таблица 2.2

Операторы и функции блока вычисления с единственным оператором

Оператор

Функция (результат на выходе блока)

nор

Всегда 0

 

43

+

Операнд1 + Oneранд2

Операнд1 - Операнд2

х

Операнд1 * Oпeранд2

/

Операнд1 / Операнд2

pow

Операнд1Операнд2

mod*

Остаток целочисленного деления Операнда1 на Операнд2

and*

Логическое И операндов

or*

Логическое ИЛИ операндов

xor*

Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ операндов

max

Максимальное значение из двух операндов

 

Продолжение таблицы 2.2

Оператор

Функция (результат на выходе блока)

min

Минимальное значение из двух операндов

>=

1, если Операнд1 >= Операнд2; 0 – в противном случае

<=

1, если Операнд1 <= Операнд2; 0 – в противном случае

>

1, если Операнд1 > Операнд2; 0 – в противном случае

<

1, если Операнд1 < Операнд2; 0 – в противном случае

equ

1, если Операнд1 равен Операнду2; 0 – в противном случае

neq

1, если Операнд1 не равен Операнд2; 0 – в противном случае

abs

Абсолютная величина (модуль) Операнда1

not

Логическое НЕ Операнда1

inv

Инверсия Операнда1

sqrt

Квадратный корень Операнда1

log

Десятичный логарифм Операнда1

ln

Натуральный логарифм Операнда1

exp

ехр(Операнд1)

jct

Оператор объединения (описание приведено ниже)

Операторы, после которых стоит символ «*», требуют использования в качестве аргументов (операндов) значения целого (Integer) типа. Некоторые из перечисленных выше операторов требуют только один аргумент (операнд). Логические операции (AND, OR, XOR) требуют использования двух аргументов целого типа. Операторы ABS, NOT, INV, SQRT, LOG, LN, EXP, JCT требуют использования одного аргумента (целого или с плавающей точкой в зависимости от типа операции).

При передаче значений операндов блоку вычисления с одним оператором необходимо принимать ряд мер предосторожности. Операциям деления и вычисления остатка от целочисленного деления в качестве второго аргумента не должно передаваться нулевое значение. Кроме того, некоторым операторам (SQRT, LN, LOG) в качестве аргумента должно передаваться только положительное значение. Если не следовать указанным правилам, то при исполнении стратегии будут возникать неустранимые ошибки.

44

Оператор JCT предназначен для выполнения специальной функции, которая заключается в передаче на выход блока значения, поступающего на его вход. Данная функция наиболее удобна в случае, если требуется установить связь между элементом управления Кнопка (см. раздел 2.3) и несколькими функциональными блоками стратегии. Элемент управления Кнопка, используемый в Редакторе форм отображения, может быть связан только с одним функциональным блоком стратегии. Оператор JCT, вход которого связан с элементом управления Кнопка, может быть использован в качестве «точки ветвления» для установления связи с любым количеством функциональных блоков стратегии.

2.2.3.23. Блоки динамического обмена данными (Клиент и Сервер DDE)

Механизм динамического обмена данными (DDE) является стандартным и универсальным средством обмена данными между приложениями Windows, реализованным в пакете GENIE.

В наборе инструментов Редактора задач GENIE имеется два функциональных блока, соответствующие клиенту и серверу динамического обмена данными. Кроме того, механизм DDE встроен в четыре других функциональных блока Редактора задач: Блок аналогового вывода, Блок дискретного ввода, Блок дискретного вывода и Блок измерения температуры (см. пп. 2.2.3.5-8)

Блок сервера динамического обмена данными

предназначен для передачи данных из GENIE другим приложениям Windows. Поскольку механизм DDE основан на широковещательной передаче информации, DDE сервер только «объявляет» о наличии данных для передачи (публикует данные), в то время как другие приложения Windows несут полную ответственность за поиск этих данных, их получение и дальнейшую обработку. Как

только к блоку сервера DDE подключается какой-либо функциональный блок GENIE, информация с выхода данного функционального блока становится доступной другим приложениям. Идентификатор формируется на основе содержимого полей Service, Topic и Item (Сервис, Раздел и Объект) диалоговой панели (рис. 2.28). Поле Service является именем приложения Windows, которое осуществляет передачу данных другим приложениям. В данном случае в указанном поле содержится имя GENIE.

Поле Topic содержит имя файла, данные которого подлежат передаче. В GENIE в качестве имени используется имя файла стратегии (без расширения), содержащей настраиваемый блок сервера динамического обмена данными. Например, если файл стратегии имеет имя DDEDEMO.GNI, то в поле Topic должна быть указана текстовая строка DDEDEMO. Следует обратить внимание на тот факт, что вновь созданная стратегия, не имеющая уникального имени, не позволяет передавать данные посредством механизма

DDE.

45

Рис. 2.28. Диалоговая панель настройки функционального блока сервера DDE

Поле Item должно содержать имя тэга (идентификатор) функционального блока, выходные данные которого подлежат передаче другим приложениям Windows. Указанный идентификатор, который помещается в поле Tag диалоговой панели настройки параметров функционального блока (например, DDES1, DDES2, DDEC1 и т.д.) НЕ ЯВЛЯЕТСЯ позиционным обозначением функционального блока в Редакторе задач, находящимся под его пиктограммой. Очень важно понимать, что под именем тэга подразумевается не содержимое поля Description (Описание), которое может быть изменено пользователем, а именно содержимое поля Tag диалоговой панели настройки параметров функционального блока.

Как правило, приложения Windows, поддерживающие механизм DDE. производят поиск данных с использованием синтаксиса

Service|Topic!Item

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

[DDE].Service.Topic.item.

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

Блок клиента динамического обмена данными

предназначен для приема GENIE данных от других приложений Windows. Идентификатор получаемого информационного объекта должен быть введен в поле Service|Topic!Item диалоговой панели (рис. 2.29). Кроме того, для установления связи с GENIE с использованием DDE может потребоваться выполнить

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

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

46

Рис. 2.29. Диалоговая панель настройки функционального блока клиента DDE

Блок клиента динамического обмена данными будет получать данные от другого приложения Windows и передавать их на входы функциональных блоков стратегии, которые присоединены к выходу блока клиента DDE проводниками. К блоку клиента DDE может быть присоединено любое количество функциональных блоков стратегии. Таким образом, имеется возможность получения данных от приложения-сервера любым количеством функциональных блоков стратегии.

Для настройки блока клиента динамического обмена данными,

приложение, данные которого предполагается передавать GENIE, должно быть запущено и исполняться в фоновом режиме.

При нажатии кнопки Connect... диалоговой панели блока на экран монитора будет выведена диалоговая панель Create DDE Link (рис. 2.30), в колонке Service которой будут отображены имена приложений-серверов динамического обмена данными, доступных GENIE.

Имена некоторых приложений могут отсутствовать в указанной колонке. Если имя приложения, данные которого предполагается передавать GENIE, имеется в колонке Service, следует произвести однократный щелчок левой клавишей мыши на его имени, что приведет к появлению имени в соответствующем поле диалоговой панели.

Рис. 2.30. Диалоговая панель создания DDE связи

В колонке Service Topics диалоговой панели отображаются названия доступных разделов выбранного сервиса. Для выбора требуемого раздела следует произвести однократный щелчок левой клавишей мыши на его названии, что приведет к появлению названия в соответствующем поле.

Далее следует выполнить данную операцию по отношению к полю Item и закрыть диалоговую панель Create DDE Link нажатием кнопки ОК. В поле

47

Service|Topic!Item диалоговой панели Create DDE Link Client появится идентификатор информационного объекта, который будет приниматься функциональными блоками, присоединенными к блоку клиента динамического обмена данными. После закрытия диалоговой панели при запуске стратегии, данные другого приложения Windows будут поступать в

GENIE.

Если в колонках Service, Topic и Item диалоговой панели Create DDE Link отсутствует информация о приложении, данные которого предполагается передавать GENIE, идентификатор информационного объекта следует ввести вручную в соответствующих полях указанной диалоговой панели.

DDE связь, установленная описанным выше способом, после сохранения стратегии будет восстанавливаться при последующих запусках данной стратегии. При этом следует учесть, что приложение, данные которого передаются GENIE, также должно запускаться одновременно с GENIE (например, с помощью помещения в Группу запуска Windows). В противном случае GENIE не сможет получать данные.

2.2.3.24. Блок воспроизведения звукового файла по условию

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

значению может соответствовать отдельный звуковой файл.

Поле Wave File Name

Данное поле предназначено для выбора звукового файла, подлежащего воспроизведению, при наличии на входе блока целого числа, выделенного в списке Input Wave File Name в процессе настройки параметров блока. Для поиска и ввода полного пути к выбираемому звуковому файлу следует нажать кнопку Browse... диалоговой панели (рис. 2.31).

48

Рис. 2.31. Диалоговая панель настройки функционального блока

воспроизведения звукового файла по условию

2.2.3.25. Блок архива тревог

Данный блок предназначен для сохранения в архиве

информации о зафиксированных аварийных событиях, связанных

с сигналом, поступающим на вход блока архива тревог. Блок

имеет вход и выход. Тревоги фиксируются в файле архива событий

(\GENIE\GENIE.ELF). Сообщения об аварийных событиях могут

отображаться в окне Журнала событий и подтверждаться

пользователем в процессе исполнения стратегии, когда значение на

входе блока попадает в определенные диапазоны.

На выходе блока присутствует целое число, соответствующее событию,

зафиксированному блоком. Это позволяет представлять информацию об

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

блоком архива тревог и элементом отображения Растровое изображение с

динамизацией по условию (см. раздел 2.3).

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

события приведена в таблице 2.3.

Таблица 2.3

Значения на выходе блока архива тревог

Аварийное событие (значение на входе блока)

Значение на выходе блока

Выше верхнего предельного значения

4

Между максимальным и верхним предельным

2

значениями

 

Между максимальным и минимальным значениями

0

Между минимальным и нижним предельным

1

49

 

значениями

 

Ниже нижнего предельного значения

3

Внешний вид диалоговой панели настройки параметров блока архива тревог показан на рисунке 2.32.

Рис. 2.32. Диалоговая панель настройки функционального блока архива тревог

2.2.3.26. Блок процедуры пользователя

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

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

ПРИМЕЧАНИЕ. В текущей и последующих версиях пакета рекомендуется использовать блок Бейсик-сценария вместо блока процедуры пользователя.

Данный блок разработан для обеспечения максимальной гибкости программирования в GENIE, позволяющей реализовывать эффективные вычисления, логические операции, условные переходы, ветвления и циклы. В блоке используется интерпретирующий (не компилирующий) язык программирования, синтаксис которого весьма похож на синтаксис языка Си, но со значительными упрощениями. В результате достигнут разумный

50