Эта процедура показывает, как проследить сигналы с осциллографами файла с помощью модели 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