top of page

14.45. Arc tracking control

 /**
 * @brief Arc tracking control
 * @param [in] flag switch, 0-off; 1-on
 * @param [in] dalayTime hysteresis time, in ms
 * @param [in] isLeftRight left-right deviation compensation
 * @param [in] klr left/right adjustment factor (sensitivity)
 * @param [in] tStartLr left/right start time cyc
 * @param [in] stepMaxLr Maximum compensation in mm per pass * @param [in] stepMaxLr Maximum compensation in mm per pass
 * @param [in] sumMaxLr total max compensation mm
 * @param [in] isUpLow Compensation for up and down deviation
 * @param [in] kud up/down adjustment factor (sensitivity)
 * @param [in] tStartUd up/down compensation time cyc
 * @param [in] stepMaxUd Maximum compensation in mm for each step.
 * @param [in] sumMaxUd up and down total max. compensation mm
 * @param [in] axisSelect upper and lower coordinate system selection, 0-swing; 1-tool; 2-base
 * @param [in] referenceType upper and lower reference current setting mode, 0-feedback; 1-constant
 * @param [in] referSampleStartUd upper and lower reference current sample start count (feedback), cyc
 * @param [in] referSampleCountUd upper and lower reference current sampling cycle count (feedback), cyc
 * @param [in] referenceCurrent upper and lower reference current mA
 * @param [in] offsetType offset tracking type, 0-no offset; 1-sample; 2-percentage /version 3.7.9
 * @param [in] offsetParameter offset parameter; sampling (offset sampling start time, default one cycle); percentage (offset percentage (-100 ~ 100)) /version 3.7.9
 * @return Error code
 */
 int ArcWeldTraceControl(int flag, double delaytime, int isLeftRight, double klr, double tStartLr, double stepMaxLr, double sumMaxLr, int isUpLow, double kud, double tStartUd, double stepMaxUd, double sumMaxUd, int axisSelect, int referenceType, double referSampleStartUd, double referSampleCountUd, double referenceCurrent, int offsetType, int offsetParameter).

14.46. Arc tracking AI passband selection

/**
* @brief Arc-tracking AI passband selection.
* @param [in] channel Arc-tracking AI passband selection, [0-3].
* @return Error code.
*/
int ArcWeldTraceExtAIChannelConfig(int channel).

14.47. Arc Trace + Multi-Layer Multi-Channel Compensation on

/**
* @brief Arc tracing + multilayer compensation on.
* @return Error code
*/
int ArcWeldTraceReplayStart();

14.48. ArcWeldTrace + MultiLayerMultiChannelCompensation OFF

/**
* @brief Arc tracing + multilayer multichannel compensation off .
* @return Error code
*/
int ArcWeldTraceReplayEnd();

14.49. Offset Coordinate Change - Multi-Layer Multi-Pass Welding

 /**
 * @brief Offset Coordinate Change - Multi-Layer Multi-Pass Weld
 * @param [in] pointO Cartesian orientation of datum.
 * @param [in] pointX Cartesian position of datum X in offset direction.
 * @param [in] pointZ Cartesian position of the datum Z to the offset direction point.
 * @param [in] dx x-direction offset (mm)
 * @param [in] z offset (mm)
 * @param [in] offset around y-axis (°)
 * @param [out] Calculation result offset (mm)
 * @return Error Code
 */
int MultilayerOffsetTrsfToBase(DescTran pointO, DescTran pointX, DescTran pointZ, double dx, double dy, double db, ref DescPose offset);

14.50. Multi-layer multi-pass welding arc tracking code example

private void button52_Click(object sender, EventArgs e)
{
   JointPos mulitilineorigin1_joint = new JointPos(-24.090, -63.501, 84.288, -111.940, -93.426, 57.669);
   DescPose mulitilineorigin1_desc = new DescPose(-677.559, 190.951, -1.205, 1.144, -41.482, -82.577);

   DescTran mulitilineX1_desc = new DescTran();
   mulitilineX1_desc.x = -677.556;
   mulitilineX1_desc.y = 211.949;
   mulitilineX1_desc.z = -1.206;

   DescTran mulitilineZ1_desc = new DescTran();
   mulitilineZ1_desc.x = -677.564;
   mulitilineZ1_desc.y = 190.956;
   mulitilineZ1_desc.z = 19.817;

   JointPos mulitilinesafe_joint = new JointPos(-25.734, -63.778, 81.502, -108.975, -93.392, 56.021);
   DescPose mulitilinesafe_desc = new DescPose(-677.561, 211.950, 19.812, 1.144, -41.482, -82.577);
   JointPos mulitilineorigin2_joint = new JointPos(-29.743, -75.623, 101.241, -116.354, -94.928, 55.735);
   DescPose mulitilineorigin2_desc = new DescPose(-563.961, 215.359, -0.681, 2.845, -40.476, -87.443);

   DescTran mulitilineX2_desc = new DescTran();
   mulitilineX2_desc.x = -563.965;
   mulitilineX2_desc.y = 220.355;
   mulitilineX2_desc.z = -0.680;

   DescTran mulitilineZ2_desc = new DescTran();
   mulitilineZ2_desc.x = -563.968;
   mulitilineZ2_desc.y = 215.362;
   mulitilineZ2_desc.z = 4.331;

   ExaxisPos epos = new ExaxisPos(0, 0, 0, 0);
   DescPose offset = new DescPose(0, 0, 0, 0, 0, 0);

   Thread.Sleep(10);
   int error = robot.MoveJ( mulitilinesafe_joint,  mulitilinesafe_desc, 13, 0, 10, 100, 100,  epos, -1, 0,  offset);
   Console.WriteLine("MoveJ return: {0}", error);

   error = robot.MoveL( mulitilineorigin1_joint,  mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1,  epos, 0, 0,  offset, 0, 100);
   Console.WriteLine("MoveL return: {0}", error);

   error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
   Console.WriteLine("MoveJ return: {0}", error);

   error = robot.MoveL(mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 0, 10, 100, 100, -1,  epos, 0, 0,  offset, 0, 100);
   Console.WriteLine("MoveL return: {0}", error);

   error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
   Console.WriteLine("MoveJ return: {0}", error);

   error = robot.MoveL( mulitilineorigin1_joint,  mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1,  epos, 0, 0,  offset, 0, 100);
   Console.WriteLine("MoveL return: {0}", error);

   error = robot.ARCStart(1, 0, 3000);
   Console.WriteLine("ARCStart return: {0}", error);

   error = robot.WeaveStart(0);
   Console.WriteLine("WeaveStart return: {0}", error);

   error = robot.ArcWeldTraceControl(1, 0, 1, 0.06, 5, 5, 50, 1, 0.06, 5, 5, 55, 0, 0, 4, 1, 10);
   Console.WriteLine("ArcWeldTraceControl return: {0}", error);

   error = robot.MoveL( mulitilineorigin2_joint,  mulitilineorigin2_desc, 13, 0, 1, 100, 100, -1,  epos, 0, 0,  offset, 0, 100);
   Console.WriteLine("MoveL return: {0}", error);

   error = robot.ArcWeldTraceControl(0, 0, 1, 0.06, 5, 5, 50, 1, 0.06, 5, 5, 55, 0, 0, 4, 1, 10);
   Console.WriteLine("ArcWeldTraceControl return: {0}", error);

   error = robot.WeaveEnd(0);
   Console.WriteLine("WeaveEnd return: {0}", error);

   error = robot.ARCEnd(1, 0, 10000);
   Console.WriteLine("ARCEnd return: {0}", error);

   error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
   Console.WriteLine("MoveJ return: {0}", error);

   error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin1_desc.tran, mulitilineX1_desc, mulitilineZ1_desc, 10.0, 0.0, 0.0, ref offset);
   Console.WriteLine("MultilayerOffsetTrsfToBase return: {0}  offect is {1} {2} {3}", error, offset.tran.x, offset.tran.y, offset.tran.z);

   error = robot.MoveL( mulitilineorigin1_joint,  mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1,  epos, 0, 1,  offset, 0, 100);
   Console.WriteLine("MoveL return: {0}", error);

   error = robot.ARCStart(1, 0, 3000);
   Console.WriteLine("ARCStart return: {0}", error);

   error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin2_desc.tran, mulitilineX2_desc, mulitilineZ2_desc, 10, 0, 0, ref offset);
   Console.WriteLine("MultilayerOffsetTrsfToBase return: {0}  offect is {1} {2} {3}", error, offset.tran.x, offset.tran.y, offset.tran.z);

   error = robot.ArcWeldTraceReplayStart();
   Console.WriteLine("ArcWeldTraceReplayStart return: {0}", error);

   error = robot.MoveL( mulitilineorigin2_joint,  mulitilineorigin2_desc, 13, 0, 2, 100, 100, -1,  epos, 0, 1,  offset, 0, 100);
   Console.WriteLine("MoveL return: {0}", error);

   error = robot.ArcWeldTraceReplayEnd();
   Console.WriteLine("ArcWeldTraceReplayEnd return: {0}", error);

   error = robot.ARCEnd(1, 0, 10000);
   Console.WriteLine("ARCEnd return: {0}", error);

   error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
   Console.WriteLine("MoveJ return: {0}", error);

   error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin1_desc.tran, mulitilineX1_desc, mulitilineZ1_desc, 0, 10, 0, ref offset);
   Console.WriteLine("MultilayerOffsetTrsfToBase return: {0}  offect is {1} {2} {3}", error, offset.tran.x, offset.tran.y, offset.tran.z);

   error = robot.MoveL( mulitilineorigin1_joint,  mulitilineorigin1_desc, 13, 0, 10, 100, 100, -1,  epos, 0, 1,  offset, 0, 100);
   Console.WriteLine("MoveL return: {0}", error);

   error = robot.ARCStart(1, 0, 3000);
   Console.WriteLine("ARCStart return: {0}", error);

   error = robot.MultilayerOffsetTrsfToBase(mulitilineorigin2_desc.tran, mulitilineX2_desc, mulitilineZ2_desc, 0, 10, 0, ref offset);
   Console.WriteLine("MultilayerOffsetTrsfToBase return: {0}  offect is {1} {2} {3}", error, offset.tran.x, offset.tran.y, offset.tran.z);

   error = robot.ArcWeldTraceReplayStart();
   Console.WriteLine("MoveJ return: {0}", error);

   error = robot.MoveL(mulitilineorigin2_joint, mulitilineorigin2_desc, 13, 1, 2, 100, 100, -1, epos, 1, 1, offset, 1, 100);
   Console.WriteLine("MoveL return: {0}", error);

   error = robot.ArcWeldTraceReplayEnd();
   Console.WriteLine("ArcWeldTraceReplayEnd return: {0}", error);

   error = robot.ARCEnd(1, 0, 3000);
   Console.WriteLine("ARCEnd return: {0}", error);

   error = robot.MoveJ(mulitilinesafe_joint, mulitilinesafe_desc, 13, 0, 10, 100, 100, epos, -1, 0, offset);
   Console.WriteLine("MoveJ return: {0}", error);
}

robotic arm
FAIRINO ROBOTIC ARMS

Contact

Location: 10637 Scripps Summit Court,

San Diego, CA. 92131
Phone: (619) 333-FAIR
Email: hello@fairino.us

© 2023 Fairino US official site Proudly created By G2T

bottom of page