I have two servo-motors (leader [leftside] and follower[right side]) and they are mechanically coupled.
I will not use the standard couple functions like “MC_GearInPos” or “MC_GearIn”, because the leader will be position controlled and the follower will be torque controlled.
I found some FBs “MpAxisCyclicSet” and “MC_BR_TorqueControl” but how is it possible to solve this with mappMotion?
Is it possible to change the value of the ratio –> for example, the follower get only 70% of the leader torque.
Another option would be to use a virtual axis as the leader and make both real motors followers and stay in Position Control. Especially with a Multi or P3 drive you can minimize any coupling delays.
On the same drive you can have the Follower use the cross-coupling axis link feature to minimize the torque setting. You could probably use an SPT on the slave (SPT on master would be processed before the real axis so that you’d have a full cycle delay), to alter the ratio/apply a scaling value.
I forgot to add some information. I hope with this new infos is it easier to understand.
Requirements for Leader/Trailer Coupling:
Basically, we would need two operating modes for a leader/trailer coupling:
The leader is always in position control, while the trailer can be operated in either:
Position control or Torque control depending on the mechanical system.
Depending on the mechanical system:
Mechanical system Rigidity Operating mode trailer Example
High: Torque control Z-axis Dual motor, two drives on the same rack
Medium: Position control or torque control
Low: Position control Portal, gantry,
Torque distribution: for example 30% trailer and 70% leader
The simplest programming way would be to use MpAxisBasicCyclicSet so that you can use the one block to switch between position control and torque control simply from one block. You can use the output of MC_ReadActualPosition/MpAxisBasic.Velocity and MC_ReadActualTorque as your inputs for position or torque (with a modifier).
With MC_BR_TorqueControl you can use an TorqueAlternativeValueSource which can point to any REAL parid (for instance USER_R4_VAR1, USER_R4_VAR2) on the Acopos.
Then you will need to copy (MC_BR_InitParIDTransfer_AcpAx) the actual torque from the source drive to the destination drive to the selected REAL (USER_R4_VAR1, USER_R4_VAR2).
There were a lot of good ideas up here, so this is only to enlarge the idea gathering.
I, once had a pretty similar requirement. Write an Library which can operate an single Axis, a lose Gantry or a stiff current coupling (Stiff Gantry).
Unfortunately it looks like i did not made a good documentation of it in the past.
I know the source of our Current Coupling was this documentation from the AS-Help (link below). A current Coupling is more or less a torque coupling because current and torque are proportional via the Torque-Constant. Via the Powerlink-Crosscomunication this is the most direct way to bring the Torque from one Drive to another but requires 400µs PLK. If both Motors have an Encoder you do not need the parts of the Virtual-Encoder and Commutation. So it is not a 1:1 Guide. But all nessesary info was in it, as far as i remember. Dual-winding motor
By using Write ParID we were able to set up the Drive via the Application code. You can switch between the Operations.
With the ARITH SPT-Functionblock you could modify the transmitted current by multiply a factor (*0.428) to set up you 70/30%.