v3.6u2 to v3.6u3 Change Log (August 29, 2025)¶
Version update by module
Module |
Previous version |
Latest version |
|---|---|---|
AdvancedMotion |
3.6.0.2 |
3.6.0.3 |
ApiBuffer |
3.6.0.2 |
3.6.1.0 |
Compensation |
3.6.0.2 |
3.6.0.2 |
CoreMotion |
3.6.1.0 |
3.6.2.0 |
CyclicBuffer |
3.6.0.2 |
3.6.1.0 |
Event |
3.6.0.2 |
3.6.0.3 |
IO |
3.6.0.2 |
3.6.0.3 |
Log |
3.6.0.2 |
3.6.1.0 |
UserMemory |
3.6.0.2 |
3.6.0.2 |
EcPlatform |
3.6.2.0 |
3.6.3.0 |
M4Platform |
3.6.1.0 |
3.6.2.0 |
CCLinkPlatform |
3.6.0.0 |
3.6.1.0 |
Utility and Installer Changes
wit (WMX Intuitive TUI tool) is newly included as an integrated utility from this version onwards.
New Functions
Added the StopMultipleAxis type to EventOutput in the Event module and CoreMotion module. When the EventInput condition is met, this feature allows multiple axes to be stopped. It executes a stop command corresponding to the AxisCommandMode of each axis.
Added Vel and Trq options to CyclicBufferCommandType. These options allow the cyclic buffer to be operated in CSV or CST mode if the axis command mode is set to Velocity or Torque.
Added ClosedLoop feature to CoreMotion. Please refer to Closed-Loop Parameters and Closed-Loop for further detail.
Added the isolateFileHandling option and ringBufferExpandFactor option to the file log option parameters of the Log module. These options may prevent logging overflow caused by disk access I/O latency.
The M4Platform supports a communication cycle of 62.5 us. Note: M4Configurator may optimize certain parameters in conjunction with the communication cycle. Therefore, please use M4Configurator whenever possible to change the communication cycle or network parameters.
M4LogInput/M4LogOutput for recording statistical information on the M4Platform is supported.
Added ApiBufferMultiCondition feature to ApiBuffer for advanced flow control using logical gate nodes (AND, OR, NOT). This enables more flexible and maintainable condition handling. Please refer to Flow Control for further detail.
Added Jerk-Limited Sinusoidal Jerk profile type. In this profile type, jerk varies according to a sine wave.
Added waitTimeMilliseconds as a parameter to the SetServoOn function. When waitTimeMilliseconds is set to a value greater than 0, this function will wait for the axis to transition to the target state (servo on or servo off) after sending the signal to the servo.
Added the SetOutAnalogData type to IoEventOutput in the IO module.
In CCLinkPlatform, support for new statistical information has been added. For details, see CCLinkStatisticsInfo.
In CCLinkPlatform, communication cycles of 62.5 μs and 31.25 μs are now supported.
In CCLinkPlatform, several settings that improve performance have been added. For details, see WMX3_PLATFORM_FUNC_TSN_DEF_TUNING.
In CCLinkApi, a function has been added to retrieve and change certain network settings during communication. For details, see SetMasterParam.
Added the EqualPosTargetAxis, GreaterPosTargetAxis, and LessPosTargetAxis type to CoreMotionEventInput in the CoreMotion module. Please refer to Core Motion Inputs.
Added followingError to SyncGroupStatus.
Added followingError and syncError to CoreMotionAxisStatus.
Added followingError and syncError, which are in user unit, to CoreMotionAxisLogOutput.
Changed the mask parameter in the TxPdoWrite function in EcApi from unsigned int to unsigned long long.
Added new parameters (actualBitLen, bitOffset) to the PdoRead function in EcApi to retrieve bit-level size and offset information.
Specs Changes
Modified the JerkLimited, JerkLimitedFixedVelocityT, JerkLimitedFixedVelocityS, and CycleTimeIndependentJerkLimited profile types to not exceed the specified jerk limit when the target velocity cannot be reached. In previous versions, if the target velocity cannot be reached with the specified profile parameters, the acceleration jerk or deceleration jerk could exceed the specified jerk limit.
Modified the Execute, Halt, Clear, and Rewind functions of the ApiBuffer module to return the ApiBufferNotOpened error when called while the specified API Buffer channel has not been opened with the CreateApiBuffer function. In previous versions, the RequestModeChangeTimeout error is returned after a time out period, and subsequent calls to these functions would return the PrevSettingsBeingApplied error.
The behavior of UserDef=1 has been changed in M4Platform, and the HaltOnNetworkDiff parameter has been removed. For details, please refer to the platform section.
Stability and usability have been improved in M4Platform. (Several network parameters have been added for stability, and the Offline status has been replaced with a more detailed ConnectionStatus status. For details, please refer to the platform section.)
Changed the argument type of SetLog, SetApiLog, and OpenApiLogFile to const char* / const wchar_t* in Log module with char* / wchar_t* arguments. Also changed the argument type of SetLogHeader to const char* const* with char** arguments.
In CCLinkPlatform, when the communication cycle is shorter than 1 ms, the TSLT0 processing frequency has been changed to 1 ms. To process it every cycle as before, set 1 to Tslt0Cycle.
In CCLinkApi, the statistical information showing percentages has been changed to counts.
The number of IDs (strings) obtainable via ApiLogToString for the GetAllEventID function in the Event module has been changed from 3 to 64. This specification is currently internal and cannot be checked by the user.
Refactored the internal (cyclic) sequence for the Watch function in the ApiBuffer module.
Refactored the internal (cyclic) sequence in the CyclicBuffer module.
Implemented internal logic to determine whether a latched switch (home, limit, Z-pulse, etc.) originates from a physical switch or from a synchronized master axis.
Desync Handling is now supported for Sync Group.
The data type of the actualFollowingError has been changed from double to int.
For the following error feedback received from the servo, double type followingError is changed into int type actualFollowingError for CoreMotionAxisLogOutput. The same name change has been made to CoreMotionAxisLogInput.
Bug Fixes
Fixed an issue in the PathInterpolationLookAhead that the velocity of a motion segment would decelerate to zero if a non-motion segment (such as IO) followed after the motion segment.
Fixed an issue where, when setting GreaterVelocity as a condition in the Event module, the event condition would be met even if the FeedbackVelocity in Status had not yet reached the specified value. This issue occurred because, when FeedbackVelocity depended on internal engine calculations, the source of FeedbackVelocity obtained from Status differed from the one evaluated in the event. To resolve this, modified the event to reference the same FeedbackVelocity as Status.
Fixed an issue in the Event module and CoreMotion module where the parameters (movingAverageTimeMilliseconds) of StartSinglePos/Mov and StartMultiplePos/Mov, which are members of EventOutput, were missing, causing the parameter values not to be applied.
Fixed an issue in which the distLSToMasterLS and distHSToMasterHS statuses returned by GetHomeData could become nonzero (depending on the feedback positions) when only the master axis home switch or limit switch is used for homing (i.e. when the “Gantry Homing Use Slave HS” or “Gantry Homing Use Slave LS” parameter is set to false).
Fixed an issue in which calling the CyclicBuffer::ExecQuickStop function would cause subsequent CyclicBuffer::GetStatus functions to return the MaxAccError state until CyclicBuffer::Execute is called again. Now, CyclicBuffer::GetStatus correctly returns the Stopped state.
Fixed an issue for cyclic buffer commands in which setting intervalCycles to 2 or greater may cause the final command position to be slightly different than the specified position (this only occurs if intervalCycles or the target position is extremely large).
Fixed an issue where out-of-range I/O data could be specified using EqualIOBytes, GreaterIOBytes, and LessIOBytes in IoEventInput.
Fixed an issue where processing would not complete when extracting information using ApiLogToString from API log data containing the response of GetAllEventID in the Event module.
Fixed an issue in which the ResetLog function of the Log module did not initialize stopLoggingOnBufferOverflow and triggerEventID.
Fixed an issue in CCLinkApi where the API log output content was insufficient.
In CCLinkPlatform, fixed an issue where an abnormal interrupt interval could cause communication errors. This issue was more likely to occur when the communication cycle was short and the system load was high.
Fixed an issue where the Halt function would fail while Wait was running with SetWatch applied in ApiBuffer. The cause was a race condition in the internal state machine due to the periodically running Watch function.
Improved the DancerControl function in AdvancedMotion to consider negative input values. Input values are treated as char (1 byte), short (2 bytes), int (4 bytes), or long long (8 bytes), depending on their byte size.
Fixed an issue in the CyclicBuffer module where, after stopping an interval command and then starting a new interval command, the previous interval command would also be triggered periodically.
Fixed an issue in the Log module where calling ResetMemoryLog would cause subsequent calls to GetMemoryLogData to return an ArgumentOutOfRange error. The cause was missing memory initialization inside the module.
Fixed an issue in the Log process where data of type unsigned long long was being processed as signed long long during conversion to a string.
Fixed an issue where, if the user repeatedly sent stop commands to an axis every cycle, the Operation state would remain in the stopped state even after the stop was completed.
Fixed an issue where commanding the SyncToJog function in the negative direction would cause an error. The cause was unintended profile validation performed inside the module.
Fixed an issue where overriding a position command could force the profile to change to Trapezoidal. The cause was a malfunction in the protective logic of the internal profile calculator for the target position.
Fixed an issue where overriding a position command could cause the axis to enter the Idle state if the commanded position was greater than 2^38 or less than -(2^38)-1.
Fixed an issue where the source of the ActualVelocity value obtainable via GetStatus could differ from the ActualVelocity value used internally by the module for events and comparative evaluations.
Fixed an issue in the Jerk-Limited profile where the jerk limit could not be respected when the profile became wedge-shaped.
Fixed an issue in the Jerk-Limited and Jerk-Limited Advanced-S profiles where, if the initial velocity was greater than the profile velocity, the final velocity was equal to the profile velocity, and the profile consisted of a single segment (unable to decelerate to the profile velocity before overshooting), the profile could complete in a single cycle.
Fixed an issue in EtherCAT Platform where the state of slaves was not updated when the network topology changed and TurnOffOnTopoChange option was set to 1.
Fixed an issue in EtherCAT Platform where calling an API to change the state of slaves while communication was stopping could cause the code to enter an infinite loop. This could occur if a slave failed to reach OP state during hot connect, and stopping communication while waiting for the slave triggered this problem.
Fixed an issue in EtherCAT Platform where the enifile= setting defined in userdef was not applied correctly.
Manual Update
Added CyclicBuffer section under Motion Programming Guideline \ Other Functions.
Updated the graph of “Motion Programming Guideline \ Advanced Motion \ Spline \ Velocity Acceleration Limited Spline” to match the current specifications. For more details, please refer to item 27 in “Release Notes \ v3.5->v3.6 Change Log \ Bug Fixes”.
RealTek NICs have been changed to incompatible in the “Support Specifications \ WMX3 RTX Version \ Compatible NIC” page.
The description of the behavior of UserDef=1 in M4Platform has been updated.
The necessary settings for disabling Virtualization-Based Security have been updated on the “Setup Guide \ Real-time OS Configuration \ WMX3 RTX Version \ RTX Configuration 2 - Critical System Settings” page.
Added the API references of SetDeviceTimeout and GetDeviceTimeout. These functions are one of the “ Function Calls for Special Processing “.
Fixed an incorrect description in the SetUpdatePeriod function documentation.
Updated EcScanNetworkMode enumeration type in EcApi reference.
Updated parameters of the ScanNetwork function in EcApi reference.
Added ApiBufferMultiCondition example code on Flow Control page.
Updated Desync Handling and Sync Group page regarding the desync of sync group.