7
6ES7214-2AS23-0XB8诚信经营
抽油机井成组变频测控技术(以下称成组变频技术),是以抽油机井电能图测试技术、抽油机井智能测控技术和共直流母线变频节能技术等三项技术为的新型油田节能测控技术。系统是按照我国石油开发行业地域分块、管理分层的特点,针对油田自然与社会环境恶劣的实际情况而开发的,具有、方便实用的特点。
成组变频方案由一个井组动力和井组测控组成,二者通过有线调制方式进行通信。
井组动力有一个整流回馈单元和一个变频器组,这些设备通过直流母线联在一起。每一口抽油机井都可以单测控,控制每一口井的冲次,但在一个井组内的所有抽油机井的直流电部分是连接在一起的。
由于抽油机井是一个变动的负载,每一时刻的功率都是在变化的,大部分时间在耗电,但总有一段时间处在发电状态。
对于抽油机井所发的电,在一般抽油机井变频拖动方案中,这一部分电能是通过能耗制动的方式消耗了(电能消耗在制动电阻里,引起发热)。如果每一口井都配备一套电能回馈单元成本又太高,而在成组变频方案中,所有井的直流母线是连接在一起的,其中一些口井所发的电别的井可以利用,由于抽油机井发电总是少于耗电,所以一个井组内大部分井是处在耗电状态,井组总体来说不会发电,就算偶尔有发电现象,也可以通过整流及回馈单元将电能回送电网,而不会引起电能浪费。
井组测控的工业控制计算机,通过油井诊断分析得出泵功图,根据泵功图的分析得出油井的实际工作状况,对比给定的控制方案进而实现对抽油机井的优化控制。如果存在供液不足就可以降低冲次,如果有井卡、杆断或其它故障而可以停抽报警。这样不断能降低能耗,有利于抽油机井的生产,并且可能在摸清油井供液规律的情况下实现优化控制达到高产稳产的目的内容摘要:射频识别技术(RFID)技术的智能标签因其数据存储量大、读写速度快、数据性高、使用方便、读写距离远等**的特点,正得到快速的认可,并广泛应用于身份识别、特流管理、物品追踪、防伪、交通、动物管理等领域。本文就射频识别技术的发展、应用和技术优势进行了详尽的介绍,并对该技术在现代智能化物流管理当中的应用可行性及前景进行了分析。
关键词:RFID 现代物流管理 智能化物流管理
射频识别技术是无线通信IC和天线所构成的组件的通称。它的成品有着各式各样的形状和大小,不过其基本的卡片型、硬币型及有印刷天线的纸张等,不过其基本的功能却是一样的,只要配搭的读写器(READER/WRITER),就可以从外部读取或写入信息。
但这种仅能提供单一功能的RFID,却扮演了实现ubiquitoous(网路无所不在)社会的牵线者,正牵起一股狂大的旋风。服饰业、食品业、物流业等许多业界已开始认真思考以此项技术代替传统的条形码系统。在欧美各国,包括了美国的WalMart、英国的特易购Tesco、德国的Metro等大型的连锁式零售企业,都以提升公司内部物流系统的效率为目标,相继宣布未来将在2005-2006年间,正式采用RFID系统。
由此可见,无线射频识别技术已经在的零售业界掀起了一股旋风,而与其休戚与共的现代物流业,当然也不可避免地卷入了这一旋涡。
现代智能化物流管理
现代的物流,是以物流企业为主体、以三方物流配送服务为主要形式、由物流和信息流相结合的、涉及供应链全过程的现代物流系统。在信息化时代里面,随着网络技术、电子商务、交通运输和管理的现代化,现代物流配送也将在运输网络合理化和销售网络系统化的基础上,实现整个物流系统管理的电子化及信息化,配送各环节作业的自动化和智能化,从而进入以网络技术和电子商务为代表的物流配送的新时期。
此外,现代物流表现为企业生产与运输一体化的供应链管理与服务。其中货物运输所需的成本、时间及货物在途的状态控制是整个供应链管理过程中的重要环节。而将射频识别技术RFID与现代的物流管理相结合,将会大地提升物流管理各个环节的智能化水平务水平,其势必成为21世纪现代物流发展的不可逆转的趋势。
射频识别技术的技术优势分析
传统的自动识别技术的主要功能是提供关于个人、动物、货物和商品的区别于他物的相关信息。在当今的服务领域、在商品销售与后勤分配领域、以及在商业部门、在生产企业和材料流通等领域自动识别技术己得到了快速的普及和应用。
条形码技术,曾在识别系统领域引起了一场并得到了广泛的应用。但是现在这种技术在许多场合已经不能满足人们的需要了。条形码虽然很,但它的存储能力小、不能改写等的缺点均限制了它在自动识别领域的应用。
在这样特殊的历史背景底下,在我们对大存储量信息载体和无线信息交换方式的需求下面,RFID技术应运而生。而要把自动识别技术与现代的物流管理相结合,在技术的实际应用当中提高物流管理的效率和效益,RFID技术较之以传统的识别技术,具有其自身特的技术优势:
射频识别技术的应用优势分析
无论是传统的管理方式,还是现代强调智能化的管理方式,物流管理的终目标都是要通过向商品流通过程当中不同的对象提供产品或服务以换取利润。因此,商品从生产、储存、运输到流通,这一完整的物流管理的流程里面, RFID智能射频识别技术的应用,能帮助我们在其中不同的范围或领域内改进业务
的效率和效益,这具体表现在以下几个方面:
零售领域
无论是一包糖果,还是一台冰箱或者电视机,在外包装上加印规范的条形码,已经是绝大多数企业生产过程中一个常规的步骤。在商品流通企业,例如大型市,店员通过扫描条形码来结账和统计库存也是司空见惯的一个场景。
然而,这一场景可能很快要成为历史,产品包装上的条形码可能将要消失,而由加贴或者隐藏在包装内的智能识别标签(RFID)取而代之。RFID的应用,将使企业的产品和商品信息统计在无形中自动完成,大大提高运营效率。
物流运输领域
在商品出货运输的过程中,RFID系统可以指导和跟踪货物运输到分类的地点,通过实时收集的货物信息,调度和分配运输工具的有效工作时间。此外,它还能帮助我们完成诸如:集装箱检视、集装箱分舱、内装货物的核对和确认,以及发货单打印等工作。
在该领域内RFID的广泛应用,能够使得货物运输过程中人为参与因素大量地减少,籍此准确的货物信息,实物有效的在途控制。同时,进一步降低物流成本,提高生产效率。对管理者而言,就是可以随时地监控全局,好地调整资源和劳动力的配置。
商品库存领域
智能化的库存管理,能够帮助我们地监控产品的流动情况,实现库存状况的实时控制,从而提高生产透明度和生产效率。
RFID技术的运用,能使我们通过无线射频信息的收集而直接完成商品的入库工作。货物的实时位置和运动信息,都直接由RFID系统进行实时跟踪,仓库工作人员只需借助RFID的收发天线和读写器的帮助,即可把货物的信息记录入库。同时,RFID系统还可以根据货物标签中所记录的有关数量和体积等的信息,指示出合适的仓储位置,以达到仓储空间的优化利用。而在货物清点的过程当中,也可以通过自动跟踪RFID标签,大地提高清点工作的透明度和效率。
生产领域
RFID技术应用在生产流水线上,可以实现生产过程的自动控制、监视,提高生产率,改进生产方式、节约生产成本。如汽车装配流水线,在装配流水线上应用智能标签有利于大量地生产用户定制的汽车。定制汽车是基于用户提出的要求式样而生产的,用户可以从上万种内部和外部选项中选定自己所需汽车的颜色、引擎型号、轮胎式样等,实现客户DIY。这样一来,汽车装配流水线上就得装配上百种式样的汽车,如果没有一个高度组织的、复杂的控制系统是很难完成这样复杂的任务的。宝马公司就在其装配流水线上配有RFID系统,他们使用可重复使用的智能标签,该智能标签上带有详细的对特定汽车的所有要求,在每个工作点处都有读写器,这样可以保汽车在各个流水线位置处均能毫无差错地完成装配任务。而Motorola、***Thomson等集成电路制造商也在竞争激烈的半导体工业中纷纷采用了加入射频识别技术的自动识别工序控制系统。半导体生产对于净环境的特殊需要,使得RFID应用在此非常理想,而其它自动识别系统,如条形码在如此苛刻的化学条件和净环境要求下就不适用。
人类历史上曾经有过两个大量提供利润的领域。个是资源领域,二个是人力领域。在这两个利润源潜力越来越小,利润开拓越来越困难的情况下,物流领域的潜力正越来越被人们所重视,也正日益成为企业经营管理研究的热点问题。现代的物流管理正成为企业从流通渠道中追逐利润的主要手段,而应用的RFID技术解决智能化物流管理问题必将成为企业经营当中的“三利润源泉1 F28335浮点DSC内含一个用于处理的6通道DMA控制器
例如,TI公司推出的F283x浮点DSC(如图1所示)具有性能高、软件开发方便等特性,适用于电机与运转控制、车载雷达系统和以太阳能电池阵列和风力涡轮为来源的可再生能源生成系统。这款32位的DSC系列处理器工作频率可达150MHz,峰值运算速度可达每秒3亿次浮点操作(MFLOPS)。
相比DSC TMS320F28x而言,采用浮点架构之后DSC性能提升了50%。这一系列DSC内含一个6通道DMA控制器,能够大大减轻处理器核的管理工作,其软件新功能有助于用户方便地开发同一来源的浮点和代码。
浮点运算
F283x系列DSC的主要性能优势归因于它的数值计算格式,这种格式大大简化了编程,减少了代码执行时间,缩短了代码长度。在其他一些DSC和DSP芯片中普遍的采用格式只能够表示整数(没有小数点的正数和负数),因此涉及小数计算时采用其他表示方法。相反,浮点格式能够表示大范围内的实数(带小数点的数)。内部表示小数以及较宽的数值范围意味着处理器能够地执行定标运算(例如控制算法中常见的乘法、除法和三角函数运算)。
图2 F283x的32位字长的前8位用于表示指数。F283x数字信号控制器的32位浮点字
对于32位的架构,其表示整数的范围为-231~231,带一个符号位。尽管这个范围很大,但是当系统执行大量定标运算时,这一数值范围会很快用光,造成数值过32位,从而发生寄存器溢出。程序通过对这种数值进行舍入或截取,能够处理这种称为饱和的问题,但是牺牲了计算的精度。另外,程序可以将较长的数划分成多个较短的能够逐段计算的数,每次处理32位。后面这种实现方法能够保持全精度,但是由于处理器忙于移动和存储数值段,计算性能降低了。同时,程序规模也会由于所需的额外指令而增大了。
在这种情况下,浮点架构就显示出了其性能。如图2所示,在F283x中,32位字长的前8位用于表示指数,其余23位用于表示尾数,1位用作符号位。尽管指数没有符号位,但是在操作上对保存的指数进行规格化偏移处理,使得指数终能够覆盖负数和正数的范围。
这样,存储在32位浮点字中的数的规格化范围为±1.738~±3.438,大大过32位数的范围。由于负指数表示分数,所以这一范围涵盖了小的数到大的数。这样大的范围很难再出现饱和的问题,因此,程序就避免了要么通过舍入或截取牺牲精度,要么通过使用附加周期和指令对大数值进行分段处理而牺牲性能和存储的两难问题。
处理器性能增强
表1中列出的运算说明了浮点架构为DSC性能带来的好处。列是控制系统常用的四种算术运算、三角函数运算和两种算法(快速傅里叶变换和无限冲击响应)。
表1 及浮点架构性能基准测试比较
二列是在DSC上执行相应运算所需的周期数,三列是在浮点DSC上执行所需的周期数。后一列是二列与三 列结果的比值,表示二者的相对性能。浮点处理器执行所列数学运算的速度比处理器快2~3倍,执行FFT算法的加速性能也在该范围内,IIR的加速性能稍低,但仍比处理器快。
一般来说,控制算法比信号处理算法能够获得高的性能提升,因为控制代码执行的基本数学运算较多,需要进行换算和饱和处理。即便如此,浮点架构得到的周期数也低得多,对所有信号处理测试程序平均获得了50%的性能提升。
在各种应用中,这些基准测试程序变换成很多具体的应用程序。精细、多维控制技术可应用于机器人的和CNC(计算机数控)类的设备。伺服电机驱动器的效率将会得到进一步提高,能够实现PLC(电力线控制)和其他一些算法。太阳能与风能逆变器和不间断电源能够获得高的能量转换效率,进一步降低每千瓦电能的生产成本,并且能够控制不同配置的太阳能板阵或风力涡轮机。
软件开发的优势
浮点格式也有利于简化代码的编写和调试。浮点数字表示法对于数学运算相比表示法加自然,因此对语言的支持加直接。当代码经过编写和验证调试之后,可以直接导入浮点DSC进行进一步的测试和终的生产。
相比之下,在针对控制器开发代码的时候,在PC上编写和调试程序进行验证,然后还要根据严格的硬件表示方法重新编写代码。这大大增加了代码的开发周期,而且一旦对代码进行转换之后无法进行回退。
一般地,开发人员不得不同时编写的代码和浮点的代码,这就存在可能相互混淆的危险。F283x控制器只需要开发浮点代码,从而大大简化了代码开发过程,节省了开发时间,提高了软件性。
在存在成本约束的情况下,可以先以浮点控制器为开发平台进行原型和早期版本的设计,然后改用控制器进行量产制造,采用这一开发策略具有明显的优势。采用C编译器和IQ Math工具能够很方便地编译浮点和两种方式下同样的源码,从而支持这一策略。F283x DSC是一种经济的控制器解决方案,它是业界款采用SoC集成的浮点控制器。随着浮点架构与架构的成本交叉点上升到越来越高的水平,很多系统为了节省成本不必进行改动。性能高、开发容易的浮点架构成本已经能够为越来越多的应用所接受,促使人们在嵌入式系统控制领域不断进行研发。
一、开放式运动控制系统
按照IEEE定义,一个开放式运动控制系统应提供这样的能力来自不同卖主的种种平台上运行的应用都能够在系统上实现,并能和其他系统应用互操作,且具有一致性的用户界面。
开放式运动控制系统的研究始于1987年,是由美国发起的。目前,通用运动控制器从结构上主要分为如下三大类:
1.基于计算机标准总线的运动控制器
这种运动控制器大都采用DSP或微机芯片作为CPU,可完成运动规划、高速实时插补、伺服滤波控制和伺服驱动,外部IO之间的标准化通用接口功能,它开放的函数库可提供用户根据不同的需要,在DOS或bbbbbbs等平台下开发应用软件,组成各种控制系统。目前这种运动控制器得到了广泛的应用。
2.Soft型开放式运动控制器
它提供给用户大的灵活性,它的运动控制软件全部装在计算机中,而硬件部分仅仅是计算机与伺服驱动和外部IO之间的标准化通用接口。用户可以在bbbbbbS平台和其他操作系统的支持下,利用开放的运动控制内核,开发所需要的控制功能,构成各种类型的运动控制系统,从而提供给用户多的选择和灵活性。Soft型开放式运动控制的特点是开发,制造成本相对较低,能给予开发人员加个性化的开发平台。
3.嵌入式结构的运动控制器
这种运动控制器是把计算机嵌入到计算机控制器中的一种产品,它能够立运行。运动控制器与计算机之间的通讯依靠计算机总线,实质上是基于总线结构的运动控制器的一种变种。对于标准总线的计算机模块,这种类型的控制器采用了加的总线连接方式(采用针式连接器),加适合工业应用。在使用中,采用如工业以太网、RS485、SERCOS、PROFIBUS等现场网络通讯接口连接上级计算机或控制面板。嵌入式的运动控制器也可配置软盘和硬盘驱动器,甚至可以通过Internet进行远程诊断。
二、PC+运动控制卡的控制方案
采用PC+运动控制卡作为上位控制可充分利用计算机资源,用于运动过程、运动轨迹都比较复杂,且柔性比较强的机器和设备。从用户使用的角度来看,基于PC机的运动控制卡主要是硬件接口(输入输出信号的种类、性能)和软件接口(运动控制函数库的功能函数)的差异。
运动控制卡是基于PC机各种总线的步进电机或数字式伺服电机的上位控制单元,总线形式也是多种多样。由于计算 机主板的新换代,ISA插槽都越来越少了,PCI总线的运动控制卡应该是目前的主流。卡上CPU与PC机CPU构成主从式双CPU控制模式。PC机CPU可以专注于人机界面、实时监控和发送指令等系统管理工作;卡上CPU来处理所有运动控制的细节升降速计算、行程控制、多轴插补等,占用PC机资源。同时随卡还提供功能强大的运动控制软件库C语言运动库、bbbbbbsDLL动态链接库等,让用户快、有效地解决复杂的运动控制问题。
运动控制卡采用了开放式结构,使用简便,功能丰富,性高。若采用PC机的PCI总线方式,卡上进行任何跳线设置,所有资源自动配置,并且所有的输入、输出信号均用光电隔离,提高了控制卡的性和抗干扰能力;在软件方面提供了丰富的运动控制函数库,以满足不同的应用要求。用户只需根据控制系统的要求编制人机界面,并调用控制卡运动函数库中的指令函数,就可以开发出既满足要求又廉的多轴运动控制系统。
运动函数库为单轴及多轴的步进或伺服控制提供了许多运动函数,如单轴运动、多轴立运动、多轴插补运动等等。另外,为了配合运动控制系统的开发,还提供了一些辅助函数,如中断处理、编码器反馈、间隙补偿,运动中变速等。
正是由于运动控制卡的开放式结构,强大而丰富的软件功能,对于使用者来说进行二次开发的设计周期缩短了,开发手段增多了,针对不同的数控设备,其柔性化、模块化、的优势得以被充分利用。
三、开放式多轴运动控制系统硬件结构
整个系统以基于“PC机+运动控制卡”为,采用ADT850运动控制卡加松下数字交流伺服驱动器构成一个开放式硬件结构。同时配备内容丰富、功能强大的运动函数库,采用VC++面向对象的编程技术,实现PC机、运动控制卡和伺服驱动器之间的通讯PC机负责人机交互界面的管理和控制系统的实时监控等方面的工作,例如键盘和鼠标的管理、系统状态的显示、控制指令的发送、外部信号I0的监控等等。其中,脉冲信号控制电机所走的步数,方向信号控制电机正反转,以实现二轴的位置控制。X轴和Y轴原点、限位检测是通过一组机械开关来实现,原点检测开关用来生成用户二维运动系统坐标系原点,限位检测开关确保每轴工作行程限。这些状态信号经逻辑电平整形电路、光电隔离电路后送入运动控制卡状态寄存器中,由CPU随时读出,达到对IO状态信号的检测。在硬件上,由于采用了光电隔离措施,这样,既隔离了外设对内部数字系统的干扰,又能有效地防止过电压、过电流等外界突发事件对计算机系统的损坏,大大提高了系统的控制精度和性。
本系统充分发挥了PC机软件**和计算速度快的优点,吸收CAM的特点,在利用造型软件生成零件图后,再利用数控系统转化为加工G代码,将指令G代码与机床实际位置进行分析比较产生瞬时速度,然后由板卡将其解释为运动轨迹控制函数,后通过调用运动函数库内的插补程序段,输出脉冲和方向信号,控制半闭环位置伺服系统带动工作台运转,实现所希望的空间轨迹路径动态特性和稳态精度。
四、基于VisualC++多轴运动控制系统的软件开发
VisualC++是一个在bbbbbbs环境下的程序开发工具,它是可视化的、面向对象的,采用事件驱动的。它屏蔽了bbbbbbs环境下程序设计的复杂性,使bbbbbbs应用程序设计变得简单、方便、快捷。利用ADT850运动控制卡的动态链接库DLL可以很快开发出bbbbbbs平台下的运动控制系统。ADT850运动控制卡动态链接库是标准的bbbbbbs32位动态链接库,选用的开发工具应支持bbbbbbs标准的32位DLL调用。
基于PC+运动控制卡多轴运动控制系统的软件开发需由ADT850运动控制卡配套光盘提供开发库中的三个文件,一个是静态库ADT850.LIB,一个是头文件ADT850.H,一个是bbbbbbsNT2000使用的文件winio.sys,动态库中的函数已在头文件ADT850.H中有声明,用户可以直接调用其中的函数。ADT850函数库中提供常用的单轴运动,多轴立运动控制,多轴插补运动控制,中断、等功能。
每块ADT850卡多可以控制四轴的运动,当需要控制多个轴时,可以在PC机上插入几块卡,而在编程时,把它们当成一个整体对待,各卡之间的轴与同一块卡上的轴也同样能够进行联动或插补,这样就能实现多于四轴的运动控制。一台计算机上可同时使用的ADT850卡的数目取决于PCI扩展槽的数目。基于现场总线的网络技术的研究是自动化领域发展的一个热点。CANopen协议是目前流行于欧洲的基于CAN总线应用层的标准协议。对工程设计者来说,研究现场总线的任务就是对控制节点进行开发。本文就是通过实现伺服电机控制模块的CANopen协议,说明一个基于CANopen协议的控制网络的组态。
伺服电机控制器在自动控制领域里有着广泛的应用,如纺织机械和印刷机等。为了得到理想的速控效果, 伺服电机模块除了要在分辨率、线性程度以及转换速率上达到一定的要求外,还应具有良好的在线可控性和实时在线状态检测功能。为此,利用CAN总线高层通信协议CANopen,结合陕西省教育厅“并条机自调匀整” 项目对伺服电机控制模块参数的要求,开发了一个具有硬件可重用性、软件可重配置特点的伺服电机控制模块。
1 CANopen协议概述[1-2]
CANopen协议是由CiA协会针对CAN协议的不完整性而定义出的一个高层次的协议——应用层协议。一个CANopen 设备模块可分为3部分,如图1所示。通信接口和协议软件用于提供在总线上收发通信对象的服务;不同CANopen 设备间的通信都是通过交换通信对象来完成的,这一部分直接面向CAN 控制器进行操作。对象字典描述了设备使用的所有数据类型、通信对象和应用对象;对象字典位于通信程序和应用程序之间,用于向应用程序提供接口。应用程序对对象字典进行操作,即可实现CANopen通信。它包括功能部分和通信部分,通信部分通过对对象字典进行操作实现CANopen 通信;而功能部分则根据应用要求来实现。
图1 CANopen设备模型
在CANopen网络系统中每个节点都有的一个对象字典,而且每个节点的对象字典都具有相同的结构,但具体的内容要根据不同的设备而定,包含了描述该设备及其网络行为的所有参数。CANopen协议还定义了4种报文(通信对象),用于对不同作用的信息进行处理,分别为管理报文(NMT)、服务数据对象(SDO)、过程数据对象(PDO)和预定义报文或特殊功能对象。具体的CANopen协议内容可参考相关文档。
2 伺服电机模块的硬件实现
伺服电机模块使用Microchip公司生产的带有CAN总线功能模块的主频为40 MHz的PIC18F258单片机进行控制[3]。根据并条机自调匀整系统对伺服电机的要求(9 V—3 000 r/min,即3 mV—1 r/min),以及从总线上以1 ms为周期发送来的D/A转速控制数据,使用ADI公司的12位AD7243芯片进行D/A转换。它具有300 kHz的转换速率,3种可选择的输出电压,分别是0~+10 V、0~+5 V和-5~+5 V,采用串行端口通信。
图2为硬件电路简图。根据系统需求,设置AD7243电压输出为±5 V,将AD7243芯片的ROFS引脚与REFIN引脚相连实现。在AD7243的输出端接有OP07运算放大器,用于调整输出电压到±10 V,以控制电机正反方向和调节转速。图中继电器FDLL4148用于控制电机的启动和停止;光耦TL521用于对伺服电机状态采集时的隔离器;为实时了解伺服电机运行状态,根据CANopen协议分别设计了用于指示系统当前状态和错误的LED(和红色)指示灯;J1为与伺服控制器的接口插件。
图2 伺服电机模块硬件结构简图
图2中,在OP07上接有调节零输出偏置电压的可调电位器R3;用ADuM1100高速数字隔离器替代传统的光电耦合器,以降低功耗,提供的信号;MCP2551是一种可容错的高速CAN收发器,具有差分发射和接收能力,可将许多节点与同一网络相连接并采用非屏蔽线部署网络,从而降低系统成本。
3 伺服电机模块的CANopen协议实现
(1) CANopen协议实现
伺服电机模块在CANopen网络中作为从节点发挥作用,完成属于自己范围内的特定任务,进行实时,并对其负责的底层设备进行数据采集和控制。在实现CANopen协议之前,先了解它在网络中的具体功能:通过CAN总线接收控制伺服电机的数据(包括转速控制、启动和停止);采样伺服 Ready信号和电机当前状态回送到CAN总线。
CANopen协议的内容是对象字典,完成各种机器CANopen协议通信的实质是在对象字典的基础上进行操作,通过映射的关系实现对各种报文数据的处理。根据伺服电机模块的功能并结合CANopen协议各类报文的特征,定义了如表1和表2所列的属性。
表 1
表 2
表1和表2定义的SDO报文和PDO报文分别用于读/写对象字典和传送实时数据。PDO报文映射参数子索引的内容代表PDO报文中各字节的用途,比如:RxPDO报文映射参数子索引0x64110110L指对象字典索引0x6411和子索引0x01,占16位的数据内容,即控制电机转速数据。此外,系统还定义了一个接收NMT报文,用于实现主节点对从节点的组态;一个Heartbeat(心跳)报文,以5 000 ms为周期发送,使主节点实时监测从节点状态并在发生错误时及时进行处理。
除了上述用于实现伺服电机模块预定义功能的报文外,还根据CANopen协议的指示灯规范设计了状态()和错误(红色)指示灯,通过定时器周期性地检查CAN总线状态寄存器和CANopen通信状态标志,设置指示灯的常亮、闪亮和闪烁等状态,可使用户直观地判断当前机器所处的状态,从而提高工作效率。具体的CANopen协议和指示灯规范可以参考相关文档[4]。
伺服电机控制模块的设计是基于CANopen协议对象字典的模块化设计,它可以方便地进行功能扩展,只须修改对象字典中报文映射参数,添加相应的功能模块即可实现。与以往的基于CAN数据传送协议相比,大大提高了系统效率,节约了有限的硬件资源,为功能的扩展和用途的延伸提供了方便。
(2) 应用程序流程
伺服电机模块上电以后,根据CANopen协议从节点的性质,系统在进行完初始化参数配置后,发送Bootup报文通知主节点已进入预操作 (preoperational)状态,并在主循环中等待各种类型中断的到来。在预操作状态中,可接收主节点的SDO报文读/写对象字典。比如当无法使 DA零点输出偏置电压达到标准值时,可以通过修改对象字典的电压偏置值相来进行调整。NMT报文也可在预操作状态中接收,用于改变节点状态,进入伺服电机模块实时传输PDO报文的操作(operational)状态,开始系统的正常工作。一旦系统进入预操作状态,就会以5 000 ms为周期发送Heartbeat报文使主节点实时监控伺服电机模块的状态;当从节点发生错误时主节点就可以立刻采取措施,实现实时在线监控的功能。图3 为中断程序流程图。
图3 中断程序流程图
(3) 基于PIC18F258微控制器的邮箱动态分配的实现
邮箱动态分配的任务是在不固定某个邮箱具体特性的同时,实现对邮箱中报文作用的判断。通过邮箱的动态分配,可以节约系统资源,提高软件灵活性,便于今后系统扩展。
在系统初始化过程中,实现了邮箱的动态分配,具体方法是:PIC18F258微控制器具有2个接收缓冲器和6个接收滤波器,其中:接收缓冲器0 对应于接收滤波器0和1;接收缓冲器1对应于接收滤波器2、3、4和5。通过定义常数标志数组_uCANRxHndls[i](0≤i≤5),依次将要接收的报文COBID定义到接收滤波器中。当产生CAN总线接收中断时,根据中断标志寄存器PIR3的Bit0(RXB0IF,接收缓冲器0中断标志位)和 Bit1(RXB1IF,接收缓冲器1中断标志位)来判断产生中断的接收缓冲器。
当接收缓冲器0中断时,则有:
_uCAN_ret=*(_uCANRxHndls+(RXB0CON & 0x01))(1)
其中:uCAN_ret为标识某报文接收中断的数组常数标志;接收缓冲器0控制寄存器(RXB0CON)的Bit0为接收滤波器0、1的选择位。
当接收缓冲器1中断时,则有:
_uCAN_ret=*(_uCANRxHndls+(RXB1CON & 0x07))(2)
其中:接收缓冲器1控制寄存器(RXB1CON)的Bit2~Bit0为接收滤波器2、3、4和5的选择位。
通过式(1)和式(2)可得代表某种报文中断的数组常数标志,实现对接收报文类型的判断,完成邮箱动态分配和相应报文处理。
4 实验验证
为方便实验室监测,直观地观察伺服电机模块的工作状态,判断D/A转化的线性特征,使用LabView软件设计了PC监控面板[5],如图4所示。
图4 伺服电机模块测试面板
图4中的amplitude和phase分别用于设置发送正弦波的幅度和相位,正弦波数据以占用两字节的形式发送,结合继电器1和2占用的一个字节组成3字节的TPDO报文。光耦1、2表示从RPDO报文接收到的数据状态,在此监控面板的基础上,使系统的调试加方便。
在示波器上观察到的D/A输出波形如图5所示,因为D/A输出为瞬间波形,所以在示波器上看到的波形光线只有一部分。此外,由于LabView 软件的限制,输出数据周期只能达到1 ms。 因此, 在示波器上看到的波形有折线存在,每个转折点代表一个输出点,通过设置相位值来决定转折点的个数,即输出多少个数据来表示一个波形。例如图5中的相位为18,则会输出36个点来表示一个周期波形。