新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于CAN总线的分布式位置伺服系统设计

基于CAN总线的分布式位置伺服系统设计

作者:时间:2010-05-26来源:网络收藏
(servo system)亦称随动系统,其在军事、工业和日常生活中都有着广泛的应用。随着计算机技术和现场技术的发展和成熟,也促使的实现方式和体系结构在不断地发展,将现场应用于运动控制,构成控制的数字控制日益受到人们的重视。现场伺服系统有很多优点,如连线少、可靠性高、易于系统的维护和扩展等。目前,国外的Siemens、ORM EC Systems、Rexroth等公司已经有各自的伺服系统产品推出;国内有一些单位和学者也进行了该方面的研究,但相关的论文并不多,更没有形成系列产品[1]。
分布式伺服系统中,电机控制性能和多电机间协调控制性能的好坏直接影响生产过程质量,如何实现系统的高效管理、方便应用和实时控制都是需要解决的关键问题。总线是一种有效支持分布式控制或实时控制的串行通信局域网络,以其结构简单、可靠性高、成本低廉等优点非常适合分布式伺服系统中数据通信的实现。通过总线进行数据传输与控制,使伺服电机的性能更加稳定,能更好、更灵活地应用于分布式运动控制系统中[2]。
1 系统的总体结构和原理
本文的分布式伺服系统的总体结构如图1所示。系统由主控制器PLC、总线和现场伺服单元节点组成。PLC是整个系统的主控制器,除了对各个伺服电机发送实时控制命令外,还需要接收各驱动器节点的工作状态信息,并进行判断给操作人员以提示或报警。系统中所有的伺服电机系统都有各自的CAN接口,都挂接在CAN总线上构成如图1所示的分布式控制系统。系统中若有节点同时向总线发送CAN信息时,根据每条信息的标识符(ID)进行仲裁,决定占用总线的优先级,信息的ID越小优先级越高。这就是CAN总线的非破坏性总线仲裁机制,由此决定同时发送到总线上的不同报文对总线的占用权[3-4]。

本文引用地址:http://www.amcfsurvey.com/article/151843.htm

2 系统硬件构成
2.1 主控制器PLC模块

本系统的主控制器PLC选用的是芬兰EPEC公司生产的EPEC 3G系列控制模块中的一种,该模块功能强大,性能优越;坚固、体积小、耐低温、抗振动、抗强电磁干扰,并具有高压、过载、过热和输出短路保护功能;16位的高性能微处理器和超大容量的内存空间使其具有很强的数字处理能力,可以完成较复杂的算法;具有丰富的I/O口资源,包括AI、DI、DO和PWM输出等,还具有CANopen和CAN2.0B 两个总线接口,可以与很多标准的CAN总线产品直接连接,而且接线简单方便,可靠性高。本系统利用的是该模块的CAN2.0B总线接口。
2.2 伺服驱动器节点硬件原理
  本系统目前的工程应用是控制油门阀的开度,图1中的每1个伺服电机系统就是一个集成的直流电动推杆,其包括DC 24 V直流电机、推杆机构和推杆传感器。通过电机的正反转带动推杆机构直线运动从而控制某型号油门阀的开度大小。
  伺服驱动器的CAN节点主要由单片机AT89C52、AD芯片、CAN控制器82527、收发器PCA82C250和继电器构成,其硬件原理如图2所示。单片机从CAN总线上接收PLC发送的给定命令,推杆传感器的反馈电压信号经AD转换后进入单片机,与位置给定量进行比较,然后完成推杆位置的闭环控制算法。控制量通过单片机的I/O_1和I/O_2输出,经过驱动芯片后,I/O_1的信号控制1个双刀双掷继电器实现电机的正反转切换,I/O_1的信号控制1个单刀继电器以控制电机的启动和停止[5]。

3 系统软件
  系统CAN总线网络的是按照CAN2.0B标准的,采用11位标识符的标准帧格式,初始波特率为250 Kb/s(可修改),各节点的数据发送方式都采用广播式,接收数据时采用报文标识符过滤的方式从总线上接收本地所需要的数据。
3.1 PLC控制程序
  系统选用的PLC的软件开发环境是CoDeSys,它是德国3S公司开发的一种可视化PLC编程环境,支持IEC11311-3标准的指令表、梯形图、功能模块图、顺序流程图、结构化文本、连续功能图等6种编程语言,用户可在同1个项目中选择不同的语言编写程序。CoDeSys以工程文件的形式组织程序的各个对象。1个工程文件包含PLC程序里的所有对象:POUs(Program Organization Units)、数据类型和资源。1个POUs包括主程序(PLC_PRG)、子程序(PRG)、功能块(FB)、函数(FUN)及语句,其中主程序必须命名为PLC_PRG。子程序可以调用函数和功能块,但函数和功能块不能调用子程序,且当程序在线运行时,子程序中的中间变量值是可视的。另外,CoDeSys还具有丰富的库文件资源,编程过程中可以灵活调用,大大节省了软件开发时间。
根据CoDeSys程序编写的特点,系统的PLC程序是用结构化文本语言编写的。程序的主要功能是把由AI口输入的油门控制脚踏板的模拟电压进行一定调理后通过CAN总线发送给各个被控节点,并从CAN总线上接收各节点的状态信息,进行判断后对操作人员给出提示或报警信号。PLC的CAN总线通信初始化的主要设置有:波特率等相关参数、报文滤波参数、创建接收报文的数据缓存区等,这些设置都可以直接调用CAN2.0的库函数实现,十分方便。PLC在发送数据时,调用库函数CAN_IITX(),设置ID、DLC等参数,把数据打包给每帧数据段的相应字节即可;接收数据时,需要先调用库函数CAN_II_GET_MSG()创建接收数据缓存区,设置OBJ、ID等参数(OBJ是缓存初始化序号, ID是接收数据的标识符),实现报文过滤。然后调用库函数GET_MSG(),其参数MESSAGE必须与缓存区初始化序号OBJ相等,才能读入相应缓存区的数据。函数GET_MSG()读数据是分字节读取的,可以很容易实现数据的字节操作和位操作,可为数据的计算和处理提供方便。顺序循环执行PLC程序,本系统设计的循环周期为10 ms,可以满足控制系统实时性的要求。

伺服电机相关文章:伺服电机工作原理



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭