4.6 寄存器信息
4.6.1 R 数值寄存器相关操作
4.6.1.1 获取一个 R 寄存器的值
| 方法名 | Registers.Read_R(int index ) |
|---|---|
| 描述 | 读取 R 数值寄存器的值 |
| 请求参数 | index : int 要读取的 R 寄存器编号 |
| 返回值 | double: R 寄存器数值 StatusCode: 读取操作执行结果 |
| 兼容的机器人软件版本 | 协作机器人: 7.6.0.1 工业机器人: 7.6.0.0 |
4.6.1.2 写入一个 R 寄存器的值
| 方法名 | Registers.Write_R(int index , double value ) |
|---|---|
| 描述 | 写入 R 数值寄存器的值 |
| 请求参数 | index : int 要写入的 R 寄存器编号 value : double 要写入的 R 寄存器数值 |
| 返回值 | StatusCode: 写入操作执行结果 |
| 兼容的机器人软件版本 | 协作机器人: 7.6.0.1 工业机器人: 7.6.0.0 |
4.6.1.3 删除一个 R 寄存器
| 方法名 | Registers.Delete_R(int index ) |
|---|---|
| 描述 | 删除指定的 R 数值寄存器 |
| 请求参数 | index : int 要删除的 R 寄存器编号 |
| 返回值 | StatusCode: 删除操作执行结果 |
| 兼容的机器人软件版本 | 协作 (Copper): v7.5.0.0+ 工业 (Bronze): v7.5.0.0+ |
示例代码
cs
using Agilebot.IR;
using Agilebot.IR.Types;
public class RRegisterOperations
{
public static StatusCode Run(string controllerIP, bool useLocalProxy = true)
{
// [ZH] 初始化捷勃特机器人
// [EN] Initialize the Agilebot robot
Arm controller = new Arm(controllerIP, useLocalProxy);
// [ZH] 连接捷勃特机器人
// [EN] Connect to the Agilebot robot
StatusCode code = controller.ConnectSync();
Console.WriteLine(code != StatusCode.OK ? code.GetDescription() : "连接成功/Successfully connected.");
if (code != StatusCode.OK)
{
return code;
}
try
{
// [ZH] 设置寄存器索引和值
// [EN] Set register index and value
int index = 1;
double value = 9.9;
// [ZH] 写入R寄存器
// [EN] Write R register
code = controller.Registers.Write_R(index, value);
if (code == StatusCode.OK)
{
Console.WriteLine("写入R寄存器成功/Write R Register Success");
}
else
{
Console.WriteLine($"写入R寄存器失败/Write R Register Failed: {code.GetDescription()}");
}
// [ZH] 读取R寄存器
// [EN] Read R register
double readValue;
(readValue, code) = controller.Registers.Read_R(index);
if (code == StatusCode.OK)
{
Console.WriteLine($"读取R寄存器成功/Read R Register Success: 值/Value = {readValue}");
}
else
{
Console.WriteLine($"读取R寄存器失败/Read R Register Failed: {code.GetDescription()}");
}
// [ZH] 删除R寄存器
// [EN] Delete R register
code = controller.Registers.Delete_R(index);
if (code == StatusCode.OK)
{
Console.WriteLine("删除R寄存器成功/Delete R Register Success");
}
else
{
Console.WriteLine($"删除R寄存器失败/Delete R Register Failed: {code.GetDescription()}");
}
}
catch (Exception ex)
{
Console.WriteLine($"执行过程中发生异常/Exception occurred during execution: {ex.Message}");
code = StatusCode.OtherReason;
}
finally
{
// [ZH] 关闭连接
// [EN] Close the connection
StatusCode disconnectCode = controller.Disconnect();
if (disconnectCode != StatusCode.OK)
{
Console.WriteLine(disconnectCode.GetDescription());
if (code == StatusCode.OK)
code = disconnectCode;
}
}
return code;
}
}4.6.2 MR 运动寄存器相关操作
4.6.2.1 获取一个 MR 寄存器的值
| 方法名 | Registers.Read_MR(int index ) |
|---|---|
| 描述 | 读取 MR 运动寄存器的值 |
| 请求参数 | index : int 要读取的 MR 寄存器编号 |
| 返回值 | int: MR 寄存器数值 StatusCode: 读取操作执行结果 |
| 兼容的机器人软件版本 | 协作机器人: 7.6.0.1 工业机器人: 7.6.0.0 |
4.6.2.2 写入一个 MR 寄存器的值
| 方法名 | Registers.Write_MR(int index , int value ) |
|---|---|
| 描述 | 写入 MR 运动寄存器的值 |
| 请求参数 | index : int 要写入的 MR 寄存器编号 value : int 要写入的 MR 寄存器数值 |
| 返回值 | StatusCode: 写入操作执行结果 |
| 兼容的机器人软件版本 | 协作机器人: 7.6.0.1 工业机器人: 7.6.0.0 |
4.6.2.3 删除一个 MR 寄存器
| 方法名 | Registers.Delete_MR(int index ) |
|---|---|
| 描述 | 删除指定的 MR 运动寄存器 |
| 请求参数 | index : int 要删除的 MR 寄存器编号 |
| 返回值 | StatusCode: 删除操作执行结果 |
| 兼容的机器人软件版本 | 协作 (Copper): v7.5.0.0+ 工业 (Bronze): v7.5.0.0+ |
示例代码
cs
using Agilebot.IR;
using Agilebot.IR.Types;
public class MRRegisterOperations
{
public static StatusCode Run(string controllerIP, bool useLocalProxy = true)
{
// [ZH] 初始化捷勃特机器人
// [EN] Initialize the Agilebot robot
Arm controller = new Arm(controllerIP, useLocalProxy);
// [ZH] 连接捷勃特机器人
// [EN] Connect to the Agilebot robot
StatusCode code = controller.ConnectSync();
Console.WriteLine(code != StatusCode.OK ? code.GetDescription() : "连接成功/Successfully connected.");
if (code != StatusCode.OK)
{
return code;
}
try
{
// [ZH] 设置寄存器索引和值
// [EN] Set register index and value
int index = 1;
int value = 9;
// [ZH] 写入MR寄存器
// [EN] Write MR register
code = controller.Registers.Write_MR(index, value);
if (code == StatusCode.OK)
{
Console.WriteLine("写入MR寄存器成功/Write MR Register Success");
}
else
{
Console.WriteLine($"写入MR寄存器失败/Write MR Register Failed: {code.GetDescription()}");
}
// [ZH] 读取MR寄存器
// [EN] Read MR register
int readValue;
(readValue, code) = controller.Registers.Read_MR(index);
if (code == StatusCode.OK)
{
Console.WriteLine($"读取MR寄存器成功/Read MR Register Success: 值/Value = {readValue}");
}
else
{
Console.WriteLine($"读取MR寄存器失败/Read MR Register Failed: {code.GetDescription()}");
}
// [ZH] 删除MR寄存器
// [EN] Delete MR register
code = controller.Registers.Delete_MR(index);
if (code == StatusCode.OK)
{
Console.WriteLine("删除MR寄存器成功/Delete MR Register Success");
}
else
{
Console.WriteLine($"删除MR寄存器失败/Delete MR Register Failed: {code.GetDescription()}");
}
}
catch (Exception ex)
{
Console.WriteLine($"执行过程中发生异常/Exception occurred during execution: {ex.Message}");
code = StatusCode.OtherReason;
}
finally
{
// [ZH] 关闭连接
// [EN] Close the connection
StatusCode disconnectCode = controller.Disconnect();
if (disconnectCode != StatusCode.OK)
{
Console.WriteLine(disconnectCode.GetDescription());
if (code == StatusCode.OK)
code = disconnectCode;
}
}
return code;
}
}4.6.3 SR 字符串寄存器相关操作
4.6.3.1 获取一个 SR 寄存器的值
| 方法名 | Registers.Read_SR(int index ) |
|---|---|
| 描述 | 读取 SR 字符串寄存器的值 |
| 请求参数 | index : int 要读取的 SR 寄存器编号 |
| 返回值 | string: SR 寄存器字符串值 StatusCode: 读取操作执行结果 |
| 兼容的机器人软件版本 | 协作机器人: 7.6.0.1 工业机器人: 7.6.0.0 |
4.6.3.2 写入一个 SR 寄存器的值
| 方法名 | Registers.Write_SR(int index , string value ) |
|---|---|
| 描述 | 写入 SR 字符串寄存器的值 |
| 请求参数 | index : int 要写入的 SR 寄存器编号 value : string 要写入的 SR 寄存器字符串值 |
| 返回值 | StatusCode: 写入操作执行结果 |
| 兼容的机器人软件版本 | 协作机器人: 7.6.0.1 工业机器人: 7.6.0.0 |
4.6.3.3 删除一个 SR 寄存器
| 方法名 | Registers.Delete_SR(int index ) |
|---|---|
| 描述 | 删除指定的 SR 字符串寄存器 |
| 请求参数 | index : int 要删除的 SR 寄存器编号 |
| 返回值 | StatusCode: 删除操作执行结果 |
| 兼容的机器人软件版本 | 协作 (Copper): v7.5.0.0+ 工业 (Bronze): v7.5.0.0+ |
示例代码
cs
using Agilebot.IR;
using Agilebot.IR.Types;
public class SRRegisterOperations
{
public static StatusCode Run(string controllerIP, bool useLocalProxy = true)
{
// [ZH] 初始化捷勃特机器人
// [EN] Initialize the Agilebot robot
Arm controller = new Arm(controllerIP, useLocalProxy);
// [ZH] 连接捷勃特机器人
// [EN] Connect to the Agilebot robot
StatusCode code = controller.ConnectSync();
Console.WriteLine(code != StatusCode.OK ? code.GetDescription() : "连接成功/Successfully connected.");
if (code != StatusCode.OK)
{
return code;
}
try
{
// [ZH] 设置寄存器索引和值
// [EN] Set register index and value
int index = 1;
string value = "test";
// [ZH] 写入SR寄存器
// [EN] Write SR register
code = controller.Registers.Write_SR(index, value);
if (code == StatusCode.OK)
{
Console.WriteLine("写入SR寄存器成功/Write SR Register Success");
}
else
{
Console.WriteLine($"写入SR寄存器失败/Write SR Register Failed: {code.GetDescription()}");
}
// [ZH] 读取SR寄存器
// [EN] Read SR register
string readValue;
(readValue, code) = controller.Registers.Read_SR(index);
if (code == StatusCode.OK)
{
Console.WriteLine($"读取SR寄存器成功/Read SR Register Success: 值/Value = {readValue}");
}
else
{
Console.WriteLine($"读取SR寄存器失败/Read SR Register Failed: {code.GetDescription()}");
}
// [ZH] 删除SR寄存器
// [EN] Delete SR register
code = controller.Registers.Delete_SR(index);
if (code == StatusCode.OK)
{
Console.WriteLine("删除SR寄存器成功/Delete SR Register Success");
}
else
{
Console.WriteLine($"删除SR寄存器失败/Delete SR Register Failed: {code.GetDescription()}");
}
}
catch (Exception ex)
{
Console.WriteLine($"执行过程中发生异常/Exception occurred during execution: {ex.Message}");
code = StatusCode.OtherReason;
}
finally
{
// [ZH] 关闭连接
// [EN] Close the connection
StatusCode disconnectCode = controller.Disconnect();
if (disconnectCode != StatusCode.OK)
{
Console.WriteLine(disconnectCode.GetDescription());
if (code == StatusCode.OK)
code = disconnectCode;
}
}
return code;
}
}4.6.4 PR 位姿寄存器相关操作
4.6.4.1 获取一个 PR 寄存器的值
| 方法名 | Registers.Read_PR(int index ) |
|---|---|
| 描述 | 读取 PR 位姿寄存器的值 |
| 请求参数 | index : int 要读取的 PR 寄存器编号 |
| 返回值 | PoseRegister: PR 寄存器位姿数据 StatusCode: 读取操作执行结果 |
| 兼容的机器人软件版本 | 协作机器人: 7.6.0.1 工业机器人: 7.6.0.0 |
4.6.4.2 写入一个 PR 寄存器的值
| 方法名 | Registers.Write_PR(int index , PoseRegister value ) |
|---|---|
| 描述 | 写入 PR 位姿寄存器的值 |
| 请求参数 | index : int 要写入的 PR 寄存器编号 value : PoseRegister 要写入的 PR 寄存器位姿数据 |
| 返回值 | StatusCode: 写入操作执行结果 |
| 兼容的机器人软件版本 | 协作机器人: 7.6.0.1 工业机器人: 7.6.0.0 |
4.6.4.3 删除一个 PR 寄存器
| 方法名 | Registers.Delete_PR(int index ) |
|---|---|
| 描述 | 删除指定的 PR 位姿寄存器 |
| 请求参数 | index : int 要删除的 PR 寄存器编号 |
| 返回值 | StatusCode: 删除操作执行结果 |
| 兼容的机器人软件版本 | 协作 (Copper): v7.5.0.0+ 工业 (Bronze): v7.5.0.0+ |
示例代码
cs
using Agilebot.IR;
using Agilebot.IR.Registers;
using Agilebot.IR.Types;
public class PRRegisterOperations
{
public static StatusCode Run(string controllerIP, bool useLocalProxy = true)
{
// [ZH] 初始化捷勃特机器人
// [EN] Initialize the Agilebot robot
Arm controller = new Arm(controllerIP, useLocalProxy);
// [ZH] 连接捷勃特机器人
// [EN] Connect to the Agilebot robot
StatusCode code = controller.ConnectSync();
Console.WriteLine(code != StatusCode.OK ? code.GetDescription() : "连接成功/Successfully connected.");
if (code != StatusCode.OK)
{
return code;
}
try
{
// [ZH] 设置寄存器索引
// [EN] Set register index
int index = 1;
// [ZH] 生成位姿寄存器
// [EN] Generate pose register
var pose = new PoseRegister
{
Id = 1,
Name = "Test",
Comment = "Test",
PoseRegisterData = new PoseRegisterData
{
Pt = PoseType.Joint,
Joint = new Joint
{
J1 = 6.6,
J2 = 6.6,
J3 = 6.6,
J4 = 6.6,
J5 = 6.6,
J6 = 6.6,
},
CartData = null,
},
};
// [ZH] 写入PR寄存器
// [EN] Write PR register
code = controller.Registers.Write_PR(pose);
if (code == StatusCode.OK)
{
Console.WriteLine("写入PR寄存器成功/Write PR Register Success");
}
else
{
Console.WriteLine($"写入PR寄存器失败/Write PR Register Failed: {code.GetDescription()}");
}
// [ZH] 读取PR寄存器
// [EN] Read PR register
PoseRegister readValue;
(readValue, code) = controller.Registers.Read_PR(index);
if (code == StatusCode.OK)
{
Console.WriteLine($"读取PR寄存器成功/Read PR Register Success: ID = {readValue.Id}");
}
else
{
Console.WriteLine($"读取PR寄存器失败/Read PR Register Failed: {code.GetDescription()}");
}
// [ZH] 删除PR寄存器
// [EN] Delete PR register
code = controller.Registers.Delete_PR(index);
if (code == StatusCode.OK)
{
Console.WriteLine("删除PR寄存器成功/Delete PR Register Success");
}
else
{
Console.WriteLine($"删除PR寄存器失败/Delete PR Register Failed: {code.GetDescription()}");
}
}
catch (Exception ex)
{
Console.WriteLine($"执行过程中发生异常/Exception occurred during execution: {ex.Message}");
code = StatusCode.OtherReason;
}
finally
{
// [ZH] 关闭连接
// [EN] Close the connection
StatusCode disconnectCode = controller.Disconnect();
if (disconnectCode != StatusCode.OK)
{
Console.WriteLine(disconnectCode.GetDescription());
if (code == StatusCode.OK)
code = disconnectCode;
}
}
return code;
}
}4.6.5 Modbus 寄存器(MH 保持寄存器、MI 输入寄存器)
4.6.5.1 获取一个 MH 寄存器的值
| 方法名 | Registers.Read_MH(int index ) |
|---|---|
| 描述 | 获取 MH 寄存器的值 |
| 请求参数 | index : int 希望获取的寄存器编号 |
| 返回值 | 寄存器信息 StatusCode: 函数执行结果 |
| 兼容的机器人软件版本 | 协作机器人: 7.6.0.0 工业机器人: 7.6.0.0 |
4.6.5.2 获取一个 MI 寄存器的值
| 方法名 | Registers.Read_MI(int index ) |
|---|---|
| 描述 | 获取 MI 寄存器的值 |
| 请求参数 | index : int 希望获取的寄存器编号 |
| 返回值 | 寄存器信息 StatusCode: 函数执行结果 |
| 兼容的机器人软件版本 | 协作机器人: 7.6.0.0 工业机器人: 7.6.0.0 |
4.6.5.3 写入一个 MH 寄存器的值
| 方法名 | Registers.Write_MH(int index , int value ) |
|---|---|
| 描述 | 更新一个 MH 寄存器的值 |
| 请求参数 | index : int 寄存器的编号 value : int 需要更新的寄存器信息 |
| 返回值 | StatusCode: 函数执行结果 |
| 兼容的机器人软件版本 | 协作机器人: 7.6.0.0 工业机器人: 7.6.0.0 |
4.6.5.4 写入一个 MI 寄存器的值
| 方法名 | Registers.Write_MI(int index , int value ) |
|---|---|
| 描述 | 更新一个 MI 寄存器的值 |
| 请求参数 | index : int 寄存器的编号 value : int 需要更新的寄存器信息 |
| 返回值 | StatusCode: 函数执行结果 |
| 兼容的机器人软件版本 | 协作机器人: 7.6.0.0 工业机器人: 7.6.0.0 |
示例代码
cs
using Agilebot.IR;
using Agilebot.IR.Types;
public class ModbusRegisterOperations
{
public static StatusCode Run(string controllerIP, bool useLocalProxy = true)
{
// [ZH] 初始化捷勃特机器人
// [EN] Initialize the Agilebot robot
Arm controller = new Arm(controllerIP, useLocalProxy);
// [ZH] 连接捷勃特机器人
// [EN] Connect to the Agilebot robot
StatusCode code = controller.ConnectSync();
Console.WriteLine(code != StatusCode.OK ? code.GetDescription() : "连接成功/Successfully connected.");
if (code != StatusCode.OK)
{
return code;
}
try
{
// [ZH] 设置寄存器索引和值
// [EN] Set register index and value
int index = 1;
int writeValue = 8;
// [ZH] 写入MH保持寄存器
// [EN] Write MH holding register
code = controller.Registers.Write_MH(index, writeValue);
if (code == StatusCode.OK)
{
Console.WriteLine("写入MH保持寄存器成功/Write MH Holding Register Success");
}
else
{
Console.WriteLine($"写入MH保持寄存器失败/Write MH Holding Register Failed: {code.GetDescription()}");
}
// [ZH] 写入MI输入寄存器
// [EN] Write MI input register
code = controller.Registers.Write_MI(index, writeValue + 1);
if (code == StatusCode.OK)
{
Console.WriteLine("写入MI输入寄存器成功/Write MI Input Register Success");
}
else
{
Console.WriteLine($"写入MI输入寄存器失败/Write MI Input Register Failed: {code.GetDescription()}");
}
// [ZH] 读取MH保持寄存器
// [EN] Read MH holding register
int mhValue;
(mhValue, code) = controller.Registers.Read_MH(index);
if (code == StatusCode.OK)
{
Console.WriteLine($"读取MH保持寄存器成功/Read MH Holding Register Success: 值/Value = {mhValue}");
}
else
{
Console.WriteLine($"读取MH保持寄存器失败/Read MH Holding Register Failed: {code.GetDescription()}");
}
// [ZH] 读取MI输入寄存器
// [EN] Read MI input register
int miValue;
(miValue, code) = controller.Registers.Read_MI(index);
if (code == StatusCode.OK)
{
Console.WriteLine($"读取MI输入寄存器成功/Read MI Input Register Success: 值/Value = {miValue}");
}
else
{
Console.WriteLine($"读取MI输入寄存器失败/Read MI Input Register Failed: {code.GetDescription()}");
}
}
catch (Exception ex)
{
Console.WriteLine($"执行过程中发生异常/Exception occurred during execution: {ex.Message}");
code = StatusCode.OtherReason;
}
finally
{
// [ZH] 关闭连接
// [EN] Close the connection
StatusCode disconnectCode = controller.Disconnect();
if (disconnectCode != StatusCode.OK)
{
Console.WriteLine(disconnectCode.GetDescription());
if (code == StatusCode.OK)
code = disconnectCode;
}
}
return code;
}
}