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
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_
|
- |
|
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 |
Art der Kurvenscheibendaten:
|
|
|
udiCamDataCount UDINT |
Anzahl der übergebenen Kurvenelemente |
|
|
itfCamData L_MC2P_IMotionData |
Kurvenscheibendaten |
|
|
eInterpolationQuality |
Interpolationsart (optional für Stützstellentabellen):
|
|
|
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 |
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