Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND APPARATUS FOR CONFIGURATION OF A MOTION CONTROLLER
Document Type and Number:
WIPO Patent Application WO/2019/190778
Kind Code:
A2
Abstract:
In one aspect, a method of facilitating configuration of a motion controller by a user includes depicting, on a display, a set of configuration blocks, each configuration block representing a corresponding category of configuration parameters, among a universe of configuration parameters defined for a motion controller, each configuration block being configurable by a user based on the user entering corresponding configuration parameter values. The configuration blocks comprise an amplifier block, a motor block, an encoder and a hardware interface block. The configuration of the configuration blocks by the user is restricted according to a predefined hierarchical set of dependencies among the configuration blocks with respect to their corresponding configuration parameters.

Inventors:
ICHIMURA RYO (GB)
BLAKE STEPHEN (GB)
GHAZARIAN DRO (US)
GOVANDE ATUL R (US)
MORRIS CHRISTOPHER IAN (GB)
SWANTON MATTHEW (GB)
TAME ANTHONY (GB)
Application Number:
PCT/US2019/022485
Publication Date:
October 03, 2019
Filing Date:
March 15, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ICHIMURA RYO (GB)
BLAKE STEPHEN (GB)
GHAZARIAN DRO (US)
GOVANDE ATUL R (US)
MORRIS CHRISTOPHER IAN (GB)
SWANTON MATTHEW (GB)
TAME ANTHONY (GB)
International Classes:
G05B19/042
Other References:
None
Attorney, Agent or Firm:
MURPHY, Michael D. (US)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. A computer-implemented method of facilitating configuration of a motion controller by a user, the method comprising:

prompting a user to identify a topology in conjunction with initiating a corresponding motor configuration process in which a user logically adds a motor for control by the motion controller; and

within the motor configuration process:

restricting configuration by the user of one or more amplifier-related parameters, for compatibility with an amplifier targeted by the user for control by the motion controller, including restricting configuration by the user of a control type parameter and a signal type parameter for compatibility with the targeted amplifier, the control type parameter indicating the type of control to be effected by the motion controller with respect to the motor via the amplifier, and the signal type parameter indicating the type of signal to be output from the motion controller as the control signal;

restricting configuration by the user of one or more motor-related parameters, for compatibility with the targeted amplifier, including restricting configuration by the user of a motor type parameter for compatibility with the control type and signal type parameters configured by the user for the targeted amplifier; and

restricting configuration by the user of one or more encoder-related parameters, for compatibility with the identified topology and a detected hardware configuration of the motion controller, which configuration defines the types and number of encoder feedback signals that can be received and processed by the motion controller.

2. The method of embodiment 1, wherein restricting configuration by the user for a given configuration parameter for compatibility comprises identifying, within a universe of configuration parameters defined for the motion controller, one or more other configuration parameters on which the given configuration parameter depends, and limiting the user to selecting or inputting a value for the configuration parameter that is compatible with the one or more corresponding values selected or input by the user for the one or more other configuration parameters on which the given configuration parameter depends.

3. The method of embodiment 1, further comprising, as part of the motor configuration process, graphically depicting a set of configuration blocks, each configuration block exposing a related set of configuration parameters from among a universe of configuration parameters defined for the motion controller, and the set of configuration blocks including at least an amplifier configuration block for the user to identify and configure the targeted amplifier, a motor configuration block for the user to identify and configure the targeted motor, an encoder configuration block for the user to identify and configure the targeted encoder or encoders, and a hardware interface block for the user to configure connections between the motion controller and the targeted amplifier and the targeted encoder or encoders, and controlling the selectability or visual highlighting of the configuration blocks, to guide the user to select the configuration blocks in an order that reflects interdependencies between respective configuration parameters in the related sets of configuration parameters.

4. The method of claim 3, further comprising guiding the user to configure the amplifier block first, then configure the motor block, with configuration of the motor block restricted for compatibility with configuration of the amplifier block, then configure the encoder block, with configuration of the encoder block restricted for compatibility with the identified topology and with detected or assumed hardware of the motion controller, and then configure the hardware interface block, with configuration of the hardware interface block restricted for compatibility with the detected or assumed hardware of the motion controller and the detected or assumed control capabilities of the motion controller.

5. A method of facilitating configuration of a motion controller by a user, the method comprising:

depicting, on a display, a set of configuration blocks, each configuration block

representing a corresponding category of configuration parameters, among a universe of configuration parameters defined for a motion controller, each configuration block being configurable by a user based on the user entering corresponding configuration parameter values, and wherein the configuration blocks comprise an amplifier block for configuring an amplifier, a motor block for configuring a motor to be controlled by the motion controller via the amplifier, an encoder block for configuring an encoder associated with the motor, and a hardware interface block for configuring a control type to be implemented by the motion controller for the motor and corresponding motor-control signal types; and

restricting configuration of the configuration blocks by the user according to a predefined hierarchical set of dependencies among the configuration blocks with respect to their corresponding configuration parameters, including, for each configuration block that is dependent on a higher- level configuration block according to the hierarchical set of dependencies, restricting configuration of the dependent configuration block for compatibility with the configuration of the higher- level configuration block, and further restricting configuration of all configuration blocks for compatibility with an assumed or detected configuration of the motion controller;

wherein restricting the configuration of the configuration blocks includes restricting the configuration of the hardware interface block in dependence on the assumed or detected configuration of the motion controller, restricting configuration of the encoder block in dependence on a topology selected by the user, and restricting the configuration of the motor block in dependence on the configuration of the amplifier block; and

wherein the method further includes saving configuration data, including the

configuration parameter values input by the user, into a computer-readable medium, for subsequent retrieval by or loading into the motion controller.

6. The method of example embodiment 5, wherein depicting the set of configuration blocks on the display includes indicating the hierarchical set of dependencies to the user by at least one of: displaying connecting lines between interdependent ones of the depicted configuration blocks, spatially arranging the depicted configuration blocks according to the hierarchical set of dependencies, depicting the configuration blocks in a temporal sequence according to the hierarchical set of dependencies, and displaying an ordered list of configuration block names, ordered according to the hierarchical set of dependencies.

7. The method of example embodiment 5 or 6, further comprising prompting the user to configure the configuration blocks in an order defined by the hierarchical set of dependencies.

8. The method of example embodiment 7, wherein prompting the user to configure the configuration blocks in the order defined by the hierarchical set of dependencies comprises applying a visual emphasis effect to the depicted configuration blocks, one at a time, in an order corresponding to the hierarchical set of dependencies.

9. The method of example embodiment 7, wherein prompting the user to configure the configuration blocks in the order defined by the hierarchical set of dependences comprises restricting selectability of a given dependent configuration block by the user in dependence on whether the user has already completed configuration of the configuration block or blocks from which the given dependent configuration block depends.

10. The method of any of example embodiments 5-9, further comprising applying a visual emphasis effect to individual ones of the depicted configuration blocks, to indicate a positive or negative compatibility verification status of the configuration of the configuration block, with respect to the configuration of any higher- level configuration blocks in the hierarchical set of dependencies, and with respect to the assumed or detected configuration of the motion controller.

11. The method of any of example embodiments 5-10, further comprising receiving user input of configuration parameter values for configuring the depicted configuration blocks as one or more of keyboard input, menu item selections, and pointer input.

12. The method of any of example embodiments 5-11, wherein saving the configuration data comprises saving the configuration data subject to performing one or more verification operations, including verifying the compatibility of all user-input configuration parameter values with respect to configuration parameter interdependencies defined by the hierarchical set of dependencies and with respect to verifying the compatibility of all user-input configuration parameters with respect to the known or assumed configuration of the motion controller.

13. The method of any of example embodiments 5-12, wherein restricting the configuration of the configuration blocks comprises structuring a database containing the universe of configuration parameters according to the defined hierarchy of dependencies, such that a database query for the configuration parameters available for configuration by the user for each dependent configuration block is restricted to a subset that is compatible with the configuration of all higher-level configuration blocks in the hierarchical set of dependencies.

14. A computer system, comprising:

interface circuitry configured to obtain user input and output information to a display; and

processing circuitry operatively associated with the interface circuitry and configured to: depict, on the display, a set of configuration blocks, each configuration block representing a corresponding category of configuration parameters, among a universe of configuration parameters defined for a motion controller, each configuration block being configurable by a user based on the user entering corresponding configuration parameter values, and wherein the configuration blocks comprise an amplifier block for configuring an amplifier, a motor block for configuring a motor to be controlled by the motion controller via the amplifier, an encoder block for configuring an encoder associated with the motor, and a hardware interface block for configuring a control type to be implemented by the motion controller for the motor and corresponding motor-control signal types; and restrict configuration of the configuration blocks by the user according to a

predefined hierarchical set of dependencies among the configuration blocks with respect to their corresponding configuration parameters, including, for each configuration block that is dependent on a higher-level configuration block according to the hierarchical set of dependencies, restricting configuration of the dependent configuration block for compatibility with the configuration of the higher-level configuration block, and further restricting configuration of all configuration blocks for compatibility with an assumed or detected configuration of the motion controller;

wherein the processing circuitry is configured to restrict the configuration of the configuration blocks by restricting the configuration of the hardware interface block in dependence on the assumed or detected configuration of the motion controller, restricting configuration of the encoder block in dependence on a topology selected by the user, and restricting the configuration of the motor block in dependence on the configuration of the amplifier block; and

wherein the processing circuitry is further configured to save configuration data, including the configuration parameter values input by the user, into a computer-readable medium, for subsequent retrieval by or loading into the motion controller.

15. The computer system of example embodiment 14, wherein the processing circuitry is configured to depict the set of configuration blocks on the display by indicating the hierarchical set of dependencies to the user by at least one of: displaying connecting lines between interdependent ones of the depicted configuration blocks, spatially arranging the depicted configuration blocks according to the hierarchical set of dependencies, depicting the

configuration blocks in a temporal sequence according to the hierarchical set of dependencies, and displaying an ordered list of configuration block names, ordered according to the hierarchical set of dependencies.

16. The computer system of example embodiment 14 or 15, wherein the processing circuitry is configured to prompt the user to configure the configuration blocks in an order defined by the hierarchical set of dependencies.

17. The computer system of example embodiment 16, wherein the processing circuitry is configured to prompt the user to configure the configuration blocks in the order defined by the hierarchical set of dependencies by applying a visual emphasis effect to the depicted configuration blocks, one at a time, in an order corresponding to the hierarchical set of dependencies.

18. The computer system of example embodiment 16, wherein processing circuitry is configured to prompt the user to configure the configuration blocks in the order defined by the hierarchical set of dependences by restricting selectability of a given dependent configuration block by the user in dependence on whether the user has already completed configuration of the configuration block or blocks from which the given dependent configuration block depends.

19. The computer system of any of example embodiments 14-18, wherein the processing circuitry is configured to apply a visual emphasis effect to individual ones of the depicted configuration blocks, to indicate a positive or negative compatibility verification status of the configuration of the configuration block, with respect to the configuration of any higher- level configuration blocks in the hierarchical set of dependencies, and with respect to the assumed or detected configuration of the motion controller.

20. The computer system of any of example embodiments 14-19, wherein the processing circuitry is configured to receive user input of configuration parameter values for configuring the depicted configuration blocks as one or more of keyboard input, menu item selections, and pointer input.

21. The computer system of any of example embodiments 14-20, wherein the processing circuitry is configured to save the configuration data by saving the configuration data subject to performing one or more verification operations, including verifying the compatibility of all user-input configuration parameter values with respect to configuration parameter interdependencies defined by the hierarchical set of dependencies and with respect to verifying the compatibility of all user-input configuration parameters with respect to the known or assumed configuration of the motion controller.

22. The computer system of any of example embodiments 14-21, wherein the processing circuitry is configured to restrict the configuration of the configuration blocks by structuring a database containing the universe of configuration parameters according to the defined hierarchy of dependencies, such that a database query for the configuration parameters available for configuration by the user for each dependent configuration block is restricted to a subset that is compatible with the configuration of all higher-level configuration blocks in the hierarchical set of dependencies.

23. A non-transitory computer readable medium storing a computer program for facilitating configuration of a motion controller by a user, the computer program comprising instructions that, when executed by at least one processor of a computer system, cause the computer system to:

depict, on a display, a set of configuration blocks, each configuration block representing a corresponding category of configuration parameters, among a universe of configuration parameters defined for a motion controller, each configuration block being configurable by a user based on the user entering corresponding configuration parameter values, and wherein the configuration blocks comprise an amplifier block for configuring an amplifier, a motor block for configuring a motor to be controlled by the motion controller via the amplifier, an encoder block for configuring an encoder associated with the motor, and a hardware interface block for configuring a control type to be implemented by the motion controller for the motor and corresponding motor-control signal types; and restrict configuration of the configuration blocks by the user according to a predefined hierarchical set of dependencies among the configuration blocks with respect to their corresponding configuration parameters, including, for each configuration block that is dependent on a higher- level configuration block according to the hierarchical set of dependencies, restricting configuration of the dependent configuration block for compatibility with the configuration of the higher- level configuration block, and further restricting configuration of all configuration blocks for compatibility with an assumed or detected configuration of the motion controller;

wherein the processing circuitry is configured to restrict the configuration of the

configuration blocks by restricting the configuration of the hardware interface block in dependence on the assumed or detected configuration of the motion controller, restricting configuration of the encoder block in dependence on a topology selected by the user, and restricting the configuration of the motor block in dependence on the configuration of the amplifier block; and

wherein the method further includes saving configuration data, including the

configuration parameter values input by the user, into a computer-readable medium, for subsequent retrieval by or loading into the motion controller.

Description:
METHOD AND APPARATUS FOR CONFIGURATION OF A MOTION

CONTROFFER

TECHNICAL FIELD

The present invention generally relates to motion controllers, and particularly relates to improving the configuration process of a motion controller by a user.

BACKGROUND

Motion controllers provide precise control of various motor-driven machine elements, such as tool heads. In a typical example, a motion controller controls a motor by outputting a control signal to an amplifier that drives the motor, and by tracking movement of the motor via feedback signals from one more encoders associated with the motor.

Proper control of the motor requires proper configuration of the motion controller, which may require the user to input values for a large set of configuration parameters, including parameters related to the involved amplifier, motor, and encoder, along with parameters corresponding to the topology and desired type of motor control. Known approaches to facilitating configuration of a motion controller by a user include presenting the user with an on screen display of the parameters possible for configuration.

As an example, Fig. 1 depicts a graphical user interface (GUI) configuration display 100 for a motion controller, using an existing version of the POWERPMAC Integrated Development Environment (IDE), where POWERPMAC is a brand identifier for a range of motion controllers and supporting software offered by Delta Tau Data Systems, Inc. of Chatsworth, California. In the illustrated UI display 100, a motor can be added using an“Add Motor” button, illustrated by block 102. In block 104, all setting categories will appear for the motor to be added. User selection of a given one of these categories opens a configuration window allowing the user to input values for the configuration parameters included in the selected category. See the configuration block 106 shown in the figure. There are multiple parameters listed within each configuration block, with different parameters included in each category. The values of the configuration parameters chosen by the user and the order of configuration are left to the user’ s knowledge and experience, or lack thereof. Consequently, an inexperienced user may struggle with the configuration task and may input values for one or more configuration parameters that are incompatible with other configuration choices made by the user. As such, the user may accept for entry— see block 108— a configuration having one or more configuration values that are incompatible with other configuration settings. Fig. 2 illustrates a diagram of an existing internal structure 200 that supports the UI display 100 shown in Fig. 1. Fig. 2 shows how category data 202 is split into separate sets of related parameters, which are each displayed for the respective configuration category. A parameter set is a subset of parameter data for specifically related parameters and may be taken from an overall universe of configuration parameters defined for the motion controller, as seen in block 212. While the known configuration approaches provide for sophisticated user configuration of a motion controller, the conventional schema does not account for the complex interdependencies between various ones of the configuration parameters and leaves

inexperienced users unable to reliably or quickly configure such controllers for a targeted application.

SUMMARY

Methods, apparatuses, and computer-program products disclosed herein improve the process of configuring a motion controller by limiting the configuration options presented to the user for a given configuration parameter in view of the configuration choices made by the user for a parameter on which the given parameter depends. For example, the configuration choices made available to the user for specifying the type of motion control to be implemented may be restricted to the types of control supported by the motor amplifier identified by the user. In addition to limiting configuration choices made for dependent parameters, also referred to as subordinate parameters, the disclosed methods, apparatuses, and computer-program products also, in at least some embodiments, guide the user through the configuration process in a configuration order that reflects the hierarchy of dependencies among the configuration parameters.

In one embodiment, a computer-implemented method of facilitating configuration of a motion controller by a user includes multiple steps, including prompting a user to identify a topology in conjunction with initiating a corresponding motor configuration process in which a user logically adds a motor for control by the motion controller. Within the motor configuration process, the method includes restricting configuration by the user of one or more amplifier- related parameters, for compatibility with an amplifier targeted by the user for control by the motion controller, including restricting configuration by the user of a control type parameter and a signal type parameter for compatibility with the targeted amplifier, the control type parameter indicating the type of control to be effected by the motion controller with respect to the motor via the amplifier, and the signal type parameter indicating the type of signal to be output from the motion controller as the control signal; Further within the motor configuration process, the method includes: restricting configuration by the user of one or more motor-related parameters, for compatibility with the targeted amplifier, including restricting configuration by the user of a motor type parameter for compatibility with the control type and signal type parameters configured by the user for the targeted amplifier, and restricting configuration by the user of one or more encoder-related parameters, for compatibility with the identified topology and a detected hardware configuration of the motion controller, which configuration defines the types and number of encoder feedback signals that can be received and processed by the motion controller.

In the same or another embodiment, a method of facilitating configuration of a motion controller by a user includes depicting, on a display, a set of configuration blocks. Each configuration block represents a corresponding category of configuration parameters, among a universe of configuration parameters defined for a motion controller. Further, each configuration block is configurable by a user based on the user entering corresponding configuration parameter values, and the configuration blocks comprise an amplifier block for configuring an amplifier, a motor block for configuring a motor to be controlled by the motion controller via the amplifier, an encoder block for configuring an encoder associated with the motor, and a hardware interface block for configuring a control type to be implemented by the motion controller for the motor and corresponding motor-control signal types.

The method further includes restricting configuration of the configuration blocks by the user according to a predefined hierarchical set of dependencies among the configuration blocks with respect to their corresponding configuration parameters, including, for each configuration block that is dependent on a higher-level configuration block according to the hierarchical set of dependencies, restricting configuration of the dependent configuration block for compatibility with the configuration of the higher-level configuration block, and further restricting

configuration of all configuration blocks for compatibility with an assumed or detected configuration of the motion controller. Restricting the configuration of the configuration blocks includes restricting the configuration of the hardware interface block in dependence on the assumed or detected configuration of the motion controller, restricting configuration of the encoder block in dependence on a topology selected by the user, and restricting the configuration of the motor block in dependence on the configuration of the amplifier block. The method further includes saving configuration data, including the configuration parameter values input by the user, into a computer-readable medium, for subsequent retrieval by or loading into the motion controller.

In another embodiment, a computer system includes interface circuitry configured to obtain user input and output information to a display and processing circuitry operatively associated with the interface circuitry. The processing circuitry is configured to depict, on the display, a set of configuration blocks, each configuration block representing a corresponding category of configuration parameters, among a universe of configuration parameters defined for a motion controller, each configuration block being configurable by a user based on the user entering corresponding configuration parameter values. The configuration blocks comprise an amplifier block for configuring an amplifier, a motor block for configuring a motor to be controlled by the motion controller via the amplifier, an encoder block for configuring an encoder associated with the motor, and a hardware interface block for configuring a control type to be implemented by the motion controller for the motor and corresponding motor-control signal types.

The processing circuitry is further configured to restrict configuration of the

configuration blocks by the user according to a predefined hierarchical set of dependencies among the configuration blocks with respect to their corresponding configuration parameters, including, for each configuration block that is dependent on a higher-level configuration block according to the hierarchical set of dependencies, restricting configuration of the dependent configuration block for compatibility with the configuration of the higher- level configuration block, and further restricting configuration of all configuration blocks for compatibility with an assumed or detected configuration of the motion controller. Among the imposed restrictions, the processing circuitry is configured to restrict the configuration of the configuration blocks by restricting the configuration of the hardware interface block in dependence on the assumed or detected configuration of the motion controller, restricting configuration of the encoder block in dependence on a topology selected by the user, and restricting configuration of the motor block in dependence on the configuration of the amplifier block. The processing circuitry is also configured to save configuration data, including the configuration parameter values input by the user, into a computer-readable medium, for subsequent retrieval by or loading into the motion controller.

In another embodiment, a non-transitory computer readable medium stores a computer program for facilitating configuration of a motion controller by a user. The computer program comprises instructions that, when executed by at least one processor of a computer system, cause the computer system to depict, on a display, a set of configuration blocks, each configuration block representing a corresponding category of configuration parameters, among a universe of configuration parameters defined for a motion controller, and each configuration block being configurable by a user based on the user entering corresponding configuration parameter values. The configuration blocks include an amplifier block for configuring an amplifier, a motor block for configuring a motor to be controlled by the motion controller via the amplifier, an encoder block for configuring an encoder associated with the motor, and a hardware interface block for configuring a control type to be implemented by the motion controller for the motor and corresponding motor-control signal types.

The computer program further includes program instructions that, when executed by the computer system, cause the computer system to restrict configuration of the configuration blocks by the user according to a predefined hierarchical set of dependencies among the configuration blocks with respect to their corresponding configuration parameters. Restricting includes, for each configuration block that is dependent on a higher- level configuration block according to the hierarchical set of dependencies, restricting configuration of the dependent configuration block for compatibility with the configuration of the higher- level configuration block, and restricting configuration of all configuration blocks for compatibility with an assumed or detected configuration of the motion controller.

Among other instructions, the computer program includes program instructions that, when executed by the computer system, cause the computer system to restrict the configuration of the hardware interface block in dependence on the assumed or detected configuration of the motion controller, restrict configuration of the encoder block in dependence on a topology selected by the user, and restrict the configuration of the motor block in dependence on the configuration of the amplifier block. Further included instructions cause the computer system to save configuration data, including the configuration parameter values input by the user, into a computer-readable medium, for subsequent retrieval by or loading into the motion controller.

Of course, the present invention is not limited to the above features and advantages. Those of ordinary skill in the art will recognize additional features and advantages upon reading the following detailed description, and upon viewing the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Fig. 1 is an example illustration of an existing motion controller configuration display. Fig. 2 is a diagram of an existing logic structure corresponding to the display depicted in

Fig. 1.

Fig. 3A is a block diagram of a computer for configuring a motion controller, according to some embodiments.

Fig. 3B is a block diagram of a motion controller, according to some embodiments.

Fig. 4 is a process flow of a method for configuring a motion controller, according to some embodiments. Fig. 5 is a diagram of configuration blocks and related configuration parameters depicted on a display, according to some embodiments.

Fig. 6 is a block diagram of process flow and associated data for a motor configuration process, according to some embodiments.

Fig. 7 is a logic flow diagram of a known motor configuration process.

Fig. 8 is a logic flow diagram of an improved motor configuration process, according to some embodiments.

Fig. 9 is a logic flow of an improved motor configuration process, according to some embodiments.

Fig. 10 is a diagram of configuration blocks and related configuration parameters depicted on a display and representing a contemplated motor configuration process, according to some embodiments.

Figs. 11-13 are diagrams of configuration blocks corresponding to different example control topologies selectable by a user with respect to the motor configuration process represented by Fig. 10.

DETAILED DESCRIPTION

Fig. 3A illustrates one embodiment of a computer system 10 that can be used to configure a motion controller. The computer 10 may be the same computer system that operates as the motion controller in question, or it may be associated with or remote from it. In the latter case, the configuration data produced by the computer system 10 for the motion controller may be transferred to the motion controller via networked connection or by using detachable, computer-readable medium.

The example computer system 10 includes processing circuitry 16 and storage 18, along with user interface circuitry 26, that controls a display 28. The display 28 may be a monitor, an output for the monitor, a screen, a touchscreen or any other means of displaying information to a user. The user interface circuitry 26 may be operatively associated with the display 28 and/or a keyboard, mouse or other user interface means.

The computer system 10 may also include communication circuitry 30 that may include a communication interface or transceiver for communication with the corresponding motion controller and its components. The communication circuitry 30 may include, for example, discrete analog and/or digital I/O, and may include one or more data and control bus interfaces or other such circuitry for communicating with motion controllers or devices that provide computer-based control of electromechanical systems that include motors, encoders, etc. A power supply, not shown in Fig. 3 A, may or may not be included in the computer 10.

The processing circuitry 16 comprises programmed circuitry or fixed circuitry, or any combination of fixed and programmed circuitry. In an example embodiment, the processing circuitry 16 comprises one or more microprocessors, Digital Signal Processors (DSPs), Field Programmable Gate Arrays (FPGAs), or Application Specific Integrated Circuits (ASICs), or any mix thereof. At least a portion of such circuitry is obtained or realized based on one or more processors executing computer program instructions stored in a computer-readable medium (or media) included in the computer 10. For example, the storage 18 includes volatile or working memory and non-volatile or program memory used to store a computer program or programs for execution by one or more processors.

According to some embodiments, the processing circuitry 16 may be configured to perform a computer-implemented method of facilitating configuration of a motion controller by a user. Particularly, in at least some embodiments, the processing circuitry 16 is configured to perform a“motor configuration process” by which a user“adds” a motor to be controlled by the involved motion controller.

In the context of the motor configuration process, the processing circuitry 16 is configured to prompt a user to identify a topology in conjunction with user initiation of the motor configuration process. In this context, the“topology” may be understood as a top-level control topology selection, with example topologies being a“Single Feedback Type” topology, a “Dual Feedback Type” topology, and an“EtherCAT Type” topology. (EtherCAT denotes “Ethernet for Control Automation and the protocol is standardized in IEC 61158.) The processing circuitry 16 is also configured to, within the motor configuration process, restrict configuration choices by the user, based on a preprogrammed or otherwise defined set of dependencies among certain ones of the configuration parameters included in the universe of configuration parameters defined for the motion controller.

The restrictions imposed by the processing circuitry 16 include restricting configuration by the user of one or more amplifier-related parameters, for compatibility with an amplifier targeted by the user for control by the motion controller, including restricting configuration by the user of a control type parameter and a signal type parameter for compatibility with the targeted amplifier. The control type parameter indicates the type of motor control to be implemented, e.g., torque control, velocity control, position control, etc., by the motion controller with respect to the motor via the amplifier. The signal type parameter indicates the type of control signal— signal type— to be output from the motion controller as the control signal, e.g., analog, direct pulse width modulation (PWM), pulse frequency modulation, etc. Further, the processing circuitry 16 is configured to restrict configuration by the user of one or more motor-related parameters, for compatibility with the targeted amplifier, including restricting configuration by the user of a motor type parameter (e.g., brush, brushless, stepper, etc.) for compatibility with the control type and signal type parameters configured by the user for the targeted amplifier. The restricting further includes the processing circuitry 16 being configured to restrict configuration by the user of one or more encoder-related parameters, for compatibility with the identified topology and a detected hardware configuration of the motion controller, which configuration defines the types and number of encoder feedback signals that can be received and processed by the motion controller.

The processing circuitry 16 may be configured to perform a corresponding method of facilitating configuration of a motion controller by a user, as illustrated by method 900 in Figure 9. The method 900 includes prompting a user to identify a topology in conjunction with initiating a corresponding motor configuration process in which a user logically adds a motor for control by the motion controller (block 902). The method 900 also includes, within the motor configuration process, restricting configuration by the user. This includes restricting

configuration by the user of one or more amplifier-related parameters, for compatibility with an amplifier targeted by the user for control by the motion controller, including restricting configuration by the user of a control type parameter and a signal type parameter for

compatibility with the targeted amplifier (block 904). The control type parameter indicates the type of control to be effected by the motion controller with respect to the motor via the amplifier, and the signal type parameter indicates the type of signal to be output from the motion controller as the control signal.

Further restrictions imposed within the motor configuration process include restricting configuration by the user of one or more motor-related parameters, for compatibility with the targeted amplifier, including restricting configuration by the user of a motor type parameter for compatibility with the control type and signal type parameters configured by the user for the targeted amplifier (block 906). Still further, the method includes restricting configuration by the user of one or more encoder-related parameters, for compatibility with the identified topology and a detected hardware configuration of the motion controller, which configuration defines the types and number of encoder feedback signals that can be received and processed by the motion controller (block 908).

Restricting configuration by the user for a given configuration parameter for

compatibility may include identifying, within a universe of configuration parameters defined for the motion controller, one or more other configuration parameters on which the given configuration parameter depends. For example, the processing logic implemented via the processing circuitry 16 in one or more embodiments contains a hierarchical set of dependencies, where the hierarchical levels correspond to a defined order of configuration, and where the configuration choice made by the user for a given configuration parameter at one level of the hierarchical order dictates the configuration freedom provided to the user when configuring a lower- level parameter that depends on the higher-level parameter.

The user may be limited to inputting a value for the configuration parameter that is compatible with the one or more corresponding values selected or input by the user for the one or more other configuration parameters on which the given configuration parameter depends. The restrictions may be imposed by providing the user with a restricted subset of choices, limited only to compatible values, or by parsing user input and disallowing acceptance of the configuration if the input represents an incompatible choice.

The method 900 may further include, as part of the motor configuration process, graphically depicting a set of configuration blocks on the display 28, each configuration block exposing upon selection by the user of a related set of configuration parameters from among a universe of configuration parameters defined for the motion controller. The set of configuration blocks includes at least an amplifier configuration block for the user to identify and configure the targeted amplifier, a motor configuration block for the user to identify and configure the targeted motor, an encoder configuration block for the user to identify and configure the targeted encoder or encoders, and a hardware interface block for the user to configure the physical connections between the motion controller and the targeted amplifier and the targeted encoder or encoders. Configuring physical connections includes, for example, identifying the specific input/output channels or interfaces of the motion controller that are assigned for the amplifier and encoder connections.

Graphically depicting the set of configuration blocks also includes controlling the selectability or visual highlighting of the configuration blocks, to guide the user to select the configuration blocks in an order that reflects interdependencies between respective configuration parameters in the related sets of configuration parameters. For example, all possible

configuration blocks may be displayed on the display 28 and, in at least one embodiment, the spatial arrangement of the configuration blocks suggests the order of configuration flow, or otherwise suggests the hierarchical dependencies among the blocks. The configuration block that should be configured first may be active or selectable, and the remaining blocks may be inactive or unselectable. Visual cues, such as block color or other visual emphasis, are used in at least some embodiments, to ease user identification of the configuration order to be followed for the array of configuration blocks. Turning back with respect to the drawings, Fig. 3B illustrates another embodiment of a computer system configured to facilitate user configuration of a motion controller as contemplated herein. In distinction from Fig. 3A, Fig. 3B illustrates that a motion controller 40 may be configured to support the configuration process, either by incorporating user-interface components directly, or by including configuration interface circuitry that supports connection to user-interface components.

In the illustrated example, the motion controller 40 includes storage 42, processing circuity 44, and motion control interface circuitry 48. The storage 42 and the processing circuitry 44 may be configured to store data and execute computer program instructions, as described for the processing circuitry 16 and the storage 18 in Fig. 3 A. For example, the processing circuitry 44 may be configured to perform methods 400 and 900, shown in Figs. 4 and 9.

The motion control interface circuitry 48 is operative to output a control signal for a configured type of control and according to the configured type of signal, for driving an amplifier 50 that, in turn, drives a motor 60. The motion control interface circuitry 48 is further operative to receive one or more encoder feedback signals 72 from one or more encoders 70 that are associated with the driven motor 60. In this regard, it shall be understood that the processing circuitry 44 is operative to perform motion-control operations with respect to the amplifier/motor in accordance with programmed motion-control routines and the corresponding configuration settings made by the user.

As noted, the motion controller 40 may also include configuration interface circuitry 46 for interfacing with user interface 80. The user interface may include a keyboard 82 and mouse 84 so that a user can interact with configuration information that is shown on display 86. In some cases, the display 86 may be a touchscreen. Basically, the user interface 80 may use any known means for receiving user input. In some embodiments, the user interface 80 is separate from the motion controller 40 and the configuration interface circuitry 46 involves a transceiver for wireless communications or a data port for wired communications. In other embodiments, the user interface 80, or at least a portion of the user interface 80, is located on or co-located with the motion controller 40.

Figure 4 illustrates a corresponding example method 400 that may be implemented by the computer system 10 of Fig. 3A or by the motion controller 40 of Fig. 3B. Because the motion controller 40 includes or subsumes the computer system 10 in some embodiments, and because the focus here is the configuration process, future references will be to the computer system 10, unless referencing the motion controller 40 aids clarity. However, the reader will understand that the described functionality may be implemented in the motion controller 40. The method 400 is a computer-implemented method of facilitating configuration of a motion controller by a user, and it includes depicting, on a display 28, a set of configuration blocks, each configuration block representing a corresponding category of configuration parameters, among a universe of configuration parameters defined for a motion controller, each configuration block being configurable by a user based on the user entering corresponding configuration parameter values (block 402). The configuration blocks comprise an amplifier block for configuring an amplifier, a motor block for configuring a motor to be controlled by the motion controller via the amplifier, an encoder block for configuring an encoder associated with the motor, and a hardware interface block for configuring a control type to be implemented by the motion controller for the motor and corresponding motor-control signal types.

The method 400 includes restricting configuration of the configuration blocks by the user according to a predefined hierarchical set of dependencies among the configuration blocks with respect to their corresponding configuration parameters, including, for each configuration block that is dependent on a higher-level configuration block according to the hierarchical set of dependencies, restricting configuration of the dependent configuration block for compatibility with the configuration of the higher-level configuration block, and further restricting configuration of all configuration blocks for compatibility with an assumed or detected configuration of the motion controller (block 404). Restricting the configuration of the configuration blocks includes restricting the configuration of the hardware interface block in dependence on the assumed or detected configuration of the motion controller, restricting configuration of the encoder block in dependence on a topology selected by the user, and restricting the configuration of the motor block in dependence on the configuration of the amplifier block. The method 400 further includes saving configuration data, including the configuration parameter values input by the user, into a computer-readable medium, for subsequent retrieval by or loading into the motion controller (block 406).

The configuration values“input” by the user, through user interface circuitry 26/display 28 or user interface 80, may include keyboard input and indicated selections from drop-down menus, or other predefined lists. For example, user input of configuration parameter values for configuring the depicted configuration blocks may be received as typed keyboard input, menu item selections and/or pointer input. The configuration parameter values input by the user may also include values that are auto-populated based on one or more other user selections, such as the user selecting a known amplifier or motor from a database accessed during the configuration process. In such a case, the direct user input includes identification of the part number, and that identification then results in auto-population of one or more configuration parameters associated with the part, based on information previously stored in the database for the part number. Depicting the set of configuration blocks on the display 28 may include indicating the hierarchical set of dependencies to the user by at least one of: displaying connecting lines between interdependent ones of the depicted configuration blocks, spatially arranging the depicted configuration blocks according to the hierarchical set of dependencies, depicting the configuration blocks in a temporal sequence according to the hierarchical set of dependencies, and displaying an ordered list of configuration block names, ordered according to the hierarchical set of dependencies.

In one example of the contemplated configuration process, the user“adds” a motor to be controlled by the motion controller 40 by initiating a motor configuration process that prompts the user to identify the topology, e.g., the feedback control architecture. The amplifier is freely configurable by the user and it may be regarded as being at the top level of the hierarchy of dependencies. As such, the onscreen amplifier block may be the first block highlighted or made active for user interaction.

Once the user completes configuration of the amplifier, the user is guided to configure the motor, e.g., by highlighting or making active the onscreen motor block. User configuration of the motor block— i.e., the user inputting values for the configuration parameters belonging to the motor category— is constrained for compatibility with the amplifier configuration, e.g., the types of motor the user is permitted to configure are constrained by the control type and signal type selections made by the user for the amplifier.

Once the user completes configuration of the motor, the user is guided to configure the encoder(s), e.g., by highlighting or making active the onscreen encoder block. User configuration of the encoders is constrained for compatibility with the topology initially selected by the user and with the known or detected hardware configuration of the motion controller for which the configuration is being done.

Fig. 5 is an example of a new UI 20, according to some embodiments. This new UI 20 is realized, for example, via stored program data and processing operations carried out by the processing circuitry 16 of the computer system 10, for onscreen display via the display 28. In the example of Fig. 5, the UI 20 displays an“Add Motor” block 504 in response to user initiation of the motor configuration process. Correspondingly, the user is prompted to select a topology to be used with respect to the motor being added— the overall control or feedback topology. Example topologies seen in Block 506 include Single Feedback (one encoder channel), Dual Feedback (two encoder channels), Virtual, No Feedback, and EtherCAT.

The UI 20 then displays a graphical depiction of an overall set of configuration blocks, e.g., an“Amplifier Block,” a“Motor Block,” an“Encoder Block,” a“Hardware Interface Block,” and so on. See the arrangement of configuration blocks in the window 502 of the UI 20. Each configuration block is selectable, e.g., via mouse input, and the selection of a given block exposes a category view of the configuration parameters belonging to the configuration category represented by the block. The example illustration depicts the Motor Block in a selected state, with its“motor category” configuration parameters exposed on the right side of the display— i.e., in block 508.

According to some embodiments, the user is prompted to configure the configuration blocks in an order defined by the hierarchical set of dependencies. The prompting of the user to configure the configuration blocks in the order defined by the hierarchical set of dependencies may include applying a visual emphasis effect to the depicted configuration blocks, one at a time, in an order corresponding to the hierarchical set of dependencies. This visual emphasis may include darkening, greying or fading unprompted configuration blocks and/or highlighting or brightening prompted configuration blocks.

Further, a visual emphasis effect may be applied to individual ones of the depicted configuration blocks, to indicate a positive or negative compatibility verification status of the configuration of the configuration block, with respect to the configuration of any higher- level configuration blocks in the hierarchical set of dependencies, and with respect to the assumed or detected configuration of the motion controller. For example, once the user completes the configuration of the given configuration block, the onscreen color of the block may change and/or a visual cue such as a checkmark may be added to the block.

In some embodiments, prompting the user to configure the configuration blocks in the order defined by the hierarchical set of dependences may include restricting selectability of a given dependent configuration block by the user in dependence on whether the user has already completed configuration of the configuration block or blocks from which the given dependent configuration block depends.

As for completing the configuration of each configuration block, the user may be required to indicate“acceptance” of the input configuration parameter values, and the motor configuration program may perform a further or final overall compatibility check of the configuration parameter values, in view of any configuration dependencies and in view of the known or detected hardware configuration of the involved motion controller.

In the defined configuration order, acceptance of the amplifier configuration guides the user to the motor block, acceptance of the motor configuration guides the user to the encoder block, and acceptance of the encoder configuration guides the user to the hardware interface block. Acceptance of the hardware interface configuration guides the user to the next configuration block in the configuration process flow, which may be the interactive feedback block shown in the diagram, and then on to the Test and Set block, the Basic Tuning block, and the Commission block, for finalization and saving out of the configuration data, including the configuration parameter values input by the user.

As noted, certain configuration choices drive“downstream” or dependent choices and the motor configuration process contemplated herein builds expert knowledge of those hierarchical dependencies into the configuration process logic. For example, the control type input by the user limits certain other configuration choices available to the user. The control type defines the type of motor control to be implemented by the involved motion controller and is, e.g., position, velocity, torque, sinusoidal, direct PWM or direct micro stepping. Taking the example selection by the user of“position” as the control type, the amplifier interprets the control signal it receives from motion controller as a position command (e.g., this is common for piezoelectric motors). The velocity control type is used where the amplifier interprets the control signal it receives from motion controller as a velocity command. Torque control means that the amplifier interprets the control signal it receives from the motion controller as a torque command. Sinusoidal commutation indicates that two digital-to- analog converter (DAC) lines per motor are used to command an amplifier which performs sinusoidal commutation. Direct PWM control is the control type if a direct PWM amplifier is used, where a PWM control signal is expected.

Correspondingly, the control signal types may be an analog command, a PWM command or a step and direction command. The signal type is an analog command if the amplifier expects to receive an analog voltage. The signal type is a PWM command if the amplifier expects to receive a PWM signal as its control signal. The signal type is a step and direction command if the amplifier expects a step and direction (PFM) command as its control signal.

For example, the motion controller can provide a torque control type signal to an amplifier using an analog signal command (+10V to -10V). The amplifier drives the motor, and the encoder provides feedback to the motion controller from the motor. The control and signal types are dictated by the connected amplifier. Supporting control and signal types are dictated by the hardware interface. In this example, if the amplifier accepts torque control commands and analog signal types, then the motion controller must have the supporting hardware interface that can generate these control and signal types. This entire relational logic is defined in a database with the internal structure of the computer 10. Therefore, the hardware interface configuration blocks are restricted for the user based on the control and signal types that are involved, in accordance with the hierarchal set of dependencies.

The Interactive Feedback configuration block shown in Fig. 5 allows the user to move the motor via the motion controller and verify the feedback control flow, at least when the motor configuration process is run on the involved motion controller or is ran on a computer system in communication with the involved motion controller. Upon configuration and acceptance of the hardware interface configuration block parameters, the motor configuration process proceeds to Test and Set of the configuration. The Test and Set configuration block and its underlying program functionality runs a configuration test (logical block) that is determined in dependence on the amplifier, motor, control type, signal type, encoder type, etc.

The configuration flow then proceeds to a Basic Tuning configuration block, which may involve some further internal automatic tuning that is not visible to the user. The configuration and data parameters can be stored in the computer 10, represented by data parameters 24 in Fig. 3. The motor configuration process culminates with the Commission configuration block. The “commissioning” of the configuration to the motion controller may involve guiding the user to set up the necessary parameters for the overall system, which includes the“thing” or“things” being driven by the motor. All the preceding configuration blocks are for setting up the motors, amplifiers, etc., whereas the Commission configuration block incorporates settings for the overall system (e.g., maximum velocity, jerk, etc.).

The configuration data may be saved by saving the configuration data subject to performing one or more verification operations, including verifying the compatibility of all user- input configuration parameter values with respect to configuration parameter interdependencies defined by the hierarchical set of dependencies and with respect to verifying the compatibility of all user-input configuration parameters with respect to the known or assumed configuration of the motion controller.

The motor configuration process embodied in the UI 20 shown in Fig. 5 is supported by a new internal structure 22, which is shown in Fig. 6 and which may be implemented in the computer system 10 of Fig. 3A. The new structure 22 may be understood as a set of relational or conditional processing logic 610 that interrelates categories of configuration parameters and/or respective ones of the configuration parameters within the defined universe of configuration parameters, based on dependency data 606.

The structure 22 may be based on a database implementation that includes category data 602, for each category of configuration parameters. The database also captures, as user input, the control type (seen in control type data 604), and includes dependency data 606, which identifies the interdependencies between certain ones of the configuration parameters. That is, the dependency data 606 captures the hierarchical set of dependencies that are used to restrict user input for certain configuration parameters in dependence on the configuration choices made by the user with respect to certain other configuration parameters— i.e., the value input by the user for a configuration parameter in one category of parameters may, in the hierarchal arrangement, be a controlling selection with respect to one or more other configuration parameters in one or more other categories. These dependent configuration parameters shall be understood as occupying one or more lower levels in the hierarchy of dependencies, but they may also have one or more parameters depending from them.

The dependency data 606 can be a universal set of definitions that define the order of how the parameter sets appear in the configuration flow. Accordingly, restricting the configuration of the configuration blocks may include structuring a database containing the universe of configuration parameters according to the defined hierarchy of dependencies, such that a database query for the configuration parameters available for configuration by the user for each dependent configuration block is restricted to a subset that is compatible with the configuration of all higher-level configuration blocks in the hierarchical set of dependencies.

The configuration flow of the new UI 20, as supported by the structure 22, for example, can also be illustrated by the differences between a known motor configuration process shown in Fig. 7 and the improved motor configuration process disclosed herein and shown by way of example in Fig. 8. In Fig. 7, the steps include a user clicking the Add Motor button 102 in the UI 100. The Add Motor button 102 instructs the Categories Display View 104 to display categories, without restriction. The Add Motor button 102 also instructs a control type selection view. The Categories Display View 104, via logic 110, gets the category data and displays it in

configuration block 106. There is no restriction or guidance based on the dependencies between an amplifier configuration and a motor configuration, between a motor configuration and an encoder configuration, or between the motor and encoder configurations and a hardware interface configuration. Thus, the order in which the user performs the overall configuration is not guided, and the critical interdependencies between certain configuration parameters are not illustrated for the user, nor is the user prevented from making incompatible configuration choices.

However, as shown in Fig. 8, according to some embodiments, the categories chart view 502 shows a configuration flow with configuration blocks that are restricted from using the control type data 604 and the hierarchal set of dependencies in the dependency data 606. In other words, the logic 610 of the internal structure 22 uses a module to get not only category data but includes modules to get control types and dependency data to restrict configuration blocks in the categories chart view 502.

To reiterate an example set of key dependencies that may be captured in the dependency data 606 shown in Fig. 6, the control type available for selection by the user is dictated by the amplifier selected by the user, the signal type of the control signal is also dictated by the amplifier. In turn, the control type and signal type selections made with respect to the amplifier dictate the motor configuration options made available to the user, i.e., they restrict the type of motor that can be used. Further, the known or detected configuration of the motion controller determines the compatibility and available selections presented to the user for configuring the interfaces between the motion controller and the amplifier and any encoders. Still further, the topology selection made by the user dictates how many encoder channels are active for motor control, and the detected PMAC hardware dictates what type of encoder feedback is supported.

All such restriction logic may be incorporated into the processing underlying the structure 22 shown in Fig. 6 or, more generally, into the improved motor configuration process contemplated herein, by appropriate configuration of a database query engine. Here, the database query“engine” may be understood as the processing logic instantiated via the processing circuitry 16 of the computer system 10, which may be implemented by or included in a motion controller 40. In one such example implementation, the query engine accepts the topology, the control type, the control-signal type, and the detected motion controller configuration as inputs, and uses those inputs in a relational database structure to constrain the database results returned for any given configuration block involved in one or more of the dependencies. That is, the database query can be understood as returning a subset of configuration parameters to be made available for configuration by the user for the involved configuration block, where the subset and the values allowed for input by the user are constrained according to the dependencies.

Fig. 10 illustrates another example of guiding a user through an improved motor configuration process according to one or more embodiments. The computer system 10 displays an“Add Motor” block that represents an initial motor configuration process step and includes or provides a mechanism for receiving user input that indicates the overall topology to be used for controlling the motor being added. Example topology selections include Single Feedback (one channel of encoder feedback), Dual Feedback (two channels of encoder feedback), EtherCAT, etc.

The example motor configuration process, as implemented via the computer system 10, then displays a set of configuration blocks that reflect the selected topology. Figure 11 , for example, illustrates an example set of configuration blocks depicted on the display 28, for the Single Feedback Type topology selection. The single-feedback topology selection is reflected in the graphical depiction of the one encoder feedback signal going from the depicted encoder block to the depicted hardware interface block.

As detailed earlier, the graphical depiction may be arranged and controlled to (a) suggest the hierarchical dependencies between the configuration blocks and their respective categories of configuration parameters, and (b) guide the user to configure the blocks in the“correct” order— i.e., the order driven by the hierarchical dependencies. In one example, the amplifier block is initially highlighted or made active (selectable) and the remaining blocks are not highlighted or grayed out or are otherwise made inactive (not selectable). Upon completing configuration of the amplifier block, the motor configuration process would then highlight the motor block, or otherwise make the motor block selectable for configuration by the user. Moreover, the motor configuration parameters made available for configuration by the user and/or the configuration values permitted for one or more motor configuration parameters are restricted in dependence on corresponding amplifier configuration choices made by the user. As one example, the control type (e.g., position, velocity, torque, etc.) and signal type (e.g., analog, PWM, PFM, etc.) configuration selections made by the user in the amplifier configuration block dictate the motor type or types that the user is permitted to select in the motor configuration block. That is, the motor configuration process limits the user’ s ability to configure the motor type to those settings or values that are compatible with the control type and signal type selections made for the control signal to be output.

Upon completing the motor block configuration, the motor configuration process would then highlight the encoder block, or otherwise make the encoder block selectable for configuration by the user. Advantageously, the motor configuration process constrains the encoder configuration by the user, based on the topology selection made by the user and, here or at a further point in the process flow, based on the known or detected configuration of the motion controller 40. As a constraint example, selection of the Single Feedback Type topology by the user at the commencement of the motor configuration process results in the motor configuration process— i.e., the processing logic the embodies the process— constraining the encoder feedback configuration to a single channel of encoder feedback.

Upon completing the encoder block configuration, the motor configuration process would then highlight the hardware interface block, or otherwise make the hardware interface block selectable for configuration by the user. Advantageously, the motor configuration process constrains the hardware interface configuration by the user according to the known or detected hardware configuration of the motion controller 40. If the motor configuration process runs on the motion controller 40 or has access to the motion controller 40, the configuration— i.e., installed hardware, software, or identified capability set— of the motion controller 40 can be detected in conjunction with running the motor configuration process, or such information can be read from a file or other stored data representing the current configuration of the motion controller 40.

As another advantageous improvement, the motor configuration process constrains the interface configuration selections made by the user, to enforce compatibility between the interface selections, e.g., the hardware channels or input/output selections made by the user, and the corresponding signal types of the output control signal and the input encoder signal(s). Figure 12 illustrates an example graphical depiction of a set of configuration blocks associated with the motor configuration process, for the Dual Feedback Type topology, which provides for two encoder feedback channels. Finally, Fig. 13 illustrates an example graphical depiction of a set of configuration blocks associated with the motor configuration process, for the EtherCAT Type topology. Note that the selected topology may appear as a label onscreen, or may otherwise be visually indicated onscreen, to remind the user of selected topology.

Notably, modifications and other embodiments of the disclosed invention(s) will come to mind to one skilled in the art having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the invention(s) is/are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of this disclosure. Although specific terms may be employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.