L_MC2P_CamRefFromStruct

Dieser FB generiert online aus den übergebenen Kurvenscheibendaten (Randbedingungen, Kenndaten oder Stützstellen) eine MC_CAM_REF-Struktur für den FB MC_CamIn .

Die Instanz des FBs

  • ist eine Schnittstelle vom Typ MC_CAM_REF
  • kann direkt mit einem Eingang vom Typ MC_CAM_REF eines anderen FBs verbunden werden, z. B.
    • Eingang CamTable des FB MC_CamIn
    • Eingang CamTable1 des TM L_TT1P_FlexCamBase
    Programmierbeispiel:
    MC_CamIn1.CamTable:= L_MC2P_CamRefFromStruct1

 

 

 

L_MC2P_CamRefFromStruct

 

 

 

BOOL

-

xExecute

xDone

-

BOOL

STRING(50)

-

sName

xBusy

-

BOOL

L_MC2P_CamType

-

eCamType

xError

-

BOOL

UDINT

-

udiCamDataCount

eErrorID

-

L_IE1P_Error

L_MC2P_IMotionData

-

itfCamData

L_MC2P_
InterpolationQuality

-

eInterpolationQuality

LREAL

-

lrXStartPos

LREAL

-

lrXEndPos

 

 

 

 

 

 

 

 

Eingänge

Name

Datentyp

Info/Einstellmöglichkeiten

xExecute

BOOL

FALSE ä TRUE

Generierung starten.

sName

STRING(50)

Name der Kurvenscheibe

eCamType

L_MC2P_CamType

Art der Kurvenscheibendaten:

  • XYVA: Beschreibung über Randbedingungen lrX, lrY, lrYs, lrYss
  • DataPointsNonEquiXYA: Beschreibung über Stützpunkttabelle mit lrX, lrY, lrYss
  • DataPointsEquiYA: Beschreibung über äquidistante Stützstellen mit lrY, lrYss
  • DataPointsNonEquiXY: Beschreibung über Stützpunkttabelle mit lrX, lrY
  • DataPointsEquiY: Beschreibung über Stützstellentabelle mit lrY

udiCamDataCount

UDINT

Anzahl der übergebenen Kurvenelemente

itfCamData

L_MC2P_IMotionData

Kurvenscheibendaten

eInterpolationQuality

L_MC2P_InterpolationQuality

Interpolationsart (optional für Stützstellentabellen):

  • Linear: Interpolation mit Funktion 1. Ordnung (Gerade)

lrXStartPos

LREAL

X-Startposition der Kurve

lrXEndPos

LREAL

X-Endposition der Kurve

Ausgänge

Name

Datentyp

Wert/Bedeutung

xDone

BOOL

TRUE

Generierte Kurvenscheibendaten sind verfügbar.

xBusy

BOOL

TRUE

Abarbeitung läuft.

xError

BOOL

TRUE

Es ist ein Fehler aufgetreten. Details siehe eErrorID .

eErrorID

L_IE1P_Error

Wenn xError = TRUE: Fehlernummer zum aufgetretenen Fehler.

Beispiel: Kurve mit drei Punkten erstellen
Instanzen anlegen
L_MC2P_CamDataXYVA_1: ARRAY[0..2] OF L_MC2P_CamDataXYVA;
L_MC2P_CamREfFromStruct_1: L_MC2P_CamREfFromStruct;
MC_CamIn_1: MC_CamIn;
FBs aufrufen und Kurve abfahren
// 3 Punkte innerhalb der Kurve 360 Units definieren
L_MC2P_CamDataXYVA_1[0].lrX  := 0.0;
L_MC2P_CamDataXYVA_1[0].lrY  := 0.0;
L_MC2P_CamDataXYVA_1[0].lrYs  := 1;
L_MC2P_CamDataXYVA_1[0].lrYss  := 0.0;
L_MC2P_CamDataXYVA_1[0].eLawOfMotion := L_MC2P_LawOfMotion.Poly5;
L_MC2P_CamDataXYVA_1[1].lrX  := 180.0;
L_MC2P_CamDataXYVA_1[1].lrY  := 100.0;
L_MC2P_CamDataXYVA_1[1].lrYs  := 0;
L_MC2P_CamDataXYVA_1[1].lrYss  := 0.0;
L_MC2P_CamDataXYVA_1[1].eLawOfMotion := L_MC2P_LawOfMotion.Poly5;
L_MC2P_CamDataXYVA_1[2].lrX  := 360.0;
L_MC2P_CamDataXYVA_1[2].lrY  := 360.0;
L_MC2P_CamDataXYVA_1[2].lrYs  := 1;
L_MC2P_CamDataXYVA_1[2].lrYss  := 0.0;
L_MC2P_CamDataXYVA_1[2].eLawOfMotion := L_MC2P_LawOfMotion.Poly5;
L_MC2P_CamRefFromStruct_1(
xExecute:= TRUE,
sName:= 'Kurve1' ,
udiCamDataCount:= 3 ,
itfCamData:= (L_MC2P_CamDataXYVA_1[0]),
eCamType:= L_MC2P_CamType.XYVA ,
eInterpolationQuality:= L_MC2P_InterpolationQuality.Linear,
lrXStartPos:= 0.0,
lrXEndPos:= 360.0,
xDone=> ,
xBusy=> ,
xError=> ,
eErrorID=> );

MC_CamIn_1(
Master:= Master,
Slave:= Slave,
Execute:= TRUE,
ContinuousUpdate:= ,
MasterOffset:= ,
SlaveOffset:= ,
MasterScaling:= ,
SlaveScaling:= ,
MasterStartDistance:= ,
MasterSyncPosition:= ,
StartMode:=,
MasterValueSource:=,
CamTable:= L_MC2P_CamRefFromStruct_1,
BufferMode:=,
DirectChange:= ,
ClutchTime:= ,
VelocityDiff:= ,
Acceleration:= ,
Deceleration:= ,
Jerk:= ,
ScalingOffsetMode:=,
Periodic:= TRUE,
MasterAbsolute:= ,
SlaveAbsolute:= ,
InSync=> ,
Busy=> ,
Active=> ,
CommandAborted=> ,
Error=> ,
ErrorID=> ,
EndOfProfile=> );

Kurven zum Beispiel