Example 2 - function block – Yaskawa MotionWorks IEC Toolboxes User Manual
Page 329

Math Toolbox
MotionWorks IEC61131-3 Toolboxes: 2013-09-13
316
Correction:=REM((-RegistrationData.BufferNonCyclic[TempUsePointer] - RegistrationData.SensorOffset),
CamMasterCycle) + ((ControlData.EndSyncPosition - ControlData.StartSyncPosition) / LREAL#2.0);
Duration:=RegistrationData.SensorDistance - ((ControlData.EndSyncPosition -
ControlData.StartSyncPosition) / LREAL#2.0) - (ActualPositionNonCyclic -
RegistrationData.BufferNonCyclic[TempUsePointer]);
ELSE
(* These calculations are designed for reciprocating cam profiles (Slave net change = zero each cycle, Out
and Back *)
Correction:= - REM( (REM(RegistrationData.BufferCyclic[TempUsePointer], CamMasterCycle) +
(RegistrationData.SensorDistance - ControlData.StartSyncPosition - ((ControlData.EndSyncPosition -
ControlData.StartSyncPosition) / LREAL#2.0))), CamMasterCycle);
Duration:=RegistrationData.SensorDistance - ControlData.StartSyncPosition - ((ControlData.EndSyncPosition
- ControlData.StartSyncPosition) / LREAL#2.0);
END_IF;
Example 2 - Function Block