Einbindung
Führen Sie zum Einbinden der Funktionalität folgende Schritte durch:
- Legen Sie im Programm User_PRG eine Instanz des Funktionsbausteins RealTimeScope an und stellen Sie einen Ringpuffer für die Aufzeichnung bereit:
FbScope:SEW_RealTimeScope.RealTimeScope;
xInitDoneScope:BOOL;
arScopeBuffer:ARRAY[0..524287] OF REAL- Initialisieren Sie in der Aktion Init im Programm User_PRG den Funktionsbaustein RealTimeScope und nehmen Sie die Zuordnung der Aufzeichnungskanäle sowie die Grundeinstellungen für die Messung vor. Der folgende Codeblock zeigt beispielhaft die Initialisierung des RealTimeScope-Bausteins in der Aktion Init des Programms User_PRG sowie die Zuordnung der Aufzeichnungskanäle und die Grundeinstellungen für die Messung:
//Initialization of function block
IF NOT xInitDone THEN
xInitDoneScope:=FbScope.Init(
prBuffer:=ADR(arScopeBuffer),
diBufferSize:=ANY_TO_DINT(SIZEOF(arScopeBuffer)),
diCycleTime:=ANY_TO_DINT(gc_uiTaskCycleTime));
//Default settings of the scope measurement
//Channel assignment
FbScope.MapChannel(0,ADR(rVltgDcLink),'Volt.DC-Link [V]');
FbScope.MapChannel(1,ADR(rPwrMDP),'Power MDP [kW]');
FbScope.MapChannel(2,ADR(rPwrAxis1),'Power Axis1 [kW]');
FbScope.MapChannel(3,ADR(rVelAxis1),'Veloc. Axis1 [rpm]');
//Label in the time column in the .csv file
FbScope.SetTimeCaption('Time[ms]');
//Activation of the measurement channels
FbScope.Measurement.IN.axEnable[0]:=TRUE;
FbScope.Measurement.IN.axEnable[1]:=TRUE;
FbScope.Measurement.IN.axEnable[2]:=TRUE;
FbScope.Measurement.IN.axEnable[3]:=TRUE;
FbScope.Measurement.IN.axEnable[4]:=FALSE;
FbScope.Measurement.IN.axEnable[5]:=FALSE;
FbScope.Measurement.IN.axEnable[6]:=FALSE;
FbScope.Measurement.IN.axEnable[7]:=FALSE;
//Trigger settings
FbScope.Measurement.IN.eTrigSource:=
SEW_RealTimeScope.E_Scope_TrigSource.Channel;
FbScope.Measurement.IN.diTrigChannel:=DINT#0;
FbScope.Measurement.IN.eTrigMode:=
SEW_RealTimeScope.E_Scope_TrigMode.RisingEdge;
FbScope.Measurement.IN.rTrigPosition:=0.25;
FbScope.Measurement.IN.rTrigLevel:=500;
//Time base settings
FbScope.Measurement.IN.diMeasureTime:=DINT#5000;
FbScope.Measurement.IN.diSampleTime:=DINT#1;
//Default settings of the control inputs
FbScope.Measurement.IN.xStart:=FALSE;
FbScope.Measurement.IN.xStop:=FALSE;
//Name of the .csv file
FbScope.Measurement.IN.sFilename:='ScopeData.csv';
//Result of the Init action of the User PRG
xInitDone:=xInitDoneScope;
END_IF- Rufen Sie in der Aktion Main des Programms User_PRG die Methode CallMain der Instanz des Funktionsbausteins RealTimeScope auf:
FbScope.CallMain();- Rufen Sie in der Aktion HighPrio des Programms User_PRG die Methode CallHighPrio der Instanz des Funktionsbausteins RealTimeScope auf:
FbScope.CallHighPrio();
- Wenn Sie sich auf der Steuerung einloggen, stehen nun die Variablen durch Doppelklicken auf das Programm User_PRG im Gerätebaum unter der Instanz des Funktionsbausteins RealTimeScope zur Verfügung: