Einbindung

Führen Sie zum Einbinden der Funktionalität folgende Schritte durch:

  1. 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                    
  2. 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
  3. Rufen Sie in der Aktion Main des Programms User_PRG die Methode CallMain der Instanz des Funktionsbausteins RealTimeScope auf:
    • FbScope.CallMain();
  4. 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: