exponenta event banner

Инструмент

Создание объекта прибора в реальном времени

Описание

Один slrealtime.Instrument объект передает данные сигнала от моделирования в реальном времени, выполняемого на целевом компьютере, на компьютер разработки.

Создание

instrument_object = slrealtime.Instrument('appName') создает пустой объект прибора для существующего приложения реального времени appName.

Пример: Создание объекта инструмента для применения в режиме реального времени

instrument_object = slrealtime.Instrument() создает пустой объект прибора без назначенного приложения реального времени.

Пример: Создание объекта инструмента без приложения в реальном времени

Свойства

развернуть все

AxesTimeSpan свойство управляет осью времени (ось x) для всех осей в пользовательском интерфейсе App Designer. Если установлено значение Inf, значение сигнала от приложения реального времени, запущенного на целевом компьютере, отображается в осях. При изменении на значение, например 10, ось времени для всех осей устанавливается на это значение, например 10 секунд.

AxesTimeSpanOverrun свойство управляет ответом для осей в пользовательском интерфейсе App Designer при переполнении данных AxesTimeSpan значение свойства. Когда AxesTimeSpan значение свойства - Inf, AxesTimeSpanOverrun свойство не имеет эффекта. Когда AxesTimeSpan значение свойства устанавливается в секундах, ось времени для всех осей устанавливается на конечную ширину (временной диапазон). Когда значение сигнала из приложения реального времени превышает наибольшее значение времени на оси X, оси могут либо прокручиваться, либо переноситься.

Можно задать значение Application для существующего приложения реального времени при создании объекта Instrument или можно задать значение позже. После записи значения в это свойство оно становится доступным только для чтения. Невозможно изменить значение свойства Application непосредственно после создания объекта. Значение свойства может быть изменено только после создания объекта с помощью validate функция.

Функции объекта

addInstrumentedSignalsПоиск измеренных сигналов и добавление их в объект прибора в реальном времени
addSignalДобавление сигнала для потоковой передачи, который будет доступен при обратном вызове
clearScalarAndLineDataОчистка данных нижестоящих элементов объекта прибора в реальном времени
connectCallbackДобавление обратного вызова, отвечающего на новые данные
connectLineПодключить сигнал потоковой передачи к осям
connectScalarДобавление сигнала для потоковой передачи на скалярный дисплей
deleteУдаление объекта прибора в реальном времени
generateScriptСоздание сценария, создающего скалярные и осевые элементы управления из сигналов, скаляров и линий в объекте прибора в реальном времени
getCallbackDataForSignalПолучение данных обратного вызова для сигнала в объекте прибора реального времени
removeCallbackУдален обратный вызов из объекта прибора в реальном времени
removeSignalСнять сигнал с объекта прибора реального времени
validateПроверка сигналов в объекте КИПиА

Примеры

свернуть все

Создание объекта инструмента hInst для существующего приложения реального времени appName.

appName = 'slrt_ex_tank.mldatx';
hInst = slrealtime.Instrument(appName);

Создание объекта инструмента hInst без назначения приложения реального времени. Этот подход полезен при создании графического интерфейса пользователя, и файл MLDATX приложения в реальном времени недоступен.

hInst = slrealtime.Instrument();

В этом примере показано, как создать объект Instrument, применить методы объекта Instrument и удалить объект.

inst = slrealtime.Instrument();

inst.connectScalar(app.Numeric1, 'ScalarDouble1');
inst.connectScalar(app.Gauge1,   'ScalarDouble1');
inst.connectScalar(app.Numeric2, "ScalarDouble2");
inst.connectScalar(app.Gauge2,   "ScalarDouble2");

inst.connectScalar(app.Text1, "myString", 'Callback', @(t,d)string(d));
inst.connectScalar(app.Text2, "myString", 'Callback', @(t,d)string(d), 'Decimation', 2);

inst.connectScalar(app.Lamp0, "TrafficLight", 'PropertyName', 'Visible', 'Callback', @(t,d)string(slprivate('onoff',d==hSampleEnum.Green)));
inst.connectScalar(app.Lamp1, "TrafficLight", 'PropertyName', 'Visible', 'Callback', @(t,d)string(slprivate('onoff',d==hSampleEnum.Yellow)));
inst.connectScalar(app.Lamp2, "TrafficLight", 'PropertyName', 'Visible', 'Callback', @(t,d)string(slprivate('onoff',d==hSampleEnum.Red)));

ls2 = slrealtime.instrument.LineStyle();
ls2.Marker = '*';
ls2.MarkerSize = 4;
ls2.Color = 'black';
inst.connectLine(app.Axes1, "SineWave", 'ArrayIndex', 5, 'LineStyle', ls2, 'Callback', @(t,d)(d+app.Offset.Value));
inst.connectLine(app.Axes1, "SineWave");

inst.connectCallback(@(o,e)customPlot(o,e,app)); % plot sine waves added together with amplitudes 1, 3 and 5

tg=slrealtime;
tg.addInstrument(inst);

inst.AxesTimeSpan = 10;

inst.AxesTimeSpanOverrun = 'wrap';

inst.AxesTimeSpan = Inf;

tg.removeInstrument(inst);
Представлен в R2020b