机械臂功能

睿尔曼超轻量仿人机械臂--集成外部串口IO控制器

Forrest 2023-11-23

     本文中的C语言示例项目与外部控制器资料已存放至网盘,需要可以直接进行下载。

     链接:https://pan.baidu.com/s/1xPAf5AajKaM40CI7bHA1yw?pwd=tkcf

     提取码:tkcf

一、文章及功能介绍

       在机械臂使用过程中,根据不同的使用需求及场景,机械臂的IO配置可能会出现满足不了使用需求的情况。在这种情况下就需要用到外部IO控制器,本文中提到的外部IO控制器可外接8个外部数字输入传感器、8个外部输出信号口,下面带大家看一下如何使用。

机械臂底部控制器与机械臂末端均可外接IO控制器,本文以机械臂末端接口为例,如需使用机械臂底部控制器请参考机械臂协议文档或接口文档。

二、串口IO控制器的使用

1.设备接线接线

IO控制器的供电为宽电压12~24V,接线完成之后需设置机械臂末端输出相对应的电压,电压的具体设置根据传感器所需供电进行设置。

 

 

2.机械臂开启通信及供电设置

      机械臂开启末端通信及供电有多种方式,此处以JSON协议和API的方式进行设置。串口IO控制器相关的传感器接线在本文中不做讲解,详细参考云盘中文档说明。

 

 

①发送JSON协议设置

//1、打开机械臂控制器485接口,发送标准的modbusRTU协议

{"command":"set_modbus_mode","port":1,"baudrate":9600,"timeout":20}
//2、设置串口IO控制器继电器输出,1号输出
//写单圈数据命令
{"command":"write_single_coil","port":0,"address":1,"data":1,"device":1}
//3、设置串口IO控制器继电器输出,1号关闭输出
{"command":"write_single_coil","port":0,"address":1,"data":0,"device":1}
//4、读取输入0号信号口
//读离散量输入
{"command":"read_input_status","port":0,"address":0,"num":1,"device":1}
//5、关闭控制器modbusRTU通信
{"command":"close_modbus_mode","port":0}

 

②QT中C语言项目设置

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include 
#include 
#include 
#include 
SOCKHANDLE m_sockhand;
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}
MainWindow::~MainWindow()
{
    delete ui;
}
// 开始连接
void MainWindow::on_pushButton_Start_clicked()
{
    // 初始化API, 注册回调函数
    RM_API_Init(65, NULL);
    // 连接服务器
    m_sockhand =  Arm_Socket_Start((char*)"192.168.1.18", 8080, 5000);
    qDebug() << "m_sockhand:" << m_sockhand;
    char* version;
    version = API_Version();
    qDebug() << "version:" << version;
}
// 关闭连接
void MainWindow::on_pushButton_Close_clicked()
{
    // 关闭连接
    Arm_Socket_Close(m_sockhand);
    m_sockhand = -1;
}
void MainWindow::on_pushButton_move_clicked()
{
    //设置机械臂控制器端485输出
    ret = Set_Modbus_Mode(m_sockhand,0,9600,20,1);
    ui->textEdit->append(QString(u8"设置工具端485通信: [%1]").arg(ret));
    //读取串口IO控制器的输入信息
    int date1;
    ret = Get_Read_Input_Status(m_sockhand,0,1,1,1,&date1);
    qDebug() << "data:" << date1;
    //设置串口IO控制器继电器输出
    ret = Write_Single_Coil(m_sockhand,0,0,1,1,1);
    qDebug() << "DOret:" << ret;
    Sleep(1000);
    //设置串口IO控制器继电器关闭输出
    ret = Write_Single_Coil(m_sockhand,0,0,0,1,1);
    ui->textEdit->append(QString(u8":DO输出 [%1]").arg(ret));
    Sleep(1000);}

附件下载

0 条评论

关于作者

Forrest

这家伙很懒,什么也没写!

选择发帖板块
选择发帖板块