Camming.cs
Simple cam motion
using System;
using System.Collections.Generic;
using System.Text;
using NUnit.Framework;
using RSI.RapidCode.SynqNet.dotNET;
using RSI.RapidCode.SynqNet.dotNET.Enums;
namespace SampleApplications
{
[TestFixture]
public class Camming
{
const int MASTER_AXIS_NUMBER = 2;
const int SLAVE_AXIS_NUMBER = 3;
const double master_velocity = 100;
const double master_accel = 1000;
double[] masterDistances = { 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 };
double[] slavePositions = { 90, 54, 36, 42, 46, 97, 34, 83, 63, 86, 60, 86, 63, 83, 34, 97, 46, 42, 36, 54, 90 };
MotionController mc;
Axis master;
Axis slave;
[SetUp]
public void Setup()
{
mc = MotionController.Create();
master = mc.AxisGet(MASTER_AXIS_NUMBER);
slave = mc.AxisGet(SLAVE_AXIS_NUMBER);
master.ClearFaults();
slave.ClearFaults();
master.AmpEnableSet(true);
slave.AmpEnableSet(true);
slave.PositionSet(0);
}
[Test]
public void CammingTest()
{
slave.MoveCamLinear(master.NumberGet(), RSIAxisMasterType.RSIAxisMasterTypeAXIS_COMMANDED_POSITION, masterDistances, slavePositions, masterDistances.Length);
master.MoveVelocity(master_velocity, master_accel);
slave.MotionDoneWait();
master.Stop();
}
}
}