Skip to content

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+

示例代码

Registers/RRegisterOperations.cs
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+

示例代码

Registers/MRRegisterOperations.cs
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+

示例代码

Registers/SRRegisterOperations.cs
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+

示例代码

Registers/PRRegisterOperations.cs
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

示例代码

Registers/ModbusRegisterOperations.cs
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;
    }
}