.

Release Note
MPI Library Version 04.04.19

Release Type
MPI Version
Release Date
Production Release
04.04.19
25Aug2021
Production Release
04.04.18
08Aug2021
Production Release
04.04.17
14Apr2021
Production Release
04.04.16
02Feb2021
Production Release
04.04.15
09Sep2020
Production Release
04.04.14
07Jul2020
Production Release
04.04.13
27Mar2020
Production Release
04.04.12
11Dec2019
Production Release
04.04.11
06Nov2019
Production Release
04.04.09
30Apr2019
Production Release
04.04.08
30Apr2019
Production Release
04.04.07
30Apr2019
Production Release
04.04.06
25Oct2018
Production Release
04.04.05
23Aug2018
Production Release
04.04.04
26Jun2018
Production Release
04.04.03
24May2017
Production Release
04.04.02
18Nov2016
Production Release
04.04.01
18Nov2016
Production Release
04.04.00
15Apr2016

 

  Table of Contents
    Notes
      System Requirements
Software Installation Instructions
Important Things to Know - This section highlights the most important changes in this release.
     
    New Features
     

Version 04.04.19
    Support log(x), log2(x) and log10(x) Functions

Version 04.04.18
    NCSQ Support in MPI 04.04.18

Version 04.04.16
    MPI supports Logic4 version S200 drive

Version 04.04.15
    Support Mechaware Tangent Block
    Add the Standard Gain Index feature  
    Support New MW Firmware Option 23  

Version 04.04.11
    Rincon FPGA release 330 for QMP-LT
    Add QMP-LT Support to MPI  

Version 04.04.09
    Windows 10 Validation

Version 04.04.00
    64-bit applications are now supported

     
    General Changes
     

Version 04.04.19
     Modulo block support only 32bit

Version 04.04.16
     Adding Device Driver for Windows 10 64-bit with Secure Boot
     MDL2MW does not displays Coefficient value if it specified exponent value

Version 04.04.13
     Noise Block Needs an Input Source

Version 04.04.00
     Firmware Pointer Changed to uint32_t
     MPI Function Changes
     Dual Compare

    Fixed Bugs
     

Version 04.04.19
    Divide model cannot works well with simlink simulator
    MDL2MW cannot load .bin file

Version 04.04.17
    VM3 does not display filter map
    Triggered Motion Modify does not work
    Saved phantom axis filter coeffs is bad when firmware booting

Version 04.04.16
     A network problem with Kollmorgen NIM V3 under MPI04.xx.xx

Version 04.04.15
    Noise Block Needs an Input Source
    Device Error inside Service Object Routine
    PIV_GT Had an Unexpected Velocity Delta Calculation when DISABLE

Version 04.04.14
    mpiCaptureReset(,,) returns "0x0204 (516) Capture: invalid feedback number

Version 04.04.13
    Attribute Invalid with mpiMotionCamMove(,,)
    mpiFlashCreate Created and Unexpected Memory Operation if Argument is Invalid
    mpiControlMemoryToFile Might Report an Assertion if Filename was NULL
    Fixed Memory Free Missing of MPI Library

Version 04.04.12
    mpiUserLimitEnableSet will report Timetout error

Version 04.04.11
    mpiUserLimitEnableSet will report the timeout error in certain situation

Version 04.04.09
    QMP flash timeout error

Version 04.04.08
    SqDC4 command position drift
    Remove mpiMotorRatioModuloReInitialize from MPI
    Encoder Position Jump
    Motion will unexpected done event if axis list has been changed in another MS
    mpiMotionMemorySet will report an INVALID parameter if target address is not msData object    
    MPI cannot open drive map files on Win64 OS

Version 04.04.07
   SynqNet data transfer may fail with "windows service" thread

Version 04.04.06
   LOCK and UNLOCK Code for Multi-Tasking Was Missing

Version 04.04.05
    The Compute Command of The Sequencer Does Not Work

Version 04.04.04
    Example compareDelta.c Not Working
    Erasing The Boot Sector on a ZMP Causes The Flash Chip to Hang

Version 04.04.03
    Downstream Errors on SynqNet Nodes
    seq1.c does not work on QMP
    mpiMotionPositionGet() Receives Incorrect Position Data
    S200 Tools Initialization Fails in 04.04.02

Version 04.04.02
    Incorrect MoScope HEX Format Export Data
    Firmware Address Size Check for MPI 64bit
    mpiUserLimitConfigSet/Get()
    Unexpected NearTarget (Coarse) Status
    Fixed Motor Gear Problem
    ESTOP-ABORT Does Not Work on Cordinated Motion
    MPIRecorderRecordTypeAXIS Bug

Version 04.04.01
    mpiMapPtrToSymbol() Function Does Not Work With MPICapture.Data.State address

Version 04.04.00
    <none>

     
    Open Issues
     

Existing Bugs
    <none>

Limitations
    Motion Console and Motion Scope Require Administer User Permissions
    Simserver
    MechaWare

         

New Features

Version 04.04.019

  Support log(x), log2(x) and log10(x) Functions
    Reference Number: 11117
    Type: New Feature
    MPI Version: 04.04.19
   

Description:

Added new Logarithmic blocks for MechaWare.

  • Log_Binary -- log2(x)
  • Log_Common -- log10(x)
  • Log_Natural -- log(x)

These blocks support all mechaware firmwares (except Z21P).

Note: Z21P does not support this block due to code capacity limitations. MDL2MW will report a "ZMP unsupported block found" error if Z21P FW is used and the specified model contains these blocks. Q21P supports new blocks.

Version 04.04.018

  NCSQ Support in MPI 04.04.18
    Reference Number: 11083
    Type: New Feature
    MPI Version: 04.04.18
   

Description:

Support added for the Kollmorgen AKD model NCSQ. The NCSQ is functionally identical to the prior NBSQ models, but the new product ID has been added to the MPI source code to enable complete resource allocation.

Note prior MPI release versions 04.03.00 to 04.04.17 will accept the NCSQ model, but will use an older default resource allocation instead of the exact NCSQ resources. There are two limitations:

1. The customer application will not be able to use the SynqNet Motor IO label lookup for the input pin Analog Z Pulse. The MPI lookup for this pin is rarely used by customers. This does not limit any AKD feedback features.

2. The new general purpose PWM output feature requires 04.04.18 for cyclic operation.

Also note the NCSQ model does require a separate download file from NBSQ and AKD firmware support for NCSQ starts with version 01-20-00-003. For more information, see AKD NCSQ Support.

Version 04.04.17

<none>

Version 04.04.016

  MPI supports Logic4 version S200 drive
    Reference Number: 10794
    Type: New Feature
    MPI Version: 04.04.16
   

Description:

MPI supported new logic board S200 drive.

Crrently S200 firmware file is a .isc format, but new the logic S200 drive requries i00 format firmware. The MPI now supports both file format for each drives. However, each file cannot be installed to different hardware.


Version 04.04.015

  Support MechaWare Tangent Block
    Reference Number: 10601
    Type: New Feature
    MPI Version: 04.04.15
   

Description:

MechaWare now has a Tangent block. This block is available in the MechaWare 04.02 block library. See Tangent block.


  Add the Standard Gain Index Feature
    Reference Number:
    Type: New Feature
    MPI Version: 04.04.15
   

Description:

MechaWare now has a gain switch block. This block is available in the MechaWare 04.02 block library. See GainSwitchSTD block.


  Support New MW Firmware Option 23
    Reference Number:
    Type: New Feature
    MPI Version: 04.04.15
   

Description:

Firmware 23 option was added with MechaWare and Compensator support. For mroe information, see Controller Firmware.

Version 04.04.011

  Rincon FPGA Release 330 for QMP-LT
    Reference Number: 10493
    Type: New Feature
    MPI Version: 04.04.11
   

Description:

Add Rincon FPGA version 330 to the MPI. This release adds a new FPGA type 330_AA01.fpg to support QMP-LT clock rates. No source code changes were made in the other FPGA variants for QMP and ZMP.


  Add QMP-LT Support to MPI
    Reference Number: 10406
    Type: New Feature
    MPI Version: 04.04.11
   

Description:

Add support for the new QMP-LT controller using the P1011 CPU at 400MHz instead of the P2010 used on standard QMPs at 800MHz and 1200MHz.

New features include:

Qboot 2.25
Frmware version 920
FPGA release version 330 including new AA01 FPGA type for QMP-LT
SynqNet schedule constants for QMP-LT

Version 04.04.10

<none>

Version 04.04.09

  Windows 10 Validation
    Reference Number: 10493
    Type: New Feature
    MPI Version: 04.04.09
   

Description:

The MPI software is validated on Windows 10 (both 64-bit and 32-bit) starting with 04.04.09.

Code Changes:

No changes were required to support Windows 10. Note prior MPI releases were validated on Windows 7. Prior releases may or may not work well with Windows 10.

Version 04.04.00 - 04.04.08

<none>

Version 04.04.00

64-bit applications are now supported

General Changes

Version 04.04.19

  Modulo block supports only 32bit
    Reference Number:
    Type: Change Feature
    MPI Version: 04.04.19
   

Description:

The "Divisor" parameter changed from 32 bits to 64 bits.

Why or when should this feature be used?

When using an AKD, since a revolution is 32 bits, this change should be used.

Version 04.04.17 - 04.08.18

<none>

Version 04.04.16

  Adding Device Driver for Windows 10 64-bit with Secure Boot
    Reference Number:
    Type: Change Feature
    MPI Version: 04.04.16
   

Description:

New driver for PC's running Secure Boot. The driver is signed by Microsoft.

Why or when should this feature be used?

The driver reside in the folder [MEI_INSTALL_DIR]\Win64\DriverWS. The user will need to install this driver if they have Secure Boot turned on.


  AMDL2MW does not displays Coefficient value if it specified exponent value
    Reference Number:
    Type: Change Feature
    MPI Version: 04.04.16
   

Description:

The MDL2MW tool was displaying coefficient with 6 digits decimal places at download. However, this digits would be not enough if the specified value was small. For instance, the display would be zero even if specified value was 1.2e-8.

Why or when should this feature be used?

MDL2MW will now display the coefficient value by exponent value always. By this change, the specified value can be confirmed. Note: This change is for all double parameters. (But input parameters of State of Manual Switch block, and Exponent of Power block are excluded.)

Version 04.04.15

<none>

Version 04.04.14

<none>

Version 04.04.13

  Added Hexadecimal MoveID Display at DumpFrames and DumpEvents
    Reference Number:
    Type: Change Feature
    MPI Version: 04.04.00
   

Description:

The DumpFrames and DumpEvents displays a Move ID using both formats, decimal and hexadecimal in latest version.

Code Changes:

Move ID in hex format, added as output to both DumpEvents and DumpFrames utilities.

Why or when should this feature be used?

The Move Id format will be easier to correlated with other move data.

Implementation:

The Move Id in these utilities can be correlated to the commanded moves.

Version 04.04.01 - 04.04.12

<none>

Version 04.04.00

  Firmware Pointer Changed to uint32_t
    Reference Number:
    Type: Change Feature
    MPI Version: 04.04.00
   

Description:

The new firmware pointer ‘_MFWPTR_ (type)’ clearly distinguishes between 32-bit firmware pointer and 32-bit or 64-bit host pointer.

It is defined in MFPTR.H. MFWPTR.H is an additional header file to access 32-bit firmware from a 64-bit host. And the 64-bit host handles the 32-bit firmware pointer as 'uint32_t'. No changes have been made to the 32-bit host.

Related definitions:

MPI64: Identifies whether running a 64-bit OS or 32-bit OS. If it has been defined, it handles pointer of the firmware as ‘uint32_t’.

MPI_PLATFORM_WIN64: The identifier for Microsoft Windows7 64 bit.


  MPI Function Changes
    Reference Number:
    Type: Change Feature
    MPI Version: 04.04.00
   

Description:

A new argument '_MFWPTR_(type)' was added to support 32-bit firmware pointers on a 64-bit host. It is found in the following functions:

For more information see the Important Things to Know section.


  Dual Compare
    Reference Number:
    Type: Change Feature
    MPI Version: 04.04.00
   

Description:

The MPICompareConfig structure now includes an additional member ‘engineNumber’ to support multiple compare engines for a given motor. The default value should be set to ‘0’.

At this time, the AKD drive supports engineNumber 0 and 1 (aka dual compare).

Fixed Bugs

Version 04.04.19

  Divide model cannot works well with simlink simulator
    Reference Number: MPI 11125
    Type: Fixed Bug
    MPI Version: 04.04.19
   

Problem:

MechaWare Library DIVIDE block does not work in Simlink Simulation.

   

Cause:

The cause is a wrong mask parameter -- it should be '*/' but it was '//'.

   

Fix/Solution:

This problem is fixed in 04.04.19.

Note workaround for customers with older MechaWare: Customers can fix this issue by replacing '//' to '*/' in the DIVIDE block of the library file, mwblocks.mdl.


  MDL2MW cannot load .bin file
    Reference Number: MPI 11119
    Type: Fixed Bug
    MPI Version: 04.04.19
   

Problem:

When loading BIN files, MDL2MW failed to find the BIN file.

   

Cause:

Case-insensitive searches were not performed when searching for BIN files.

   

Fix/Solution:

Case-insensitive file search is performed correctly. MDL2MW finds BIN files correctly.

 

Version 04.04.18

<none>

Version 04.04.17

  VM3 does not display filter map
    Reference Number: MPI 10931
    Type: Fixed Bug
    MPI Version: 04.04.17
   

Problem:

VM3 does not display the following variables: Coeffset HoldCondition. EStop Modify point Triggered Motion Modify point These are all variables allocated in extended buffer area.

   

Cause:

MPI wasn't coded to display them.

   

Fix/Solution:

Code was added to display the variables.


  Triggered Motion Modify does not work
    Reference Number: MPI 10938
    Type: Fixed Bug
    MPI Version: 04.04.17
   

Problem:

Triggered Motion modify does not work.

   

Cause:

There was a problem handling the status, MFWStatusTRIGGERED_MODIFY when processing limits.

   

Fix/Solution:

The status was properly handled. Sample code 'usrlim8.c' added to example folder as countermeasure to verify the behavior.


   Saved phantom axis filter coeffs is bad when firmware booting
    Reference Number: MPI 10930
    Type: Fixed Bug
    MPI Version: 04.04.17
   

Problem:

When the number of objects to be saved in flash is manually increased, and an attempt to save the parameters to flash memory, the increased set of objects are not saved.

   

Cause:

In the flash code, MPI only saves the number of objects that was originally assigned.

   

Fix/Solution:

MPI was changed so that the extended number of objects is also saved to flash memory. MPI now saves flash objects correctly.

Version 04.04.16

  A network problem with Kollmorgen NIM V3 under MPI04.xx.xx
    Reference Number: MPI 10853
    Type: Fixed Bug
    MPI Version: 04.04.16
   

Problem:

Kollmorgen NIM-V3 did not move into the 'sync' state of SynqNet on MPI04.

   

Cause:

Board initialization for NIM-V3 was missing in MPI04.

   

Fix/Solution:

Board initialization for NIM-V3 was included in MPI04.

Version 04.04.15

  Noise Block Needs an Input Source
    Reference Number: MPI 10691
    Type: Fixed Bug
    MPI Version: 04.04.14
   

Problem:

The MechaWare Noise block will report the 'Invalid MDL model file' error if the block does not specify the input block.

   

Cause:

The Noise block has an input pin. This pin is a Simulink option, so no error should be reported if the input pin connection is not specified.

   

Fix/Solution:

Even if an input pin connection is not specified, no error is reported.


  Device Error Inside Service Object Routine
    Reference Number: MPI 10669
    Type: Fixed Bug
    MPI Version: 04.04.15
   

Problem:

The EventManager of service routine returned “device error”. This error is from the device driver.

   

Cause:

03.04.xx MPI does not support pending interrupts.

   

Fix/Solution:

Support for pending interrupts was added. (Currently it is as same as MPI 04 driver.)



  PIV_GT Had an Unexpected Velocity Delta Calculation when DISABLE
    Reference Number: MPI 10690
    Type: Fixed Bug
    MPI Version: 04.04.15
   

Problem:

The MechaWare block PIV_GT has a bug with processing velocity deltas in transitions.

   

Cause:

If the status is DISABLE, the internal previous position data for velocity calculation will be zero. If the status is now enabled, the position delta (= velocity) will be the current feedback position, causing a position jump.

   

Fix/Solution:

This problem was fixed on 920A3 FW. There is no position jump.

Version 04.04.14

  mpiCaptureReset(,,) returns "0x0204 (516) Capture: Invalid feedback number
    Reference Number: MPI 10572
    Type: Fixed Bug
    MPI Version: 04.04.14
   

Problem:

mpiCaptureReset() returns "0x0204 (516) Capture: invalid feedback number." The application changes capture-feedback configuration memory using mpiControlMemorySet() directly after the first mpiCaptureConfigSet(). The second mpiCaptureConfigSet() returns the referenced error.

Confirmed version 04.03.18 working with same application code.

   

Cause:

A prior change caused this error. Reference: SVN 76958 "Add mpiCaptureConfigGet(), before calling mpiCaptureConfigSet()" All 0 is good.

   

Fix/Solution:

Reverted SVN 76958 source code. mpiCaptureReset() now bahaves as specified.

Version 04.04.13

  Attribute Invalid with mpiMotionCamMove(,,)
    Reference Number: MPI 10494
    Type: Fixed Bug
    MPI Version: 04.04.13
   

Problem:

When a motion sequenceis repeated, the second sequence returns an error. This is the motion sequence that contains an error:

1st command to mpiMotionCamMove() returns MPIMessageOK with MPIMotionCamAttrMaskREPEAT. After MotionActionE_STOP and a Reset, 2nd command mpiMotionCamMove returns MPIMotionMessageATTRIBUTE_INVALID.

   

Cause:

Internal validation was using the wrong variable.

   

Fix/Solution:

Validation is now correctly using the right variable. Both motion sequence work correctly now.


  mpiFlashCreate Created and Unexpected Memory Operation if Argument is Invalid
    Reference Number: MPI 10490
    Type: Fixed Bug
    MPI Version: 04.04.13
   

Problem:

If mpiFlashCreate is called with an invalid control handle, MPI will access bad memory.

   

Cause:

It is not checking for an invalid control handle.

   

Fix/Solution:

Code was added to check for an invalid Control handle. It returns an error status if an invalid control handle is passed.


  mpiControlMemoryToFile Might Report an Assertion if Filename was NULL
    Reference Number: MPI 10489
    Type: Fixed Bug
    MPI Version: 04.04.13
   

Problem:

If the application called mpiControlMemoryToFile() function with NULL filename pointer, MPI might report an assertion.

   

Cause:

This cause is an uninitialized internal variable.

   

Fix/Solution:

It returns an error status if a NULL filename pointer is passed as argument.


  Fixed Memory Free Missing of MPI Library
    Reference Number: MPI 10482
    Type: Fixed Bug
    MPI Version: 04.04.13
   

Problem:

MPI library can leak memory.

   

Cause:

Some MPI methods were not freeing the allocated objects.

   

Fix/Solution:

All MPI methods now properly free allocated objects.

Version 04.04.12

  mpiUserLimitEnableSet will report the timeout error in certain situation
    Reference Number: MPI 10466
    Type: Fixed Bug
    MPI Version: 04.04.12
   

Problem:

mpiUserLimitEnableSet will report a spurious timeout in rare situations in a multi-threaded MPI client. This problem is related to Bugzilla-10393.

   

Cause:

If the same limit is controlled by two threads and operations occur at about the same time, the firmware has a race condition which causes it to report a timeout.

   

Fix/Solution:

The MPI will now use two separate locks for enable and disable operations.

Version 04.04.11

  mpiUserLimitEnableSet will report the timeout error in certain situation
    Reference Number: MPI 10393
    Type: Fixed Bug
    MPI Version: 04.04.11
   

Problem:

mpiUserLimitEnableSet will report a spurious timeout error if customer calls mpiUserLimitConfigSet when enable=true, followed quickly by mpiUserLimitEnable (argument=false).

   

Cause:

The timeout check was faulty in this situation.

   

Fix/Solution:

This logic for the check for timeout was fixed.

Version 04.04.09

  QMP flash timeout error
    Reference Number: MPI 2768
    Type: Fixed Bug
    MPI Version: 04.04.09
   

Problem:

A timeout error is returned when downloading new Firmware to a QMP (Flash.exe). This issue is only exhibited on QMP boards that have the newer MT28EW256ABA flash chip. This issue is related only to flash programming only and not normal operation.

   

Cause:

The flash timeout was traced to a software bug introduced in MPI 04.03.18 and MPI 04.04.03 – 04.04.08.

   

Fix/Solution:

Upgrade to MPI 4.04.09 or later.

Version 04.04.08

  SqDC4 command position drift
    Reference Number: MPI 2767
    Type: Fixed Bug
    MPI Version: 04.04.08
   

Problem:

The ZMP command position may drift for SqDC4 drives. This may occur if the SqDC4 drive has some load while holding position. The rate of position drift depends on the motor and load.

   

Cause:

The solution was a change in the MPI code so that the ZMP PID will ignore the AmpActive status from SqDC4. The MPIMotorDedicatedInAMP_ACTIVE bit for SqDC4 SqNode library is NOT set, which will cause the ZMP to ignore the AmpActive status.

   

Fix/Solution:

The position drift occurs because the SqDC4 toggles the AmpActive state on/off/on even though the ZMP continuously requests AmpEnable. When AmpActive toggles off, the ZMP's PID is momentarily disabled and the "command = actual" disable feature may allow ZMP command position to drift. Note this use of the AmpActive was introduced in MPI 2628 "AKD-SQ Reduce Position Jump on Amp Enable" (MPI 04.03.05).

With the updated MPI, the ZMP will instead use the AmpEnable state to control disable behavior of ZMP PID.


  Remove mpiMotorRatioModuloReInitialize from MPI
    Reference Number: MPI 2766
    Type: Fixed Bug
    MPI Version: 04.04.08
   

Problem:

In the previous specification, the controller init would called motor config set if the motor had a gear ratio under certain conditions. This is for re-calculation of the gear position because if contoller initialization was done first time after power on, and gear ratio has been flashed, the intial position might be wrong position if resolution is very high and it had ABS initial position. That original cause was overflow of firmware register.

   

Cause:

However, the firmware overflow issue was fixed in MP2728 already. Therefore motor re-initialization process was no longer useful. And this re-initial process might become an unexpected operatioin if customer configures the controller with unique motor link. (This case is posted by MPI2765)

   

Fix/Solution:

The motor re-configuration was removed from controller initial process. MPI and controller should be correct operation in any case.


  Encoder Position Jump
    Reference Number: MPI 2765
    Type: Fixed Bug
    MPI Version: 04.04.08
   

Problem:

If customer configured unique axis-motor link (like an Axis0 referred Motor1 encoder as feedback), and linked motor has been configured with a gear ratio, Axis0 encoder will jump if controller is initialized.

This problem occured when Motion Console was refreshed because it initialized the controller.

   

Cause:

This cause is in motor re-configuration in controller initialization process. In expected operation, MPI will skip this motor configuraton if the motor enabled. However, this skip condition was incomplete and only the same axis and motor numbers were checked. Therefore, if customer configured unique link between axis and motor, the encoder position jumped.

   

Fix/Solution:

The cause of this route is reconfiguration, but this feature was no longer needed.
(See MPI2766). Because we removed re-configuration from controller initialization process, encoder jump issue is also fixed now.


  Motion will unexpected done event if axis list has been changed in another MS
    Reference Number: MPI 2764
    Type: Fixed Bug
    MPI Version: 04.04.08
   

Problem:

Motion will unexpected done event if axis list has been changed in another MS.

If customer is using multi thread or multi process application, and if these program are running on paralell that one task changed axis map configuration and other task called motion start and wait an event, the FW might notifed the unexpected done event.

   

Cause:

This cause is in axis map change process. So far, MPI could changed the axis map in anytime.
But FW process is refering mapped axis count for the loop for MS status control internaly. Therefore if MPI changed axis list to smaller than previous during MS processing of FW, FW refered to unexpected axis list as '0'. This was cause of unexpected event notified.

   

Fix/Solution:

For axis map control, we changed the MPI to call the MPIActionMAP internally. In new MPI, FW will set the axis count to ZERO by MPIActionMAP first. And if FW conpleted that process, MPI will set the new axis map and new axis count. This process allows you to synchronize between MPI and FW so you can fix unexpected events.


  mpiMotionMemorySet reports an INVALID parameter if target address is not msData object
    Reference Number: MPI 2763
    Type: Fixed Bug
    MPI Version: 04.04.08
   

Problem:

The mpiMotionMemoryGet and mpiFilterMemoryGet/Set did not work correctly.

   

Cause:

These function's address validation was broken and it would return the MPIMessageARG_INVALID unpredictably.

   

Fix/Solution:

Now the functions sould be work collectly.


  MPI cannot open drive map files on Win64 OS
    Reference Number: MPI 2760
    Type: Fixed Bug
    MPI Version: 04.04.08
   

Problem:

In Windows 64 OS, customer could not open the drive map with sqDriveConfig tool.

   

Cause:

This cause is in MPI source code. So far, sqDriveConfig could be run on WIn32 only, not in Win64. This was the bug.

   

Fix/Solution:

Now, we can run this tool on Win64 too.

Version 04.04.07

  SynqNet data transfer may fail with "windows service" thread
    Reference Number: MPI 2757
    Type: Fixed Bug
    MPI Version: 04.04.07
   

Problem:

If customer is using certain MPI methods as both Service and Application, controller will lose synchronization sometimes.

   

Cause:

The MPI lock control didn't support global lock control. Since, MPI lock did not support global control, If customer was using a Windows Service, the lock control between service and application layer was not functional.

   

Fix/Solution:

Now we can use MPI on both Service and Application at the same time.

Version 04.04.06

  Erasing The LOCK and UNLOCK Code for Multi-tasking Was Missing
    Reference Number: MPI 2755
    Type: Fixed Bug
    MPI Version: 04.04.06
   

Problem:

Because there is no LOCK and UNLOCK, if multiple threads call those functions at the same time, they collide and the functions can not return the correct value.

   

Cause:

LOCK and UNLOCK missing from the source code.

   

Fix/Solution:

Added LOCK and UNLOCK code to the mpiAxisCommandPositionGet(), the mpiAxisActualPositionGet() and other functions.

Version 04.04.05

  The Compute Command of the Sequencer Does Not Work
    Reference Number: MPI 2754
    Type: Fixed Bug
    MPI Version: 04.04.05
   

Problem:

The Compute command of sequencer could not work.

   

Cause:

A bug was found in the firmware. The compute command could not refer to the target address.

   

Fix/Solution:

This problem was fixed by a firmware code change. The compute command should work from 918A5.

Version 04.04.04

  Example compareDelta.c Not Working
    Reference Number: MPI 2751
    Type: Fixed Bug
    MPI Version: 04.04.04
   

Problem:

MPI had a wrong operation of the address in compare configuration.

   

Cause:

Coding error.

   

Fix/Solution:

The correct operation was implemented.


  Erasing The Boot Sector on a ZMP Causes The Flash Chip to Hang
    Reference Number: MPI 2745
    Type: Fixed Bug
    MPI Version: 04.04.04
   

Problem:

To flush the last flash command, the last address was read back. This code had a bug and it was reading back a different address. Sometimes the address would be close enough to flush the command, and other times it would be completely different from the last address written.

So sometimes the erase was successful, other times it failed.

   

Cause:

The wrong address was used to read back the last command sent to the flash. i.e. the flash chip did not get the last command to erase it and presumably times out.

   

Fix/Solution:

The boot sector erases correctly.

Version 04.04.03

  Downstream Errors on SynqNet Nodes
    Reference Number: MPI 2742
    Type: Fixed Bug
    MPI Version: 04.04.03
   

Problem:

The downstream error count increases every few seconds on all SynqNet nodes. No other errors are visible, and the system continues to run normally.

   

Cause:

The root cause is in the ZMP controller FPGA version 324_A301.fpg and has been resolved in version 325_A301.fpg. This fix is recommended per customer request if the downstream error issue occurs on any MPI 04.xx.xx system. Note these downstream errors are caused by transmit timing errors and should be eliminated if they occur.

   

Fix/Solution:

FPGA version 325_xxxx.fpg has been modified to prevent this issue.

The version 325_xxxx.fpg FPGAs are recommended for all MPI 04.xx.xx versions, and all controller hardware versions.

Note: controller FPGAs are downloaded every time flash.exe updates firmware. The default FPGA version is loaded unless the command line option is used, for example:
cmd> flash.exe -fpga0 325_A301.fpg ZMP913B3.bin
An MPI change is required to modify the default FPGA version.


  seq1.c Does Not Work on QMP
    Reference Number: MPI 2741
    Type: Fixed Bug
    MPI Version: 04.04.03
   

Problem:

Depending on the sequence program, QMP will emit an alignment violation exception error then stop.

   

Cause:

QMP accesses 32 bit data twice and makes 64 bit data now.

   

Fix/Solution:

QMP accessed 64 bit data regardless of 32 bit data and 64 bit data at condition wait and calculation.


  mpiMotionPositionGet() Receives Incorrect Position Data
    Reference Number: MPI 2655
    Type: Fixed Bug
    MPI Version: 04.04.03
   

Problem:

mpiMotionPositionGet() receives incorrect position data when mpiAxisOrginSet() is called.
using mpiAxisCommandPositionGet() or mpiAxisActualPositionGet() returns correct position data.

   

Cause:

After calling mpiAxisOriginSet(), the Axis object executes a sample count wait. In MPI 03, the Motion objects have related Axis objects, so no problem exists. However in MPI 04, the Motion objects does not have related Axis objects and poses a problem as mpiMotionPositionGet() does not know whether mpiAxisOriginSet() is called or not.

   

Fix/Solution:

After calling mpiAxisOriginSet (), the Control object also executes a sample wait. Additionally, the motion objects can call a sample wait function using the control object and axis number.


  S200 Tool Initialization Fails in 04.04.02
    Reference Number: MPI 2739
    Type: Fixed Bug
    MPI Version: 04.04.03
   

Problem:

MPI has a certain initialization function and the argument interface was changed in 04.04.02. However the S200 Tool is unaware of this change, the MPI returned an error by argument mismatch when the function was called.

   

Cause:

This cause is the MPI interface change in 04.04.02.

   

Fix/Solution:

The correct initialization function is now called.

Version 04.04.02

  Incorrect MoScope HEX Format Export Data
    Reference Number: MT 1522
    Type: Fixed Bug
    MPI Version: 04.04.02
   

Problem:

When data is exported as hex to file, the values are bad.

   

Cause:

Eg.: When controller data was 0x80000001, exported data was 0x80000000.

   

Fix/Solution:

Also: Hex format display wasn't implemented correctly.


  Firmware Address Size Check for MPI 64bit
    Reference Number: MPI 2732
    Type: Fixed Bug
    MPI Version: 04.04.02
   

Problem:

This feature checks and validates the size of firmware address for 64-bit MPI builds.

The size of the firmware address is 32-bit. But if a customer made a mistake and set the wrong software build option, the firmware address becomes a 64-bit value.

This feature is introduced to catch this error. However, it will be 64-bit when customer sets wrong software build option.

   

Cause:

NA

   

Fix/Solution:

Check firmware address size when application call the mpiControlCreate().
If it is bad, it will return "Control: Firmware address size mismatch.".

Call yjr mpiControlCreate()


  mpiUserLimitConfigSet/Get()
    Reference Number: MPI 2730
    Type: Fixed Bug
    MPI Version: 04.04.02
   

Problem:

If the application uses the 'Capture State' address by MPIUserLimitConditionTypeCUSTOM and sets configuration using mpiUserLimitConfigSet, then, when calling mpiUserLimitConfigGet(), the type is returned as MPIUserLimitConditionTypeCAPTURE_STATE.

   

Cause:

mpiUserLimitConfigGet().

It is determined only by the address that set the condition type. Additionally, the custom setting is changed to the simple setting of each condition type.

   

Fix/Solution:

The condition type is stored in a firmware field and retrieved when mpiUserLimitConfigGet is called.

The types that are set are read properly in the get functions.


  Unexpected NearTarget (Coarse) Status
    Reference Number: MPI 2729
    Type: Fixed Bug
    MPI Version: 04.04.02
   

Problem:

For AKD & S200 drives, if the user generates an Abort action (Disable action), the 'Near Target' status will be TRUE.

   

Cause:

The motor status data was incorrectly getting reflected in the axis status and causing a spurious status.

   

Fix/Solution:

When motion is aborted, the wrong bit from motor status is not copied to the axis status.


  Fixed Motor Gear Problem
    Reference Number: MPI 2728
    Type: Fixed Bug
    MPI Version: 04.04.02
   

Problem:

In a certain situations, the motor gearing function did not work well.Example is when using a high value for the resolution and spinning the motor shaft at high speed.

   

Cause:

This problem was in unit size of firmware calculation.

   

Fix/Solution:

The calculation was fixed and the motor gearing works as expected.


  ESTOP-ABORT Does Not Work On Cordinated Motion
    Reference Number: MPI 2726
    Type: Fixed Bug
    MPI Version: 04.04.02
   

Problem:

Axes are assigned to the following:

1. MS - Axis map
MS#0: Axis#0
MS#1: Axis#1
MS#3: Axis#0 + Axis#1

2. Motion start
MS#0: start.

3. EStopAbort
MS#2: EStopAbort.

4. Problem
Axis#0 abort soon.

   

Cause:

This problem occurs when two or more axes are assigned to a motion supervisor (MS). The axis staus of the 2 or more axes were not combined properly.

   

Fix/Solution:

When multiple axes are being assigned to a motion supervisor, each axis staus is properly combined to set the motion supervisor status.

It works correctly to abort all the axes at the right time.


  MPIRecorderRecordTypeAXIS Bug
    Reference Number: MPI 2581
    Type: Fixed Bug
    MPI Version: 04.04.02
   

Problem:

When using MPIRecorderRecordTypeAXIS in mpiRecorderRecordConfig(), the
DAC output value was always 0.

   

Cause:

DAC output was assigned filter output and MechaWare firmware does not have filter.

   

Fix/Solution:

Check Mechaware or Standard firmware. If it is Mechaware firmware, DAC output is assigned for Motor commutation input.

Version 04.04.01

  mpiMapPtrToSymbol() Function Does Not Work With MPICapture.Data.State addresss
    Reference Number: MPI 2720
    Type: Fixed Bug
    MPI Version: 04.04.01
   

Problem:

Map: symbol not found is returned when setting the map pointer as MPICapture.Data.State address and calling the mpiMapPtrToSymbol() function.

   

Cause:

Improper coding of the mpiMapPtrToSymbol() function.

   

Fix/Solution:

The mpiMapPtrToSymbol() function was corrected.

Version 04.04.00

<none>

Open Issues

Existing Bugs

<none>

Limitations

  Motion Console and Motion Scope Require Administer User Permissions
    Reference Number: N/A
    Type: Limitation
    MPI Version: 04.04.xx
   

Description:

If installed in the default installation directory (C:\Program files), Motion Console and Motion Scope require administrator privileges to run. This is due to increased security measures by Microsoft in Windows 7 and above. Installing to an alternate directory will circumvent this requirement.

 

  SimServer Still Under Development
    Reference Number: N/A
    Type: Limitation
    MPI Version: 04.04.xx
   

Description:

At the time of the release, the development of SimServer had not been completed. This feature is available as a standalone package and is not included in the MPI distributables.

 

  MechaWare Still Under Development for 64-bit Applications
    Reference Number: N/A
    Type: Limitation
    MPI Version: 04.04.xx
   

Description:

At the time of the release, the development of MechaWare for 64-bit applications had not been completed. This feature is released as a standalone package and is not included in the MPI distributables. MechaWare is planned to be completed and supported in future releases.

Mechaware is available for 32-bit applications in the 04.03 release.

 

 

 

       Legal Notice  |  Tech Email  |  Feedback
      
Copyright ©
2001-2021 Motion Engineering