Чтобы написать код TLC для S-функции, необходимо понять процесс компилятора целевого языка для генерации кода. Как описано выше, программное обеспечение Simulink ® генерирует файл, содержащий частичное представление семантики выполнения блок-схемы. model.rtw файл - это ASCII-файл, содержащий структуру данных в виде вложенного набора записей TLC. Записи содержат пары имя/значение свойства. Компилятор целевого языка считывает model.rtw и преобразует его во внутреннее представление.model.rtw
Затем компилятор целевого языка запускает (интерпретирует) файлы TLC, начиная с системного целевого файла, например: grt.tlc. Это точка входа в системные файлы TLC и блокировки, то есть другие файлы TLC, включенные в файл TLC или сгенерированные из него, переданные компилятору целевого языка в его командной строке (grt.tlc). При выполнении кода TLC в системных и блочных целевых файлах он использует, добавляет и изменяет существующие пары имя/значение свойства и записи, первоначально загруженные из файл. model.rtw
model.rtw СтруктураСтруктура файл отражает структуру блок-схемы:model.rtw
Для каждой невиртуальной системы в модели имеется соответствующая системная запись в файл.model.rtw
Для каждого невиртуального блока в невиртуальной системе существует запись блока в в соответствующей системе.model.rtw
Основная структура являетсяmodel.rtw
CompiledModel {
System {
Block {
DataInputPort {
...
}
DataOutputPort{
...
}
ParamSettings {
...
}
Parameter {
...
}
}
}
}Для каждого вхождения данного блока в модели существует соответствующая запись блока в файл. Системный целевой файл TLC-код проходит цикл через записи блоков и вызывает функции в соответствующем целевом файле блоков для этого типа блоков. Для встроенных S-функций он вызывает встроенный файл TLC.model.rtw
Существует способ получения информации, специфичной для блока (информация о внутреннем блоке, в отличие от входов, выходов, параметров и т.д.), в записи блока в для блока с помощью model.rtwmdlRTW функция в функции C MEX блока.
Среди прочего, mdlRTW функция позволяет записать настройки параметров (ParamSettings), то есть уникальная информация, относящаяся к этому блоку. Для настроек параметров в файле блочного TLC прямой доступ к этим полям осуществляется из блочного кода TLC и может использоваться для изменения сгенерированного кода по желанию.