已阅读5页,还剩82页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第五章PLC的基本指令及程序设计,5.1PLC的基本逻辑指令及举例5.2程序控制指令5.3PLC编程指导5.4典型的简单电路编程5.5PLC程序简单设计法及应用举例,2,5.1PLC的基本逻辑指令及举例,PLC的编程语言有梯形图语言、助记符语言、逻辑功能图语言和某些高级语言。其中前两种语言用的最多,要求掌握。本章以S7-200CPU22*系列PLC的指令系统为对象,用举例的形式来说明PLC的基本指令系统,然后介绍常用典型电路及环节的编程,最后讲解PLC程序的简单设计法。S7-200PLC用LAD编程时以每个独立的网络块(Network)为单位,所有的网络块组合在一起就是梯形图,这也是S7-200PLC的特点。,3,梯形图语言编程主要特点及格式有以下几点:1)梯形图按行从上至下编写,每一行从左至右顺序编写,即PLC程序执行顺序与梯形图的编写顺序一致。2)梯形图左、右边垂直线分别称为起始母线和终止母线。每一逻辑行必须从起始母线开始画起。(终止母线常可以省略)3)梯形图中的触点有两种,即常开触点和常闭触点,这些触点可以是PLC的输入触点或输出继电器触点,也可以是内部继电器、定时器/计数器的状态。与传统的继电器控制图一样,每一触点都有自己的特殊标记(编号),以示区别。同一标记的触点可以反复使用,次数不限。这是因为每一触点的状态存入PLC内的存储单元中,可以反复读写。传统继电器控制中的每个开关均对应一个物理实体,故使用次数有限。这是PLC优于传统控制其中的一点。,4,4)梯形图最右侧必须接输出元素,PLC的输出元素用括号表示,并标出输出变量的代号。同一标号输出变量只能使用一次.5)梯形图中的触点可以任意串、并联,而输出线圈只能并联,不能串联。每行最多触点数由PLC型号不同而不同.6)内部继电器、计数器、移位寄存器等均不能直接控制外部负载,只能作中间结果供PLC内部使用.总之,梯形图结构沿用继电器控制原理图的形式,采用了常开触点、常闭触点、线圈等图形语言,对于同一控制电路,继电控制原理与梯形图输入、输出信号基本相同,控制过程等效。,5,例:,6,5.1.1逻辑取及线圈驱动指令,逻辑取及线圈驱动指令为LD、LDN和=。LD(Load):取指令。用于网络块逻辑运算开始的常开触点与母线的连接。LDN(LoadNot):取反指令。用于网络块逻辑运算开始的常闭触点与母线的连接。=(Out):线圈驱动指令。,图5-1LD、LDN、=指令用法,(b)语句表,(a)梯形图,7,使用说明:(1)LD、LDN指令不仅用于网络块逻辑计算开始时与母线相连的常开和常闭触点,在分支电路块的开始也要使用LD、LDN指令;(2)并联的=指令可连续使用任意次;(3)在同一程序中不能使用双线圈输出,即同一元器件在同一程序中只使用一次=指令;(4)LD、LDN、=指令的操作数为:I、Q、M、SM、T、C、V、S和L。T、C也作为输出线圈,但在S7-200PLC中输出时不是以使用=指令形式出现。,8,5.1.2触点串联指令,触点串联指令为A、AN。A(And):与指令。用于单个常开触点的串联连接。AN(AndNot):与反指令。用于单个常闭触点的串联连接。,图5-2A、AN指令的用法,9,使用说明:(1)A、AN是单个触点串联连接指令,可连续使用。但在用梯形图编程时会受到打印宽度和屏幕显示的限制。S7-200的编程软件中规定的串联触点数最多为11个。(2)图5-2中所示连续输出电路,可以反复使用=指令,但次序必须正确,不然就不能连续使用=指令编程了,见5-3图。(3)A、AN指令的操作数为:I、Q、M、SM、T、C、V、S和L。,图5-3不可连续使用=指令的电路,10,5.1.3触点并联指令,触点并联指令为:O、ON。O(Or):或指令。用于单个常开触点的并联连接。ON(OrNot):或反指令。用于单个常闭触点的并联连接。,图5-4O、ON指令的用法,使用说明:(1)单个触点的O、ON指令可连续使用。(2)O、ON指令的操作数同前。,11,5.1.4串联电路块的并联连接指令,两个以上触点串联形成的支路叫串联电路块。OLD(OrLoad):或块指令。用于串联电路块的并联连接。,图5-5OLD指令的用法,使用说明:(1)在块电路的开始也要使用LD、LDN指令。(2)每完成一次块电路的并联时要写上OLD指令。(3)OLD指令无操作数。,12,5.1.5并联电路块的串联连接指令,两条以上支路并联形成的电路叫并联电路块。ALD(AndLoad):与块指令。用于并联电路块的串联连接。,图5-6ALD指令的用法,使用说明:(1)在块电路开始时要使用LD、LDN指令。(2)在每完成一次块电路的串联连接后要写上ALD指令。(3)ALD指令无操作数。,13,S(Set):置位指令、R(Reset):复位指令置位即置1,复位即置0。置位和复位指令可以将位存储区的某一位开始的一个或多个(最多可达255个)同类存储器位置1或置0。这两条指令在使用时需指明三点:操作性质、开始位和位的数量。,5.1.6置位和复位指令,(1)S,置位指令将位存储区的指定位(位bit)开始的N个同类存储器位置位。用法:Sbit,N例:SQ0.0,1,(2)R,复位指令将位存储区的指定位(位bit)开始的N个同类存储器位复位。当用复位指令时,如果是对定时器T位或计数器C位进行复位,则定时器位或计数器位被复位,同时,定时器或计数器的当前值被清零。用法:Rbit,N例:RQ0.2,3,14,图5-7置位复位指令的用法,15,本程序对应的时序图如图5-8所示。,图5-8时序图,16,例:写出如下梯形图的语句表。,17,5.1.7立即指令,立即指令是为了提高PLC对输入/输出的响应速度而设置的,它不受PLC循环扫描工作方式的影响,允许对输入输出点进行快速直接存取。立即指令的名称和类型如下:(1)立即触点指令(立即取、取反、或、或反、与、与反)(2)=I,立即输出指令(3)SI,立即置位指令(4)RI,立即复位指令,18,(1)立即触点指令在每个标准触点指令的后面加“I”。指令执行时,立即读取物理输入点的值,但是不刷新对应映像寄存器的值。这类指令包括:LDI、LDNI、AI、ANI、OI和ONI。用法:LDIbit例:LDII0.2注意:bit只能是I类型。,(2)=I,立即输出指令用立即指令访问输出点时,把栈顶值立即复制到指令所指出的物理输出点,同时,相应的输出映像寄存器的内容也被刷新。用法:=Ibit例:=IQ0.2注意:bit只能是Q类型。,19,(3)SI,立即置位指令用立即置位指令访问输出点时,从指令所指出的位(bit)开始的N个(最多为128个)物理输出点被立即置位,同时,相应的输出映像寄存器的内容也被刷新。用法:SIbit,N例:SIQ0.0,2注意:bit只能是Q类型。(4)RI,立即复位指令用立即复位指令访问输出点时,从指令所指出的位(bit)开始的N个(最多为128个)物理输出点被立即复位,同时,相应的输出映像寄存器的内容也被刷新。用法:RIbit,N例:RIQ0.0,1,20,图5-9立即指令的用法,21,图5-10时序图,22,上图5-10中,t为执行到输出点处程序所用的时间,Q0.0、Q0.1、Q0.2的输入逻辑是I0.0的普通常开触点。Q0.0为普通输出,在程序执行到它时,它的映像寄存器的状态会随着本扫描周期采集到的I0.0状态的改变而改变,而它的物理触点要等到本扫描周期的输出刷新阶段才改变;Q0.1、Q0.2为立即输出,在程序执行到它们时,它们的物理触点和输出映像寄存器同时改变;而对Q0.3来说,它的输入逻辑是I0.0的立即触点,所以在程序执行到它时,Q0.3的映像寄存器的状态会随着I0.0即时状态的改变而立即改变,而它的物理触点要等到本扫描周期的输出刷新阶段才改变。,23,脉冲生成指令为EU(EdgeUp)、ED(EdgeDown).下表为脉冲生成指令使用说明,5.1.8脉冲生成指令,24,图5-11时序图,EU指令对其之前的逻辑运算结果的上升沿产生一个宽度为一个扫描周期的脉冲,如图中的M0.0;ED指令对其逻辑运算结果的下降沿产生一个宽度为一个扫描周期的脉冲,如图中的M0.1。脉冲指令常用于启动及关断条件的判定以及配合功能指令完成一些逻辑控制任务。,25,图5-12跳变应用,26,5.1.9逻辑堆栈操作指令,S7-200系列PLC使用一个9层堆栈来处理所有逻辑操作。堆栈是一组能够存储和取出数据的暂存单元,其特点是“先进后出”。每一次进行入栈操作,新值放入栈顶,栈底值丢失;每一次进行出栈操作,栈顶值弹出,栈底值补进随机数。逻辑堆栈指令主要用来完成对触点进行的复杂连接。S7-200中把ALD、OLD、LPS、LRD、LPP指令都归纳为栈操作指令。,27,1.栈装载与指令,ALD,栈装载与指令(与块)。在梯形图中用于将并联电路块进行串联连接。在语句表中指令ALD执行情况如表所示。,28,OLD,栈装载或指令(或块)。在梯形图中用于将串联电路块进行并联连接。在语句表中指令OLD执行情况如下表所示。,2.栈装载或指令,29,LPS,逻辑推入栈指令(分支或主控指令)。在梯形图中的分支结构中,用于生成一条新的母线,左侧为主控逻辑块,完整的从逻辑行从此处开始。注意:使用LPS指令时,本指令为分支的开始,以后必须有分支结束指令LPP。即LPS与LPP指令必须成对出现。,3.逻辑入栈指令,30,4.逻辑出栈指令,LPP,逻辑弹出栈指令(分支结束或主控复位指令)。在梯形图中的分支结构中,用于将LPS指令生成一条新的母线进行恢复。注意:使用LPP指令时,必须出现在LPS的后面,与LPS成对出现。在语句表中指令LPP执行情况如下表所示。,31,5.逻辑读栈指令,LRD,逻辑读栈指令。在梯形图中的分支结构中,当左侧为主控逻辑块时,开始第二个后边更多的从逻辑块的编程。在语句表中指令LRD执行情况如下表所示。,32,5-13LPS、LRD、LPP指令使用举例1,LPS、LRD、LPP指令使用举例1,33,5-14LPS、LRD、LPP指令使用举例2,34,5-15LPS、LRD、LPP指令使用举例3,使用说明:(1)由于受堆栈空间的限制(9层),LPS、LPP指令连续使用时应少于9次。(2)LPS和LPP指令必须成对使用,它们之间可以使用LRD命令。(3)LPS、LRD、LPP指令无操作数。,35,LPS、LRD、LPP指令使用举例4,36,图5-16复杂逻辑控制指令应用示例5,LDI0.0/装入常开触点OI2.2/或常开触点LDI0.1/被串的块开始LDI2.0/被并路开始AI2.1/OLD/栈装载或,并路结束ALD/栈装载与,串路结束=Q5.0LDI0.0/LPS/逻辑推入栈,主控AI0.5/=Q7.0/LRD/逻辑读栈,新母线LDI2.1/OI1.3/ALD/栈装载与=Q6.0/LPP/逻辑弹出栈,母线复原LDI3.1/OI2.0/ALD/=Q1.3/,37,5.1.10定时器指令,1.几个基本概念(1)种类:系统提供3种类型定时器:TON、TONR和TOF。(2)分辨率与定时时间的计算精度等级:单位时间的时间增量称为分辨率S。有3个等级:1ms、10ms和100ms,定时器定时时间T的计算:T=PTS。(3)定时器的编号:用名称和常数编号(最大255),38,2.定时器指令使用说明,(1)接通延时定时器TON接通延时定时器指令用于单一间隔的定时。上电周期或首次扫描,定时器位OFF,当前值为0。使能输入接通时,定时器位为OFF,当前值从0开始计数时间,当前值达到预设值时,定时器位ON,当前值连续计数到32767。使能输入断开,定时器自动复位,即定时器位OFF,当前值为0。指令格式:TONTxxx,PT例:TONT120,8,39,(2)有记忆接通延时定时器TONR,TONR,有记忆接通延时定时器指令。用于对许多间隔的累计定时。上电周期或首次扫描,定时器位OFF,当前值保持。使能输入接通时,定时器位为OFF,当前值从0开始计数时间。使能输入断开,定时器位和当前值保持最后状态。使能输入再次接通时,当前值从上次的保持值继续计数,当累计当前值达到预设值时,定时器位ON,当前值连续计数到32767。TONR定时器只能用复位指令进行复位操作。指令格式:TONRTxxx,PT例:TONRT20,63,40,(3)断开延时定时器TOF,TOF,断开延时定时器指令。用于断开后的单一间隔定时。上电周期或首次扫描,定时器位OFF,当前值为0。使能输入接通时,定时器位为ON,当前值为0。当使能输入由接通到断开时,定时器开始计数,当前值达到预设值时,定时器位OFF,当前值等于预设值,停止计数。TOF复位后,如果使能输入再有从ON到OFF的负跳变,则可实现再次启动。指令格式:TOFTxxx,PT例:TOFT35,6,41,图5-17定时器特性,3.应用举例例1,42,本梯形图程序中输入输出执行时序关系如图5-18所示。,图5-18定时器时序,43,例2:图5-19是用TON构造TOF作用的触点。其时序图与TOF完全相同。,图5-19定时器应用,2019/12/16,44,可编辑,45,例3:图5-20是利用常开触点实现通电和断电都延时的触点作用。本程序实现的功能是:用输入端I0.0控制输出端Q0.0,当I0.0接通后,过3个时间单位Q0.0端输出接通,当I0.0断开后,过6个时间单位Q0.0断开。,图5-20定时器应用,46,图5-21电机顺序起动,例4:电机顺序起动梯形图,47,4.定时器的刷新方式和正确使用,(1)定时器的刷新方式1ms定时器:由系统每隔1ms刷新一次,与扫描周期及程序处理无关。它采用中断刷新方式。10ms定时器:由系统在每个扫描周期开始时自动刷新。在一个扫描周期内定时器位和定时器的当前值保持不变。100ms定时器:在定时器指令执行时被刷新。它仅用在定时器指令在每个扫描周期执行一次的程序中。(2)定时器的正确使用图5-22为正确使用定时器的一个例子。它用来在定时器计时时间到时产生一个宽度为一个扫描周期的脉冲。,48,图5-22定时器的正确使用举例,错误使用方法,正确使用方法,49,5.1.11计数器指令,计数器用来累计输入脉冲的次数,在实际应用中用来对产品进行计数或完成复杂的逻辑控制任务。1.几个基本概念(1)种类:计数器指令有3种:增计数CTU、增减计数CTUD和减计数CTD。(2)编号:计数器的编号用计数器名称和数字(最大255)组成。计数器的编号包含两方面信息:计数器的位和计数器当前值。计数器位:计数器位和继电器一样是个开关量,表示计数器是否发生动作的状态,当计数器的当前值达到设定值时,该位被置位为ON。计数器当前值:其值是个存储单元,用来存储计数器当前所累计的脉冲个数,用16位符号整数表示,最大数值为32767。,50,2.计数器指令使用说明(1)增计数器CTU,首次扫描,计数器位OFF,当前值为0。脉冲输入CU的每个上升沿,计数器计数1次,当前值增加1个单位,当前值达到预设值时,计数器位ON,当前值继续计数到32767停止计数。复位输入有效或执行复位指令,计数器自动复位,即计数器位OFF,当前值为0。指令格式:CTUCxxx,PV例:CTUC20,3程序实例:图5.23为增计数器的程序片断和时序图。,51,图5-23增计数器用法举例,52,图5-24增计数时序,53,(2)增减计数器,CTUD,增减计数器指令。有两个脉冲输入端:CU输入端用于递增计数,CD输入端用于递减计数。指令格式:CTUDCxxx,PV例:CTUDC30,5程序实例:如图5-25所示为增减计数器的程序片断和时序图。,54,图5-25增减计数程序及时序,55,(3)减计数器CTD,脉冲输入端CD用于递减计数。首次扫描,计数器位OFF,当前值为等于预设值PV。计数器检测到CD输入的每个上升沿时,计数器当前值减小1个单位,当前值减到0时,计数器位ON。复位输入有效或执行复位指令,计数器自动复位,即计数器位OFF,当前值复位为预设值,而不是0。指令格式:CTDCxxx,PV例:CTDC40,4程序实例:图5-26为减计数器的程序片断和时序图。,56,57,图5-26减计数程序及时序,58,3.应用举例,1)循环计数以上三种类型的计数器如果在使用时,将计数器位的常开触点作为复位输入信号,则可以实现循环计数。2)用计数器和定时器配合增加延时时间,如图5-27所示。试分析以下程序中实际延时为多长时间。,59,60,图5-27计数器应用举例,5.1.2NOT及NOP指令,1.取反指令NOT将复杂逻辑结果取反,为用户使用反逻辑提供方便。该指令无操作数。指令形式:NOT2.空操作指令NOP(NoOperation)该指令很少使用,易出错。指令形式:NOPNN的范围:0255,61,5.2程序控制指令,程序控制类指令使程序结构灵活,合理使用该类指令可以优化程序结构,增强程序功能。这类指令主要包括:结束、暂停、看门狗、跳转、子程序、循环和顺序控制等指令。5.2.1结束指令结束指令分为有条件结束指令END和无条件结束指令MEND。两条指令在梯形图中以线圈形式编程。指令不含操作数。执行完结束指令后,系统结束主程序,返回到主程序起点。使用说明:(1)结束指令只能用在主程序中,不能在子程序和中断程序中使用。(2)在调试程序时,在程序的适当位置插入无条件结束指令可实现程序的分段调试。(3)可以利用程序执行的结果状态、系统状态或外部设置切换条件来调用有条件结束指令,使程序结束。(4)使用Micro/Win32编程时,不需手工输入无条件结束指令,该软件自动在内部加上一条无条件结束指令到主程序的结尾。,62,5.2.2停止指令STOPSTOP指令有效时,可以使主机CPU的工作方式由RUN切换到STOP,从而立即中止用户程序的执行。STOP指令在梯形图中以线圈形式编程。指令不含操作数。STOP指令可以用在主程序、子程序和中断程序中。STOP和END指令通常在程序中用来对突发紧急事件进行处理,以避免实际生产中的重大损失。用法见图5-28所示。,图5-28结束、停止指令的用法,63,建立子程序,可用编程软件Edit菜单中的Insert选项,选择Subroutine,以建立或插入一个新的子程序,同时在指令树窗口可以看到新建的子程序图标,默认的程序名是SBR_n,编号n从0开始按递增顺序生成,可以在图标上直接更改子程序的程序名。在指令树窗口双击子程序的图标就可对它进行编辑。,子程序调用:图示的程序实现用外部控制条件分别调用两个子程序。,图子程序调用举例,64,5.3PLC初步编程指导,5.3.1梯形图编程的基本规则(1)PLC内部元器件触点的使用次数是无限制的。(2)梯形图的每一行都是从左边母线开始,然后是各种触点的逻辑连接,最后以线圈或指令盒结束。触点不能放在线圈的右边,如图所示:,(3)线圈和指令盒一般不能直接连接在左边的母线上。,65,(4)在同一程序中,同一编号的线圈使用两次及两次以上称为双线圈输出。双线圈输出非常容易引起误动作,应避免使用。S7-200PLC中不允许双线圈输出。(5)在手工编写梯形图时,触点应画在水平线上,不要画在垂直线上。,(6)应把串联多的电路块尽量放在最上边,把并联多的电路块尽量放在最左边,可节省指令。,66,(7)不包含触点的分支线条应放在垂直方向,不要放在水平方向,便于读图直观。,(8)梯形图的推荐画法如图所示:,67,5.3.2LAD和STL编程形式的关系,利用梯形图编程时,可以把整个梯形图程序看成由许多网络块组成,每个网络块均起始于母线,所有的网络块组合在一起就是梯形图程序。LAD程序可以通过编程软件直接转换为STL形式。S7-200PLC用STL编程时,如果也以每个独立的网络块为单位,则STL程序和LAD程序基本上是一一对应的,且两者可通过编程软件相互转换;如果不以每个独立的网络块为单位编程,而是连续编写,则STL程序和LAD程序不能通过编程软件相互转换。,68,5.4典型的简单电路编程,5.4.1分频电路:以二分频为例说明PLC分频电路的实现。要求见时序图:,图5-29二分频电路,69,当输入I0.1第一次接通时,在M0.0上产生单脉冲。因输出线圈Q0.0并未得电,其对应的常开触点处于断开状态,所以扫描到第三行时,尽管M0.0得电,M0.2也不可能得电。扫描至第4行时,Q0.0得电并自锁。Q0.0对应的常开触点闭合,为M0.2的得电做好准备。等到I0.1输入第二个脉冲到来时。M0.0上再次产生单脉冲。因此,在扫描第三行时,M0.2条件满足得电,M0.2对应的常闭触点断开。执行第4行程序时,输出线圈Q0.0失电。以后虽然I0.1继续存在,由于M0.0是单脉冲信号,虽多次扫描第4行,输出线圈Q0.0也不可能得电。,工作过程:,70,5.4.2闪烁电路(振荡电路),图5-30闪烁电路,71,5.4.3报警电路,要求:当故障发生时,报警指示灯闪烁,报警电铃或蜂鸣器响。操作人员知道故障发生后,按消铃按钮,把电铃关掉,报警指示灯从闪烁变为常亮。故障消失后,报警灯熄灭。另外还应设置试灯、试铃按钮,用于平时检测报警指示灯和电铃的好坏。设计:该系统输入、输出信号的地址分配如下:输入信号:I0.0为故障信号;I0.1为消铃按钮;I0.2为试灯、试铃按钮。输出信号:Q0.0为报警灯;Q0.1为报警电铃(蜂鸣器),72,73,图5-31报警电路梯形图、语句表和时序图,74,5.4.4长延时电路,图5-32长延时电路,75,上图中:T37每一分钟产生一个脉冲,所以是分钟计时器。C21每一小时产生一个脉冲,故C21为小时计时器。当10小时计时到时,C22为ON,这时,C23再计时30分钟,则总的定时时间为10小时30分,Q0.0置位成ON。在该例的计数器复位逻辑中,有初始化脉冲SM0.1和外部复位按钮I0.1。初始化脉冲完成在PLC上电时对计数器的复位操作。另外,图中的C21有自复位功能。,76,5.4.5计数器的扩展,图5-33计数器扩展电路,1.扩展,77,5.5PLC程序的简单设计法及应用举例,5.5.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 血肿的应急处理
- 应收会计年终总结
- 2023年气相色谱仪资金需求报告
- 病例讨论周围神经病
- 3.3.3离子反应 课件高一上学期化学苏教版(2019)必修第一册
- 背影教案反思
- 好玩的冰说课稿
- 开展我为同学办实事活动
- 神经病学临床案例分享
- 安全生产变更索赔管理细则
- 任务七食品中脂肪含量测定
- 慢性阻塞性肺疾病伴急性加重教学查房COPD
- 铁路集装箱运输规则
- 2023年上海16区高考一模英语听力合集附音频含答案含原文
- 《IT人员职业规划》
- 维勒夫特优质获奖课件
- 初级社会统计学智慧树知到答案章节测试2023年哈尔滨工程大学
- 无犯罪记录证明公函
- 诗歌鉴赏基本知识点
- 人文英语3范文+人文英语3阅读740
- GB/T 3274-2007碳素结构钢和低合金结构钢热轧厚钢板和钢带
评论
0/150
提交评论