Class RsInstructionTemplate
Defines a set of argument values that are applied to the instructions created using the template. You can create templates for all instructions in the system running on the virtual controller.
Inherited Members
Namespace: ABB.Robotics.RobotStudio.Stations
Assembly: ABB.Robotics.RobotStudio.Stations.dll
Syntax
sistent("RoutineCallTemplate")]
public sealed class RsInstructionTemplate : ProjectObject
Examples
RsInstructionTemplate Example.
Project.UndoContext.BeginUndoStep("RsActionInstructionDescriptionExample");
try
{
Station station = Station.ActiveStation;
RsInstructionDescription myInstrDesc;
if (station.ActiveTask.InstructionDescriptions.TryGetInstructionDescription("ConfL", out myInstrDesc))
{
// Cast myInstrDesc to a RsActionInstructionDescription.
RsActionInstructionDescription myConfLDesc = (RsActionInstructionDescription)myInstrDesc;
// Output to the logger.
Logger.AddMessage(new LogMessage("The ActionInstructionDescription '" + myConfLDesc.Name + "' has the following property values:"));
Logger.AddMessage(new LogMessage("InformationText: " + myConfLDesc.InformationText));
if (myConfLDesc.ActiveTemplate != null)
{
Logger.AddMessage(new LogMessage("ActiveTemplate: " + myConfLDesc.ActiveTemplate.Name));
}
Logger.AddMessage(new LogMessage("The following instruction parameters:"));
int i = 1;
foreach (RsInstructionParameterGroup rspg in myConfLDesc.InstructionParameterGroups)
{
Logger.AddMessage(new LogMessage("In group " + i + ":"));
i++;
foreach (RsInstructionParameter rsip in rspg.InstructionParameters)
{
Logger.AddMessage(new LogMessage("Parameter Name: '" + rsip.Name
+ "' Optional: '" + rsip.Optional.ToString()
+ "' Pointtype: '" + rsip.PointType.ToString()
+ "' SyncReferencedData: '" + rsip.SyncReferencedData.ToString() + "'"));
}
}
Logger.AddMessage(new LogMessage("The following instruction templates:"));
foreach (RsInstructionTemplate rsit in myConfLDesc.InstructionTemplates)
{
Logger.AddMessage(new LogMessage("Template '" + rsit.Name + "'"));
Logger.AddMessage(new LogMessage("Has the following InstructionArguments:"));
foreach (RsInstructionArgument rsia in rsit.InstructionArguments)
{
Logger.AddMessage(new LogMessage("Argument Name: '" + rsia.Name
+ "' Enabled: '" + rsia.Enabled.ToString()
+ "' Value: '" + rsia.Value + "'"));
}
}
}
else
{
Logger.AddMessage(new LogMessage("Failed to get the IstructionDescription for 'ConfL'"));
}
}
catch
{
Project.UndoContext.CancelUndoStep(CancelUndoStepType.Rollback);
throw;
}
finally
{
Project.UndoContext.EndUndoStep();
}
Constructors
RsInstructionTemplate()
Creates and initializes a new RsInstructionTemplate object.
Declaration
public RsInstructionTemplate()
Examples
Create RsInstructionTemplate.
Project.UndoContext.BeginUndoStep("CreateRsActionInstructionDescription");
try
{
// Instance active station.
Station station = Station.ActiveStation;
// Create an ActionInstructionDescription.
RsActionInstructionDescription myAccSetDesc =
new RsActionInstructionDescription("AccSet");
myAccSetDesc.InformationText = "AccSet - Reduces the acceleration.";
// Create the InstructionParameterGroups and InstructionParameters
// and add them to the ActionInstructionDescription.
RsInstructionParameterGroup rsIpg = new RsInstructionParameterGroup();
RsInstructionParameter rsIp = new RsInstructionParameter("Acc");
rsIp.AccessMode = ParameterAccessMode.In;
rsIp.DataType = "num";
rsIp.SyncReferencedData = false;
rsIp.Optional = false;
rsIpg.InstructionParameters.Add(rsIp);
myAccSetDesc.InstructionParameterGroups.Add(rsIpg);
rsIpg = new RsInstructionParameterGroup();
rsIp = new RsInstructionParameter("Ramp");
rsIp.AccessMode = ParameterAccessMode.In;
rsIp.DataType = "num";
rsIp.SyncReferencedData = false;
rsIp.Optional = false;
rsIpg.InstructionParameters.Add(rsIp);
myAccSetDesc.InstructionParameterGroups.Add(rsIpg);
RsInstructionTemplate myDefaultTemplate = new RsInstructionTemplate();
myDefaultTemplate.Name = "Default";
RsInstructionArgument rsia = new RsInstructionArgument("Acc", "");
rsia.Enabled = true;
myDefaultTemplate.InstructionArguments.Add(rsia);
rsia = new RsInstructionArgument("Ramp", "");
rsia.Enabled = true;
myDefaultTemplate.InstructionArguments.Add(rsia);
myAccSetDesc.InstructionTemplates.Add(myDefaultTemplate);
myAccSetDesc.ActiveTemplate = myDefaultTemplate;
// Finally add the ActionInstructionDescription to the ActiveTask.
station.ActiveTask.InstructionDescriptions.Add(myAccSetDesc);
}
catch
{
Project.UndoContext.CancelUndoStep(CancelUndoStepType.Rollback);
throw;
}
finally
{
Project.UndoContext.EndUndoStep();
}
Properties
InstructionArguments
Gets the InstructionArguments collection of the template.
Declaration
public RsInstructionArgumentCollection InstructionArguments { get; }
Property Value
Type | Description |
---|---|
RsInstructionArgumentCollection |
Examples
Get InstructionArguments.
Project.UndoContext.BeginUndoStep("RsActionInstructionDescriptionExample");
try
{
Station station = Station.ActiveStation;
RsInstructionDescription myInstrDesc;
if (station.ActiveTask.InstructionDescriptions.TryGetInstructionDescription("ConfL", out myInstrDesc))
{
// Cast myInstrDesc to a RsActionInstructionDescription.
RsActionInstructionDescription myConfLDesc = (RsActionInstructionDescription)myInstrDesc;
// Output to the logger.
Logger.AddMessage(new LogMessage("The ActionInstructionDescription '" + myConfLDesc.Name + "' has the following property values:"));
Logger.AddMessage(new LogMessage("InformationText: " + myConfLDesc.InformationText));
if (myConfLDesc.ActiveTemplate != null)
{
Logger.AddMessage(new LogMessage("ActiveTemplate: " + myConfLDesc.ActiveTemplate.Name));
}
Logger.AddMessage(new LogMessage("The following instruction parameters:"));
int i = 1;
foreach (RsInstructionParameterGroup rspg in myConfLDesc.InstructionParameterGroups)
{
Logger.AddMessage(new LogMessage("In group " + i + ":"));
i++;
foreach (RsInstructionParameter rsip in rspg.InstructionParameters)
{
Logger.AddMessage(new LogMessage("Parameter Name: '" + rsip.Name
+ "' Optional: '" + rsip.Optional.ToString()
+ "' Pointtype: '" + rsip.PointType.ToString()
+ "' SyncReferencedData: '" + rsip.SyncReferencedData.ToString() + "'"));
}
}
Logger.AddMessage(new LogMessage("The following instruction templates:"));
foreach (RsInstructionTemplate rsit in myConfLDesc.InstructionTemplates)
{
Logger.AddMessage(new LogMessage("Template '" + rsit.Name + "'"));
Logger.AddMessage(new LogMessage("Has the following InstructionArguments:"));
foreach (RsInstructionArgument rsia in rsit.InstructionArguments)
{
Logger.AddMessage(new LogMessage("Argument Name: '" + rsia.Name
+ "' Enabled: '" + rsia.Enabled.ToString()
+ "' Value: '" + rsia.Value + "'"));
}
}
}
else
{
Logger.AddMessage(new LogMessage("Failed to get the IstructionDescription for 'ConfL'"));
}
}
catch
{
Project.UndoContext.CancelUndoStep(CancelUndoStepType.Rollback);
throw;
}
finally
{
Project.UndoContext.EndUndoStep();
}