Структура и общий алгоритм функционирования программного обеспечения прибора

Программное обеспечение (ПО) прибора работает под управлением операционных систем реального времени (ОСРВ) QNX Neutrino и КПДА.00002-01. ПО обеспечивает выполнение алгоритма на приборе с заданным временным тактом, получения удалённого доступа к данным прибора, управление программного обеспечения (ПО) прибора.

ПО состоит из следующих модулей:

  • Диспетчер расчётных модулей (процессов) DispExemod – обеспечивает автоматическое создание общей областей памяти для внешних переменных расчётных модулей (общая область описывающая массив структур внешних переменных и общая область памяти, хранящая значения внешних переменных), их загрузку, загрузку начального состояния прибора.

  • Сервер отладки GdbServer – обеспечивает доступ с клиентского рабочего места (РМ) к переменным прибора, а также управление (пауза, продолжение, завершение) работы ПО прибора.

  • Расчётные модули – обеспечивают обработку переменных прибора согласно алгоритму, заложенному в исходной расчётной схеме. Исполняемый код расчетных модулей собирается на основе Си-кода, сгенерированного генератором кода SimInTech.

ПО прибора может функционировать в двух режимах:

  • штатном;

  • отладочном.

Отличия этих режимов состоят в том, что в отладочном режиме можно получить удалённый доступ к переменным и управлять расчётом через оболочку SimInTech. В штатном режиме удалённое управление и доступ к переменным невозможен.

К режиму отладки относится код только сервера обмена данными GdbServer. В штатном режиме вы можете его не копировать (или удалить с прибора). Всё остальное остаётся без изменений. В обязательном порядке необходимы кроме исполняемых файлов ещё и файлы описания внешних переменных расчётных модулей *.extvars.table и файл конфигурации загрузки default.conf потому что по ним формируется рабочая область памяти при загрузке диспетчера расчётных модулей.

Остальное (GdbServer и файлы *.intvars.table) - можно удалить, если этих компонентов нет на приборе, то доступ извне к константам и состояниям невозможен. Для запуска ПО в штатном режиме расчётные модули и диспетчер повторно собирать не нужно.

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

DispExemod > /dev/null или же DispExemod > / dev / nul 2>&1 &

Алгоритм функционирования ПО прибора:



Структура и взаимосвязи ПО прибора: