Rotational Pulse Mode:
Variable Angular Position, Preset Pulse Width (by angle)
In this mode, the angular position of the pulses is controlled by the algorithm, and the width (duration in degrees) is preset before INIT. See Figure 21.Use the following command sequence:
SOURce:FUNCtion:RPULse (@<ref_channel>),(@<ch_list>) to select the channels that will output angular positioned pulses, and to specify the reference channel.
SOURCe:RPULse:WIDTh[:ANGLe] <degrees>,(@<ch_list>) to preset the pulse width in degrees. The algorithm will control the angular pulse position.
Example of variable position, preset width (by angle):
Set up channel 40 as the reference channel, and channels 45 through 47 to output variable position pulses:
*RST
SENS:FUNC:RVEL 12,MISS,(@140) sense rvel for reference channel SOUR:FUNC:RPULSE (@140),(@145:147) 3 rotational pulse output chans SOUR:RPULSE:WIDT:ANGL 15,(@145:147)preset pulse width to 15 degrees
Algorithm outputs pulses on all three channels with variable position.
ALG:DEF ’ALG1’,’static float Pos1, Pos2, Pos3;O145 = Pos1; O146 = Pos2;O147 = Pos3;’
ALG:SCALAR’ALG1’,’Pos1’,60 | preset ch 45’s pulse pos to 60° |
ALG:SCALAR’ALG1’,’Pos2’,180 | preset ch 46’s pulse pos to 180° |
ALG:SCALAR’ALG1’,’Pos3’,300 | preset ch 47’s pulse pos to 300° |
ALG:UPDATE | . |
INIT | start algorithm execution |
• |
|
• | calculate values for NewPos(n) |
• |
|
ALG:SCALAR 'ALG1','Pos1',NewPos1
ALG:SCALAR 'ALG1','Pos2',NewPos2
ALG:SCALAR 'ALG1','Pos3',NewPos3
ALG:UPDATE
later, adjust channel 45’s position while algorithm running later, adjust channel 46’s position while algorithm running later, adjust channel 47’s position while algorithm running values in update queue sent to variables