Тестовый электрический жгут можно настроить с помощью функции, которая запускается после создания или перестроения тестового электрического жгута. В функции выполните сценарий команд для настройки тестового электрического жгута. Например, можно создать функции для:
Подключите пользовательские блоки источника или приемника.
Добавьте подсистему установки для тестирования по замкнутому контуру.
Измените набор конфигурации.
Включить регистрацию сигналов.
Измените время остановки моделирования.
Функция настройки тестового электрического жгута выполняется как обратный вызов после создания тестового электрического жгута или обратный вызов после восстановления. Чтобы настроить тестовый электрический жгут с помощью функции обратного вызова:
Создайте функцию обратного вызова.
В функции используйте программный интерфейс Simulink ® для создания сценария команд для настройки тестового электрического жгута. Дополнительные сведения см. в разделе Функции, перечисленные в разделе Правка программной модели.
Укажите функцию в качестве обратного вызова после создания или восстановления:
Для нового тестового жгута,
При использовании пользовательского интерфейса введите имя функции в метод обратного вызова после создания или метод обратного вызова после восстановления в диалоговом окне «Дополнительные свойства создания кабеля».
Если используется sltest.harness.create, укажите функцию в качестве PostCreateCallback или PostRebuildCallback значение.
Для существующего тестового жгута,
При использовании пользовательского интерфейса введите имя функции в методе обратного вызова после перестроения в диалоговом окне свойств кабельных трасс.
Если используется sltest.harness.set, укажите функцию в качестве PostRebuildCallback значение.
Дополнительные сведения о свойствах тестовых кабелей см. в разделах Создание тестовых жгутов и Выбор свойств.
Объявление функции обратного вызова:
function myfun(x)
myfun - имя функции и myfun принимает входные данные x. x - это структура информации о тестовом кабеле, автоматически создаваемая, когда тестовый кабель использует обратный вызов. Можно выбрать имена функций и аргументов.Например, определите функцию обратного вызова кабеля harnessCustomization.m:
function harnessCustomization(harnessInfo) % Script commands here to customize your test harness. end
harnessInfo - имя структуры и harnessCustomization - имя функции. Когда вызывается операция создания или перестроения harnessCustomization, harnessInfo заполняется информацией о тестовом жгуте, включая маркеры перемещения к модели тестового жгута, главной модели и блокам в тестовом жгуте. Например, использование harnessCustomization в качестве обратного вызова для следующего тестового жгута:

населяет harnessInfo с ручками к трем источникам, одному приемнику, главной модели, модели электрического жгута, владельцу электрического жгута, тестируемому компоненту и подсистемам преобразования:
harnessInfo =
struct with fields:
MainModel: 2.0001
HarnessModel: 1.1290e+03
Owner: 17.0001
HarnessCUT: 201.0110
DataStoreMemory: []
DataStoreRead: []
DataStoreWrite: []
Goto: []
From: []
GotoTag: []
SimulinkFunctionCaller: []
SimulinkFunctionStub: []
Sources: [1.1530e+03 1.1540e+03 1.1550e+03]
Sinks: 1.1630e+03
AssessmentBlock: []
InputConversionSubsystem: 1.1360e+03
OutputConversionSubsystem: 1.1560e+03
CanvasArea: [215 140 770 260]Используйте поля структуры для настройки тестового электрического жгута. Например:
Добавление блока константы с именем ConstInput в тестовый электрический жгут, получить имя модели тестового электрического жгута, а затем использовать add_block функция.
harnessName = get_param(harnessInfo.HarnessModel,'Name'); block = add_block('simulink/Sources/Constant',... [harnessName '/ConstInput']);
Чтобы получить дескрипторы портов для тестируемого компонента, получите 'PortHandles' параметр для harnessInfo.HarnessCUT.
CUTPorts = get_param(harnessInfo.HarnessCUT,'PortHandles');Чтобы получить время остановки моделирования для тестового электрического жгута, получите 'StopTime' параметр для harnessInfo.HarnessModel.
st = get_param(harnessInfo.HarnessModel,'StopTime');Установка 16 второе время остановки моделирования для тестового жгута, установите 'StopTime' параметр для harnessInfo.HarnessModel.
set_param(harnessInfo.HarnessModel,'StopTime','16');
Чтобы просмотреть информацию о кабельном жгуте для тестового электрического жгута:
В функции обратного вызова добавьте строку
disp(harnessInfo)
Создайте или восстановите тестовый электрический жгут с помощью функции обратного вызова.
При создании или перестроении тестового электрического жгута содержимое информационной структуры электрического жгута отображается в командной строке.
В данном примере функция обратного вызова электрического жгута соединяет блок константы с третьим входным компонентом этого примера тестового электрического жгута.

Функция выполняется в соответствии с процедурой:
Получение имени модели кабельных трасс.
Добавление блока константы.
Получение дескрипторов портов для блока константы.
Получите дескрипторы портов для подсистемы преобразования входных данных.
Получите дескрипторы линий, подключенных к подсистеме входного преобразования.
Удалите существующий блок Inport.
Удалите оставшуюся строку.
Подключение новой линии от блока константы к входу 3 подсистемы преобразования входных данных.
function harnessCustomization(harnessInfo) % Get harness model name: harnessName = get_param(harnessInfo.HarnessModel,'Name'); % Add Constant block: constBlock = add_block('simulink/Sources/Constant',... [harnessName '/ConstInput']); % Get handles for relevant ports and lines: constPorts = get_param(constBlock,'PortHandles'); icsPorts = get_param(harnessInfo.InputConversionSubsystem,... 'PortHandles'); icsLineHandles = get_param... (harnessInfo.InputConversionSubsystem,'LineHandles'); % Delete the existing Inport block and the adjacent line: delete_block(harnessInfo.Sources(3)); delete_line(icsLineHandles.Inport(3)); % Connect the Constant block to the input % conversion subsystem: add_line(harnessInfo.HarnessModel,constPorts.Outport,... icsPorts.Inport(3),'autorouting','on'); end

В этом примере показано, как использовать обратный вызов после создания для настройки тестового электрического жгута. Обратный вызов изменяет один источник электрического жгута с блока Inport на блок Constant и включает регистрацию сигнала в тестовом электрическом жгуте.
Модель
В этом примере создается тестовый электрический жгут для Roll Reference подсистема.
open_system('RollAutopilotMdlRef')

Получение пути к функции адаптации кабелей
cbFile = 'harnessSourceLogCustomization.m';
Информация о функции адаптации и тестовом жгуте
Функция harnessSourceLogCustomization изменение третьего блока источника и включение регистрации сигналов на тестируемых входах и выходах компонента. Для считывания функции введите:
type(cbFile)
В качестве альтернативы включению кода регистрации вывода в обратный вызов можно использовать команду «Регистрировать выходные сигналы» в диалоговом окне «Создание нового электрического жгута» или использовать 'LogHarnessOutputs',true в качестве входных данных для sltest.harness.create. Эти опции регистрируют все выходные сигналы тестируемых компонентов в тестовом жгуте и результаты обратного теста для этих сигналов.
Функция harnessSourceLogCustomization использует аргумент. Аргумент представляет собой структуру, содержащую информацию о тестовых кабелях. Информация включает дескрипторы блоков в тестовом жгуте, включая:
Тестируемый компонент
Входные подсистемы
Источники и поглотители
Владелец электрического жгута в главной модели
Например, harnessInfo.Sources В перечислены маркеры перемещения исходных блоков тестовых кабельных трасс.
Создание настраиваемого тестового кабеля
1. Скопируйте функцию адаптации электрического жгута во временную рабочую папку.
copyfile(cbFile,tempdir); cd(tempdir);
2. В RollAutopilotMdlRef модель, щелкните правой кнопкой мыши Roll Reference и выберите «Тестовый жгут» > «Создать для привязки рулона».
3. В диалоговом окне создания кабельных трасс для параметра «Метод обратного вызова после создания» введите harnessSourceLogCustomization.
4. Нажмите кнопку ОК, чтобы создать тестовый электрический жгут. Электрический жгут показывает время остановки регистрации и моделирования сигнала, указанное в функции обратного вызова.
Вы также можете использовать sltest.harness.create для создания тестового электрического жгута, указав функцию обратного вызова с помощью 'PostCreateCallback' пара имя-значение.
sltest.harness.create('RollAutopilotMdlRef/Roll Reference',... 'Name','LoggingHarness',... 'PostCreateCallback','harnessSourceLogCustomization'); sltest.harness.open('RollAutopilotMdlRef/Roll Reference','LoggingHarness');

close_system('RollAutopilotMdlRef',0);
sltest.harness.create | sltest.harness.set