课程设计(论文)基于单片机数控系统插补控制设计.doc

上传人:文库蛋蛋多 文档编号:3993456 上传时间:2023-03-30 格式:DOC 页数:38 大小:589.50KB
返回 下载 相关 举报
课程设计(论文)基于单片机数控系统插补控制设计.doc_第1页
第1页 / 共38页
课程设计(论文)基于单片机数控系统插补控制设计.doc_第2页
第2页 / 共38页
课程设计(论文)基于单片机数控系统插补控制设计.doc_第3页
第3页 / 共38页
课程设计(论文)基于单片机数控系统插补控制设计.doc_第4页
第4页 / 共38页
课程设计(论文)基于单片机数控系统插补控制设计.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《课程设计(论文)基于单片机数控系统插补控制设计.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于单片机数控系统插补控制设计.doc(38页珍藏版)》请在三一办公上搜索。

1、 基于单片机数控系统插补控制设计 课 程 设 计 任 务 书如下:1 设计题目: 基于单片机数控系统插补控制设计 2 应完成的项目:(1)调研、搜集整理课题的相关资料,确定设计整体方案。 (2)理解并熟悉数控系统插补原理。 (3)根据插补原理,用Visual C+实现其模拟仿真。 (4)单片机开发环境(Vision )下,编程实现插补。 (5)完成设计说明书,准备答辩。 3 参考资料以及说明:(1)机械设备数控技术。 (2)单片机原理及应用。 (3)C+程序设计基础。 摘 要本文主要是讨论数控机床加工过程中整个数控系统控制软件的核心插补。而在现代数控系统中,一般都采用软件插补器。在大多数数控机

2、床的数控装置都具有直线插补器和圆弧插补器。根据插补所采用的原理和计算方法的不同,可有许多插补方法。目前应用的插补方法分为基准脉冲插补和数据采样插补两大类。在本文中,主要介绍基准脉冲插补中的逐点比较法和数值积分插补法(DDA)。在熟悉插补原理的基础上,利用VC+软件工具来实现数控插补编程及仿真。在分析了逐点比较法和数字积分插补法(DDA)的算法,画出插补流程图,利用VC+软件编程源代码再实现仿真。此外,单片机作为微机计算机的一个重要分支,在现代社会的生产和生活中发挥着越来越重要的作用。单片机技术已经成为了实现各种工业测控系统和智能仪器的重要手段。所以,我们在利用在单片开发环境(Vision)下,

3、来编程去实现插补的整一个过程,这样,更加明了插补的一个过程及其原理是怎样的!关键词:插补、单片机、逐点比较法、数据积分插补法 目 录摘 要0第一章 绪论21.1 引言21.2 课题设计内容21.2.1课题设计名称和要求21.2.2 课题分析3第二章数控插补的控制设计32.1 逐点比较法32.2.1 插补原理42.2.2 直线插补42.2.3圆弧插补82.2数字积分插补法(DDA)122.2.1插补原理132.2.2 DDA直线插补132.2.3DDA圆弧插补16第三章 VisualC+模拟仿真193.1 逐点比较法193.1.1 直线插补仿真193.1.2 圆弧插补仿真193.2 数字积分插补

4、法(DDA)203.2.1 DDA直线插补仿真203.2.2 DDA圆弧插补仿真20第四章 单片机开发环境(Vision)下,编程实现插补214.1 单片机的介绍214.2 直线编程244.2.1逐点比较法的直线插补编程244.3圆弧编程244.3.1逐点比较法的圆弧插补编程24参考文献25附件255.1 逐点比较法直线插补VisualC+模拟仿真255.2逐点比较法逆圆插补VisualC+模拟仿真265.3逐点比较法顺圆插补VisualC+模拟仿真275.4数字积分插补法(DDA)直线插补VisualC+模拟仿真285.5数字积分插补法(DDA)逆圆插补VisualC+模拟仿真28第一章 绪

5、论1.1 引言随着单片机技术的迅速发展,其在工业控制领域得到了广泛应用。在工业领域的中的数控技术也是在不断的发展着,自从美国1952年研制成功世界上第一台数控机床以后,我国几乎与各工业发达国家同时起步研究数控技术。经过几十年努力和随着对外合作的增多,数控技术有了新的发展机会,国内数控技术在系统主控、机械和功能部件的开发方面都有了突破性的进展。另外在数控机床的加工过程中整个数控系统控制软件的核心插补,故:插补对于数控系统来说是非常重要的。数控机床上进行加工的工件,其轮廓大部分由直线和圆弧这两种简单、基本的曲线构成,若加工的轮廓由其他非圆曲线构成,可采用一小段直线或者圆弧来拟合。数控系统的主要任务

6、之一是控制执行机构按工件的轮廓轨迹运动。所谓插补就是根据给定进给速度和给定轮廓线形的要求,在运动轨迹的起始点坐标和轮廓轨迹之间,有数控系统计算出各个中间点的坐标,“插入”、“补上”运动轨迹中间点的坐标值,这个过程称为“插补”。目前应用的插补方法分为基准脉冲插补和数据采样插补两大类,而在本文,主要探讨的是基准脉冲插补,它包括两个分点,一是逐点比较法,二是数字积分插补法(DDA);1.2 课题设计内容1.2.1课题设计名称和要求课题设计名称:基于单片机数控系统插补控制设计要求:1、理解并熟悉数控系统插补原理。 2、根据插补原理,用VisualC+实现其模拟仿真。 3、在单片机开发环境(Vision

7、)下,编程实现插补。1.2.2 课题分析单片机作为微机计算机的一个重要分支,在现代社会的生产和生活中正发挥着越来越重要的作用。单片机技术已经成为实现各种工业测控系统和智能仪器仪表的重要手段。近年来单片机产品市场百花齐放,功能各异的单片机系列产品不断推出,但是,单片机新品仍以8051为内核,采用CMOS工艺,形成了所谓的80C51主流系列。1目前,数控技术已经成为现代制造技术的基础支撑,在数控技术中,插补起着相当重要的作用。插补,就是根据给定进给速度和给定轮廓线形的要求,在运动轨迹的起始点坐标和轮廓轨迹之间,有数控系统计算出各个中间点的坐标,“插入”、“补上”运动轨迹中间点的坐标值。插补是指数控

8、系统通过运算,给出机床运动的指令,实现用简单的微线段逼近零件某一段理想轮廓的过程。它的实际意义是:在已知零件轮廓表面曲线段的起点和终点之间,进行“数据点的密化工作”。插补所采用的原理和计算方法的不同,可有许多插补方法。目前应用的插补方法非为基准脉冲插补和数据采样插补两大类。在这次课题设计中,我们主要研究的是基准脉冲插补。它主要分为两点,逐点比较法和数字积分插补法(DDA)。逐点比较法以折线来逼近直线或者圆弧曲线,它既可以做直线插补,又可以做圆弧插补。它运算直观,差不误差小于一个脉冲当量,输出脉冲均匀,而且输出脉冲的速度变化小,调节方便。而数字积分插补法(DDA),是利用数字积分的方法,计算刀具

9、沿各坐标轴的位移,使刀具沿着所加工的轨迹运动。它具有运算速度快、脉冲分配均匀、易实现多轴联动等优点。不仅能方便地实现一次、两次曲线的插补,还可以用各种函数运算,因此得到广泛的运用。2本次课题设计主要目的是让我们了解并熟悉数控系统插补是怎样实现的,熟悉插补的一个原理,然后是以VisualC+为工具,在VisualC+环境下进行编程来进行插补的仿真。然后再在单片机开发环境(Vision)下,编程实现插补。第二章 数控插补的控制设计2.1 逐点比较法逐点比较法又称代数运算法、醉步,它是一种边判别边前进的方法。2.2.1 插补原理逐点比较法的原理是:计算机在控制加工过程中,每进给一步都要将加工点的瞬时

10、坐标与规定的轨迹相比较,判断加工偏差,然后决定下一步的进给方向。逐点比较法以折线来逼近直线或者圆弧曲线,它既可以做直线插补,又可以做圆弧插补。它运算直观,差不误差小于一个脉冲当量,输出脉冲均匀,而且输出脉冲的速度变化小,调节方便。22.2.2 直线插补直线插补就是零件程序提供直线段的起点、终点坐标,数控装置将这两点之间的空间进行数据密化,用一个个输出脉冲把空间填补起来,从而形成要求的直线轨迹。2(一).偏差计算公式如图所示X-Y平面第一象限内有直线段 ,以原点为起点,以A( Xe、Ye)为终点。对X-Y第一象限内的任一点P(Xi、Yi)有如下三种情况:当点P(Xi、Yi)在直线上,则下式成立:

11、即 Xeyi xiYe=0取偏差函数:进给方向的选取:使误差减小的方向 当P点在直线上方时;则:Xeyi xiYe0 当P点在直线下方时;则:Xeyi xiYe0,点P在直线上方,应向+X 移动。F0。为便于计算机编程计算,将F的计算予以简化。设第I象限中动点P(xi, yi)的F值为Fi, FiXeyi-xiYe1.若沿+x向走一步,即于是有 Fi+1 = Fi -Ye 2.若沿+y向走一步,即 于是有:Fi+1 = Fi +Xe(二)终点判别的方法有两种:1.每走一步,判断动点P(xi, yi)的坐标值是否与终点坐标相同,即 Xi-Xe =0且 Yi-Ye=0若两式同时满足,插补结束。2.

12、 求程序段总步数n=Xe+Ye,每走一步,n-1n,直到 n=0,插补结束。(三)节拍控制的插补计算过程:(用流程图表示 )5(四)第 I 象限直线插补软件流程图具体程序如下:3#include iostream.h /头文件void main() int xe,ye,f,j;xe=4; ye=3; /把常数4写入变量xe;把常数3写入变量ye;f=0; /把常数0写入f;j=xe+ye; /读出xe和ye的值,相加后结果写入j;do if (f=0)if(ye=xe) /判断直线是否大于45度;cout同时走+x,+yendl; /输出结果; f=f+xe-ye; /读出f、xe和ye的值,

13、计算后结果写入f; j=j-2; /读出j的值,减2后结果写入j; elsecout向+x走一步xe)cout向+y走一步endl;f=f+xe; j=j-1;else cout同时走+x,+yendl;f=f+xe-ye; j=j-2;while (j!=0);(五)其他象限的插补情况-X+YF0(-X)F0(-X)F0(+X)F0(-Y)F0(+X)F=0时,都是在x方向步进,不管+x向还是-x向,| x |增大。走+x或-x可由象限标志控制,第一、第四象限走+x,第二、三象限走-x。同样,F 0,向-x 走一步;2.动点在圆弧内,F =0)cout向-x走一步endl; /输出结果;f=

14、f-2*x0+1; /读出f、2*x0和1,计算后结果写入f;x0=x0-1; /读出x0的值,减1后结果写入x0;else cout向+y走一步endl;f=f+2*y0+1; y0=y0+1;j=j-1;while (j!=0);2、第一象限顺圆插补F0动点在-Y方向走一步后,Fi+1=Fi-2Yi+1; F0动点在+X方向走一步后Fi+1=Fi+2Xi+1PiPi+1PiPi+1xy YYY y0AE3、圆弧插补有八种情况表示如下图由上图可以看出:第一象限、顺圆、F=0;第三象限、逆圆、F=0和第四象限、逆圆、F=0;第二象限、逆圆、F0;第三象限、顺圆、F=0的情况适用于动点在-X方向

15、走一步后xi+1=xi-1 ;yi+1=yi Fi+1= =Fi-2xi+1。第一象限、逆圆、F0;第二象限、顺圆、F=0和第四象限、逆圆、F=0的情况适用于动点在+Y方向走一步后yi+1=yi+1 ;xi+1=xi Fi+1= =Fi+2yi+1。第一象限、顺圆、F=0;第二象限、逆圆、F=0;第三象限、逆圆、F0和第四象限、顺圆、F0的情况适用于动点在-Y方向走一步后yi+1=yi-1 ;xi+1=xi Fi+1= =Fi-2yi+1。22.2 数字积分插补法(DDA)数字积分插补法又称为数字积分分析法(DDA),是利用数字积分的方法,计算刀具沿各坐标轴的位移,是刀具沿着所加工的轨迹运动。

16、它具有运算速度快、脉冲分配均匀、易实现多轴联动等优点。不仅能方便地实现一次、两次曲线的插补,还可以用各种函数运算,因此得到广泛的运用。22.2.1 插补原理 它的基本原理可以用图2.2所示的函数积分表示,从微分几何概念来看,从时刻0到时刻t求函数y=f(t)曲线所包围的面积时,可用积分公式:如果将0t的时间划分成时间间隔为t的有限区间,当t足够小时,可得近似公式:式中yi-1为t=ti-1时f(t)的值,此公式说明:积分可以用数的累加来近似代替,其几何意义就是用一系列小矩形面积之和来近似表示函数f(t)下面的面积,ty=f(t)ti-1tiyOt图2.2 数字积分原理Fig 2.2Princi

17、ple of DDA如果在数字运算时,用取t为基本单位“1”,则2.2式可以简化为: 42.2.2 DDA直线插补(1) 原理:积分的过程可以用微小量的累加近似: 如下图所示设X-Y平面内直线 ,起点(0,0),终点( Xe, Ye )。若以匀速V沿OA位移,则V可分为Vx、Vy两个速度,见下图。它们的关系式为式中 K比例系数 在t时间内,X和Y位移增量X和Y应为动点从起点走向终点的过程,可看作是各坐标轴每一单位时间间隔t分别以增量及同时累加的结果。经过m次累加后,X和Y分别都达终点(Xe ,Ye) vvYvXA(Xe ,Ye)则:式中K、Xe、Ye为常数,若取一单位时间间隔,即t1,则 若这

18、两式成立,那么 mK=1; m=1/K上式表明比例常数K和累加次数m的关系,其中已知一个,另一个也就确定了。但m必须是整数,所以K一定是小数。选择K时主要考虑每次增量X和Y不大于1,以保证坐标轴每次分配进给脉冲不超过一个,就是说每次位移增量只产生一个单位步距,即 故:一般取:如 ,满足 的条件,故累加次数为 因为 ,则 这一运算对二进制来说是比较容易实现的,即数字本身不变,只要把小数点左移n位即可。所以一个n位寄存器存放Xe 和存放KXe 的数字是相同的。后者只认为小数点出现在最高位数的前面,其它没有区别。 (二)DDA直线插补器设经过m次累加,X、Y同时或分别到达终点X=mKXe=Xe (m

19、*K=1)Kxe1 Kye1 (寄存器)Kxe1 Kye1 (累加器)取K=1/ 则m=; (三)终点判别直线插补时不论被积函数有多大,对于n位寄存器。必须累加2n次才能到达终点。因此可以用一容量为2n,的寄存器当计数器,来统计累加的次数。可以用加1计数器,也可以用减1计数器。用加1计数器时,首先将计数器清零,运算过程中每来一个累加脉冲t就加1。当计数器满2n时表明运算完成。采用减1计数器时,运算前把总运算次数2n送入计数器,每运算一次,就减去1。当计数器减为0时,表明运算完成。故:终点判别:J=(四)第 I 象限DDA直线插补软件流程图 5 具体程序如下:3#include /头文件void

20、 main()int x,y,m,xe,ye,k; x=0; y=0; k=0; /把常数0写入变量x;把常数0写入变量y;把常数0写入变量k; m=16; xe=10; ye=5; /把常数16写入变量m;把常数10写入变量xe;把常数5写入变量ye;do x=x+xe; /读出x和xe的值,相加后结果写入x;y=y+ye; /读出y和ye的值,相加后结果写入y;if (x=m) if (y=m) cout向+x,+y同时进给endl; /输出结果; x=x-m; /读出x和m的值,相减后结果写入x; y=y-m; /读出y和m的值,相减后结果写入y; k=k+1; /读出k的值,加1后结果

21、写入k; elsecout向+x走一步=m) cout向+y走一步endl; y=y-m; k=k+1; else k=k+1;while (k!=m);2.2.3 DDA圆弧插补(一) 基本原理如下图所示:假定加工工件轮廓的一部分是X-Y坐标系中一段圆弧AB,位于第一象限,逆时针走向。圆弧起点A( X0 , Y0 ),终点为B(Xe , Ye ),半径为R,圆心在原点(0,0)。加工时沿弧切线方向的进给速度V 恒定 设圆弧AB上任一动点P( xi , yi ),其切线方向的进给速度V可分解为水平方向速度 和垂直方向速度 Vy ,即由相似三角形可得:P (xi,yi) (二)DDA直线插补器

22、(三)终点判别圆弧插补的终点判断不能象直线插补那样由累加次数m来决定,一般采用两个终点判别计数器分别累计两坐标的进给脉冲数。在插补运算中,每产生一个X或Y,就使对应计数器减1。若某一个计数器先减到零,就停止该轴的溢出脉冲,而插补运算仍继续进行,直到另一计数器也减至零时才到达终点,插补运算结束。(四)第 I 象限DDA圆弧插补软件流程图 4具体程序如下#include /头文件void main() int m,JRx,JVx,JRy,JVy,Nx,Ny; JVx=0; JVy=5;m=8; / 把常数0写入变量JVx;把常数5写入变量JVy;把常数8写入变量m;Nx=5; Ny=5; JRx=

23、0; JRy=0; /分别把常数5、5、0、0、写入Nx、Ny、JRx、JRy; do if (Nx!=0) JRx=JRx+JVx; /读出JRx和JVx的值,相加后结果写入JRx; if(Ny!=0) JRy=JRy+JVy; if (JRx=m) if (JRy=m) cout向-x,+y同时进给endl; JRx=JRx-m; /读出JRx和m的值,相减后结果写入JRx;JRy=JRy-m; JVx=JVx+1; JVy=JVy-1; Nx=Nx-1; Ny=Ny-1; elsecout向-x走一步=m) cout向+y走一步=0)if(ye=xe) x+; y+; dc.LineTo

24、(x,y); f=f+xe-ye; j=j-2; else x+ ; dc.LineTo(x,y); f=f-ye; j=j-1;else if (yexe) y+ ; dc.LineTo(x,y); f=f+xe; j=j-1;else x+; y+; dc.LineTo(x,y); f=f+xe-ye; j=j-2;while (j!=0);CView:OnLButtonDown(nFlags, point);3.1.2 圆弧插补仿真以第一象限逆圆为例,仿真程序如下:void CMy11111View:OnLButtonDown(UINT nFlags, CPoint point) CCl

25、ientDC dc(this) ; / 定义画笔dc.MoveTo(100,100); /移动画笔到点(100,100)int x0, y0, j,f, x1, y1,x,y; x0=40; y0=0; x1=0; y1=40;j=x0+y1; f=0; x=100; y=100;do if (f=0) x- ; dc.LineTo(x,y); f=f-2*x0+1; x0=x0-1;else y+ ; dc.LineTo(x,y); f=f+2*y0+1; y0=y0+1;j=j-1;while (j!=0);CView:OnLButtonDown(nFlags, point);3.2 数字

26、积分插补法(DDA)3.2.1 DDA直线插补仿真以第一象限为例,仿真程序如下:void CMy11111View:OnLButtonDown(UINT nFlags, CPoint point) CClientDC dc(this) ; / 定义画笔dc.MoveTo(0,0); /移动画笔到原点int x1,y1,m,xe,ye,k,x,y; x1=0; y1=0; k=0;x=0,y=0;m=64; xe=100; ye=50;do x1=x1+xe;y1=y1+ye;if (x1=m) if (y1=m) x+; y+; dc.LineTo(x,y); x1=x1-m; y1=y1-m

27、; k=k+1; elsex+; dc.LineTo(x,y); x1=x1-m; k=k+1; elseif (y1=m) y+; dc.LineTo(x,y); y1=y1-m; k=k+1; else k=k+1;while (k!=m);CView:OnLButtonDown(nFlags, point);3.2.2 DDA圆弧插补仿真以第一象限逆圆为例,仿真程序如下:void CMy11111View:OnLButtonDown(UINT nFlags, CPoint point) CClientDC dc(this) ; / 定义画笔dc.MoveTo(100,50); /移动画笔

28、到点(100,50)int m,JRx,JVx,JRy,JVy,Nx,Ny,x,y; JVx=0; JVy=50;m=64; Nx=50; Ny=50; JRx=0; JRy=0; x=100; y=50;do if (Nx!=0) JRx=JRx+JVx; if(Ny!=0) JRy=JRy+JVy;if (JRx=m)if (JRy=m) x-; y+; dc.LineTo(x,y); JRx=JRx-m; JRy=JRy-m; JVx=JVx+1; JVy=JVy-1; Nx=Nx-1; Ny=Ny-1; else x- ; dc.LineTo(x,y); JRx=JRx-m; JVy=

29、JVy-1; Nx=Nx-1;else if (JRy=m) y+ ; dc.LineTo(x,y); JRy=JRy-m; JVx=JVx+1; Ny=Ny-1;while(Nx!=0|Ny!=0);CView:OnLButtonDown(nFlags, point);第四章 单片机开发环境(Vision)下,编程实现插补4.1 单片机的介绍所谓单片机,就是将CPU,RAM,ROM,定时/计数器和多种I/O接口电路都集成在一块集成芯片上的微型计算机。MCS-51系列单片机是美国Intel公司在1980年推出的8位单片 微型计算机 ,包含51和52两个子系列。51子系列的典型产品有8031,8

30、051和8751三种机型 52子系列包括8032,8052二种主要机型。 51子系列的配置如下:(1)8位CPU;(2)振荡频率1.212MHZ;(3)128个字节的片内数据存储器(片内RAM);(4)21个专用寄存器;(5)4KB的片内程序存储器(8031无);(6)8位并行I/O口P0,P1,P2,P3;(7)一个全双工串行I/O口;(8)2个16位定时器/计数器;(9)5个中断源,分为2个优先级; 本次编程选用ATMEL89S51系列单片机,由于它的模块化设计为适应具体的应用提供了极大的灵活性,便于扩展功能,有效的提高了系统的经济性。AT89S51是一种低工耗、高性能的片内含有4KB快闪

31、可编程/擦除只读存储器的八位CMOS微控制器,使用高密度、非易失存储编程器对程序存储器重复编程。AT89S51具有以下特点:(1)与MCS-51微控制器产品系列兼容。(2)片内有4KB可在线重复编程的快闪擦写存储器。(3)32条可编程I/O线。(4)程序存储器具有三级加密保护。(5)可编程全全双工串行通道。(6)空闲状态维持低功耗和掉电状态保存存储内容。(7)而且与87C51系列的引脚也完全兼容。89S51单片机结构如图4-1所示:图4-1 89S51单片机结构框图51系列单片机的引脚功能:主电源引脚 Vss、Vcc Vss:接地,Vcc:接+5V电源外接晶振引脚 XTAL1、XTAL2 XT

32、AL1:片内反向放大器输入端,XTAL2:片内反向放大器输出端输入/输出引脚 P0、P1、P2、P3P0.0P0.7:P0口的8个引脚,P0口是8位漏极开路型双向I/0端口,在接有片外存储器或I/0扩展接口时,P0.0P0.7分时复用,作低8位地址总线与双向8位数据总线P1.0P1.7:P1口的8个引脚,P1口是一个带内部上拉电阻的8位双向I/O口,对于52子系列,P1.0还可用于定时器/计数器2的计数脉冲输入端2,1.1还可作定时器/计数器2的外部控制端T2EX。P2.0P2.7:P2口的8个引脚,P2口也是一个带内部上拉电阻的双向I/O口,在访问片外存储器或扩展I/O接口时,还用于提供高8

33、位地址。P3.0P3.7:P3口的8个引脚,P3口也是一个带上拉电阻的I/O口。今后单片机的发展趋势,将是进一步向着多功能、高性能、高速度、低功耗、低价格、存储容量扩大和增强I/O功能及结构兼容等方面发展。其发展趋势主要有以下几个方面:1. 多功能 在单片机中尽可能多地把应用所需的存储器、各种功能的I/O口都集成在一块芯片内,使单片机的功能更加强大。如把LED、LCD或VFD显示驱动器也开始集成在8位单片机中。2. 高性能 进一步改进CPU的性能,加快指令运算的速度和提高系统控制的可靠性,采用精简指令系统计算机RISC(Reduced Instruction Set Computer)结构和流水线技术,大幅度提高运行速度。现指令速度最高者已达100MIPS(Million Instruction Per Seconds,即兆指令每秒),并加强了位处理功能、中断和定时控制功能,使单片机的性能明显地优于同类型的微处理器。单片机集成度进步提高,有的单片机的寻址能力已突破64 KB的限制,8位、16位的单片机有的寻址能力已达到1 MB和16 MB。片内ROM的容量可达64 KB,RAM的容量可达2 KB。3. 低电压、低功耗 允许使用的电压范围越来越宽,一般

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号