- •Введение
 - •Регистрация
 - •Системные требования
 - •Технические характеристики
 - •Инсталляция и начало работы
 - •Деинсталляция
 - •Совместимость с предыдущей версией
 - •Интегрированная среда разработки
 - •Окно Добро пожаловать
 - •Рабочее пространство
 - •Аргументы
 - •Окно Аргументы
 - •Окно Выбор привязки
 - •Привязка к атрибутам тега
 - •Привязка аргумента к свойствам примитивов
 - •Привязка к расписанию
 - •Привязка к открытию вида
 - •Параметры
 - •Лог-файлы
 - •Редактор скриптов
 - •Редактор мнемосхемы
 - •Меню и панели инструментов
 - •Каталог проектов
 - •Верификация
 - •Отладка
 - •Окно сообщения
 - •Среда исполнения
 - •Рабочее пространство
 - •Запуск проекта
 - •Пример создания автозапуска
 - •Среда исполнения Клиент
 - •Рабочее пространство
 - •Редактирование списка сетевых проектов
 - •Запуск проекта
 - •Синхронизация времени с сервером
 - •Объектная модель
 - •Проект
 - •Свойства проекта
 - •Элемент проекта
 - •Редактирование проекта
 - •Отладка проекта
 - •Защита проекта и элемента проекта
 - •Пример
 - •Объекты
 - •Теги
 - •Связи тегов
 - •Перепривязка тегов
 - •Виды
 - •Скрипты
 - •Библиотеки
 - •Редактор библиотек
 - •Библиотека объектов
 - •Библиотека типов тегов
 - •Библиотека скриптов
 - •Управление библиотеками
 - •Расписания
 - •Папки расписаний
 - •Создание расписания
 - •Редактирование свойств расписания
 - •Расписание с однократной активацией
 - •Расписание с повторяющейся активацией
 - •Задание периодичности
 - •Периодичность в днях
 - •Периодичность в неделях
 - •Периодичность в месяцах
 - •Периодичность в годах
 - •Периодичность в день запуска
 - •Определение времени однократной активации
 - •Определение периодичности активации в день запуска
 - •Продолжительность действия расписания
 - •Словесное описание
 - •Динамическая визуализация данных
 - •Графическая подсистема
 - •Рабочие столы
 - •Дерево примитивов мнемосхемы
 - •Редактор слоев мнемосхем
 - •Мнемосхема
 - •Система координат
 - •Печать мнемосхемы
 - •Графические примитивы
 - •Свойства графических примитивов
 - •Видимость/мигание
 - •Цвет
 - •Заливка
 - •Свойства заливки
 - •Свойства в скриптах
 - •Видимость/мигание
 - •Цвет
 - •Заливка
 - •Свойства заливки
 - •Действия над примитивами
 - •Изменение размера и положения
 - •Группирование
 - •Эллипс
 - •Прямоугольник
 - •Скругленный прямоугольник
 - •Прямая
 - •Сцена
 - •Рисунок
 - •Текст
 - •Надпись
 - •Дуга
 - •Большая дуга
 - •Сектор
 - •Сегмент
 - •Объемный прямоугольник
 - •Вспомогательная линия
 - •Многоугольник
 - •Ломаная
 - •Таблица
 - •Свойства заголовка
 - •Свойства колонки
 - •Свойства заголовка колонки
 - •Свойства строки
 - •Свойства заголовка строки
 - •Свойства подписи
 - •Свойства ячейки
 - •Редактирование границ
 - •Элемент управления
 - •Использование примитива
 - •Анимация
 - •Простое преобразование
 - •Преобразование скриптом
 - •Реакции
 - •Редактирование событий
 - •Редактирование события Нажатие клавиши
 - •Редактирование события Отжатие клавиши
 - •Редактирование события Последовательный ввод
 - •Присвоить значение
 - •Переход
 - •Переход на мнемосхему
 - •Переход на рабочий стол
 - •Анимация примитивов
 - •Выполнить скрипт
 - •Поле ввода
 - •Ползунок
 - •Изменение свойств примитивов с помощью реакций и анимаций
 - •Видимость/мигание
 - •Цвет
 - •Заливка
 - •HatchStyle
 - •GradientBrushInfo
 - •Копирование реакций и анимаций
 - •Обмен данными
 - •Создание OPC DA коннектора
 - •Тег OPC DA коннектора
 - •Выбор OPC DA тегов
 - •Системный тег OPC DA коннектора
 - •Переименование OPC DA тегов
 - •Настройка OPC DA коннектора
 - •Создание OPC DA группы
 - •Настройка OPC DA группы
 - •Создание OPC HDA коннектора
 - •Тег OPC HDA коннектора
 - •Выбор OPC HDA тегов
 - •Системный тег OPC HDA коннектора
 - •Переименование OPC HDA тегов
 - •Настройка OPC HDA коннектора
 - •Использование данных OPC HDA коннектора
 - •SQL-коннектор
 - •Технические характеристики
 - •Источник данных
 - •Примеры строк соединений
 - •Группа данных
 - •Создать группу данных
 - •Изменить группу данных
 - •Свойства группы данных
 - •Системный тег группы данных
 - •Примеры использования
 - •Работа с протоколом событий
 - •Сбор статистических данных
 - •Организация архива данных
 - •WideTrack коннектор
 - •Создание WideTrack коннектора
 - •Тег WideTrack коннектора
 - •Выбор тегов для опроса
 - •Системный тег WideTrack коннектора
 - •Настройка WideTrack коннектора
 - •Просмотр истории
 - •Экспорт данных
 - •Общие свойства экспортеров
 - •Свойства экспортера в XML
 - •Структура файла XML
 - •Свойства экспортера в CSV
 - •Структура файла CSV
 - •Создание файла экспорта
 - •Тег эмулятор
 - •Эмулятор синус
 - •Эмулятор инкремент
 - •Система ограничения доступа
 - •Настройка пользователей и ролей проекта
 - •Настройка пользователей проекта
 - •Добавление пользователя
 - •Удаление пользователя
 - •Редактирование пользователя
 - •Ввод пароля
 - •Настройка ролей проекта
 - •Добавление роли
 - •Удаление роли
 - •Редактирование роли
 - •Настройка групп ролей проекта
 - •Добавление группы ролей
 - •Удаление группы ролей
 - •Редактирование группы ролей
 - •Настройка доступа к объектам
 - •Объекты, поддерживающие ограничение доступа
 - •Настройка доступа для объектов
 - •Настройка доступа для реакций
 - •Алгоритм проверки прав доступа
 - •Авторизация пользователей проекта
 - •Вход пользователя в систему
 - •Выход пользователя из системы
 - •История процесса. Тренды
 - •Модуль Менеджер трендов
 - •Настройки Менеджера трендов
 - •Группы настроек истории
 - •Редактирование групп настройки истории
 - •Редактирование группы настроек
 - •Перья Менеджера трендов
 - •Редактирование перьев Менеджера трендов
 - •Создание перьев
 - •Удаление перьев
 - •Группировка перьев
 - •Тренды объектов
 - •Тренды тегов
 - •Мастер создания перьев для объекта
 - •Мастер создания перьев для тега
 - •Настройка трендирования тегов
 - •Настройка трендирования атрибутов
 - •Выбор тегов по маске
 - •Графический элемент Тренд
 - •Создание графического элемента Тренд
 - •Общие настройки
 - •Настройка координатной сетки
 - •Добавление/Удаление перьев
 - •Настройка перьев
 - •Настройки пера
 - •Редактирование привязки перьев
 - •Настройки отображения границ
 - •Настройки отображения точек
 - •Световое перо
 - •Управление графическим элементом Тренд
 - •Выбор текущего пера
 - •Переключение режимов
 - •Включение заливки и отключение перьев
 - •Просмотр истории
 - •Графический элемент Табличный тренд
 - •Настройка запроса данных
 - •Листание
 - •Световое перо
 - •Свойства колонки Перо
 - •Свойства колонки Время
 - •Протокол событий
 - •Модуль Протокол событий
 - •Настройки модуля Протокол событий
 - •Настройки хранения истории
 - •Словарь серьезности
 - •Словарь типов событий
 - •Словарь событий
 - •Системные события
 - •Импорт словаря
 - •Настройки печати протокола событий
 - •Окно Настройка печати
 - •Настройка колонок для печати
 - •Примитив Протокол событий
 - •Основные настройки
 - •Колонки и строки
 - •События элемента проекта
 - •Вызов окна просмотра событий элемента проекта
 - •Панель инструментов
 - •Настройка колонок
 - •Фильтрация событий по серьезности
 - •Фильтрация событий по типу
 - •Печать событий
 - •Посылка событий в протокол
 - •Печать событий из скрипта
 - •Модуль отчетов
 - •Шаблон отчета
 - •Параметры отчета
 - •Секции отчета
 - •Элементы отчета
 - •Линия
 - •Прямоугольник
 - •Текстовое поле
 - •Таблица
 - •Диаграмма
 - •Группы данных
 - •Группировка и сортировка данных
 - •Гистограммы
 - •Линейчатые диаграммы
 - •Графики
 - •Круговые диаграммы
 - •Диаграммы с областями
 - •Кольцевые диаграммы
 - •Рисунок
 - •Встроенные рисунки
 - •Форматирование элементов отчета
 - •Стили
 - •Условное форматирование
 - •Числовые значения и даты
 - •Разбивка отчета на страницы
 - •Предварительный просмотр
 - •Взаимодействие с пользователем
 - •Автоматическое изменение размера и позиционирование
 - •Данные для отчета
 - •Группа тегов
 - •Группа трендируемых тегов
 - •Атрибут тега
 - •Тренд
 - •SQL коннектор
 - •Мнемосхема
 - •Использование выражений
 - •Создание выражений
 - •Работа с выражениями
 - •Применение глобальных коллекций в выражениях
 - •Примеры выражений
 - •Использование функций в выражениях
 - •Функции работы со строками
 - •Функции даты и времени
 - •Математические функции
 - •Функции проверки типов
 - •Функции выполнения условия
 - •Функции преобразования типов
 - •Функции агрегирования
 - •Функция Avg
 - •Функция Count
 - •Функция CountRows
 - •Функция CountDistinct
 - •Функция First
 - •Функция Max
 - •Функция Min
 - •Функция Last
 - •Функция RowNumber
 - •Функция RunningValue
 - •Функция StDevP
 - •Функция StDev
 - •Функция Sum
 - •Функция VarP
 - •Функция Var
 - •Менеджер отчетов
 - •Хранение снимков данных
 - •Печать отчетов
 - •Рассылка отчетов
 - •Публикация в папку
 - •Генерация отчета
 - •Web-контроль
 - •Инсталляция
 - •Начало работы
 - •Деинсталляция
 - •Главное окно
 - •Конфигурирование сервера
 - •Общие настройки
 - •Соединения
 - •Главная страница
 - •Страница авторизации
 - •Страница навигации по проекту
 - •Как подключиться к проекту
 - •Cписок возможных проблем
 - •Редактор скриптов
 - •Окно Редактора скриптов
 - •Панель инструментов
 - •Закладка Шаблоны
 - •Закладка Функции
 - •Окно ошибок скрипта
 - •Область редактирования текста
 - •Окно Параметры страницы
 - •Окно Печать
 - •Окно редактирования ссылок на сборки
 - •Окно Поиск и замена
 - •Настройки Редактора скриптов
 - •Настройки Шаблонов пользователей
 - •Настройки шрифта
 - •Пример HMI-приложения
 - •Создание проекта
 - •Типы тегов
 - •Библиотечные объекты
 - •Анимация
 - •Логика работы
 - •Отладка
 - •Тренд и протокол событий
 - •Техническая поддержка
 
10.4Посылка событий в протокол
Для посылки информации о событии в протокол событий применяются скрипты Пользователя, подключаемые как реакции графических примитивов объектов или тегов.
Для посылки сообщениях о событии в Протокол событий используются:
∙События из словаря событий.
Для регистрации события в протоколе используйте функцию
AlarmServiceHelper.SendEvent
∙Произвольные пользовательские события.
Для регистрации события в протоколе используйте функцию
AlarmServiceHelper.SendUserEvent.
Для использования этих функций , в редакторе скриптов во вкладке Пространства имен
добавьте ссылку на Krug.ObjectModel.AlarmServiceInterfaces
РЕГИСТРАЦИЯ СОБЫТИЯ ИЗ СЛОВАРЯ СОБЫТИЙ
Вызовите в скрипте функцию AlarmServiceHelper. SendEvent со следующими параметрами:
AlarmServiceHelper.SendEvent(
Client,  | 
	
  | 
	
  | 
Tag,  | 
	
  | 
	
  | 
Attribute,  | 
	
  | 
|
MessageID,  | 
	
  | 
|
MessageParam  | 
	);  | 
|
где  | 
	
  | 
	
  | 
Client  | 
	– владелец скрипта,  | 
|
Tag  | 
	- имя тега, с которым связано событие  | 
|
Attribute  | 
	- имя атрибута тега, с которым связано событие  | 
|
MessageID  | 
	- номер события в словаре событий  | 
|
MessageParam – необязательные параметры текстовой строки события. Если параметры отсутствуют, никакие значения задавать не нужно, если параметры есть, перечислите их через запятую.
Если словарного события с данным номером нет в словаре событий, то в окне Отладка в журнале регистрации сообщений с именем Warnings(предупреждения) появится сообщение:
"Warnings Error: 1: Ошибка при посылке события в протокол событий: словарного события с номером [MessageID] нет в словаре событий".
366 DataRate
Пример:
РЕГИСТРАЦИЯ ПОЛЬЗОВАТЕЛЬСКОГО СОБЫТИЯ
Вызовите в скрипте функцию AlarmServiceHelper. SendUserEvent со следующими параметрами:
AlarmServiceHelper.SendUserEvent(
Client,  | 
	
  | 
	
  | 
Tag,  | 
	
  | 
	
  | 
Attribute,  | 
	
  | 
	
  | 
TypeID,  | 
	
  | 
	
  | 
Severity,  | 
	
  | 
	
  | 
TextMessage,  | 
	
  | 
|
MessageParam  | 
	);  | 
|
где  | 
	
  | 
	
  | 
Client  | 
	– владелец скрипта,  | 
|
Tag  | 
	- имя тега, с которым связано событие  | 
|
Attribute  | 
	- имя атрибута тега, с которым связано событие  | 
|
TypeID  | 
	- номер типа события из словаря типов; если типа с заданным номером  | 
|
  | 
	не будет в словаре, событие не будет зарегистрировано  | 
|
Severity  | 
	- серьезность события. Целое значение из диапазона [0…1000].  | 
|
TextMessage  | 
	– текстовое сообщение заключенное в кавычки  | 
|
MessageParam – необязательные параметры текстовой строки события
Пример:
Протокол событий 367
10.5Печать событий из скрипта
КЛАСС ДЛЯ ПЕЧАТИ ПРОТОКОЛА СОБЫТИЙ
Для печати протокола событий из скрипта используются специальные методы класса
AlarmServiceHelper.
Чтобы методы этого класса стали доступны, в редакторе скриптов во вкладке Пространства имен добавьте ссылку на Krug.ObjectModel.AlarmServiceInterfaces
МЕТОДЫ ПЕЧАТИ СООБЩЕНИЙ О СОБЫТИЯХ
AlarmServiceHelper.PrintLastEvents(object client, int count, string printSettingsName) - печатает последние события.
Параметры:
client - клиент скрипта;
count - rоличество печатаемых событий;
printSettingsName - название используемой группы настроек или null, если настройки будут запрашиваться у пользователя.
AlarmServiceHelper.PrintLastEvents(object client, int count, EventFilter[] filters, string
printSettingsName) - печатает последние события, отфильтрованные по заданным свойствам.
Параметры:
client - клиент скрипта;
count - rоличество печатаемых событий;
filters - массив фильтров для фильтрации событий по определенным свойствам; printSettingsName - название используемой группы настроек или null, если настройки
будут запрашиваться у пользователя.
AlarmServiceHelper.PrintAllEvents(object client, string printSettingsName) - печатает все события, зарегистрированные протоколом событий.
Параметры:
client - клиент скрипта;
printSettingsName - название используемой группы настроек или null, если настройки будут запрашиваться у пользователя.
AlarmServiceHelper.PrintAllEvents(object client, EventFilter[] filters, string
printSettingsName) - печатает все события, зарегистрированные протоколом событий, отфильтрованные по заданным свойствам.
Параметры:
client - клиент скрипта;
filters - массив фильтров для фильтрации событий по определенным свойствам; printSettingsName - название используемой группы настроек или null, если настройки
будут запрашиваться у пользователя.
368 DataRate
AlarmServiceHelper.PrintEvents(object client, DateTime startTime, DateTime endTime, int
maxCountLimit,
string printSettingsName) - печатает события в заданном промежутке времени.
Параметры:
client - клиент скрипта;
startTime -начальное время запрашиваемого интервала; endTime -конечное время запрашиваемого интервала;
maxCountLimit - ограничение на количество возвращаемых событий или -1 ,если без ограничений
printSettingsName - название используемой группы настроек или null, если настройки будут запрашиваться у пользователя.
AlarmServiceHelper.PrintEvents(object client, DateTime startTime, DateTime endTime,
EventFilter[] filters,
int maxCountLimit, string printSettingsName) - печатает события в заданном промежутке времени, отфильтрованные по заданным свойствам.
Параметры:
client - клиент скрипта;
startTime -начальное время запрашиваемого интервала; endTime -конечное время запрашиваемого интервала;
filters - массив фильтров для фильтрации событий по определенным свойствам; maxCountLimit - ограничение на количество возвращаемых событий или -1 ,если без
ограничений
printSettingsName - название используемой группы настроек или null, если настройки будут запрашиваться у пользователя.
Название группы настроек для параметра printSettingsName в скрипте нужно брать из списка настроек печати протокола событий.
Если заданное в скрипте название группы настроек не будет найдено в списке настроек печати протокола событий или будет пустым, то печать событий не произойдет и в журнал регистрации (лог) будет записано соответствующее предупреждение.
ПРИМЕР
∙Создаем настройку печати протокола событий с именем Настройки печати в окне
Настройки протокола событий во вкладке Настройка печати.
∙Добавляем ссылку на пространство имен Krug.ObjectModel.AlarmServiceInterfaces
∙Запрашиваем события с 16.01.08 12:00 по 16.01.08 13:30, задав фильтрацию по уровню и по типу серьезности, а также максимальное количество событий - 25.
∙Во вкладке Скрипт пишем следующий код:
//Задаем начальное время 16.01.2008 12:00
DateTime startTime = new DateTime(2008, 1, 16, 12, 0, 0, DateTimeKind.Local); // Задаем конечное время 16.01.2008 13:30
DateTime endTime = new DateTime(2008, 1, 16, 13, 30, 0, DateTimeKind.Local);
//Создаем массив фильтров. EventFilter[] filters = new EventFilter[2];
//Создаем фильтр серьезность (типы фильтруемых значений серьезност от 200 до 100)
//и добавляем в массив фильтров
filters[0] = new SeverityEventFilter(200, 1000);
// Создаем фильтр типов (фильтруются типы событий с номерами 1 и 2)
Протокол событий 369
// и добавляем в массив фильтров
filters[1] = new TypeEventFilter(new int[] { 1, 2 }); try
{
// Печатаем события с сответсвующими настройками AlarmServiceHelper.PrintEvents(Client, startTime, endTime, filters, 25, "Настройки
печати");
}
catch (Exception ex)
{
// Если произошла ошибка показываем сообщение с ее описанием MessageBox.Show(ex.Message);
}
Данный скрипт можно вызывать с помощью функции реакции или запускать по расписанию.
370 DataRate
Часть
11
