0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何实现伺服电机远程控制?

1X4o_GKB1508 来源:未知 作者:胡薇 2018-06-28 14:58 次阅读

本文针对伺服电机远程控制接线复杂性、单一性、不稳定性等问题,提出采用开放式通信协议DS301、驱动子协议DSP402实现伺服电机控制的新方法。

前 言

CANopen是一种架构在控制局域网路(CAN)上的高层通讯协定,包括通讯子协定及设备子协定常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。CANopen实现了OSI模型中的网络层以上(包括网络层)的协定。CANopen标准包括寻址方案、数个小的通讯子协定及由设备子协定所定义的应用层。CANopen支援网络管理、设备监控及节点间的通讯,其中包括一个简易的传输层,可处理资料的分段传送及其组合。一般而言数据链结层及物理层会用CAN来实作。除了CANopen外,也有其他的通讯协定(如EtherCAT)实作CANopen的设备子协定。

CANopen由非营利组织CiA进行标准的起草及审核工作,基本的CANopen设备及通讯子协定定义在CiA301中。针对个别设备的子协定以CiA301为基础再进行扩充。如针对I/O模组的CiA401及针对运动控制的CiA402。

针对伺服电机远程控制接线复杂、控制单一、可靠性不高等问题,提出利用CANopen通信协议、驱动子协议实现伺服电机控制的新方法。分析CANopen协议的对象字典和报文格式,详细介绍了CANopen伺服控制状态机各步骤的转换以及实现CANopen协议下PP、PV、HM3钟伺服控制模式的报文设置。利用CAN卡和伺服驱动设备以及伺服驱动设备以及PC机构建了实验平台,在上位机界面通过报文设置成功实现了基于CANopen协议的伺服电机的PP、PV、HM的三种模式的控制。实脸结果表明利用协议的报文设置控制电机简单易操作,通讯数据快速、可靠,用户通过上位机可以很好的实现对伺服电机的监控。

►系统架构搭建

整个控制系统由PC机、CANopen上位机、USBCAN适配器、伺服驱动设备构成。CANopen通讯部分由DS301协议实现,伺服控制部分由DSP402协议实现伺服驱动设备作为的从节点,具有CANopen通讯功能,负责电机电流、转速、位置等控制对象,它通过通信接口与总线相连,将信息传送给计算机的上位机界面;上位机界面则根据从站的反馈信息通过USBCAN适配器对伺服驱动设备实现控制。如图1所示为开放式通讯协议的伺服控制系统总体架构图。

图1开放式通讯协议伺服控制系统总体架构图

►开放式通讯协议伺服控制原理

1CANopen通讯设备模型

CANopen的设备模型分为以下3个部分:通信单元、对象字典、应用过程。用户可以通过该模型对功能完全不同的设备进行描述。

CANopen的核心概念是对象字典,对象字典包含描述这个设备和它的网络行为的所有参数,应用单元和通信单元都可以问这个参数列表。对象字典中的参数通过一个16位索引和位子索引进行识别和定位。

通信部分由CAN收发器、CAN控制器和CANopen协议栈组成协议栈中定义了实现通讯的通讯对象:NMT(网络管理报文)、PDO(过程数据)SDO(服务数据对象)预定义报文或者特殊能对象(含同步报文、紧急报文、时间标记对象等)通信的所有内容和功能由这些通信对象描述,所有设备之间通信也通过这些通信对象完成。其中NMT用于主站对从站进行状态管理以及从站应答自身所处的通信状态,SDO用于主站对从站的对象字典进行配置和监控。PDO用来传输高速、小型数据。而特殊功能对象则用于同步网络中的通信对象(通常为PDO)的方法。应用部分是对设备的基本功能的定义和描述,它是连接设备与主站上位机的纽带,其核心功能是通过访问设备的对象字典对设备进行参数配置、状态控制和监控,并高速传输设备的过程数据信息。

2伺服控制模式

CANopen驱动及运动控制设备子协议DSP402对特性的描述要求非常准确,它不仅定义了驱动器的运行模式,还定义了用于控制驱动器的状态机。驱动器状态机通过对象字典中的控制字6040来控制,并通过状态字6041来读取驱动器的状态。控制状态机如图2所示。

图2控制状态机图

状态机可以分成以下3个部分:PowerDisabled(主电关闭)、PowerEbabled(主电打开)和Fault。所有状态在发生报警后均进入“Fault”在上电后,驱动器完成初始化,然后再进入SWUTCH_ON_DISABLED状态,在该状态,可以进行CAN通讯,可以对驱动器进行配置。此主电仍然关闭,电机没有被励磁。经过StateTransition(状态传输)2,3,4后,进入OPERATIONENABle此时,主电已开启,驱动器根据配置的工作模式控制电机。StateTransition(状态传输)9完成关闭电路主电。一旦驱动器发生报警,驱动器的状态都进入FAULT。

PP模式(简表位置模式)是典型的定位模式,可通过单步设定与连续设定两种方式控制电机运行到目标位置。PV模式(简表速度模式)是速度控制模式,HM(回零模式)提供多种达到起始位置的方法。

►系统软硬件设计

1系统硬件设计

本文设计采用USBCAN和伺服驱动设备和PC机来搭建硬件平台。伺服驱动控制芯片采用的是DSP的芯片

系统硬件搭建按以下步骤进行。首先在TI的开发环境中配置好的相关参数,并建立DS301工程项目,完成CANopen协议通信程序的调试运行。项目调试成功之后下载到驱动器中,在上位机界面中设置报文,测试SDO、PDO、NMT等通讯对象。测试结果正确则系统硬件搭建完成。

2系统软件设计

整个伺服控制的软件设计在CCS中建立,主要包括永磁同步电机的闭环控制程序和CANopen协议找的实现两大部分。如图3所示为软件设计流程图。

图3软件设计流程图

初始化部分程序主要完成DSP系统的初始化以及CANopen通讯的初始化。

初始化主要完成的工作如下:

初始化相关变量,使能全局中断,进人伺服电机编码器霍尔传感器反馈UVW三路信号来判断电机初始电角度位置。

初始化通讯的主要完成的工作如下:

设置从站节点地址和CAN通信波特率,初始化各通对象,完成各路的预定义映射,最后进入通信处理程序。

3伺服控制报文设置

CANopen报文结构由11位的COB-ID以及最多8字节的数据域构成。在上位机界面中通过NMT报文设置控制从站进入预作状态或者运行状态,再通过SDO报文设置伺服控制的各个参数(速度、位置等)以及状态机的各个状态可以使电机按照不同控制模式运转起来,最后通过将电机的当前参数映射到PDO中,读取PDO报文的值得到电机当前值,将其与设置值对比得到控制结果的正确性。控制报文全部由SDO实现。

以下为PP模式控制、PV模式控制和HM模式控制报文列表:

1.PP模式控制报文列表

2.PV模式控制报文列表

3.HM模式报文列表

以上三种控制模式报文操作都是首先设置伺服控制模式,然后根据当前模式依次输入相关的目标控制值(如位置、速度、回零方式等),最后按照状态机步骤使用6040h控制电机启动与停止。

仿真实验

本系统的上位机界面由USBCAN的上位机界面及电机的监控界面两部分构成,其中USBCAN的上位机界面作为CANopen报文数据监控界面,电机的监控界面用VB2008开发。在上位机界面中通信波特率选用1Mbps伺服电机Node-ID设置为1,心跳周期为1s,TPDO发送周期为100ms,同时设置好电机电流环、位置环、速度环的参数,将设置的报文依次输入上位机界面的SDO控制,电机启动并运行到报文中的设定值,电机手动遥控器显示值与设定值一致,同时上位机界面中报文显示值也与设定值一致,成功实现了伺服控制的控制。

1PP模式

电机监控界面中位置控制曲线如下图4所示:

图4电机位置控制曲线

在上位机界面中设置好报文值,电机启动。电机先加速运行,达到设定的目标速度值后开始匀速运行,直至达到设定的目标位置值就不再变化。上位机过程数据与电机监控曲线变化一致。如果需要改变电机的位置值,在上位机界面中依次输人新的控制报文,电机会根据设定值正转或者反转,继续运行到新的位置。

2PV模式

电机首先加速到设定的目标速度值,然后按照设疋值勾速运打。如果需要改变运行的速度,同样可在上位机界面中输人新的速度值,加速时的变化如上所述。减速控制时,电机减速直至速度为则停止。如图5所示为上位机数据变化与电机监控曲线变化一致速度控制曲线。

图5电机速度控制曲线图

3HM模式

电机先加速到设定速度,然后寻找原点位置,找到原点后,电机回零,减速直至这时分别在上位机界面以及电机的手动遥控器伺服电机中査看电机的当前位置值,都可以看到电机的当前设为说明电机回零操作完成。如图6所示为位置控制曲线图。

图6位置控制曲线图

结 论

在实际应用应用过程中,本文所设计的系统运行可靠,数据准确易分析,机先加速运行,达到设定的目标速度值后开始匀速实时性好,协议栈程序易植入。该方法可以扩展适用于多电机控制系统,而且的CANopen通信协议栈适用于所有设备,在工程应用应用领域非常广泛。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN
    CAN
    +关注

    关注

    54

    文章

    2435

    浏览量

    458699
  • 伺服电机
    +关注

    关注

    82

    文章

    1828

    浏览量

    56039

原文标题:【项目福利】伺服电机远程控制如何实现? 80%的人都不知道

文章出处:【微信号:GKB1508,微信公众号:工控帮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    手机远程控制步进电机 #步进电机 #远程控制 #物联网#硬声创作季

    步进电机远程控制
    学习硬声知识
    发布于 :2022年10月18日 13:08:29

    labview远程控制系统的设计与实现

    labview远程控制系统的设计与实现[hide] [/hide]
    发表于 06-01 09:40

    如何实现esp8266开发用按钮远程控制

    想要在安卓系统上做个界面,界面上有按钮,比如按钮按下去之后可以远程控制esp8266WIFI模块给单片机发消息,然后单片机控制电机转,要实现这样的功能该怎么做啊
    发表于 07-22 04:32

    如何实现家电远程控制器的设计?

    如何实现家电远程控制器的设计?实现家电远程控制的原理及系统结构是什么?Actel数模结合FPGA的特点有哪些?
    发表于 04-08 06:37

    如何实现手机远程控制电源开关相关资料分享

    实现远程开关控制,手机控制:使用手机控制一键开启,不担心忘记关电器,手机也可查看各种状态。今天就来给大家介绍一种非常厉害的高科技智能手机遥
    发表于 06-30 07:50

    如何设计出一款远程开关实现对工业远程控制和智能家居远程控制

    如何设计出一款远程开关实现对工业远程控制和智能家居远程控制
    发表于 10-25 07:15

    利用Java实现远程控制

    介绍了远程控制的原理,详细地叙述了利用Java 实现远程控制软件的程序设计方法和要点,并给出了要点的具体实现方法。
    发表于 09-03 09:36 37次下载

    LED在远程控制照明中的应用

    轻松实现远程控制是LED在通用照明应用中的优势之一。本应用笔记介绍了路灯照明系统的远程控制方案,可以通过电力线传输或无线传输实现照明系统的控制
    发表于 07-18 15:39 1009次阅读
    LED在<b class='flag-5'>远程控制</b>照明中的应用

    短信远程控制

    京城超微的短信控制器,GSM远程控制器,短信控制开关,短信远程控制器等系列产品是通过手机拔号或短信发送的方式来实现对电器等设备的
    发表于 12-08 14:40 9次下载

    步进电机远程控制方案

    针对远程实验巾步进电机控制问题,对步进电机的驱动方法、通信方式、位置速率计算和安全控制等方面进行了研究,对实验过程中步进
    发表于 03-12 14:46 1次下载
    步进<b class='flag-5'>电机</b><b class='flag-5'>远程控制</b>方案

    楼体亮化如何远程控制

    开、关。 亮化远程控制开关:亮化工程专用,4G网络信号,可实现全国范围内的远距离开、关控制,通过4G网络信号,自动校时,可根据位置信息,自动获取经纬度信息,自动计算当地日出日落时间。 亮化远程
    发表于 01-05 11:47 439次阅读

    四路远程控制开关怎么使用

    四路远程控制开关:又称远程四路控制开关、多路远程控制开关。1台四路远程控制开关等于4台单路远程控制
    的头像 发表于 09-17 16:41 1196次阅读

    使用REST使用Meadow和MAUI远程控制伺服

    电子发烧友网站提供《使用REST使用Meadow和MAUI远程控制伺服.zip》资料免费下载
    发表于 01-31 09:26 0次下载
    使用REST使用Meadow和MAUI<b class='flag-5'>远程控制</b><b class='flag-5'>伺服</b>

    远程操作伺服

    远程操作伺服器 本发明公开了一种用于伺服驱动器的远程调试系统,包括远程控制平台、远程调试设备、
    发表于 03-21 15:26 217次阅读

    信捷plc远程控制怎么实现?如何远程修改程序?

    在现代工业自动化领域,远程控制技术越来越受到关注。远程控制已成为提高效率、降低成本的关键手段,信捷PLC(可编程逻辑控制器)作为工业控制的核心设备,
    的头像 发表于 02-22 16:02 213次阅读
    信捷plc<b class='flag-5'>远程控制</b>怎么<b class='flag-5'>实现</b>?如何<b class='flag-5'>远程</b>修改程序?