PIPEMODE

From SoftMC-Wiki
Jump to: navigation, search
Language: English  • 中文(简体)‎

PIPEMODE

The softMC controller can be used as a pure Motion-Bus interface card between your application and drives (PIPEMODE feature). The host computer controls all of what normally occurs in the motion module of the softMC . It must send a real-time stream of data through the softMC to the drives. In this case, the softMC functions as a data pipe. The feature is enhanced by the option of flexibly switching between pipe mode and regular mode. In typical applications, the softMC starts in regular mode where homing, jogging and initial position adjustments are made. After that, the softMC can be switched to pipe mode and the host computer takes control. There can be both softMC -controlled and pipe-controlled axes at same time in the system.

An external profiler path can be designed and fed to the softMC point-by-point. The controller functions only as a pipe and is not responsible for the correctness of the applied profiler. No system limits are checked except for position error and feedback velocity limitation. While running under this mode, no other movements are allowed.


The HostDouble data interface can be configured in one of four communication protocols using SYS.PIPEMODE:

  • 1 – sending position command only
  • 2 – sending both position and velocity commands
  • 3 - sending only velocity commands
  • 4 - sending only torque commands (TCMD)

When the system's pipe mode uses only position commands, the controller computes the current velocity.


Data Structure

The host CPU passes position , velocity and torque commands commands via a data containers. User's API maps the data to SYS.HOSTDOUBLE to external source (usually TCP/IP). The Motion-Bus operation mode of every drive connected to an axis working in Pipe Mode must be configured (Position/Velocity/Torque).


The data structure mapping depends on the PIPEMODE state:

MC variables
SYSTEM.PIPEMODE
Position (1) Position and Velocity (2)
Velocity (3)
Torq (4)
Sys.HostDouble[1]
A1.PCMD
A1.PCMD
A1.VCMD
A1.TCMD
Sys.HostDouble[2]
A2.PCMD
A1.VCMD
A2.VCMD
A2.TCMD
Sys.HostDouble[3]
A3.PCMD
A2.PCMD
A3.VCMD
A3.TCMD
Sys.HostDouble[4]
A4.PCMD
A2.VCMD
A4.VCMD
A4.TCMD
Sys.HostDouble[5]
A5.PCMD
A3.PCMD
A5.VCMD
A5.TCMD
Sys.HostDouble[6]
A6.PCMD
A3.VCMD
A6.VCMD
A6.TCMD
Sys.HostDouble[7]
A7.PCMD
A4.PCMD
A7.VCMD
A7.TCMD
Sys.HostDouble[8]
A8.PCMD
A4.VCMD
A8.VCMD
A8.TCMD
Sys.HostDouble[9]
A9.PCMD
A5.VCMD
A9.VCMD
A9.TCMD
. . . . .
Sys.HostDouble[128]
A128.PCMD
A64.VCMD
A128.VCMD
A128.TCMD