Application Verification

SynqNet nodes are discovered during network initialization and addressed by the controller/software in the order they are found. Please see the Node, Cable, Motor, Drive Addressing page for more details. During machine prototyping and development this technique makes it very easy to add or remove nodes. But, this flexibility can also cause problems for the higher level application code if the application does not verify the expected topology.

For example, suppose an application expects to operate with 2 nodes. Each node has one motor and is connected to an X,Y stage (X = motor 0, and Y = motor 1). Suppose there is a bad network cable that is causing the network initialization to find only one node. Or, suppose the 2 nodes were connected in reverse order, so that X = motor 1, and Y = motor 0. An application could easily deal with these situations if it verifies the expected topology during initialization.

An application can compare the expected topology to the discovered topology using the MPI information methods:


mpiSynqNetInfo(...) - reads SynqNet information discovered during network initialization. See mpiSynqNetInfo(...).

mpiSqNodeInfo(...) - reads SqNode information discovered during network initialization. See mpiSynqNetInfo(...).

mpiSqNodeDriveInfo(...) - reads SqNode Drive information discovered during network initialization. See mpiSqNodeDriveInfo(...).

You will need to decide which information to check and how your application should respond to any unexpected topology changes. Here are a few helpful guidelines:

Always Check

SynqNet Network Type - Identifies the network topology (String, Ring, or Terminated String). This is important if an application uses the Fault Recovery feature, which is only supported by Ring topologies. See MPISynqNetInfo and MPINetworkType.

SynqNet Node Count - Make sure the number of expected nodes are found during the Discovery phase. See MPISynqNetInfo.

SqNode Node Type and Option - Make sure the nodes are discovered in the proper order and are of the expected hardware type and option. See MPISqNodeInfoId.

SqNode FPGA Type - Identifies whether the FPGA image is a Boot or Runtime. ALL FPGAs must be Runtime images. Boot images only contain enough logic to be discovered and support the download of the Runtime image. See MPISqNodeFpgaType.

FPGA VendorDevice - Identifies the FPGA image. See MPISqNodeInfoFpga.

SqNode FPGA Version - Make sure the FPGA version is up to date with the software version. Software and FPGAs are tested, packaged, and released together. Mixing FPGAs with different software versions can cause unexpected behavior. See MPISqNodeInfoFpga.


Good Idea to Check

SqNode Exact Match - Identifies whether or not the software exactly knows the node type and FPGA image combination. If the Exact Match is 0 (FALSE), then the software is making its best guess for the node and FPGA features. Please contact MEI if the Exact Match is 0 (FALSE). See MPISqNodeInfoId.

SqNode Motor Count and Offset - The number of motors per node and their offsets. Make sure the motor numbers match the expected node-to-motor number order. See MPISqNodeInfo.

SqNode Drive Firmware Version - Make sure the drive firmware version is correct for your application. Contact the drive manufacturer for firmware version updates. Please see the Drive Partners: Contact Info for contact information. See MPISqNodeDriveInfo.

SqNode SwitchId - Some nodes have a physical dial to set an address. SynqNet does not use the address to identify the node. However, it is useful for applications that want to use the SwitchId to differentiate nodes that use identical node models. This can be useful to correctly identifying a setup or for dynamically mapping MS, Axis, Filter, and Motor objects. See MPISqNodeInfoId.


Optional Information to Check

SqNode Node Name - Text string used to identify the Node Type. Sometimes it's easier to identify nodes by a string instead of by a number. See MPISqNodeInfoId.

SqNode Model and Serial Number - Identifies the particular node model and its serial number. This is useful for tracking nodes. See MPISqNodeInfoId.

SqNode Unique - The Node Type, Option, and Unique values will always uniquely identify every SynqNet node. It is useful for tracking nodes or for applications that use software identification to map the Motion Supervisor, Axis, Filter, and Motor objects. See MPISqNodeInfoId.

SynqNet Cable Length - Measurement is derived from propagation delay during network initialization. It is useful for roughly checking the expected cable lengths. Measurements are accurate to 8 meters. See MPISynqNetInfo.

SqNode Drive Count - Identifies the number of drives on a node. See MPISqNodeInfo.


Topology Mismatch Error

If the discovered topology does not match the expected topology, the MPI returns either:

To determine the cause of the topology mismatch, use mpiSynqNetTopologyDiscovered to compare the discovered topology with your expected topology from the previous successful network initialization.

The controller uses the following criteria to determine whether the discovered topology matches the expected topology:

  • Network Type
  • Node Count
  • Node Type
  • Node Option
  • FPGA VendorDevice

Previous | Next


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