v3.4 to v3.4u1 Change Log (February 12, 2020)

Utility and Installer Changes

  1. Fixed issue in which PU error and lost link error could not be cleared from the communication information screen of EcConfigurator.

  2. Fixed issue in which an incorrect definition was added to the ENI file generated from EcConfigurator when there are two or more SM elements in the ESI file.

  3. Fixed issue in which EcConfigurator failed to start if the format of the ESI file was invalid and the setting was made to read the ESI file at startup.

  4. If the following Windows Update is not installed on the PC, a warning dialog will be displayed from the WMX3 installer and the RTX installation will be stopped. *In this case, RTX must be installed manually.

    • 64Bit WMX3 + Windows7 : KB3033929, KB2921916

    • 32Bit WMX3 + Windows7 : KB3033929

  5. For the EcPacketAnalyzer utility, removed .paf file support. Only the .pcap file format is now supported.

New Functions

  1. Added optional argument to SetPSOConfig and GetPSOConfig for PSO options. Added allowTriggerOnStart PSO option, which will execute the PSO output if StartPSO is called while the axis is within 0.5 user units of a target point.

  2. Expanded user memory size (maxUserMemoryBytes) from 248KB to 2480KB. The SetMBytes, SetMBits, and GetMBits can still read or write 248KB (maxUserMemoryReadWriteBytes) of user memory data with one function call.

  3. Modified minimum allowable value for profile parameters such as velocity, acceleration, deceleration, acceleration jerk, deceleration jerk, starting velocity, end velocity, and minimum velocity from 1 user unit to 1e-6 (0.000001) user units.

  4. Modified minimum allowable value for certain parameters (such as homing velocity) from 1 user unit to 1e-6 (0.000001) user units.

  5. Expanded the I/O space size from 1450 bytes / 1450 bytes to 8000 bytes / 8000 bytes.

  6. Added support for overrides from Pos to Jog, from Jog to Pos, and from Jog to StartPosToJog. Axes that are in states that are not supported for Jog commands, such as triggered motion (before the trigger condition is satisfied) and pause/resume, cannot be overridden to Jog.

  7. Added StopOnLastBlock API buffer option. Enabling this option will cause the API buffer to change to the stop state when the last block in the buffer is executed.

  8. Added LimitSwitchDirection parameter for interchanging the positive and negative hardware limit switch signals.

  9. Added 19 -Ex functions to the UserMemory module for accessing the user memory shared memory directly.

  10. Added GetUserMemoryAddress function for obtaining a pointer to the user memory shared memory.

  11. Added SleepAtEngine function to .NET library.

  12. Allowed to specify [ExtraInfo] section in eni file. The contents under the [ExtraInfo] will not be parsed by engine.

  13. Supported functions of EcApi_Win in C++ Builder library.

  14. Allowed to set “resetinput” and “resetoutput” in .def file to reset input and output when slave become offline.

  15. Added fast pdo read when specify “fastpdoread:1” in eni file.

Specs Changes

  1. Renamed the axisSel argument of a few CoreMotion functions to pAxisSelection for consistency with the other functions with the same argument. No change needs to be made in the user code.

  2. Modified .NET CLR interface of new classes that inherit the EventInput and EventOutput classes added in WMX3 v3.4 to better match the original C++ functions.

  3. The command position is no longer set equal to the feedback position when the gear ratio, axis polarity, and single turn parameters are changed.

  4. Renamed SetUpdateFreq of platform module library to SetUpdatePeriod, as the argument has units of time (ms) and not frequency (Hz).

Bug Fixes

  1. The ConstantDec profile did not return errors but did not move the axis when specified for Jog/Velocity commands. ConstantDec profile type will now return the ProfileTypeNotSupported error when used for Jog/Velocity commands.

  2. Fixed issue in which ConstDec profile required the velocity to be specified, although the specifications state that it only refers to the endVelocity and startVelocity. (If the velocity was smaller than the end velocity, the end velocity was reduced to equal the velocity.)

  3. Fixed issue in which Simulate functions other than single axis simulations did not calculate the correct results when using TwoVelocity profiles.

  4. Fixed issue in which if a function in the Event module returns an error defined after EventInputModuleIdNotMatched when called from an API buffer, the incorrect error code was recorded in the API buffer status.

  5. Fixed issue in which the PitchErrorCompensationIsDisabled error was registered as the PitchErrorCompensationDataIsNotSet error and the PitchErrorCompensationDataIsNotSet error was registered as the PitchErrorCompensationIsDisabled error when returned from a function executed from the API buffer and recorded to the API buffer status.

  6. Fixed issue in which setting events with the new SetEvent function of WMX3 v3.4 with null parameters caused Event functions to return the ResourceInUse error until the engine is restarted.

  7. Fixed issue in which the GetStdOutDataSize function returned the UnknownError error code.

  8. Fixed issue in which the GetEvent function could not be called from the .NET CLR library because passing in child classes to ref arguments is prohibited.

  9. Fixed issue in which FastBlending and Smoothing type linear interpolation overrides did not trigger when used with the SameTimeCompletion, StaggeredDistanceCompletion, and StaggeredTimeCompletion trigger motion. Now, the linear interpolation override will trigger when the previous linear interpolation finishes.

  10. Fixed issue for Blending and FastBlending linear interpolation overrides in which the profile time statuses (profileCompletedTime, profileRemainingTime, profileTotalTime, profileAccTime, profileDecTime, profileCruiseTime) for the overridden linear interpolation or for the deceleration motion could be returned if GetStatus is called after the override interpolation starts, but before the overridden interpolation finishes. Now, the profile time statuses for the override interpolation are returned when GetStatus is called at this timing.

  11. Fixed issue in which if the master axis of a CoreMotion sync slave axis is executing an AdvancedMotion motion function, the command position of the sync slave followed the command position of the master axis with a delay of 1 cycle, reducing the sync performance.

  12. Fixed Stop function to stop FastBlending and Blending interpolation overrides using the deceleration specified for the override interpolation and overridden interpolation. Previously, the axes were stopped using quick stop.

  13. Fixed issue in which if the StartPosToJog(PosToJogCommand *pPosToJogCommand) (single axis or multi-axis) function is executed as an override, the axis velocity was suddenly set to 0 before the command was started.

  14. Fixed issue in which the virtual axis could not be released under the following conditions, eventually causing interpolation commands to return the NoFreeVirtualAxis error if the following is repeated:

    • Smoothing type linear interpolation override with trigger condition. If the commanded axes are stopped with quick stop, dec stop, or servo off, the virtual axis is not released until the trigger condition is satisfied.

    • Blending/FastBlending type linear interpolation override. If the commanded axes are stopped with quick stop, dec stop, or servo off before the override interpolation begins, the virtual axis is not released.

  15. Fixed issue in which the GetHardwareTouchprobeStatus function could return an error when the specified axis is 64-127 and the axis 0 or axis 1 software touch probe is in use.

  16. Fixed issue in which the following class members were not zero initialized in the constructor:

    • the triggerSource and channel members of the HardwareTouchProbeStatus class

    • the torque member of the TriggerTrqCommand class

    • the imlibVersion, imlibRevision, numLicensedAxes, and options members of the EngineInfo class

  17. Fixed issue for Path Interpolation with Rotation in which if the “use local center of rotation” option is used, setting localCenterOfRotationDirection to a value other than the allowed values of 1 or -1 caused the path to be incorrect. Entering a direction of 1+4N (N is an integer) results in the same motion as 1, and entering a direction of -1+4N results in the same motion as -1. Entering a direction of 0+4N or 2+4N result in a +/- 90 degree offset being added to the rotational axis compared to the directions of 1 and -1.

  18. Fixed issue from WMX3 v3.3u7 in which calling the Pause function for an axis that is executing a single axis position command (such as StartPos), and then calling Resume before the axis stops caused the axis command position to suddenly changed and the axis did not reach the correct target position.

  19. Fixed issue in which the OverridePathIntplVelMultiplier and OverridePathIntpl3DVelMultiplier functions waited until the motion has started regardless of the value of the API Wait Until Motion Start parameter if 0 is specified for the velocity.

  20. Fixed issue in which the actualVelocity status was incorrect (the sign was reversed) when the Axis Polarity parameter is set to Reverse and the Velocity Monitor Source parameter is set to Actual.

  21. Fixed issue for multi-axis StartPosToJog and StartMovToJog functions with the PosToJogCommand argument, in which the trigger condition for the first specified axis was used as the trigger condition for all axes.

  22. Fixed issue in which UserMemory module Get functions returned the IoAddressOutOfRange error instead of the UserMemoryAddressOutOfRange error when the specified address is out of range.

  23. Fixed issue in which the pitch error compensation amount was not correctly calculated for single turn axes while executing a position command that moves the axis outside the pitch error compensation encoder range.

  24. Fixed issue in which the axis motion could become unpredictable or a blue screen could occur if Path Interpolation with Rotation and Path Interpolation with Look Ahead are used at the same time with the same channel number.

  25. Fixed issue in which the engine could crash if the AddPathIntplWithRotationCommand is called with the numPoints set to greater than the size of the command array passed to the function.

  26. Fixed issue in which the home position of an absolute encoder axis was not set if the Absolute Encoder Home Offset is exactly 0.

  27. Fixed issue for Blending and FastBlending linear interpolation overrides in which the Profile Remaining Milliseconds, Profile Completed Milliseconds, and Profile Total Milliseconds statuses could be incorrect if the remaining time of the override interpolation motion is less than the remaining time of the original interpolation motion (Blending) or the time to decelerate the original interpolation motion to a stop (FastBlending). Now, these statuses will be calculated from the original interpolation motion if the remaining time of the original interpolation motion is longer.

  28. Fixed sync group issue in which setting a sync group servo on and then immediately stopping communication caused the sync group servos to turn on the next time communication is started.

  29. Fixed issue in which setting the home offset of a single turn axis (such as with StartHome or SetCommandPos) repeatedly with unusual parameters such as home offsets much larger than the single turn encoder count caused the home offset to continue increasing and potentially lose precision.

  30. Fixed issue for TouchProbe home type in which if the home switch is on at the beginning of homing, the axis reversed until the home switch is off, and then homing was aborted.

  31. Fixed issue in which sync slave axes did not resolve pitch error compensation when starting gantry homing.

  32. Fixed issue for the SetOutBytes function of the .NET library in which if the specified array size is smaller than the size of the passed array, the function was executed with the smaller size instead of returning an error.

Sample Code Changes

  1. Deleted the place where unnecessary parameters were set in Profile class.

Python API Changes

  1. Fixed the following functions not running properly.

    • ImportSetAndAll

    • OverridePos

  2. Fixed issue in which the trigger motion did not operate correctly when the output type of the TriggerEvent class is SetReg.