Micrologix控制器的编程指令.docx

上传人:b****8 文档编号:10303457 上传时间:2023-02-10 格式:DOCX 页数:66 大小:424.16KB
下载 相关 举报
Micrologix控制器的编程指令.docx_第1页
第1页 / 共66页
Micrologix控制器的编程指令.docx_第2页
第2页 / 共66页
Micrologix控制器的编程指令.docx_第3页
第3页 / 共66页
Micrologix控制器的编程指令.docx_第4页
第4页 / 共66页
Micrologix控制器的编程指令.docx_第5页
第5页 / 共66页
点击查看更多>>
下载资源
资源描述

Micrologix控制器的编程指令.docx

《Micrologix控制器的编程指令.docx》由会员分享,可在线阅读,更多相关《Micrologix控制器的编程指令.docx(66页珍藏版)》请在冰豆网上搜索。

Micrologix控制器的编程指令.docx

Micrologix控制器的编程指令

Micrologix控制器的编程指令

6.1编程语言

可编程控制器(PLC)的编程语言通常不采用微机的编程语言,而是采用梯形图、指令表、顺序功能流程图(SFC)、功能块图(FBD)、结构文本等。

其中梯形图、指令表最为常用。

1、梯形图

PLC的梯形图在形式上沿袭了传统的继电器电气控制图,是在原继电器控制系统的基础上演变而来的一种图形语言。

梯形图的控制逻辑结构及工作原理与继电器逻辑控制电路十分相似。

它采用“触点”、“线圈”(或称继电器线圈)、定时器、计数器及功能指令等图形符号表达输出与输入的逻辑关系,这些输入/输出可以是硬件上实际的输入/输出信号,也可以是PLC内部虚拟的输入/输出信号。

这种编程语言与电路图相呼应,简单、形象、直观、易编程、容易掌握,是目前应用最广泛的PLC编程语言之一。

梯形图编程语言的特点是:

与电气操作原理图相对应,具有直观性和对应性;与原有继电器控制相一致,电气设计人员易于掌握。

梯形图编程语言与原有的继电器控制的不同点是,梯形图中的能流不是实际意义的电流,内部的继电器也不是实际存在的继电器,应用时,需要与原有继电器控制的概念区别对待。

梯形图的设计应注意到以下三点:

(1)梯形图按自上而下、从左到右的顺序排列。

每个继电器线圈为一个逻辑行,即一层阶梯。

每一个逻辑行起于左母线,然后是触点的连接,最后终止于继电器线圈或右母线。

(2)梯形图中每个梯级流过的不是物理电流,而是“概念电流”,从左流向右,其两端没有电源。

这个“概念电流”只是用来形象地描述用户程序执行中应满足线圈接通的条件。

(3)输入寄存器用于接收外部输入信号,而不能由PLC内部其它继电器的触点来驱动。

因此,梯形图中只出现输入寄存器的触点,而不出现其线圈。

输出寄存器则输出程序执行结果给外部输出设备,当梯形图中的输出寄存器线圈得电时,就有信号输出,但不是直接驱动输出设备,而要通过输出接口的继电器、晶体管或晶闸管才能实现。

输出寄存器的触点也可供内部编程使用。

(4)在每一逻辑行中,串联触点多的支路应放在上方。

如果将串联触点多的支路放在下方,则语句增多,程序变长。

2、指令表编程

指令语句表是一种用指令助记符来编制PLC程序的语言,它类似于计算机的汇编语言,但比汇编语言易懂易学,若干条指令组成的程序就是指令语句表。

在无计算机的情况下,适合采用PLC手持编程器对用户程序进行编制。

同时,指令表编程语言与梯形图编程语言图一一对应,在PLC编程软件下可以相互转换。

指令表表编程语言的特点是:

采用助记符来表示操作功能,具有容易记忆,便于掌握;在手持编程器的键盘上采用助记符表示,便于操作,可在无计算机的场合进行编程设计;与梯形图有一一对应关系。

其特点与梯形图语言基本一致。

3、状态流程图编程

顺序功能流程图语言是为了满足顺序逻辑控制而设计的编程语言。

编程时将顺序流程动作的过程分成步和转换条件,根据转移条件对控制系统的功能流程顺序进行分配,一步一步的按照顺序动作。

每一步代表一个控制功能任务,用方框表示。

在方框内含有用于完成相应控制功能任务的梯形图逻辑。

这种编程语言使程序结构清晰,易于阅读及维护,大大减轻编程的工作量,缩短编程和调试时间。

用于系统的规模校大,程序关系较复杂的场合。

顺序功能流程图编程语言的特点:

以功能为主线,按照功能流程的顺序分配,条理清楚,便于对用户程序理解;避免梯形图或其他语言不能顺序动作的缺陷,同时也避免了用梯形图语言对顺序动作编程时,由于机械互锁造成用户程序结构复杂、难以理解的缺陷;用户程序扫描时间也大大缩短。

4、功能块图(FBD-FunctionBlockDiagram)

  功能块图使用类似于布尔代数的图形逻辑符号来表示控制逻辑,一些复杂的功能用指令框表示,适合于有数字电路基础的编程人员使用。

功能块图用类似于与门、或门的框图来表示逻辑运算关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入、输出端的小圆圈表示“非”运算,方框用“导线”连在一起,信号自左向右。

5、结构化文本(ST-StructuredText)

  结构化文本(ST)是为IEC61131-3标准创建的一种专用的高级编程语言。

与梯形图相比,它实现复杂的数学运算,编写的程序非常简洁和紧凑。

6.2PLC的存储器结构

美国罗克韦尔公司的Micrologix1500系列PLC的存储器分为程序文件和数据文件两部分。

其中程序文件存储控制器信息、程序;数据文件存储系统输入数据、输出数据、功能指令控制参数、程序运行时的中间数据等各种各样的数据。

下面对程序文件和数据文件分别进行介绍。

6.2.1程序文件

程序文件用以存储控制器的基本信息和用户程序,用户程序包括主程序、中断程序和各个子程序。

Micrologix1500系列PLC有256个程序文件,用编号0到255表示。

其中文件0存放系统信息和用户的编程信息,如处理器型号、处理器文件名等信息;文件1一般予以保留;文件2是梯形图主程序;文件3到文件255为用户自行创建的梯形图子程序和中断程序,在文件2主程序中可以通过调用指令跳转到子程序,可以通过相应中断的方法跳转到中断程序。

6.2.2数据文件

可编程控制器在执行程序过程中用到的各种数据均存储在数据文件中,数据文件分为以下几种类型:

输出和输入数据文件、状态文件、位文件、计时器文件、计数器文件、控制文件、整数文件和实数文件。

因为数据文件的类型比较多,为了编制方便和便于记忆,每个数据文件由一个字母和一个文件号来标识。

数据文件分为系统默认和用户定义两部分。

一般0到8号文件是系统建立的默认文件,其中输入文件(0号文件)、输出文件(1号文件)和状态文件(2号文件)这三个文件是固定的,不允许重新建立。

下面对各个数据文件进行详细介绍。

1.输入和输出数据文件(I1:

和O0:

输入文件存放PLC输入端各个输入点的状态信息;输出文件存放PLC输出端各个点的状态信息。

例如:

PLC上的输入点“I/0”的表示方法如下:

I:

0.0/0

其中I表示是输入文件,I后面的第一个“0”是槽号,其范围与所使用的处理器有关,第二个“0”表示I/0组号,用一位8进制表示(0~7),最后的“0”是端子号,用十六进制表示(0~15)。

上面的文件信息表示:

输入文件中第0槽的第0个字的第0位。

当一个槽的I/O点数超过16个时,寻址位有两种表示方法:

I:

0.1/2与I:

0/18表示的是同一个输入端点。

2.状态文件(S2:

状态文件允许用户监视、控制操作系统的工作状况。

在调试程序时,可以通过设置或查看状态文件的信息帮助调试。

状态文件不能被增加或删除,寻址状态文件的位和字的格式为:

S:

e/b各位含义同I/O文件。

举例:

S:

1/12元素1,位12。

这是“首次扫描位”用户在程序中可以使用它来初始化指令。

3.位文件(B3:

文件3是位文件,是PLC内部的状态位,在编程时可以记录一些位信息。

位文件的最大容量是256个单字元素,总计为4096位。

可以通过指定元素号(0~255)和元素内的位编号(0~15)来寻址位,也可以通过位的顺序编号直接寻址位0~4095。

用户也可以只寻址该文件的元素。

举例:

B3:

0/14元素3,位14

B3:

12元素12

B3:

/64或B/64位64(即元素4,位0)

4.计时器(T4:

每个计时器地址由一个3字元素组成,如下表所示:

151413

ENTTDN

内部使用

PRE(预置值)

ACC(累计值)

字0

字1

字2

上表中,EN:

使能位,TT:

计时位,DN:

完成位。

举例:

T4:

1/13或T4:

1/DN完成位

T4:

1.1或T4:

1.PRE预置值

T4:

1.2或T4:

1.ACC累计值

5.计数器文件(C5:

每个计数器地址由一个3字元素组成,如下表所示:

 

1514131211109876543210

CUCDDNOVUNUA

内部使用

PRE(预置值)

ACC(累计值)

字0

字1

字2

字上表中,CU:

加计数使能位

CD:

减计数使能位

DN:

完成位

OV:

上溢出位

UN:

下溢出位

UA:

更新累计值位(只用于固定式控制器的HSC指令)。

举例:

C5:

1/13或C5:

1/DN完成位

C5:

1.1或C5:

1.PRE预置值

C5:

1.2或C5:

1.ACC累计值

6.控制文件(R6:

控制文件是3字元素,各字含义如下表。

位移、顺序器指令都用到控制文件。

字1514131211109876543210

ENEUDNEMERULINFD错误代码

位阵列或文件的长度(LEN)

位指针或位置(POS)

0

1

2

举例:

R6:

2元素2

R6:

3/15或R:

3/EN使能位

R6:

3/13或R:

3/DN完成位

R6:

3.1或R:

3.LEN长度值

7.整数文件(N7:

整数文件是1字元素,可以寻址到元素和位。

根据程序的需要来使用整数文件地址。

整数文件的数值范围是:

-32768到+32767。

举例:

N7:

2元素2

N7:

2/8元素2,位8

8.浮点文件(F8:

浮点文件中每个数据在存储器中占2个字,数据长度是32个位,浮点数的范围是:

-1.1754944E-38到+1.1754944E+38。

举例:

F8:

2元素2

6.3Micrologix控制器的指令系统

罗克韦尔自动化公司的PLC种类较多,不同PLC支持的指令稍有不同,但基本指令都是相同的。

基本指令是基础,初学者必须深刻理解基本指令。

6.3.1位指令

位指令用于监视或控制数据文件文件中位的状态,如输入位、输出位、内部标志位和计数器、计时器、控制字的的状态位等,多用于开关量的逻辑控制中。

Micrologix1500控制器的位指令及其主要功能参数表6-1。

表6-1位指令及其功能

助记符

名称

功能

XIC

检查是否已闭合

检查某一位是否为1(ON状态)

XIO

检查是否已断开

检查某一位是否为0(OFF状态)

OTE

输出激励

梯级条件为真时,将某位置1(ON状态,非保持型)

OTL

输出锁存

梯级条件为真时,将某位置1(ON状态,保持型)

OTU

输出解锁

梯级条件为真时,将某位置0(OFF状态,保持型)

ONS

一次响应

梯级条件由假变为真时,使梯级条件保持为真一个扫描周期

OSR

上升沿单触发

梯级条件由假变为真时,上升沿动作,只产生一个扫描周期的正脉冲信号

OSF

下降沿单触发

梯级条件由真变为假时,下降沿动作,只产生一个扫描周期的正脉冲信号

1.检查闭合(XIC)

XIC指令的梯形图符号表示为:

XIC是一条输入指令,用于检查寻址位是否为1(导通状态,ON)。

当指令执行时,如果该寻址位是1(导通状态,ON),则指令被赋值为真;如果该寻址位是0(断开状态,OFF),则指令被赋值为假。

2.检查断开(XIO)

XIO指令的梯形图符号表示为:

XIO是一条输入指令,用于检查该寻址位是否为0(断开状态,OFF)。

当指令执行时,如果该寻址位是0(断开状态,OFF),则指令被赋值为真;如果该寻址位是1(导通状态,ON),则指令被赋值为假。

3.输出激励(OTE)

OTE输出激励的梯形图符号表示为:

OTE是一条非保持型输出指令,OTE指令由它前面的输入指令控制,如果OTE指令前面的梯级条件为真,该寻址位导通,OTE指令前面的梯级条件为假,该寻址位断开。

例如,在图6-1中,第一条梯形图程序表示:

当PLC的输入点1为ON(导通)时,梯级条件成立,执行后面的输出指令,PLC的输出点1为ON(导通);当PLC的输入点1为

OFF(断开)时,梯级条件不成立,不执行后面的输出指令,PLC的输出点1为OFF(断开);第二条梯形图程序表示:

当PLC的输入点2为ON(导通)时,梯级条件不成立,不执行后面的输出指令,PLC的输出点2为OFF(断开);当PLC的输入点2为OFF(断开)时,梯级条件成立,执行后面的输出指令,PLC的输出点2为ON(导通)。

图6-1中梯形图程序实现的功能是:

PLC输入点1导通时,输出点1立即导通;输入点1端开时,输出点1立即断开;PLC输入点2导通时,输出点2立即断开,输入点2断开时,输入点2立即导通。

图6-1OTE指令应用举例

4.输出锁存指令OTL和输出解锁指令OTU

OTL指令和OTU指令的梯形图符号分别表示为:

OTL指令和OUT指令是保持型输出指令,一般这两条指令成对使用。

当OTL指令前面的梯级条件成立时,执行OTL指令,将该寻址位变为ON状态,随后如果OTL指令前面的梯级条件变为不成立,这时该位仍然保持锁存状态(ON状态)。

当OTU指令前面的梯级条件成立时,执行OTU指令,将该寻址位变为OFF状态,随后如果OTU指令前面的梯级条件变为不成立,这时该位仍然保持解锁状态(OFF状态)。

例如,在图6-2的第一条梯形图程序中,如果PLC的输入点1是导通ON状态,梯级条件成立,则执行输出锁存指令,将PLC的输出点1锁存为导通ON状态,这时,如果前面的输入点1变为断开OFF状态,输出点1仍然被锁存,保持为ON状态,直到后面的解锁指令被执行后,才能变为OFF断开状态;在第二条梯形图程序中,如果PLC的输入点2是导通ON状态,则执行输出解锁指令,将PLC的输出点1解锁,使之为OFF断开状态,并一直保持下去,直到锁存指令被再次执行。

图6-2中梯形图程序实现的功能是:

当PLC输入点1导通时,输出点1立即导通,当输入点1由导通变为关断时,输出点1仍然保持导通;输入点2导通时,输出点1处于关断状态,输入点2由导通变到关断时,输出点1仍然保持关断状态。

图6-2OTL和OTU指令的应用举例

5.一次响应指令ONS

ONS指令的梯形图符号表示为:

ONS属输入指令。

当程序中ONS指令所在梯级条件由假到真变化时,它的指令逻辑为真,但只保持一个扫描周期。

使用ONS指令可启动由按钮触发的事件。

ONS指令中有一个位地址参数,此地址可以是位文件或整数文件地址(如B3:

0/3,N7:

0/1等)。

该位自动存储了ONS指令所在梯级条件(为真则存储1,为假则存储0)。

ONS的功能相当于限制所在梯级的输出。

当输入条件由假变真时,它使输出为1且只保持一个扫描周期,在以后连续的扫描中输出为0。

直到输入再次由假到真跳变。

例如,在图6-3第一条梯形图程序中,当输入点1由OFF状态变为ON导通状态时,ONS响应,保持一个扫描周期的ON导通状态,在这一个扫描周期中,后面两个输出指令的梯级条件为真,这时输出点1变为ON导通状态,但只能保持一个扫描周期;同时输出点2被锁存为ON导通状态,因为输出点2被锁存,所以其导通状态可以被一直保持下去。

一个扫描周期非常短暂,输出点1的ON导通状态不能被观察到。

ONS中的位参数B3:

0/1记录了ONS所在梯级的条件,当梯级条件为真(输入点1为ON导通时),其值也为真,等于1;当梯级条件为假,其值也为假,等于0。

借助第二条梯形图程序,通过输出点3的通断情况,可以观察出B3:

0/1的状态。

图6-3中梯形图程序实现的功能是:

当PLC输入点1导通时,输出点1、输出点2和输出点3立即导通,但输入点1只保持一个扫描周期的导通状态,所以很难观察到它的导通;输入点1关断时,输出点3立即关断,但输出点2保持导通状态不变。

图6-3ONS指令的应用举例

6.上升沿一次响应指令OSR

OSR指令的梯形图符号表示为:

OSR属瞬时输出指令,输出只能保持一个扫描周期的ON状态。

当OSR指令所在梯级条件由假到真变化时,在输出位(OutputBit)产生一个周期正脉冲(即“上升沿动作类型”)。

存储位(StorageBit)中自动存储了OSR指令所在阶梯的梯级条件(为真则存储1,为假则存储0)。

7.下降沿一次响应指令OSF

OSF指令的梯形图符号表示为:

OSF属瞬时输出指令,输出只能保持一个扫描周期的ON状态。

当OSF指令所在梯级条件由真到假变化时,在输出位(OutputBit)产生一个周期正脉冲(即“下降沿动作类型”)。

存储位(StorageBit)中自动存储了OSF指令所在阶梯的梯级条件(为真则存储1,为假则存储0)。

OSR和OSF都是非保持型的,ON的状态只保持一个扫描周期,两者的区别是:

OSR指令是上升沿触发,OSF指令是下降沿触发。

例如,在图6-4第一行梯形图程序中,当梯级条件由OFF断开状态变为ON导通状态时,OSR指令执行,在其输出位B3:

0/1中存储一个扫描周期的正脉冲信号;当梯级条件由ON导通状态变为OFF断开状态时,OSF指令执行,在其输出位B3:

0/3中存储一个扫描周期的正脉冲信号;

在第二行梯形图程序中,梯级条件是OSR指令的输出位B3:

0/1,该位为ON导通时,两个输出指令执行,输出点1被置ON状态,没有被锁存,不能保持,调试时不能观察到其置ON导通的状态;输出点2也被置ON状态,被锁存,当梯级条件为假时,可以保持,调试时可以观察到其置ON导通的状态。

在第三行梯形图程序中,梯级条件是OSF指令的输出位B3:

0/3,该位为ON导通时,两个输出指令执行,输出点3被置ON状态,没有被锁存,不能保持,调试时不能观察到其置ON导通的状态;输出点4也被置ON状态,被锁存,当梯级条件为假时,可以保持,调试时可以观察到其置ON导通的状态。

在第四行梯形图程序中,梯级条件是OSR的存储位B3:

0/0和OSF的存储位B3:

0/2,当两个位均为ON导通状态时,梯级条件成立,执行输出指令,输出点5为导通ON状态。

调试时,可以观察到,第一行梯形图程序的梯级条件为真,这两个存储位也为真;梯级条件为假,这两个存储位也为假。

在图6-4梯形图程序中,当PLC输入点1导通时,输出点1、输出点2和输出点5立即导通,但输出点1只保持一个扫描周期的导通状态,无法观察到;当输入点1关断时,输出点5立即关断,输出点3和输出点4立即导通,但输出点3也只保持一个扫描周期的导通状态,所以无法观察到。

图6-4OSR和OSF指令的应用举例

8.位指令应用实例

例1:

起停控制

一个起动按钮接PLC的输入点6,一个停止按钮接PLC的输入点7,输出点6控制外部设备的起停。

要求当按下起动按钮时(点动型),起动外部设备,当按下停止按钮时(点动型),停止外部设备的运行。

实现上述起停控制的梯形图逻辑如图6-5所示。

图中,当按下起动按钮时,输入点6处于导通(ON)状态,此时停止按钮未按下,处于断开(OFF)的状态,这时梯级条件为真,执行后面的输出指令,使输出点6(O:

0/6)为ON的状态,起动外部设备。

程序中将O:

0/6与起动按钮并联,进行设备起动自锁,按下起动按钮后,设备就会一直处于运行状态,直到按下停止按钮。

图6-5起停控制梯形图程序

例2:

单按钮启停控制

在实际生产中,经常使用一个按钮,既能控制起动,又能控制停止。

本书列举了2种使用位指令的控制方法,其梯形图程序如图6-6、6-7所示。

在程序中PLC的输入端子I:

0/6接外部的起动停止按钮,PLC的输出端子O:

0/6对外部设备进行控制,PLC内部位文件中的B3:

0/0、B3:

0/1、B3:

0/2记录程序的一些中间状态。

图6-6单按钮起动停止控制梯形图程序1

 

图6-7单按钮起动停止控制梯形图程序2

在图6-6中,第一条梯形图程序使用OSR指令捕捉起动停止按钮的上升沿,将其存储在PLC内部的B3:

0/1中;第二条程序将外部设备的当前状态记录到B3:

0/2数据文件中,该条指令必须放置在第三、第四条指令的前面,这样才能正确记录按钮上升沿这一刻外部设备的状态;第三条程序的作用是在起动停止按钮的上升沿这一刻,如果外部设备处于停止状态,执行锁存指令,使设备起动;第四条指令作用是在起动停止按钮的上升沿这一刻,如果外部设备处于运行状态,执行解锁指令,使设备停止运行。

在图6-7中,第一条梯形图程序使用OSR指令捕捉起动停止按钮的上升沿,将其存储在PLC内部的B3:

0/1中;第二条程序将外部设备的当前状态记录到B3:

0/2数据文件中,该条指令必须放置在第三条指令的前面,这样才能正确记录按钮上升沿这一刻外部设备的状态;第三条指令是一条自锁指令,如果按钮上升沿这一刻,设备处于停止状态(B3:

0/2处于OFF状态),起动设备,通过采用并联O:

0/6进行自锁;如果按钮上升沿这一刻,设备处于运行状态,则通过B3:

0/2切断梯级条件,使设备停止运行。

案例3电动机的正反转控制

在实际生产中,经常需要控制电动机的正转和反转。

将电动机定子三相绕组中的任意两相调换一下接到电源上,就可改变电机的旋转方向。

可以在主电路中用两组接触器的主触点分别构成电机正转和反转的的相序接线,如图6-8所示。

本例中电动机正反转控制要求如下:

按下正转按钮SB1,电机立即正转;按下反转按钮SB2,电机开始反转,按下停止按钮,电机停止转动。

由主电路可知,两个接触器的主触点不能同时闭合,否则回造成电源短路,这是绝对不允许发生的,要实现这样的控制要求,必须在梯形图控制程序中使用互锁逻辑。

实现电机正反转控制的梯形图程序如图6-9所示。

程序中,第一条指令梯级条件中加入了反转输出O:

0/1,作为互锁使用,防止电机反转时,又同时起动正转。

图6-8电动机正反转控制主电路

 

表6-2电机正反转控制I/O分配

输入元件

PLC数据

输出元件

PLC数据

正转按钮SB1

I:

0/0

正转接触器

O:

0/0

反转按钮SB2

I:

0/1

反转接触器

O:

0/1

停止按钮SB3

I:

0/2

图6-9电动机正反转控制梯形图

6.4计时器指令

计时器指令属于输出指令,用于控制基于时间的操作。

ML系列控制器的计时器指令及其功能见表6-3。

表6-3计时器指令及其功能

助记符

名称

功能

TON

延时导通计时器

当指令前面梯级条件为真时,以时间基准为单位进行计时

TOF

延时断开计时器

当指令前面梯级条件为假时,以时间基准为单位进行计时

RTO

保持计时器

当指令前面梯级条件为真时,以时间基准为单位进行计时,但当前面梯级变为假后,计时值保持,但梯级条件再次为真时,继续进行计时

1.延时导通计时器(TON)

使用TON指令延迟打开输出。

当梯级条件为真时,TON指令按选定时基进行计时,只要梯级条件保持为真,计时器就会增加其累加器直到达到预置值为止。

当累加器等于预置值时,计时停止。

当梯级条件为假时,将累加器复零。

使用TON指令时需要提供以下参数:

1)计时器(Timer):

指明所使用的计时器元素(如T4:

1)。

2)时基(Timebase):

计时器计时的基本单位。

Micrologix1500系列可选择1S、0.01S和0.001S三种,它决定了计时器的精度。

3)预置值(Preset):

用于设定延时时间,可设为整数-32768~32767,预置值和时基相乘,所得时间值就是设定的计时长度。

4)累计值(Accum):

是一个动态值,表明了到目前计时器已经延时的数值。

当梯级条件为真时,TON开始计时,直到下列条件中的任何一个发生为止:

累计值=预置值;

梯级变假;

复位计时器。

注意:

不论计时器是否计到时,梯级变假时延时导通计时器复位累计值(把累

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

当前位置:首页 > 初中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1