NordWind обладает модульной архитектурой.
Состав модулей выглядит следующим образом:
- NordWind - основной модуль программы, обеспечивающий автоматическое создание
общей области памяти для внешних переменных расчётных модулей (общая область, описывающая
массив структур внешних переменных, и общая область памяти, хранящая значения внешних
переменных), загрузку расчетных модулей в память и загрузку начального состояния
контроллера, инициализацию и управление работой программных модулей, реализующих функции
ПО. Реализован в виде отдельного программного исполняемого файла;
- GdbServer - модуль сервера отладки, обеспечивающий доступ с клиентского рабочего
места к переменным контроллера, а также управление (пауза, продолжение, завершение) работы
ПО контроллера. Реализован в виде отдельного исполняемого файла;
- Libnet - модуль, обеспечивающий сетевой обмен между вычислительными устройствами,
объединенными в сеть. Реализован в виде динамически разделяемой библиотеки
libtrend.so;
- Libtrends – модуль, обеспечивающий архивацию сигналов в файлы архива. Реализован
в виде динамически разделяемой библиотеки libtrend.so;
- Libio - модуль связи с внешними устройствами (устройствами ввода/вывода).
Содержит прототипы функций, разрабатываемые для чтения и записи в устройства ввода/вывода.
Библиотека содержит набор сервисных функций, позволяющих обращаться к базе данных сигналов
по именам и производить операции чтения и записи значений сигналов в базу данных.
Реализован в виде динамически разделяемой библиотеки libio.so;
- Libsdk - модуль, содержащий библиотеку функций работы с базой данных сигналов на
вычислительном устройстве. Функции библиотеки можно использовать как из модуля связи с
внешними устройствами Libio, так и из отдельных программ, работающих на вычислительном
устройстве. Библиотека представлена в виде исходных кодов на языке СИ (sdk_lib.h,
sdk.c);
- NetRecSys – модуль восстановления канала управления по соседнему. При старте ПО
копирует области памяти у резервного канала для обеспечения безударной работы канала.
Реализован в виде динамически разделяемой библиотеки libNetInit.so;
- Расчетные модули, полученные в результате автоматической генерации кода в
SimInTech.