System and method for implementing a position synchronized output (PSO) control strategy

JP2025506531A5Pending Publication Date: 2025-12-01ミクロコントロールスペクトラフィジクス
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024548571
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-02-16
Filing Date
2022-12-22
Publication Date
2025-12-01

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A control system (200) for controlling a device (202) capable of performing an action on a workpiece based on a spatial relationship between the device (202) and the workpiece, the spatial relationship being adjustable using at least one actuator (204), includes a primary node controller (206') communicatively coupled to the device and at least one secondary node controller (206") communicatively coupled to the primary node controller (206'). Each secondary node controller (206") is adapted to receive encoder feedback from an actuator (204) representative of a position of a mechanical load associated with an actuator of the at least one actuator (204), perform a data compression algorithm on the encoder feedback to encode the encoder feedback, generate a data packet representative of the encoder feedback, and transmit the data packet. The primary node controller (206') is capable of receiving and decode the data packet and controlling an action of the device based on the decoded data packet.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] Technical field of the invention DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Embodiments of the present invention relate to systems and methods for implementing a control strategy with position synchronized output (PSO). [Background technology]

[0002] Technical background The PSO technique is used in conjunction with a motion control system that generates a PSO trigger signal synchronized to a feedback position of one or more actuators (e.g., driven by a servo motor). The PSO trigger signal is typically used as a trigger to cause a laser to fire a laser pulse (or actuate another device). The servo motor typically includes a position feedback mechanism, such as a rotary quadrature encoder (i.e., a type of incremental encoder), that generates a quadrature feedback signal that emulates a motor commutation signal associated with the servo motor, with an index pulse added. See, for example, FIG. 1, in which waveforms OUTA and OUTB represent the emulated motor commutation signal, and waveform OUTZ represents the index pulse. The quadrature feedback signal is output to a servo driver, which processes the OUTA, OUTB, and OUTZ waveforms to determine the position of the encoder shaft of the encoder. The servo driver generates a unique multi-bit word of data (typically consisting of at least 28 bits, also referred to as a "position data unit") that represents the position of the encoder shaft relative to a reference position (typically a "home" position determined at power-up). The servo driver transmits the position data units as position data packets embedded in a position feedback signal to a motion controller adapted to implement the PSO technique.

[0003] Circuits within a servo driver have a maximum frequency response that limits how fast they can generate and transmit position data signals. The frequency response, when combined with the speed of the application, imposes a practical upper limit on the resolution obtainable for a particular motion system and encoder. In this case, the maximum frequency response of the servo driver is proportional to the servo motor speed (e.g., measured in m / s) divided by the encoder resolution (e.g., measured in nm). Thus, for certain applications that use PSO techniques (also referred to herein as "PSO applications"), a compromise must be made between servo motor speed and encoder resolution to ensure that the maximum frequency response of the servo driver is not exceeded. Otherwise, position errors and degradation of the position feedback signal will occur. However, some PSO applications (e.g., involving laser machining) would benefit from high servo motor speeds and high encoder resolutions, but require a servo driver that can generate position data signals faster than can be obtained with conventional methods. Summary of the Invention

[0004] Summary of the Invention An embodiment described herein may be generally described as a control system for controlling a device capable of performing an action on a workpiece based on a spatial relationship between the device and a workpiece, the spatial relationship being adjustable using at least one actuator, the control system comprising: a primary node controller communicatively coupled to the device, adapted to control an action of the device; and at least one secondary node controller communicatively coupled to the primary node controller. According to an embodiment of the invention, the at least one secondary node controller (or each secondary node controller) is adapted to receive from the actuator an encoder feedback representative of a position of a mechanical load associated with an actuator of the at least one actuator, perform a data compression algorithm on the encoder feedback to encode the encoder feedback, generate a data packet representative of the encoder feedback, and transmit the data packet. According to an embodiment of the invention, the primary node controller is further adapted to receive the data packet, decode the data packet, and control an action of the device based at least in part on the decoded data packet.

[0005] According to an embodiment of the present invention, the control system further comprises the device.

[0006] According to an embodiment of the present invention, the device includes at least one selected from the group consisting of a laser and a sensor.

[0007] According to an embodiment of the present invention, the control system further comprises the at least one actuator.

[0008] According to an embodiment of the present invention, the at least one actuator includes a linear actuator.

[0009] According to an embodiment of the present invention, the at least one actuator is mechanically coupled to the workpiece.

[0010] According to an embodiment of the present invention, the control system further comprises a plurality of secondary node controllers.

[0011] According to an embodiment of the present invention, the control system further comprises a plurality of actuators. [Brief description of the drawings]

[0012] BRIEF DESCRIPTION OF THE DRAWINGS [Figure 1] FIG. 1 is a chart illustrating waveforms of emulated motor commutation signals for a quadrature encoder. [Diagram 2] FIG. 2 illustrates a schematic diagram of a workpiece processing control system according to an embodiment of the present invention. [Diagram 3] FIG. 3 is a cross-sectional flowchart illustrating an exemplary process by which a PSO application can be performed, according to one embodiment of the present invention. [Figure 4] FIG. 4 is a timing diagram illustrating, inter alia, the information content of a hybrid position data packet conveyed by a position feedback signal, according to one embodiment. [Diagram 5] FIG. 5 is a timing diagram illustrating how signals transmitted on various lines of a communication link can be synchronized, according to one embodiment. [Figure 6] FIG. 6 is a flowchart illustrating an example process that may determine a position of an actuator corresponding to a secondary node controller, according to one embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0013] Detailed Description of the Invention Hereinafter, examples of embodiments will be described with reference to the accompanying drawings. Unless explicitly stated, in the drawings, the sizes, positions, etc. of components, features, elements, etc. and the distances between them are not necessarily drawn to scale and are exaggerated for ease of understanding.

[0014] The terms used in the specification are for the purpose of describing particular exemplary embodiments only and are not intended to be limiting. As used herein, the singular is intended to include the plural unless the content clearly indicates otherwise. Furthermore, it should be understood that the terms "comprises" and / or "comprising", when used herein, identify the presence of the stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. Unless otherwise specified, when a range of values ​​is listed, the range includes both the upper and lower limits of the range as well as any subranges therebetween. Unless otherwise indicated, terms such as "first" and "second" are only used to distinguish elements from one another. For example, one node may be referred to as a "first node" and similarly another node may be referred to as a "second node" or vice versa. Section headings used herein are for organizational purposes only and should not be construed as limiting the subject matter described.

[0015] Unless otherwise indicated, terms such as "about," "approximately," and the like mean that amounts, sizes, compositions, parameters, and other quantities and characteristics are not, and need not be, exact, but may be approximated and / or larger or smaller, as appropriate, to reflect tolerances, conversion factors, rounding, measurement error, and the like, as well as other factors known to those of ordinary skill in the art.

[0016] Unless otherwise indicated, spatially relative terms such as "below," "lower," "lower side," "upper," and "above" may be used herein for ease of description in describing the relationship of an element or feature to other elements or features as depicted in the figures. It should be understood that spatially relative terms are intended to include different orientations in addition to those depicted in the figures. For example, an element described as being "below" or "below" another element or feature would be oriented "above" the other element or feature if the object in the figure were inverted. Thus, the exemplary term "below" may include both an upward and downward orientation. If an object is oriented in another way (e.g., rotated 90 degrees or at another orientation), the spatially relative descriptors used herein may be interpreted accordingly.

[0017] Like numbers refer to like elements throughout the drawings, and thus the same or similar numbers may be described with reference to other drawings even if not mentioned or described in the corresponding drawing, and elements that are not numbered may be described with reference to other drawings.

[0018] It will be appreciated that many different forms and embodiments are possible without departing from the spirit and teachings of the present disclosure, and that the disclosure should not be construed as limited to the example embodiments set forth herein, but rather, these examples and embodiments are provided so that this disclosure will be complete and all-inclusive, and will fully convey the scope of the disclosure to those skilled in the art.

[0019] I. EMBODIMENTS GENERALLY RELATING TO A WORKPIECE PROCESSING SYSTEM FIG. 2 illustrates a schematic diagram of a workpiece processing control system according to an embodiment of the present invention.

[0020] Referring to FIG. 2, a workpiece processing system such as system 200 is configured to execute a position synchronized output (PSO) application whereby the movement of a tool (or device) 202 is controlled based on the feedback position of one or more actuators 204a, 204b, 204c, 204n (collectively referred to herein as “actuators” or “actuators” 204).

[0021] Tool 202 may be provided as a laser, a light shutter, a camera, a sensor, an ultrasonic transducer, etc. Thus, operations that tool 202 may be configured to perform may include emitting a laser pulse (e.g., if the tool is a laser), transmitting light (e.g., if the tool is a light shutter), acquiring an image (e.g., if the tool is a camera), acquiring data (e.g., if the tool is a sensor), triggering non-destructive testing (e.g., if the tool is an ultrasonic transducer), etc.

[0022] Generally, the actuator 204 can move the tool 202 relative to the workpiece or move the workpiece relative to the tool 202. To this end, the actuator 204 can be provided as a motorized stage, a voice coil stage, a piezoelectric stage, etc. that can move the workpiece or the tool. Examples of such stages include linear stages, rotary stages, hexapod platforms, etc. If the tool 202 is a laser, the actuator 204 can change the path along which the laser pulse can propagate (also referred to herein as a "propagation path"). In this case, the actuator 204 can be provided as a galvanometer mirror (also known as a "galvo"), a polygon mirror, etc. To simplify the discussion of the embodiments described herein, it should be understood that the actuator 204 can be provided as any suitable or known assembly of components including a motor of some type (e.g., electric motor, voice coil, piezoelectric flexure, etc.) that provides motion, and a sensing device (e.g., an encoder) that provides feedback (e.g., in the form of a feedback signal) that can be used to determine position, count, speed, direction, etc. According to the embodiments described herein, the encoder may be provided as any suitable encoder, such as an AquadB incremental encoder, an analog sin / cos incremental encoder, or the like.

[0023] In general, different actuators 204 may be arranged and configured to provide motion along different axes or along common or parallel axes, in which case the actuators 204 are typically actuated synchronously (using suitable or known in the art motion control techniques) to ensure desired movement of the workpiece, tool and / or propagation path in one or more spatial dimensions.

[0024] Generally, the system 200 includes a system controller 201 and a number of node controllers 206a, 206b, ... 206n (also collectively referred to herein as "node controllers" or "node controllers" 206), each of which is communicatively coupled to a corresponding actuator 204. Although Figure 2 illustrates an embodiment of the system 200 having "n" sets of actuators 204 and node controllers 206 (where n is an integer greater than 3), it will be appreciated that the system 200 may have only two or only three sets of actuators 204 and node controllers 206.

[0025] The system controller 201 is configured to define how the tool 202 and actuators 204 are actuated relative to the workpiece to perform or execute a PSO application. Thus, the system controller 201 executes any suitable or known motion control strategy to define how the actuators 204 are actuated to move the workpiece, the tool 202, and / or the propagation path (e.g., if the tool 202 is a laser). The system controller 201 can also define how the tool 202 is actuated (e.g., based on the spatial relationship between the tool 202 and the workpiece) to perform a PSO application. The system controller 201 may be provided as any known or suitable controller capable of generating and sending device commands according to one or more protocols, such as EtherCAT, Profinet, EtherNET / IP, Powerlink, SERCOS III, Modbus TCP, CC-Link IE, etc. The system controller 201 may be communicatively coupled (e.g., via a network 205) to a motion machine interface (MMI) 203 that allows a user to interact with the system 200 in any manner known in the art. Alternatively, the MMI may be embedded within the system controller 201 .

[0026] Device commands output by the system controller 201 are transmitted over one or more communication links 207, which may be wired or wireless, serial or parallel, to the node controllers 206. Although the communication links 207 of the system 200 are illustrated as a network having a line topology, it will be appreciated that the communication links 207 may be rearranged into any other suitable or desired network topology (e.g., a tree, a ring, a star, etc.).

[0027] Each node controller 206 is communicatively coupled to a corresponding actuator 204 (e.g., via one or more wired or wireless serial or parallel communication links, as known in the art). Further, each node controller 206 is configured to control the operation of its corresponding actuator 204 (e.g., in response to received device commands, as described above). For example, node controller 206a is configured to control the operation of actuator 204a (as indicated by arrow 208 between node controller 206a and actuator 204a), node controller 206b is similarly configured to control the operation of actuator 204b, and so on. Each node controller 206 may be implemented as any known or suitable device (e.g., a servo motor, etc.) capable of driving actuator 204 in response to device commands output by system controller 201. In addition, each node controller 206 may include one or more processors and tangible media (e.g., computer memory) accessible to the processors to implement the functionality of both a primary node controller 206′ or a secondary node controller 206″ (both of which are described in more detail below), depending on whether a tool 202 operated by a PSO application is communicatively coupled to it.

[0028] The processor may be provided as a programmable processor (e.g., including one or more general purpose computer processors, microprocessors, digital signal processors, etc., or any combination thereof) capable of executing instructions to implement the functions of the primary node controller 206′ and the secondary node controller 206″ described below. The instructions executable by the processor may be implemented in software, firmware, etc., or in any suitable form of circuitry, including programmable logic devices (PLDs), field programmable gate arrays (FPGAs), field programmable object arrays (FPOAs), application specific integrated circuits (ASICs) including digital, analog, and mixed analog / digital circuits, or the like, or any combination thereof. Execution of the instructions may occur on one processor, The instructions may be distributed across multiple processors, in parallel across multiple processors within a device or across a network of devices, or the like, or any combination thereof. Computer memory may include magnetic media (e.g., magnetic tape, hard disk drive, etc.), optical disks, volatile or non-volatile semiconductor memory (e.g., RAM, ROM, NAND flash memory, NOR flash memory, SONOS memory, etc.), and may be locally accessible, remotely accessible (e.g., over a network), or any combination thereof. In general, instructions may be stored as computer software (e.g., executable code, files, instructions, etc., library files, etc.). Such computer software may be written, for example, in C, C++, Visual Basic, Java, Python, Tel, Perl, Scheme, Ruby, assembly language, hardware description language (e.g., VHDL, VERILOG, etc.), etc., and may be readily produced by one of ordinary skill in the art from the description set forth herein. Computer software is typically stored in one or more data structures carried by computer memory.

[0029] The actuators 204 may communicate data or information, such as a feedback signal (e.g., communicating information derived from the feedback position of the actuator, as described in more detail below), to their corresponding node controllers 206, as indicated by the arrow 210 therebetween.

[0030] When a node controller 206 is communicatively coupled to a tool that is actuated in response to a PSO trigger signal, such as tool 202, the corresponding node controller 206 is referred to herein as a “primary node controller” (e.g., designated herein by reference numeral 206′). Otherwise, the node controller 206 is referred to herein as a “secondary node controller” (e.g., designated herein by reference numeral 206″). Thus, in the example embodiment shown in FIG. 2, node controller 206a may be considered the primary node controller (also designated herein by reference numeral 206′), and node controllers 206b, 206c, ..., 206n may each be considered a secondary node controller 206″.

[0031] When executing a PSO application according to an embodiment of the present invention, generation of a PSO trigger signal at the primary node controller 206′ is synchronized with (i.e., conditioned on) a position feedback signal output by one or more of the secondary node controllers 206″. Synchronizing the operation of the primary node controller 206′ with the secondary node controllers 206″ is facilitated by transmitting data over the communication links 212 (e.g., each communication link 212 is implemented as one or more wired or wireless serial or parallel communication links as known in the art). In one embodiment, the communication links 212 are implemented as Ethernet patch cables (e.g., terminated with RJ45 connectors).

[0032] II. EMBODIMENTS FOR A PROCESS FOR EXECUTING A PSO APPLICATION As discussed above, servo drivers are limited in the speed at which they can generate and transmit position data signals, which places constraints on how fast an actuator can be driven and / or how fine the encoder resolution can be. Thus, as described in more detail below, embodiments of the present invention may overcome traditional constraints on actuator speed and / or encoder resolution in PSO applications by implementing control techniques that generate, transmit, and process data packets that represent different position-based characteristics associated with one or more actuators.

[0033] FIG. 3 is a cross-sectional flowchart illustrating an exemplary process by which a PSO application can be performed, according to one embodiment of the present invention.

[0034] Referring to FIG. 3, a process for executing a PSO application such as process 300 may be distributed among a system controller 201, a primary node controller 206′ (and its corresponding tool 202), and at least one secondary node controller 206″ (and at least one corresponding actuator 204). To simplify the explanation of process 300, the following description continues with the example configuration of devices 202 and node controllers 206 described above. That is, node controller 206a is the primary node controller 206′, and node controllers 206b, 206c, ..., 206n are secondary node controllers 206″.

[0035] At S302, the process 300 begins or starts with a pre-processing step in which a homing command is sent from the system controller 201 in the system 200 to each node controller 206 to initiate a homing process.

[0036] In S304, in response to the homing command, each node controller 206 actuates its corresponding actuator 204 (e.g., by sending an electrical drive current to the actuator 204), and a feedback signal generated by the sensing device of the actuator 204 is output back to the node controller 206 (e.g., as indicated by arrow 210 shown in FIG. 2). The node controller 206 then processes the feedback signal to derive a home position data unit that fully represents the position of its corresponding actuator 204 before the desired motion profile or trajectory was executed (i.e., the "home" position of the actuator 204). In an embodiment in which the sensing device includes an encoder, the home position of the actuator may be represented as the position of the encoder axis of the encoder. The home position is then transmitted from each node controller 206 to the system controller 201 (e.g., via one or more communication links 207 shown in FIG. 2). Thus, in S304, the home positions of some or all of the actuators are obtained.

[0037] In S306, the system controller 201 determines at least one PSO trigger position for one or more actuators 204 after receiving the home position data units associated with each actuator 204. As used herein, a "PSO trigger position" corresponds to a position to be obtained by an actuator 204 (e.g., determined at least in part based on feedback provided by a sensing device of the actuator, as known in the art) when it is determined that a PSO trigger signal is required or to be output to the tool 202. When the PSO trigger signal is output (and thereby the tool 202 is actuated), the relative positions of the workpiece and the tool 202 (or the relative positions of the workpiece and the propagation path) are such that the desired position of the workpiece is subject to the action of the tool 202. Thus, at the PSO trigger positions, the desired positions of the workpiece may be illuminated with a laser pulse (e.g., if the tool is a laser), exposed to light (e.g., if the tool is an optical shutter), imaged (e.g., if the tool is a camera), sensed (e.g., if the tool is a sensor), non-destructively inspected (e.g., if the tool is an ultrasonic transducer), or the like. As can be appreciated, a group of related PSO trigger positions for at least a portion of the actuators 204 may be obtained at least substantially contemporaneously with executing a PSO application.

[0038] In one embodiment, a PSO trigger position for an actuator 204 may be determined by adding the home position of that actuator 204 to a preliminary PSO trigger position corresponding to the actuator 204. In this case, the preliminary PSO trigger position may be obtained or derived from a data file or data structure or object accessible to the system controller 201 that describes the desired motion of the tool (as described above) in conjunction with a desired motion profile or trajectory to be affected by actuating one or more actuators 204. The system controller 201 sends the PSO trigger position (e.g., via communication link 207) to the primary node controller 206', where it is stored (see S308). Thereafter, at S308, one or more trigger positions are obtained.

[0039] In S310, the motion profile / trajectory is executed. In S310, one or more actuator device commands are sent from the system controller 201 to each secondary node controller 206" in the system 200 to move the workpiece, tool and / or propagation path (e.g., according to the motion profile). It should be understood that a series of actuator device commands may be sent over time (e.g., periodically or otherwise) to the secondary node controller 206" to achieve the desired movement of the workpiece, tool and / or propagation path. Typically, the device actuator commands are sent to the secondary node controller 206" (e.g., at a rate of 2.5 kHz or thereabouts) after the PSO trigger position is sent to the primary node controller 206' in S308.

[0040] At S312, in response to the received actuator device commands, each node controller 206 drives its corresponding actuator 204 (e.g., to move a workpiece, tool, and / or tool path as described above). Generally, a node controller 206 may drive its corresponding actuator 204 by sending an electrical drive current to the actuator 204. The amplitude of the sent electrical drive current may vary at a rate of up to 10 kHz (or thereabouts).

[0041] At S314, feedback signals generated by the sensing devices of the actuators 204 actuated at S312 are output (e.g., by methods described above) to respective node controllers 206. Each node controller 206 analyzes or processes the feedback signals to derive position data indicative of the position of the corresponding actuator (e.g., by methods described above).

[0042] In S316, the secondary node controller 206" generates a position feedback signal, which is transmitted (e.g., via communication link 212) to the primary node controller 206'. Like a conventional servo driver, the secondary node controller 206" has an inherent maximum frequency response. However, to overcome the constraints that the maximum frequency response may impose on actuator speed and / or encoder resolution, the position feedback signal generated by the secondary node controller 206" conveys hybrid position data packets that represent different position characteristics of the actuator. Additional discussion regarding hybrid position data packets and position feedback signals is provided below with respect to FIG. 4. In view of the above, it will be appreciated that steps S314 and S316 are performed repeatedly as long as actuators 204 are driven by their respective secondary node controllers 206". For example, step S314 may be performed periodically (e.g., at an update rate, as described in more detail below) and S316 may be performed periodically (e.g., at a rate at or about 2.5 MHz).

[0043] In S318, the primary node controller 206' derives the positions of one or more (or all) of the actuators 204 in the system 200. Thus, the primary node controller 206' can derive the positions of its corresponding actuators 204 and / or the current positions of the actuators 204 corresponding to one or more (or all) of the secondary node controllers 206". Generally, the positions of the actuators 204 can be derived at rates up to 100 MHz (or thereabouts). This step S318 is described in more detail below with respect to FIG. 6.

[0044] In S320, the primary node controller 206' determines whether the position of the actuator 204 (derived in S318) satisfies a predefined PSO trigger condition. In one embodiment, the PSO trigger condition is satisfied if the position of any actuator 204 derived in S318 is equal (or nearly equal) to the PSO trigger position associated with the actuator 204 obtained in S308. In another embodiment, the PSO trigger condition is satisfied if the position of any actuator 204 derived in S318 is equal (or nearly equal) to the PSO trigger position associated with the actuator 204, but within a predefined range of the PSO trigger position. The predefined range may be fixed or variable. The criteria for the PSO trigger condition may be stored in the primary node controller 206' by any method suitable or known in the art, for example, based on data transmitted by the system controller 201 (via one or more communication links 207).

[0045] If the PSO trigger conditions are satisfied, then the primary node controller 206' generates (at S322) a PSO trigger signal that can be sent (or output) to the tool 202 (e.g., as indicated by arrow 214 shown in FIG. 2). The PSO trigger signal is then used as a trigger to operate the tool 202 (e.g., as described above), and the process returns to step S318. If the PSO trigger conditions are not satisfied, then the primary node controller 206' does not generate an output signal, and the process returns to S318. Generally, the determination at S320 can be made at speeds up to 100 MHz (or thereabouts).

[0046] III. Hybrid Position Data Packet and Position Feedback Signal Embodiments FIG. 4 is a timing diagram illustrating, among other things, the information content of a hybrid position data packet conveyed by a position feedback signal, according to one embodiment (with newer times located to the right of the timing arrows at the bottom of FIG. 4 and older times located to the left of the bottom of FIG. 4). FIG. 4 shows lines labeled "DataOdd" and "DataEven," which are included as part of each communication link 212 shown in FIG. 2. FIG. 4 also shows a number of hexagons, which represent bits of a multi-bit word of data transmitted over communication link 212. The DataOdd line transmits odd bits of a word of data, and DataEven transmits even bits of a word of data. Thus, the signals transmitted over the DataOdd and DataEven lines can be conceptually considered to collectively constitute a common signal (i.e., the position feedback signal output from the secondary node controller 206''). Accordingly, as described in more detail below, corresponding sets of bits conveyed in the signals transmitted by the DataOdd and DataEven lines can be conceptually considered to collectively constitute a common hybrid position data packet output by the secondary node controller 206''. It will be appreciated that the primary node controller 206' can be configured and operated in any manner known in the art to process the bits conveyed by the DataOdd and DataEven lines to perform the processes described herein (e.g., including process steps S318, S320, and S322).

[0047] As described above, the position feedback signal generated by each secondary node controller 206″ conveys hybrid position data packets, which represent different position characteristics of each actuator 204, and are periodically transmitted from the secondary node controller 206″ to the primary node controller 206′. The different position characteristics represented by the hybrid position data packets include partial position data packets, which represent a portion of a synchronized position data unit that completely describes the position of the corresponding actuator 204 at a given time point (also referred to herein as a “synchronization time point”), and displacement data packets, which represent the displacement of the position of the actuator 204 at a given time point (also referred to herein as an “update time point”, which may be the start of an update period or may correspond to an update period) relative to the position of the actuator 204 at the synchronization time point.

[0048] As shown in FIG. 4, within any hybrid position data packet, the first set of bits (i.e., bits with labels beginning with "P") are the bits in the partial position data packet, and the second set of bits (i.e., bits with labels beginning with "D") are the bits in the displacement data packet.

[0049] Over a sufficiently long timeline, the position feedback signal conveys a sufficient number of hybrid position data packets that are generated consecutively, thereby conveying a sufficient number of partial position data packets, to represent an entire synchronized position data unit. The period of time required to assemble a complete set of partial position data packets that completely represent a synchronized position data unit is referred to herein as a "synchronization period." A synchronization point in time may mark the beginning of a synchronization period, or may occur during a synchronization period. For ease of discussion, the most recent or nearest synchronization period is referred to as the "current" synchronization period, and the synchronization period immediately preceding the current synchronization period is referred to as the "previous" synchronization period.

[0050] The partial position data packets of different hybrid position data packets communicated during a common synchronization period represent different portions of a common synchronized position data unit. The displacement data packets communicated in a hybrid position data packet during a current synchronization period represent different displacements of the position of the actuator 204 at different update time points relative to the position of the actuator 204 at a synchronization time point of a previous synchronization period (referred to herein as the “previous synchronization time point”).

[0051] The number following the "P" or "D" of any bit is an ordinal number that identifies the position of the bit in either the sync position data unit or the displacement data unit, corresponding to the partial position data packet or displacement data packet in which it resides, respectively. For example, for a bit labeled "P0" or "D0", the number "0" indicates that the bit is the least significant bit (LSB) (also called the "low order bit" or "right most bit") in the data unit. For a bit labeled "P49" or "D19", the numbers "49" and "19" indicate that the bit is the most significant bit (MSB) (also called the "high order bit" or "left most bit") in the respective data unit.

[0052] The above will become clearer from the additional description of FIG. 4 below. FIG. 4 illustrates a number of hybrid location data packets, e.g., a first hybrid location data packet 402_1 and a twenty-fifth hybrid location data packet 402_25, each transmitted during a common synchronization period 402. Although not shown, a series of additional hybrid location data packets (i.e., second, third, fourth, ... twenty-fourth) are also transmitted consecutively after the first hybrid location data packet 402_1 and before the twenty-fifth hybrid location data packet 402_25. Also illustrated is a twenty-fifth hybrid location data packet 404_25 transmitted during a synchronization period 404 preceding the synchronization period 402. Thus, in the illustrated example, each synchronization period includes "M" update periods (and thus "M" hybrid location data packets), where "M" is equal to 25. However, it should be understood that "M" may be any other integer equal to 2, 3, 4, 5, 10, 15, 20, 30, 40, 50, etc., or a value between any of these values.

[0053] 4, the partial position data packet of the first hybrid position data packet 402_1 includes a first pair of bits (i.e., bits P48 and P49) of a synchronized position data unit that completely describes the position of the actuator 204 at a given synchronization point in time that marks the start of the synchronization period 402. Similarly, the partial position data packet of the twenty-fifth hybrid position data packet 402_25 includes a twenty-fifth pair of bits (i.e., bits P0 and P1) of the synchronized position data unit described above. Although not shown, the partial position data packets of the second, third, fourth, etc. hybrid position data packets also include the second, third, fourth, etc. pairs of bits (i.e., bits P46 and P47, P44 and P45, P42 and P43, etc.) of the synchronized position data unit described above. The partial position data packet of the 25th hybrid position data packet 404_25 includes the 25th pair of bits (i.e., bits P0 and P1) of a synchronized position data unit that completely describes the position of the actuator 204 at the synchronization point marking the start of the synchronization period 404.

[0054] 4, the second set of bits in the displacement data packets of each hybrid position data packet includes bits D0, D1, ... D19, which correspond to bits describing the displacement of the position of the actuator 204 at a given update time during the current synchronization period, relative to the position of the actuator 204 at a synchronization time of the previous synchronization period. Thus, the displacement data packets in hybrid position data packets 402_1 through 402_25 include bits describing the displacement of the position of the actuator 204 at the first through twenty-fifth update times during the synchronization period 402, relative to the position of the actuator 204 at a synchronization time of the synchronization period 404 immediately preceding the synchronization period 402. Similarly, the displacement data unit in hybrid position data packet 404_25 includes bits describing the displacement of the position of the actuator 204 at the twenty-fifth update time during the synchronization period 404, relative to the position of the actuator 204 at the previous synchronization time of the synchronization period preceding the synchronization period 404.

[0055] It will be appreciated that the number and / or length of each update period (Tupdate), and therefore the length of each synchronization period (Tsync), may depend on one or more factors, such as the bit length of each of the synchronization position data units, the number of bits in the partial position data packets and the displacement data packets, the operating frequency of the sensing device in each actuator, the operating frequency of the node controller 206, the sensing device input frequency, the maximum bit clock frequency allowed by the physical link (cable, transceiver, etc.), signal jitter affecting the minimum idle time between hybrid position data packets (see, e.g., start period 406a and end period 406b). In general, the update period may have a length Tupdate in the range of 50ns (or thereabouts) to 500ns (or thereabouts), e.g., 100ns, 150ns, 200ns, 250ns, 300ns, 400ns, etc., or any value between these values, but may be shorter than 50ns or longer than 500ns. Thus, the synchronization period may have a length Tsync in the range of 1 μs (or thereabouts) to 12 μs (or thereabouts), e.g., 3 μs, 5 μs, 7 μs, etc., or any value between these values, but may be shorter than 1 μs or longer than 12 μs. Given an update period of a particular length, the bits of a new hybrid position data packet may be considered to be determined at an update rate that is the inverse of the update period (e.g., in the range of 2 MHz (or thereabouts) to 20 MHz (or thereabouts)). Similarly, given a synchronization period of a particular length, a complete set of partial position data packets that completely represent a synchronous position data unit may be assembled at a synchronization rate that is the inverse of the synchronization period (e.g., in the range of 83 kHz (or thereabouts) to 1 MHz (or thereabouts)).

[0056] In the exemplary embodiment described above with respect to FIG. 4, the synchronous position data unit is 50 bits long (which may include the payload and a few bits, e.g., 4 bits for parity / CRC error detection), although it will be appreciated that the synchronous position data unit may be longer or shorter than 50 bits long (e.g., 16 bits, 32 bits, 64 bits, etc., or any value in between). Similarly, the partial position data packet is 2 bits long, although it will be appreciated that the partial position data packet may be only 1 bit long or may be more than 2 bits long. Finally, the displacement data unit is 20 bits long (which may include at least 1 bit for parity / CRC error detection), however it will be appreciated that the displacement data unit may be longer or shorter than 20 bits long (e.g., 4 bits, 8 bits, 16 bits, 24 bits, 30 bits, etc., or any value in between), so long as the displacement data unit is shorter than the synchronous position data unit.

[0057] A. Additional discussion on lines and signals In addition to the DataOdd and DataEven lines, Figure 4 shows lines labeled "BitClock" and "Sync," which are included as part of each of the communications links 212 shown in Figure 2. In embodiments in which each of the communications links 212 is implemented as an Ethernet patch cable as described above, the various lines of each of the communications links 212 (i.e., the DataOdd, DataEven, BitClock, and Synchronization lines) may each be implemented as a twisted pair of wires as known in the art.

[0058] i. Bit Clock Lines and Signals A bit clock signal is generated and transmitted from each secondary node controller 206″ to the primary node controller 206′ over the BitClock line. The primary node controller 206′ may also generate a bit clock signal, but it is not transmitted over the communication link 212. Generally, the bit clock signal is generated by an internal bit clock of each node controller 206 (i.e., the primary node controller 206′ and each secondary node controller 206”) and corresponds to the operating frequency of the node controller 206. In one embodiment, the operating frequency of the bit clock (also referred to herein as the “bit clock frequency”), and therefore the operating frequency of the bit clock signal, may range from 25 MHz to 200 MHz (e.g., 50 MHz, 100 MHz, 200 MHz, etc., or any value between these values). It should be understood that the bit clock frequency may be lower than 25 MHz or higher than 200 MHz depending on the configuration of components such as the node controller 206, the communication link 212, etc.

[0059] The transmission of bits from the secondary node controller 206″ on the DataOdd and DataEven lines may be synchronized to the bit clock signal. Additionally, the operation of the primary node controller 206′ and each secondary node controller 206″ within a synchronization period may be synchronized to one another using the bit clock signal. For example, the secondary node controller 206″ may output data on the rising edge of the bit clock signal, and the primary node controller 206′ may input data on the falling edge of the bit clock signal. In some cases, the primary node controller 206′ may mitigate potential metastability resulting from a bit clock signal (as received from the secondary node controller 206″) that is rolling in phase with respect to the bit clock signal of the primary node controller 206′ by any suitable technique or techniques known in the art.

[0060] As can be appreciated, it is generally important that the timing relationship between the signals output from the secondary node controller 206″ on the DataOdd and DataEven lines be maintained within a certain tolerance (e.g., 5 ns or less) relative to the bit clock signal transmitted on the BitClock line. Unacceptable time drift can occur due to one or more factors, such as the physical length of the lines, unequal signal path delays at the signal outputs of the secondary node controller 206″, unequal signal path delays at the signal inputs of the primary node controller 206′, duty cycle distortions in the transceivers and other circuitry of the respective node controllers 206, and temperature variations of the lines within the node controllers 206 and communication link 212. To mitigate the potential adverse effects of an unacceptable amount of drift on the bit clock signal, the DataOdd and DataEven lines have different twist ratios from each other, with the twist ratio of the BitClock line being between the twist ratios of the DataOdd and DataEven lines. By having the twist ratio of the BitClock line be between the twist ratios of the DataOdd and DataEven lines, the total drift between the DataOdd and DataEven lines is divided relative to the bit clock signal transmitted on the BitClock line, i.e., the data signal on one of the DataOdd and DataEven lines may drift forward in time relative to the bit clock signal, and the data signal on the other of the DataOdd and DataEven lines may drift backward in time relative to the bit clock signal.

[0061] Additionally, the bit clock signal may also be used to communicate the start of a hybrid position data packet in the position feedback signal. For example, as shown in FIG. 4, the bit clock signal may be in a static logic state "0" for an extended period 406a (also referred to herein as a "packet start period"). The primary node controller 206' may synchronize its internal bit clock to change logic state from logic state "0" to logic state "1" at the end of the packet start period 406a.

[0062] ii. Synchronization Lines and Signals A synchronization signal is sent from the primary node controller 206' to each secondary node controller 206" over the Synchronization line. Generally, the synchronization signal has a frequency corresponding to a synchronization period, and the duty cycle of the synchronization signal dictates how to operate the secondary node controller 206". That is, the operating mode of any secondary node controller 206" corresponds to the duty cycle of the synchronization signal received from the primary node controller 206'. Generally, the synchronization signal has a much lower frequency than the frequency of the bit clock signal. For example, the synchronization signal may have a frequency in the range of 50 kHz to 400 kHz (e.g., 100 kHz, 200 kHz, 300 kHz, etc., or any value between these values). Example operating modes include a "standby" mode, a "training" mode, and a "normal" mode. Additional discussion regarding these operating modes is provided in more detail below.

[0063] B. Additional Discussion Regarding Obtaining Actuator Position (S318) As mentioned above with respect to S318 of FIG. 3, the primary node controller 206′ analyzes or processes the hybrid position data packets conveyed in the received position feedback signal to derive the position of each actuator 204 corresponding to the secondary node controller 206″. The positions of the actuators 204, as represented by the position data units, are stored at the primary node controller 206′. As can be appreciated, the positions of the actuators 204 may be derived differently depending on whether the actuators 204 correspond to the primary node controller 206′ or the secondary node controller 206″.

[0064] i. Obtaining the position of the actuator corresponding to the primary node controller To derive position data units associated with the actuators 204 corresponding to the primary node controller 206', the primary node controller 206' simply processes the feedback signals communicated by the corresponding actuators 204 (e.g., at a synchronization time point associated with a synchronization period) to generate position data units that fully represent the position of the corresponding actuators 204. As previously discussed, feedback signals are transmitted from the actuators 204 to the corresponding node controllers 206 at a rate of 5 MHz (or thereabouts). Thus, in one embodiment, the primary node controller 206' may derive position units for the corresponding actuators 204 at a rate of 5 MHz (or thereabouts). However, in other embodiments, the primary node controller 206' may process the feedback signals to estimate the position of the corresponding actuators 204 at a rate faster than 5 MHz (e.g., at an estimation rate of up to 100 MHz or thereabouts) by any suitable or known technique. Thus, the primary node controller 206' may derive position units for the corresponding actuators 204 at a rate of up to 100 MHz (or thereabouts).

[0065] The position data unit derived in S318 is stored in the primary node controller 206′ (e.g., in a data structure that associates the current position data unit with the primary node controller 206′). Any position data unit already stored in the data structure for the actuator 204 corresponding to the primary node controller 206′ is overwritten with the new position data unit for that actuator 204.

[0066] ii. Obtaining the position of the actuator corresponding to the secondary node controller To obtain the position data units of the actuators 204 corresponding to the secondary node controllers 206", the primary node controller 206' sequentially processes the hybrid position data packets conveyed in the position feedback signal received from the secondary node controllers 206". An exemplary embodiment in which the hybrid position data packets conveyed in the position feedback signal and transmitted from each secondary node controller 206" are processed by the primary node controller 206' is described in more detail below with respect to the process 600 shown in FIG. 6.

[0067] Referring to FIG. 6, "n" represents the ordinal number of the synchronization period in the position feedback signal transmitted from the secondary node controller 206". Thus, "n" can be any integer equal to or greater than 1. Similarly, "m" represents the ordinal number of the update period during a synchronization period. Thus, "m" also represents the ordinal number of the hybrid position data packets conveyed during a synchronization period. As mentioned above, "M" represents the total number of update periods (and thus hybrid position data packets) during each synchronization period. Thus, "m" can only be less than or equal to "M".

[0068] In S604 (collecting partial location data packets from the mth hybrid data packet in the nth synchronization period), the primary node controller 206′ processes the mth hybrid location data packet communicated during the nth synchronization period (e.g., the first synchronization period) to extract bits of the partial location data packets communicated therein.

[0069] As shown in S602, m is set to 1 and the first hybrid location data packet communicated during a particular synchronization period becomes the first hybrid location data packet processed in S604. The extracted bits of the partial location data packet may be stored in the primary node controller 206' in a data structure associated with the secondary node controller 206'' from which it originated and the position to which the bit in the partial location data packet is assigned within the synchronized location data unit.

[0070] In S606 (Assembling Displacement Data Units from m-th Hybrid Data Packets of n-th Synchronization Period), the primary node controller 206' processes the m-th hybrid position data packets transmitted during the n-th synchronization period to extract bits of the displacement data packets transmitted therein. The extracted bits in the displacement data packets are then assembled into displacement data units (i.e., multi-bit words of data as described above).

[0071] In (adding displacement data unit to reconstructed synchronized position data unit of n-1th synchronization period) S608, the displacement data unit obtained in S606 is added to the synchronized position data unit (which is also the multi-bit word data as described above) associated with the previous synchronization period (i.e., the n-1th synchronization period). The resulting multi-bit word data is a position data unit representing the derived position of the actuator 204, which is associated with the corresponding secondary node controller 206″ from which the hybrid position data packet was sent, and can be stored in the primary node controller 206′ in a data structure associated with an internal timestamp value (e.g., indicating when the multi-bit word data was stored) generated by the primary node controller 206′, if necessary.

[0072] In one embodiment, in saving the newly obtained multi-bit word data in S608, the primary node controller 206' overwrites the previously obtained multi-bit word data written to the data structure. In this case, the newly derived obtained location in S608 may be the subject of the above-mentioned determination in S320 of FIG. 3. However, in other embodiments, the newly obtained multi-bit word data in S608 may be added to the data structure (along with its associated timestamp). And the previously obtained multi-bit word data written to the data structure may be retained. In this case, the derived location with the closest timestamp (i.e., the newly obtained derived location in S608) may be the subject of the above-mentioned determination in S320 of FIG. 3.

[0073] In S610, the primary node controller 206' may estimate the position of the corresponding actuator 204 from the derived position obtained in S606 at an estimation rate faster than the update rate. For example, the estimation rate may be up to 100 MHz or thereabouts. Thus, the primary node controller 206' may derive position units for the actuator 204 corresponding to the secondary node controller 206" at a rate of up to 100 MHz (or thereabouts). The result of the estimation, in units of position data representing the derived position of the actuator 204, may be stored in the primary node controller 206' in a data structure associated with the corresponding secondary node controller 206" from which the hybrid position data packet was sent, and, if necessary, associated with an internal timestamp value generated by the primary node controller 206' (e.g., indicating when the multi-bit word of data was stored, etc.).

[0074] In one embodiment, in saving the newly obtained position data unit in S610, the primary node controller 206' overwrites the previously obtained position data unit written to the data structure. In this case, the newly obtained derived position in S610 may be the subject of the above-mentioned determination in S320 of FIG. 3. However, in other embodiments, the newly obtained position data unit in S610 may be added to the data structure (along with its associated timestamp). And the previously obtained position data unit written to the data structure may be retained. In this case, the position data unit with the closest timestamp (i.e., the newly obtained derived position in S610) may be the subject of the above-mentioned determination in S320 of FIG. 3.

[0075] Assuming that more hybrid position data packets have been or will be delivered during the nth synchronization period, steps S604, S606, and S608 can be performed again after the derived position is obtained in S608. Thus, if the current value of "m" in S608 is less than "M" (e.g., as determined as shown in S612, which checks whether m=M), then the current value of "m" is incremented by 1 (e.g., as shown in S614), and steps S604, S606, and S608 can be performed again. For example, if steps S604, S606 and S608 have been performed for the first hybrid position data packet transmitted during the nth synchronization period, then steps S604, S606 and S608 are performed again for the second hybrid position data packet transmitted during the nth synchronization period, then again for the third hybrid position data packet transmitted during the nth synchronization period, and so on until the last hybrid position data packet transmitted during the nth synchronization period (where "m" = "M") has been processed.

[0076] When "m" is equal to "M", the bit set collected in S604 for the M partial position data packets is stored as a synchronized position data unit that completely describes the position of the actuator 204 associated with the secondary node controller 206" at the synchronization point associated with the nth synchronization period. See S616, where the following step is performed: Set the collected partial position data packets as the reconstructed synchronized position data unit of the nth synchronization period.

[0077] This synchronized position data unit may be stored in a data structure associated with the secondary node controller 206″ from which it originated. Any existing synchronized position data unit (associated with the n-1th synchronization period) stored in the data structure is overwritten by this newly collected synchronized position data unit (associated with the nth synchronization period).

[0078] After or once the synchronized position data unit associated with the nth synchronization period has been stored in S616, the current value of "n" in S616 may be incremented by 1 (e.g., as shown in S618 which increments n by 1), the value of "m" may be set to 1 (e.g., as shown in S602), and then the above-described steps S604, S606, S608, ... S618 may be performed again for the M hybrid position data packets communicated during synchronization periods following the nth synchronization period (e.g., until the PSO application is completely executed).

[0079] When "n" is equal to 1, there is no synchronized position data unit associated with the previous synchronization period, and therefore no pre-stored synchronized position data unit to which a displacement data unit for the mth hybrid position data packet of the first synchronization period can be added. Thus, when n is equal to 1 (e.g., as when the secondary node controller 206" first enters "normal" mode), step S604 is performed, but steps S606, S608, and S610 may be omitted.

[0080] As mentioned above, the secondary node controller 206″ (like a conventional servo driver) has an inherent maximum frequency response that actually imposes an upper limit on the resolution of the position feedback obtainable from the secondary node controller 206″. For example, at an update rate of 5 MHz (or thereabouts), approximately 20 bits can be easily transmitted by the secondary node controller 206″. However, a position data unit is typically much longer than 20 bits to represent the position of the corresponding actuator 204 with an acceptable level of resolution. Thus, as should be appreciated from the above, embodiments of the present invention can avoid the constraints associated with the maximum frequency response by transmitting a series of relatively small hybrid position data packets, each of which includes a few bits of a synchronization position data unit (i.e., a partial position data packet) that completely describes the position of the actuator 204 at a synchronization point in time, and a relatively small number of bits for a displacement data unit that describes (with an acceptable level of resolution) the displacement of the actuator 204 position at an update point in time that occurs after the synchronization point in time. The relatively small number of bits in each hybrid position data packet can be easily transmitted by the secondary node controller 206″ at the update rate. Therefore, as described above with respect to S606 and S608, the primary node controller 206' can derive the position of the actuator 204 at the update rate with acceptable resolution based on the displacement data units at the update time and the synchronized position data units at the previous synchronization time.

[0081] Because the position of the actuator 204 can be determined (e.g., by performing the operations in S606 and S608) at an update rate that is much higher than the synchronous rate at which a complete set of partial position data packets that completely represent a synchronized position data unit can be assembled (e.g., by performing the operations in S604), the estimated position of the actuator 204 (e.g., obtained in S610) can be more accurate than a position simply estimated from the synchronized position data unit.

[0082] IV. MODE OF OPERATION EMBODIMENTS As described above, the duty cycle of the synchronization signal received at the secondary node controller 206″ from the primary node controller 206′ instructs the secondary node controller 206″ to operate in “standby” mode, “training” mode, or “normal” mode.

[0083] i. Standby mode If the synchronization signal output by the primary node controller 206' is in a fixed logic state for at least four consecutive synchronization periods, the secondary node controller 206'' enters a standby mode and no PSO application shall be executed.

[0084] ii. Training mode The secondary node controller 206″ can be induced into the “training” mode described above, which is used to have the primary node controller 206′ compensate for skews between the various signals transmitted from the secondary node controller 206″ over the DataOdd, DataEven, and BitClock lines. The training mode can also be used to have the primary node controller 206′ compensate for fixed delays in the communication link 212 between the primary node controller 206′ and the secondary node controller 206″.

[0085] To induce the secondary node controller 206'' into the training mode, the primary node controller 206' sends a training mode signal to the secondary node controller 206'' over the Synchronization line.

[0086] From bottom to top in FIG. 5, there are shown a Synchronization line, a DataEven signal, a DataOdd signal, and a BitClock signal.

[0087] In general, the training mode signal may be a signal (e.g., a 200 kHz signal) in a logic "0" state during the Ttraining period (see FIG. 5). The length of Ttraining may be equal to or at least approximately equal to the length of the update period Tudate. Upon receiving four consecutive training signals from the primary node controller 206', the secondary node controller 206" enters the training mode, synchronizes the incoming training signals to its internal bit clock, and sends a bit clock training signal back to the primary node controller 206' on the BitClock line. The secondary node controller 206" also outputs a logic "1" state signal synchronized with the falling edge of the bit clock training signal (except for a short period of time, e.g., 10 ns long). See FIG. 5 for example. Upon receiving a signal from each secondary node controller 206", the primary node controller 206' measures the drift between the three signals sent by the secondary node controller 206" and compensates for the measured drift.

[0088] iii. Normal mode The secondary node controller 206″ can be induced into the “normal” mode described above, which is used to enable the secondary node controller 206″ to send a position feedback signal to the primary node controller 206′ (e.g., as described above).

[0089] To induce the secondary node controller 206″ into normal mode, the primary node controller 206′ transmits the above-mentioned synchronization signal to the secondary node controller 206″ via the Synchronization line. The synchronization signal is in a logic “1” state except for a relatively short period (e.g., equal to or at least approximately equal to the length of one-half the update period, Tupdate / 2) during which the synchronization signal is in a logic “0” state. Upon receiving four consecutive synchronization signals from the primary node controller 206′, the secondary node controller 206″ enters normal mode, and the secondary node controller 206″ synchronizes its internal bit clock to the incoming synchronization signal and transmits the above-mentioned position feedback signal as described above with respect to S316 of FIG. 3 . In this case, the transition of the synchronization signal from the logic “1” state to the logic “0” state defines the above-mentioned synchronization point of the synchronization period.

[0090] As discussed above with respect to S316 of FIG. 3, when transmitting the position feedback signal described above, the secondary node controller 206″ can output data on the rising edge of the bit clock signal, and the primary node controller 206′ can input data on the falling edge of the bit clock signal.

[0091] The above is a description of embodiments and examples of the present invention and is not to be construed as limiting thereof. Although several specific embodiments and examples have been described with reference to the drawings, those skilled in the art will readily recognize that many modifications to the disclosed embodiments and examples and other embodiments are possible without significantly departing from the novel teachings and advantages of the present invention.

[0092] For example, in view of the above, it should be appreciated that the process described with respect to FIG. 6 can be broadly considered as a type of data compression algorithm in which each secondary node controller 206″ encodes information regarding the position of its corresponding actuator 204 using fewer bits than an actual representation of the position (e.g., as output by an encoder of the actuator 204). The primary node controller 206′ then decodes the compressed information transmitted by each secondary node controller 206″, estimates position information based on that information, if necessary, and performs a PSO application, if appropriate. However, it will be appreciated that other lossy or lossless compression algorithms can be used instead of or in addition to the algorithm described in FIG. 6. Thus, it should be appreciated that any secondary node controller 206″ can encode information regarding the position of its corresponding actuator 204 using any suitable or known lossy or lossless compression technique, and that the primary node controller 206′ can decode the compressed information transmitted by the secondary node controller 206″ using any suitable or known decompression technique.

[0093] Accordingly, all such modifications are intended to be included within the scope of the present invention as defined in the claims. For example, one of ordinary skill in the art will understand that the subject matter of any sentence, paragraph, example or embodiment may be combined with any or all of the subject matter of any other sentence, paragraph, example or embodiment, except where such combinations would be mutually exclusive. Thus, the scope of the present invention should be determined by the following claims and any equivalents of such claims that are to be included therein. [Explanation of symbols]

[0094] List of reference numbers 200 Systems 201 System Controller 202 Tools / Devices 203 Exercise Machine Interface 204, 204a, 204b, 204c Actuators 205 Network 206, 206a, 206b, 206c Node Controller 206' Primary Node Controller 206” Secondary Node Controller 207 Communication Links 208 Arrow 210 Arrow 212 Communication Links 214 Arrow 300 processes 402 Common Synchronization Period 402_1 First hybrid location data packet 402_25 25th hybrid location data packet 404 Synchronization Period 404_25 25th hybrid location data packet 406a Starting Period 406b End Period 600 processes S302 Step S304 Step S306 Step S308 Step S310 Step S312 Step S314 Step S316 Step S318 Step S320 Step S322 Step S602 Step S604 Step S606 Step S608 Step S610 Step S612 Step S614 Step S616 Step S618 Step

Claims

1. 1. A control system for controlling a device capable of performing an action on a workpiece based on a spatial relationship between the device and a workpiece, the spatial relationship being adjustable using at least one actuator, comprising: a primary node controller communicatively coupled to the device, the primary node controller adapted to control operation of the device; at least one secondary node controller communicatively coupled to the primary node controller; Equipped with The at least one secondary node controller: receiving encoder feedback from the at least one actuator indicative of a position of a mechanical load associated with an actuator of the at least one actuator; performing a data compression algorithm on the encoder feedback to encode the encoder feedback; generating a plurality of data packets representing the encoder feedback; and transmitting the plurality of data packets. It is adapted to The primary node controller: receiving the plurality of data packets; Decoding the plurality of data packets into a plurality of decoded data packets; Controlling operation of the device based at least in part on the plurality of decoded data packets. It is further adapted to Control system.

2. The control system of claim 1 further comprising the device.

3. The control system of claim 2 , wherein the device includes at least one selected from the group consisting of a laser and a sensor.

4. The control system of claim 1 further comprising the at least one actuator.

5. The control system of claim 4 , wherein the at least one actuator comprises a linear actuator.

6. The control system of claim 4 , wherein the at least one actuator is mechanically coupled to the workpiece.

7. The control system of claim 1 further comprising a plurality of secondary node controllers.

8. The control system of claim 7 further comprising a plurality of actuators.

9. A laser configured to emit laser pulses that propagate along a propagation path to irradiate a workpiece; at least one actuator configured to support the workpiece; a control system for controlling the laser to emit the laser pulses based on a spatial relationship between the propagation path and the workpiece, the spatial relationship being adjustable using the at least one actuator; and Equipped with The control system includes: a primary node controller communicatively coupled to the laser, the primary node controller adapted to control operation of the laser; at least one secondary node controller communicatively coupled to the primary node controller; Equipped with The at least one secondary node controller: receiving encoder feedback from the at least one actuator representative of a position of a mechanical load associated with the at least one actuator; performing a data compression algorithm on the encoder feedback to encode the encoder feedback; generating a plurality of data packets representing the encoder feedback; and transmitting the plurality of data packets. It is adapted to The primary node controller: receiving the plurality of data packets; Decoding the plurality of data packets into a plurality of decoded data packets; Controlling operation of the laser based at least in part on the plurality of decoded data packets. It is further adapted to system.

10. The system of claim 9, further comprising a plurality of secondary node controllers.

11. The system of claim 10, further comprising a plurality of actuators.

12. A first actuator; a control system for controlling the device to perform an action on the workpiece based on a spatial relationship between the device and a workpiece, the spatial relationship being adjustable using the first actuator; and Equipped with The control system includes: a primary node controller communicatively coupled to the first actuator, the primary node controller adapted to control operation of the device; at least one secondary node controller communicatively coupled to the primary node controller; Equipped with The at least one secondary node controller: receiving encoder feedback from the first actuator representative of a position of a mechanical load associated with the first actuator; performing a data compression algorithm on the encoder feedback to encode the encoder feedback; generating a plurality of data packets representing the encoder feedback; and transmitting the plurality of data packets. It is adapted to The primary node controller: receiving the plurality of data packets; Decoding the plurality of data packets into a plurality of decoded data packets; Controlling operation of the device based at least in part on the plurality of decoded data packets. It is further adapted to Movement system.

13. The exercise system of claim 12, further comprising at least one second actuator.

14. The exercise system described in claim 12, wherein the device includes at least one selected from the group consisting of a laser and a sensor.

15. The system according to claim 1, further comprising a plurality of secondary node controllers and a plurality of actuators; each of the plurality of actuators is associated with a respective secondary node controller of the plurality of secondary node controllers; 13. The exercise system of claim 12.

16. A non-transitory computer-readable medium for use with a control system having a memory, the memory, when executed by the control system, providing the control system with: controlling the device to perform an action on the workpiece based on a spatial relationship between the device and the workpiece, the spatial relationship being adjustable using at least one actuator; The control system includes: a primary node controller communicatively coupled to the device, the primary node controller adapted to control operation of the device; at least one secondary node controller communicatively coupled to the primary node controller; Equipped with The at least one secondary node controller: receiving encoder feedback from the at least one actuator indicative of a position of a mechanical load associated with an actuator of the at least one actuator; performing a data compression algorithm on the encoder feedback to encode the encoder feedback; generating a plurality of data packets representing the encoder feedback; and transmitting the plurality of data packets. It is adapted to The primary node controller: receiving the plurality of data packets; Decoding the plurality of data packets into a plurality of decoded data packets; Controlling operation of the device based at least in part on the plurality of decoded data packets. It is further adapted to Non-transitory computer readable medium.

17. The non-transitory computer-readable medium of claim 16, wherein the at least one secondary node controller comprises multiple secondary node controllers.

18. The non-transitory computer-readable medium of claim 17, wherein the at least one actuator comprises a plurality of actuators.