НТК Интерфейс
ПО ОИК Диспетчер НТ. ПО сервер версия 2.Х.
             Руководство пользователя
×
Меню

12.3. Настройка программ дорасчета

Для типовой структура программного комплекса «ОИК Диспетчер НТ» под сервером динамических данных должна быть установлена служба «Дорасчетчик» (см. Рис. 13.4.).
Для перехода в окно настройки программ дорасчета необходимо в окне главного меню программы «Настройка серверов» (см. Рис. 13.4) ЛКМ выбрать строку дорасчетчика и ЛКМ нажать на кнопку «Настройка» или при выбранной строке дорасчетчика ПКМ активировать контекстное меню, в котором выбрать пункт меню «Настройка». Окно настройки программ дорасчета приведено на Рис. 14.3.1. Назначение кнопок управления в окне настройки программ дорасчета приведено в Табл. 14.3.1.
Рис. 14.3.1 Окно настройки программ дорасчета
Табл. 14.3.1 – Назначение кнопок в окне настройки программ дорасчета
Вид кнопки
Название кнопки
Пояснение
 
Добавить
Добавить программу дорасчета из файла типа *.clc (количество программ не ограничено)
 
Удалить
Удалить программу дорасчета из списка выполняемых программ
 
Создать
Создать файл для новой программы дорасчета
 
Редактировать
Редактировать текст существующей программы
 
Ред./Отладчик
Открыть окно редактора/отладчика выделенной программы дорасчета (см. Рис. 10.3.2)
 
Тест
Пошаговый тест программы с паузой между выполнением двух соседних команд (см. Рис. 10.3.3)
 
Синтаксис
Проверка синтаксиса текста программы (см. Рис. 10.3.4)
Шрифт
 
Общие для закладок: «Структура»,
«Оборудование»,
«Дорасчет»
Выбор шрифта окна настройки
Восстановить
Восстановить конфигурацию, соответствующую последней сохраненной
Сохранить
Сохранить в конфигурации все выполненные изменения
 
Выход
Выход из окна настройки сервера динамических данных
 
Рис. 14.3.2 Проверка синтаксиса программы дорасчета
Рис. 14.3.3 Тест программы дорасчета
Рис. 10.3.4 Проверка синтаксиса программы дорасчета
Комплекс поддерживает независимые программы дорасчета. Каждая из программ хранится в отдельном файле. Порядок описания программ дорасчета безразличен – все они имеют один уровень приоритета. Вновь создаваемые программы записываются в файл с использованием кодировки ANSI (формат Windows).
Для программ, написанных в формате OEM (формат DOS), необходимо:
-     загрузить программу (кнопка меню – «добавить»);
-     выполнить преобразование OEM -> ANSI;
-     при выходе из режима «дорасчет» подтвердить сохранение изменений.
ВНИМАНИЕ! Преобразование OEM -> ANSI и ANSI -> OEM допускается выполнять только один раз. В противном случае программа, использующая символы русского алфавита, будет безвозвратно испорчена (после сохранения результатов преобразования).
Программа дорасчета будет выполняться после старта сервера телемеханики, если на уровне сервера телемеханики установлен компонент «Дорасчетчик» и разрешен его запуск.
Для анализа и отладки программ дорасчета можно сохранять результат трассировки программ в виде файла, для этого следует:
-     окне главного меню программы «Настройка серверов» выбрать режим трассировки сервера динамических данных;
-     в открывшемся окне трассировки серверов на закладке «Серверы» выбрать строку «Дорасчет» нужной программы;
-     перейти на закладку «Трассировка» и определить размер файла (задать параметр «Линии») и включить режим трассировки (установить признак «Активна» и «Отладка»);
-     после записи в буфер нужного объема трассировки нажать кнопку «Сохранение»;
-     указать имя файла и сохранить результат.
Дорасчетные телепараметры рекомендуется описывать в канале, который не используется для реальных устройств телемеханики. Это связано с тем, что некоторые драйверы связи обнуляют по тайм-ауту признак реальности телепараметров при отсутствии связи с УТМ, что приводит к ошибке при попытке чтения параметра. Привязка дорасчетных ТС, ТИТ, ТИИ к схеме выполняется обычным образом.
Для написания программ дорасчета можно использовать:
-     специализированный язык ЯРД;
-     VisualBasicScript;
-     JavaScript;
-     другие языки (например, PerlScript) поддержка, которых установлена в Windows.
Исходными операндами языка могут быть константы, переменные ТИТ, ТС и ТИИ (#ТТ, #ТС, #PU, #ТИ – смотрите описание языка ЯРД). Результаты вычислений могут быть присвоены промежуточным переменным, а также переменным, описанным как ТИТ, ТС или ТИИ.
Для отладки программ в режиме «Тест» рекомендуется задать паузу, не равную нулю (пауза между выполнением двух соседних операторов языка дорасчета).
Программы дорасчета создаются и хранятся в файлах. При нажатии кнопки «создать» в настройке дорасчетчика появляется диалоговое окно с предложением указать имя новой программы. Если это имя без расширения, то по умолчанию будет создана программа на языке ЯРД (*.clc). Укажите расширение *.vbs для создания программ на VB Script и *.js для JavaScript.
Сама программа пишется с соблюдением синтаксиса выбранного языка. Можно использовать почти все возможности, предоставляемые языком (например, доступ к файлам через элемент FileSystemObject). Очевидно, что для программ, написанных с использованием языков VB Script, JavaScript не удастся воспользоваться экранными формами для диалога с пользователем. Детали синтаксиса языков VB Script, JavaScript хорошо документированы в соответствующей литературе.
Для получения данных телеметрии в языки VB Script, JavaScript добавлена функция TM(…) с одним текстовым аргументом. Этот аргумент может содержать любое допустимое выражение на языке ЯРД, например:
"#TT0:1:1*#TT0:1:2";
"(#TC1:10:5)?(#TT0:2:1):(#TT0:2:2)".
Для занесения в сервер телемеханики результатов расчёта используется функция TM(…), но её аргумент должен указывать на один телепараметр. Пример программы на VB Script, присваивающий первым десяти ТИТ КП0:1 значения ТИТ из КП0:2:
for i = 1 to 10
TM("#TT0:1:"+CStr(i)) = TM("#TT0:2:"+CStr(i))
Next
Следует обратить внимание на то, что аргумент для функции ТМ(…) получен программным путём - преобразованием внутренней переменной i в строковую форму и добавлением к статической части ("#TT0:1" и "#TT0:2").
При написании программ на языках VB Script или JavaScript следует иметь ввиду то, что в отличие от языка ЯРД, дорасчетчик не обеспечивает непрерывное повторное исполнение программы, поэтому цикл исполнения надо организовывать средствами языка.
Для того чтобы уменьшить нагрузку на процессор обязательно используйте функцию Sleep(…), которая позволяет программе останавливаться на указанное количество миллисекунд.