• 738.00 KB
  • 2022-04-22 13:42:02 发布

专用高速运动控制网络毕业论文.doc

  • 45页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'南京工程学院康尼学院本科毕业设计(论文)专用高速运动控制网络毕业论文目录第一章绪论11.1引言11.2运动控制网络的发展11.3运动控制网络的研究现状31.4本文的结构7第二章网络整体结构92.1需求分析92.2系统整体结构92.3网络拓补结构102.4本课题采用的拓补结构122.5模块功能分析122.6主节点模块设计13第三章从节点逻辑结构与功能143.1从节点芯片的逻辑结构143.2读取控制算法153.3功能分析153.4运动控制芯片开发16第四章直线插补算法VHDL实现174.1逐点比较法插补的基本原理174.2直线插补过程174.3直线插补逻辑状态194.4直线插补方向进给214.5直线插补VHDL仿真214.5四象限直线插补23第五章圆弧插补算法VHDL实现255.1圆弧插补过程255.2圆弧插补逻辑状态275.3圆弧插补方向进给285.4圆弧插补VHDL仿真295.5四象限圆弧插补30 南京工程学院康尼学院本科毕业设计(论文)第六章总结与展望326.1工作总结326.2问题讨论32致谢33参考文献34附录A:程序清单35 南京工程学院康尼学院本科毕业设计(论文)第一章绪论1.1引言网络技术是15世纪影响人类生活型态,甚至改变公司经营决策最重要的一项技术。随着信息技术的发展,自动化领域也经历了一场由组合式模拟仪表控制系统、集中式数字控制系统(DDC)、集散控制系统(DCS)、现场总线控制系统(FCS)到现在刚刚兴起的工业以太网控制的深层次变革。现在,工业自动化领域的现状是,DCS仍然在许多行业有着广泛的应用;FCS已逐渐被大家认可,并以每年30%的增长率快速成长;而工业以太网控制系统则刚刚兴起,正处于试用阶段,并有望解决运动控制系统对网络实时性和确定性的要求,实现工业网络控制标准的最终统一。所谓运动控制网络是指建构在控制器与多轴电机驱动器之间,能够实时、同步地传送运动命令和接收运动状态的网络系统,目前已成为伺服驱动器发展的趋势。本文对目前市场上比较流行的各种串行运动控制网络做了深入探讨,对国内运动控制网络技术的发展有所帮助。1.2运动控制网络的发展由于组合式模拟仪表控制系统和集中式数字控制系统已基本被淘汰,因此本文主要对DCS,FCS及工业以太网的发展情况加以叙述。1)集散控制系统(DCS)集散控制系统又称为分布式控制系统,它是一种应用于过程控制的工程化分布式计算机控制系统,它的特点在于可实现硬件积木化、软件模块化、松耦合多处理机系统、控制系统用组态方法生成、可应用通信网络和可靠性等,解决了原有计算机集中控制中导致的危险集中和常规模拟仪表控制功能单一的局限性,克服了计算机集中控制双工系统成本高的问题。DCS控制系统是计算机、通信、CRT显示和控制技术发展的产物。它采用危险分散、控制分散、操作和管理集中的基本设计思想,多层次、合作自治的结构形式,适应现代的生产和管理要求。DCS在功能与性能上较模拟仪表及集中式数字控制系统有了很大进步,可在此基础上实现设备级、车间级的优化控制。近年来,为了使DCS更加适用于工业生产现场,新一代DCS还进一步做了一些改进,比如系统开放化、超大型化和微型化、通信介质多样化、DCS与PLC相互融合以及软件的不断丰富等等。但是,在DCS43 南京工程学院康尼学院本科毕业设计(论文)系统形成的过程中,由于受计算机系统早期存在的系统封闭这一缺陷的影响,各厂家的产品自成系统,不同厂家的设备不能互联在一起,难以实现互换与互操作,要组成更大范围信息共享的网络系统存在很多困难。2)现场总线控制系统(FCS)现场总线是20世纪80年代中期在国际上发展起来的。它作为过程自动化、制造自动化、智能楼宇和交通等领域现场智能设备之间的互联通信网络,沟通了生产现场设备之间及其与更高控制管理网络之间的联系,为彻底打破自动化系统的信息孤岛创造了条件。现场总线控制系统为网络集成式全分布控制系统,其特点是控制功能由过去的控制室设备变为智能现场仪表承担。由于控制功能的分散化及全数字化,就有可能组成大型的开放式控制系统,进而实现从最高决策层到最低设备层的综合管理和控制。目前国际上有40种现场总线,其中最有影响力的有FF,Profibus,HART,CAN,LonWorks等。然而,现场总线技术的发展还存在许多问题,最主要的是没有一个统一的国际标准(目前的现场总线国际标准IEC61158,包含了8种不同类型的现场总线,因此可以说没有标准),并且由于支持各总线的集团间利益冲突等原因,近期产生统一的现场总线标准是不可能的。由于现场总线均有自己的协议,要构成一个控制系统,必须采用相应的开发工具、平台、软件包,这需要较昂贵的代价,且实现不同总线产品间的互连非常困难。这使得FCS的开放性、分散性和可互操作性等特点难以体现。这时,以太网受到人们的重视。3)工业以太网在工业控制现场,能否将在商业领域应用已相当成熟的以太网用于网络控制系统的底层,完全替代现场总线,目前还处于研究和讨论阶段。普通以太网向下延伸到工业现场,面临一系列的技术难题,如确定性、实时性、安全性、抗干扰能力,还有现场设备的供电问题、网线物理性能的提高等。总之以太网有其优势,也有其技术上的缺陷,它的研究方向应在尽可能保留原有协议的基础上,加入实时性控制措施。工业以太网是当前工业控制领域新的研究热点,尽管它现在还有许多不成熟的地方,但它巨大的应用前景吸引着众多研究机构和公司进行研究探索。所谓工业以太网,一般来讲是指技术上与商用以太网兼容,但在产品设计时又能在实时性、材质的选用、产品的强度以及适用性等方面满足工业现场的需要。工业以太网并不是要将所有的工业网络全部改成以太网,而是要将原来工业网络应用层定义的数据信息,封包在以太网的网络层与传输层内。也就是说,工业以太网的重点在于TCP/UDP/IP,而不在以太网的物理层。以太网技术采用CSMA/CD(载波侦听多路访问/43 南京工程学院康尼学院本科毕业设计(论文)碰撞检测)机制,是一种非确定性的通信调度方式。网络每个节点要通过竞争来取得信息的发送权,当网络负荷大时,网络传输不能满足工业控制的实时要求。因此,在本质上以太网并不是一个实时性网络,它只能保证数据可以到达,但不能保证到达的时间。另外,以太网应用于工业环境还存在异质平台整合及是否满足工业环境等问题。针对以太网应用于工业环境所面临的一些问题,许多现场总线组织和国际知名公司采用了多种方法来对以太网进行改进,以使其满足工业现场应用的要求。如HSE,Ethernet/IP和Modbus/TCP采用以太网与TCP/IP相结合的方法;Power-link和Profinet采用基于时间槽的分时调度方式等。这些方法都有效地解决了商用以太网应用于工业现场所面临的一些技术难题,并已有了一定的市场应用。但以太网能否在将来完全替代现场总线,实现网络控制系统的大统一,目前还难下定论。1.3运动控制网络的研究现状随着网络通信技术的日新月异,特别是以太网技术的发展与成功应用,运用串行通讯的方式来解决传统运动控制架构成为必然趋势。然而,串行传输系统的困难在于没有共同遵守的通讯协议标准,以运动控制系统来说,不论在硬件还是通讯协议上,目前都没有统一的标准可依。市场上比较常见的串行运动控制网络的通信协议见表1-1表1-1常见的运动控制网络通信协议比较表通信协议SSCNETⅡSERCOS-ⅡIEEE-1394SynqNetPowerlinkProfinet传输媒介RS-485PlasticFiberFireWireEthernetEthernetEthernet制造商MitsubishiIndramatSanyoAgileSystemMEIB&RSiemens带宽/Mbps5.616800100100100通信周期/μs800250150-250<252001000最大传输距离/m30404.5100100100传输模式Half-DuplexHalf-DuplexHalf-DuplexHalf-DuplexHalf-DuplexHalf-Duplex43 南京工程学院康尼学院本科毕业设计(论文)最大误差/μs11<1<111最大节点数625463254254150从表中可以看出,传输媒介主要有:RS-485、光纤(optical)、IEEE-1394(FireWire)和以太网(Ethernet)4种。其中,SERCOS是仅有的国际标准(IEC61491),但美、日等国的伺服大厂仍推出自己的通信协议,使得串行运动控制网络的通信协议呈现出百家争鸣的局面。本文对常见的串行运动控制网络介绍如下:1)SSCNETSSCNET(servosystemcontrolnetwork)是由日本三菱电机公司开发出来的运动控制网络技术,可实现精密定位控制及多轴同步运动控制,其特点如下:①传送32位的绝对位置命令,可满足微精密定位需求;②实现多轴同步技术,可消除集中式控制时因各轴命令传送的时间误差而造成的命令误差;③实时切换驱动器模式,能传送32位的速度命令或16位的转矩命令,满足不同控制需求;④实时修改各轴驱动器伺服参数,作为控制台操作或高级运动控制之用;⑤能接收32位的位置命令,16位的速度及转矩命令,可监控操作台状态或作反馈控制之用;⑥实时取得驱动器异常或警告信息,可用于控制台的异常诊断;⑦能建构出32位精度的绝对位置系统,当系统紧急停机又重开后,不必再从原点开始动作。SSCNET是为了解决传统电机控制应用中配线过多、精度及抗干扰等问题所开发的新技术,这项技术架构在三菱电机伺服技术上,将传统的脉冲波或电压指令型的输入界面改为串行式传输界面,使用者不必再为每一轴的配线而困扰,每个伺服驱动器只需一条传输线与其他周边设备连接,即可达到快速安装、易于除错的功效。日本三菱电机自20世纪90年代初期开始发展SSCNET技术,目前主流技术为第二代的SSCNETⅡ。SSCNET传输媒介是类似RS485技术,传输距离最长可达30m,传输速度为5.625Mbps,控制用的通讯周期为0.888ms。控制方式为主从式架构,一块主控IC可控制6个Slave的伺服驱动器,主控IC间可以实现同步,使得被控伺服轴得以同步。此外,三菱电机已于2004年10月推出新版本SSCNETⅢ,传输媒介改为采用光纤,传输速度为50Mbps,通信周期可达0.44ms(8轴),最大传输距离可高达800m(16轴)。通过更小的通信周期,将进一步提高位置控制精度。2)SERCOSSERCOS(SerialReal-timeCommunicationSystem)串行运动控制网络由德国率先发起,并于1995年获得通过正式成为IEC61491国际标准。SERCOS43 南京工程学院康尼学院本科毕业设计(论文)主要应用在分散式多轴运动控制上,并明确定义了伺服电机位置、速度及转矩等控制命令的通信协议,提供使用者一个实时、抗干扰力强、高解析度、可完全以软件方式规划的串行传输网路。在使用塑料光纤为传输介质时,每节点间的传输距离为40m;若使用玻璃光纤,传输距离可长达200m,整个环状网路的长度可达(1-5)×m。每个环状网络理论上最多可连接256个辅节点,而实际可连接的节点数取决于传输周期、数据长度及传输速率。SERCOS是目前国际上惟一成为IEC国际标准的运动控制专用网络,特点如下:①SERCOS是全数字化网路;②SERCOS是开放式架构;③SERCOS具有良好的扩充性;④SERCOS具有即插即用(Plug&Piay)的特性;⑤SERCOS具有跨厂商相容的特性。目前市场上使用的产品规格为SERCOS-Ⅱ,最近已推出SERCOS-Ⅲ的demo版,其网络拓扑架构采用双环形(doublering)方式。当有任何断点发生时,通信仍然能正常运作。SERCOS-Ⅲ同时整合了IP通信协议,可通过以太网实时或非实时地传送数据。通过以太网,SERCOS-Ⅲ可支持Slave-to-Slave通信,允许Slave端直接从另一个Slave端读取资料,而不必通过Master端转接。3)IEEE1394IEEE1394接口标准始于1986年,是由IEEE1394专业委员会主持制订的。从1988年开始,苹果(Apple)公司的MichaelTeener着手研究IEEE1394的基本技术,1992年该公司的提案被采纳为IEEE1394标准规范,1994年9月正式成立IEEE1394TradeAssociation,以普及IEEE1394为标准的家庭网络规格,并推出用于保证高质量和兼容性的规范。IEEE1394具有高速通信及同步传输能力,可以实现运动控制系统的新思维-软件运动(Soft-motion)。这样便将原本属于运动控制卡负责的工作,如运动轨迹规划及伺服控制,分散到PC及各个轴的智能型驱动器上。当然,这有赖于驱动器之间的高速通讯能力。软件运动的出现,将使运动控制卡扮演的角色逐渐减弱。作为一种数据传输的开放式技术标准,IEEE1394被应用在众多领域。当然,目前该技术使用最广的还是数字成像领域,支持的产品包括数字相机或摄像机等。IEEE1394具有以下特点:①廉价;②占用空间小;③速度快;④开放式标准;⑤支持热插拔;⑥可扩展的数据传输速率;⑦拓扑结构灵活多样;⑧完全数字兼容;⑨可建立对等网络;⑩支持同步和异步两种数据传输模式。目前,致力于推广IEEE1394网络技术发展的主要是欧洲的1394Automation和1394TradeAssociation两个组织,这两个组织已经合并。此次合并的目的是“形成一个世界范围的组织,从而更好地推广这个惟一能将运动控制、视觉和I/O系统的信号通过一条线缆进行传输的标准”。合并后,1394Automation将作为1394Trade43 南京工程学院康尼学院本科毕业设计(论文)Association内部的一个技术工作组继续开发和推广IEEE1394标准。1394Automation的原有成员将成为1394TradeAssociation的当然会员。1394TradeAssociation在下一阶段的工作重点是运动控制,相信通过双方资源的整合和共同努力,IEEE1394标准将很快在运动控制领域取得巨大进展。4)SynqnetSynqnet是MotionEngineeringInc.(MEI)公司设计的一个架构在100Base-T物理层的运动控制网路,它采用一种实时、同步数字网络专利技术,代替(运动控制器与伺服驱动装置之间的)标准±10v模拟量接口,从而可在各种复杂应用中显示出非凡的运动性能。该技术特别适合半导体、电子组合装置、工业机器人、FPD、包装以及医疗等OEM设备市场中的高性能运动控制应用。Synqnet是以以太网为基础的运动网络,所使用的100Based-T物理层与一般商用以太网相同,是完全根据IEEE802.3的国际标准定义的,它可以同步连接32个轴。其传输方式也由以太网的半双工改为全双工,网络拓扑也由对等网络改为环形。现行以太网通信协议的设计适用于数据量大、传输频率低、甚至是远距离的传输模式,这一点与实时运动控制网络所需的数据量不大、传输频率高、短距离传输有所不同。即一个符合IEEE802.3标准的Ethernet数据帧,由28个控制位和至少46个数据位组成。就一般工业运动应用而言,这种协议是特大型协议。通常,一个节点的数据需要量是很小的(小于46位)。为了降低周期时间和等待时间,Synqnet已经在第2层(数据链路层)对数据帧进行了优化。一个数据帧由至少24位组成,而不是至少74位。这是Synqnet胜过以太网的一个主要优点,可提供更快速、更具预测性的性能。Synqnet网络的设计消除了CSMA/CD机制固有的不确定性问题。它采用一种同步方法,以一种规则的预定时间方式,将数据传送到每一台设备中。使用独立的接收与发送导线对(全双工),可避免数据冲突,并可达到2×100Mbit的确定性数据传输速率。其结果是周期时间最短为25μs(4根轴)。此外,Synqnet具有一种周期时间最短可达10μs的可组态包结构。Synqnet采用一种以双冗余数据通道为特色的独特容错设计,从而可实现机器运行的高可靠性。通过一根次级数据电缆,以新路线发送数据,可自动对一次数据电缆中的间歇断路或短路进行实时检测、隔离和维修。这一特性对于提高任何运动应用的安全性和可靠性来说都是十分关键的,可实现机器可用性的最大化,并降低昂贵的崩溃风险。Synqnet运动控制网络还具有以下特点:①适合控制复杂机器的中央控制体系结构;②更新至&JSTU的高转矩带宽,最多可支持$K根协同轴;③针对噪声抗扰度和电缆短路的电气隔离;④适合机器可用性最大化的双数据通道容错操作;⑤真正的即插即用型多卖方互操作性;⑥43 南京工程学院康尼学院本科毕业设计(论文)电机驱动性能的远程故障诊断;⑦远程驱动组态及设置;⑧驱动固件功能的远程更新;⑨自动网络组态和完整性检验;⑩每个节点之间电缆布线长度超过100m。5)ProfinetProfinet是Profibus国际组织推出的基于工业以太网的自动化解决方案。该技术为当前用户提供了一套完整、高性能、可伸缩的升级至工业以太网平台的解决方案。它能为Profibus及其他现场总线网络系统提供以太网移植服务。在Profinet标准中,根据不同的应用场合,Profinet支持以下三种通信方式:①使用TCP/IP的标准通信Profinet使用以太网和TCP/IP协议作为通信基础。TCP/IP是IT领域关于通信协议方面事实上的标准。但TCP/IP只提供了基础,用于以太网设备通过传输通道在本地和分布式网络中进行数据交换。在较高层上则需要其他的规范和协议(亦称为应用层协议),而不是TCP或UDP。典型的应用层协议有:SNMP,DHCP和HTTP。②实时(RT)通信绝大多数的工厂自动化应用场合,对响应时间的要求最少在5-10ms。为了满足自动控制中的实时要求,在Profinet中规定了优化的实时通信(RT)通道,它基于以太网的Layer2(数据链路层)。这一解决方案极大地减少了通信栈上占用的时间,从而提高了自动化数据的刷新率等性能。③同步实时(RT)通信Profinet被设计成可用于高性能的同步运动控制应用。然而,对上述响应时间在5-10ms的实时通信不足以满足伺服运动控制场合的需求。伺服运动控制是指在100个节点下,响应时间低于1ms,同步传送和抖动小于1μs的情况。Profinet的同步实时IRT功能是在Layer2上由内嵌的同步实时交换ASIC芯片提供的。Prifinet在同步实时(IRT)通信方式下应用在同步运动控制场合。IRT的通信特点是,在一个周期内通过分隔时间域来传输实时和非实时数据。循环实时报文通过确定性通道(IRTchannel)来传递;而TCP/IP报文则通过标准通道(OPENchannel)来传递。就如同在高速公路上,预留左车道用于实时通信传递,并且禁止其它使用者(TCP/IP通信)切换到这个车道。这样一来即使右车道发生通信堵塞,也不会影响到左车道的实时通信传递。Profinet采用“以太网+TCP/IP”作为低层的通信模型,采用!"TCP/IP协议上应用层的,RPC/DCOM来完成节点之间的通信和网络寻址。它可以同时挂接传统Profibus系统和新型的智能现场设备。现有的Profibus网段可以通过一个代理设备连接到Profinet网络当中,使整套Profibus设备和协议能够原封不动地在Profinet中使用。1.4本文的结构本文以专用高速运动控制网络的研发工程项目作为应用背景,对轮廓插补技术进行了研究。全文共分为七章,各章的主要内容如下:第一章扼要地介绍了运动控制网络的概念、特点与相关研究背景;43 南京工程学院康尼学院本科毕业设计(论文)第二章研究了运动控制网络的整体结构;第三章重点对从节点逻辑设计进行了研究;第四章进行了直线插补算法;第五章进行了圆弧插补算法;第六章总结了全文的研究工作,给出了存在的问题和进一步研究的方向。43 南京工程学院康尼学院本科毕业设计(论文)第一章网络整体结构2.1需求分析 1)多轴运动控制。机器设备因自动化程度提高而使得单一机器上所需要的轴数增多, 一台设备上十几轴是常见的事情。在轴数变多后, 如何协调各轴动作就是一个重要的课题。     2)体积要小。由于厂房空间的限制, 机器的体积要求越小越好, 机器内控制器的体积也就被要求愈来愈小, 相对的走线空间也愈来愈小。     3)要更精确。随着半导体制程已经精密到100nm 一下, 在制程及检测相关设备所要求的运动精度也要更精确, 其它如LCD 设备, SMD 制程设备也有相同要求。     4)要更稳定。因为所有设备的投资经费庞大, 系统停机的成本就更显的突出, 因此所有机器设备制造商都必须追求系统的稳定性。同时也必须考虑在组件损坏要维修时, 必须能快速替换且不出差错。      综合以上几点的需求分析可以看到, 既要在一个控制器内进行多轴运动控制, 又要控制器的体积更小, 配线和维修要更容易, 这些条件看来是相冲突的。可以这样说, 现场总线技术便是应这些新机器设备的需求而产生的。基于VHDL插补芯片实现各象限的直线和圆弧插补,能够区分四象限直线的坐标并做不同的算法处理,对外输出X轴和Y轴的脉冲,结合时序,配合CLK进行插补。插补芯片不仅能区别四象限的直线还能处理四象限的圆弧插补问题,在处理圆弧问题是要区分逆圆弧插补和顺圆弧插补的问题。2.2系统整体结构系统整体包括:电源模块,USB模块,TFT液晶模块,键盘模块,SDRAM模块和FLASH模块等,如图2.1所示。43 南京工程学院康尼学院本科毕业设计(论文)图2.1系统整体结构图主控CPU是整个系统的核心,软件的运行平台都要靠它搭建,许多复杂的控制算法都靠它实现,这次的控制对象是工业级的,所以要选择一款高性能的微处理器才能达到设计要求。主(HOST)、从(SLAVE)节点模块是高速网络最重要的组成部分,它们起着构建网络的重要作用,所有的通讯协议逻辑,以及数据的交换都要在这里进行,主从节点的性能直接决定整个网络的性能。人机交互模块是整个系统的一个窗口,它将系统中每个节点的状态,节点的插补轨迹,当前执行的程序段显示在液晶界面内,清晰的反应出整个网络的工作情况,以便监督控制。根据上述的简化Synqnet运动控制网络结构,本项目研究中的运动控制芯片有两种:主控(host)芯片与运动控制(slave)芯片。主控芯片接收CPU送来的并行数据,根据网络介质的要求将其转换为四位数据,同时响应数据传送时钟TXC,在TXC的升沿将数据发送到简化Synqnet网络上,供运动控制芯片接收。运动控制芯片芯片接收来自主控芯片的四位数据,转化为16位数据后进行16为循环冗余码校验,如果数据出错,则通过自带的发送功能向主控芯片发出重发请求。反之,根据指令类型分别初始化运动参数,驱动圆弧或直线插补模块,送出指令脉冲给相应驱动器。2.3网络拓补结构43 南京工程学院康尼学院本科毕业设计(论文)每一种网络都要求有布线、网络设备、文件服务器、工作站、软件等,这些要素以多种不同的方式进行综合,便可以创建出与具体单位的需要和资源相适应的网络。有些网络的启动成本很低,但是维护和升级的成本很高;而另有一些网络虽然建立时耗资较大,但是维护方便、升级简单。区分网络类型可以依据网络的拓扑结构来区分。拓扑结构是指网络的物理布局及其逻辑特征。其中物理布局是指整个网络是如何布线的,通常称为电缆线路;网络的逻辑是指信号沿电缆从一点向另一点进行传输的方法。形象地说我们可以抛开网络中的具体设备,把工作站、服务器等网络单元抽象成为“点”,把网络中的电缆等通信媒体抽象为“线”,从而抽象出了网络系统的几何结构,即为逻辑结构。常见的网络拖布结构有:星型结构,总线结构,环形结构,树形结构和网型结构。1)星型结构星型结构中有一个中央结点(集线器或交换机),而其他客户机都用单独的线路与这个节点连接,向四周展开,形成一个心状结构。星型结构的特点有:稳定性高,便于管理和维护,易扩充、易升级;单个节点的故障只会影响与这个节点相连的支路,不会影响整个网络;对中心结点的要求比较高,中心结点一旦出现故障,整个网络瘫痪。2)总线型结构总线型结构是指网络上的所有微机包括服务器都连在一条主通信线路上。首先客户机向服务器发出请求,服务器响应后,将客户机所需要的信息直接发送到总线上,该信息会通过总线上的每一个节点,客户机收到信息时,先分析该信息的目标地址是否与本机相同,若相同,则接收该信息,否则不接疏。总线型结构特点:组网比较简单,易布线,扩展网络的结点也比较简单。出现传输冲突的可能性是很大的,必须用专门的通信协议来保证传输的正常进行。一个结点出问题,将影响整个网络,总线出现故障整个网络将会瘫痪。3)环形结构环型结构是各个网络结点连接在一条首尾相接的闭合环型通信线路中,信号传递按一定的先后顺序传递,这种链路是单向的,所有链路都只能按一个方向传输数据,这样数据就会在这个环上进行顺时针或逆时针循环。环型结构有两种类型,即单环结构和双环结构。例如:单环结构的网络有令牌环(TokenRing)。双环结构的网络有光纤分布式数据接口(FDDI)。环型结构特点:连接费用较低,适全中小型网络连接;各工作站间无主从关系,结构简单,每台微机都相当于一个中继器;拓展困难,可靠性差,不易管理。43 南京工程学院康尼学院本科毕业设计(论文)4)树形结构树型结构是总线型和星型结构演变来的,具体的说是星型结构的扩展和延伸。它有两种类型,一种是由总线型拓扑结构派生出来的,它由多条总线连接而成。另一种是星型结构的扩展,各结点按一定的层次连接起来,形状像一棵倒置的树,因此称为树型结构。在树型结构的顶端有一个根结点,它带有多个分支,每个分支还可以再分出多个子分支。树型结构的特点:易于扩展,可靠性高;根结点的依赖性大,根结点出现故障,将导致全网不能工作。5)网型结构网状结构是一种不规则的网络结构,这种结构中的每一个结点和另一个之间至少有两条链路。大型互联网一般都采用这种结构。例如:国际互联网Internet的主干网都采用网状结构。网状结构的特点:每个结点都有冗余链路,可以选择最佳路径,故可靠性高;但路经选择比较复杂,结构复杂,不易管理和维护;线路成本高,适用于大型广域网。2.4本课题采用的拓补结构综上所述,每一种拓扑结构都有自己的优缺点,而高速网络采用的拓扑结构必须满足几个要求:1)节点数量要大,高速运动控制网络要求达到256个节点;2)网络延时小,高速运动控制网络必须保证较高的实时性;3)全双工模式,高速运动控制网络的设计要求全双工方式;4)高可靠性,高速运动控制网络的设计要求通讯的可靠,要求有容错能力;5)成本要低;网络主从节点采用双通道环形连接,一旦一个通道发生通讯中断,立刻启用另一网络通道,保证数据能及时的到达目标节点。这样高速运动控制网络就具有了“自愈”容错能力,具体表现为:在线路中的一段发生故障的事件中,高速运动控制网络硬件在两个伺服周期中重新规定数据线路,这时网络仍然保持连接状态。2.5模块功能分析43 南京工程学院康尼学院本科毕业设计(论文)运动控制芯片由数据接收、转换、校验、FIFO及状态控制、指令读取控制、插补模块与输出控制等构成。芯片接收来自主控芯片的四位数据,转化为16位数据后进行16为循环冗余码校验,数据出错,则通过自带的发送功能向主控芯片发出重发请求。反之,存入FIFO供读取控制模块读取。读取控制模块得到控制指令,根据指令类型分别初始化运动参数,驱动圆弧或直线插补模块,送出指令脉冲给相应驱动器。2.6主节点模块设计数据传输中,主控芯片计算数据的16位循环冗余码,一同发至接收端,根据数控系统的运动控制指令结构,数据封包的数据包括圆弧轨迹运动指令与直线轨迹运动指令,对于圆弧轨迹,数据包括轨迹标志0010H、圆弧起点坐标与终点坐标三部分构成,均采用16位数表示。主控芯片的功能结构类似于MII接口,根据功能可以划分为发送模块、接收模块、校验模块和缓冲区模块,通过VHDL软件接口映射代码连接各个模块,其基本结构如图2.2。图2.2主节点芯片的逻辑设计43 南京工程学院康尼学院本科毕业设计(论文)第一章从节点逻辑结构与功能3.1从节点芯片的逻辑结构数据接收PHY数据转换数据校验FIFOFIFO状态读取控制圆弧插补初始化直线插补输出控制图3.1从节点芯片的逻辑结构运动控制芯片的逻辑结构运动控制芯片如图3.1由数据接收、转换、校验、FIFO及状态控制、指令读取控制、插补模块与输出控制等构成。芯片接收来自主控芯片的四位数据,转化为16位数据后进行16为循环冗余码校验,数据出错,则通过自带的发送功能向主控芯片发出重发请求。反之,存入FIFO供读取控制模块读取。读取控制模块得到控制指令,根据指令类型分别初始化运动参数,驱动圆弧或直线插补模块,送出指令脉冲给相应驱动器。 数据接收模块接收数据发送端主控芯片发送的4位数据,经过4-16位数据转换得到有效数据及其校验码,数据无误,送入接收队列FIFO,供运动控制模块读取。与前文所述的Host芯片发送过程相对应,运动控制芯片的数据接收过程也分为两个阶段:接收设置参数与接收数据。43 南京工程学院康尼学院本科毕业设计(论文)如果发送队列FIFO不空,模块根据FIFO的读写指针计算队列中的数据数量(以字为单位),备份FIFO的读写指针,发起始字及其校验码,请求发送,接收端无错误产生,计算数据长度反码作为发送数据的低16位,同时传输数据长度作为发送数据的高16位发至接收端。FIFO的参数存储格式为运动类型、端点坐标。运动类型分两类:空间直线与圆弧。其中,直线的运动类型标识为0001H,圆弧为0002H。直线运动后根XYZ三个方向上的16位位移值芯片接收来自主控芯片的四位数据,转化为16位数据后进行16为循环冗余码校验,数据出错,则通过自带的发送功能向主控芯片发出重发请求。反之,存入FIFO供读取控制模块读取。读取控制模块得到控制指令,根据指令类型分别初始化运动参数,驱动圆弧或直线插补模块,送出指令脉冲给相应驱动器。3.2读取控制算法FIFO的参数存储格式为运动类型、端点坐标。运动类型分两类:空间直线与圆弧。其中,直线的运动类型标识为0001H,圆弧为0002H。直线运动后根XYZ三个方向上的16位位移值。圆弧运动则跟圆弧的起、终点坐标,也用16位数表示,读取控制的算法流程如图3.2所示。读取控制响应运动控制模块的读信号RD,在RD上升沿上送出数据,模块根据运动类型继续送出16位端点坐标。图3.2读取控制的算法流程3.3功能分析1)读取控制芯片接收来自主控芯片的四位数据,转化为16位数据后进行16为循环冗余码校验,数据出错,则通过自带的发送功能向主控芯片发出重发请求。反之,存入FIFO供读取控制模块读取。2)插补数据处理43 南京工程学院康尼学院本科毕业设计(论文)读取控制模块得到控制指令,根据指令类型分别初始化运动参数,驱动圆弧或直线插补模块,送出指令脉冲给相应驱动器。其中,直线的运动类型标识为0001H,圆弧为0010H。直线运动后根XYZ三个方向上的16位位移值。圆弧运动则跟圆弧的起、终点坐标,也用16位数表示3)插补脉冲输出读取控制响应运动控制模块的读信号RD,在RD上升沿上送出数据,模块根据运动类型继续送出16位端点坐标。3.4运动控制芯片开发经由读取控制,开始编译。编译完后考试仿真,软件自动波形分析。最后下载芯片,完成系统调试与测试。流程图如图3.3所示:电路设计与输入编译仿真波形分析下载芯片系统调试与测试读取控制图3.3系统调试与测试流程图43 南京工程学院康尼学院本科毕业设计(论文)第一章直线插补算法VHDL实现4.1逐点比较法插补的基本原理逐点比较法的基本原理是,在刀具按要求轨迹运动加工零件轮廓的过程中,不断比较刀具与被加工零件轮廓之间的相对位置,并根据比较结果决定下一步的进给方向,使刀具沿着坐标轴向减小偏差的方向进给,且只有一个方向的进给。也就是说,逐点比较法每一步均要比较加工点瞬间坐标与规定零件轮廓之间的距离,依次决定下一步的走向,如果加工点走到轮廓外面去了,则下一步要朝着轮廓内部走;如果加工点处在轮廓的内部,则下一步要向轮廓外面走,以缩小偏差,周而复始,直至全部结束,从而获得一个非常接近于数控加工程序规定轮廓的刀具中心轨迹。逐点比较法既可实现直线插补,也可实现圆弧插补。其特点是运算简单直观,插补过程的最大误差不超过一个脉冲当量,输出脉冲均匀,而且输出脉冲速度变化小,调节方便。因此,在两坐标数控机床中应用较为普遍。一般来讲,逐点比较法插补过程每一步都要经过如图5—1四个工作节拍:(1)偏差判别判别刀具当前位置相对于给定轮廓的偏差情况,即通过偏差值符号确定加工点处在理想轮廓的哪一侧,并以此决定刀具进给方向。(2)坐标进给根据偏差判别结果,控制相应坐标轴进给一步,使加工点向理想轮廓靠拢,从而减小其间的偏差。(3)偏差计算刀具进给一步后,针对新的加工点计算出能反映其偏离理想轮廓的新偏差,为下一步偏差判别提供依据。(4)终点判别每进给一步后都要判别刀具是否到达被加工零件轮廓的终点,若到达了则结束插补,否则继续重复上述四个节拍的工作,直至终点为止。4.2直线插补过程以一象限直线插补为例导出其偏差计算公式。如图4.1所示,假定直线的起点为坐标原点,终点A的坐标为A()P()为加工点,若P点正好处在直线上,那么下式成立:若任意点P()在直线的上方(严格地说,在直线与y轴所成夹角区域内),那么有下述关系成立由此可以取偏差判别函数为:43 南京工程学院康尼学院本科毕业设计(论文)图4.1一象限直线插补图由的数值(称为“偏差”)就可以判别出P点与直线的相对位置。即:当=0时,点P()正好落在直线上;当>0时,点P()落在直线的上方;当<0时,点P()落在直线的下方。从图4.1看出,对于起点在原点,终点为A()的第Ⅰ象限直线OA来说,当点P在直线上方(即>0)时,应该向+x方向发一个脉冲,使机床刀具向+x方向前进一步,以接近该直线;当点P在直线下方(即<0)时,应该向+y方向发一个脉冲,使机床刀具向+y方向前进一步,趋向该直线;当点P正好在直线上(即=0)时,既可向+x方向发一脉冲,也可向+y方向发一脉冲。因此通常将>0和=0归于一类,即≥0。这样从坐标原点开始,走一步,算一次,判别,再趋向直线,逐点接近直线,步步前进。当两个方向所走的步数和终点坐标A()值相等时,发出终点到达信号,停止插补。但是按照上述法则进行的运算时,要作乘法和减法运算,这对于计算过程以及具体电路实现起来都不很方便。对于计算机而言,这样会影响速度;对于专用控制机而言,会增加硬件设备。因此应简化运算,通常采用的是迭代法,或称递推法,即每走一步后新加工点的加工偏差值用前一点的加工偏差递推出来。下面推导该递推式:加工点的坐标为P()时的偏差为:若≥0时,则向x轴发出一进给脉冲,刀具从这点即()点向+x方向前进一达新加工点(),,,因此新加工点P()的偏差值为,所以,。同理,当<0时,刀具应向+y方向进给一步,新的动点坐标值为43 南京工程学院康尼学院本科毕业设计(论文),对应的新偏差函数为:所以,综上所述,第象限的偏差函数与进给方向有以下关系:当≥0时,刀具向+x方向进给,新的偏差函数值为当<0时,刀具向+y方向进给,新的偏差函数值为逐点比较法第Ι象限直线插补计算流程图如图4.2所示:图4.2直线插补计算流程图4.3直线插补逻辑状态脉冲输出真值表4-1CLKfCPXCPYclk"eventandclk="0"f>=0有脉冲无脉冲clk"eventandclk="0"f<0无脉冲有脉冲43 南京工程学院康尼学院本科毕业设计(论文)脉冲输出状态表示如4.3图所示:触发clk将clk分频赋值给pul触发pul进程开始否进行X轴方向进给是进行Y轴方向进给结束是判断NUM是否等于零判断偏差函数F是否大于等于零否触发P1进程,判断象限图4.3直线插补状态图在VHDL程序中,p1:process(g,pul)为进程语句,clk为敏感变信号,敏感信号有事件发生时,进程中的顺序语句都会按照他们出现的顺序执行。程序中我设置了clk时钟输入口,还设置了变量pul,clk经分频处理后赋值给pul。pul"eventandpul="1"表pul上升沿,"EVENT是信号预定义属性,表示有事件发生,pul"eventandpul="1"为pul发生变化且pul=1,从而实现pul的上升沿,pul为上升沿有效。43 南京工程学院康尼学院本科毕业设计(论文)这里定义变量xcp,ycp分别表示X轴和Y轴的方向进给,分别对应cpx,cpy。其中cpx代表X轴方向进给,cpy代表Y轴方向进给。F是整型数,代表偏差函数寄存器,用来存放偏差值,当F>0时,+X方向进给一个脉冲,当F<0时,+Y方向进给一个方向。r、s代表的是动态的X,Y坐标,也是整型数,主要用来存放插补时插补点的坐标,动点坐标是变化的,要不断修正坐标值并存入寄存器中。p2进程程序是将clk分频的程序,用于消除毛刺。以上程序插补算法是根据逐点比较法的原理来设计,直线插补分为四个象限通过观察,逐点比较法四象限的插补之间具有共同点。其它三个象限都可以和第一象限联系起来,所以在设计四象限直线是可以参照第一象限直线的插补算法。程序增加了一个中间常量,用来存放中间CPU送入的直线终点坐标值,再通过判别CPU送入的坐标的象限,来修正坐标,把它对应到第一象限中进行插补运算,再输出脉冲。4.4直线插补方向进给表4-2四象限直线插补偏差计算与进给方向线型F≥0F<0偏差计算坐标进给偏差计算坐标进给L1F=F-|Ye|+ΔXF=F+|Xe|+ΔYL2-ΔX+ΔYL3-ΔX-ΔYL4+ΔX-ΔY4.5直线插补VHDL仿真图4.4第一象限直线插补仿真图43 南京工程学院康尼学院本科毕业设计(论文)VHDL程序编写完成后,对其进行编译,将文件置顶后选择“StartCompilation”,编译无误后进行波形仿真,仿真前要先建立仿真波形。1)在File菜单中选择“New”选项,然后选择“VectorWaveformFile”,弹出一个.vwf的文件,在“Name”下右击选择“InsertNode...”,再按“NodeFinder”,找到需要的输入输出量后,选择向右箭头,单击“List”生成仿真窗口。2)从Edit菜单中选择“EndTime”,设置欲仿真的时间长度。3)在编辑波形窗口,根据需要来编辑波形,对信号进行赋值。4)保存在相应文件夹后,点击“StartSimulation”仿真开始。由图4.4可知,clk信号输入时,每当clk信号是上升沿时并且处于高电平时,X或Y轴方向会输出一个脉冲。当clk脉冲来时触发了进程中的敏感变量,执行进程中的算法,判断并计算偏差,当f>0时,+x方向输出一个脉冲,+y方向没有脉冲输出。同理当f<=0时,+y方向输出一个脉冲,x方向没有脉冲输出,每输出一个脉冲后判断动态点坐标是否等于终点坐标,当两者相等是结束进程。由第一象限直线仿真波形可以看出,当g=1时,程序进行复位初始化,将偏差函数置位零,直线插补外部写入的终点坐标送入程序内部中间变量寄存器,计算插补总步数。初始化结束后,在下一个clk时钟信号的下降沿时,clk信号触发p3进程完成对clk的分频。同时触发了p2进程进行插补运算,判断插补步数是否为零,如果是零就结束直线插补,如果不为零则进行插补计算,修改偏差函数,输出插补脉冲。YX+XX+YX图4.5直线插补示意图4.5四象限直线插补VHDL程序编写完成后,对其进行编译,将文件置顶后选择“StartCompilation”,编译无误后进行波形仿真,仿真前要先建立仿真波形。1)在File菜单中选择“New”选项,然后选择“VectorWaveformFile”,43 南京工程学院康尼学院本科毕业设计(论文)弹出一个.vwf的文件,在“Name”下右击选择“InsertNode...”,再按“NodeFinder”,找到需要的输入输出量后,选择向右箭头,单击“List”生成仿真窗口。2)从Edit菜单中选择“EndTime”,设置欲仿真的时间长度。3)在编辑波形窗口,根据需要来编辑波形,对信号进行赋值。4)保存在相应文件夹后,点击“StartSimulation”仿真开始。图4.6第二象限直线插补仿真图图4.7第三象限直线插补仿真图第五章圆弧插补算法VHDL实现5.1圆弧插补过程43 南京工程学院康尼学院本科毕业设计(论文)在加工圆弧过程中,人们很容易联想到使用动点到圆心的距离与该圆弧的名义半径进行比较来反映加工偏差。这里,我们以第Ⅰ象限逆圆弧为例导出其偏差计算公式。设要加工图5.1所示第Ⅰ象限逆时针走向的圆弧AB,半径为R,以原点为圆心,起点坐标为A(),对于圆弧上任一加工点的坐标设为P()。图5.1第Ⅰ象限逆圆弧插补图当动点P正好落在圆弧上时,则有下式成立当动点P落在圆弧外侧时,则有下式成立当动点P落在圆弧内侧时,则有下式成立由此可见,取逐点比较法圆弧插补的偏差函数表达式为Fm=如图所示,当动点在圆外时,为了减小加工误差,应向圆内进给,即向(-x)轴方向走一步;当动点落在圆内时,应向圆外进给,即向(+y)轴方向走一步。当动点正好落在圆弧上且尚未到达终点时,为了使加工继续,约定向(-x)轴方向进给。综上所述,现将逐点比较法第Ι象限逆圆插补规则概括如下:当F>0时,即>0,动点落在圆外,则向(-x)轴方向进给一步。当F=0时,即=0,动点落在圆上,约定向(-x)轴方向进给一步。当F<0时,即<0,动点落在圆内,则向(+y)轴方向进给一步。为了简化偏差判别式的运算,仍用递推法来推算下一步新的加工偏差。设第i次插补后,动点坐标为P(),对应偏差函数为43 南京工程学院康尼学院本科毕业设计(论文)=当≥0时,向(-x)轴方向进给一步,则新的动点坐标值为,因此,新的偏差函数为所以,同理,<0时,向(-x)轴方向进给一步,则新的动点坐标值为,因此,新的偏差函数为所以,。逐点比较法第Ι象限圆插补计算流程图如图5.2所示:图5.2逐点比较法第Ι象限圆插补计算流程图5.2圆弧插补逻辑状态在VHDL脉冲输出真值表5-1CLKFCPXCPYclk"eventandF>=0有脉冲无脉冲43 南京工程学院康尼学院本科毕业设计(论文)clk="0"clk"eventandclk="0"F<0无脉冲有脉冲脉冲输出状态表示如5.3图所示:触发clk将clk分频赋值给pul计算插补步长,初始化偏差F触发pul进程开始否进行X轴方向进给,计算偏差函数是进行Y轴方向进给,计算偏差函数结束是判断插补步数是否等于总步数F>=0否触发P1进程,判断象限图5.3圆弧插补状态图程序中,p1:process(g,clck)为进程语句,clk为敏感变信号,敏感信号有事件发生时,进程中的顺序语句都会按照他们出现的顺序执行。程序中我设置了clk时钟输入口,还设置了变量clck,clk经分频处理后赋值给clck。DIR:="0"时表示为逆圆,DIR:="1"时则表示为顺圆。clck"eventandclck="1"表pul上升沿,"EVENT是信号预定义属性,表示有事件发生,clck"event43 南京工程学院康尼学院本科毕业设计(论文)andclck="1"为clck发生变化且clck=1,从而实现clck的上升沿,clck为上升沿有效。这里定义变量xcp,ycp分别表示X轴和Y轴的方向进给,分别对应cpx,cpy。其中cpx代表X轴方向进给,cpy代表Y轴方向进给。F是整型数,代表偏差函数寄存器,用来存放偏差值,当F>0时,(1)DIR:="0"时为逆圆计算公式,-X方向进给一个脉冲,(2)DIR:="1"时为顺圆计算公式,-Y方向进给一个方向;当F<0时,(1)DIR:="0"时为逆圆计算公式,+Y方向进给一个方向(2)DIR:="1"时为顺圆计算公式,+X方向进给一个脉冲。r、s代表的是动态的X,Y坐标,也是整型数,主要用来存放插补时插补点的坐标,动点坐标是变化的,要不断修正坐标值并存入寄存器中。p2进程程序是将clk分频的程序,用于消除毛刺。以上程序插补算法是根据逐点比较法的原理来设计,圆弧插补分为四个象限通过观察,逐点比较法四象限的插补之间具有共同点。其它三个象限都可以和第一象限联系起来,所以在设计四象限圆弧是可以参照第一象限圆弧的插补算法。程序增加了一个中间常量,用来存放中间CPU送入的直线终点坐标值,再通过判别CPU送入的坐标的象限,来修正坐标,把它对应到第一象限中进行插补运算,再输出脉冲。5.3圆弧插补方向进给表5-2四象限圆弧插补偏差计算与进给方向线型F≥0F<0偏差计算坐标进给偏差计算坐标进给SR1F=F-2|Y|+1|Y|=|Y|-1-ΔYF=F+2|X|+1|X|=|X|+1+ΔXNR2-ΔY-ΔXSR3+ΔY-ΔXNR4+ΔY+ΔXNR1F=F-2|X|+1|X|=|X|-1-ΔXF=F+2|Y|+1|Y|=|Y|+1+ΔYSR2+ΔX+ΔYNR3+ΔX-ΔYSR4-ΔX-ΔY5.4圆弧插补VHDL仿真43 南京工程学院康尼学院本科毕业设计(论文)图5.3第一象限逆圆弧插补VHDL仿真VHDL程序编写完成后,对其进行编译,将文件置顶后选择“StartCompilation”,编译无误后进行波形仿真,仿真前要先建立仿真波形。1)在File菜单中选择“New”选项,然后选择“VectorWaveformFile”,弹出一个.vwf的文件,在“Name”下右击选择“InsertNode...”,再按“NodeFinder”,找到需要的输入输出量后,选择向右箭头,单击“List”生成仿真窗口。2)从Edit菜单中选择“EndTime”,设置欲仿真的时间长度。3)在编辑波形窗口,根据需要来编辑波形,对信号进行赋值。4)保存在相应文件夹后,点击“StartSimulation”仿真开始。当g脉冲出现第一个上升沿时,程序初始化首先修改写入的坐标值,都取绝对值,对应到第一象限上来,计算插补总步数。当clk时钟信号上升沿来时,触发p3进程,将clk信号分频,引入变量pul来触发p2进程,判断插补是否结束,判断num是否等于总插补步数,如果不相等则进行插补运算,先修改偏差函数,输出插补脉冲,以此类推得出插补波形。以图5.3为例,插补起点坐标(8,6),插补终点坐标(6,8),XS表示起点X轴坐标,YS表示起点Y轴坐标,XE表示终点X轴坐标,YE表示终点Y轴坐标,首先F=0,X方向进给一个脉冲,num加一,修正F,当下一个clk上升沿到来时F<0,Y方向进给一个脉冲,以此类推,圆弧插补总共插补了4步,结果符合理论的结果。5.5四象限圆弧插补VHDL程序编写完成后,对其进行编译,将文件置顶后选择“StartCompilation”,编译无误后进行波形仿真,仿真前要先建立仿真波形。1)在File菜单中选择“New”选项,然后选择“VectorWaveformFile”,43 南京工程学院康尼学院本科毕业设计(论文)弹出一个.vwf的文件,在“Name”下右击选择“InsertNode...”,再按“NodeFinder”,找到需要的输入输出量后,选择向右箭头,单击“List”生成仿真窗口。2)从Edit菜单中选择“EndTime”,设置欲仿真的时间长度。3)在编辑波形窗口,根据需要来编辑波形,对信号进行赋值。4)保存在相应文件夹后,点击“StartSimulation”仿真开始。图5.4第一象限顺圆弧插补VHDL仿真图5.5第三象限逆圆弧插补VHDL仿真43 南京工程学院康尼学院本科毕业设计(论文)图5.6第三象限顺圆弧插补VHDL仿真43 南京工程学院康尼学院本科毕业设计(论文)第六章总结与展望6.1工作总结本课题通过理解数控轮廓插补的原理及实现方法,然后再通过硬件描述语言VHDL在FPGA上实现上述算法,完成仿真与测试。在FPGA平台上用逐点比较法来描述了轮廓的插补。在做此课题的过程中,对VHDL语言和数控的轮廓插补等知识有了进一步的了解和运用。但是刚开始时,却是对此了解不多。通过这次毕业设计,有了以往在上课中没有的锻炼机会,比如自己调研,有不懂的都要向老师和组长及时请教,这是大学里为数不多的。6.2问题讨论逐点比较法具有鲜明的特点,但是缺点也是一目了然。别的同学因此用了数据采样法,在讨论的过程中发现了自身方法的优劣。在仿真调试的过程中,软件仿真图中总是会出现毛刺现象,经过探究了解到这是由于赋值过程的延时,这反映了硬件系统的重要特性,说明硬件系统并不是立即发生的,它发生在一个进程结束时。由于在运行程序时存在延迟,造成在下一个时钟脉冲来时中间变量状态还保持原来的状态,所以造成了毛刺现象。为了解决这个问题,引入pul变量,clk时钟信号经过p3进程处理后时钟的频率缩小对原来的一半,再将pul应用到p2进程中来,进行插补运算。在未处理前存在明显的毛刺,在芯片输出插补脉冲是会造成干扰,影响插补精度,分频处理能有效的解决这个问题。43 南京工程学院康尼学院本科毕业设计(论文)致谢大学毕业设计是对我知识运用能力的一次全面的考核,也是对我们行科学研究基本功的训练,培养我综合运用所学知识独立地分析问题和解决问题的能力,为以后撰写专业学术论文和工作打下良好的基础。本次设计能够顺利完成,首先我要感谢我的母校——南京工程学院,是她为我提供了学习知识的土壤,使我在这里茁壮成长。其次我要感谢自动化学院的老师们,他们不仅教会我专业方面的知识,而且教会我做人做事的道理;尤其要感谢在本次设计中给与我大力支持和帮助的葛红宇老师,每有问题,葛老师总是耐心的解答,使我能够充满热情的投入到毕业设计中去,葛老师的严谨的治学态度,细致的研究精神和敬业精神对我以后的生活工作和学习将产生积极的影响,再次向葛老师表示感谢;感谢和葛老师同一办公室的张老师,是他对我的毕业设计进行了点拨,使我少走弯路。还要感谢我的组长吴迪和其他同学,他们热心的帮助,使我感到了来自兄弟姐妹的情谊。感谢相关资料的编著者和给予我支持的社会各界人士,感谢您们为我提供一个良好的环境,使本次设计圆满完成。感谢父母对我二十多年来辛勤的养育,并让我获取了一定的知识并最终走向社会,为社会贡献自己!最后,我要向在百忙之中抽时间对本文进行审阅、评议和参加本人论文答辩的各位老师表示感谢!袁鑫二一一年六月于南京43 南京工程学院康尼学院本科毕业设计(论文)参考文献[1].王建校.51单片机及C51程序设计.北京:科学出版社,2002.4[2].朱晓春.先进制造技术.北京:科学出版社,2004.5[3].王振红.VHDL数字电路设计与应用实践教程.北京:机械工业出版社,2006.1[4].汪木兰.数控原理与系统.北京:机械工业出版社,2007.7[5].尚丽.运动控制系统.西安:西安电子科技大学出版社,2009.1[6].李恩林.数控系统插补原理通论.北京:国防工业出版社,2008.7[7].刘岚,黄秋元,陈适.北京:电子工业出版社,2009.7[8].李宜达.控制系统设计与仿真.北京:清华大学出版社,2004.4[9].张研.工业以太网及其实时特性的研究.天津:河北工业大学,2005.4[10].王家军,齐冬莲.运动控制系统的发展与展望.电气时代,2004,(10):54-56[11].施浩仁.网络技术在马达驱动器的应用.机械工业杂志,2004,(253):197-203[12].黄怡暾.PC-BasedSSCNET运动控制系统与发展趋势.工业控制计算机,2003,16(7):62-6443 南京工程学院康尼学院本科毕业设计(论文)附录A:程序清单LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYLDISPORT(D:INSTD_LOGIC_VECTOR(7DOWNTO0);WR:INSTD_LOGIC;CS:INSTD_LOGIC;A:INSTD_LOGIC;L:OUTSTD_LOGIC);ENDLD;ARCHITECTUREsampleOFLDISSIGNALXS:IntegerRANGE-32768TO32767;SIGNALYS:IntegerRANGE-32768TO32767;SIGNALXE:IntegerRANGE-32768TO32767;SIGNALYE:IntegerRANGE-32768TO32767;SIGNALLL:STD_LOGIC;BEGINL<=LL;PROCESS(WR,A)VARIABLELIN:STD_LOGIC;VariableHDA:STD_LOGIC_VECTOR(7DOWNTO0);VariableTMP:STD_LOGIC_VECTOR(2DOWNTO0):="000";BEGINifWR"EVENTANDWR="0"thenifA="0"THENTMP:="000";elsifCS="0"thenifTMP="000"thenHDA:=D;TMP:=TMP+1;elsifTMP="001"then43 南京工程学院康尼学院本科毕业设计(论文)XE<=CONV_INTEGER(HDA&D);TMP:=TMP+1;elsifTMP="010"thenHDA:=D;TMP:=TMP+1;elsifTMP="011"thenYE<=CONV_INTEGER(HDA&D);TMP:=TMP+1;LIN:="1";ELSifTMP="100"thenHDA:=D;TMP:=TMP+1;elsifTMP="101"thenXS<=CONV_INTEGER(HDA&D);TMP:=TMP+1;elsifTMP="110"thenHDA:=D;TMP:=TMP+1;elsifTMP="111"thenYS<=CONV_INTEGER(HDA&D);TMP:="000";LIN:="0";endif;endif;endif;LL<=LIN;ENDPROCESS;ENDsample;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;43 南京工程学院康尼学院本科毕业设计(论文)ENTITYPULISPORT(G:INSTD_LOGIC;XE:INIntegerRANGE-32768TO32767;YE:INIntegerRANGE-32768TO32767;CLK:INSTD_LOGIC;XDIR:OUTSTD_LOGIC;YDIR:OUTSTD_LOGIC;XP:OUTSTD_LOGIC;YP:OUTSTD_LOGIC);ENDPUL;ARCHITECTUREsampleOFPULISSIGNALPUL:STD_LOGIC;SIGNALXCP:STD_LOGIC;SIGNALYCP:STD_LOGIC;SIGNALXXE:IntegerRANGE0TO65535;SIGNALYYE:IntegerRANGE0TO65535;BEGINXP<=XCPANDCLK;YP<=YCPANDCLK;P1:PROCESS(XXE,YYE)VARIABLEXXDIR:STD_LOGIC;VARIABLEYYDIR:STD_LOGIC;VARIABLETXE:IntegerRANGE0TO65535;VARIABLETYE:IntegerRANGE0TO65535;BEGINIFXE<0THENXXDIR:="1";TXE:=-XE;ELSEXXDIR:="0";TXE:=XE;ENDIF;IFYE<0THEN43 南京工程学院康尼学院本科毕业设计(论文)YYDIR:="1";TYE:=-YE;ELSEYYDIR:="0";TYE:=YE;ENDIF;XDIR<=XXDIR;YDIR<=YYDIR;XXE<=TXE;YYE<=TYE;ENDPROCESSP1;P2:PROCESS(G,PUL)VARIABLExx:IntegerRANGE0TO65535;VARIABLEyy:IntegerRANGE0TO65535;VARIABLEF:Integer;VARIABLENUM:Integer;VARIABLEYG:STD_LOGIC;VARIABLEXG:STD_LOGIC;BEGINIFG="1"THENXX:=XXE;YY:=YYE;F:=0;NUM:=abs(XE)+abs(YE);elsIFPUL"EVENTANDPUL="1"THENIFNUM/=0thenIF(F<0)thenyy:=yy-1;YG:="1";XG:="0";F:=F+XXE;elsexx:=xx-1;43 南京工程学院康尼学院本科毕业设计(论文)YG:="0";XG:="1";F:=F-YYE;ENDIF;NUM:=NUM-1;ELSEYG:="0";XG:="0";ENDIF;ENDIF;XCP<=XGANDPUL;YCP<=YGANDPUL;ENDPROCESSP2;P3:PROCESS(CLK)VARIABLECP:STD_LOGIC;BEGINifCLK"EVENTANDCLK="0"THENCP:=NOT(CP);ENDIF;PUL<=CP;ENDPROCESSP3;ENDsample;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYAPULISPORT(G:INSTD_LOGIC;XS:INIntegerRANGE-32768TO32767;YS:INIntegerRANGE-32768TO32767;XE:INIntegerRANGE-32768TO32767;YE:INIntegerRANGE-32768TO32767;43 南京工程学院康尼学院本科毕业设计(论文)CLK:INSTD_LOGIC;XDIR:OUTSTD_LOGIC;YDIR:OUTSTD_LOGIC;XP:OUTSTD_LOGIC;YP:OUTSTD_LOGIC);ENDAPUL;ARCHITECTUREsampleOFAPULISSIGNALXCP:STD_LOGIC;SIGNALYCP:STD_LOGIC;SIGNALCLCK:STD_LOGIC;SIGNALXXS:IntegerRANGE0TO65535;SIGNALYYS:IntegerRANGE0TO65535;SIGNALXXE:IntegerRANGE0TO65535;SIGNALYYE:IntegerRANGE0TO65535;BEGINXP<=XCPANDCLK;YP<=YCPANDCLK;P1:PROCESS(XXE,YYE,XXS,YYS)VARIABLEXXDIR:STD_LOGIC;VARIABLEYYDIR:STD_LOGIC;VARIABLETXS:IntegerRANGE0TO65535;VARIABLETYS:IntegerRANGE0TO65535;VARIABLETXE:IntegerRANGE0TO65535;VARIABLETYE:IntegerRANGE0TO65535;BEGINIFXE>XSTHENXXDIR:="0";ELSEXXDIR:="1";ENDIF;IFYE>YSTHENYYDIR:="0";ELSE43 南京工程学院康尼学院本科毕业设计(论文)YYDIR:="1";ENDIF;IFXE<0THENTXE:=-XE;ELSETXE:=XE;ENDIF;IFXS<0THENTXS:=-XS;ELSETXS:=XS;ENDIF;IFYE<0THENTYE:=-YE;ELSETYE:=YE;ENDIF;IFYS<0THENTYS:=-YS;ELSETYS:=YS;ENDIF;XDIR<=XXDIR;YDIR<=YYDIR;XXS<=TXS;YYS<=TYS;XXE<=TXE;YYE<=TYE;ENDPROCESSP1;P2:PROCESS(G,CLCK)VARIABLExx:IntegerRANGE0TO65535;VARIABLEyy:IntegerRANGE0TO65535;VARIABLEF:Integer;43 南京工程学院康尼学院本科毕业设计(论文)VARIABLEDIR:STD_LOGIC;VARIABLENUM:Integer;VARIABLEYG:STD_LOGIC;VARIABLEXG:STD_LOGIC;BEGINIFG="1"THENxx:=XXS;yy:=YYS;ifXXE