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.
|
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.
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