基于单片机的PLC编译程序设计研究毕业设计论文.doc

上传人:来看看 文档编号:3922173 上传时间:2019-10-10 格式:DOC 页数:65 大小:3.90MB
返回 下载 相关 举报
基于单片机的PLC编译程序设计研究毕业设计论文.doc_第1页
第1页 / 共65页
基于单片机的PLC编译程序设计研究毕业设计论文.doc_第2页
第2页 / 共65页
基于单片机的PLC编译程序设计研究毕业设计论文.doc_第3页
第3页 / 共65页
基于单片机的PLC编译程序设计研究毕业设计论文.doc_第4页
第4页 / 共65页
基于单片机的PLC编译程序设计研究毕业设计论文.doc_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《基于单片机的PLC编译程序设计研究毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的PLC编译程序设计研究毕业设计论文.doc(65页珍藏版)》请在三一文库上搜索。

1、毕业设计(论文)题目:基于单片机的PLC编译程序设计研究目 录摘 要6关键词6Abstract7Key words8前 言81 基于单片机的PLC的单片机程序模块研究及其目标程序框架的构建91.1 基于单片机的PLC常用的单片机程序模块的构建91.2 基于单片机的PLC的TIM Ti语句的单片机程序模块构建10121 围绕TIM Ti片内硬件资源的配置1012. 2 TIM Ti所需的To中断服务程序11123 TIM Ti模块的流程分析和建立1213 CNT Ci 语句的单片机程序模块的构建1314 PLS8 Yi 脉冲微分语句的单片机程序模块的构建141. 5 移位类语句的单片机程序模块的

2、构建151. 6 基于单片机的PLC目标程序框架的构建162 基于单片机的PLC编译程序总体设计方法1921 采用数组技术构建基于单片机的PLC源程序语句标准集合19211 基于单片机的PLC源程序语句标准集合的定义19212 基于单片机的PLC源程序语句标准集合的数组表达2022 基于单片机的PLC目标代码集合的构建2223 建立基于单片机的PLO源程序语句和目标代码之间的关系2224 基于单片机的PLO编译程序结构2325 盲码的预先填入及修正技术233 基于单片机的PLC编译程序查错模块设计2431 编译过程中列表文件名和列表文件的建立24311 用STRCAT建立列表文件名25312

3、列表文件(1st)的建立253. 2 查错模块程序流程2633 整句识别2634 语句语法检查27341 M数组逐行搜索28343 核对语句长度是否正确29344 错误标记写入错误信息文件3035 查错模块程序运行结果304 固定代码的装配3041 基于单片机的PLC编译过程中目标文件的建立31411 目标文件名的建立31412 目标文件(Bin)的建立3242 建立固定代码数组3243 向目标文件中装配固定代码345 活动代码的翻译和装配3451 活动代码翻译和装配的整体思路3452 源程序语句的类型识别35521 ckhh存放着当前被翻译的源程序语句36522 当前源程序语句的类型识别36

4、53 简单活动代码的装配37531 引用名(位地址)字符转化函数cvt(x,y)的定义37532 实现映射F i=口(Mi)的第一种程序结构38533 LDI语句的目标代码装配38534 AND语句的目标代码装配39535 ANI语句的目标代码装配39536 OR语句的目标代码装配40537 ORI语句的目标代码装配40538 STORE语句的目标代码装配41539 OUT语句的目标代码装配4154 复杂活动代码的装配及其盲码的修正42541 TIM语句的目标代码的装配及其盲码的修正425411 TIM模块中的F数组赋值435412 TIM模块中第二种盲码的修正445413 针对TIM的第一种

5、盲码的修正445414 目标文件Bin装配时两种地址的切换方法4554. 15 TIM模块的目标代码装配46542 CNT语句的目标代码的装配及其盲码的修正465421 CNT模块中的F数组的赋值485422 CNT模块的目标代码装配48543 RSTC语句的目标代码的装配及其盲码的修正485431 RSTC语句翻译模块中的盲码修正495432 RSTC模块中F数组的赋值和目标代码的装配49544 PLS语句的目标代码的装配及其盲码的修正505441 PLS语句翻译模块中的盲码修正515442 PLS模块中F数组的赋值和目标代码的装配51545 DIN语句的目标代码的装配及其盲码的修正5154

6、51 DIN语句翻译模块中的盲码修正525452 DIN模块的目标代码装配52546 SFT语句的目标代码的装配及其盲码的修正535461 SFT语句翻译模块中的盲码修正535462 SFT模块中F数组的赋值和目标代码的装配54547 RSTS语句的目标代码的装配及其盲码的修正545471 RSTS语句翻译模块中的盲码修正555472 RSTS模块中F数组的赋值和目标代码的装配5555 END语句的处理566 基于单片机的PL c编译程序的实验研究5661 实验研究系统的建立5662 基于单片机的PLO源程序的编辑和编译5763 结论58参考文献59致谢61基于单片机的PLC编译程序设计研究摘

7、 要自动化装置和机电一体化产品的设计和开发中有时需要采用一种成本极低的逻辑控制器。为了满足这种需要,作者开展了用单片机直接实现梯形图逻辑控制的硬件和软件研究。其中最为关键的一项技术是如何设计出基于单片机的PLC编译程序,将符合梯形图逻辑的PLC指令源程序翻译成单片机目标程序。本文论述了基于单片机的PLC编译程序设计的理论和方法,研究了基于单片机的PLC的单片机程序模块和目标程序框架,对编译程序结构进行了分析,阐述了查错模块设计方法以及目标代码装配方法,对基于单片机的PLC的编译程序的调试实验系统组成和实验结果进行了分析。首先,进行了基于单片机的PLC的单片机程序模块研究,构建了独具特点的目标程

8、序框架结构。然后,定义了基于单片机的PLC的源程序语句标准集合,提出了源程序语句标准集合的数组表示方法;定义了目标代码集合,提出了用口映射来建立源程序语句标准集合和目标代码集合之间的关系,为编译程序结构的实现提供了条件和方法;提出了盲码预填和盲码修正的思想提出了依据M数组对源程序查错的思路,通过列表文件名和列表文件的建立、整句识别、语句语法检查中的M数组逐行搜索、核对关键词是否相等、核对语句长度是否正确等一系列环节,实现对源程序的查错处理;论述了翻译过程中向目标文件里装配固定代码的过程;论述了翻译和装配活动代码的整体思路和流程;运用M数组进行源程序语句的类型识别,初步实现了盯映射的预定位;有效

9、定义了引用名(位地址)的字符转化函数;分别给出了实现盯映射的第一种程序结构和第二种程序结构,有效的完成了简单活动代码和复杂活动代码的翻译和目标文件的装配任务;提出并论述了第一类盲码修正和第二类盲码修正的程序实现方法。建立了基于单片机的PLC的编译程序设计研究的实验系统,对该编译程序的各项功能进行了验证和比对。经过多个程序的试验表明,该编译程序能够正确地将基于单片机的PLC源程序翻译成单片机可以直接执行的、符合梯形图逻辑控制要求的目标程序。实验结果表明,本文所设计的基于单片机的PLC编译程序完全符合设计要求,可以用于项目开发。由于基于单片机的PLC成本极低,实际应用时可以带来较好的经济效益,因而

10、具有较强的实用性。关键词: 单片机,可编程逻辑控制器,编译程序,盲码,源程序,目标程序Abstract Sometimes,one kind of extremely inexpensive logic controller is needed in design and the development of the automation device and the integration oelectromechanical productIn order to meet this kind of needsthe author carried Oll the hardware and t

11、he sofhvare research of having directly realized the ladder diagram logic control with the monolithic microcomputerIn whichmost essential technology is how to design the compiler for PLC based on monolithic microcomputer,and is how to translate PLC instruction source program which conf01Tn ladder di

12、agram logic into monolithic microcomputer targetprogramThis paper elaborated design theory and the method of the compiler for PLC based on the monolithic microcomputer,has studied the monolithic microcomputer program module and the target program frame for PLC based on the monolithic microcomputer,h

13、as c ried on the analysis to thecompiler.structureelaborated design method for the checking mistaken module as well as the assembly method for goal code,has carried on the analysis to expedmental result and debugging experiment system composition for the compiler for PLC based on the monolithicmicro

14、computerFirst,the research on the monolithic microcomputer program module for PLC based on the monolithic microcomputer has been conductedThe alone characteristic frame construction for targetprogram has been constructedThenthe paper has defined the standard set of the source program sentence for PL

15、C based on the monolithic microcomputer,proposed the array expression method for the standard setof the source program sentenceThe goal code set has been definedEstablishing the relations between the source program sentence standard set and the goal code set with sigma the mapping has been proposed,

16、so that the condition and the method for realization of the compile structure has been providedA thought ofthe filling blind code in advance and the revising blind code has been proposed。A mentality of checking mistaken to the source program according to the Marray has been proposedThe processing of

17、 the checking mistaken to the source program has been realized through a series of procedure such as the establishment of list filename and list documenL the recognition to entire sentencethe search by line using M array in sentence grammar inspection,the checkup to key word whether equal,the checku

18、p to sentence length whether correct and so onThe process of assembling the fixed code into the goal document during the translation has been elaboratedOverall mentality and the procedure of the translation and the assembly code have been elaboratedThe pre-localization of the sigma mapping bycarryin

19、g on the type recognition to source program sentence depend on the array M has initially beenrealizedThe character transformation function for quotation name(bit address)has been definedeffectively,e first kind of procedure structure and the second kind of procedure structure for realizationsigma ma

20、pping has separately been given,so that the translation of the simple active code and the complex active code has effective been completed,and that the assembly of the goal document has been completedThe procedure realization method for the first kind of blind code revision and the second kind of bl

21、ind code revision has been proposed and elaboratedThe experimental system which using the research of compiler design for PLC based on monolithic microcomputer has been establishedWe had carried on the confirmation and compare to the each function of the compilerAfter the severaI procedure trials。in

22、dicated that the compiler can translate correctly thesource program of PLC based on monolithic microcomputer into the target program which is enable to be executed by monolithic microcomputer and tallies the request of ladder diagram logic contr01The experimental result proved that the compiler desi

23、gned for PLC based on the monolithic microcomputerconforms to the design requirement completely,may use in the project developmentBecause the PLC based on the monolithic microcomputer is extremely inexpensive in cost,it may bring the good economicefficiency when practical application,thus has the st

24、rong usabilityKey words: Monolithic microcomputer,programmable logic controller,compiler,blind code,source program,target program前 言前人在单片机应用研究和PLC应用研究方面已经取得了丰硕的成果。当今计算机技术发展很快,编译程序设计技术也在不断发展。世界上现成的PLC产品很多,每一个PLC产品都有一个PLC编译程序。我们要问,本课题“基于单片机的PLC编译程序和其他的PLC编译程序雷同吗?答案是不同。为了大大降低成本,实现如前所述的,在机电一体化产品和自动化装置的设

25、计中直接用单片机芯片作为符合梯形图逻辑的逻辑控制器,就必须设计出可以将PLC指令源程序翻译成单片机目标程序的编译程序。在从事这项研究时我们发现,本课题“基于单片机的PLC编译程序设计在应用研究方法和具体内容上都和前人有许多不同之处。(1)首先,当从市场上选来新代的单片机芯片作为执行符合梯形图逻辑控制的逻辑控制器,那么从总体上来看,基于该单片机芯片的PLC编译程序的设计就和其他PLC的编译程序设计不同,没有一个现成的编译程序可以套用,必须做创造性的工作,独立完成基于该单片机的编译程序设计。编写基于该单片机的PLC编译程序,是本课题的主要工作任务之一。(2)其次,目标程序框架结构也不同。因为单片机

26、芯片不同,内部的硬件资源也就不同,目标指令代码和目标程序框架结构也就不同。因此在编译程序编写前,必须根据单片机芯片编程的特点设定目标程序框架结构。有许多影响目标程序框架结构的因素,诸如CPU初始化、内部硬件定时器设定、中断结构、接口的初始化等。设定目标程序框架结构,是本课题的另一项主要工作任务。(3) 本课题的一项有特色的工作是在应用研究基础上,构建基于单片机的PLC的源程序代码标准集合和目标程序代码集合,并且用集合和映射的方法为基于单片机的PLC源程序代码、目标代码以及翻译方法建模。此外在设计中采用盲码预填及修正技术。总之,基于单片机的PLC编译程序设计研究是一项具有创造性的工作,需要充分吸

27、收前人经验,开创创新,建立新的模型,新的结构,新的方法1 基于单片机的PLC的单片机程序模块研究及其目标程序框架的构建 基于单片机的PLC编译程序的功能是将基于单片机的PLC源程序翻译成单片机目标程序。为了设计出基于单片机的PLC编译程序,首先要构建出每一条源程序指令所对应的单片机程序模块。基于单片机的PLC的源程序指令采用可编程序逻辑控制器最基本指令的助记符,包括AND,ANI,OR,ORI,LD,LDI,OUT,STORE,TIM,CNT,RST,PLS,DIN,SFT,END等基本逻辑指令。但是,这些基本逻辑指令所对应的单片机程序模块的程序长短不一,有的只有l2条单片机指令组成,有的则需

28、十几条或几十条单片机指令组成。1.1 基于单片机的PLC常用的单片机程序模块的构建大部分PLC指令的单片机程序模块只需l2条单片机指令组成。AND、ANI、OR、ORI、LD、LDI、OUT、STORE指令的单片机程序(指令)如表21所示。由于选择了Atmel公司的AT89C52单片机芯片作为处理器,所以单片机程序使用MCS51单片机指令系统(AT89C52单片机采用了MCS51单片机指令系统)。表11 基于单片机的PLC中常用PLC逻辑指令的单片机程序模块序号PLC逻辑指令单片机程序模块(指令) 目标程序代码序号PLC逻辑指令单片机模块(指令)目标程序代码1LD bitMOV C, bitA

29、2, bit2LDI bitMOV C, bitCPL CA2, bitB33AND bitANL C,bit82, bit4ANI bitANL C, bitB0, bit5OR bitORL C, bit72, bit6ORI bit ORL C, bitA0, bit7STORE bit MOV C, bit92, bit8OUT bitCPL CMOV bit, CB392, bit 表11 基于单片机的PLC中常用PLC逻辑指令的单片机程序模块在表11的逻辑指令中,运算都围绕位累加器C进行。表中的bit表示位地址,它们都是单片机中片内RAM中可直接位寻址的位(位地址)。(如延时计时器

30、类、脉冲微分类、计数器类、移位类等)的单片机程序模块需十几条或几十条单片机指令组成。下面是对此类PLC逻辑指令的单片机程序模块建立过程的分析。1.2 基于单片机的PLC的TIM Ti语句的单片机程序模块构建121 围绕TIM Ti片内硬件资源的配置梯形图中的延时计时器通常可以有多个,它们需要有一个统一的时钟。在基于单片机的PLC中用AT89C52芯片内的T0来作统一的时钟。TO设定成定时01s,每隔O1sT0中断一次。在To中断服务程序中依次将多个延时计时器的软加l计数器加l。实现TIM指令所需要的片内资源有:延时计时器的逻辑位Ti,位地址30H3FH;延时计时器的状态标志位Si,位地址40H

31、4FH;延时计时器的软加1计数器Zi,Zi由两字节寄存器组成,由TO中断服务程序对其实行加1计数,可记录4位BCD数,字节地址50H,51H,52H,53H,6EH,6FH。延时计时器延时时间常数寄存器Z;Z;也由两字节寄存器组成,可记录4位BCD数,字节地址为30H,31H,4EH,4FH。12. 2 TIM Ti所需的To中断服务程序单片机初始化时,将To设定成定时方式l,并开放To中断。To的初值计算公式为:图11 TO中断服务程序流程图TO的定时方式和初值在单片机初始化时设定,TO中断服务程序依次扫描16个延时计时器,先判断Si是否为“1,即该计时器是否已被开启,只对开启的计时器的软加

32、1计数器Zi实行加1操作。其流程见图21。123 TIM Ti模块的流程分析和建立与梯形图中延时计时器所对应的TIM Ti逻辑指令的单片机程序模块流程见图12。这是一个对第i个延时计时器进行逻辑运算处理的模块,运算的依据是已知的当前逻辑运算值(在累加器C中)。开动延时计时器(实行Sil的操作)的条件是:当C=I,同时Si=0(第i个延时计时器还未处于开动状态时),同时Ti1(延时计时器逻辑位还未置“1)。 图12 TIM Ti逻辑指令的单片机程序模块流程图13 CNT Ci 语句的单片机程序模块的构建计数器和计时器使用相同的片内资源。在用PLC指令编程时,同一个引用名不能同时作计数器和计时器。

33、CNT指令的单片机程序模块用Ci表示计数器的逻辑位,位地址30H3FH;用ni表示计数器的计数脉冲前沿识别位,位地址50H一5FH;用Di(双字节寄存器)表示软加1计数器,Di由Di,0和Di,1组成;用Di表示计数器的预置值寄存器(双字节寄存器),Di由Di,0和Di,i组成;另外,由RSTC指令实现计数器的清零。CNT Ci计数指令的单片机程序模块如下:14 PLS8 Yi 脉冲微分语句的单片机程序模块的构建本系统共设有8个脉冲微分寄存器。脉冲微分类运算的单片机程序模块所占的片内资源较少。它们分别是:脉冲微分寄存器的逻辑位Yi,位地址08H0FH;用于寄存前次输入的寄存器Pi,位地址18H

34、1FH。PLS脉冲微分的单片机程序模块流程见图23。程序中通过对本次输入(累加器C)和前次输入(Pi)进行判断,当C=I同时Pi=0时才产生脉冲微分信号(Yi=1)。由于扫描梯形图时,主程序在总体上是循环结构,所以微分脉冲宽度等于梯形图扫描周期。 1. 5 移位类语句的单片机程序模块的构建共提供了4个8位移位寄存器。移位类运算的单片机程序模块所占的片内资源有:移位寄存器,用Mi表示,字节地址分别为2CH,2DH,2EH,2FH;移位输入暂存位,用Gi表示;移位脉冲前沿识别位Hi,位地址28H,29H,2AH,2BH。移位类运算程序由三个程序模块组成。一个是对应于DIN Mi的单片机程序模块。其

35、功能是将输入端的逻辑值暂存在Gi中,供SFT指令使用;第二个是对应于SFT Mi的移位操作程序模块,其功能是依据已知的当前逻辑运算值(在累加器C中),以及Hi的值,判断移位脉冲是否到;当移位脉冲到时,将输入暂存位Gi中的值移入移位寄存器Mi。第三个是对应于RSTS指令的移位寄存器复位程序模块。DIN Mi指令的单片机程序模块如下:MOV Gi,C ;仅仅一条单片机指令。SFT Mi移位操作指令的单片机程序模块如下:1.6 1. 6 基于单片机的PLC目标程序框架的构建基于单片机的PLC编译程序的功能是将基于单片机的PLC的源程序语句翻译成单片机的目标程序。在基于单片机的PLC编译问题中,目标程

36、序框架和单片机的芯片编程相关,诸如CPU初始化、内部硬件定时器设定、接口的初始化等。根据基于单片机的PLC的要求,建立目标程序框架结构,如表16所示。其中,固定代码的编译结果基本是固定的。活动代码是和源程序语句对应的目标程序代码。固定代码和活动代码均采用单片机的机器指令代码。当基于单片机的PLC编译程序工作时,对表16中固定代码的装配过程较简单。而活动代码的装配则涉及到对源程序语句的识别、查错、翻译生成目标代码等过程,是编译程序主要需要解决的问题。活动代码具体装配的内容由11 1.5中的内容根据源程序的顺序来决定。表16 基于单片机的PLC目标程序框架结构在表16所示的基于单片机的PLC目标程

37、序框架结构中,专用地址矢量、延时20ms子程序、CPU和接口初始化子程序、定时器初值设定子程序、TO中断服务子程序、主程序开始初始化设定、输入刷新,这些均属于固定目标代码。它们又被分为两种:一种为纯固定目标代码,例如专用地址矢量、延时20ms子程序、CPU和接口初始化子程序、TO中断服务子程序、主程序开始初始化设定、输入刷新;另一种为含盲码、待修正的固定目标代码,例如定时器初值设定子程序。0066H00C5H单元共96个字节用于定时器初值设定子程序预留空间。先用盲码值00H填充。等编译程序中执行“扫描源程序文件,逐条翻译时,得到源程序提供的定时器初值,再在用正式代码(以MOV指令目标代码的形式

38、,并含定时器初值)代替相应位置上的盲码。关于盲码,35中还要叙述。表16中入口符号地址THTL处为TO中断服务子程序。在222中已经叙述了TO中断服务子程序的流程。它们的具体程序如下:2 基于单片机的PLC编译程序总体设计方法基于单片机的PLC编译程序总体设计方法碰到的第一个问题是源程序指令模板和目标代码模板在编译程序中如何表达?接着第二个问题是如何根据已知的源程序指令正确的找到目标代码程序?如何建立单片PLC源程序语句和目标代码之间的关系?为了在编译时有一个对源程序语句的识别、查错的标准,需要就基于单片机的PLC的AND、ANI、OR、ORI、LD、LDI、OUT、STORE、TIM、CNT

39、、RST、PLS、DIN、SFT、END等基本逻辑指令,建立基于单片机的PLC源程序语句标准集合。21 采用数组技术构建基于单片机的PLC源程序语句标准集合211 基于单片机的PLC源程序语句标准集合的定义定义1:M是集合,在基于单片机的PLC编译程序中用数组表示。m iJ是其元素,m i j M,m i j为1字节ASCII字符,且有子集Mi MMi:mmi2,mik (1)Mi为M数组行元素集合,其前k1个字符组成的字符串记为:String Mi=mi1mi2mik-1假如String Mi的值等于基于单片机的PLC某种源程序语句(简称为“源语句)助记符串中的标识符串,并且Mi中的元素mi

40、 k的值等于这种源语句长度的ASCII值,则称子集Mi为这种源语句的标准子集。例如:基于单片机的PLC的LD语句为:LD 20,其长度值=5,标识符串为StringMi_h,D, ),故LD源语句标准子集为Mi=L,D, ,5。又如:PLS语句为:PLS 09,其长度值=6,标识符串为String Mi=(P,L,S, ,故PLS源语句标准子集为Mi=P,L,S, ,6)定义2:在Mi cM的条件下,Mi是一种源语句标准子集。又:M=Mt,M2,M。),式中入为基于单片机的PLC源语句标准的条数,则称集合M为基于单片机的PLC源语句标准集合。基于单片机的PLC编译程序中用M数组来构建源语句标准

41、集合,便使问题得到简化。M数组是进行源程序查错时的对照标准,也是进行翻译时的判别标准。M数组提供了源语句样板。性质1:M数组为二维数组,由于基于单片机的PLC源语句的关键词(标识符)长短不一,导致M数组的各行长短不一。性质2:根据定义2,有:M数组的每一行对应于不同的基于单片机的PLC的源语句定义。性质3:M数组的行数等于基于单片机的PLC语句的条数。基于单片机的PLC的指令系统较简单,语句条数不多,所以M数组行数不大,共16行。性质4:集合M中的各个子集Mi没有一个重复。这是因为定义基于单片机的PLC源语句时是不可能重复定义的。212 基于单片机的PLC源程序语句标准集合的数组表达把基于单片

42、机的PLC源程序指令,依据上述String Mi和mi k的格式进行表述,我们就可以得到,当i=l,2,3,16时,子集Mi分别为:Ml=L,D, ,5M2=L,D,I, ,6M3=A,N,D, ,6M4=A,N,I, ,6M5=0,R, ,5M6=0,R,I, ,6M7=S,T,0,R,E, ,8M8=O,U,T, ,6M9=T,I,M, ,6M10=C,N,T, ,6M11=R,S,T,C, ,7M12=P,L,S, ,6M13=D,I,N, ,6M14=S,F,T, ,6M15=R,S,T,S, ,7M16=E,N,D, ,6上述集合的全体就是基于单片机的PLC源程序语句标准集合。其中每

43、个子集中的最后一个数字表示该源程序语句的ASCII字符长度标准。例如,源程序语句LD 20共5个ASCII字符(空格算一个ASCII字符),所以,子集M1=L,D, ,5)中的最后一个数字为5。建立基于单片机的PLC源程序语句标准集合的目的是为了确定一个进行源程序查错时的对照标准,以及进行翻译时的判别标准。为此,在基于单片机的PLC编译程序中用C语言实现M数组所表达的基于单片机的PLC源程序语句标准集合。M数组的各元素赋值如下:m11=L;ml2=D:m13=;ml4=x05:m21=L:m22=D:m23=I:m24=:m25=x06:m31=A:m32=N:m33=D:m34=:m35=x

44、06:m41_A:m42=N:m43=I:m44=:m45=x06:m51=0:m52=R,:m53=:m54=x05:m6儿1=0:m62=R:m63=I:m64=:m65=x06:m71=S:m72=T:m73=0:m74=R:m75=E:m76=:m77=x08:m81=0:m82=U:m83=T:m84=:m85=x06:m91=T:m92=I:m93=M:m94=:m95=xOD:m101=C;m102=N:m103=T;m104=:m105=xOD:m111=R;m112=S:m113=T;m114=C:m115=:m116=x07:m121=P;m122=L:m123=S;m124=:rail25=x06:m31=D:m132=I:m133=N;m134=:m135=x06

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1