_VM 0 4 июня, 2015 Опубликовано 4 июня, 2015 · Жалоба 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-функцию в других моделях. Поиск решения этой казалось бы простой задачи уже на протяжении нескольких дней не дает результатов. Прошу помощи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 5 июня, 2015 Опубликовано 5 июня, 2015 · Жалоба Такие указания от поддержики не подойдут? Или это не то? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
peselnik 0 5 июня, 2015 Опубликовано 5 июня, 2015 · Жалоба Есть несколько вариантов, как это сделать. Один из вариантов - скомпилировать ваш 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 7 июня, 2015 Опубликовано 7 июня, 2015 · Жалоба А если S- функцию закинуть в reference subsystem, матлаб ее тоже будет перекомпилировать каждый раз? Имхо - нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться