EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(一):驱动安装与建立连接

XPCIE1032H功能简介

XPCIE1032H是一款基于PCI Express的EtherCAT总线运动控制卡,可选6-64轴运动控制,支持多路高速数字输入输出,可轻松实现多轴同步控制和高速数据传输。

XPCIE1032H集成了强大的运动控制功能,结合MotionRT7运动控制实时软核,解决了高速高精应用中,PC Windows开发的非实时痛点,指令交互速度比传统的PCI/PCIe快10倍。

在这里插入图片描述

XPCIE1032H支持PWM,PSO功能,板载16进16出通用IO口,其中输出口全部为高速输出口,可配置为4路PWM输出口或者16路高速PSO硬件比较输出口。输入口含有8路高速输入口,可配置为4路高速色标锁存或两路编码器输入。

XPCIE1032H搭配MotionRT7实时内核,使用本地LOCAL接口连接,通过高速的核内交互,可以做到更快速的指令交互,单条指令与多条指令一次性交互时间可以达到3-5us左右。

在这里插入图片描述

➜XPCIE1032H与MotionRT7实时内核的配合具有以下优势:

在这里插入图片描述

1.支持多种上位机语言开发,所有系列产品均可调用同一套API函数库;

2.借助核内交互,可以快速调用运动指令,响应时间快至微秒级,比传统PCI/PCIe快10倍;

3.解决传统PCI/PCIe运动控制卡在Windows环境下控制系统的非实时性问题;

4.支持一维/二维/三维PSO(高速硬件位置比较输出),适用于视觉飞拍、精密点胶和激光能量控制等应用;

5.提供高速输入接口,便于实现位置锁存;

6.支持EtherCAT总线和脉冲输出混合联动、混合插补。

在这里插入图片描述
➜使用XPCIE1032H和MotionRT7进行项目开发时,通常需要进行以下步骤:

1.安装驱动程序并签名认证,识别XPCIE1032H;

2.打开并执行文件“MotionRT710.exe”,配置参数和运行运动控制实时内核;

3.使用ZDevelop软件连接到控制器,进行参数监控。连接时请使用PCI/LOCAL方式,并确保ZDevelop软件版本在3.10以上;

4.完成控制程序开发,通过LOCAL链接方式连接到运动控制卡,实现实时运动控制。

在这里插入图片描述

➜与传统PCI/PCIe卡和PLC的测试数据结果对比:

在这里插入图片描述

我们可以从测试对比结果看出,XPCIE1032H运动控制卡配合实时运动控制内核MotionRT7,在LOCAL链接(核内交互)的方式下,指令交互的效率是非常稳定,当测试数量从1w增加到10w时,单条指令交互时间与多条指令交互时间波动不大,非常适用于高速高精的应用。

XPCIE1032H卡安装

  • 关闭计算机电源。

  • 打开计算机机箱,选择一条空闲的XPCIE卡槽,用螺丝刀卸下相应的挡板条。

  • 将运动控制卡插入该槽,拧紧挡板条上的固定螺丝

  • 卸下临近插槽的一条挡板条,用螺丝将转接板固定在机箱该插槽上。

一、驱动安装

首先需要到正运动技术官网下载《MotionRT7运动控制实时内核》安装包,并检测此时PCIE卡已安装到工控机的PCIE插槽上,无明显松动翘边。

下载地址:http://www.zmotion.com.cn/download_list_4.html

在这里插入图片描述
在这里插入图片描述

方法一:使用驱动目录中自带的安装向导软件dpinst_amd64.exe自动安装,具体操作按软件指南。

在这里插入图片描述

方法二:手动安装。

1.打开“设备管理器”菜单选择“其他设备”中的“PCI设备”。

在这里插入图片描述

2.若存在多个PCI设备时,鼠标右击“属性”查看详细信息,属性选择“硬件ID”,确认为PCI\VEN_EF34&DEV_1000&开头的PCI设备。

在这里插入图片描述

3.右击选择“更新驱动程序”。

在这里插入图片描述

4.选择“手动浏览”查找驱动程序。

在这里插入图片描述

5.点击浏览,选择驱动driver文件夹。

在这里插入图片描述

6.点击下一步。

在这里插入图片描述

7.等待安装完成,点击关闭。

在这里插入图片描述

8.在设备管理器中有ZMotionRT Controller就是安装成功。

在这里插入图片描述

9.XPCIE1032H驱动安装视频演示。

驱动安装

二、建立连接

1.运行控制台程序

(1)打开控制台程序所在位置,运行可执行文件“MotionRt710.exe”。

在这里插入图片描述

(2)点击“Start”。

在这里插入图片描述

(3)保存XPCIE卡Config配置。

a.先点击【Stop】按钮关闭MontionRT7控制台,再点击UpdateCard更新卡信息。

在这里插入图片描述

b.点击“–>”将当前配置保存到历史配置中,方便下次打开可以直接使用。

在这里插入图片描述

c.保存完成后,点击确定。

在这里插入图片描述

2.新建C#项目(VS2022)

在这里插入图片描述

3.到正运动技术官网的下载中心选择需要的平台库文件

库文件下载地址:http://www.zmotion.com.cn/download_list_21.html

在这里插入图片描述

4.解压下载的安装包找到“Zmcaux.cs”,“zauxdll.dll”,“zmotion.dll”放入到项目文件中

(1)“Zmcaux.cs”放在项目根目录文件中,与bin目录同级。

在这里插入图片描述

(2)“zauxdll.dll”,“zmotion.dll”放在bin → Debug。

在这里插入图片描述

5.用vs打开新建的项目文件,在右边的解决方案资源管理器中点击显示所有,然后鼠标右键点击zmcaux.cs文件,点击包括在项目中

在这里插入图片描述

6.双击Form1.cs里面的Form1,出现代码编辑界面,在文件开头写入using cszmcaux,并声明控制器句柄g_handle

在这里插入图片描述

7.相关PC函数介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在form设计界面找到需要用到的控件拖拽到窗体中进行UI界面设计,效果如下。

在这里插入图片描述

8.相关程序

(1)通过LOCAL链接方式的链接按钮的消息响应函数来链接控制器。

private void button4_Click(object sender, EventArgs e)
{
    //LOCAL方式连接
    int ret = zmcaux.ZAux_FastOpen(5, "LOCAL", 1000, out g_handle); 
    if (ret == 0)
    {
        label2.Text = "已链接";
        label2.BackColor = Color.Green;
        MessageBox.Show("控制器链接成功!", "提示");
    }
    else
    {
        MessageBox.Show("链接失败,请选择正确的LOCAL!");
    }
}

(2)通过单条指令交互周期的测试按钮的事件处理函数来计算单条指令的交互周期和总耗时。

private void SingleRun(object sender, EventArgs e)
{
    float dpos = 0;
    DateTime beforeDT = System.DateTime.Now;
    for (int i = 0; i <10000; i++)
    {
        zmcaux.ZAux_Direct_GetDpos(g_handle, 0, ref dpos);
    }
    DateTime afterDT = System.DateTime.Now;
    TimeSpan ts = afterDT - beforeDT;
    label14.Text = (ts.TotalMilliseconds).ToString();
    label2.Text = ((ts.TotalMilliseconds * 1000) / 10000).ToString();
    label16.Text = dpos.ToString();
}

(3)通过多条指令交互周期的测试按钮的事件处理函数来计算多条指令的交互周期和总耗时。

private void MuchRun(object sender, EventArgs e)
{
    int[] status = { 0, 0, 0, 0 };
    float[] dpos = { 0, 0, 0, 0 };
    uint[] num = { 0, 0, 0, 0 };
    string cmd;
    int star = 0;
    StringBuilder cmdBuff = new StringBuilder(2048);
    string[] tmp = new string[12];
    cmd = "?dpos(0),dpos(1),dpos(2),dpos(3),axisstatus(0),axisstatus(1),axisstatus(2),axisstatus(3),in(0),in(1),in(2),in(3)";
    DateTime beforeDT = System.DateTime.Now;
    for (int i = 0; i < 10000; i++)
    {
        zmcaux.ZAux_DirectCommand(g_handle, cmd, cmdBuff, 2048);
    }
    DateTime afterDT = System.DateTime.Now;
    TimeSpan ts = afterDT - beforeDT;
    label23.Text = (ts.TotalMilliseconds).ToString();
    label16.Text = ((ts.TotalMilliseconds * 1000) / 10000).ToString();
    string s = cmdBuff.ToString();
    string[] arrS = new string[20];
    for (int i = 0; i < s.Length; i++)
    {
        if (s[i] != 9)
        {
            arrS[star] += s[i];
        }
        else
        {
            star++;
            continue;
        }
    }
    label24.Text = arrS[0];
    label25.Text = arrS[1];
    label26.Text = arrS[2];
    label27.Text = arrS[3];
    label28.Text = arrS[4];
    label30.Text = arrS[5];
    label32.Text = arrS[6];
    label34.Text = arrS[7];
    if (Convert.ToInt32(arrS[8]) == 0)
    {
        label29.BackColor = Color.Red;
        label29.Text = "信号未触";
    }
    else
    {
        label29.BackColor = Color.Green;
        label29.Text = "信号已触";
    }
    if (Convert.ToInt32(arrS[9]) == 0)
    {
        label31.BackColor = Color.Red;
        label31.Text = "信号未触";
    }
    else
    {
        label31.BackColor = Color.Green;
        label31.Text = "信号已触";
    }
    if (Convert.ToInt32(arrS[10]) == 0)
    {
        label33.BackColor = Color.Red;
        label33.Text = "信号未触";
    }
    else
    {
        label33.BackColor = Color.Green;
        label33.Text = "信号已触";
    }
    if (Convert.ToInt32(arrS[11]) == 0)
    {
        label35.BackColor = Color.Red;
        label35.Text = "信号未触";
    }
    else
    {
        label35.BackColor = Color.Green;
        label35.Text = "信号已触";
    }
}

(4)通过断开按钮的消息响应函数来断开控制器的链接。

private void button1_Click(object sender, EventArgs e)
{
    zmcaux.ZAux_Close(g_handle);
    g_handle = (IntPtr)0;
    label2.Text = "未连接";
    label2.BackColor = Color.Red;
}

9.运行效果

在这里插入图片描述

10.效果演示

C#应用开发

在这里插入图片描述

本次,正运动技术EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(一):驱动安装与建立连接,就分享到这里。更多精彩内容请关注“正运动小助手”公众号。

本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/128037.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OTA包添加自定义内容

起因 新开一条线&#xff0c;需要上传的OTA包里加点内容&#xff0c;好让后台校验它是否是当前这条线(短期最小改动)。 开整 之前看过ota包结构&#xff0c;整包和差分包里都有一个payload_properties.txt文件&#xff0c;所以最简单的就是给这个txt文件里追加点自定义内容&…

制造企业如何做好进销存管理工作?

本文你将了解&#xff1a;什么是进销存管理系统&#xff1f;国内制造信息化的发展现状如何&#xff1f;进销存管理系统的功能有哪些&#xff1f; 接下来搭建进销存管理系统教学中用到的图片和系统都来自简道云的进销存管理系统 这也是我们公司目前正在用的进销存管理系统&…

el-form-item的label的长度单独改掉,用vue3样式穿透的写法,加上css选择器查找特定的id拿到元素

为了让这个会员卡号这几个字和下面的表格对齐&#xff0c;需要改el-form-item的label的长度 如果直接改el-form的label-width,那么所有的el-form-item的label都会改&#xff0c;我不希望这样 我希望只改第1个会员卡号的label长度 给这个el-form-item添加一个id :deep(.el-for…

vnpy_ctp源码下载后转变为python可用的处理过程

目录 写在前面 下载源码并解压 创建python项目 环境 过程 编译vnpy_ctp源码 验证可用性 写在前面 window系统中必须安装有Visual Studio ,后面源码安装时需要进行C编译 下载源码并解压 GitHub - vnpy/vnpy_ctp: VeighNa框架的CTP交易接口 下载zip压缩包 解压 要在…

Mysql数据备份 —Navicat

一 Navicat 对于表的备份 根据自己的需求来选择 可以直接备份数据表 操作简单明了 二 Navicat 对于库的备份 对于数据库 直接通过转储SQL文件 保存结构和数据 需要新创建数据库 字符集和编码格式要对应 否则容易乱码 运行刚才生成的文件即可

【iOS开发】iOS App的加固保护原理:使用ipaguard混淆加固

​ 摘要 在开发iOS应用时&#xff0c;保护应用程序的安全是非常重要的。本文将介绍一种使用ipaguard混淆加固的方法来保护iOS应用的安全。通过字符串混淆、类名和方法名混淆、程序结构混淆加密以及反调试、反注入等主动保护策略&#xff0c;可以有效地保护应用程序的安全性。 …

案例精选|聚铭综合日志分析系统为中电飞华业务数据安全保驾护航

当下&#xff0c;云和网正从过去的独立走向融合&#xff0c;各行各业从“上网”纷纷演进到“上云”。“上云&#xff0c;才能更好地拥抱数字时代”。云网融合高质量发展对信息基础设施能力提出了新要求&#xff0c;同时运营商在产业数字化领域的业务探索也需要强大的云网能力支…

安科瑞故障电弧探测器在建筑电气的设计与应用

安科瑞 崔丽洁 【摘要】&#xff1a;电气设备是建筑中不可缺少的一部分&#xff0c;具有较为重要的作用和意义&#xff0c;在应用过程中不仅能够提升建筑本身实用性能&#xff0c;而且可为消费者提供更加优良的生活环境。但设备一旦在运行过程中出现故障&#xff0c;不仅会影响…

ros1 基础学习10 -全局字典参数的定义,获取,改值

全局字典参数的定义&#xff0c;获取&#xff0c;改值 一、参数模型二、 创建功能包三、参数命令行的使用(rosparam)四、使用程序来使用参数&#xff08;C&#xff09;4.1创建代码4.2编译4.3 编译文件 测试 在ROS Master中&#xff0c;存在一个参数服务器&#xff08;Parameter…

数学函数3D可视化工具来了

前面已经跟大家分享了两个数学可视化工具&#xff0c;manim和geogebra。 按理讲不应该再重复推荐类似的工具了&#xff0c;感觉犯了软件开发常说的忌讳&#xff1a;重复造轮子。 有的人也会抱怨手里的工具多了都不知道用哪一个了。 但遇到好用的工具又忍不住分享出来&#x…

04-SpringBoot的基础配置及其配置文件分类,解决Yaml文件失效问题

SpringBoot的配置 SpringBoot是用来提高Spring程序的开发效率的,使用SpringBoot后几乎不用做任何配置功能就有了,因为很多功能已经有默认配置帮我们做好了 配置文件的相关配置 在一个项目中不同的技术对应不同的配置文件并且这些配置文件的格式也不统一 SpringBoot提供了一…

Linux之IPC通信共享内存(一次拷贝)与消息队列、管道、信号量、socket(两次拷贝)总结(六十二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

工业废水处理设备公司如何挑选

在选择工业废水处理设备公司时&#xff0c;需要从以下几个方面进行考虑&#xff1a; 公司实力和资质&#xff1a;选择具有相关资质和经验的废水处理设备公司&#xff0c;能够提供高质量的设备和服务。可以通过查询公司的官方网站、客户评价等信息来了解公司的实力和资质。设备…

大厂面试题-数据库连接池有什么用?它有哪些关键参数?

从这几个方面来回答&#xff1a; 首先&#xff0c;数据库连接池是一种池化技术&#xff0c;池化技术的核心思想是实现资源的复用&#xff0c;避免资源重复创建销毁的开销。 而在数据库的应用场景里面&#xff0c;应用程序每次向数据库发起CRUD操作的时候&#xff0c;都需要创…

AI生成技术威胁版权保护,水印技术和法律完善是关键/安圭拉小岛以.ai域名注册赚得3000万美元 |魔法半周报

我有魔法✨为你劈开信息大海❗ 高效获取AIGC的热门事件&#x1f525;&#xff0c;更新AIGC的最新动态&#xff0c;生成相应的魔法简报&#xff0c;节省阅读时间&#x1f47b; &#x1f525;资讯预览 AI生成技术威胁版权保护&#xff0c;水印技术和法律完善是关键 Sam Altman对…

【Git】Git图形化工具SSH协议IDEA集成Git的使用讲解

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《Git》。&#x1f3af;&#x1f3af; &#x1f449…

企业年会/年终活动如何邀请媒体记者报道?

​媒体邀约是企业或组织进行宣传的重要手段之一。通过邀请媒体参加活动&#xff0c;可以增加活动的曝光度和知名度&#xff0c;吸引更多的关注和参与。同时&#xff0c;媒体报道还可以提高企业或组织的权威性和可信度&#xff0c;从而让公众更容易接受其传达的信息。 企业年会或…

实时疫情地图及全国监测动态大屏可视化【可视化项目案例-02】

🎉🎊🎉 你的技术旅程将在这里启航! 🚀🚀 本文选自专栏:可视化技术专栏100例 可视化技术专栏100例,包括但不限于大屏可视化、图表可视化等等。订阅专栏用户在文章底部可下载对应案例源码以供大家深入的学习研究。 🎓 每一个案例都会提供完整代码和详细的讲解,不…

索引是什么?如何创建?哪些情况下需要使用?

在数据库中&#xff0c;索引是一种用于提高查询速度的数据结构。它可以帮助我们快速地找到需要的数据&#xff0c;而不必扫描整个数据库。如果你是一名业务人员&#xff0c;你可能会问&#xff1a;“为什么我们需要使用索引&#xff1f;” 一、什么是索引&#xff1f; 索引是一…

家乡特色饮食体验系统的设计与实现-计算机毕设 附源码 27533

家乡特色饮食体验系统的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对家乡特色…