Перейти к содержанию
    

SIMULINK, S-Function. Как отдать заказчику модель без исходных кодов C/C++ S-функции..

MATLAB 2014b, Simulink, Realtime windows target.

 

Наш коллектив разработал для заказчика аппаратуру (часть системы управления).

Заказчик желает использовать ее в своих экспериментах в Simulink.

Для демонстрации работоспособности аппаратуры мы изготовили простую модель симулинк с одной S-функцией.

Основные потроха S-функции написаны на C++ и производят вычисления по сложному алгоритму.

Сама S-функция изготавливается при помощи инструмента S-Function builder.

Обмен данными между аппаратурой и S-функцией реализован при прмощи стандартных компонентов симулинк UDP Packet input и UDP Packet output.

Модель компилируется (компилятор С++ MSVC2013) и корректно запускается.

С точки зрения демонстрации все хорошо, но нам не хочется отдавать исходные коды S-функции.

Если просто удалить файлы исходных кодов, то модель запускается до тех пор, пока в ней что-нибудь не поменять.

После каких-либо изменений матлаб пытается пересобрать S-функцию и натыкается на отсутствие исходных кодов.

Для упрощения жизни заказчика мы не против, что бы он использовал нашу S-функцию в своих экспериментах, пока не выродит свои более продвинутые алгоритмы.

Поэтому хотелось иметь возможность изменять модель-пример, или применять S-функцию в других моделях.

Поиск решения этой казалось бы простой задачи уже на протяжении нескольких дней не дает результатов.

Прошу помощи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть несколько вариантов, как это сделать.

 

Один из вариантов - скомпилировать ваш C++ код отдельно в виде библиотеки (dll), а затем вызывать библиотечные функции из S-функции.

О том, как вызывать функции из разделяемой библиотеки в Simulink, я написал здесь: http://www.mathworks.com/matlabcentral/fil...ink_shrlib.html

 

S-Function Builder это не лучший подход в данном случае, когда нужно передавать S-функцию заказчику. Я бы рекомендовал Legacy Code Tool или блок MATLAB System (больше информации по ссылке выше).

 

===

Центр компетенций MathWorks в России

www.MATLAB.ru

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А если S- функцию закинуть в reference subsystem, матлаб ее тоже будет перекомпилировать каждый раз? Имхо - нет.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...