MultiCam

Description

To use a multi-cam you have to create an SMG.ST_MotionJob with its ET_MotionJobType set to MultiCam. Further you have to create an PDL.ST_MultiCam - object containing the number of cam points and the array of cam points (0,…,MAX_NO_OF_SEG=32). Its other members (diUserTableId, lrYPeriod) aren't used in the SMG. Then you have to set a reference to the ST_MultiCam - structure in the motion job. Thereafter you can just add this motion job to the SMG with TakeJob resp. TakeJobAll.

Caution_Color.gifCAUTION

INVALID DATA

Do not perform an online change while a job of type ET_MotionJobType.MultiCam is in the job buffer list or active in FB_SoMotionGenerator.

Failure to follow these instructions can result in injury or equipment damage.

Motion jobs of type ET_MotionJobType.MultiCam need additional data from a PDL.ST_MultiCam structure. The motion job has therefore a reference (pointer) to PDL.ST_Multicam in ST_MotionJob.ST_Cam.rstMultiCam. When the job is commanded to FB_SoMotionGenerator via the TakeJob method, the job parameters are copied into the internal job buffer (including the reference to ST_MultiCam). The reference to the ST_MultiCam data is not updated during the online change.

Example:

PDL.ST_MultiCam stMultiCam;
stMultiCam,diNumberOfCamPoints := 2;
stMultiCam.astCamPoint[0].lrX := 0.0;
stMultiCam.astCamPoint[0].lrY := 23.0;
stMultiCam.astCamPoint[0].etCamType := PDL.ET_CamType.Straight;
stMultiCam.astCamPoint[1].lrX := 180.0;
stMultiCam.astCamPoint[1].lrY := 100.0;
stMultiCam.astCamPoint[2].lrM := 1.0;
stMultiCam.astCamPoint[2].lrK := 0.0;
stMultiCam.astCamPoint[1].etCamType := PDL.ET_CamType.Poly5Com;
stMultiCam.astCamPoint[2].lrX := 360.0;
stMultiCam.astCamPoint[2].lrY := 23.0;
stMultiCam.astCamPoint[2].lrM := 0.0;
stMultiCam.astCamPoint[2].lrK := 0.0;

SMG.ST_MotionJob stMotionJob;
stMotionJob.etJobType := SMG.ET_MotionJobType.MultiCam;
stMotionJob.stCam.rstMultiCam REF=m_stMultiCam;

SMG.FB_SoMotionGenerator fbSoMG;
fbSoMG.TakeJob(i_etChannel := SMG.ET_Channel.A, iq_stMotionJob := stMotionJob);

Here is a multi-cam over three points (two segments) on the right corresponding path. The blue trace is the master (in endless mode [0;360]), in grey the slave position.

n in case of a multi-cam

G-SE-0069358.1.gif-high.gif