exponenta event banner

Запуск и завершение действий в функциональном блоке C

В этом примере показано, как использовать блок C Function для интеграции унаследованных функций C, имеющих действия запуска и завершения.

В этом примере унаследованные функции C определены в fault.h, и реализовано в fault.c.

Чтобы разрешить вызов функций C из блока C Function, в модели укажите файл заголовка и исходный файл на панели Configuration Parameters > Simulation Target. Эта модель открывает файл журнала, записывает в него данные, а затем закрывает файл журнала. openLogFile вызывается в разделе Начальный код и closeLogFile вызывается в разделе Terminate Code блока C Function. В разделе «Код вывода» incAndLogFaultCounter вызывается функция. Прототипом унаследованных функций являются:

  • void* openLogFile()

  • closeLogFile(void* fid)

  • incAndLogFaultCounter(void *fid, unsigned int counter, double time)

где, void *fid является указателем файла, unsigned int counter - счетчик отказов, и double time указывает время.

В этом примере порты функционального блока C конфигурируются следующим образом:

  • Указатель файла, возвращенный openLogFile функция и счетчик отказов являются постоянными символами блока C Function.

  • Вход блока C Function отображается во времени.

model = 'slexCFunctionStartTerm';
open_system(model);
sim(model);
slcc('clearCustomCodeModules');