В этом примере показано, как использовать блок S-Function Builder для внешней интеграции кода. Пример добавляет привет сообщение к системному журналу.
Прежде, чем запустить этот пример, установите Целевой Пакет поддержки Simulink Real-Time. Пакет поддержки включает инструменты, которые компилируют код, который работает на целевом компьютере.
Используйте кнопку Open Model, чтобы открыть helloworld.slx
модель.
open_system('slrt_ex_helloworld_sfunbuilder');
Дважды кликните helloworld-sfun
Блок s-function. Разработчик S-функции открывает и отображает код S-функции.
/* Includes_BEGIN */
#ifdef SIMULINK_REAL_TIME
#include "slrt_log.hpp"
#endif
/* Includes_END */
/* Externs_BEGIN */
/* extern double func(double a); */
/* Externs_END */
void helloworld_sfun_Start_wrapper(SimStruct *S)
{
/* Start_BEGIN */
/* Start_END */ }
void helloworld_sfun_Outputs_wrapper(const real_T *u0, real_T *y0, SimStruct *S) { /* Output_BEGIN */ // Create custom message static char hellomsg[100]; sprintf(hellomsg,"Hello World! t=%f \n",*u0); // Use macros for platform dependent code #ifdef SIMULINK_REAL_TIME slrealtime::log_info(hellomsg); #else ssPrintf(hellomsg); #endif
// Generic platform independent code *y0 = *u0; /* Output_END */ }
void helloworld_sfun_Terminate_wrapper(SimStruct *S)
{
/* Terminate_BEGIN */
/*
* Custom Terminate code goes here.
*/
/* Terminate_END */
}
Прежде, чем создать модель, можно запустить модель на рабочем столе и просмотреть выходной сигнал в системном логарифмическом средстве просмотра Simulink Real-Time.
Когда вы готовы создать модель, на вкладке Simulink Editor Real-Time, соединиться с целевым компьютером и нажать Run on Target. Или в командном окне MATLAB введите:
tg = slrealtime; connect(tg); model = 'slrt_ex_helloworld_sfunbuilder'; evalc('slbuild(model)'); load(tg,model); start(tg); pause(20); stop(tg);
Откройте журнал состояния целевого компьютера и просмотрите Hello World!
сообщение. На вкладке Simulink Editor Real-Time выберите Prepare> SLRT Explorer. Затем выберите вкладку System Log Viewer. Или в командном окне MATLAB введите:
slrtLogViewer;
Средство просмотра показывает Hello World!
сообщения в системном журнале.
bdclose('all');