AXY:Virtual Axis

From SoftMC-Wiki
Jump to: navigation, search

HIDE THIS PAGE IN WIKI


Virtual axis

Originally written by: Raúl Castillo

Status

Base development for virtual axis has been done in Manz RT (S3Netx) where virtual axis can be emulated at the slave controller. Master controller handles virtual axes the same way as real axes - only differentiation is on BASIC level where virtual axis is defined as a manufacture type with its corresponding SercVirt.inc functions where some SVC are faked. Currently virtual axes are monodirectional from Master (S3@FPGA) to Slave (S3@Netx) Further configuration and data management of virtual axis requires functions not yet available in GFI.

Goal:

Define strategy for further implementation of required functionality GFI extension, e.g. axis.fmode New module for virtual axis handling on the master side

Discussion

  • Presentation of S3Netx driver
  • Capabilities
  • Limitations
  • Proposal for S3Netx@Master
  • Integration of virtual axis support in an additional module between GFI and S3 driver so that each driver (FPGA and Netx) remain generic and the virtual axis can be applied in both rings
  • F: Implement Simulation inside GFI ( Issue 3676Bugzilla icon.png), Virtual Axis related issues could also be implemented here?
  • Usage of available properties (not included in GFI) for Virtual-Axis configuration and data transfer
  • Axis.fmode
  • Axis Master-Slave relationship for data transfer in both directions - Virtual axis (Issue 4523Bugzilla icon.png )- bidirectional connections
  • Integration of S3Netx driver in Firmware
  • Mirko: Connection between axes at the slave controller is more natural if we do it on the sercos-communication layer. RCS: these are two separate objects hanging on the rtk-chain

Specs. Summarization (first draft)

  • A virtual axis consists of virtual master an virtual slave
  • A virtual master (producer) shall transmit the actual state (pcmd, vcmd, tcmd, pext, control word) of a local real axis to another controller in the form of virtual slave (consumer), where its state can be used as a reference to command a local real axis on the corresponding controller
  • Feedback status (pfb, vfb, tfb, status word) may be transmitted back from virtual slave to virtual master
  • Multiple consumers maybe present, but only one can be active consumer, which is the one that transmists the feedback status back to the virtual master
AXY;Shadow Axis Producer Consumer.png
  • Additional axis properties shall be defined to manage the roll and state of each participant in the virtual relationship:
  • Producer (only one at a time)
  • Active Consumer
  • Passive Consumer(s)
  • Connected/disconnected (attached/detached)
  • Failure in the communication

User Cases

  • Band synchronization between multiple machines belonging to a common production line. The first machine gives the reference velocity and the other machines follow it
  • Not all machines can provide feedback
  • A general failure status shall be possible for all participants
  • Conveyor tracking where the master source is coming from a remote machine (external encoder)
  • Position error delay has to be known
  • Partial connection to other controller. The virtual axis can be temporally disconnected from virtual master and behaves as simulated axis. E.g. motion to initial position before the master axis is followed again.
  • Smoothly hooking to remote axis shall occurs

Summarization after discussion with Rasty and Mirko:

  • A new axis Shadow mode was proposed by Mirko as solution for bidirectional communication between to axis located in different controllers
  • A virtual connection consists of:
    • A virtual axis in Slave-Mode within a controller and
    • A virtual axis in Shadow-Mode within another controller
    • connected with each other through a network
  • Master/Slave relationship works with virtual axis in the same way as usual
  • Shadow/Slave relationship works as follows:
    • Remote.Pcmd → Shadow.Pfb → Slave.Pcmd
    • Remote.Pfb ← Shadow.Pcmd ← Slave.Pfb
    • Remote.Status ← Shadow.Control ← Slave.Status
    • Remote.Control → Shadow.Status
  • Each virtual connection has only one producer and one consumer in the network,
  • Multiple connections is achieved when connecting one Master Source to multiple virtual axis in Slave-Mode

AXY;Master Slave Shadow.png

Behaviour of Virtual Shadow axis

  • Changing to Mode only possible in Disable state of real slave
  • Shadow axis cannot be locally moved/stopped
  • remote control (En/Disable, Move/Stop) of Slave axis by means of shadow axis is possible only in Shadow mode
  • Motion Parameters (Vrate, …)will have no effect in Shadow axis when been in Shadow-Mode
  • Shadowing is done in user units (Pfactor, Vfactor, roll over parameters) of both shadow and real slave
  • Gear Ratio is also ignored
  • If you want to stop, you have to stop the real slave
  • Extrapolation in Pfb has to be implemented as a new feature for the case of communication interruption within one cycle time
  • GFI function for Axis.Slave and Axis.Shadow status shall be provided by the FW so that the Driver can use this knowledge

Action items

  • Implementation of Shadow-Mode
  • Extension of GFI for Slave and Shadow status

See Also