v3.2 to v3.2u1 Change Log (September 3, 2018)
New Functions
Added EqualTrq, GreaterTrq, and LessTrq input types to the TriggerEvent class.
Added invert parameter to 36 input function types of TriggerEvent. This parameter, like the same name parameter in the Event class, will invert the logic of the trigger condition.
Added NandIOBit, NorIOBit, XnorIOBit, NandMBit, NorMBit, and XnorMBit event input types to the Event class.
Added 48 Set~ and Get~ functions to the Io and UserMemory classes. These Set~ and Get~ functions set or get analog data (1-4 bytes of data represented as a single value).
Added library supported to Python 3.6.
Specs Changes
Modified circular interpolations with the a motion of less than 1e-6 radian (6e-5 degrees) to return success but not execute the motion, for consistency with other motion and interpolation functions. Previously, an error was returned.
Modified sync groups to clear the sync group home done state when starting homing.
Added axisError member to the SyncGroupStatus class. This status is set to 1 when enabling/disabling a sync group fails due to one of the group axes being in another sync group. Previously, the syncError member of SyncGroupStatus was set to 1 when this error occurs.
Fixed compatibility issue in which libraries could not be compiled with the /GL (while program optimization) option when using a version of Visual Studio other than Visual Studio 2012.
Renamed sync group functions as follows: AddAxisToGroup -> AddAxisToSyncGroup, RemoveAxisFromGroup -> RemoveAxisFromSyncGroup, SetEnabledGroups -> EnableSyncGroup, GetGroupStatus -> GetSyncGroupStatus.
Unified most standard position and interpolation commands to have a minimum movement distance of 1e-6, instead of having a different value for each type of command. In particular, linear interpolations had a minimum movement distance of 1 previously.
The DeviceType argument to CreateDevice is now optional. The default device type when it is not specified is DeviceTypeNormal.
Modified Wait functions to return an error if the limit switch (hard/near/ext/soft) is triggered while waiting.
Modified API Buffer Wait function to return an error if the limit switch (hard/near/ext/soft) is triggered while waiting.
Added null parameter checks to several functions with pointer inputs that did not previously check for null values.
Renamed “byte” arguments of Set~ and Get~ functions in the Io and UserMemory classes to “addr”.
Modified Api Buffer execution to eliminate the 0-1 cycle jitter that sometimes occurred when calling a sequence of motion functions with Wait/Sleep functions between them.
Removed following unused error codes: AxisServoOnSinceCommStart, HomeTypeNotSupportedInGantryMode, ProfileTimeout, SyncGroupIsEnabled, SyncGroupAxisIsAnotherGroup, LicenseValidationFailed, LicenseValidationUnknown, LicenseValidationNotWMXorMXRLicense, OpenSharedMemoryError, AxisNotDirectControlState, PointCountAboveMaximum, SamplePointCountAboveMaximum, CommandedAxisMismatch, UserMemoryErrorCode::UserMemoryError, LogErrorCode::LogError, IOErrorCode::IoError.
Moved following error codes from WMX3Api to CoreMotion: NotConstLinearVelocitySlave, ConstLinearVelocityMinRTooSmall, ConstLinearVelocityPositiveMaxRTooSmall, ConstLinearVelocityNegativeMaxRTooSmall, InvalidCurrentVelocity, NotPausedDuringHoming, OpenWaitEventError, ParameterFileParseError, SyncGroupIDOutOfRange, SyncGroupMasterAxisUndefined, ReferenceAxisOfActiveCompensation, MasterPositionNotAscendingOrder, CurrentEmergencyStopLevelIsHigher, AcyclicStatusError, PositionNotWithinSingleTurnEncoderCount, TimeBetweenPointsTooClose, TotalTimeTooSmall, DimensionOutOfRange, PointCountBelowMinimum, AxisExecutingPhaseShift, AxisSettingSyncGearRatio, NotSynchronizedToSpecifiedMasterAxis, OpenWaitSharedMemoryError, WaitEngineError.
Moved following error codes from WMX3Api to Log: CurrentlyCollectingLogData, CurrentlyNotCollectingLogData.
The Rewind function in the ApiBuffer class now returns an error when the API buffer cannot be rewound to the first command because the first command was overwritten by another command added to the buffer after the first command was executed.
Modified standard relative position commands (those started by functions such as StartMov) to define the target position as relative to the target position of the current position command when executed as an override. Previously, the target position was relative to the cyclic command position at the time that the function is called.
Bug Fixes
Fixed issue for Single Turn axes in which the feedback position became incorrect when the single turn wrap around count becomes negative.
Fixed issue in which helical interpolations caused the axis command position to become incorrect when the rotational movement has zero distance. An error is returned in this case.
Fixed issue in which an error was returned when defining an Event with the output function type set to None.
Fixed issue for the ECAM function with the master type set to Encoder. The encoder wrap around sometimes did not register, and the slave axis could suddenly move backwards by the encoder range amount. This occurred when the wrap around occurs exactly from encoder value 0xff, 0xffff, 0xffffff, or 0xffffffff (depending on the encoder size).
Fixed CoordinatedPos function issue in which the follower motion sometimes did not start. Fixed CoordinatedPos function issue in which the follower axis motion differed between when the follower axis has a smaller or larger axis number than the master axis. Fixed CoordinatedPos function to move the follower axis immediately to its target position if the master axis is already at its target position when the command is executed (previously, the follower axis did not move).
Fixed because the constant name of the array element number of variable “Ouput” of “MemoryLogIOData” was wrong. Since the constant value is the same as before the change, there is no change in the behavior.