推广 热搜: 电机  PLC  变频器  服务机器人  培训  变送器  危化品安全,爆炸  西门子PLC  触摸屏  阀门 

基于DeviceNet协议的伺服系统设计

   日期:2013-03-23     来源:工控之家网    作者:工控之家    浏览:24    评论:0    
      随着电力电子技术、控制技术、网络技术、计算机技术的发展,伺服系统也获得了前所未有的发展机遇。伺服系统渗透在国民经济中的各个领域,如数控机床,激光加工,机器人,大规模集成电路制造,办公自动化设备以及军用武器随动系统等等。伺服技术本身的发展趋势是开放化、网络化、智能化伺服系统。
      devicenet作为基于现场总线技术的工业标准开放网络,为简单的底层工业装置和高层如计算机、plc等设备之间提供连接。devicenet应用国际标准的控制局域网(can)协议,具有公开的技术规范和价廉的通信部件,使得其具有比其他现场总线低得多的开发费用。设备网采用总线供电方式,提供本质安全技术,广泛适用于各种高可靠性应用场合。
      本文主要研究基于devicenet的伺服系统的软硬件设计。通过can总线、单片机和高性能电机控制器admc401进行数据传输与控制,使伺服电机的性能更加稳定,能更好更灵活地地应用于数控系统中。

can总线和devicenet协议的实现
can总线协议及特点
      控制器局域网can为串行通信协议,能有效地支持具有很高安全等级的分布实时控制。can的应用范围很广,从高速的网络到低价位的多路配线都可以使用can。在汽车电子行业中,使用can连接发动机控制单元、传感器、防滑系统等,其传输速度可达1mbps。同时,可以将can安装在卡车本体的电子控制系统里,诸如车灯组、电气车窗等,用以代替接线配线装置。由于采用了许多新技术及独特的设计,can总线与一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。其特点概括如下[1]:
      can为多主方式工作,网络上任一节点可在任意时刻主动地向网络上其他节点发送信息,而不分主从;
      在报文标识符上,can上的节点分成不同的优先级,可满足不同的实时要求,优先级高的数据最快可在134us内得到传输;
      can采用非破坏总线仲裁技术。当多个节点同时向总线发出信息出现冲突时,优先级较低的节点主动退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其在网络负载很重的情况下,不会出现网络瘫痪情况(以太网则可能)。

devicenet协议及特点
      devicenet是在1994年由美国的allen bredly公司开发的是基于can的一种现场总线,实现低成本高性能的工业设备的网络互连。devicenet协议特别为工厂自动控制而定制,它在美国和亚洲扮演了非常重要的角色。在欧洲,越来越多的系统方案使用devicenet来实现。
      devicenet规范在2002年12月被国家标准化管理委员会批准为中国的国家标准,于2003年4月开始实施。devicenet协议适用于最低层的现场总线,例如:过程传感器、执行器、阀组、电动机起动器、条形码读取器、变频驱动器、面板显示器、操作员接口和其他控制单元的网络。可通过devicenet连接的设备包括从简单的挡光板到复杂的真空泵各种半导体产品。devicenet也是一种串行通信链接,可以减少昂贵的硬接线。      
      devicenet所提供的直接互连性不仅改善了设备间的通信,而且同时提供了相当重要的设备级诊断功能,这是通过硬接线i/o接口很难实现的。devicenet具有多种特点[2]:
      devicenet基于can技术用于plc与现场设备之间的通信网络。它可连接开关、变频调速设备、固态过载保护装置、条形码阅读器、i/o和人机界面等,传输速率为125~500kbps;
      devicenet使用的通信模式是:消息产生者(producer)和消息使用者(consumer)。传统的通信在消息传送上采用的技术式指定数据源和目标地址。devicenet使用的模型更为有效,它可使控制数据同时到达控制的每一个单元,可以更有效地利用网络的频带宽度。消息产生者一次发送的数据可被多个消息使用者使用,从而更有效的传送数据;
      devicenet使用的通信协议为11位标识符,即所有的i/o消息都有自己的11位标识符id,标识符id分成四个消息组,各有不同用途id中同时提供了多重优先权。工作时,总线上的设备监听网络上消息,当设备辨识出正确的标识符后,将接受该消息;
      devicenet上的每一个设备可以随时连接或断开,而不会影响其他设备的正常运行。真正的开放性使系统扩充和改型非常方便。

控制系统的构成
      为了实现伺服系统的快速实时控制,系统在设计上采用了单片机+dsp双cpu结构。在设计时将系统控制任务进行了划分:dsp完成实时性要求高的伺服控制任务,flash结构的8位单片机89c51完成实时性要求比较低的管理任务,单片机和dsp之间的通讯采用并行数据方式,由fpga实现。同时fpga还要完成外部i/o信号管理、位置脉冲指令信号处理及计数、故障信号处理等功能。伺服控制系统的结构如图1所示。由图1可以看出,系统主要有以下几部分:伺服控制中心admc401;外设接口fpga+单片机89c51;主电路以及开关电源电路[3]。下面分别说明。


图1 伺服控制系统的结构图

devicenet通信接口部分
      本文所设计的devicenet接口电路中,采用at89c51ed2作为节点的微处理器,在can总线通信接口中,can通信控制器采用sja1000,can总线驱动器采用82c250。图2为devicenet接口电路原理图。从图2中可以看出,电路主要由4部分构成:微控制89c51、独立can通信控制器sja1000、can总线收发器82c250和高速光电耦合器6n137。微处理器89c51负责sja1000的初始化,通过控制sja1000实现数据的接收和发送等通信任务。

 
图2 devicenet接口电路原理图

      为了增强can总线节点的抗干扰能力,sja1000的tx0和rxo并不是直接与82c250的txd和rxd相连,而是通过高速光耦6n137后与82c250相连,这样就很好的实现了总线上各can节点间的电气隔离,从而保护了系统电路以及总线的信号传输。从整体性能来说,系统设计具有很好的通用性和实用性。
      微控制器at89c51ed2用来实现通讯的应用层协议。它具有丰富的内存资源,4个8位i/o端口、3个16位定时/计数器、256字节暂存ram、9个中断源、4个优先级,此外还有2k eeprom空间,系统不需要扩展外部程序存储器便可满足devicenet协议程序的容量要求。并且能够在×2模式(6个时钟/机器周期)下工作运行,本文中的设计即是在×2模式下。单片机通过访问sja1000的寄存器来实现和上位机的通信。can控制器sja1000的接收寄存器和发送寄存器用于暂时存放接收和发送的数据。单片机发送数据则通过设置sja1000的命令寄存器发送命令位,接收数据是通过中断方式实现,sja1000的int引脚与at89c51ed2的int1引脚相连,使单片机能够实时响应can的中断请求。采样周期2ms由at89c51ed2的定时器中断产生。

电机控制部分
伺服电机控制电路部分采用高性能电机控制器admc401,它是美国模拟器件公司(adi)推出dsp芯片中的高档产品。admc401是面向电机控制的高性能数字信号处理器,它以adsp-2171为内核,辅以完备的电机控制外设。其中包括8路12位a/d转换系统、三相16位pwm产生单元、两路辅助pwm输出及用于位置反馈的增量式码盘接口。另外admc401还包括12路数字i/o口、事件捕获单元及内部定时器等设施,为开发快速、高精度的电机控制系统提供了完善的硬件设施。
admc401内部提供了2k×24位的内部程序ram、2k×24位的内部程序rom和1k×16位的内部数据ram;程序及数据ram的内容可由其串口从外部rom中以同步或异步方式调入。为了满足实际工程的需要,admc401还提供了外部存储器的扩展能力,用户最多可以直接寻址片外14k×24位的程序存储器和13k×16位的数据存储器[4]。admc401是整个伺服系统的核心,具有高速的运算能力、较高的采样精度,外设配置性能和功能较强,能胜任实时性要求高的伺服控制任务。本系统用它来实现矢量变换、电流环、速度环、位置环控制以及pwm信号发生、各种故障保护处理等。

系统软件设计
上位机软件设计
      上位机主控计算机是整个系统的核心,通过can接口卡与can总线相连,负责系统的管理、运动规划以及通讯功能。其上位pc机软件设计包括网络管理,参数管理,状态管理三个部分。
      网络管理 设置can接口卡工作波特率和本机节点地址,同时初始化can控制器sja1000,以及devicenet各个对象类,并且检查此网络中是否设置重复的节点地址。因为pc机的can卡初始化要涉及can卡与pc机的联系工作,所以要对can通讯适配卡的各个寄存器进行配置,设置中断向量、通信波特率和滤波接收码以及中断屏蔽字等参数,为正常通讯做好准备工作。另外此部分还要完成扫描网络中的节点,并与从机节点建立连接的功能。devicenet是面向连接的网络,两个节点之间首先建立连接然后才能够通讯,本设计中只采用仅限组2的从设备建立连接,其建立连接是通过“分配预定义主/从连接组”来完成的。
      参数管理 完成伺服系统的各个参数字或者控制字的读取修改工作,这些参数包括伺服电机的内部参数kp、ki、kd等以及针对雷达系统的参数:雷达扇扫中心角度、扇扫范围、扇扫速度、手轮方式中的手轮与天线的转速比、运行模式选择(第26号参数,其中0—手轮方式,1—匀速扫描方式,2—扇扫方式,4—接收停方式)。一般情况下,对各个控制字参数的读写操作类似于对各个参数的读写操作。在本设计中为了简化软件设计,我们可以对31号参数的读写操作来完成对16个控制字的读写操作,实现过程如下:第31号参数为控制字参数,是由16个控制字按照sta-15至sta-0顺序组合而成的一个整型数,这样对控制字参数的读写操作的同时也就完成了对16个控制字的读写操作。
l 状态管理 能够反应伺服电机当前的运动状态,如实际位置,速度指令,力矩反馈,速度反馈,指令偏差等。这样给我们观察伺服电机当前状态提供了一个直观方便的平台。

下位机软件设计
      下位机通信部分的单片机完成i/o数据过程的自动控制作业,包括输入输出数据的解包下发、打包上传,以及故障事件记录、报警等工作。通信卡采用定时中断方式与can总线的控制卡节点频繁地交换各自通信缓冲区的数据,以确保系统i/o数据的实时性,同时缩短了整个系统响应时间。图3示出程序框图。

      下位机初始化完成后,则进入等待中断状态。下位机的通讯过程是通过单片机访问can控制器寄存器来实现的,单片机对can控制器的寄存器访问是作为单片机的外部存储器访问的,每个寄存器的地址为sja1000的首地址与sja1000内部相对地址之和。单片机采用中断方式接收数据。can控制器sja1000接收到上位机的数据并且当接收缓冲区有空余空间时,接收的数据被依次放在sja1000的接收缓冲区中,这是有硬件自动完成的。当调用清除命令清除接收寄存器中的数据后,fifo接收缓冲区会把数据填充到已清空的接收寄存器中,同时回答一个中断信号。单片机把这个中断信号作为单片机的外部接收中断,单片机响应接收中断后读出can控制器中的接收缓冲区数据并保存,再清空can控制器的接收寄存器。
      在设计本系统软件时, 开发工具使用borland c++语言 。因borland c++是一种可视化、面向对象的c++程序设计语言快速开发工具,具有简单直观和功能强大的特点。在borland c ++集成开发环境下,可以方便的编写pc机的通讯程序。
      以pc机a作为主机,伺服驱动器和pc机b作为网络中的2个节点,设置主机节点地址和通讯波特率后,对网络进行扫描建立连接,可以正确扫描到两个在线节点,如图4是读取伺服驱动器各个参数值。


      从can总线以及devicenet总线特点可以看出,它较传统的串行通信,在硬件上可减少走线、易于系统扩充或改型,在软件上通信更加灵活、实时性更好、纠错能力更强。这表明基于devicenet总线的运动控制系统有广阔的应用前景。
      本文所设计的运动控制系统将devicenet总线与伺服电机驱动技术结合起来,实现了控制系统的全数字化。实际运行结果表明:本系统具有可靠性高、实时性好、易于维护等特点,达到了设计所需的要求。

参考文献
[1] 饶运涛.现场总线can原理与应用技术.北京:北京航空航天大学出版社,2003
[2] devicenet网络结构,广州周立功单片机发展有限公司,www.zlgmcu.com
[3] 李叶松等.全数字交流永磁同步电机伺服系统设计.电力电子技术,2002,(6)
[4] adi. single-chip ,dsp-based high performance motor controller admc401. analog devices ,1999.

 
打赏
 
更多>同类环保知识
0相关评论

推荐图文
推荐环保知识
点击排行
网站首页  |  免责声明  |  联系我们  |  关于我们  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅  |  违规举报  |  鲁ICP备12015736号-1
Powered By DESTOON