Raspberry PI + Codesys + EtherCAT步进驱动ECR60 Motion功能测试

本文主要是介绍Raspberry PI + Codesys + EtherCAT步进驱动ECR60 Motion功能测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文连接:Raspberry PI + Codesys + EtherCAT步进驱动ECR60 Motion功能测试 – 个人资料收集 (rtplc.com)

<div class="post_info_wrapper ">
            
<p class="has-drop-cap">运动控制功能是codesys及EtherCAT通讯的重要功能,接下来对测试EtherCAT的运动控制部分,由于对这一部分功能不熟悉,所以测试程序采用ST语言,采用 case语句,方便测试各个函数的运行功能和状态。</p>

<h2>工具准备:</h2>

<ul><li>树莓派4B,已经按照前述方法设置好。</li><li><a href="http://www.szruitech.com/Detail%20Page%20ECR60.html" target="_blank" rel="noreferrer noopener">ECR60 步进驱动器</a>一个</li><li><a href="http://www.szruitech.com/Detail%20Page%2057.html" target="_blank" rel="noreferrer noopener">57A2步进电机</a>一个</li><li>CAT6网线一条</li><li>电源:DC24V</li></ul>

<h2>Step1 树莓派准备</h2>

<p>树莓派通电,有显示器的化,可以看到wifi是否连接成功,记录下此时的ip地址,由于后续Codesys连接。</p>

<h2>Step2 电机及驱动器接线</h2>

<ul><li>将24V电源连接至驱动器的V+、V-端子</li><li>将步进电机的A+、A-、B+、B-连接至驱动器电机接线端子,锐特的57A2电机绕组颜色定义为:红、蓝、绿、黑</li><li>网线连接:CAT6网线一端连接树莓派的网口,另外一端连接ECR60的ECAT IN端口。</li><li>完成上述步骤后,可以开通24V电源</li></ul>

<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="542" src="http://www.rtplc.com/wp-content/uploads/2020/05/ECR60Connect-1024x542.jpg" alt="" class="wp-image-491" srcset="http://www.rtplc.com/wp-content/uploads/2020/05/ECR60Connect-1024x542.jpg 1024w, http://www.rtplc.com/wp-content/uploads/2020/05/ECR60Connect-300x159.jpg 300w, http://www.rtplc.com/wp-content/uploads/2020/05/ECR60Connect-768x407.jpg 768w, http://www.rtplc.com/wp-content/uploads/2020/05/ECR60Connect-1536x814.jpg 1536w, http://www.rtplc.com/wp-content/uploads/2020/05/ECR60Connect-2048x1085.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px"></figure>

<p>此时可见ECR60的PWR的绿色指示灯亮起,表示驱动器供电正常;ECAT IN网口的黄色LED灯亮起,表示网线连接正常。</p>

<h2>Step3 Codesys项目设置</h2>

<p>打开Codesys开发环境,新建一个标准项目,并选择目标板为“Codesys Control for Raspberry PI MC SL”</p>

<figure class="wp-block-image size-large"><img loading="lazy" width="536" height="300" src="http://www.rtplc.com/wp-content/uploads/2020/05/Setup0.png" alt="" class="wp-image-505" srcset="http://www.rtplc.com/wp-content/uploads/2020/05/Setup0.png 536w, http://www.rtplc.com/wp-content/uploads/2020/05/Setup0-300x168.png 300w" sizes="(max-width: 536px) 100vw, 536px"><figcaption>选择 MCSL</figcaption></figure>

<p>扫描并选择树莓</p>

<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="749" src="http://www.rtplc.com/wp-content/uploads/2020/05/Setup1-1024x749.png" alt="" class="wp-image-506" srcset="http://www.rtplc.com/wp-content/uploads/2020/05/Setup1-1024x749.png 1024w, http://www.rtplc.com/wp-content/uploads/2020/05/Setup1-300x219.png 300w, http://www.rtplc.com/wp-content/uploads/2020/05/Setup1-768x562.png 768w, http://www.rtplc.com/wp-content/uploads/2020/05/Setup1.png 1246w" sizes="(max-width: 1024px) 100vw, 1024px"><figcaption>扫描树莓派</figcaption></figure>

<p>添加EhterCAT master主站</p>

<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="705" src="http://www.rtplc.com/wp-content/uploads/2020/05/Setup2_Addmaster-1024x705.png" alt="" class="wp-image-507" srcset="http://www.rtplc.com/wp-content/uploads/2020/05/Setup2_Addmaster-1024x705.png 1024w, http://www.rtplc.com/wp-content/uploads/2020/05/Setup2_Addmaster-300x207.png 300w, http://www.rtplc.com/wp-content/uploads/2020/05/Setup2_Addmaster-768x529.png 768w, http://www.rtplc.com/wp-content/uploads/2020/05/Setup2_Addmaster.png 1079w" sizes="(max-width: 1024px) 100vw, 1024px"><figcaption>添加EtherCAT Master</figcaption></figure>

<p>设定EtherCAT master 的网口属性,如下图,选择“eth0”</p>

<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="555" src="http://www.rtplc.com/wp-content/uploads/2020/05/Master-Set1-1024x555.png" alt="" class="wp-image-406" srcset="http://www.rtplc.com/wp-content/uploads/2020/05/Master-Set1-1024x555.png 1024w, http://www.rtplc.com/wp-content/uploads/2020/05/Master-Set1-300x163.png 300w, http://www.rtplc.com/wp-content/uploads/2020/05/Master-Set1-768x416.png 768w, http://www.rtplc.com/wp-content/uploads/2020/05/Master-Set1-1536x832.png 1536w, http://www.rtplc.com/wp-content/uploads/2020/05/Master-Set1-1200x650.png 1200w, http://www.rtplc.com/wp-content/uploads/2020/05/Master-Set1.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px"></figure>

<p>接下来添加ECR60步进驱动器,我手上的是最新的V202版本,直接添加即可。</p>

<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="858" src="http://www.rtplc.com/wp-content/uploads/2020/05/Setup2_AddECR60-1024x858.png" alt="" class="wp-image-508" srcset="http://www.rtplc.com/wp-content/uploads/2020/05/Setup2_AddECR60-1024x858.png 1024w, http://www.rtplc.com/wp-content/uploads/2020/05/Setup2_AddECR60-300x251.png 300w, http://www.rtplc.com/wp-content/uploads/2020/05/Setup2_AddECR60-768x643.png 768w, http://www.rtplc.com/wp-content/uploads/2020/05/Setup2_AddECR60.png 1077w" sizes="(max-width: 1024px) 100vw, 1024px"><figcaption>添加ECR60</figcaption></figure>

<p>接下来添加一个运动控制轴,关联到ECR60驱动器,如下图:</p>

<figure class="wp-block-image size-large"><img loading="lazy" width="654" height="733" src="http://www.rtplc.com/wp-content/uploads/2020/05/Setup2_AddSoftMotion.png" alt="" class="wp-image-509" srcset="http://www.rtplc.com/wp-content/uploads/2020/05/Setup2_AddSoftMotion.png 654w, http://www.rtplc.com/wp-content/uploads/2020/05/Setup2_AddSoftMotion-268x300.png 268w" sizes="(max-width: 654px) 100vw, 654px"></figure>

<p>右键“Properties”,将轴的名字改为Axis1,如下图:</p>

<figure class="wp-block-image size-large"><img loading="lazy" width="812" height="484" src="http://www.rtplc.com/wp-content/uploads/2020/05/AxisSetup1_Name.png" alt="" class="wp-image-510" srcset="http://www.rtplc.com/wp-content/uploads/2020/05/AxisSetup1_Name.png 812w, http://www.rtplc.com/wp-content/uploads/2020/05/AxisSetup1_Name-300x179.png 300w, http://www.rtplc.com/wp-content/uploads/2020/05/AxisSetup1_Name-768x458.png 768w" sizes="(max-width: 812px) 100vw, 812px"></figure>

<p>接下来设定轴的参数。首先设定电机运行的当量,ECR60默认使用10000脉冲/转,对应轴的设置如下图:</p>

<figure class="wp-block-image size-large"><img loading="lazy" width="992" height="359" src="http://www.rtplc.com/wp-content/uploads/2020/05/AxisSetup1_Microstep.png" alt="" class="wp-image-511" srcset="http://www.rtplc.com/wp-content/uploads/2020/05/AxisSetup1_Microstep.png 992w, http://www.rtplc.com/wp-content/uploads/2020/05/AxisSetup1_Microstep-300x109.png 300w, http://www.rtplc.com/wp-content/uploads/2020/05/AxisSetup1_Microstep-768x278.png 768w" sizes="(max-width: 992px) 100vw, 992px"></figure>

<h2>Step4 程序编写</h2>

<p>至此,整个系统的设置已经完成,接下来编写程序实现步进电机的控制。默认在新建项目时,设定了一个程序“PLC_PRG”的编写方式为ST语言。首先设定运动相关的变量:</p>

<pre class="wp-block-code"><code>PROGRAM PLC_PRG
VAR
    mcp: MC_Power; //使能函数
    mcmv: MC_Jog;  //点动函数
    mcmabs: MC_MoveAbsolute;    // 绝对值定位运动
    mcminc: MC_MoveRelative;    // 增量式运动
    MVStop: MC_Stop;            // 电机停止
    Axis1Home: MC_Home;            // 电机回零
    Axis1Reset: MC_Reset;        // 电机故障复位
    Motionstate: INT;            // 测试用,控制测试功能
    Cnt:INT;                    // 仅仅用于测试

    Jog_Pos: BOOL ;                // 点动正 使能
    Jog_Neg: BOOL;                // 点动负 使能
    
    MovEnable: BOOL;            // 定位运行、回零及停止时的函数模块使能
    MovIncDistance: LREAL;        // 增量运动距离设定
    MV_Speed: LREAL;            // 运行速度设定
    MV_Acc: LREAL;                // 运行加速度设定
    MV_Dec: LREAL;                // 运行减速度设定
    MV_Jerk: LREAL;                // 运行加加速度设定
    
    MovAbsDistance: LREAL;        // 绝对定位时的目标位置
END_VAR</code></pre>

<p>设计一个程序,通过状态跳转,实现对各个函数的测试,相关程序如下:</p>

<pre class="wp-block-code"><code>
CASE Motionstate OF
0:
    Cnt := Cnt+1;
    MV_Speed:= 10000;
    MV_Acc:= 1000000;
    MV_Dec:= 1000000;
    MV_Jerk:= 100000000;
    Jog_Pos:= TRUE;
1: //Enable motor,Power on
mcp(
    Axis:= Axis1 , 
    Enable:= TRUE , 
    bRegulatorOn:= TRUE,
    bDriveStart:= TRUE,
    Status=&gt; , 
    Busy=&gt; , 
    Error=&gt; , 
    ErrorID=&gt; );

2:// Disable motor,Power off
mcp(
    Axis:=Axis1 , 
    Enable:= TRUE , 
    bRegulatorOn:= FALSE,
    bDriveStart:= TRUE,
    Status=&gt; , 
    Busy=&gt; , 
    Error=&gt; , 
    ErrorID=&gt; );

3: // JOG+ and JOG-
mcmv(
    Axis:=Axis1 , 
    JogForward:=Jog_Pos , 
    JogBackward:=Jog_Neg , 

    Velocity:= MV_Speed, 
    Acceleration:= MV_Acc, 
    Deceleration:= MV_Dec, 
    Jerk:= MV_Jerk, 
    Busy=&gt; , 
    CommandAborted=&gt; , 
    Error=&gt; , 
    ErrorID=&gt; );

4: // Move relative POS and Neg
mcminc(
    Axis:=Axis1 , 
    Execute:= MovEnable,
    Distance:= MovIncDistance,
    Velocity:= MV_Speed, 
    Acceleration:= MV_Acc, 
    Deceleration:= MV_Dec, 
    Jerk:= MV_Jerk, 
    Done=&gt; ,
    Busy=&gt; , 
    CommandAborted=&gt; , 
    Error=&gt; , 
    ErrorID=&gt; );

5: // Move Abs
mcmabs(
    Axis:=Axis1 , 
    Execute:= MovEnable,
    Position:= MovAbsDistance,
    Velocity:= MV_Speed, 
    Acceleration:= MV_Acc, 
    Deceleration:= MV_Dec, 
    Jerk:= MV_Jerk, 
    Done=&gt; ,
    Busy=&gt; , 
    CommandAborted=&gt; , 
    Error=&gt; , 
    ErrorID=&gt; );


6: // Stop motor
MVStop(
    Axis:=Axis1 , 
    Execute:= MovEnable,
    Jerk:= MV_Jerk, 
    Done=&gt; ,
    Busy=&gt; , 
    Error=&gt; , 
    ErrorID=&gt; );

    
7: // Home
Axis1Home(
    Axis:=Axis1 , 
    Execute:= MovEnable,

    Done=&gt; ,
    Busy=&gt; , 
    CommandAborted=&gt; , 
    Error=&gt; , 
    ErrorID=&gt; );
8:
Axis1Reset(
    Axis:=Axis1 , 
    Execute:= TRUE,
);    

END_CASE;
</code></pre>

<p>将“PLC_PRG”添加到EtherCAT_Task任务中</p>

<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="677" src="http://www.rtplc.com/wp-content/uploads/2020/05/MotionSetup-1024x677.png" alt="" class="wp-image-512" srcset="http://www.rtplc.com/wp-content/uploads/2020/05/MotionSetup-1024x677.png 1024w, http://www.rtplc.com/wp-content/uploads/2020/05/MotionSetup-300x198.png 300w, http://www.rtplc.com/wp-content/uploads/2020/05/MotionSetup-768x508.png 768w, http://www.rtplc.com/wp-content/uploads/2020/05/MotionSetup.png 1087w" sizes="(max-width: 1024px) 100vw, 1024px"></figure>

<p>至此,程序编写完成,任务设置完成,可以进行下载程序测试。</p>

<h2>Step5 运行及测试</h2>

<p>在Codesys环境中,“Online” —&gt; “Login”,下载程序进入到树莓派,然后点击“Debug” —&gt; “Start”。如果之前都是顺利的化,此时步进驱动器的EtherCAT的RUN绿色指示灯常亮,ECAT IN的绿色数据灯一直闪烁,轴Axis1的图标为橙色双箭头,说明轴已经准备就绪,橙色是因为树莓派没有正式的授权运行codesys,处于demo状态。codesys的项目界面如下图:</p>

<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="767" src="http://www.rtplc.com/wp-content/uploads/2020/05/PLCRun-1024x767.png" alt="" class="wp-image-513" srcset="http://www.rtplc.com/wp-content/uploads/2020/05/PLCRun-1024x767.png 1024w, http://www.rtplc.com/wp-content/uploads/2020/05/PLCRun-300x225.png 300w, http://www.rtplc.com/wp-content/uploads/2020/05/PLCRun-768x575.png 768w, http://www.rtplc.com/wp-content/uploads/2020/05/PLCRun.png 1207w" sizes="(max-width: 1024px) 100vw, 1024px"></figure>

<p>测试程序状态变量“MotionState”为0,Cnt一直增加,程序初始化设置运行的速度、加速度等变量。。需要注意的是ECR60默认电流为3000mA,如果你的电机额定电流远小于该值,需要首先修改电流值。57A2额定电流为4000mA,所以可以直接测试。此时步进电机不锁轴,接下来我们首先使能电机,将“MotionState”值改为1,</p>

<figure class="wp-block-image size-large"><img loading="lazy" width="734" height="283" src="http://www.rtplc.com/wp-content/uploads/2020/05/Enable.png" alt="" class="wp-image-514" srcset="http://www.rtplc.com/wp-content/uploads/2020/05/Enable.png 734w, http://www.rtplc.com/wp-content/uploads/2020/05/Enable-300x116.png 300w" sizes="(max-width: 734px) 100vw, 734px"></figure>

<p>接下来我们进行点动测试,按照上述方法,将“MotionState”设置为3,“Ctrl + F7”写入值,此时电机将以1转/秒的速度逆时针运转。接下来将Jog_Pos设置为FALSE,Jog_Neg设置为TRUE,“Ctrl + F7”写入值,此时电机立刻改为顺时针运行。</p>

<figure class="wp-block-image size-large"><img loading="lazy" width="791" height="355" src="http://www.rtplc.com/wp-content/uploads/2020/05/JOG.png" alt="" class="wp-image-516" srcset="http://www.rtplc.com/wp-content/uploads/2020/05/JOG.png 791w, http://www.rtplc.com/wp-content/uploads/2020/05/JOG-300x135.png 300w, http://www.rtplc.com/wp-content/uploads/2020/05/JOG-768x345.png 768w" sizes="(max-width: 791px) 100vw, 791px"></figure>

<p>将Jog_Pos和Jog_Neg一起都设置为FALSE,此时电机停止运行。接下来我们测试相对运动。设置“MovIncDistance”变量为10000,我们每次让电机运行1转的距离,并将“MotionState”设置为4,“Ctrl + F7”写入值,此时电机并没有运行。需要将“MovEnable”设置为“TRUE”,并写入时,电机将运行以1转/秒的速度逆时针运行1转,然后停止。</p>

<figure class="wp-block-image size-large"><img loading="lazy" width="697" height="476" src="http://www.rtplc.com/wp-content/uploads/2020/05/MVINC.png" alt="" class="wp-image-517" srcset="http://www.rtplc.com/wp-content/uploads/2020/05/MVINC.png 697w, http://www.rtplc.com/wp-content/uploads/2020/05/MVINC-300x205.png 300w" sizes="(max-width: 697px) 100vw, 697px"></figure>

<p>如果要再次运行该模块,则需要先将“MovEnable”设置为FALSE,然后再设置为“TRUE”,电机才会继续运行1转。那么如果要让电机反转1转,则只需要将“MovIncDistance”设置为“-10000”,重复上述动作即可。</p>

<p>经过刚刚的各种测试,此时电机的位置已经到了一个随机的位置,如下图查看:</p>

<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="463" src="http://www.rtplc.com/wp-content/uploads/2020/05/Positionread-1024x463.png" alt="" class="wp-image-518" srcset="http://www.rtplc.com/wp-content/uploads/2020/05/Positionread-1024x463.png 1024w, http://www.rtplc.com/wp-content/uploads/2020/05/Positionread-300x136.png 300w, http://www.rtplc.com/wp-content/uploads/2020/05/Positionread-768x347.png 768w, http://www.rtplc.com/wp-content/uploads/2020/05/Positionread.png 1261w" sizes="(max-width: 1024px) 100vw, 1024px"></figure>

<p>接下来我们进行绝对值定位,让电机回到“0”的位置。将“MotionState”设置为5,“MovEnable”设置为“TRUE”,写入,此时电机朝着0的位置运行,经过一段时间后,电机回到0位置并停止。</p>

<figure class="wp-block-image size-large"><img loading="lazy" width="691" height="458" src="http://www.rtplc.com/wp-content/uploads/2020/05/GoTo0.png" alt="" class="wp-image-519" srcset="http://www.rtplc.com/wp-content/uploads/2020/05/GoTo0.png 691w, http://www.rtplc.com/wp-content/uploads/2020/05/GoTo0-300x199.png 300w" sizes="(max-width: 691px) 100vw, 691px"></figure>

<p>至此,电机已经能够完成各种动作,接着测试电机的回零功能。将“MotionState”设置为7,“MovEnable”设置为“TRUE”,写入即可触发电机回零。默认ECR60采用CIA40的回零模式17。电机此时以默认的回零速度寻找负限位,将COM+连接24V正极,IN4端子连接24V负极,此时电机停止然后反向低速反转,此时去除IN4的连接,则电机回零完成。本次测试的项目如下:</p>

<div class="wp-block-file"><a href="http://www.rtplc.com/wp-content/uploads/2020/05/ECR60MotionTest.zip">ECR60MotionTest</a><a href="http://www.rtplc.com/wp-content/uploads/2020/05/ECR60MotionTest.zip" class="wp-block-file__button" download="">下载</a></div>

<p></p>

            <div class="wbp-cbm" wb-share-url="http://www.rtplc.com/?p=503"><a class="wb-btn-dwqr wb-btn-like j-dwqr-like-btn" data-count="11"><svg class="wb-icon wbsico-like"><use xlink:href="#wbsico-dwqr-like"></use></svg><span class="like-count">赞(11)</span></a><a class="wb-btn-dwqr wb-share-poster j-dwqr-poster-btn"><svg class="wb-icon wbsico-poster"><use xlink:href="#wbsico-dwqr-poster"></use></svg><span>微海报</span></a><a class="wb-btn-dwqr wb-btn-share j-dwqr-social-btn"><svg class="wb-icon wbsico-share"><use xlink:href="#wbsico-dwqr-share"></use></svg><span>分享</span></a></div>        </div>

这篇关于Raspberry PI + Codesys + EtherCAT步进驱动ECR60 Motion功能测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/496119

相关文章

如何在Ubuntu上安装NVIDIA显卡驱动? Ubuntu安装英伟达显卡驱动教程

《如何在Ubuntu上安装NVIDIA显卡驱动?Ubuntu安装英伟达显卡驱动教程》Windows系统不同,Linux系统通常不会自动安装专有显卡驱动,今天我们就来看看Ubuntu系统安装英伟达显卡... 对于使用NVIDIA显卡的Ubuntu用户来说,正确安装显卡驱动是获得最佳图形性能的关键。与Windo

嵌入式Linux之使用设备树驱动GPIO的实现方式

《嵌入式Linux之使用设备树驱动GPIO的实现方式》:本文主要介绍嵌入式Linux之使用设备树驱动GPIO的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、设备树配置1.1 添加 pinctrl 节点1.2 添加 LED 设备节点二、编写驱动程序2.1

嵌入式Linux驱动中的异步通知机制详解

《嵌入式Linux驱动中的异步通知机制详解》:本文主要介绍嵌入式Linux驱动中的异步通知机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、异步通知的核心概念1. 什么是异步通知2. 异步通知的关键组件二、异步通知的实现原理三、代码示例分析1. 设备结构

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

驱动(RK3588S)第七课时:单节点设备树

目录 需求一、设备树的概念1、设备树的后缀名:2、设备树的语法格式3、设备树的属性(重要)4、设备树格式举例 二、设备树所用函数1、如何在内核层种获取设备树节点:2、从设备树上获取 gpio 口的属性3、获取节点上的属性只针对于字符串属性的4、函数读取 np 结点中的 propname 属性的值,并将读取到的 u32 类型的值保存在 out_value 指向的内存中,函数的返回值表示读取到的

驱动安装注册表指令

HKCR: HKEY_CLASSES_ROOT HKCU: HKEY_CURRENT_USER HKLM: HKEY_LOCAL_MACHINE HKU: HEKY_USER HER: 相对根键

UMDF驱动安装

VS2013 + WDF8.1,UMDF驱动选择User Mode Driver,不要选User Mode Driver 2.0,否则Win7安装有问题,如图 另外,在驱动安装时不要忘记WUDFUpdate_<主版本号><次版本号>.dll文件,具体文件名在INF中查找。此文件可在WDF的安装目录中找到。注意:在WDF的安装目录中会有3个WUDFUpdate_xxx.dll文件,x86,x6

使用Azure Devops Pipeline将Docker应用部署到你的Raspberry Pi上

文章目录 1. 添加树莓派到 Agent Pool1.1 添加pool1.2 添加agent 2. 将树莓派添加到 Deployment Pool2.1 添加pool2.2 添加target 3. 添加编译流水线3.1 添加编译命令3.2 配置触发器 4. 添加发布流水线4.1 添加命令行4.2 配置artifact和触发器 5. 完成 1. 添加树莓派到 Agent Pool

电脑驱动分类

电脑驱动程序(驱动程序)是操作系统与硬件设备之间的桥梁,用于使操作系统能够识别并与硬件设备进行通信。以下是常见的驱动分类: 1. 设备驱动程序 显示驱动程序:控制显卡和显示器的显示功能,负责图形渲染和屏幕显示。 示例:NVIDIA、AMD 显示驱动程序。打印机驱动程序:允许操作系统与打印机通信,控制打印任务。 示例:HP、Canon 打印机驱动程序。声卡驱动程序:管理音频输入和输出,与声卡硬件