v3.4u5 to v3.5 Change Log (March 4, 2022)

Utility and Installer Changes

  1. The UI of the WMX3 installer has been redesigned.

  2. Fixed a problem in which commands were duplicated in repeat operation on WOS.

  3. Fixed garbled characters when the system locale is set to a language other than the supported ones on WOS.

  4. Fixed a problem when ESI is reloaded on WOS.

  5. Fixed a problem in which a decimal point could not be entered in the gear setting for gantry control on WOS.

  6. MotionScope has been updated to the official version.

  7. ConfigureNIC supports the MECHATROLINK-4 platform.

  8. Fixed issue in which ENI editor exclude PDOs that WMX3 cannot handle when loading PDO entries from ESI files on EcConfigurator.

  9. Fixed issue in which settings in the Def file generation screen are not correctly reflected in ec_network.def on EcConfigurator.

  10. Added a function to switch between online network information and offline information (information defined in ec_network.def) in the UI of network definition settings in the Def file generation screen on EcConfigurator.

  11. Fixed issue in which a part of ec_network.def generation settings not be reflected or reflected incorrectly in ec_network.def on EcConfigurator.

  12. Fixed issue in which SlotIndexIncrement and DependOnSlot attributes of ESI file are not reflected in PDO mapping index and CoE InitCmd index on EcConfigurator.

  13. Fixed issue in which the check box status on the ENI file generation screen not be reflected in the ENI file in on EcConfigurator.

  14. Added a warning message when a user tries to uncheck the checkbox for PDO mappings with Mandatory attribute loaded from ESI file and the checkboxes are enabled by default when these PDO mappings are loaded on EcConfigurator.

  15. Fixed issue in which some of the IO slaves loaded from the ESI file are classified as servos on EcConfigurator.

  16. Changed a function to check communication and engine status before overwriting ec_network.def and eni files on EcConfigurator.(Unified with WOS specifications)

  17. Fixed an issue in which CUI files were not generated correctly even if Digital Output was defined in the PDO mapping on CCLinkConfigurator.

  18. Fixed an issue in which it was not possible to read CSP+ files of the same slave that had the same Version but different DisplayVersionValue on CCLinkConfigurator.

New Functions

  1. The Python library provides partial support for the ecApi and the cclinkApi.

  2. Added class constructors with parameters that were defined in the C++ library to the .NET library.

  3. Added setup functions of the Profile class that were defined in the C++ library to the .NET library.

  4. Added the ExecQuickStop function to the CyclicBuffer class. This function stops an axis executing the cyclic buffer using the quick stop deceleration.

  5. Supported Pdo logging by MemoryLog function in EtherCAT platform.

  6. Supported state transit timeout setting in eni file in EtherCAT platform.

  7. Supported hs, pls and nls define in ENI file in EtherCAT platform.

  8. Added SDO complete download command in ENI file in EtherCAT platform.

  9. Added PDO read/write APIs for WMX3 SDK pub data in EtherCAT platform.

  10. Added ApiBuffer::USleep function in which the sleep time is specified in microseconds.

  11. Added overloading of SetMemoryLog function, which allows the setting of the Memory Log function by specifying the derived class of the LogInput class as an argument, just like the Data Log function. Added overloading of the GetMemoryLogData function in order to get the collected Memory Log data after setting up with this SetMemoryLog function. For this GetMemoryLog function, specify the derived class of the newly added LogOutput class as an argument.

  12. Added SetMemoryLogOption function to set Memory Log function options.

  13. Added GetMemoryLogOption function to get Memory Log function options.

  14. Added ResetMemoryLogOption function to reset Memory Log function.

  15. Added user velocity offset and user torque offset for use with the user RTDLL. These values have been added to the CoreMotionAxisStatus class returned by the GetStatus function.

Specs Changes

  1. Removed constructor for the AxisCompensation class that sets the values of the member variables, as this class is not used to pass values to any function.

  2. Modified the velocity command when using the ParabolicVelocity profile to accelerate in 1 cycle if the acceleration time is 0 and decelerate in 1 cycle if the deceleration time is 0. Previously, the axis accelerated in 1 cycle if the otherwise unused acceleration is 0 and the axis decelerated in 1 cycle if the otherwise unused deceleration is 0. Previously, an error was returned if the acceleration time or deceleration time is set to 0.

  3. Modified the RemainingDistance and CompletedDistance trigger type, event condition, and API buffer condition so that if the condition evaluates to true at the end of motion, it evaluates to true one cycle earlier. This is the same timing at which the RemainingTime condition with a time of 0 evaluates to true.

  4. Modified the Execute, Rewind, Halt, and Clear functions of the ApiBuffer class to return the PrevSettingsBeingApplied error if called immediately after another Execute, Rewind, Halt, or Clear function and the previous command has not completed yet. Previously, the command of the second function overwrote the command of the first function and the command of the first function was not executed.

  5. Changed max number of axes for spline interpolation from 6 to 8.

  6. Changed max number of axes for PVT interpolation from 4 to 8.

  7. Modified the Pos Set and Delayed Pos Set statuses to consider wraparound for single turn axes. For example, an axis with a Pos Set Width of 1000, a Single Turn Encoder Count of 10000, and a target position of 500 previously set the Pos Set flag at positions 0-1500, but will now set the flag at positions 9500-10000 and 0-1500.

  8. Modified the error code classes of each module (such as CoreMotionErrorCode) of the .NET library to inherit the WMX3CLRApi::ErrorCode class for consistency with the C++ library.

  9. Modified the argument type of the SetMAddress function of the UserMemoryLogInput class of the Python library from IOAddress to MAddress.

  10. Changed errors for path interpolation and 3D path interpolation for clarity as follows:

    -If the specified command does not fit in the buffer (possibly because the number of points has increased due to auto smoothing), the ChannelNotEnoughSpace error is returned. Previously, the PointCountOutOfRange error was returned.

    -If the specified command does not move the axis (possibly because the specified points have target positions equal to the current position of the axis), the NoMotion error is returned. Previously, the PointCountOutOfRange error was returned.

  11. Changed the string representations of the following functions call extracted from the API log file to “SetLog|SetMemoryLog|SetMemoryIOLog|SetMemoryMLog|SetCustomLog”.

    -SetLog

    -SetMemoryLog

    -SetMemoryIOLog

    -SetMemoryMLog

    -SetCustomLog

  12. Changed the file loading process so that comments can be used not only at the beginning of lines but also within lines in Simulation platform, EtherCAT platform, and CCLink platform.

  13. Extended max number of IO seg define to 64 in EtherCAT platform.

  14. Added complete parameter to SDO related APIs for complete type SDO download/upload in EtherCAT platform.

  15. Added AoESender parameter to AoE related APIs to specify sender net id and sender port in EtherCAT platform.

  16. Changed ResetTransmitStaticInfo to ResetTransmitStatisticsInfo in EtherCAT platform.

  17. Update WMX3 SDK pub data only when set updatePubData manually in EtherCAT platform.

  18. Modified path interpolation, 3D path interpolation, path interpolation with rotation, PVT, PVT interpolation, PT, VT, AT, and spline commands to start the motion one cycle earlier. (Modified the timing at which the motion starts to match position commands, linear interpolation commands, circular interpolation commands, path interpolation with look ahead commands, etc.)

  19. Modified position, velocity, and jog command overrides to switch to the override motion 1 cycle earlier. This allows more accurate control of the override timing when using API buffer conditions or trigger motion to time the override, when using planned velocity override, when overriding using events, or when timing the override by polling from a real time application.

  20. Added “type” argument to SetCustomLog funtion.

  21. Renamed the buffSize parameter of the OpenCyclicBuffer function to numOfCycles to more accurately describe the parameter. Removed the OpenCyclicBuffer function overload with the sizeUnit argument.

Bug Fixes

  1. Fixed issue that occurred from WMX3 v3.4u3 in which specifying 0 for the multiplier of OverridePathIntplVelocityMultiplier and OverridePathIntplVelocityMultiplier3D did not pause the axis.

  2. Fixed issue in which acyclic statuses were not cleared when restarting the engine with RestartEngine. Until communication was started again, GetStatus returned the value of the acyclic status immediately before calling RestartEngine.

  3. Fixed issue from v3.4u5 in which if the gear ratio, axis polarity, or single turn parameter is changed from the default value before starting communication for the first time since starting the engine, the initial position was set to 0 instead of the initial encoder feedback position.

  4. Fixed issue in which specifying more than 4096 points in a spline function with a nonzero starting position caused the command positions of the spline to become incorrect.

  5. Fixed issue in which the sign of the torque feedback status was reversed (a positive torque command yielded a negative torque feedback) if the axis polarity parameter is set to reverse.

  6. Fixed issue for the .NET library in which calling CloseDevice could crash the user application.

  7. Fixed issue for the Python library in which calling the SetCustomLog function with IoLogInput or UserMemoryLogInput class as the argument could occur an error.

  8. Fixed issue for PVT, PVT interpolation, PT, VT, and AT commands in which the PointCountOutOfRange error was returned if any of the specified additional commands contain less than 2 points. This error is now returned only if the first command contains less than 2 points.

  9. Fixed issue for cyclic buffer in which the command velocity status was not returned by the GetStatus function and could not be logged if the CyclicBuffer module is loaded after the CoreMotion module in Module.ini.

  10. Fixed issue for the PMMotion in which a negative number could not be set for target speed in SetVelProfiles, SetVelProfiles and StartVel functions, and for target torque in SetTrqProfile and SetTrqProfiles functions.

  11. Fixed an issue in which an error would occur when the SetUpdatePeriod function is executed before executing the GetMasterInfo function if the status channel fails to open when the object is created on SimuApi, EcApi, and CCLinkApi.

  12. Fixed an issue in which the settings that specify arbitrary strings, such as EniFile and CuiFile settings, do not load properly if certain strings are included in EtherCAT platform and CCLink platform.

  13. Fixed an issue in which time synchronization did not work properly, causing communication to fail in CCLink platform.

  14. Fixed an issue in which the PM axis was not specified and the cyclic axis was disabled if the axis number was specified in the UserDef function or UseIPAsAxisIndex was used when PP mode was enabled in CCLink platform.

  15. Fixed the issue in which user defined axis index doesn’t work in PM mode in EtherCAT platform and CCLink platform.

  16. Fixed issue for the Python library in which Python lists could not be specified as arguments to SetMemoryIOLog and SetMemoryMLog.

  17. Fixed issue for PVT, PVT interpolation, PT, VT, and AT commands in which calling the StartPVT, StartPT, StartVT, or StartAT function from an API Buffer before allocating the PVT buffer with CreatePVTBuffer caused the engine to crash.

  18. Fixed issue for the Python library in which the value of EventApiEventInputType could not be assigned to inputFunction of EventApiEventInput class.

  19. Fixed issue for the Python library in which the value of EventApiEventOutputType could not be assigned to outputFunction of EventApiEventOutput class.

  20. Fixed an issue in which an error would occur when the SetOutputBit, SetOutputByte, SetOutputBytes, SetOutputBits, GetInputBit, GetInputByte, GetInputBytes, GetOutputBit, GetOutputByte, and GetOutputBytes function is executed before executing the GetMasterInfo function if the status channel fails to open when the object is created on EcApi and CCLinkApi.

Sample Code Changes

  1. For each .NET sample code, added Dispose() call for each library class object after the CloseDevice() call. This is required to prevent the GC from freeing the library class object prematurely.