Информация о форматах Simulink MDL и SLX?

какая информация об этих форматах? Какие инструменты доступны для анализа этих файлов?

3 ответов


обновление (2015/04/02)

новая версия библиотека Simulink для Java имеет полную поддержку формата SLX. Документация не является явной, но исходный код содержит все сведения для ее анализа.

ответ

Как ответил Роб,библиотека Simulink для Java поддерживает формат MDL файла Simulink, а также может анализировать содержимое потока состояний. Библиотека является открытым исходным кодом, но единственной документацией является исходный код.

в настоящее время (по состоянию на сентябрь 2014 года) мы работаем над поддержкой SLX и ожидаем выпустить это в ближайшие 1 или 2 месяца. Если вам нужен код до этого времени, не стесняйтесь обращаться ко мне.

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

PS: Я бы опубликовал это как комментарий к ответу Роба, но, похоже, у меня недостаточно репутации для этого: (

раскрытие информации: я один из разработчиков упомянутой библиотеки.


очень мало информации в открытом доступе. Вот то немногое, что я нашел:--2-->

MDL и SLX являются проприетарными форматами файлов MathWorks для хранения моделей Simulink. SLX был представлен в Simulink R2012a и сделал формат файла по умолчанию в R2012b. Помимо файловой структуры, содержимое файлов SLX и MDL очень похоже. Например, пары ключ-значение выглядят одинаково между двумя форматами. Люди часто говорят, что разбор этих файлов-плохая идея, потому что они могут меняться между версиями Simulink (см., например, am304 и мои комментарии выше), но я не видел много доказательств этого.

формат MDL, похоже,был разработан в MathWorks. кажется, был MDL-парсер для python, но он был ограничен функциональностью и сайт по состоянию на май 2014.

файл SLX-это zip-файл, содержащий коллекцию XML-файлы, большая часть спецификации модели хранится в simulink/blockdiagram.xml. @am304 указал на эту информацию из сайт MathWorks:

SLX обжатый пакет который соответствует к открытой упаковке Стандарт совместимости конвенций (OPC). Модель магазинов SLX информация с использованием Unicode ® UTF-8 в XML и других международных форматы. Сохранение моделей Simulink в формате SLX:

  • обычно уменьшает размер файла по сравнению с MDL. Уменьшение размера файла между MDL и SLX зависит от модели.

  • решает некоторые проблемы в предыдущих выпусках с загрузкой и сохранением MDL-файлов, содержащих корейские и китайские символы.

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

вот еще несколько ссылок, кроме тех, что приведены в тексте выше:
как конвертировать simulink файлов в XML
http://www.scootersoftware.com/vbulletin/showthread.php?t=11568
http://blog.xogeny.com/blog/dont-zip/
http://blog.developpez.com/matlab/p11469/simulink-2/nouveau-format-slx-pour-les-modeles-simulink


какая информация об этих форматах?

MathWorks имеет некоторые документация для формата файла MDL в R2007b.

SLX-файлы-это контейнеры zipfile, внутренняя структура которых основана на OOXML ' s OPC. Файлы SLX содержат один или несколько XML-файлов, внутренняя структура которых аналогична структуре MDL-файла, но в формате XML. Кроме того, двоичные ресурсы, такие как графика может храниться в отдельных JPG-файлах, а не в текстовой кодировке и непосредственно встроена, как в MDL-файле.

оба формата меняются по мере добавления новых функций в Simulink, но вы можете ожидать, что SLX будет менее стабильным, поскольку внутренняя файловая структура MathWorks refactors SLX. Например, в R2014b MathWorks начала разбивать секции традиционно монолитной блокдиаграммы.xml в отдельные файлы, такие как stateflow.xml и graphicalInterface.XML.

какие инструменты доступны для анализа этих файлов?

есть несколько общедоступных библиотек / API для синтаксического анализа Simulink, но я не использовал ни одну из них, поэтому я не уверен, насколько хорошо они работают.

вы также можете найти других, выполнив поиск анализатор Simulink.

Если ни один из них не делает трюк, некоторые коммерческие инструменты анализируют MDL и SLX напрямую, а не полагаются на API MATLAB. Вы можете узнать о лицензировании парсера, используемого в каком-либо коммерчески доступном инструменте Simulink.