《PMAC控制板在转台控制系统中的应用.docx》由会员分享,可在线阅读,更多相关《PMAC控制板在转台控制系统中的应用.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、PMAC控制板在转台控制系统中的应用ronggang导语:各种嵌入式产品的出现导致计算机控制系统出现了很多新的形式,作为典型的DSP应用产品,PMAC非常合适轴类运动的控制。本文主要介绍PMAC在一个实际的飞行模拟转台控制系统中的应用方法摘要:各种嵌入式产品的出现导致计算机控制系统出现了很多新的形式,作为典型的DSP应用产品,PMAC非常合适轴类运动的控制。本文主要介绍PMAC在一个实际的飞行模拟转台控制系统中的应用方法。关键词:PMAC,转台,半实物仿真1.引言由于各种民用、军用飞行器技术的快速开展,当今世界各国都特别重视半实物仿真技术的研究和应用,而飞行模拟转台是半实物仿真的重要设备之一。
2、通常,飞行模拟转台提供模拟飞行器飞行姿态角和为被试件提供测试条件的功能,以便验证全数字仿真的实验结果并进一步优化或者改进飞行器设计方案。而对于转台这样一个典型的自动控制系统来讲,控制器扮演重要角色,其优劣直接决定飞行仿真实验的成败和效果。因此,寻求简单易用且可靠的控制器成为转台设计的一个重要方面。2.使用PMAC控制器随着自动控制理论和数字计算机及其应用技术的不断开展,使以计算机为根底控制技术迅猛开展,被控对象规模更大,控制经过和规律也更加复杂和精细,控制方法也更加灵敏多样。在转台的控制系统中,除了用来产生输入信号的仿真机之外,计算机还扮演了控制器的角色。在这里,计算机可以是单片机、工控机或是
3、PC等。根据控制器的不同形式,计算机控制系统分为集中式,分布式,集散式三种类型,其中集散式控制器又分为PC机与单片机,PC机与PC机,PC机与嵌入式控制器三种形式。在控制系统中使用PMAC,采用的就是PC机与嵌入式控制器组合这种形式。2.1问题的提出转台的控制系统通常采用上、下位机的形式。如图1所示,常见的控制器一般位于下位机,由其给出详细控制算法,并由下位机总线上的各个分立器件如放大器,DA、AD转换装置等来完成输出控制信号和收集被控对象位置/速度等信息的功能,同时通过网卡等通讯设备与上位机交换信息。这里,控制器的功能由一个各局部相对独立的系统来完成,使系统设计、控制算法实现和数据收集都较为
4、复杂;加上各个设备之间可能存在的干扰,整个系统的安装调试需要花费较多的精力才能完成。这样看来,假如整个下位机包括提到的各种功能可以由一个独立的通用部件完成,系统设计和调试所面对的困难就要小得多。PMAC控制器正好可以达成这一目的。2.2PMAC简介PMAC的全称是ProgrammableMultiAxisController,由美国DeltaTau公司设计消费。PMAC系列包含适用多种总线平台的板卡以及适于独立使用的组件。PMAC基于DSP数字信号处理器,是一种通用的运动控制器,但更适用于数控机床等轴运动设备。它可以控制232根轴的运动18块PMAC级联可以控制128根轴,同时包含多路数字I/
5、O和DA/AD装置;可以自动生成各种控制曲线的轨迹,并允许用户方便的生成自己的控制代码。由于DSP的强大功能,PMAC甚至集成了典型的控制算法也可以由用户提供自己的控制算法,并提供高精度的计算才能。用于PC的PMAC提供ISA/PCI总线或者串口的通讯方式,并提供了一组编程接口供高级用户进展二次开发。PMAC非常合适于对轴运动进展控制。因此,只要知足指标要求,飞行模拟转台也可以采用PMAC作为控制器。这样,整个下位机物理构造可以大大简化,系统设计和调试经过也变得相对简单。图2是PMAC本身提供的前馈滤波+PID控制算法的框图,其中的各个参数都可以调节,以知足不同需要。align=center图
6、2:PMAC的PID框图/align3.系统构成方法3.1由PMAC构成上下位机系统简化的逻辑框图如图3所示。图中,PMAC控制卡通过标准总线与上位机相联,码盘等测速或者测角机构通过PMAC上的DD接口传递位置、速度等信息,经PMAC处理,并按上位机给出的控制要求通过PMAC上的DA接口输出适宜的电平信号控制转台上的电机运动,进而构成控制闭环。另外,PMAC通过总线向上位机交换报告转台位置、运行平安等信息,并从上位机获得程序运行所需要的命令,如程序开场、完毕和系统复位等。由于PMAC自身的特性,使诸如码盘信号换算、行程限位等功能可以很方便的实现,且PMAC的可编程特性使系统经过很强的扩展才能,
7、整个系统构成要比普通的上下位机系统显得简单实用。而PMAC的使用也使系统更具通用性,只需作少量调整即可应用于其他设备。3.2软件环境的选择过去用于转台控制的上下位机软件系统普遍采用DOS作为操纵系统。这一方面是受当时的条件限制,另一方面也是由于DOS的开放性,程序可以直接对硬件进展操纵,且一般以为DOS的实时性较好。缺点是控制软件的图形界面不轻易通过编程的方式生成,控制和通讯程序中揉杂大量用于生成用户界面的代码,调试和维护比拟困难,而且直接直接对硬件操纵使得程序通用性较差。随着计算机软/硬件及其应用技术的开展,一方面计算机硬件的价格显著降低,软件产品极大丰富,另一方面使用者对程序界面的要求也逐
8、渐进步,越来越多的控制系统软件开场采用Windows作为操纵系统。对于PMAC而言,它同时提供了基于DOS和Windows的配置程序、二次开发工具以及例程。稳定性方面,Windows作为控制系统上位机的操纵系统已经是流行的做法,讲明它可以知足一般要求;而实时性更是一个相对概念,对于转台控制系统而言,只要你有足够快的硬件设备和不太差的控制/通讯程序,毫秒级的时间精度不难到达。这样,假如采用PMAC作控制器,我们可以选用Windows作为上位机的操纵系统;而PMAC运行一般并不需人为干预,结果适宜配置,上电后会按既定的方式执行程序。PMAC通过驱动程序+开发库的方式提供与OS的接口,Windows
9、下常见的开发工具都可以使用。4.PMAC相关的程序设计作为一款成熟的工业产品,PMAC不仅提供了快速稳定的硬件平台,也提供了一套完好的二次开发接口供高级用户使用。PMAC用于数控机床等的控制时,可以由用户编写程序在相应的坐标系内对各个轴的运动轨迹进展方便的控制,并方便地获得各个轴的速度、加速度、位置等信息。4.1PMAC的根本运行方式在PMAC和PC构成的系统中,相对于PMAC,PC机一侧一般称为主机Host。PMAC上的DSP芯片起到CPU的作用,通过DSPGate控制程序的运行。用于PC的PMAC的启动经过和普通的板卡没有太大的区别:主机上电后,PMAC默认通过PCI或者ISA总线取决于P
10、MAC的种类与主机通讯,随后PMAC开场自检经过这一点上很象一台计算机,假如PMAC自检没有问题,那么从板上自带的EPROM内读取变量初始设置等配置信息;假如有活动的PLC程序且PLC程序可以运行,那么PLC程序也会开场在后台运行。PMAC启动完成后,那么可以接收来自主机总线或者端口串行口的指令,进展进一步的动作。这里简单介绍一下在PMAC中运行的几种程序。PMAC通过DSP处理所有的运算经过,板卡上的芯片固化了所有负责PMAC启动和高级数学、逻辑运算的核心程序。另外主要用于控制轴运动方式的的程序称为“G-Code,一般由用户根据需要自行编写,可以以编译或者非编译的方式运行,比方控制数控机床的
11、程序中大局部是此类代码,最多可以有256个。最后一类PLC程序最多32个那么是循环运行于后台的。只要被设置为允许运行,PLC程序会一直运行,直到PMAC本身停顿。PMAC的程序运行也有类似计算机的优先级别分级。核心程序负责协调其它程序的运行,优先级最高;然后是PLC0,接下来是控制运动的G-Gode,最后是PLC1-PLC31,他们在运动程序的间歇运行。同时PMAC也提供硬件中断功能中断级数取决于PMC的级连使用情况,允许主机以中断方式和PMAC通讯。4.2PMAC的编程方式PMAC提供了强大的功能用于轴类运动的控制。一方面,普通用户可以通过编写并运行G-Code的方式来控制特定设备例如数控车
12、床的运动经过;另一方面,PMAC也允许高级用户以命令的方式直接对PMAC的运行经过进展控制。对于前者,PMAC提供了一系列的配置工具和IDE,方便用户进展G-Code的编写、调试、编译和上载至PMAC;对于后者,除了必须的配置工具以外,PMAC也提供了相应的开发包用于高级用户的二次开发。PMAC应用于转台的控制系统时并不需运行G-Code,因此以下着重解释PMAC开发包的编程方式。当需要与PMAC直接通讯时,需要用到DeltaTau提供的PCOMM库。针对微软的Windows,可以使用PCOMM32库来与PMAC通讯。PCOMM32提供了支持ANSI/UNICODE的几组函数分别用于初始化/停
13、顿/配置、字符方式通讯、上/下载、双端口RAMPMAC板载操纵、伪中断等,详细可查看PCOMMM32的参考手册。结合转台的详细情况,所要作的主要是配置PMAC的运行参数和读取轴运动状态。为了保证较高的存取速度,可以使用双端口RAM作为通讯中介。当双端口RAM被配置成实时数据缓冲工作方式时,可以直接从双端口RAM读取各个轴的运动状态,而PMAC本身负责在大约每400微秒的时间间隔内对这些信息进展刷新。用户编写的应用程序只需要读取对应的双端口RAM的地址上的数据即可。而且,PCOMM32提供了一组函数专门负责上述功能的实现,使用户不必和硬编码的双端口RAM地址打交道,进步了开发效率。以下的代码片断
14、是利用双端口RAM从PMAC获得运动信息的例子:/针对轴的操纵doubleaDouble=DPRPosition1,1;/轴的当前位置/othercodeshandlethisaDouble=DPRGetCommandedPos1,1;/轴的给定位置/othercodeshandlethisaDouble=DPRFollowError1,1;/轴的随动误差/othercodeshandlethisaDouble=DPRGetVel1,1;/轴的速度/domore假如双端口RAM默认功能提供的运动状态信息不可以知足用户要求,或用户只需要其中一局部信息而双端口RAM又有足够的存储空间,也可以采用以
15、下方式。前文提到PMAC启动后可以以较高的优先级别循环运行PLC0程序,且其运行的时间间隔也可以设置,默认也是大约400微秒。于是可以通过编写PLC0程序的方式,向双端口RAM中刷新所需的数据,然后再由用户程序读出处理。这样也可以在保证实时性的前提下知足用户对数据的特殊需要,且代码量不大。以下的代码片断是使用PLC0更新双端口RAM从PMAC获得运动信息的例子:/firstincommandlinesetupM-variablem111-D$28;#1轴当前位置m112-DP$D000;firstmemoryarea;.othersettins/PLC0openplc0clearm112=m1
16、11/i10832;在plc0内刷新,i10832是作单位转换;.domoreclose/wakeupplc0i5=2enableplc0/userapp/.floatlamer=DPRGetFloatDEVICE0_ID,0;/0isoffsetfromDP$D000/.handlethelamer4.3PMAC应用程序的一般构造综合前面的阐述,PMAC的应用程序一般分为三个局部。1.PMAC的设置。一般情况下,尽管PMAC使用出厂时的默认配置即可运行起来,在投入正式使用前一般都会根据详细需要对默认配置进展改变,包括硬件设置如跳线、软件设置如控制电机运行的I变量等、变量分配和报警设置,详细可
17、以参考PMAC的软件手册和用户手册。另外还需要连接用的电缆等。2.PMAC运动程序的编写。作为控制器,在配置好系统变量的前提下,PMAC通过运动程序、PLC程序等对详细对象施加控制信号。同时,这些程序还要负责向上位机报告工作状态。一般来讲,PMAC一侧的程序以简单语句为主,且最好不要有太复杂的逻辑,以保证运行效率。3.主机上位机PC一侧程序的编写。主机一侧的程序除负责向PMAC传送仿真机的指令外,还需要获得转台的实时运动状态和报警情况,一般还需要绘制波形和记录数据备查。当上位机程序在WIN32下实现时,应尽可能利用线程来处理各种操纵,以保证实时性。将PMAC作为转台的控制器在理论和实际上都是可行的,笔者已经在实际系统上实现。这样作使系统设计和应用程序的设计大大简化,设计者只需要较少的代码就可以到达目的。另外,当整个系统投入使用并进入维护阶段,采用PMAC这样的标准部件也减少了软/硬件维护的困难。作为飞行模拟转台设计实现的一个新思路,这一方法值得尝试。1刘藻珍,魏华梁.系统仿真M.北京:北京理工大学出版社,19982DeltatauDataSystemsInc.,PMACManual.19973CharlesPetzold,ProgrammingWindows.MicrosoftPress,1998
限制150内