Эта процедура показывает, как проследить сигналы с осциллографами файла с помощью модели xpcosc
Simulink®. Вы, должно быть, уже создали и загрузили приложение реального времени для этой модели. Это также принимает, что вы используете последовательную ссылку.
Файл данных сигнала может быстро увеличиться в размере. Чтобы измерить темп роста файла, исследуйте размер файла между запусками. Если файл данных сигнала растет вне свободного места на диске, данные сигнала повреждается.
Создайте целевой объект tg
это представляет целевой компьютер TargetPC1
Ввод:
tg = SimulinkRealTime.target('TargetPC1')
Чтобы получить список сигналов, введите:
tg.ShowSignals = 'on'
Командное окно отображает список свойств целевого объекта для доступных сигналов. Например, эти сигналы являются частью модели xpcosc
:
Target: TargetPC1 Connected = Yes Application = xpcosc . . . Scopes = 1 NumSignals = 7 ShowSignals = on Signals = INDEX VALUE Type BLOCK NAME LABEL 0 0.000000 DOUBLE Gain 1 0.000000 DOUBLE Gain1 2 0.000000 DOUBLE Gain2 3 0.000000 DOUBLE Integrator 4 0.000000 DOUBLE Integrator1 5 0.000000 DOUBLE Signal Generator 6 0.000000 DOUBLE Sum . . .
Начните запускать свое приложение реального времени. Ввод:
start(tg)
Создайте осциллограф, который будет отображен на целевом компьютере. Например, чтобы создать осциллограф с идентификатором 2
и имя объекта осциллографа sc2
Ввод:
sc2 = addscope(tg, 'file', 2)
Никакое имя первоначально не присвоено FileName
. После того, как вы запустите осциллограф, Simulink Real-Time™ присваивает имя для файла, чтобы получить данные сигнала. Это имя обычно состоит из имени объекта осциллографа, ScopeId
, и начинающиеся буквы от первого сигнала, добавленного к осциллографу.
sc2 = Simulink Real-Time Scope Application = xpcosc ScopeId = 2 Status = Interrupted Type = File NumSamples = 250 NumPrePostSamples = 0 Decimation = 1 TriggerMode = FreeRun TriggerSignal = -1 TriggerLevel = 0.000000 TriggerSlope = Either TriggerScope = 2 TriggerSample = 0 FileName = unset WriteMode = Lazy WriteSize = 512 AutoRestart = off DynamicFileName = off MaxWriteFileSize = 536870912 Signals = no Signals defined
Добавьте сигналы в объект scope. Например, чтобы добавить Integrator1
и Signal Generator
Ввод:
addsignal(sc2, [4,5])
sc2 = Simulink Real-Time Scope Application = xpcosc ScopeId = 2 Status = Interrupted Type = File . . . FileName = unset WriteMode = Lazy WriteSize = 512 AutoRestart = off DynamicFileName = off MaxWriteFileSize = 536870912 Signals = 4 : Integrator1 5 : Signal Generator
Целевой компьютер отображает следующие сообщения:
Scope: 2, signal 4 added Scope: 2, signal 5 added
После того, как вы добавляете сигналы в объект scope, осциллограф файла не получает значения сигналов, пока вы не запускаете осциллограф.
Прежде, чем запустить осциллограф, скопируйте ранее полученные данные в компьютер разработчика. Когда осциллограф файла запускается, перезаписи программного обеспечения ранее полученные данные в файлах шаблона имени или указанного имени. Частично перезаписанный файл или файл, который открыт, но оставлен незаписанный, теряют свое исходное содержимое.
Запустите осциллограф. Например, чтобы запуститься определяют объем sc2
Ввод:
start(sc2)
Командное окно отображает список свойств объектов осциллографа. FileName
присвоен имя файла по умолчанию, чтобы содержать данные сигнала для осциллографа файла. Это имя обычно состоит из имени объекта осциллографа, ScopeId
, и начинающиеся буквы от первого сигнала, добавленного к осциллографу.
Application= xpcosc ScopeId = 2 Status = Pre-Acquiring Type = File . . . FileName = c:\sc2Integ.dat Mode = Lazy WriteSize = 512 AutoRestart= off DynamicFileName = off MaxWriteFileSize = 536870912 Signals = 4 : Integrator1 5 : Signal Generator
Остановите осциллограф. Ввод:
stop(sc2)
Остановите приложение реального времени. В Командном окне введите:
stop(tg)
SimulinkRealTime.fileSystem
| SimulinkRealTime.utils.bytes2file
| SimulinkRealTime.utils.getFileScopeData
| plot