雷赛运动控制卡基于Linux系统使用

雷赛运动控制卡基于Linux系统使用

导语:Linux系统是一款完全免费开源、基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,可以简化开发过程,使系统具有较强的移植性。

Linux系统是一款完全免费开源、基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,可以简化开发过程,使系统具有较强的移植性。

今天我们就来讲讲雷赛控制运动控制卡Linux系统的开发应用教程。本教程是在ubuntu 18.04系统下,以DMC-E3032总线控制卡作为主控,用Qt进行开发。控制卡驱动支持的Linux内核版本:2.6.0-5.14.11,建议用户使用的系统版本以及内核版本与上述版本匹配。

一、运动控制卡驱动安装说明

01、编译驱动源码生成ko驱动文件

(1)在要运行的Linux电脑上解压安装文件中的DMC3K5K.rar压缩包。进入文件夹目录./DMC3K5K/dmc3k5k_installation

(2)输入指令:sudo chmod 777–R redist修改文件夹权限。

(3)输入指令:cd 存放路径/redist进入redist目录。

(4)在此目录下,调出终端,输入指令:sudo./configure 生成编译文件。

(5)输入指令:sudo make编译.ko文件和对应的wdreg文件。

(6)输入指令:sudo make install安装驱动(注意:电脑重启后,控制卡驱动会自动卸载,需进行步骤二)。

(7)指令:sudo chmod 777/dev/DMC3K5K设置文件权限。

(8)将生成的wdreg文件和DMC3K5K.ko文件(在新生成的文件夹中)放到redist目录下,驱动就编译完成了。

02、设置开机后自动安装驱动

在启动脚本/etc/rc.local中加载驱动模块,每次开机都自动安装DMC3K5K驱动模块,并修改DMC3K5K的访问权限,设置为所有用户对DMC3K5K都有完全的权限。

(1)Ctrl+Alt+T调出终端

下载vim编辑器

指令:sudo apt-get install vim

(2)进入etc文件夹

指令:cd/etc

(3)使用vim编辑器打开rc.local

指令:sudo vim rc.local

在弹出的界面中选择(E)dit anyway

(4)点击键盘字母i,插入指令,在文件/etc/rc.local中的指令exit 0之前添加:

指令:cd存放路径/redist(定位到文件目录下)

指令:sudo make install(安装驱动)

指令:sudo chmod 777/dev/DMC3K5K(设置文件权限)

(5)按ESC键,输入:wq,按Enter键,保存退出文件

(6)重启电脑,开机自动安装运动驱动,成功后,可以使用ls命令列出/dev文件夹下DMC3K5K的详细信息,查看DMC3K5K的访问权限

指令:sudo ls-l/dev

可以看到有DMC3K5K这个设备,并且DMC3K5K的权限为crwxrwxrwx

添加rc.local文件的方法

在比较新的Linux系统中已经没有rc.local文件,通过vim生成的文件并没有自启动服务,可通过以下方法执行后再编辑rc.local文件:

(1)设置rc-local.service

(2)激活rc-local.service

(3)添加启动服务

手工创建或者拷贝已有的/etc/rc.local,并赋予执行权限

运动控制卡驱动卸载说明

删除自启动脚本文件

输入指令:sudo rm/dev/rc.local删除自启动脚本文件。

删除控制卡驱动模块

输入指令:sudu rm/dev/DMCSK5K

二、工程构建

01、新建项目

(1)打开“Qt”软件,点击菜单中的“文件”①;点击“新建文件或项目”②;如下图所示:

(2)弹出新建项目弹窗,在“项目”中选择“Application(Qt)”①;选择支持桌面平台的所有图形用户的应用程序“Qt Widgets Application”②;点击“choose”③;如下图所示:

(3)进入工程配置窗口中的“Location”①;输入工程名称“DMC-Demo”②(注意:Qt这里不能使用任何的中文,不然有可能会出现编译问题);点击“浏览”选择工程创建的路径③;点击“下一步”④;如下图所示:

(4)进入“Build System”中①;选择默认的“qmake”②(qmake是一个协助简化跨平台进行专案开发的构建过程的工具程式);点击“下一步”③;如下图所示:

(5)进入“Details”中①;在“Class”中可使用默认的“MainWindow”名称作为主窗体名称,也可自行命名②;在“QMainWindow”主窗口类作为基类③(主窗口具有主菜单栏、工具栏和状态栏,类似与一般的应用程序的主窗口);勾选“Generate form”复选框④(这个选项如果勾选,就会由Qt Creator创建用户界面(User Interface,UI)文件,否则需要自己手动创建UI界面);点击“下一步”⑤;如下图所示:

进入“Translation”中①;在“Language”中可使用默认的“”②;点击“下一步”③;如下图所示:


(6)进入“Kits”中①;选择“Desktop Qt 5.12.12 GCC 64bit”②;点击“下一步”③,如下图所示:

(7)进入“Summary”中①;可查看要添加的文件的详细信息,确认信息无误 ②;点击“完成”③,如下图所示:

(8)完成以上新建项目的步骤后,会进入代码编辑界面,在左侧项目栏中可以看到“DMC-Demo”的项目文件夹,其中包括了4个子文件夹,以下对这4个子文件夹进行简单介绍:

①“DMC-Demo.pro”是项目管理文件,包括一些对项目的设置项;

②“Headers”分组,该节点下是项目内的所有头文件(.h);

③“Sources 分组”,该节点下是项目内的所有 C++源文件(.cpp),下图项目中有两个 C++源文件,“main.cpp”是主函数文件,也是应用程序的入口;“mainwindow.cpp”是主窗口类的实现文件,与“mainwindow.h”文件对应;

④“Forms”分组,该节点下是项目内的所有界面文件(.ui),如下图所示:

02、添加头文件

(1)将“LTDMC.h”头文件复制到刚刚新建的好的工程文件夹下,如下图所示:

(2)进入Qt程序编辑界面中,鼠标右键单击“DMC-Demo”项目文件夹下的“Headers”①;点击“添加现有文件”②,如下图所示:

(3)将会弹出“添加现有文件”弹窗,进入文件夹“DMC-Demo”中;选择“LTDMC.h”文件①;点击“Open”②,如下图所示:

(4)等待加载完成后,在“项目”的“Headers”下可以看到添加的“LTDMC.h”头文件;双击进入后可以看到控制卡定义的函数,如下图所示:

03、添加函数库

下面以添加64位函数库为例详细介绍如何添加函数库:

(1)进行调试,按编辑页面左下角的按钮①,如下图所示:

(2)等待调试完成之后,会弹窗“MainWindow”,如下图所示:

(3)将libLTDMC.h文件复制到“DMC-Demo”文件夹中,如下图所示:

(4)进入Qt程序编辑界面中,鼠标右键单击“项目”下的“DMC-Demo”①;点击“添加库”②,如下图所示:

(5)弹出“添加库”弹窗,进入“Type”库类型中①;勾选“外部库”②;点击“下一步”③,如下图所示:

(6)进入“Details”中①,确认“Library type”中选择的为“Linux(lib*.so lib*.a)”类型②;点击“库文件”右方的“浏览”按钮③;在弹出“选择文件”弹窗中进 入文件夹“DMC-Demo”文件夹,选择“libLTDMC.so”文件④;点击“打开”⑤,如下图所示:

(7)“库文件”与“包含路径”会同时加载信息①;点击“下一步”②,如下图所示:

(8)进入“汇总”中,确认信息无误①;点击“完成”②;最后点击“ ” 进行程序的编译,如下图所示。至此工程构建就已经完成了。

三、综合例程编程详解

01、添加控制卡命名空间

打开Qt程序,双击“DMC-Demo”项目文件夹下的“Headers”①下的“mainwindow.h”②进入Qt程序编辑界面;在代码文件开头处添加代码“#include LTDMC.h ③;如下图所示:

02、初始化模块

控制卡的初始化及获取卡信息,具体写法如下图所示:

03、定长运动模块

选择“DMC-Demo”项目文件夹下的“Forms”,双击“mainwindow.ui”,进入UI编辑界面;在左侧工具栏中选择控件进行UI编辑,如下图所示:

最后效果及主要代码如下图所示:

04、插补运动模块

本例展示的是轴0和轴1进行两轴直线插补运动,最后效果及主要代码如下图所示:

05、回零运动模块

06、获取状态信息

(1)首先要构造一个定时器,并且声明定时器的槽函数;写入“#include”包含QTimer的头文件”①;写入“QTimer *timer;”②;写入“void slot_TimeEvent();”③;如下图所示:


(2)双击“DMC-Demo”项目文件夹下的“Sources”下的“mainwindow.cpp”进入Qt程序编辑界面①;在程序初始化中创建定时器;设置定时周期;当达到超时时间,则发射信号,执行定时器槽函数;开启定时器,1ms触发定时器②,如下图所示:

(3)写入定义定时器槽函数①;在定时器槽函数中读取信息;如下图所示:

07、例程综合展示

雷赛控制DMC-3000/5000系列运动控制卡都已支持Linux系统开发,若需要相关资料可联系我们。

-END-

猜你喜欢