多电机伺服控制广泛应用于各种电力传动自动控制系统中,如配料、传动等生产过程。伺服系统中电机控制性能和多电机间协调控制的好坏直接影响生产过程的质 量,如何高效管理、方便应用、实时控制是多电机伺服系统生产领域亟待解决的首要问题。因此,本文提出一种基于can总线技术的多轴运动控制数字交流伺服系 统。
现场总线技术解决了传统总线插板i/o模块多,干扰严重、系统软件编写复杂、系统硬件兼容性差等问题。大大减轻了现场信号连接的繁琐与费用,提高了信号传输的精度与灵活性,给安装、调试和维护带来诸多方便,为现场用户带来巨大的经济效益,代表着自动化领域发展的一个重要方向[1]。

图1 can总线网络结构

图2 can驱动器接口电路

图3 现场总线通讯程序流程
can总线技术
随着工业现场控制和自动化技术的不断进步,传统的通信模式已不能满足现代工程需要。can(controller area network)总线是80年代初德国bosch公司为解决现代汽车中众多控制与测试仪器间数据交换而开发的一种串行数据通信协议,是一种性能先进、价格低廉、保密性好的现场总线(field bus)技术,能够有效支持分布式控制或实时控制串行通信网络[2]。can总线中各节点都有权利向其它节点发送信息。通信介质可以是双绞线、同轴电缆或光纤,主要技术特点有:是一种多主总线
网络上任一个节点均可在任意时刻主动向网络上其它节点发送信息,多主站依据优先机制进行总线访问;
非破坏性基于优先权总线仲裁技术
采用非破坏性基于优先权总线仲裁技术结构,大大节省总线冲突仲裁时间,在重负荷下表现出良好性能;
具有多种传送数据功能
具有点对点,一点对多点(成组)及全局广播传送数据功能;
节点数目多
直接通讯距离最远可达10km(传输速率为5kbps),最高通讯速率可达1mbps(传输距离为40m);
可靠性高
数据链路层采用短帧结构,实时性高,纠错效果好,每帧信息都有crc校验及其它校验措施,数据出错率低,可靠性高;
故障自动判别
发送期间若丢失仲裁或因出错而遭破坏的帧可自动重发,暂时错误和永久性故障节点判别及故障节点自动脱离can总线。
can总线系统由can网络节点、转发器节点和上位机构成。总线技术遵循现场总线协议,将分布在不同位置,用途各异的测量仪表、控制设备互联成网,并可接入intranet和internet网络。现场总线技术的关键标志是它能支持双向多变量、总线式全数字通讯。传统4~20ma模拟直流回路只能在一根两 芯电缆中单向传输一个参数,随着系统结构的日益复杂和信息量的增加,4~20ma电流环传输成为制约信息传输的瓶颈,所以现场总线替代4~20ma模拟信号标准已成为控制系统发展的必然趋势。
基于can总线技术的多机伺服系统
can总线控制网络结构
基于can总线技术的多电机伺服控制系统网络结构如图1所示,系统由上位机、can总线、现场伺服单元节点组成。数控系统上位机通过can总线控制网络节 点任一伺服单元,数字伺服与数控系统之间数据传输可分为实时性数据信息和非实时性数据信息两类。实时性数据指参与控制器实时位置、速度、转矩等控制指令和反馈信息,传输速度要求较高。非实时性数据主要是指控制器参数设置、功能设定、诊断功能、伺服状态与报警等信息,传输速度相对较低。
can接口适配器是上位机与伺服单元数据传输和控制的桥梁,伺服单元采集现场的数据通过总线传给上位机,实现实时监视和控制。
数字伺服系统网络硬件与软件设计
can总线接口硬件电路
数控系统上位机采用研华公司pcl-841卡实现can总线通讯,伺服驱动系统采用ti公司tms320lf2407a片内can控制器[3]。该控制器 全面兼容can2.0b协议,具有标准和扩展标识符,有数据帧和远程帧,2407a片内can总线控制器与can物理总线接口采用82c250驱动器芯片。82c250采用阻抗为120ω双绞线作通讯介质,信号采用差动接收和发送模式,抗干扰能力强,最高通讯速率可达1mbps。有三种不同工作方式:高 速、斜率控制和待机。本系统采用斜率控制,以降低射频干扰。为了增加抗干扰能力,保护can控制器,在tms320lf2407a与82c250之间加高速光电隔离器,光电隔离器采用hp公司hcpl-2630芯片,速度为10mhz,电路如图2所示。
can 总线控制器软件设计
can总线网络控制软件包括网络应用层协议、节点功能流程和编码等的配置和设计[4]。
邮箱初始化配置
包括对管脚的配置、波特率的设定、邮箱的收发配置等。首先,配置 mcrb寄存器,将iopc6和iopc7引脚配置成特殊功能,即canrx和cantx;其次,配置mder寄存器,即配置邮箱使能和邮箱2~3功能; 最后,对屏蔽id寄存器进行配置,可以屏蔽任意位id,这种寄存器只对接收邮箱起作用。
;can邮箱初始化配置
can_iNIt:
ldp #dp_pf2
lacl mcrb
;配置can引脚
or #0c0h
;iopc6,iopc7配置为特殊功 能:canrx,cantx
sacl mcrb
;can位定时器配置
ldp #dp_can
splk #0040h,mder;md2 =1,mbx2为发送方式
splk#0ffffh,can_ifr
;清全部can中断标志
splk#07fffh,lam1_h
; 设置邮箱2、3屏蔽id寄存器0
splk #0ffffh,lam1_l ;则id必须匹配
波特率设定
主要与3个寄存器有关,即scsr1(系统控制和状态寄存器1)、bcr1(位配置寄存器1)和bcr2(位配置寄存器2)。配置前要确定波特率和晶振频 率,当对位定时器进行配置时,can控制器必须处于复位模式下,即ccr=1。
splk #1000h, mcr;ccr=1改变配置请求
w_cce:bit gsr,#0bh;等待改变配置使能
bcnd w_cce,ntc;当cce=1时即可配置bcr2、bcr1寄存器
splk #01h,bcr2;波特率预分频寄存器
splk #0033h,bcr1;波特率设置为1m
lacl mcr
邮箱收发配置
在数据域改变前首先要禁用邮箱,然后置位数据域,改变请求。再设置邮箱id和信息控制寄存器。若是发送邮箱,则在数据域存放预发送数据,若是接收邮箱,则清空接收缓存。
;写can邮箱内容前寄存器设置
ldp #dp_can
splk #0040h,mder ;不使能邮箱,邮箱2设为接收方式
splk #0103h,mcr ;cdr=1,数据区改变请求
;写can邮箱内容
ldp #dp_can2
splk #2447h,msgid2h;设置邮箱2控制字及id
;ide=0,ame=0,aam=0
;标准 方式为msgid2h[12~2]
splk#0ffffh,msgid2l
splk#08h,msgctrl2;设置控制域
;数 据长度dcl=8,rtr=0数据帧
splk#00000h,mbx2a;邮箱2信息初始化
splk#00000h,mbx2b
splk#00000h,mbx2c
splk#00000h,mbx2d
splk#2447h,msgid3h; 设置邮箱3的标识符
splk#0ffffh,msgid3l
splk#08h,msgctrl3;rtr=0,dcl=8
splk#02211h,mbx3a; 邮箱3信息初始化
splk#04433h,mbx3b
splk#06655h,mbx3c
splk#08877h,mbx3d
; 写can邮箱内容后寄存器设置
ldp#dpcan
splk#0480h,mcr;db0=1,ab0=1,stm=0
splk#04ch,mder;me3=1,mbx3 发送,me2=1接收
splk#0f7ffh,can_imr;中断mbx3无效,mbx2使能,
;中断优先级
splk #0ffffh,can_ifr;清全部中断标志
ret
邮箱中断设置can模块专属中断寄存器有can_ifr和can_imr,使用方法与一般中断寄存器相同。但tms320lf2407a 采用二级中断方式,高优先级模式的can邮箱中断对应int1,高优先级can错误中断对应int2;而低优先级can邮箱中断和can错误中断都对应 int5。所以在程序中要开放对应一级中断。接收帧id的读入在接收事件中,通常一个邮箱要接收多节点帧。因此,信息帧id的读出也很重要。不管有没有屏 蔽,所接收信息帧的id会被置入msgidnh和msgidnl,但接收邮箱的id并没有改变[5]。
程序框图如图3所示,实验程序使用邮箱2接 收,邮箱3发送。通讯软件可以采用查询方式或中断方式,主要包括can控制器初始化程序、接收邮箱与发送邮箱设置、发送程序、接收程序。
发送程序只需要设定发送控制寄存器相应位;接收程序要完成:
读取已接收的邮箱标识符格式;
读取接收的标识符;
读取接收的数据长度;
读取接收的数据值。
上位机通过适配器与can总线连接,用vc6.0编写监控软件,并定义上位机作为局域网操作服务器,用户通过它可以对各个伺服单元进行操作。
结语
<




