Runtime / Операционная система Windows
 
Упрощенная схема работы
При старте программы в командной строке передается имя файла конфигурации и происходит его обработка. В соответствии с файлом конфигурации происходит создание всех FBD блоков (объектов) и их инициализация, выделяется память под узловые переменные и их начальная установка.
Далее исполняется основной непрерывный цикл работы в котором:
- Запрашиваются значение входных каналов (это может быть данные смежных узлов, либо данные верхнего уровня);
- Исполняется цепочка FBD блоков в порядке описанном файлом конфигурации, т.е. выполняется логика заложенная конфигурацией;
- Читаются команды поступившие к Horizont (это могут быть запросы данных от смежных узлов, запросы сервера, запросы конфигуратора) и записываются в буфер обработчика команд;
- Обработка поступивших команд и запись результата обработки в буфер передачи. Утилита для просмотра текущей конфигурации и других параметров Horizont - Runtime во время исполнения программы: See_Horizont_Runtime;

 

Узловые переменные
Узловые переменные необходимы для хранения значения (промежуточных значений). Количество узловых переменных и их начальное состояние определяется конфигурацией. Память под узловые переменные выделяется в момент загрузки конфигурации и освобождается при её выгрузке. Узловые переменные являются связующим элементом между входными и выходными каналами FBD блока.
Входные каналы (каналы IN)
Входные каналы обеспечивают возможность получения внешних данных. Это значение каналов смежных узлов или данные с «сервера значения каналов» необходимые для организации связи с верхним уровнем.
При загрузке конфигурации создаются Socket соединения в соответствии с определенными параметрами IP и Port. В основном цикле работы контролируется состояние Socket соединений, при неактивном соединении происходит его переподключение. В зависимости от периода запроса канала Period запрашиваются значение каналов по идентификатору канала ID, при получении результата он сохраняется в узловой переменной определенной в iVal. См рис:

 

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

 

Функциональные блоки (FBD блоки)

Функциональный блок это законченный фрагмент программного кода реализующий определенную задачу. Каждая реализация HorizontRuntime поддерживает свой список возможных функциональных блоков. Список поддерживаемых блоков и их структуру можно посмотреть из соответствующего XML файла. Количество копий функционального блока в конфигурации не ограничено. Число и схема связи функциональных блоков определяется файлом конфигурации.
Все функциональные блоки могут связаны между собой только по средствам узловых переменных. Все входа и выхода FBD блоков связаны с узловыми переменными. Структура FBD блока хранит только указатели на узловые переменные. При исполнении FBD блока по соответствующим указателям будут считаны или записаны данные.

 

HORIZONT Automatics