PSO Transformation Functions
Optional Purchase Necessary: On some Aerotech drives, more than one transformation module is a paid option because your drive must support two and three dimensional PSO distance tracking. Review your ordering information to see the number of dimensions that your drive supports.
The PSO Transformation module has up to four transformation channels, which let you do simple mathematical operations on two feedback sources. The output of each transformation channel can then be selected as an input to the PSO Distance and PSO Window modules. You can also select each transformation channel output as an input to another transformation channel.
Configuring the Transformation Module
HARDWARE: When you specify the input to PSO as primary or auxiliary feedback, the drive that you use with PSO will only support encoders that give you incremental feedback. This condition applies to the PsoDistanceConfigureInputs()
, PsoTransformationConfigure()
, and PsoWindowConfigureInput()
functions.
Table: Supported Feedback Types
Input (Enum Values) | Feedback Type | Encoder Multiplier Options |
---|---|---|
IncrementalEncoderSquareWave | Primary | Encoder multiplier options do not apply. |
Auxiliary | Encoder multiplier options do not apply. | |
IncrementalEncoderSineWave | Primary | -MX2, -MX3, and -MX4 (for XR3 drives only) |
Auxiliary | -MX4 (for XR3 drives only) | |
AbsoluteEncoderEnDatwithSineWaveIncremental | Primary | -MX2, -MX3, and -MX4 (for XR3 drives only) |
AbsoluteEncoderBiSSwithSineWaveIncremental | Primary | -MX2, -MX3, and -MX4 (for XR3 drives only) |
Use the PsoTransformationConfigure()
function to specify the source of the feedback signals that you want the module to transform and the transformation functions that you want to apply on the specified feedback signals. Automation1 supports up to four transformation channels. Use the PsoTransformationConfigure()
function arguments to specify the transformation components:
-
$transformationChannel - selects the transformation output channel
-
$inputA and $inputB - selects the feedback signals to transform
-
$transformationFunction - specifies the function to apply on the inputs
function PsoTransformationConfigure($axis as axis, $transformationChannel as integer, $inputA as PsoTransformationInput, $inputB as PsoTransformationInput, $transformationFunction as PsoTransformationFunction)
Configures a PSO input transformation channel.
Arguments
$axis The axis on which to configure the transformation channel.
$transformationChannel The transformation channel to configure.
$inputA The first input to the transformation.
$inputB The second input to the transformation.
$transformationFunction The function of the transformation.
Use the PsoTransformationInput
enumeration to select the PSO transformation inputs for your drive.
enum PsoTransformationInput
GL4PrimaryFeedbackAxis1Encoder0 = 100 GL4PrimaryFeedbackAxis2Encoder0 = 101 GL4IfovFeedbackAxis1 = 102 GL4IfovFeedbackAxis2 = 103 GL4AuxiliaryFeedbackAxis1 = 104 GL4AuxiliaryFeedbackAxis2 = 105 GL4SyncPortA = 106 GL4SyncPortB = 107 GL4DrivePulseStreamAxis1 = 108 GL4DrivePulseStreamAxis2 = 109 XL4sPrimaryFeedback = 110 XL4sAuxiliaryFeedback = 111 XL4sSyncPortA = 112 XL4sSyncPortB = 113 XL4sDrivePulseStream = 114 XR3PrimaryFeedbackAxis1 = 115 XR3PrimaryFeedbackAxis2 = 116 XR3PrimaryFeedbackAxis3 = 117 XR3PrimaryFeedbackAxis4 = 118 XR3PrimaryFeedbackAxis5 = 119 XR3PrimaryFeedbackAxis6 = 120 XR3AuxiliaryFeedbackAxis1 = 121 XR3AuxiliaryFeedbackAxis2 = 122 XR3AuxiliaryFeedbackAxis3 = 123 XR3AuxiliaryFeedbackAxis4 = 124 XR3AuxiliaryFeedbackAxis5 = 125 XR3AuxiliaryFeedbackAxis6 = 126 XR3SyncPortA = 127 XR3SyncPortB = 128 XR3DrivePulseStream = 129 XC4PrimaryFeedback = 130 XC4AuxiliaryFeedback = 131 XC4SyncPortA = 132 XC4SyncPortB = 133 XC4DrivePulseStream = 134 XC4ePrimaryFeedback = 135 XC4eAuxiliaryFeedback = 136 XC4eSyncPortA = 137 XC4eSyncPortB = 138 XC4eDrivePulseStream = 139 XC6ePrimaryFeedback = 140 XC6eAuxiliaryFeedback = 141 XC6eSyncPortA = 142 XC6eSyncPortB = 143 XC6eDrivePulseStream = 144 XL5ePrimaryFeedback = 145 XL5eAuxiliaryFeedback = 146 XL5eSyncPortA = 147 XL5eSyncPortB = 148 XL5eDrivePulseStream = 149 XC2PrimaryFeedback = 150 XC2AuxiliaryFeedback = 151 XC2DrivePulseStream = 152 XC2ePrimaryFeedback = 153 XC2eAuxiliaryFeedback = 154 XC2eDrivePulseStream = 155 XL2ePrimaryFeedback = 156 XL2eAuxiliaryFeedback = 157 XL2eSyncPortA = 158 XL2eSyncPortB = 159 XL2eDrivePulseStream = 160 XI4PrimaryFeedbackAxis1 = 161 XI4PrimaryFeedbackAxis2 = 162 XI4PrimaryFeedbackAxis3 = 163 XI4PrimaryFeedbackAxis4 = 164 XI4AuxiliaryFeedbackAxis1 = 165 XI4AuxiliaryFeedbackAxis2 = 166 XI4AuxiliaryFeedbackAxis3 = 167 XI4AuxiliaryFeedbackAxis4 = 168 XI4SyncPortA = 169 XI4SyncPortB = 170 XI4DrivePulseStreamAxis1 = 171 XI4DrivePulseStreamAxis2 = 172 XI4DrivePulseStreamAxis3 = 173 XI4DrivePulseStreamAxis4 = 174 iXC4PrimaryFeedback = 175 iXC4AuxiliaryFeedback = 176 iXC4SyncPortA = 177 iXC4SyncPortB = 178 iXC4DrivePulseStream = 179 iXC4ePrimaryFeedback = 180 iXC4eAuxiliaryFeedback = 181 iXC4eSyncPortA = 182 iXC4eSyncPortB = 183 iXC4eDrivePulseStream = 184 iXC6ePrimaryFeedback = 185 iXC6eAuxiliaryFeedback = 186 iXC6eSyncPortA = 187 iXC6eSyncPortB = 188 iXC6eDrivePulseStream = 189 iXL5ePrimaryFeedback = 190 iXL5eAuxiliaryFeedback = 191 iXL5eSyncPortA = 192 iXL5eSyncPortB = 193 iXL5eDrivePulseStream = 194 iXR3PrimaryFeedbackAxis1 = 195 iXR3PrimaryFeedbackAxis2 = 196 iXR3PrimaryFeedbackAxis3 = 197 iXR3PrimaryFeedbackAxis4 = 198 iXR3PrimaryFeedbackAxis5 = 199 iXR3PrimaryFeedbackAxis6 = 200 iXR3AuxiliaryFeedbackAxis1 = 201 iXR3AuxiliaryFeedbackAxis2 = 202 iXR3AuxiliaryFeedbackAxis3 = 203 iXR3AuxiliaryFeedbackAxis4 = 204 iXR3AuxiliaryFeedbackAxis5 = 205 iXR3AuxiliaryFeedbackAxis6 = 206 iXR3SyncPortA = 207 iXR3SyncPortB = 208 iXR3DrivePulseStream = 209 GI4DrivePulseStreamAxis1 = 210 GI4DrivePulseStreamAxis2 = 211 GI4DrivePulseStreamAxis3 = 212 iXC2PrimaryFeedback = 213 iXC2AuxiliaryFeedback = 214 iXC2DrivePulseStream = 215 iXC2ePrimaryFeedback = 216 iXC2eAuxiliaryFeedback = 217 iXC2eDrivePulseStream = 218 iXL2ePrimaryFeedback = 219 iXL2eAuxiliaryFeedback = 220 iXL2eSyncPortA = 221 iXL2eSyncPortB = 222 iXL2eDrivePulseStream = 223 iXI4PrimaryFeedbackAxis1 = 224 iXI4PrimaryFeedbackAxis2 = 225 iXI4PrimaryFeedbackAxis3 = 226 iXI4PrimaryFeedbackAxis4 = 227 iXI4AuxiliaryFeedbackAxis1 = 228 iXI4AuxiliaryFeedbackAxis2 = 229 iXI4AuxiliaryFeedbackAxis3 = 230 iXI4AuxiliaryFeedbackAxis4 = 231 iXI4SyncPortA = 232 iXI4SyncPortB = 233 iXI4DrivePulseStreamAxis1 = 234 iXI4DrivePulseStreamAxis2 = 235 iXI4DrivePulseStreamAxis3 = 236 iXI4DrivePulseStreamAxis4 = 237 FLEXPrimaryFeedbackAxis1 = 238 FLEXPrimaryFeedbackAxis2 = 239 FLEXPrimaryFeedbackAxis3 = 240 FLEXPrimaryFeedbackAxis4 = 241 FLEXAuxiliaryFeedbackAxis1 = 242 FLEXAuxiliaryFeedbackAxis2 = 243 FLEXAuxiliaryFeedbackAxis3 = 244 FLEXAuxiliaryFeedbackAxis4 = 245 FLEXSyncPortA = 246 FLEXSyncPortB = 247 FLEXDrivePulseStreamAxis1 = 248 FLEXDrivePulseStreamAxis2 = 249 FLEXDrivePulseStreamAxis3 = 250 FLEXDrivePulseStreamAxis4 = 251 iFLEXPrimaryFeedbackAxis1 = 252 iFLEXPrimaryFeedbackAxis2 = 253 iFLEXPrimaryFeedbackAxis3 = 254 iFLEXPrimaryFeedbackAxis4 = 255 iFLEXAuxiliaryFeedbackAxis1 = 256 iFLEXAuxiliaryFeedbackAxis2 = 257 iFLEXAuxiliaryFeedbackAxis3 = 258 iFLEXAuxiliaryFeedbackAxis4 = 259 iFLEXSyncPortA = 260 iFLEXSyncPortB = 261 iFLEXDrivePulseStreamAxis1 = 262 iFLEXDrivePulseStreamAxis2 = 263 iFLEXDrivePulseStreamAxis3 = 264 iFLEXDrivePulseStreamAxis4 = 265 XA4PrimaryFeedbackAxis1 = 266 XA4PrimaryFeedbackAxis2 = 267 XA4DrivePulseStreamAxis1 = 268 XA4DrivePulseStreamAxis2 = 269 iXA4PrimaryFeedbackAxis1 = 270 iXA4PrimaryFeedbackAxis2 = 271 iXA4DrivePulseStreamAxis1 = 272 iXA4DrivePulseStreamAxis2 = 273 XA4PrimaryFeedbackAxis3 = 274 XA4PrimaryFeedbackAxis4 = 275 XA4DrivePulseStreamAxis3 = 276 XA4DrivePulseStreamAxis4 = 277 iXA4PrimaryFeedbackAxis3 = 278 iXA4PrimaryFeedbackAxis4 = 279 iXA4DrivePulseStreamAxis3 = 280 iXA4DrivePulseStreamAxis4 = 281 XA4SyncPortA = 282 XA4SyncPortB = 283 iXA4SyncPortA = 284 iXA4SyncPortB = 285 XA4AuxiliaryFeedback = 286 iXA4AuxiliaryFeedback = 287 PsoTransformationChannel0Output = 288 PsoTransformationChannel1Output = 289 PsoTransformationChannel2Output = 290 PsoTransformationChannel3Output = 291 GL4PrimaryFeedbackAxis1Encoder1 = 292 GL4PrimaryFeedbackAxis2Encoder1 = 293 end |
Use the PsoTransformationFunction
enumeration to select the transformation function for the inputs.
enum PsoTransformationFunction
None = 0 Average = 1 Sum = 2 Difference = 3 end |
Enabling the PSO Transformation Module
Use the PsoTransformationOn()
function to enable a transformation channel. Each PSO Transformation module channel is disabled by default, even if you issue the PsoTransformationConfigure()
function.
function PsoTransformationOn($axis as axis, $transformationChannel as integer)
Enables a PSO input transformation channel.
Arguments
$axis The axis on which to enable the transformation channel.
$transformationChannel The transformation channel to enable.
Use the PsoTransformationOff()
function to disable the transformation channel.
function PsoTransformationOff($axis as axis, $transformationChannel as integer)
Disables a PSO input transformation channel.
Arguments
$axis The axis on which to disable the transformation channel.
$transformationChannel The transformation channel to disable.